gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/trunk r10482: Merge from kde4 branch. The


From: Benjamin Wolsey
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r10482: Merge from kde4 branch. The option --enable-gui=kde now takes 'kde3' instead.
Date: Sat, 27 Dec 2008 02:53:28 -0700
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 10482
committer: Benjamin Wolsey <address@hidden>
branch nick: trunk
timestamp: Sat 2008-12-27 02:53:28 -0700
message:
  Merge from kde4 branch. The option --enable-gui=kde now takes 'kde3' instead.
  To build kde4, use '--enable-gui=kde4'.
  
  There may be build problems with kde4, as it hasn't been widely tested.
  Reportedly kde4-gnash segfaults on at least one platform.
  
  The criterion for the merge is that kde3 and the default configure still
  work as before.
  
  Fix for default configure by setting build_qt3 as well as build_kde3 when no
  guis are specified.
removed:
  gui/klash.moc.in
added:
  gui/GuiKde4.cpp
  gui/Kde4Glue.h
  gui/Kde4GlueAgg.cpp
  gui/Kde4GlueAgg.h
  gui/Kde4Gui.cpp
  gui/Kde4Gui.h
  gui/am-frag/kde4.am
  gui/klash4.moc.in
  macros/kde4.m4
  macros/qt4.m4
  plugin/klash4/
  plugin/klash4/Makefile.am
  plugin/klash4/README
  plugin/klash4/klash.desktop
  plugin/klash4/klash_part.cpp
  plugin/klash4/klash_part.desktop
  plugin/klash4/klash_part.h
  plugin/klash4/klash_part.moc.in
  plugin/klash4/klashpartui.rc
  plugin/klash4/klashplayer.lsm
  plugin/klash4/pluginsinfo
renamed:
  gui/am-frag/kde.am => gui/am-frag/kde3.am
  gui/am-frag/qtopia.am => gui/am-frag/qtopia3.am
  macros/kde.m4 => macros/kde3.m4
  macros/qt.m4 => macros/qt3.m4
modified:
  Makefile.am
  configure.ac
  gui/Makefile.am
  gui/Player.cpp
  gui/gnash.in
  gui/gui.h
  gui/gui_kde.cpp
  gui/kde.cpp
  macros/libslist
  plugin/Makefile.am
  plugin/klash/Makefile.am
  gui/am-frag/kde3.am
  gui/am-frag/qtopia3.am
  macros/kde3.m4
  macros/qt3.m4
    ------------------------------------------------------------
    revno: 9735.1.1
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Sun 2008-09-14 17:01:42 +0200
    message:
      Add KDE4 gui.
    added:
      gui/GuiKde4.cpp
      gui/Kde4.moc
      gui/Kde4Glue.h
      gui/Kde4GlueAgg.cpp
      gui/Kde4GlueAgg.h
      gui/Kde4Gui.cpp
      gui/Kde4Gui.h
      gui/am-frag/kde4.am
    modified:
      gui/Makefile.am
      gui/Player.cpp
      gui/gui.h
    ------------------------------------------------------------
    revno: 9735.1.2
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Sun 2008-09-14 17:37:44 +0200
    message:
      KDE4 gui updates the whole window on each paintEvent.
    modified:
      gui/Kde4GlueAgg.cpp
      gui/Kde4GlueAgg.h
      gui/Kde4Gui.cpp
      gui/Kde4Gui.h
    ------------------------------------------------------------
    revno: 9735.1.3
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Sun 2008-09-14 18:23:38 +0200
    message:
      Only update the changed part of the window. Move bounds to main Gui class,
      out of the AggGlue.
    modified:
      configure.ac
      gui/Kde4GlueAgg.cpp
      gui/Kde4GlueAgg.h
      gui/Kde4Gui.cpp
      gui/Kde4Gui.h
    ------------------------------------------------------------
    revno: 9735.1.4
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Mon 2008-09-15 10:40:32 +0200
    message:
      Catch bad_alloc when creating images. Handle errors in finishImage.
    modified:
      libbase/GnashImageJpeg.cpp
      libbase/image.cpp
    ------------------------------------------------------------
    revno: 9735.1.5
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Mon 2008-09-15 12:03:34 +0200
    message:
      More kde4.
    modified:
      gui/Kde4GlueAgg.cpp
      gui/Kde4Gui.cpp
      gui/Kde4Gui.h
    ------------------------------------------------------------
    revno: 9735.1.6
    committer: Benjamin Wolsey <address@hidden>
    branch nick: kde4
    timestamp: Mon 2008-09-29 14:09:45 +0200
    message:
      Merge from trunk.
    removed:
      libcore/asobj/SoundMad.cpp
      libcore/asobj/SoundMad.h
      ltmain.sh.darwin
    added:
      libcore/asobj/LoadableObject.cpp
      libcore/asobj/LoadableObject.h
      libcore/vm/CallStack.cpp
      libcore/vm/CallStack.h
      libmedia/ffmpeg/ffmpegHeaders.h
      testsuite/actionscript.all/ColorTransform.as
      testsuite/actionscript.all/Transform.as
    renamed:
      README_CVS => README_bzr
      libbase/curl_adapter.h => libbase/NetworkAdapter.h
      libcore/asobj/LoadVars.cpp => libcore/asobj/LoadVars_as.cpp
      libcore/asobj/LoadVars.h => libcore/asobj/LoadVars_as.h
      libcore/asobj/System.cpp => libcore/asobj/System_as.cpp
      libcore/asobj/System.h => libcore/asobj/System_as.h
      libcore/asobj/xml.cpp => libcore/asobj/XML_as.cpp
      libcore/asobj/xml.h => libcore/asobj/XML_as.h
    modified:
      .bzrignore
      Makefile.am
      README
      autogen.sh
      configure.ac
      doc/C/refmanual/internals.xml
      doc/C/usermanual/glossary.xml
      extensions/fileio/fileio.cpp
      extensions/mysql/mysql_db.cpp
      extensions/mysql/mysql_table.cpp
      gui/Makefile.am
      gui/fltk.cpp
      gui/gtk.cpp
      gui/gui.cpp
      gui/gui.h
      gui/kde.cpp
      libbase/GnashException.h
      libbase/GnashImage.h
      libbase/GnashImageJpeg.cpp
      libbase/GnashImageJpeg.h
      libbase/GnashImagePng.cpp
      libbase/GnashImagePng.h
      libbase/Makefile.am
      libbase/SimpleBuffer.h
      libbase/curl_adapter.cpp
      libbase/image.cpp
      libbase/image.h
      libbase/rc.cpp
      libcore/Property.h
      libcore/PropertyList.cpp
      libcore/PropertyList.h
      libcore/StreamProvider.cpp
      libcore/StreamProvider.h
      libcore/array.cpp
      libcore/array.h
      libcore/as_environment.cpp
      libcore/as_environment.h
      libcore/as_function.cpp
      libcore/as_object.cpp
      libcore/as_object.h
      libcore/as_value.cpp
      libcore/as_value.h
      libcore/asobj/AsBroadcaster.cpp
      libcore/asobj/ClassHierarchy.cpp
      libcore/asobj/Color.cpp
      libcore/asobj/Global.cpp
      libcore/asobj/Key.cpp
      libcore/asobj/Makefile.am
      libcore/asobj/MovieClipLoader.cpp
      libcore/asobj/NetConnection.cpp
      libcore/asobj/NetStreamFfmpeg.cpp
      libcore/asobj/NetStreamFfmpeg.h
      libcore/asobj/SharedObject.cpp
      libcore/asobj/Sound.cpp
      libcore/asobj/SoundFfmpeg.cpp
      libcore/asobj/String_as.cpp
      libcore/asobj/XMLSocket_as.cpp
      libcore/asobj/flash/display/BitmapData_as.cpp
      libcore/asobj/flash/geom/ColorTransform_as.cpp
      libcore/asobj/flash/geom/ColorTransform_as.h
      libcore/asobj/flash/geom/Matrix_as.cpp
      libcore/asobj/flash/geom/Rectangle_as.cpp
      libcore/asobj/flash/geom/Transform_as.cpp
      libcore/asobj/flash/geom_pkg.cpp
      libcore/asobj/flash/geom_pkg.h
      libcore/asobj/xmlnode.cpp
      libcore/asobj/xmlnode.h
      libcore/builtin_function.h
      libcore/button_character_instance.cpp
      libcore/button_character_instance.h
      libcore/character.cpp
      libcore/debugger.cpp
      libcore/edit_text_character.cpp
      libcore/impl.cpp
      libcore/matrix.cpp
      libcore/matrix.h
      libcore/movie_root.cpp
      libcore/movie_root.h
      libcore/namedStrings.cpp
      libcore/namedStrings.h
      libcore/parser/button_character_def.cpp
      libcore/sprite_instance.cpp
      libcore/sprite_instance.h
      libcore/swf_event.h
      libcore/swf_function.cpp
      libcore/swf_function.h
      libcore/timers.cpp
      libcore/types.cpp
      libcore/video_stream_instance.cpp
      libcore/vm/ASHandlers.cpp
      libcore/vm/ActionExec.cpp
      libcore/vm/ActionExec.h
      libcore/vm/Machine.cpp
      libcore/vm/Makefile.am
      libcore/vm/VM.cpp
      libcore/vm/VM.h
      libcore/vm/action.h
      libcore/vm/fn_call.h
      libmedia/AudioDecoder.h
      libmedia/AudioDecoderNellymoser.cpp
      libmedia/AudioDecoderNellymoser.h
      libmedia/AudioDecoderSimple.cpp
      libmedia/AudioDecoderSimple.h
      libmedia/FLVParser.cpp
      libmedia/Makefile.am
      libmedia/MediaHandler.h
      libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
      libmedia/ffmpeg/AudioDecoderFfmpeg.h
      libmedia/ffmpeg/MediaHandlerFfmpeg.cpp
      libmedia/ffmpeg/MediaHandlerFfmpeg.h
      libmedia/ffmpeg/MediaParserFfmpeg.cpp
      libmedia/ffmpeg/MediaParserFfmpeg.h
      libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
      libmedia/ffmpeg/VideoDecoderFfmpeg.h
      libmedia/ffmpeg/ffmpegNetStreamUtil.h
      libmedia/ffmpeg/sound_handler_sdl.cpp
      libmedia/ffmpeg/sound_handler_sdl.h
      libmedia/gst/AudioDecoderGst.cpp
      libmedia/gst/AudioDecoderGst.h
      libmedia/gst/MediaHandlerGst.cpp
      macros/ffmpeg.m4
      macros/ming.m4
      macros/x11.m4
      packaging/xpi.am
      plugin/plugin.cpp
      po/cs.po
      po/de.po
      po/es.po
      po/fi.po
      po/fr.po
      po/it.po
      po/ja.po
      po/sv.po
      testsuite/MovieTester.cpp
      testsuite/actionscript.all/Function.as
      testsuite/actionscript.all/LoadVars.as
      testsuite/actionscript.all/Makefile.am
      testsuite/actionscript.all/Matrix.as
      testsuite/actionscript.all/MovieClip.as
      testsuite/actionscript.all/TextField.as
      testsuite/actionscript.all/XML.as
      testsuite/actionscript.all/array.as
      testsuite/anaylse-results.sh
      testsuite/gnashrc.in
      testsuite/libbase/CurlStreamTest.cpp
      testsuite/libcore.all/AsValueTest.cpp
      testsuite/misc-haxe.all/Makefile.am
      testsuite/misc-ming.all/Makefile.am
      testsuite/misc-ming.all/SharedObjectTest.as
      testsuite/misc-ming.all/SharedObjectTest.sol/sol1.sol
      testsuite/misc-ming.all/SharedObjectTestRunner.sh
      testsuite/misc-ming.all/XMLSocketTest.c
      testsuite/misc-ming.all/matrix_test.c
      testsuite/simple.exp
      testsuite/swfdec/Makefile.am
      testsuite/swfdec/PASSING
      testsuite/swfdec/gen_run_swfdec_testsuite.sh
      utilities/Makefile.am
      README_bzr
      libbase/NetworkAdapter.h
      libcore/asobj/LoadVars_as.cpp
      libcore/asobj/LoadVars_as.h
      libcore/asobj/System_as.cpp
      libcore/asobj/XML_as.cpp
      libcore/asobj/XML_as.h
    ------------------------------------------------------------
    revno: 9735.1.7
    committer: Benjamin Wolsey <address@hidden>
    branch nick: kde4
    timestamp: Mon 2008-09-29 14:17:00 +0200
    message:
      Fix build.
    modified:
      gui/Kde4Gui.cpp
    ------------------------------------------------------------
    revno: 9735.1.8
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-10-03 08:31:33 -0600
    message:
      Get correct paths when using KDE4/QT4
    modified:
      macros/kde.m4
      macros/qt.m4
    ------------------------------------------------------------
    revno: 9735.1.9
    committer: Benjamin Wolsey <address@hidden>
    branch nick: kde4
    timestamp: Wed 2008-10-08 20:17:55 +0200
    message:
      Merge from trunk.
    removed:
      libcore/asobj/NetStreamFfmpeg.cpp
      libcore/asobj/NetStreamFfmpeg.h
      libcore/asobj/NetStreamGst.cpp
      libcore/asobj/NetStreamGst.h
      libcore/asobj/SoundFfmpeg.cpp
      libcore/asobj/SoundFfmpeg.h
      libcore/asobj/SoundGst.cpp
      libcore/asobj/SoundGst.h
      libmedia/gst/SoundGst.cpp
      libmedia/gst/SoundGst.h
      libmedia/gst/SoundHandlerGst.cpp
      libmedia/gst/SoundHandlerGst.h
      libmedia/gst/gstappsink.c
      libmedia/gst/gstappsink.h
      libmedia/gst/gstappsrc.c
      libmedia/gst/gstappsrc.h
      libmedia/gst/gstbuffersrc.c
      libmedia/gst/gstbuffersrc.h
      libmedia/gst/gstflvdemux.c
      libmedia/gst/gstflvdemux.h
      libmedia/gst/gstflvparse.c
      libmedia/gst/gstflvparse.h
    added:
      libbase/GnashSleep.h
      libmedia/README
      libmedia/gst/MediaParserGst.cpp
      libmedia/gst/MediaParserGst.h
      libmedia/gst/swfdec_codec_gst.c
      libmedia/gst/swfdec_codec_gst.h
      testsuite/media/mono44.mp2
      testsuite/media/stereo8.mp3
      testsuite/misc-ming.all/EmbeddedSoundTest-Runner.cpp
      testsuite/misc-ming.all/EmbeddedSoundTest.c
    modified:
      Makefile.am
      README
      TODO
      configure.ac
      gui/Makefile.am
      gui/NullGui.cpp
      gui/Player.cpp
      gui/dump.cpp
      gui/fb.cpp
      gui/gtk.cpp
      gui/gtksup.h
      libbase/ClockTime.cpp
      libbase/GnashImageJpeg.cpp
      libbase/LoadThread.cpp
      libbase/Makefile.am
      libbase/curl_adapter.cpp
      libbase/gnashrc.in
      libbase/image.cpp
      libcore/Makefile.am
      libcore/SWFStream.cpp
      libcore/SWFStream.h
      libcore/asobj/Date.cpp
      libcore/asobj/Date.h
      libcore/asobj/Makefile.am
      libcore/asobj/NetConnection.cpp
      libcore/asobj/NetStream.cpp
      libcore/asobj/NetStream.h
      libcore/asobj/SharedObject.cpp
      libcore/asobj/Sound.cpp
      libcore/asobj/Sound.h
      libcore/asobj/XMLSocket_as.cpp
      libcore/asobj/flash/display/BitmapData_as.h
      libcore/asobj/flash/geom_pkg.cpp
      libcore/asobj/xmlattrs.h
      libcore/character.cpp
      libcore/character.h
      libcore/edit_text_character.h
      libcore/matrix.cpp
      libcore/namedStrings.cpp
      libcore/namedStrings.h
      libcore/parser/Makefile.am
      libcore/parser/SWFMovieDefinition.cpp
      libcore/parser/abc_block.cpp
      libcore/parser/action_buffer.cpp
      libcore/parser/action_buffer.h
      libcore/rect.h
      libcore/swf/tag_loaders.cpp
      libcore/types.cpp
      libcore/vm/ASHandlers.cpp
      libmedia/AudioDecoderSimple.cpp
      libmedia/FLVParser.cpp
      libmedia/Makefile.am
      libmedia/MediaHandler.h
      libmedia/MediaParser.cpp
      libmedia/MediaParser.h
      libmedia/NullSoundHandler.h
      libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
      libmedia/ffmpeg/MediaHandlerFfmpeg.cpp
      libmedia/ffmpeg/MediaHandlerFfmpeg.h
      libmedia/ffmpeg/MediaParserFfmpeg.cpp
      libmedia/ffmpeg/MediaParserFfmpeg.h
      libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
      libmedia/ffmpeg/VideoDecoderFfmpeg.h
      libmedia/ffmpeg/sound_handler_sdl.cpp
      libmedia/ffmpeg/sound_handler_sdl.h
      libmedia/gst/AudioDecoderGst.cpp
      libmedia/gst/AudioDecoderGst.h
      libmedia/gst/GstUtil.cpp
      libmedia/gst/GstUtil.h
      libmedia/gst/MediaHandlerGst.cpp
      libmedia/gst/VideoDecoderGst.cpp
      libmedia/gst/VideoDecoderGst.h
      libmedia/sound_handler.h
      libnet/rtmp_client.cpp
      macros/xpcom.m4
      packaging/xpi.am
      plugin/Makefile.am
      plugin/plugin.cpp
      plugin/plugin.h
      plugin/xpcom/GnashComponent.h
      po/Makefile.am
      po/cs.po
      po/de.po
      po/es.po
      po/fi.po
      po/fr.po
      po/gnash.pot
      po/it.po
      po/ja.po
      po/sv.po
      testsuite/MovieTester.cpp
      testsuite/actionscript.all/Date.as
      testsuite/actionscript.all/LoadVars.as
      testsuite/actionscript.all/MovieClip.as
      testsuite/actionscript.all/Transform.as
      testsuite/misc-ming.all/ButtonEventsTest.c
      testsuite/misc-ming.all/Makefile.am
      testsuite/misc-ming.all/NetStream-SquareTest.c
      testsuite/misc-ming.all/NetStream-SquareTestRunner.cpp
      testsuite/misc-ming.all/matrix_test.c
      utilities/Makefile.am
      utilities/flvdumper.cpp
      utilities/processor.cpp
    ------------------------------------------------------------
    revno: 9735.1.10
    committer: Benjamin Wolsey <address@hidden>
    branch nick: kde4
    timestamp: Thu 2008-10-09 09:35:53 +0200
    message:
      Apply Bernhard Rosenkraenzer's patch:
      - adds better configure support (--enable-gui=kde4,kde should work, 
correct
      linker flags passed).
      - adds a klash4 plugin, which is reportedly not yet fully functional, but
      certainly better than nothing.
      
      Add kde4 to the gui/gnash script.
      
      Add header guards.
    added:
      macros/kde4.m4
      plugin/klash4/
      plugin/klash4/Makefile.am
      plugin/klash4/Makefile.in
      plugin/klash4/README
      plugin/klash4/klash.desktop
      plugin/klash4/klash_part.cpp
      plugin/klash4/klash_part.desktop
      plugin/klash4/klash_part.h
      plugin/klash4/klash_part.moc.in
      plugin/klash4/klashpartui.rc
      plugin/klash4/klashplayer.lsm
      plugin/klash4/pluginsinfo
    modified:
      configure.ac
      gui/Kde4Glue.h
      gui/Kde4GlueAgg.h
      gui/Kde4Gui.h
      gui/Makefile.am
      gui/am-frag/kde4.am
      gui/gnash.in
      plugin/Makefile.am
    ------------------------------------------------------------
    revno: 9735.1.11
    committer: Benjamin Wolsey <address@hidden>
    branch nick: kde4
    timestamp: Thu 2008-11-13 17:00:44 +0100
    message:
      Merge from trunk.
    removed:
      libbase/image.h
      libcore/parser/Timeline.h
      libcore/parser/edit_text_character_def.cpp
      libcore/parser/edit_text_character_def.h
      libcore/text.cpp
      libcore/text.h
      libmedia/MediaBuffer.h
      packaging/debian/gnash-cygnal.manpages
      packaging/debian/gnash-tools.manpages
      packaging/debian/klash.manpages
      packaging/ipkg/GnashG.xpm
      testsuite/samples/batch_test.py
    added:
      ChangeLog
      doc/C/flvdumper.man-xml
      doc/C/preformatted/flvdumper.1.in
      libcore/RunInfo.h
      libcore/swf/DefineButtonCxformTag.cpp
      libcore/swf/DefineButtonSoundTag.cpp
      libcore/swf/DefineButtonSoundTag.h
      libcore/swf/DefineEditTextTag.cpp
      libcore/swf/DefineEditTextTag.h
      libcore/swf/DefineFontNameTag.h
      libcore/swf/DefineFontTag.cpp
      libcore/swf/DefineFontTag.h
      libcore/swf/SoundInfoRecord.cpp
      libcore/swf/SoundInfoRecord.h
      libcore/swf/TextRecord.cpp
      libcore/swf/TextRecord.h
      libcore/swf/VideoFrameTag.cpp
      libcore/swf/VideoFrameTag.h
      libmedia/AudioDecoderSpeex.cpp
      libmedia/AudioDecoderSpeex.h
      libsound/
      libsound/AuxStream.h
      libsound/EmbedSound.cpp
      libsound/EmbedSound.h
      libsound/EmbedSoundInst.cpp
      libsound/EmbedSoundInst.h
      libsound/InputStream.h
      libsound/Makefile.am
      libsound/SoundEnvelope.h
      libsound/sdl/
      libsound/sound_handler.cpp
      packaging/gnash.xpm
      packaging/klash.xpm
      testsuite/actionscript.all/ExternalInterface.as
      testsuite/media/Makefile.am
      testsuite/media/brokenchord.sco
      testsuite/media/brokenchord.wav
      testsuite/media/empty.txt
      testsuite/misc-ming.all/BitmapDataTest.c
      testsuite/misc-ming.all/LoadVarsTest.c
    renamed:
      ChangeLog => ChangeLog-0.8.4
      libbase/image.cpp => libbase/GnashImage.cpp
      libcore/asobj/Key.cpp => libcore/asobj/Key_as.cpp
      libcore/asobj/Key.h => libcore/asobj/Key_as.h
      libcore/asobj/NetStream.cpp => libcore/asobj/NetStream_as.cpp
      libcore/asobj/NetStream.h => libcore/asobj/NetStream_as.h
      libcore/asobj/Number.cpp => libcore/asobj/Number_as.cpp
      libcore/asobj/Number.h => libcore/asobj/Number_as.h
      libcore/asobj/Stage.cpp => libcore/asobj/Stage_as.cpp
      libcore/asobj/Stage.h => libcore/asobj/Stage_as.h
      libcore/asobj/TextSnapshot.cpp => libcore/asobj/TextSnapshot_as.cpp
      libcore/asobj/TextSnapshot.h => libcore/asobj/TextSnapshot_as.h
      libcore/asobj/xmlnode.cpp => libcore/asobj/XMLNode_as.cpp
      libcore/asobj/xmlnode.h => libcore/asobj/XMLNode_as.h
      libcore/button_character_instance.cpp => libcore/Button.cpp
      libcore/button_character_instance.h => libcore/Button.h
      libcore/edit_text_character.cpp => libcore/TextField.cpp
      libcore/edit_text_character.h => libcore/TextField.h
      libcore/font.cpp => libcore/Font.cpp
      libcore/font.h => libcore/Font.h
      libcore/matrix.cpp => libcore/SWFMatrix.cpp
      libcore/matrix.h => libcore/SWFMatrix.h
      libcore/mouse_button_state.h => libcore/MouseButtonState.h
      libcore/parser/button_character_def.cpp => libcore/swf/DefineButtonTag.cpp
      libcore/parser/button_character_def.h => libcore/swf/DefineButtonTag.h
      libcore/parser/text_character_def.cpp => libcore/swf/DefineTextTag.cpp
      libcore/parser/text_character_def.h => libcore/swf/DefineTextTag.h
      libcore/parser/video_stream_def.cpp => 
libcore/swf/DefineVideoStreamTag.cpp
      libcore/parser/video_stream_def.h => libcore/swf/DefineVideoStreamTag.h
      libcore/resource.h => libcore/ExportableResource.h
      libcore/sprite_instance.cpp => libcore/MovieClip.cpp
      libcore/sprite_instance.h => libcore/MovieClip.h
      libcore/types.cpp => libcore/RGBA.cpp
      libcore/types.h => libcore/RGBA.h
      libcore/video_stream_instance.cpp => libcore/Video.cpp
      libcore/video_stream_instance.h => libcore/Video.h
      libmedia/NullSoundHandler.h => libsound/NullSoundHandler.h
      libmedia/Util.cpp => libmedia/AudioResampler.cpp
      libmedia/Util.h => libmedia/AudioResampler.h
      libmedia/ffmpeg/ffmpegNetStreamUtil.cpp => 
libmedia/ffmpeg/AudioResamplerFfmpeg.cpp
      libmedia/ffmpeg/ffmpegNetStreamUtil.h => 
libmedia/ffmpeg/AudioResamplerFfmpeg.h
      libmedia/ffmpeg/sound_handler_sdl.cpp => 
libsound/sdl/sound_handler_sdl.cpp
      libmedia/ffmpeg/sound_handler_sdl.h => libsound/sdl/sound_handler_sdl.h
      libmedia/sound_handler.h => libsound/sound_handler.h
    modified:
      Makefile.am
      NEWS
      README
      backend/Makefile.am
      backend/PathParser.cpp
      backend/PathParser.h
      backend/render_handler.h
      backend/render_handler_agg.cpp
      backend/render_handler_agg_style.h
      backend/render_handler_cairo.cpp
      backend/render_handler_ogl.cpp
      backend/render_handler_ogl.h
      configure.ac
      doc/C/Makefile.am
      doc/C/refmanual/feature_configuration.xml
      doc/DESIGN
      doc/Doxyfile.in
      gui/Makefile.am
      gui/Player.cpp
      gui/Player.h
      gui/am-frag/fltk.am
      gui/dump.cpp
      gui/gnash.cpp
      gui/gtk.cpp
      gui/gtk_glue_agg.cpp
      gui/gtk_glue_agg.h
      gui/gui.cpp
      gui/gui.h
      libamf/Makefile.am
      libamf/amf.cpp
      libamf/amf.h
      libamf/buffer.cpp
      libamf/buffer.h
      libamf/element.cpp
      libamf/element.h
      libamf/flv.cpp
      libamf/flv.h
      libamf/lcshm.cpp
      libamf/lcshm.h
      libamf/sol.cpp
      libamf/sol.h
      libbase/BitsReader.h
      libbase/ClockTime.cpp
      libbase/GnashImage.h
      libbase/GnashImageGif.h
      libbase/GnashImageJpeg.cpp
      libbase/GnashImageJpeg.h
      libbase/GnashImagePng.cpp
      libbase/GnashImagePng.h
      libbase/Makefile.am
      libbase/SimpleBuffer.h
      libbase/URL.cpp
      libbase/curl_adapter.cpp
      libbase/dsodefs.h
      libbase/extension.cpp
      libbase/gnashrc.in
      libbase/log.cpp
      libbase/log.h
      libbase/rc.cpp
      libbase/rc.h
      libbase/sharedlib.cpp
      libbase/string_table.h
      libbase/tree.hh
      libbase/utf8.h
      libcore/ColorMatrixFilter.h
      libcore/DisplayList.cpp
      libcore/DisplayList.h
      libcore/DynamicShape.cpp
      libcore/DynamicShape.h
      libcore/FreetypeGlyphsProvider.cpp
      libcore/FreetypeGlyphsProvider.h
      libcore/Makefile.am
      libcore/PropertyList.cpp
      libcore/PropertyList.h
      libcore/SWFStream.cpp
      libcore/Sprite.h
      libcore/URLAccessManager.cpp
      libcore/array.h
      libcore/as_environment.cpp
      libcore/as_environment.h
      libcore/as_function.cpp
      libcore/as_function.h
      libcore/as_object.cpp
      libcore/as_object.h
      libcore/as_value.cpp
      libcore/as_value.h
      libcore/asobj/AsBroadcaster.cpp
      libcore/asobj/AsBroadcaster.h
      libcore/asobj/ClassHierarchy.cpp
      libcore/asobj/Color.cpp
      libcore/asobj/Global.cpp
      libcore/asobj/LoadVars_as.cpp
      libcore/asobj/LoadableObject.cpp
      libcore/asobj/LoadableObject.h
      libcore/asobj/LocalConnection.cpp
      libcore/asobj/LocalConnection.h
      libcore/asobj/Makefile.am
      libcore/asobj/MovieClipLoader.cpp
      libcore/asobj/NetConnection.cpp
      libcore/asobj/NetConnection.h
      libcore/asobj/Object.cpp
      libcore/asobj/SharedObject.cpp
      libcore/asobj/Sound.cpp
      libcore/asobj/Sound.h
      libcore/asobj/String_as.cpp
      libcore/asobj/System_as.cpp
      libcore/asobj/TextFormat.cpp
      libcore/asobj/TextFormat.h
      libcore/asobj/XMLSocket_as.cpp
      libcore/asobj/XML_as.cpp
      libcore/asobj/XML_as.h
      libcore/asobj/flash/external/ExternalInterface_as.cpp
      libcore/asobj/flash/geom/Matrix_as.cpp
      libcore/asobj/flash/geom/Transform_as.cpp
      libcore/bitmap_info.h
      libcore/character.cpp
      libcore/character.h
      libcore/cxform.cpp
      libcore/fill_style.cpp
      libcore/fill_style.h
      libcore/fontlib.cpp
      libcore/fontlib.h
      libcore/generic_character.cpp
      libcore/gnash.h
      libcore/impl.cpp
      libcore/impl.h
      libcore/movie_instance.cpp
      libcore/movie_instance.h
      libcore/movie_root.cpp
      libcore/movie_root.h
      libcore/namedStrings.cpp
      libcore/namedStrings.h
      libcore/parser/BitmapMovieDefinition.cpp
      libcore/parser/BitmapMovieDefinition.h
      libcore/parser/Makefile.am
      libcore/parser/SWFMovieDefinition.cpp
      libcore/parser/SWFMovieDefinition.h
      libcore/parser/bitmap_character_def.cpp
      libcore/parser/bitmap_character_def.h
      libcore/parser/character_def.h
      libcore/parser/filter_factory.cpp
      libcore/parser/morph2_character_def.cpp
      libcore/parser/morph2_character_def.h
      libcore/parser/movie_definition.h
      libcore/parser/shape_character_def.cpp
      libcore/parser/shape_character_def.h
      libcore/parser/sound_definition.cpp
      libcore/parser/sound_definition.h
      libcore/parser/sprite_definition.cpp
      libcore/parser/sprite_definition.h
      libcore/rect.cpp
      libcore/rect.h
      libcore/render.cpp
      libcore/render.h
      libcore/shape.h
      libcore/styles.h
      libcore/swf.h
      libcore/swf/CSMTextSettingsTag.cpp
      libcore/swf/CSMTextSettingsTag.h
      libcore/swf/ControlTag.h
      libcore/swf/DefineButtonCxformTag.h
      libcore/swf/DefineFontAlignZonesTag.cpp
      libcore/swf/DefineFontAlignZonesTag.h
      libcore/swf/DisplayListTag.h
      libcore/swf/DoActionTag.h
      libcore/swf/DoInitActionTag.h
      libcore/swf/PlaceObject2Tag.cpp
      libcore/swf/PlaceObject2Tag.h
      libcore/swf/RemoveObjectTag.cpp
      libcore/swf/RemoveObjectTag.h
      libcore/swf/ScriptLimitsTag.h
      libcore/swf/SetBackgroundColorTag.h
      libcore/swf/StartSoundTag.cpp
      libcore/swf/StartSoundTag.h
      libcore/swf/StreamSoundBlockTag.cpp
      libcore/swf/StreamSoundBlockTag.h
      libcore/swf/TagLoadersTable.h
      libcore/swf/tag_loaders.cpp
      libcore/swf/tag_loaders.h
      libcore/swf_function.cpp
      libcore/timers.cpp
      libcore/vm/ASHandlers.cpp
      libcore/vm/ActionExec.cpp
      libcore/vm/ExecutableCode.h
      libcore/vm/Makefile.am
      libcore/vm/SafeStack.h
      libcore/vm/VM.cpp
      libcore/vm/VM.h
      libcore/vm/action.cpp
      libcore/vm/action.h
      libmedia/AudioDecoder.h
      libmedia/AudioDecoderNellymoser.cpp
      libmedia/AudioDecoderNellymoser.h
      libmedia/AudioDecoderSimple.cpp
      libmedia/AudioDecoderSimple.h
      libmedia/FLVParser.cpp
      libmedia/FLVParser.h
      libmedia/Makefile.am
      libmedia/MediaHandler.cpp
      libmedia/MediaHandler.h
      libmedia/MediaParser.cpp
      libmedia/MediaParser.h
      libmedia/README
      libmedia/SoundInfo.h
      libmedia/VideoDecoder.h
      libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
      libmedia/ffmpeg/AudioDecoderFfmpeg.h
      libmedia/ffmpeg/MediaHandlerFfmpeg.cpp
      libmedia/ffmpeg/MediaHandlerFfmpeg.h
      libmedia/ffmpeg/MediaParserFfmpeg.cpp
      libmedia/ffmpeg/MediaParserFfmpeg.h
      libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
      libmedia/ffmpeg/VideoDecoderFfmpeg.h
      libmedia/ffmpeg/ffmpegHeaders.h
      libmedia/gst/AudioDecoderGst.cpp
      libmedia/gst/AudioDecoderGst.h
      libmedia/gst/GstUtil.cpp
      libmedia/gst/GstUtil.h
      libmedia/gst/MediaHandlerGst.cpp
      libmedia/gst/MediaHandlerGst.h
      libmedia/gst/MediaParserGst.cpp
      libmedia/gst/MediaParserGst.h
      libmedia/gst/VideoDecoderGst.cpp
      libmedia/gst/VideoDecoderGst.h
      libnet/Makefile.am
      libnet/cque.cpp
      libnet/cque.h
      libnet/handler.cpp
      libnet/handler.h
      libnet/http.cpp
      libnet/http.h
      libnet/rtmp.cpp
      libnet/rtmp.h
      libnet/rtmp_client.cpp
      libnet/rtmp_client.h
      libnet/rtmp_msg.cpp
      libnet/rtmp_msg.h
      libnet/rtmp_server.cpp
      libnet/rtmp_server.h
      macros/ffmpeg.m4
      macros/xpcom.m4
      packaging/debian/gnash-common.install
      packaging/debian/mozilla-plugin-gnash.install
      packaging/debian/rules
      packaging/redhat/gnash.spec
      packaging/rpm.am
      packaging/snapshot.am
      plugin/Makefile.am
      plugin/klash/Makefile.am
      plugin/mozilla-sdk/Makefile.am
      plugin/mozilla-sdk/np_entry.cpp
      plugin/plugin.cpp
      plugin/win32/Makefile.am
      plugin/win32/npgnash.c
      plugin/win32/plugin.cpp
      plugin/win32/plugin.h
      po/cs.po
      pythonmodule/gnashpython.cpp
      testsuite/FuzzyPixel.cpp
      testsuite/FuzzyPixel.h
      testsuite/Makefile.am
      testsuite/MovieTester.cpp
      testsuite/MovieTester.h
      testsuite/actionscript.all/AsBroadcaster.as
      testsuite/actionscript.all/LoadVars.as
      testsuite/actionscript.all/Makefile.am
      testsuite/actionscript.all/MovieClip.as
      testsuite/actionscript.all/Object.as
      testsuite/actionscript.all/Sound.as
      testsuite/actionscript.all/String.as
      testsuite/actionscript.all/TextField.as
      testsuite/actionscript.all/Transform.as
      testsuite/actionscript.all/Video.as
      testsuite/actionscript.all/delete.as
      testsuite/actionscript.all/enumerate.as
      testsuite/actionscript.all/toString_valueOf.as
      testsuite/gnashrc.in
      testsuite/libamf.all/test_amf.cpp
      testsuite/libamf.all/test_buffer.cpp
      testsuite/libamf.all/test_el.cpp
      testsuite/libamf.all/test_flv.cpp
      testsuite/libamf.all/test_lc.cpp
      testsuite/libamf.all/test_sol.cpp
      testsuite/libbase/URLTest.cpp
      testsuite/libcore.all/AsValueTest.cpp
      testsuite/libcore.all/ClassSizes.cpp
      testsuite/libcore.all/DisplayListTest.cpp
      testsuite/libcore.all/MatrixTest.cpp
      testsuite/libcore.all/PropertyListTest.cpp
      testsuite/libnet.all/Makefile.am
      testsuite/libnet.all/test_cque.cpp
      testsuite/libnet.all/test_handler.cpp
      testsuite/libnet.all/test_rtmp.cpp
      testsuite/media/README
      testsuite/misc-ming.all/ButtonEventsTest-Runner.cpp
      testsuite/misc-ming.all/DefineEditTextTest-Runner.cpp
      testsuite/misc-ming.all/DefineEditTextTest.c
      testsuite/misc-ming.all/DefineEditTextVariableNameTest-Runner.cpp
      testsuite/misc-ming.all/DefineTextTest-Runner.cpp
      testsuite/misc-ming.all/DragDropTestRunner.cpp
      testsuite/misc-ming.all/DrawingApiTest.as
      testsuite/misc-ming.all/DrawingApiTestRunner.cpp
      testsuite/misc-ming.all/EmbeddedSoundTest-Runner.cpp
      testsuite/misc-ming.all/EmbeddedSoundTest.c
      testsuite/misc-ming.all/Makefile.am
      testsuite/misc-ming.all/NetStream-SquareTest.c
      testsuite/misc-ming.all/NetStream-SquareTestRunner.cpp
      testsuite/misc-ming.all/PrototypeEventListenersTestRunner.cpp
      testsuite/misc-ming.all/RollOverOutTest-Runner.cpp
      testsuite/misc-ming.all/SpriteButtonEventsTest-Runner.cpp
      testsuite/misc-ming.all/Video-EmbedSquareTest.c
      testsuite/misc-ming.all/Video-EmbedSquareTestRunner.cpp
      testsuite/misc-ming.all/attachMovieLoopingTestRunner.cpp
      testsuite/misc-ming.all/attachMovieTestRunner.cpp
      testsuite/misc-ming.all/eventSoundTest1-Runner.cpp
      testsuite/misc-ming.all/eventSoundTest1.c
      testsuite/misc-ming.all/intervalTestRunner.cpp
      testsuite/misc-ming.all/key_event_testrunner.cpp
      testsuite/misc-ming.all/loadMovieTestRunner.cpp
      testsuite/misc-ming.all/loop_test-Runner.cpp
      testsuite/misc-ming.all/loop_test2runner.cpp
      testsuite/misc-ming.all/masks_test2runner.cpp
      testsuite/misc-ming.all/masks_testrunner.cpp
      testsuite/misc-ming.all/ming_utils.c
      testsuite/misc-ming.all/morph_test1runner.cpp
      testsuite/misc-ming.all/registerClassTestRunner.cpp
      testsuite/misc-ming.all/replace_buttons1test_runner.cpp
      testsuite/misc-ming.all/replace_shapes1test_runner.cpp
      testsuite/misc-ming.all/replace_sprites1test_runner.cpp
      testsuite/misc-ming.all/root_stop_testrunner.cpp
      testsuite/misc-ming.all/simple_loop_testrunner.cpp
      testsuite/misc-ming.all/streamingSoundTest1-Runner.cpp
      testsuite/misc-swfc.all/Makefile.am
      testsuite/misc-swfc.all/button_test1runner.cpp
      testsuite/misc-swfmill.all/Makefile.am
      testsuite/misc-swfmill.all/backgroundTestRunner.cpp
      testsuite/movies.all/Makefile.am
      testsuite/movies.all/gravity_embedded-TestRunner.cpp
      testsuite/samples/Makefile.am
      testsuite/samples/clip_as_button2-TestRunner.cpp
      testsuite/samples/gotoFrameOnKeyEvent-TestRunner.cpp
      testsuite/samples/subshapes-TestRunner.cpp
      testsuite/swfdec/Makefile.am
      testsuite/swfdec/PASSING
      utilities/Makefile.am
      utilities/dumpshm.cpp
      utilities/flvdumper.cpp
      utilities/processor.cpp
      ChangeLog-0.8.4
      libbase/GnashImage.cpp
      libcore/asobj/Key_as.cpp
      libcore/asobj/Key_as.h
      libcore/asobj/NetStream_as.cpp
      libcore/asobj/NetStream_as.h
      libcore/asobj/Number_as.cpp
      libcore/asobj/Stage_as.cpp
      libcore/asobj/Stage_as.h
      libcore/asobj/TextSnapshot_as.cpp
      libcore/asobj/TextSnapshot_as.h
      libcore/asobj/XMLNode_as.cpp
      libcore/asobj/XMLNode_as.h
      libcore/Button.cpp
      libcore/Button.h
      libcore/TextField.cpp
      libcore/TextField.h
      libcore/Font.cpp
      libcore/Font.h
      libcore/SWFMatrix.cpp
      libcore/SWFMatrix.h
      libcore/MouseButtonState.h
      libcore/swf/DefineButtonTag.cpp
      libcore/swf/DefineButtonTag.h
      libcore/swf/DefineTextTag.cpp
      libcore/swf/DefineTextTag.h
      libcore/swf/DefineVideoStreamTag.cpp
      libcore/swf/DefineVideoStreamTag.h
      libcore/ExportableResource.h
      libcore/MovieClip.cpp
      libcore/MovieClip.h
      libcore/RGBA.cpp
      libcore/RGBA.h
      libcore/Video.cpp
      libcore/Video.h
      libsound/NullSoundHandler.h
      libmedia/AudioResampler.cpp
      libmedia/AudioResampler.h
      libmedia/ffmpeg/AudioResamplerFfmpeg.cpp
      libmedia/ffmpeg/AudioResamplerFfmpeg.h
      libsound/sdl/sound_handler_sdl.cpp
      libsound/sdl/sound_handler_sdl.h
      libsound/sound_handler.h
    ------------------------------------------------------------
    revno: 9735.1.12
    committer: Benjamin Wolsey <address@hidden>
    branch nick: kde4
    timestamp: Thu 2008-11-13 17:07:59 +0100
    message:
      Apply Bernhard Rosenkraenzer's patches.
    modified:
      gui/Kde4Gui.cpp
      gui/Kde4Gui.h
      gui/am-frag/kde4.am
      plugin/klash4/Makefile.in
    ------------------------------------------------------------
    revno: 9735.1.13
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:22:01 -0700
    message:
      Cleanup configuring for QT3, QT4, KDE3, and KDE4, by separating the old
      macros into their own files. This reduces complexity for the obscure
      differences between how these 3 packages get installed by variious
      distributions. 
    added:
      macros/qt4.m4
    renamed:
      macros/kde.m4 => macros/kde3.m4
      macros/qt.m4 => macros/qt3.m4
    modified:
      macros/kde4.m4
      macros/libslist
      macros/kde3.m4
      macros/qt3.m4
    ------------------------------------------------------------
    revno: 9735.1.14
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:25:03 -0700
    message:
      renamed to klash3.moc.in.
    removed:
      gui/klash.moc.in
    ------------------------------------------------------------
    revno: 9735.1.15
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:26:20 -0700
    message:
      rename file
    removed:
      gui/Kde4.moc
    added:
      gui/klash4.moc.in
    ------------------------------------------------------------
    revno: 9735.1.16
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:26:50 -0700
    message:
      rename files to be clearer
    renamed:
      gui/am-frag/kde.am => gui/am-frag/kde3.am
      gui/am-frag/qtopia.am => gui/am-frag/qtopia3.am
    modified:
      gui/am-frag/kde4.am
      gui/am-frag/kde3.am
      gui/am-frag/qtopia3.am
    ------------------------------------------------------------
    revno: 9735.1.17
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:38:45 -0700
    message:
      include klash4.moc instead of Kde4
    modified:
      gui/Kde4Gui.cpp
    ------------------------------------------------------------
    revno: 9735.1.18
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:39:17 -0700
    message:
      include klash3.moc instead of klash.moc.
      use new macros from refactored config macros.
    modified:
      gui/kde.cpp
    ------------------------------------------------------------
    revno: 9735.1.19
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:40:33 -0700
    message:
      use new constants from refactored config macros.
    modified:
      gui/gui_kde.cpp
    ------------------------------------------------------------
    revno: 9735.1.20
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:41:27 -0700
    message:
      use renamed variables for the whole qt/kde/3/4 mess.
    modified:
      Makefile.am
      gui/Makefile.am
      plugin/Makefile.am
      plugin/klash/Makefile.am
      plugin/klash4/Makefile.am
      plugin/klash4/Makefile.in
    ------------------------------------------------------------
    revno: 9735.1.21
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:41:43 -0700
    message:
      use new constants from refactored config macros.
    modified:
      gui/Player.cpp
    ------------------------------------------------------------
    revno: 9735.1.22
    committer: address@hidden
    branch nick: kde4
    timestamp: Fri 2008-11-14 15:42:03 -0700
    message:
      Rearrange how all the QT and KDE paths get found.
      Cleanup the display messages, both kde3 and kde4 can cooexist now.
    modified:
      configure.ac
    ------------------------------------------------------------
    revno: 9735.1.23
    committer: Benjamin Wolsey <address@hidden>
    branch nick: kde4
    timestamp: Thu 2008-12-04 09:57:10 +0100
    message:
      Don't distribute Makefile.in.
    removed:
      plugin/klash4/Makefile.in
    ------------------------------------------------------------
    revno: 9735.1.24
    committer: Benjamin Wolsey <address@hidden>
    branch nick: kde4
    timestamp: Thu 2008-12-04 10:27:57 +0100
    message:
      Add recreated moc files.
      
      Apply patch from John Wimer <address@hidden> adding fullscreen support
      (invalidated bounds not yet updated correctly).
    modified:
      gui/Kde4Gui.cpp
      gui/Kde4Gui.h
      gui/klash4.moc.in
      plugin/klash4/klash_part.moc.in
    ------------------------------------------------------------
    revno: 9735.1.25
    committer: Benjamin Wolsey <address@hidden>
    branch nick: kde4
    timestamp: Thu 2008-12-04 11:21:27 +0100
    message:
      Merge from trunk.
    removed:
      libcore/asobj/xmlattrs.cpp
      libcore/asobj/xmlattrs.h
      libcore/shape.cpp
      macros/libXML.m4
    added:
      libbase/GnashSystemIOHeaders.h
      libcore/asobj/PlayHead.cpp
      libcore/asobj/PlayHead.h
      libcore/swf.cpp
      testsuite/misc-ming.all/easysound.as
      testsuite/misc-ming.all/widgets.as
    modified:
      Makefile.am
      backend/render_handler_agg.cpp
      configure.ac
      cygnal/crc.cpp
      cygnal/cygnal.cpp
      cygnal/stream.cpp
      cygnal/testsuite/cygnal.all/test_crc.cpp
      doc/C/refmanual/code_dependencies.xml
      doc/C/refmanual/custompath_configuration.xml
      extensions/fileio/fileio.cpp
      gui/Player.cpp
      gui/aqua.cpp
      gui/fb.cpp
      gui/gtk.cpp
      gui/gtk_glue_agg.cpp
      gui/gtk_glue_agg.h
      gui/gui.cpp
      gui/sdl.cpp
      libamf/amf.cpp
      libamf/amftest.cpp
      libamf/lcshm.cpp
      libamf/lcshm.h
      libamf/sol.cpp
      libbase/BitsReader.h
      libbase/GnashImage.cpp
      libbase/GnashImage.h
      libbase/GnashImageGif.cpp
      libbase/GnashImageJpeg.cpp
      libbase/GnashImageJpeg.h
      libbase/GnashImagePng.cpp
      libbase/Makefile.am
      libbase/SimpleBuffer.h
      libbase/URL.cpp
      libbase/curl_adapter.cpp
      libbase/log.h
      libbase/noseek_fd_adapter.cpp
      libbase/tu_file.cpp
      libbase/utf8.h
      libbase/utility.h
      libcore/Button.cpp
      libcore/Button.h
      libcore/CharacterProxy.cpp
      libcore/DisplayList.cpp
      libcore/DisplayList.h
      libcore/DynamicShape.h
      libcore/Font.cpp
      libcore/LoadVariablesThread.cpp
      libcore/Makefile.am
      libcore/MovieClip.cpp
      libcore/MovieClip.h
      libcore/RGBA.cpp
      libcore/SWFMatrix.cpp
      libcore/SWFStream.cpp
      libcore/SWFStream.h
      libcore/StreamProvider.cpp
      libcore/StreamProvider.h
      libcore/TextField.cpp
      libcore/TextField.h
      libcore/URLAccessManager.cpp
      libcore/Video.cpp
      libcore/Video.h
      libcore/array.cpp
      libcore/array.h
      libcore/as_environment.cpp
      libcore/as_environment.h
      libcore/as_function.cpp
      libcore/as_object.h
      libcore/as_prop_flags.h
      libcore/as_value.cpp
      libcore/as_value.h
      libcore/asobj/AsBroadcaster.cpp
      libcore/asobj/ClassHierarchy.cpp
      libcore/asobj/Date.cpp
      libcore/asobj/Global.cpp
      libcore/asobj/Key_as.cpp
      libcore/asobj/LoadVars_as.cpp
      libcore/asobj/LocalConnection.cpp
      libcore/asobj/LocalConnection.h
      libcore/asobj/Makefile.am
      libcore/asobj/MovieClipLoader.cpp
      libcore/asobj/NetConnection.cpp
      libcore/asobj/NetConnection.h
      libcore/asobj/NetStream_as.cpp
      libcore/asobj/NetStream_as.h
      libcore/asobj/Object.cpp
      libcore/asobj/Selection.cpp
      libcore/asobj/SharedObject.cpp
      libcore/asobj/Sound.cpp
      libcore/asobj/Sound.h
      libcore/asobj/String_as.cpp
      libcore/asobj/XMLNode_as.cpp
      libcore/asobj/XMLNode_as.h
      libcore/asobj/XMLSocket_as.cpp
      libcore/asobj/XML_as.cpp
      libcore/asobj/XML_as.h
      libcore/asobj/flash/display/BitmapData_as.cpp
      libcore/character.cpp
      libcore/character.h
      libcore/fontlib.cpp
      libcore/impl.cpp
      libcore/movie_instance.cpp
      libcore/movie_instance.h
      libcore/movie_root.cpp
      libcore/movie_root.h
      libcore/namedStrings.cpp
      libcore/namedStrings.h
      libcore/parser/SWFMovieDefinition.cpp
      libcore/parser/SWFMovieDefinition.h
      libcore/parser/action_buffer.cpp
      libcore/parser/action_buffer.h
      libcore/parser/character_def.h
      libcore/parser/movie_definition.h
      libcore/parser/shape_character_def.cpp
      libcore/parser/shape_character_def.h
      libcore/parser/sprite_definition.h
      libcore/swf.h
      libcore/swf/DefineButtonSoundTag.h
      libcore/swf/PlaceObject2Tag.cpp
      libcore/swf/SoundInfoRecord.cpp
      libcore/swf/SoundInfoRecord.h
      libcore/swf/StartSoundTag.cpp
      libcore/swf/StartSoundTag.h
      libcore/swf/StreamSoundBlockTag.cpp
      libcore/swf/tag_loaders.cpp
      libcore/vm/ASHandlers.cpp
      libcore/vm/ASHandlers.h
      libcore/vm/ActionExec.cpp
      libcore/vm/ActionExec.h
      libcore/vm/CodeStream.h
      libcore/vm/Machine.cpp
      libcore/vm/VM.cpp
      libcore/vm/VM.h
      libcore/vm/action.cpp
      libcore/vm/action.h
      libcore/vm/fn_call.h
      libmedia/FLVParser.cpp
      libmedia/MediaHandler.cpp
      libmedia/MediaParser.h
      libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
      libmedia/ffmpeg/MediaParserFfmpeg.cpp
      libmedia/gst/MediaHandlerGst.cpp
      libmedia/gst/MediaParserGst.cpp
      libmedia/gst/VideoDecoderGst.cpp
      libnet/http.cpp
      libnet/network.cpp
      libsound/sdl/sound_handler_sdl.cpp
      libsound/sdl/sound_handler_sdl.h
      libsound/sound_handler.cpp
      libsound/sound_handler.h
      plugin/plugin.cpp
      plugin/plugin.h
      testsuite/MovieTester.cpp
      testsuite/actionscript.all/LocalConnection.as
      testsuite/actionscript.all/MovieClip.as
      testsuite/actionscript.all/NetConnection.as
      testsuite/actionscript.all/Selection.as
      testsuite/actionscript.all/Sound.as
      testsuite/actionscript.all/XML.as
      testsuite/actionscript.all/XMLNode.as
      testsuite/actionscript.all/setProperty.as
      testsuite/libamf.all/test_lc.cpp
      testsuite/libamf.all/test_number.cpp
      testsuite/libamf.all/test_object.cpp
      testsuite/libamf.all/test_string.cpp
      testsuite/libamf.all/test_variable.cpp
      testsuite/libbase/NoSeekFileTest.cpp
      testsuite/libbase/TCXXRc.cpp
      testsuite/libbase/URLTest.cpp
      testsuite/libcore.all/AsValueTest.cpp
      testsuite/libcore.all/BitsReaderTest.cpp
      testsuite/libcore.all/StreamTest.cpp
      testsuite/libcore.all/as_prop_flagsTest.cpp
      testsuite/libnet.all/test_cque.cpp
      testsuite/libnet.all/test_crc.cpp
      testsuite/libnet.all/test_handler.cpp
      testsuite/libnet.all/test_http.cpp
      testsuite/misc-ming.all/DefineEditTextTest.c
      testsuite/misc-ming.all/DragDropTestRunner.cpp
      testsuite/misc-ming.all/EmbeddedSoundTest-Runner.cpp
      testsuite/misc-ming.all/NetStream-SquareTest.c
      testsuite/misc-ming.all/NetStream-SquareTestRunner.cpp
      testsuite/misc-ming.all/attachMovieLoopingTest.c
      testsuite/misc-ming.all/attachMovieLoopingTestRunner.cpp
      testsuite/misc-ming.all/eventSoundTest1-Runner.cpp
      testsuite/misc-ming.all/intervalTestRunner.cpp
      testsuite/misc-ming.all/loadMovieTestRunner.cpp
      testsuite/misc-swfc.all/swf4opcode.sc
      testsuite/swfdec/PASSING
      utilities/Makefile.am
      utilities/dumpshm.cpp
      utilities/soldumper.cpp
=== modified file 'Makefile.am'
--- a/Makefile.am       2008-12-20 02:03:30 +0000
+++ b/Makefile.am       2008-12-27 09:53:28 +0000
@@ -173,17 +173,29 @@
        @echo "GUI Toolkit decoding support..." 
        @echo " SDL_CFLAGS is $(SDL_CFLAGS)"
        @echo " SDL_LIBS is $(SDL_LIBS)"
-if BUILD_KDE_GUI
-       @echo " KDE_CFLAGS is $(KDE_CFLAGS)"
-       @echo " KDE_LIBS is $(KDE_LIBS)"
-endif
-if BUILD_QT_GUI
-       @echo " QT_CFLAGS is $(QT_CFLAGS)"
-       @echo " QT_LIBS is $(QT_LIBS)"
-endif
-if BUILD_QTOPIA_GUI
-       @echo " QTOPIA_CFLAGS is $(QTOPIA_CFLAGS)"
-       @echo " QTOPIA_LIBS is $(QTOPIA_LIBS)"
+if BUILD_KDE3_GUI
+       @echo " KDE3_CFLAGS is $(KDE3_CFLAGS)"
+       @echo " KDE3_LIBS is $(KDE3_LIBS)"
+endif
+if BUILD_KDE4_GUI
+       @echo " KDE4_CFLAGS is $(KDE4_CFLAGS)"
+       @echo " KDE4_LIBS is $(KDE4_LIBS)"
+endif
+if BUILD_QT3_GUI
+       @echo " QT3_CFLAGS is $(QT3_CFLAGS)"
+       @echo " QT3_LIBS is $(QT3_LIBS)"
+endif
+if BUILD_QT4_GUI
+       @echo " QT4_CFLAGS is $(QT4_CFLAGS)"
+       @echo " QT4_LIBS is $(QT4_LIBS)"
+endif
+if BUILD_QTOPIA3_GUI
+       @echo " QTOPIA3_CFLAGS is $(QTOPIA3_CFLAGS)"
+       @echo " QTOPIA3_LIBS is $(QTOPIA3_LIBS)"
+endif
+if BUILD_QTOPIA4_GUI
+       @echo " QTOPIA4_CFLAGS is $(QTOPIA4_CFLAGS)"
+       @echo " QTOPIA4_LIBS is $(QTOPIA4_LIBS)"
 endif
 if BUILD_FLTK_GUI
        @echo " FLTK2_CFLAGS is $(FLTK2_CFLAGS)"
@@ -310,11 +322,17 @@
 if BUILD_ALP_GUI
        @echo " Supported GUI: ALP/Hiker"
 endif
-if BUILD_KDE_GUI
-       @echo " Supported GUI: KDE"
-endif
-if BUILD_QTOPIA_GUI
-       @echo " Supported GUI: QTOPIA"
+if BUILD_KDE3_GUI
+       @echo " Supported GUI: KDE3"
+endif
+if BUILD_KDE4_GUI
+       @echo " Supported GUI: KDE4"
+endif
+if BUILD_QTOPIA3_GUI
+       @echo " Supported GUI: QTOPIA3"
+endif
+if BUILD_QTOPIA4_GUI
+       @echo " Supported GUI: QTOPIA4"
 endif
 if BUILD_SDL_GUI
        @echo " Supported GUI: SDL"
@@ -344,14 +362,23 @@
        @if test -n "$(STATISTICS_LIST)" ; then \
          echo "        Statistics features enables are: $(STATISTICS_LIST)"; \
        fi
-if KPARTS
-       @echo " KPARTS (KDE) plugin enabled"
-       @echo "   KPARTS plugin install dir: $(KDE_PLUGINDIR)"
-       @echo "   KPARTS service install dir: $(KDE_SERVICESDIR)"
-       @echo "   KPARTS config dir: ${KDE_CONFIGDIR}"
-       @echo "   KPARTS appsdata dir: ${KDE_APPSDATADIR}"
-else
-       @echo " KPARTS (KDE) plugin disabled"
+if KPARTS3
+       @echo " KPARTS 3.x (KDE) plugin enabled"
+       @echo "   KPARTS 3.x plugin install dir: $(KDE_PLUGINDIR)"
+       @echo "   KPARTS 3.x service install dir: $(KDE_SERVICESDIR)"
+       @echo "   KPARTS 3.x config dir: ${KDE_CONFIGDIR}"
+       @echo "   KPARTS 3.x appsdata dir: ${KDE_APPSDATADIR}"
+else
+       @echo " KPARTS 3.x (KDE) plugin disabled"
+endif
+if KPARTS4
+       @echo " KPARTS 4.x (KDE) plugin enabled"
+       @echo "   KPARTS 4.x plugin install dir: $(KDE_PLUGINDIR)"
+       @echo "   KPARTS 4.x service install dir: $(KDE_SERVICESDIR)"
+       @echo "   KPARTS 4.x config dir: ${KDE_CONFIGDIR}"
+       @echo "   KPARTS 4.x appsdata dir: ${KDE_APPSDATADIR}"
+else
+       @echo " KPARTS 4.x (KDE) plugin disabled"
 endif
 
 if NPAPI

=== modified file 'configure.ac'
--- a/configure.ac      2008-12-20 02:03:30 +0000
+++ b/configure.ac      2008-12-27 09:53:28 +0000
@@ -448,21 +448,25 @@
 
 AM_CONDITIONAL(SDKINSTALL, test x$sdkinstall = xyes)
 
-has_kde=no
-has_gtk2=no
+has_gtk2=no                     dnl FIXME: has_* shouldn't be in configure but 
in a macro
+
+build_kde3=no
+build_kde4=no
+build_qtopia3=no
+build_qtopia4=no
+build_gtk=no
+build_qt3=no
+build_qt4=no
 build_fb=no
 build_fltk=no
-build_kde=no
-build_gtk=no
 build_sdl=no
 build_riscos=no
 build_aqua=no
 build_hildon=no
 build_alp=no
-build_qtopia=no
 build_dump=no
 AC_ARG_ENABLE(gui,
-  AC_HELP_STRING([--enable-gui=], [Use the specified GUI toolkit 
(default=gtk,kde)]),
+  AC_HELP_STRING([--enable-gui=], [Use the specified GUI toolkit 
(default=gtk,kde3)]),
   if test -n ${enableval}; then
     enableval=`echo ${enableval} | tr '\054' ' ' `
   fi
@@ -484,15 +488,27 @@
 dnl        AC_DEFINE(USE_GTK, [1], [Use the GTK GUI])
         build_gtk=yes
         ;;
-      kde|KDE)
-        build_kde=yes
-        ;;
-      qtopia|QTOPIA)
-        build_qtopia=yes
-        build_qt=yes
-        ;;
-      qt|QT)
-        build_qt=yes
+      kde3|KDE3)
+        build_qt3=yes
+        build_kde3=yes
+        ;;
+      kde4|KDE4)
+        build_qt4=yes
+        build_kde4=yes
+        ;;
+      qtopia3|QTOPIA3)
+        build_qtopia3=yes
+        build_qt3=yes
+        ;;
+      qtopia4|QTOPIA4)
+        build_qtopia4=yes
+        build_qt4=yes
+        ;;
+      qt3|QT3)
+        build_qt3=yes
+        ;;
+      qt4|QT4)
+        build_qt4=yes
         ;;
       sdl|SDL)
         build_sdl=yes
@@ -516,7 +532,8 @@
         build_dump=yes
         build_fb=yes
         build_fltk=yes
-        build_kde=yes
+        build_kde3=yes
+        build_kde4=yes
         build_gtk=yes
         build_sdl=yes
 dnl        build_qtopia=yes
@@ -524,14 +541,14 @@
 dnl        build_alp=yes
 dnl        build_riscos=yes
         ;;
-      *) AC_MSG_ERROR([invalid gui ${enableval} given (accept: 
gtk|kde|fltk|sdl|riscos|aqua|fb|hildon|alp|qtopia|dump)])
+      *) AC_MSG_ERROR([invalid gui ${enableval} given (accept: 
gtk|kde3|kde4|fltk|sdl|riscos|aqua|fb|hildon|alp|qtopia3|qtopia4|dump)])
          ;;
       esac]
     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
     if test "x$val" = "x$enableval"; then
       break;
     fi
-  done,build_gtk=yes;build_kde=yes;
+  done,build_gtk=yes;build_kde3=yes;build_qt3=yes;
 )
 
 add_renderer=
@@ -1117,7 +1134,7 @@
   fi
   cross_compiling=yes
 dnl  build_gtk=yes
-  build_kde=no
+  build_kde3=no
   build_ogl=no
   build_agg=yes
 fi
@@ -1158,7 +1175,7 @@
 if test x$build_hildon = xyes; then
   GNASH_PATH_HILDON
   build_gtk=yes
-  build_kde=no
+  build_kde3=no
 dnl   build_ogl=no
 dnl   build_agg=yes
 fi
@@ -1208,13 +1225,25 @@
 dnl Add KPARTS support, if specified or KDE gui is built
 dnl ----------------------------------------------------
 
-AC_ARG_ENABLE(kparts,
-  AC_HELP_STRING([--disable-kparts], [Disble support for Konqueror plugin 
(default: enabled if kde gui is)]),
-[case "${enableval}" in
-  yes) kparts=yes ;;
-  no)  kparts=no ;;
-  *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kpart option]) ;;
-esac],kparts=$build_kde)
+AC_ARG_ENABLE(kparts3,
+  AC_HELP_STRING([--disable-kparts3], [Disble support for Konqueror 3.x plugin 
(default: enabled if kde3 gui is)]),
+[case "${enableval}" in
+  yes) build_kparts3=yes ;;
+  no)  build_kparts3=no ;;
+  *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts3 option]) ;;
+esac],build_kparts3=$build_kde3)
+
+dnl --------------------------------------------------------
+dnl Add KPARTS 4.x support, if specified or KDE gui is built
+dnl --------------------------------------------------------
+
+AC_ARG_ENABLE(kparts4,
+  AC_HELP_STRING([--disable-kparts4], [Disble support for Konqueror 4.x plugin 
(default: enabled if kde4 gui is)]),
+[case "${enableval}" in
+  yes) build_kparts4=yes ;;
+  no)  build_kparts4=no ;;
+  *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts4 option]) ;;
+esac],build_kparts4=$build_kde4)
 
 dnl ----------------------------------------------------
 dnl Add NPAPI support, if specified or GTK gui is built
@@ -1245,7 +1274,8 @@
 )
 if test x$plugins = xno; then
   npapi=no
-  kparts=no
+  build_kparts3=no
+  build_kparts4=no
 fi
 
 dnl
@@ -1610,27 +1640,32 @@
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(short)
 
-dnl # Check KDE if kde gui or kparts were requested
-if test x$build_kde = xyes -o x$kparts = xyes; then
-  GNASH_PATH_KDE
-fi
-if test x$build_qt = xyes -o x$build_qtopia = xyes -o x$build_kde = xyes; then
-  GNASH_PATH_QT
-  if test x$build_qtopia = xyes; then
-    GNASH_PATH_QTOPIA
-  fi
-fi
-AM_CONDITIONAL(HAVE_QTOPIA, [test x$has_qtopia = xyes])
-AM_CONDITIONAL(HAVE_KDE, [test x$has_kde = xyes])
-AM_CONDITIONAL(HAVE_QT, [test x$has_qt = xyes])
-
-AM_CONDITIONAL(HAVE_QTOPIA_2, [test x"$gnash_qtopia_version" = x2])
-AM_CONDITIONAL(HAVE_QTOPIA_3, [test x"$gnash_qtopia_version" = x3])
-AM_CONDITIONAL(HAVE_QTOPIA_4, [test x"$gnash_qtopia_version" = x4])
-
-AM_CONDITIONAL(HAVE_QT_2, [test x"${gnash_qt_version}" != x && test 
"${gnash_qt_version}" -eq 2])
-AM_CONDITIONAL(HAVE_QT_3, [test x"${gnash_qt_version}" != x && test 
"${gnash_qt_version}" -eq 3])
-AM_CONDITIONAL(HAVE_QT_4, [test x"${gnash_qt_version}" != x && test 
"${gnash_qt_version}" -eq 4])
+GNASH_PATH_QT3
+GNASH_PATH_KDE3
+
+GNASH_PATH_QT4
+GNASH_PATH_KDE4
+
+dnl Qtopia is a desktop environment for embedded devices.
+dnl GNASH_PATH_QTOPIA3
+dnl GNASH_PATH_QTOPIA4
+has_qtopia3=no
+has_qtopia4=no
+
+
+AM_CONDITIONAL(HAVE_QTOPIA3, [test x$has_qtopia3 = xyes])
+AM_CONDITIONAL(HAVE_QTOPIA4, [test x$has_qtopia4 = xyes])
+AM_CONDITIONAL(HAVE_KDE3, [test x$has_kde3 = xyes])
+AM_CONDITIONAL(HAVE_KDE4, [test x$has_kde4 = xyes])
+AM_CONDITIONAL(HAVE_QT3, [test x$has_qt3 = xyes])
+AM_CONDITIONAL(HAVE_QT4, [test x$has_qt4 = xyes])
+
+AM_CONDITIONAL(WITH_KDE4, test "$with_kde4" != "no")
+AM_CONDITIONAL([QT_X11], [test "$platform" = "X11"])
+AM_CONDITIONAL([QTOPIA], [test "$platform" = "Qtopia"])
+AM_CONDITIONAL([QT_OSX], [test "$platform" = "OSX"])
+AM_CONDITIONAL([QT_OS9], [test "$platform" = "OS9"])
+AM_CONDITIONAL([QT_WIN32], [test "$platform" = "Win32"])
 
 dnl Need GLIB for both GTK and GST
 if test x$build_gtk = xyes -o x${Media_handler} = "xgst"; then
@@ -1654,35 +1689,47 @@
 
 dnl if kde isn't installed, even if it's specified, don't try to build
 dnl the KPARTS plugin, which is KDE based.
-if test x$has_kde = xno -a x$kparts = xyes; then
-  kparts=no
-dnl  build_kde=no
-  AC_MSG_WARN(["Disabling KPARTS plugin, no KDE development found"])
-fi
-
-if test x$build_kde = xno -a x$kparts = xyes; then
-  AC_MSG_WARN(["Enabled KPARTS plugin, but you aren't building a KDE based 
GUI!"])
-fi
-
-AM_CONDITIONAL(BUILD_QTOPIA_GUI, [ test x$build_qtopia = xyes ])
-AM_CONDITIONAL(BUILD_ALP_GUI, [ test x$build_alp = xyes ])
-AM_CONDITIONAL(BUILD_QT_GUI, [ test x$build_qt = xyes ])
-AM_CONDITIONAL(BUILD_HILDON_GUI, [ test x$build_hildon = xyes ])
-AM_CONDITIONAL(BUILD_GTK_GUI, [ test x$build_gtk = xyes ])
-AM_CONDITIONAL(BUILD_KDE_GUI, [ test x$build_kde = xyes ])
-AM_CONDITIONAL(BUILD_FLTK_GUI, [ test x$build_fltk = xyes ])
-AM_CONDITIONAL(BUILD_SDL_GUI, [ test x$build_sdl = xyes ])
-AM_CONDITIONAL(BUILD_FB_GUI, [ test x$build_fb = xyes ])
-AM_CONDITIONAL(BUILD_AQUA_GUI, [ test x$build_aqua = xyes ])
-AM_CONDITIONAL(BUILD_RISCOS_GUI, [ test x$build_riscos = xyes ])
-AM_CONDITIONAL(BUILD_DUMP_GUI, [ test x$build_dump = xyes ])
+if test x$has_kde3 = xno -a x$build_kparts3 = xyes; then
+  build_kparts3=no
+dnl  build_kde3=no
+  AC_MSG_WARN(["Disabling KPARTS 3.x plugin, no KDE development found"])
+fi
+
+if test x$build_kde3 = xno -a x$build_kparts3 = xyes; then
+  AC_MSG_WARN(["Enabled KPARTS 3.x plugin, but you aren't building a KDE based 
GUI!"])
+fi
+if test x$has_kde4 = xno -a x$build_kparts4 = xyes; then
+  build_kparts4=no
+dnl  build_kde4=no
+  AC_MSG_WARN(["Disabling KPARTS 4.x plugin, no KDE 4.x development found"])
+fi
+
+if test x$build_kde4 = xno -a x$kparts4 = xyes; then
+  AC_MSG_WARN(["Enabled KPARTS 4.x plugin, but you aren't building a KDE 4.x 
based GUI!"])
+fi
+
+AM_CONDITIONAL(BUILD_QTOPIA3_GUI, [ test x$build_qtopia3 = xyes ])
+AM_CONDITIONAL(BUILD_QTOPIA4_GUI, [ test x$build_qtopia4 = xyes ])
+AM_CONDITIONAL(BUILD_QT3_GUI,     [ test x$build_qt3 = xyes ])
+AM_CONDITIONAL(BUILD_QT4_GUI,     [ test x$build_qt4 = xyes ])
+AM_CONDITIONAL(BUILD_KDE3_GUI,    [ test x$build_kde3 = xyes ])
+AM_CONDITIONAL(BUILD_KDE4_GUI,    [ test x$build_kde4 = xyes ])
+
+AM_CONDITIONAL(BUILD_ALP_GUI,     [ test x$build_alp = xyes ])
+AM_CONDITIONAL(BUILD_HILDON_GUI,  [ test x$build_hildon = xyes ])
+AM_CONDITIONAL(BUILD_GTK_GUI,     [ test x$build_gtk = xyes ])
+AM_CONDITIONAL(BUILD_FLTK_GUI,    [ test x$build_fltk = xyes ])
+AM_CONDITIONAL(BUILD_SDL_GUI,     [ test x$build_sdl = xyes ])
+AM_CONDITIONAL(BUILD_FB_GUI,      [ test x$build_fb = xyes ])
+AM_CONDITIONAL(BUILD_AQUA_GUI,    [ test x$build_aqua = xyes ])
+AM_CONDITIONAL(BUILD_RISCOS_GUI,  [ test x$build_riscos = xyes ])
+AM_CONDITIONAL(BUILD_DUMP_GUI,    [ test x$build_dump = xyes ])
 
 # plugin building flags
 AM_CONDITIONAL(NPAPI, [test x$npapi = xyes])
-AM_CONDITIONAL(KPARTS, [test x$kparts = xyes])
+AM_CONDITIONAL(KPARTS3, [test x$build_kparts3 = xyes])
+AM_CONDITIONAL(KPARTS4, [test x$build_kparts4 = xyes])
 
-AC_SUBST(KDE_CFLAGS)
-AC_SUBST(KDE_LIBS)
 if test x$build_ogl = xyes; then
   GNASH_PATH_OPENGL
 fi
@@ -1720,7 +1767,7 @@
 GNASH_PKG_FIND(expat, [expat.h], [Expat library], XML_ErrorString)
 
 dnl these conditionals were moved out of kde.m4
-AM_CONDITIONAL(HAS_KDE, [test x$has_kde = xyes])
+AM_CONDITIONAL(HAS_KDE3, [test x$has_kde3 = xyes])
 # used to disable x11-specific stuff on special platforms
 AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test 
"$kde_use_qt_mac" = "no")
 AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
@@ -1814,7 +1861,7 @@
   if test x$build_fltk = xyes; then
     AC_MSG_ERROR([Cairo renderer is not supported by FLTK gui. Use 
--enable-renderer=AGG or --enable-gui=gtk]);
   fi
-  if test x$build_kde = xyes; then
+  if test x$build_kde3 = xyes; then
     AC_MSG_ERROR([Cairo renderer is not supported by KDE gui. Use 
--enable-renderer=AGG or --enable-gui=gtk]);
   fi
   if test x$build_dump = xyes; then
@@ -2071,8 +2118,11 @@
 CYGNAL_PATHS
 
 SUPPORTED_GUIS=
-if test x$build_qtopia = xyes; then
-  SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia"
+if test x$build_qtopia3 = xyes; then
+  SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia3"
+fi
+if test x$build_qtopia4 = xyes; then
+  SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia4"
 fi
 if test x$build_hildon = xyes; then
   SUPPORTED_GUIS="${SUPPORTED_GUIS},hildon"
@@ -2086,8 +2136,17 @@
 if test x$build_fltk = xyes; then
   SUPPORTED_GUIS="${SUPPORTED_GUIS},fltk"
 fi
-if test x$build_kde = xyes; then
-  SUPPORTED_GUIS="${SUPPORTED_GUIS},kde"
+if test x$build_qt3 = xyes; then
+  SUPPORTED_GUIS="${SUPPORTED_GUIS},qt3"
+fi
+if test x$build_qt4 = xyes; then
+  SUPPORTED_GUIS="${SUPPORTED_GUIS},qt4"
+fi
+if test x$build_kde3 = xyes; then
+  SUPPORTED_GUIS="${SUPPORTED_GUIS},kde3"
+fi
+if test x$build_kde4 = xyes; then
+  SUPPORTED_GUIS="${SUPPORTED_GUIS},kde4"
 fi
 if test x$build_gtk = xyes; then
   SUPPORTED_GUIS="${SUPPORTED_GUIS},gtk"
@@ -2161,6 +2220,7 @@
 plugin/Makefile
 plugin/xpcom/Makefile
 plugin/klash/Makefile
+plugin/klash4/Makefile
 plugin/mozilla-sdk/Makefile
 plugin/win32/Makefile
 cygnal/Makefile
@@ -2214,14 +2274,24 @@
   echo "        NPAPI plugin disabled."
 fi
 
-if test x"$kparts" = x"yes"; then
-  echo "        KPARTS plugin enabled (default). Use --disable-kparts to 
disable"
-  echo "            KPARTS plugin will be installed in ${KDE_PLUGINDIR}"
-  echo "            KPARTS service will be installed in ${KDE_SERVICESDIR}"
-  echo "            KPARTS config dir will be in ${KDE_CONFIGDIR}"
-  echo "            KPARTS appsdata will be installed in ${KDE_APPSDATADIR}"
-else
-  echo "        KPARTS plugin disabled."
+if test x"$build_kparts3" = x"yes"; then
+  echo "        KPARTS 3.x plugin enabled (default). Use --disable-kparts3 to 
disable"
+  echo "            KPARTS 3.x plugin will be installed in ${KDE3_PLUGINDIR}"
+  echo "            KPARTS 3.x service will be installed in 
${KDE3_SERVICESDIR}"
+  echo "            KPARTS 3.x config dir will be in ${KDE3_CONFIGDIR}"
+  echo "            KPARTS 3.x appsdata will be installed in 
${KDE3_APPSDATADIR}"
+else
+  echo "        KPARTS 3.x plugin disabled."
+fi
+
+if test x"$build_kparts4" = x"yes"; then
+  echo "        KPARTS 4.x plugin enabled (default). Use --disable-kparts4 to 
disable"
+  echo "            KPARTS 4.x plugin will be installed in ${KDE4_PLUGINDIR}"
+  echo "            KPARTS 4.x service will be installed in 
${KDE4_SERVICESDIR}"
+  echo "            KPARTS 4.x config dir will be in ${KDE4_CONFIGDIR}"
+  echo "            KPARTS 4.x appsdata will be installed in 
${KDE4_APPSDATADIR}"
+else
+  echo "        KPARTS 4.x plugin disabled."
 fi
 
 dnl -- if test x"${dynamic_gui}" = x"yes"; then
@@ -2300,59 +2370,101 @@
 # out everything that is missing in one pass, hopefully making it
 # easy for new developers to get everything they need installed.
 
-if test x$build_kde = xyes -o x$kparts = xyes; then
-  if test x"$has_kde" = xyes; then
-    echo "        KDE flags are: $KDE_CFLAGS"
-    echo "        KDE libs are: $KDE_LIBS"
-  else
-      echo "        ERROR: No KDE development package installed!" >&3
-      echo "               To disable the KDE gui," >&3
-      echo "               reconfigure using --enable-gui=<list-of-guis>" >&3
-      echo "               and omit "kde" from the list." >&3
-      echo "               When the option --enable-gui=... is omitted," >&3
-      echo "               the default is the same of --enable-gui=kde,gtk" >&3
-      echo "               To be able to build the kde gui," >&3
-      echo "               install the KDE development environment from 
http://kde.org"; >&3
-      echo "               or .deb users: apt-get install kdelibs-dev" >&3
-      echo "               or .rpm users: yum install kdelibs-devel." >&3
-  fi
-  if test x"$has_qt" = xyes; then
-    echo "        QT flags are: $QT_CFLAGS"
-    echo "        QT libs are: $QT_LIBS"
-  else
-    if test x$build_kde = xyes -o x$kparts = xyes ; then
-      if test x"$has_kde" != xyes; then
-       # We have already moaned about KDE absence, so presumably they'll get
-       # QT-dev when they install KDE-dev
-       :
-      else
-       # This should never happen unless they have a very odd version of KDE
-        echo "        ERROR: No QT development package installed!" >&3
-        echo "               Install a QT development environment from 
http://trolltech.com"; >&3
-        echo "               or .deb users: apt-get install libqt3-mt-dev" >&3
-       if test x$kparts = xyes; then
-          echo "               or reconfigure with --disable-kparts" >&3
-       fi
-       if test x$build_kde = xyes; then
-          echo "               or change to a different gui with 
--enable-gui=..." >&3
-       fi
-      fi
-    fi
-  fi
-fi
-
-if test x"$build_qtopia" = xyes; then
-  if test x"${QTOPIA_LIBS}" != x ; then
-    if test x"${QTOPIA_CFLAGS}" != x ; then
-      echo "        QTOPIA flags are: $QTOPIA_CFLAGS"
-    else
-      echo "        QTOPIA flags are: default include path"
-    fi
-    echo "        QTOPIA libs are: $QTOPIA_LIBS"
-  else
-    echo "        ERROR: No QTOPIA library development package installed!" >&3
-    echo "               Install it from http://trolltech.com/downloads/"; >&3
-    echo "               binary packages are not available." >&3
+dnl Dump QT3 options is the user specified a QT3 or KDE3 GUI
+if test x"${build_qt3}" = xyes; then
+  if test x"${has_qt3}" = xyes; then
+    echo "        QT3 flags are: ${QT3_CFLAGS}"
+    echo "        QT3 libs are: ${QT3_LIBS}"
+  else
+    echo "        ERROR: No QT 3.x development package installed!" >&3
+    echo "               Install a QT 3.x development environment from 
http://trolltech.com"; >&3
+    echo "               or .deb users: apt-get install libqt3-mt-dev" >&3
+    if test x$build_kde3 = xyes; then
+      echo "               or change to a different gui with --enable-gui=..." 
>&3
+    fi
+  fi
+fi
+
+if test x"${build_qt4}" = xyes; then
+  if test x"${has_qt4}" = xyes; then
+    echo "        QT4 flags are: ${QT4_CFLAGS}"
+    echo "        QT4 libs are: ${QT4_LIBS}"
+  else
+    echo "        ERROR: No QT 4.x development package installed!" >&3
+    echo "               Install a QT 4.x development environment from 
http://trolltech.com"; >&3
+    echo "               or .deb users: apt-get install qt4-dev-tools" >&3
+    if test x$build_kde4 = xyes; then
+      echo "               or change to a different gui with --enable-gui=..." 
>&3
+    fi
+  fi
+fi
+
+if test x"$build_qtopia3" = xyes; then
+  if test x"${QTOPIA3_LIBS}" != x ; then
+    if test x"${QTOPIA3_CFLAGS}" != x ; then
+      echo "        QTOPIA 3.x flags are: $QTOPIA3_CFLAGS"
+    else
+      echo "        QTOPIA 3.x flags are: default include path"
+    fi
+    echo "        QTOPIA 3.x libs are: $QTOPIA3_LIBS"
+  else
+    echo "        ERROR: No QTOPIA 3.x library development package installed!" 
>&3
+    echo "               Install it from http://trolltech.com/downloads/"; >&3
+    echo "               binary packages are not available." >&3
+  fi
+fi
+
+if test x"$build_qtopia4" = xyes; then
+  if test x"${QTOPIA4_LIBS}" != x ; then
+    if test x"${QTOPIA4_CFLAGS}" != x ; then
+      echo "        QTOPIA 4.x flags are: $QTOPIA4_CFLAGS"
+    else
+      echo "        QTOPIA 4.x flags are: default include path"
+    fi
+    echo "        QTOPIA 4.x libs are: $QTOPIA4_LIBS"
+  else
+    echo "        ERROR: No QTOPIA 4.x library development package installed!" 
>&3
+    echo "               Install it from http://trolltech.com/downloads/"; >&3
+    echo "               binary packages are not available." >&3
+  fi
+fi
+
+
+# -o x$build_kparts3 = xyes
+if test x$build_kde3 = xyes; then
+  if test x"$has_kde3" = xyes; then
+    echo "        KDE 3.x flags are: $KDE3_CFLAGS"
+    echo "        KDE 3.x libs are: $KDE3_LIBS"
+  else
+      echo "        ERROR: No KDE 3.x development package installed!" >&3
+      echo "               To disable the KDE 3.x gui," >&3
+      echo "               reconfigure using --enable-gui=<list-of-guis>" >&3
+      echo "               and omit "kde" from the list." >&3
+      echo "               When the option --enable-gui=... is omitted," >&3
+      echo "               the default is the same of --enable-gui=kde,gtk" >&3
+      echo "               To be able to build the kde 3.x gui," >&3
+      echo "               install version 3.x of the KDE development 
environment from http://kde.org"; >&3
+      echo "               or .deb users: apt-get install kdelibs-dev" >&3
+      echo "               or .rpm users: yum install kdelibs-devel." >&3
+  fi
+fi
+
+# -o x$build_kparts4 = xyes
+if test x$build_kde4 = xyes; then
+  if test x"$has_kde4" = xyes; then
+    echo "        KDE 4.x flags are: $KDE4_CFLAGS"
+    echo "        KDE 4.x libs are: $KDE4_LIBS"
+  else
+      echo "        ERROR: No KDE 4.x development package installed!" >&3
+      echo "               To disable the KDE 4.x gui," >&3
+      echo "               reconfigure using --enable-gui=<list-of-guis>" >&3
+      echo "               and omit "kde" from the list." >&3
+      echo "               When the option --enable-gui=... is omitted," >&3
+      echo "               the default is the same of --enable-gui=kde,gtk" >&3
+      echo "               To be able to build the kde 4.x gui," >&3
+      echo "               install version 4.x of the KDE development 
environment from http://kde.org"; >&3
+      echo "               or .deb users: apt-get install kdelibs-dev" >&3
+      echo "               or .rpm users: yum install kdelibs-devel." >&3
   fi
 fi
 

=== added file 'gui/GuiKde4.cpp'
--- a/gui/GuiKde4.cpp   1970-01-01 00:00:00 +0000
+++ b/gui/GuiKde4.cpp   2008-09-14 15:01:42 +0000
@@ -0,0 +1,46 @@
+// 
+//   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include "gui.h"
+#include "GnashException.h"
+
+#ifdef GUI_KDE4
+#include "Kde4Gui.h"
+#endif
+
+namespace gnash {
+
+#ifdef GUI_KDE4
+std::auto_ptr<Gui> createKDE4Gui(unsigned long windowid, float scale, bool 
do_loop, unsigned int bit_depth)
+{
+       return std::auto_ptr<Gui>(new Kde4Gui(windowid, scale, do_loop, 
bit_depth));
+}
+#else // ! GUI_KDE4
+std::auto_ptr<Gui> createKDE4Gui(unsigned long , float , bool , unsigned int )
+{
+       throw GnashException("Support for KDE4 gui was not compiled in");
+}
+#endif // ! GUI_KDE4
+
+} // namespace gnash
+

=== added file 'gui/Kde4Glue.h'
--- a/gui/Kde4Glue.h    1970-01-01 00:00:00 +0000
+++ b/gui/Kde4Glue.h    2008-10-09 07:35:53 +0000
@@ -0,0 +1,52 @@
+//
+//   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+#ifndef GNASH_KDE4_GLUE_H
+#define GNASH_KDE4_GLUE_H
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include "gnash.h"
+#include <QWidget>
+#include "snappingrange.h"
+
+
+namespace gnash
+{
+
+class Kde4Glue
+{
+  public:
+    Kde4Glue() : _drawing_area(NULL) {}
+    virtual ~Kde4Glue() { }
+    virtual bool init(int argc, char **argv[]) = 0;
+
+    virtual void prepDrawingArea(QWidget *drawing_area) = 0;
+    virtual render_handler* createRenderHandler() = 0;
+    virtual void render() = 0;
+    virtual void setInvalidatedRegions(const InvalidatedRanges& /* ranges */) 
{}
+    virtual void resize(int, int) {}
+    virtual void initBuffer(int, int) {}
+  protected:
+    QWidget     *_drawing_area;
+};
+
+} // namespace gnash
+
+#endif

=== added file 'gui/Kde4GlueAgg.cpp'
--- a/gui/Kde4GlueAgg.cpp       1970-01-01 00:00:00 +0000
+++ b/gui/Kde4GlueAgg.cpp       2008-09-15 10:03:34 +0000
@@ -0,0 +1,130 @@
+//
+//   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include "Kde4GlueAgg.h"
+#include "render_handler.h"
+#include "render_handler_agg.h"
+#include <QImage>
+#include <QRect>
+
+namespace gnash
+{
+
+Kde4AggGlue::Kde4AggGlue()
+:
+  _width(0),
+  _height(0),
+   _renderer(0)
+{
+}
+
+Kde4AggGlue::~Kde4AggGlue()
+{
+}
+
+bool
+Kde4AggGlue::init(int /* argc */, char *** /* argv */)
+{
+    return true;
+}
+
+
+void
+Kde4AggGlue::prepDrawingArea(QWidget *drawing_area)
+{
+    _drawing_area = drawing_area;
+}
+
+
+void
+Kde4AggGlue::initBuffer(int width, int height)
+{
+    if (!_renderer) return;
+
+    _width = width;
+    _height = height;
+
+    int _bpp = 32;
+    int depth_bytes = _bpp / 8;
+
+    assert(_bpp % 8 == 0);
+
+#define CHUNK_SIZE (100 * 100 * depth_bytes)
+
+    int bufsize = (width * height * depth_bytes / CHUNK_SIZE + 1) * CHUNK_SIZE;
+
+    _offscreenbuf.reset(new unsigned char[bufsize]);
+
+    render_handler_agg_base * renderer =
+      static_cast<render_handler_agg_base *>(_renderer);
+
+    renderer->init_buffer(_offscreenbuf.get(), bufsize, _width, _height,
+      width*((_bpp+7)/8));
+    
+    _image.reset(new QImage(_offscreenbuf.get(), _width, _height, 
QImage::Format_RGB32));
+}
+
+
+void
+Kde4AggGlue::render()
+{
+    QRect r(0, 0, _width, _height);
+    render(r);
+}
+
+
+void
+Kde4AggGlue::render(const QRect& updateRect)
+{
+
+// log_debug("Render region: %d, %d, %d, %d", updateRect.topLeft().x(),
+//updateRect.topLeft().y(), updateRect.bottomRight().x(),
+//updateRect.bottomRight().y());
+
+    QPainter p(_drawing_area);
+   
+    p.drawImage(updateRect, *_image, updateRect);
+    p.end();
+
+}
+
+
+render_handler*
+Kde4AggGlue::createRenderHandler()
+{
+    _renderer = create_render_handler_agg("BGRA32");
+
+    if ( ! _renderer )
+    {
+        throw GnashException("Could not create AGG renderer with pixelformat 
ABGR32");
+    }
+    return _renderer;
+}
+
+void
+Kde4AggGlue::resize(int width, int height)
+{
+    initBuffer(width, height);
+}
+
+// end of namespace gnash
+}

=== added file 'gui/Kde4GlueAgg.h'
--- a/gui/Kde4GlueAgg.h 1970-01-01 00:00:00 +0000
+++ b/gui/Kde4GlueAgg.h 2008-10-09 07:35:53 +0000
@@ -0,0 +1,66 @@
+//
+//   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+#ifndef GNASH_KDE4_AGG_GLUE_H
+#define GNASH_KDE4_AGG_GLUE_H
+
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include "Kde4Glue.h"
+
+#include <QImage>
+#include <boost/scoped_array.hpp>
+#include <QPainter>
+#include "snappingrange.h"
+
+class QRect;
+
+namespace gnash
+{
+
+class Kde4AggGlue : public Kde4Glue
+{
+  public:
+    Kde4AggGlue();
+    ~Kde4AggGlue();
+    
+    bool init(int argc, char **argv[]);
+    void prepDrawingArea(QWidget *drawing_area);
+    render_handler* createRenderHandler();
+    void initBuffer(int width, int height);
+    void resize(int width, int height);
+    void render();
+    void render(const QRect& updateRect);
+
+  private:
+    int _width;
+    int _height;
+    boost::scoped_array<unsigned char> _offscreenbuf;
+    render_handler* _renderer; // We don't own this pointer.
+    std::auto_ptr<QImage> _image;
+    std::auto_ptr<QPainter> _painter;
+};
+
+
+
+
+}
+
+#endif

=== added file 'gui/Kde4Gui.cpp'
--- a/gui/Kde4Gui.cpp   1970-01-01 00:00:00 +0000
+++ b/gui/Kde4Gui.cpp   2008-12-04 09:27:57 +0000
@@ -0,0 +1,577 @@
+// kde.cpp:  K Development Environment top level window, for Gnash.
+// 
+//   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+
+#include <map>
+#include <boost/assign/list_inserter.hpp>
+
+#include <QMainWindow>
+#include <QX11Info>
+#include <QMenu>
+#include <QMenuBar>
+#include <QWidget>
+#include <QCursor>
+#include <QApplication>
+#include <QPainter>
+#include <QMouseEvent>
+#include <QResizeEvent>
+#include <QTimer>
+#include <QEvent>
+
+#include "Range2d.h"
+
+#include "gnash.h"
+#include "movie_definition.h" 
+#include "log.h"
+
+#include "gui.h"
+#include "Kde4Gui.h"
+#include "klash4.moc"
+#include "render_handler.h"
+#include "utility.h" // for PIXELS_TO_TWIPS 
+
+
+extern "C" {
+#include <X11/Xlib.h>
+}
+
+namespace gnash 
+{
+
+Kde4Gui::Kde4Gui(unsigned long xid, float scale, bool loop, unsigned int depth)
+ : Gui(xid, scale, loop, depth)
+{
+}
+
+
+Kde4Gui::~Kde4Gui()
+{
+}
+
+
+bool
+Kde4Gui::init(int argc, char **argv[])
+{
+
+    char** r = NULL;
+    int* i = new int(0);
+
+    _application.reset(new QApplication(*i, r));
+    _window.reset(new QMainWindow());
+    _drawingWidget = new DrawingWidget(*this);
+
+    _glue.init (argc, argv);
+
+    setupActions();
+    setupMenus();
+
+    if (!_xid) {
+        createMainMenu();
+    }
+
+    // Make sure key events are ready to be passed
+    // before the widget can receive them.
+    setupKeyMap();
+    
+    return true;
+}
+
+
+bool
+Kde4Gui::run()
+{
+    return _application->exec();
+}
+
+
+bool
+Kde4Gui::createWindow(const char* windowtitle, int width, int height)
+{
+
+    _width = width;
+    _height = height;
+
+    _drawingWidget->setMinimumSize(_width, _height);
+
+    // Enable receiving of mouse events.
+    _drawingWidget->setMouseTracking(true);
+    _drawingWidget->setFocusPolicy(Qt::StrongFocus);
+    _window->setWindowTitle(windowtitle);
+    
+    if(_xid) {
+        _drawingWidget->embedInto(_xid);
+       _drawingWidget->show();
+       // Adjust width and height to the window we're being embedded into...
+       XWindowAttributes winAttributes;
+       XGetWindowAttributes(QX11Info::display(), _xid, &winAttributes);
+       _width=winAttributes.width;
+       _height=winAttributes.height;
+       _drawingWidget->resize(_width, _height);
+    } else {
+        // The QMainWindow takes ownership of the DrawingWidget.
+        _window->setCentralWidget(_drawingWidget);
+        _window->show();
+    }
+
+    _glue.prepDrawingArea(_drawingWidget);
+
+    _renderer = _glue.createRenderHandler();
+
+    if ( ! _renderer ) {
+        return false;
+    }
+
+    _validbounds.setTo(0, 0, _width, _height);
+    _glue.initBuffer(_width, _height);
+    
+    set_render_handler(_renderer);
+   
+    return true;
+}
+
+
+void
+Kde4Gui::popupMenu(const QPoint& point)
+{
+    QMenu popupMenu(_drawingWidget);
+    popupMenu.addMenu(fileMenu);
+    popupMenu.addMenu(movieControlMenu);
+    popupMenu.addMenu(viewMenu);
+    popupMenu.exec(point);
+}
+
+
+void
+Kde4Gui::renderBuffer()
+{
+    
+    for (DrawBounds::const_iterator i = _drawbounds.begin(),
+                        e = _drawbounds.end(); i != e; ++i) {
+        
+        // it may happen that a particular range is out of the screen, which 
+        // will lead to bounds==null. 
+        if (i->isNull()) continue;
+        
+        assert(i->isFinite()); 
+
+        _drawingWidget->update(i->getMinX(), i->getMinY(),
+                               i->width(), i->height());
+
+    }
+}
+
+
+void
+Kde4Gui::renderWidget(const QRect& updateRect)
+{
+    // This call renders onto the widget using a QPainter,
+    // which *must only happen inside a paint event*.
+    _glue.render(updateRect);
+}
+
+
+void
+Kde4Gui::setInvalidatedRegions(const InvalidatedRanges& ranges)
+{
+    _renderer->set_invalidated_regions(ranges);
+
+    _drawbounds.clear();
+
+    for (size_t i = 0, e = ranges.size(); i != e; ++i) {
+
+        geometry::Range2d<int> bounds = Intersection(
+        _renderer->world_to_pixel(ranges.getRange(i)),
+        _validbounds);
+
+        // It may happen that a particular range is out of the screen, which 
+        // will lead to bounds==null. 
+        if (bounds.isNull()) continue;
+
+        assert(bounds.isFinite());
+
+        _drawbounds.push_back(bounds);
+
+    }
+}
+
+
+void
+Kde4Gui::setTimeout(unsigned int timeout)
+{
+    QTimer::singleShot(timeout, _application.get(), SLOT(quit()));
+}
+
+
+void
+Kde4Gui::setInterval(unsigned int interval)
+{
+    _drawingWidget->startTimer(interval);
+}
+
+
+void
+Kde4Gui::setCursor(gnash_cursor_type newcursor)
+{
+    switch (newcursor) {
+        case CURSOR_HAND:
+            _drawingWidget->setCursor(Qt::PointingHandCursor);
+            break;
+        case CURSOR_INPUT:
+            _drawingWidget->setCursor(Qt::IBeamCursor); 
+            break;
+        default:
+            _drawingWidget->unsetCursor(); 
+    }
+}
+
+void
+Kde4Gui::setFullscreen()
+{
+    _window->showFullScreen();
+    QMenuBar* mainMenu = _window->menuBar();
+    if (mainMenu) mainMenu->hide();
+}
+
+void
+Kde4Gui::unsetFullscreen()
+{
+    _window->showNormal();
+    QMenuBar* mainMenu = _window->menuBar();
+    if (mainMenu) mainMenu->show();
+}
+
+gnash::key::code
+Kde4Gui::qtToGnashKey(QKeyEvent *event)
+{
+
+    // This should be initialized by now.
+    assert (!_keyMap.empty());
+
+    // Gnash uses its own keycodes to map key events
+    // to the three sometimes weird and confusing values that flash movies
+    // can refer to. See gnash.h for the keycodes and map.
+    //
+    // Gnash's keycodes are gnash::key::code. They are mainly in ascii order.
+    // Standard ascii characters (32-127) have the same value. Extended ascii
+    // characters (160-254) are in ascii order but correspond to
+    // gnash::key::code
+    // 169-263. Non-character values must normally be mapped separately.
+
+    const int key = event->key();
+
+    if (key >= Qt::Key_0 && key <= Qt::Key_9) {
+          return static_cast<gnash::key::code>(
+                key - Qt::Key_0 + gnash::key::_0);
+    }
+
+    // All other characters between ascii 32 and 126 are simple.
+    // From space (32) to slash (47):
+    else if (key >= Qt::Key_Space && key <= Qt::Key_AsciiTilde) {
+        return static_cast<gnash::key::code>(
+                key - Qt::Key_Space + gnash::key::SPACE);
+    }
+
+    // Function keys:
+    else if (key >= Qt::Key_F1 && key <= Qt::Key_F15) {
+        return static_cast<gnash::key::code>(
+                key - Qt::Key_F1 + gnash::key::F1);
+    }
+
+    // Extended ascii from non-breaking (160) space to ÿ (264) is in the same
+    // order.
+    else if (key >= Qt::Key_nobreakspace && key <= Qt::Key_ydiaeresis) {
+        return static_cast<gnash::key::code>(
+                key - Qt::Key_nobreakspace + gnash::key::NOBREAKSPACE);
+    }
+
+    const KeyMap::const_iterator it = _keyMap.find(key);
+    
+    if (it == _keyMap.end()) return gnash::key::INVALID;
+    
+    return it->second;
+
+}
+
+
+void
+Kde4Gui::handleKeyEvent(QKeyEvent *event, bool down)
+{
+    gnash::key::code c = qtToGnashKey(event);
+//    int mod = qtToGnashModifier(event->state());
+    notify_key_event(c, 0, down);
+}
+
+
+void
+Kde4Gui::resize(int width, int height)
+{
+    _glue.resize(width, height);
+    resize_view(width, height);
+}
+
+
+void
+Kde4Gui::quit()
+{
+    _application->quit();
+}
+
+
+void
+Kde4Gui::setupActions()
+{
+
+    // File Menu actions
+    quitAction = new QAction(_("Quit Gnash"), _window.get());
+    // This is connected directly to the QApplication's quit() slot
+    _drawingWidget->connect(quitAction, SIGNAL(triggered()),
+                     _application.get(), SLOT(quit()));
+
+    // Movie Control Menu actions
+    playAction = new QAction(_("Play"), _window.get());
+    _drawingWidget->connect(playAction, SIGNAL(triggered()),
+                     _drawingWidget, SLOT(play()));
+
+    pauseAction = new QAction(_("Pause"), _window.get());
+    _drawingWidget->connect(pauseAction, SIGNAL(triggered()),
+                     _drawingWidget, SLOT(pause()));
+
+    stopAction = new QAction(_("Stop"), _window.get());
+    _drawingWidget->connect(stopAction, SIGNAL(triggered()),
+                     _drawingWidget, SLOT(stop()));
+
+    restartAction = new QAction(_("Restart"), _window.get());
+    _drawingWidget->connect(restartAction, SIGNAL(triggered()),
+                     _drawingWidget, SLOT(restart()));
+
+    // View Menu actions
+    refreshAction = new QAction(_("Refresh"), _window.get());
+    _drawingWidget->connect(refreshAction, SIGNAL(triggered()),
+                     _drawingWidget, SLOT(refresh()));
+
+    fullscreenAction = new QAction(_("Fullscreen"), _window.get());
+    fullscreenAction->setCheckable(true);
+    _drawingWidget->connect(fullscreenAction, SIGNAL(toggled(bool)),
+                           _drawingWidget, SLOT(fullscreen(bool)));
+}
+
+
+void
+Kde4Gui::setupMenus()
+{
+    /// The menus are children of the QMainWindow so that
+    /// they are destroyed on exit. The QMainWindow already has
+    /// ownership of the main QMenuBar.
+
+    // Set up the File menu.
+    fileMenu = new QMenu(_("File"), _window.get());
+    fileMenu->addAction(quitAction);
+
+    // Set up the Movie Control menu
+    movieControlMenu = new QMenu(_("Movie Control"), _window.get());
+    movieControlMenu->addAction(playAction);
+    movieControlMenu->addAction(pauseAction);
+    movieControlMenu->addAction(stopAction);
+    movieControlMenu->addAction(restartAction);
+
+    // Set up the View menu
+    viewMenu = new QMenu(_("View"), _window.get());
+    viewMenu->addAction(refreshAction);
+    viewMenu->addAction(fullscreenAction);
+}
+
+
+void
+Kde4Gui::createMainMenu()
+{
+    std::auto_ptr<QMenuBar> mainMenu(new QMenuBar);
+
+    // Set up the menu bar.
+    mainMenu->addMenu(fileMenu);
+    mainMenu->addMenu(movieControlMenu);
+    mainMenu->addMenu(viewMenu);
+
+    // The QMainWindow::setMenuBar transfers ownership
+    // of the QMenuBar.
+    _window->setMenuBar(mainMenu.release());
+
+}
+
+void
+Kde4Gui::setupKeyMap()
+{
+    // We only want to do this once, although it would not
+    // be harmful to do it more.
+    assert (_keyMap.empty());
+    
+    boost::assign::insert(_keyMap)
+    (Qt::Key_Backspace, gnash::key::BACKSPACE)
+    (Qt::Key_Tab, gnash::key::TAB)
+    (Qt::Key_Clear, gnash::key::CLEAR)
+    (Qt::Key_Return, gnash::key::ENTER)
+    (Qt::Key_Enter, gnash::key::ENTER)
+    (Qt::Key_Shift, gnash::key::SHIFT)
+    (Qt::Key_Control, gnash::key::CONTROL)
+    (Qt::Key_Alt, gnash::key::ALT)
+    (Qt::Key_CapsLock, gnash::key::CAPSLOCK)
+    (Qt::Key_Escape, gnash::key::ESCAPE)
+    (Qt::Key_Space, gnash::key::SPACE)
+    (Qt::Key_PageDown, gnash::key::PGDN)
+    (Qt::Key_PageUp, gnash::key::PGUP)
+    (Qt::Key_Home, gnash::key::HOME)
+    (Qt::Key_End, gnash::key::END)
+    (Qt::Key_Left, gnash::key::LEFT)
+    (Qt::Key_Up, gnash::key::UP)
+    (Qt::Key_Right, gnash::key::RIGHT)
+    (Qt::Key_Down, gnash::key::DOWN)
+    (Qt::Key_Insert, gnash::key::INSERT)
+    (Qt::Key_Delete, gnash::key::DELETEKEY)
+    (Qt::Key_Help, gnash::key::HELP)
+    (Qt::Key_NumLock, gnash::key::NUM_LOCK)
+    (Qt::Key_Semicolon, gnash::key::SEMICOLON)
+    (Qt::Key_Equal, gnash::key::EQUALS)
+    (Qt::Key_Minus, gnash::key::MINUS)
+    (Qt::Key_Slash, gnash::key::SLASH)
+    (Qt::Key_BracketLeft, gnash::key::LEFT_BRACKET)
+    (Qt::Key_Backslash, gnash::key::BACKSLASH)
+    (Qt::Key_BracketRight, gnash::key::RIGHT_BRACKET)
+    (Qt::Key_QuoteDbl, gnash::key::DOUBLE_QUOTE);
+}
+
+
+/// DrawingWidget implementation
+
+void 
+DrawingWidget::paintEvent(QPaintEvent *event)
+{
+    _gui.renderWidget(event->rect());
+}
+
+
+void
+DrawingWidget::timerEvent(QTimerEvent*)
+{
+    Gui::advance_movie(&_gui);
+}
+
+
+void
+DrawingWidget::mouseMoveEvent(QMouseEvent *event)
+{
+    QPoint position = event->pos();
+    _gui.notify_mouse_moved(position.x(), position.y());
+}
+
+
+void
+DrawingWidget::contextMenuEvent(QContextMenuEvent* event)
+{
+    _gui.popupMenu(event->globalPos());
+}
+
+
+void
+DrawingWidget::mousePressEvent(QMouseEvent* /* event */)
+{
+    _gui.notify_mouse_clicked(true, 1);
+}
+
+
+void
+DrawingWidget::mouseReleaseEvent(QMouseEvent* /* event */)
+{
+    _gui.notify_mouse_clicked(false, 1);
+}
+
+
+void
+DrawingWidget::keyPressEvent(QKeyEvent *event)
+{
+    _gui.handleKeyEvent(event, true);
+}
+
+
+void
+DrawingWidget::keyReleaseEvent(QKeyEvent *event)
+{
+    _gui.handleKeyEvent(event, false);
+}
+
+
+void
+DrawingWidget::resizeEvent(QResizeEvent *event)
+{
+    _gui.resize(event->size().width(), event->size().height());
+    update();
+}
+
+
+void
+DrawingWidget::play()
+{
+    _gui.play();
+}
+
+
+void
+DrawingWidget::pause()
+{
+    _gui.pause();
+}
+
+
+void
+DrawingWidget::restart()
+{
+    _gui.restart();
+}
+
+
+void
+DrawingWidget::stop()
+{
+    _gui.stop();
+}
+
+
+void
+DrawingWidget::refresh()
+{
+    _gui.refreshView();
+}
+
+void
+DrawingWidget::fullscreen(bool isFull)
+{
+    if (isFull) {
+        _gui.setFullscreen();
+    }
+    else {
+        _gui.unsetFullscreen();
+    }
+}
+
+
+
+}
+

=== added file 'gui/Kde4Gui.h'
--- a/gui/Kde4Gui.h     1970-01-01 00:00:00 +0000
+++ b/gui/Kde4Gui.h     2008-12-04 09:27:57 +0000
@@ -0,0 +1,178 @@
+// 
+//   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+#ifndef GNASH_KDE4GUI_H
+#define GNASH_KDE4GUI_H
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include "gui.h"
+
+#include <QX11EmbedWidget>
+
+#ifdef RENDERER_OPENGL
+# error "OGL not supported yet for KDE4!"
+#elif defined(RENDERER_CAIRO)
+# error "Cairo not supported yet for KDE4!"
+#elif defined(RENDERER_AGG)
+# include "Kde4GlueAgg.h"
+#endif
+
+
+class QMainWindow;
+class QMenuBar;
+class QMenu;
+class QRect;
+
+namespace gnash {
+    class Kde4Gui;
+}
+
+namespace gnash
+{
+
+class DrawingWidget : public QX11EmbedWidget
+{
+    Q_OBJECT
+
+public:
+    DrawingWidget(Kde4Gui& gui)
+        :
+        QX11EmbedWidget(),
+        _gui(gui)
+    {}
+
+    ~DrawingWidget() {}
+
+public slots:
+
+    void play();
+    void pause();
+    void stop();
+    void restart();
+    void refresh();
+    void fullscreen(bool isFull);
+
+protected:
+    void paintEvent(QPaintEvent*);
+    void timerEvent(QTimerEvent*);
+    void resizeEvent(QResizeEvent *event);
+    void mouseReleaseEvent(QMouseEvent *event);
+    void mousePressEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
+    void keyPressEvent(QKeyEvent *event);
+    void keyReleaseEvent(QKeyEvent *event);
+    void contextMenuEvent(QContextMenuEvent *event);
+
+private:
+
+    Kde4Gui& _gui;
+
+};
+
+
+class DSOEXPORT Kde4Gui :  public Gui
+{
+
+public:
+    Kde4Gui(unsigned long xid, float scale, bool loop, unsigned int depth);
+    virtual ~Kde4Gui();
+    virtual bool init(int argc, char **argv[]);
+    virtual bool createWindow(const char* windowtitle, int width, int height);
+    virtual bool run();
+    virtual void renderBuffer();
+    virtual void setInterval(unsigned int interval);
+    virtual void setTimeout(unsigned int timeout);
+    virtual void handleKeyEvent(QKeyEvent *event, bool down);
+    virtual void setCursor(gnash_cursor_type newcursor);
+    virtual void setFullscreen();
+    virtual void unsetFullscreen();
+    void setInvalidatedRegions(const InvalidatedRanges& ranges);
+    void resize(int width, int height);
+    void quit();
+
+    bool want_multiple_regions() { return true; }
+
+    void renderWidget(const QRect& updateRect);
+
+    void popupMenu(const QPoint& point);
+
+private:
+
+    typedef std::vector<geometry::Range2d<int> > DrawBounds; 
+    typedef std::map<int, gnash::key::code> KeyMap;
+
+    void setupActions();
+    void setupMenus();
+    void createMainMenu();
+
+    /// Set up the map of Qt to Gnash keys.
+    void setupKeyMap();
+
+    DrawBounds::value_type _validbounds;
+    DrawBounds _drawbounds;
+ 
+    /// The main application, which should destroy everything
+    /// left on closing.
+    std::auto_ptr<QApplication>  _application;
+    
+    /// The widget for rendering and handling user events.
+    //
+    /// Ownership is transferred to the main window, which
+    /// takes care of deletion.
+    DrawingWidget* _drawingWidget;
+    
+    /// Takes care of painting onto the widget.
+    Kde4AggGlue _glue;
+    
+    /// The main application window.
+    std::auto_ptr<QMainWindow> _window;
+
+    /// A map for Qt::Key values that don't easily
+    /// map onto Gnash ones.
+    KeyMap _keyMap;
+
+    gnash::key::code qtToGnashKey(QKeyEvent *event);
+
+    /// QActions and QMenus should be attached to the
+    /// QMainWindow so that they are destroyed with it.
+    /// Actions may be shared between menus and/or
+    /// other uses.
+
+    // File Menu
+    QMenu* fileMenu;
+    QAction* quitAction;
+    
+    // Movie Control Menu;
+    QMenu* movieControlMenu;
+    QAction* playAction;
+    QAction* pauseAction;
+    QAction* stopAction;
+    QAction* restartAction;
+    
+    // View Menu
+    QMenu* viewMenu;
+    QAction* refreshAction;
+    QAction* fullscreenAction;
+
+};
+
+}
+
+#endif

=== modified file 'gui/Makefile.am'
--- a/gui/Makefile.am   2008-11-05 01:01:46 +0000
+++ b/gui/Makefile.am   2008-11-14 22:41:27 +0000
@@ -30,7 +30,7 @@
 # noinst_LTLIBRARIES = libgnashgui.la
 BUILT_SOURCES = .configline
 
-EXTRA_DIST = gnash.in klash.moc.in
+EXTRA_DIST = gnash.in klash3.moc.in klash4.moc.in
 
 noinst_LTLIBRARIES = 
 AM_CPPFLAGS = \
@@ -181,14 +181,20 @@
 endif
 
 # Build the QTOPIA gui
-if BUILD_QTOPIA_GUI
-include $(srcdir)/am-frag/qtopia.am
-endif
-
-# Build the KDE gui
-if BUILD_KDE_GUI
-BUILT_SOURCES += klash.moc 
-include $(srcdir)/am-frag/kde.am
+if BUILD_QTOPIA3_GUI
+include $(srcdir)/am-frag/qtopia3.am
+endif
+
+# Build the KDE3 gui
+if BUILD_KDE3_GUI
+BUILT_SOURCES += klash3.moc 
+include $(srcdir)/am-frag/kde3.am
+endif
+
+# Build the KDE4 gui
+if BUILD_KDE4_GUI
+BUILT_SOURCES += klash4.moc
+include $(srcdir)/am-frag/kde4.am
 endif
 
 # Build the SDL gui
@@ -241,7 +247,7 @@
 include $(srcdir)/am-frag/riscos.am
 endif
 
-CLEANFILES = klash.moc .configline gnash
+CLEANFILES = klash3.moc klash4.moc .configline gnash
 
 bundle: Info.plist
        @echo " Building: $(bundle_name)" 
@@ -254,15 +260,6 @@
        cp -f images/GnashG.icns $(bundle_name)/Contents/Resources/
 
 
-klash.moc: $(srcdir)/kdesup.h
-       @if test x"$(MOC)" != x; then \
-         echo "Generating MOC file..."; \
-         $(MOC) $(srcdir)/kdesup.h -o klash.moc; \
-       else  \
-         echo "WARNING: Install QT's moc tool! Linking to default MOC file"; \
-         ln -sf $(srcdir)/klash.moc.in klash.moc; \
-       fi
-
 .configline: ../config.log
        address@hidden -f .configline
        @head ../config.log | grep " .*/configure " | sed -e 's:^  . 
.*configure ::' > .configline

=== modified file 'gui/Player.cpp'
--- a/gui/Player.cpp    2008-11-21 15:15:25 +0000
+++ b/gui/Player.cpp    2008-12-04 10:21:27 +0000
@@ -676,10 +676,14 @@
     return createGTKGui(_windowID, _scale, _doLoop, _bitDepth);
 #endif
 
-#ifdef GUI_KDE
+#ifdef GUI_KDE3
     return createKDEGui(_windowID, _scale, _doLoop, _bitDepth);
 #endif
 
+#ifdef GUI_KDE4
+    return createKDE4Gui(_windowID, _scale, _doLoop, _bitDepth);
+#endif
+
 #ifdef GUI_SDL
     return createSDLGui(_windowID, _scale, _doLoop, _bitDepth);
 #endif

=== renamed file 'gui/am-frag/kde.am' => 'gui/am-frag/kde3.am'
--- a/gui/am-frag/kde.am        2008-01-21 21:19:22 +0000
+++ b/gui/am-frag/kde3.am       2008-11-14 22:26:50 +0000
@@ -18,32 +18,40 @@
 #
 # Build the KDE gui
 # 
-if BUILD_KDE_GUI
-bin_PROGRAMS += kde-gnash
-if HAVE_QT_4
-QT_CFLAGS += -DQT3_SUPPORT
-endif
-kde_gnash_CPPFLAGS = -DGUI_KDE -DGUI_CONFIG=\"KDE\" \
-        $(AM_CPPFLAGS) $(KDE_CFLAGS) $(QT_CFLAGS)
-kde_gnash_SOURCES = $(GUI_SRCS) gui_kde.cpp
-kde_gnash_LDFLAGS = $(LIBLTDL) -export-dynamic 
+if BUILD_KDE3_GUI
+
+klash3.moc: $(srcdir)/kdesup.h
+       @if test x"$(MOC3)" != x; then \
+         echo "Generating MOC 3 file..."; \
+         $(MOC3) $(srcdir)/kdesup.h -o klash3.moc; \
+       else  \
+         echo "WARNING: Install QT 3.x moc tool! Linking to default MOC file"; 
\
+         ln -sf $(srcdir)/klash3.moc.in klash3.moc; \
+       fi
+
+bin_PROGRAMS += kde3-gnash
+
+kde3_gnash_CPPFLAGS = -DGUI_KDE3 -DGUI_CONFIG=\"KDE3\" \
+        $(AM_CPPFLAGS) $(KDE3_CFLAGS) $(QT3_CFLAGS)
+kde3_gnash_SOURCES = $(GUI_SRCS) gui_kde.cpp
+kde3_gnash_LDFLAGS = $(LIBLTDL) -export-dynamic 
 #kde_gnash_DEPENDENCIES = .configline
-kde_gnash_LDADD = \
+kde3_gnash_LDADD = \
        $(MYSQL_LIBS) \
        $(GNASH_LIBS) \
        $(AM_LDFLAGS)
 if BUILD_OGL_RENDERER
-kde_gnash_CPPFLAGS += $(OPENGL_CFLAGS)
-kde_gnash_LDADD += $(top_builddir)/backend/libgnashogl.la \
-       $(KDE_LIBS) $(QT_LIBS) $(OPENGL_LIBS)
-kde_gnash_SOURCES += kde_glue_opengl.cpp kde_glue_opengl.h kde_glue.h \
+kde3_gnash_CPPFLAGS += $(OPENGL_CFLAGS)
+kde3_gnash_LDADD += $(top_builddir)/backend/libgnashogl.la \
+       $(KDE3_LIBS) $(QT3_LIBS) $(OPENGL_LIBS)
+kde3_gnash_SOURCES += kde_glue_opengl.cpp kde_glue_opengl.h kde_glue.h \
                kde.cpp kdesup.h kde_glue.h
 endif
 if BUILD_AGG_RENDERER
-kde_gnash_CPPFLAGS += $(AGG_CFLAGS)
-kde_gnash_LDADD += $(top_builddir)/backend/libgnashagg.la \
-       $(KDE_LIBS) $(QT_LIBS) $(AGG_LIBS)
-kde_gnash_SOURCES += kde_glue_agg.cpp kde_glue_agg.h \
+kde3_gnash_CPPFLAGS += $(AGG_CFLAGS) $(QT3_CFLAGS)
+kde3_gnash_LDADD += $(top_builddir)/backend/libgnashagg.la \
+       $(KDE3_LIBS) $(QT3_LIBS) $(AGG_LIBS)
+kde3_gnash_SOURCES += kde_glue_agg.cpp kde_glue_agg.h \
                kde.cpp kdesup.h kde_glue.h
 endif
 endif

=== added file 'gui/am-frag/kde4.am'
--- a/gui/am-frag/kde4.am       1970-01-01 00:00:00 +0000
+++ b/gui/am-frag/kde4.am       2008-11-14 22:26:50 +0000
@@ -0,0 +1,48 @@
+# 
+#   Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+# 
+
+#
+# Build the KDE gui
+# 
+if BUILD_KDE4_GUI
+
+klash4.moc: $(srcdir)/Kde4Gui.h
+       @if test x"$(MOC4)" != x; then \
+         echo "Generating MOC 4 file..."; \
+         $(MOC4) $(srcdir)/Kde4Gui.h -o klash4.moc; \
+       else  \
+         echo "WARNING: Install QT 4.x moc tool! Linking to default MOC file"; 
\
+         ln -sf $(srcdir)/klash4.moc.in klash4.moc; \
+       fi
+
+endif
+
+bin_PROGRAMS += kde4-gnash
+
+kde4_gnash_CPPFLAGS = -DGUI_KDE4 -DGUI_CONFIG=\"KDE4\" $(AM_CPPFLAGS) 
$(KDE4_CFLAGS) $(QT4_CFLAGS)
+kde4_gnash_SOURCES = $(GUI_SRCS) GuiKde4.cpp
+kde4_gnash_LDFLAGS = $(LIBLTDL) -export-dynamic 
+kde4_gnash_LDADD = $(MYSQL_LIBS) $(GNASH_LIBS) $(AM_LDFLAGS) $(KDE4_LIBS)
+
+if BUILD_AGG_RENDERER
+kde4_gnash_CPPFLAGS += $(AGG_CFLAGS)
+kde4_gnash_LDADD += $(top_builddir)/backend/libgnashagg.la \
+       $(QT4_LIBS) $(AGG_LIBS)
+kde4_gnash_SOURCES += Kde4GlueAgg.cpp Kde4GlueAgg.h \
+               Kde4Gui.cpp Kde4Gui.h KdeGlue.h
+
+endif

=== renamed file 'gui/am-frag/qtopia.am' => 'gui/am-frag/qtopia3.am'
--- a/gui/am-frag/qtopia.am     2008-01-21 21:19:22 +0000
+++ b/gui/am-frag/qtopia3.am    2008-11-14 22:26:50 +0000
@@ -18,11 +18,9 @@
 #
 # Build the QTOPIA gui
 # 
-if BUILD_QTOPIA_GUI
+if BUILD_QTOPIA3_GUI
 bin_PROGRAMS += qtopia-gnash
-if HAVE_QT_2
-QT_CFLAGS += -DQT_QWS_IPAQ -DQWS
-endif
+
 qtopia_gnash_CPPFLAGS = -DGUI_QTOPIA -DGUI_CONFIG=\"QTOPIA\" \
         $(AM_CPPFLAGS) $(KDE_CFLAGS) $(QT_CFLAGS)
 qtopia_gnash_SOURCES = $(GUI_SRCS) gui_kde.cpp

=== modified file 'gui/gnash.in'
--- a/gui/gnash.in      2008-06-27 03:50:30 +0000
+++ b/gui/gnash.in      2008-10-09 07:35:53 +0000
@@ -27,7 +27,7 @@
 
 #!/bin/sh
 
-GUIS="gtk kde sdl fltk aqua riscos fb alp hildon"
+GUIS="gtk kde kde4 sdl fltk aqua riscos fb alp hildon"
 THIS_DIR="`dirname $0`"
 
 if test "$1" = "-G"; then

=== modified file 'gui/gui.h'
--- a/gui/gui.h 2008-10-28 15:32:20 +0000
+++ b/gui/gui.h 2008-11-13 16:00:44 +0000
@@ -519,6 +519,7 @@
 /// Named constructors
 std::auto_ptr<Gui> createGTKGui(unsigned long xid, float scale, bool loop, 
unsigned int depth);
 std::auto_ptr<Gui> createKDEGui(unsigned long xid, float scale, bool loop, 
unsigned int depth);
+std::auto_ptr<Gui> createKDE4Gui(unsigned long xid, float scale, bool loop, 
unsigned int depth);
 std::auto_ptr<Gui> createSDLGui(unsigned long xid, float scale, bool loop, 
unsigned int depth);
 std::auto_ptr<Gui> createFLTKGui(unsigned long xid, float scale, bool loop, 
unsigned int depth);
 std::auto_ptr<Gui> createFBGui(unsigned long xid, float scale, bool loop, 
unsigned int depth);

=== modified file 'gui/gui_kde.cpp'
--- a/gui/gui_kde.cpp   2008-03-05 03:55:48 +0000
+++ b/gui/gui_kde.cpp   2008-11-14 22:40:33 +0000
@@ -24,23 +24,23 @@
 #include "gui.h"
 #include "GnashException.h"
 
-#ifdef GUI_KDE
+#ifdef GUI_KDE3
 #include "kdesup.h"
 #endif
 
 namespace gnash {
 
-#ifdef GUI_KDE
+#ifdef GUI_KDE3
 std::auto_ptr<Gui> createKDEGui(unsigned long windowid, float scale, bool 
do_loop, unsigned int bit_depth)
 {
        return std::auto_ptr<Gui>(new KdeGui(windowid, scale, do_loop, 
bit_depth));
 }
-#else // ! GUI_KDE
+#else // ! GUI_KDE3
 std::auto_ptr<Gui> createKDEGui(unsigned long , float , bool , unsigned int )
 {
        throw GnashException("Support for KDE gui was not compiled in");
 }
-#endif // ! GUI_KDE
+#endif // ! GUI_KDE3
 
 } // namespace gnash
 

=== modified file 'gui/kde.cpp'
--- a/gui/kde.cpp       2008-09-24 07:44:50 +0000
+++ b/gui/kde.cpp       2008-11-14 22:39:17 +0000
@@ -25,13 +25,13 @@
 #include <qwidget.h>
 #include <qmessagebox.h>
 #include <qcursor.h>
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE3
 #include <qxembed.h>
 #endif
 #include <qnamespace.h>
 #include <qtimer.h>
 #include <qcursor.h>
-#if GNASH_QT_VERSION > 2
+#if HAVE_QT3
 #include <qeventloop.h>
 #endif
 #include "Range2d.h"
@@ -42,7 +42,7 @@
 
 #include "gui.h"
 #include "kdesup.h"
-#include "klash.moc"
+#include "klash3.moc"
 #include "utility.h" // for PIXELS_TO_TWIPS 
 
 using namespace std;
@@ -67,7 +67,7 @@
 //    GNASH_REPORT_FUNCTION;
     _qapp.reset(new QApplication(argc, *argv));
     _qwidget.reset(new qwidget(this)); 
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE3
     if (_xid) {
         QXEmbed::initialize();
         QXEmbed::embedClientIntoWindow(_qwidget.get(), _xid);

=== removed file 'gui/klash.moc.in'
--- a/gui/klash.moc.in  2008-03-30 19:46:18 +0000
+++ b/gui/klash.moc.in  1970-01-01 00:00:00 +0000
@@ -1,124 +0,0 @@
-/****************************************************************************
-** gnash::qwidget meta object code from reading C++ file 'kdesup.h'
-**
-** Created: Thu Nov 22 19:07:28 2007
-**
-** WARNING! All changes made in this file will be lost!
-*****************************************************************************/
-
-#undef QT_NO_COMPAT
-#include "kdesup.h"
-#include <qmetaobject.h>
-#include <qapplication.h>
-
-#include <private/qucomextra_p.h>
-#if !defined(Q_MOC_OUTPUT_REVISION) || (Q_MOC_OUTPUT_REVISION != 26)
-#error "This file was generated using the moc from 3.3.7. It"
-#error "cannot be used with the include files from this version of Qt."
-#error "(The moc has changed too much.)"
-#endif
-
-const char *gnash::qwidget::className() const
-{
-    return "gnash::qwidget";
-}
-
-QMetaObject *gnash::qwidget::metaObj = 0;
-static QMetaObjectCleanUp cleanUp_gnash__qwidget( "gnash::qwidget", 
&gnash::qwidget::staticMetaObject );
-
-#ifndef QT_NO_TRANSLATION
-QString gnash::qwidget::tr( const char *s, const char *c )
-{
-    if ( qApp )
-       return qApp->translate( "gnash::qwidget", s, c, 
QApplication::DefaultCodec );
-    else
-       return QString::fromLatin1( s );
-}
-#ifndef QT_NO_TRANSLATION_UTF8
-QString gnash::qwidget::trUtf8( const char *s, const char *c )
-{
-    if ( qApp )
-       return qApp->translate( "gnash::qwidget", s, c, 
QApplication::UnicodeUTF8 );
-    else
-       return QString::fromUtf8( s );
-}
-#endif // QT_NO_TRANSLATION_UTF8
-
-#endif // QT_NO_TRANSLATION
-
-QMetaObject* gnash::qwidget::staticMetaObject()
-{
-    if ( metaObj )
-       return metaObj;
-    QMetaObject* parentObject = WIDGETCLASS::staticMetaObject();
-    static const QUMethod slot_0 = {"menuitem_restart_callback", 0, 0 };
-    static const QUMethod slot_1 = {"menuitem_quit_callback", 0, 0 };
-    static const QUMethod slot_2 = {"menuitem_play_callback", 0, 0 };
-    static const QUMethod slot_3 = {"menuitem_pause_callback", 0, 0 };
-    static const QUMethod slot_4 = {"menuitem_stop_callback", 0, 0 };
-    static const QUMethod slot_5 = {"menuitem_step_forward_callback", 0, 0 };
-    static const QUMethod slot_6 = {"menuitem_step_backward_callback", 0, 0 };
-    static const QUMethod slot_7 = {"menuitem_jump_forward_callback", 0, 0 };
-    static const QUMethod slot_8 = {"menuitem_jump_backward_callback", 0, 0 };
-    static const QMetaData slot_tbl[] = {
-       { "menuitem_restart_callback()", &slot_0, QMetaData::Public },
-       { "menuitem_quit_callback()", &slot_1, QMetaData::Public },
-       { "menuitem_play_callback()", &slot_2, QMetaData::Public },
-       { "menuitem_pause_callback()", &slot_3, QMetaData::Public },
-       { "menuitem_stop_callback()", &slot_4, QMetaData::Public },
-       { "menuitem_step_forward_callback()", &slot_5, QMetaData::Public },
-       { "menuitem_step_backward_callback()", &slot_6, QMetaData::Public },
-       { "menuitem_jump_forward_callback()", &slot_7, QMetaData::Public },
-       { "menuitem_jump_backward_callback()", &slot_8, QMetaData::Public }
-    };
-    metaObj = QMetaObject::new_metaobject(
-       "gnash::qwidget", parentObject,
-       slot_tbl, 9,
-       0, 0,
-#ifndef QT_NO_PROPERTIES
-       0, 0,
-       0, 0,
-#endif // QT_NO_PROPERTIES
-       0, 0 );
-    cleanUp_gnash__qwidget.setMetaObject( metaObj );
-    return metaObj;
-}
-
-void* gnash::qwidget::qt_cast( const char* clname )
-{
-    if ( !qstrcmp( clname, "gnash::qwidget" ) )
-       return this;
-    return WIDGETCLASS::qt_cast( clname );
-}
-
-bool gnash::qwidget::qt_invoke( int _id, QUObject* _o )
-{
-    switch ( _id - staticMetaObject()->slotOffset() ) {
-    case 0: menuitem_restart_callback(); break;
-    case 1: menuitem_quit_callback(); break;
-    case 2: menuitem_play_callback(); break;
-    case 3: menuitem_pause_callback(); break;
-    case 4: menuitem_stop_callback(); break;
-    case 5: menuitem_step_forward_callback(); break;
-    case 6: menuitem_step_backward_callback(); break;
-    case 7: menuitem_jump_forward_callback(); break;
-    case 8: menuitem_jump_backward_callback(); break;
-    default:
-       return WIDGETCLASS::qt_invoke( _id, _o );
-    }
-    return TRUE;
-}
-
-bool gnash::qwidget::qt_emit( int _id, QUObject* _o )
-{
-    return WIDGETCLASS::qt_emit(_id,_o);
-}
-#ifndef QT_NO_PROPERTIES
-
-bool gnash::qwidget::qt_property( int id, int f, QVariant* v)
-{
-    return WIDGETCLASS::qt_property( id, f, v);
-}
-
-bool gnash::qwidget::qt_static_property( QObject* , int , int , QVariant* ){ 
return FALSE; }
-#endif // QT_NO_PROPERTIES

=== added file 'gui/klash4.moc.in'
--- a/gui/klash4.moc.in 1970-01-01 00:00:00 +0000
+++ b/gui/klash4.moc.in 2008-12-04 09:27:57 +0000
@@ -0,0 +1,82 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'Kde4Gui.h'
+**
+** Created: Thu Dec 4 10:02:08 2008
+**      by: The Qt Meta Object Compiler version 59 (Qt 4.4.3)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'Kde4Gui.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 59
+#error "This file was generated using the moc from 4.4.3. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_gnash__DrawingWidget[] = {
+
+ // content:
+       1,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       6,   10, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+
+ // slots: signature, parameters, type, tag, flags
+      22,   21,   21,   21, 0x0a,
+      29,   21,   21,   21, 0x0a,
+      37,   21,   21,   21, 0x0a,
+      44,   21,   21,   21, 0x0a,
+      54,   21,   21,   21, 0x0a,
+      71,   64,   21,   21, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_gnash__DrawingWidget[] = {
+    "gnash::DrawingWidget\0\0play()\0pause()\0"
+    "stop()\0restart()\0refresh()\0isFull\0"
+    "fullscreen(bool)\0"
+};
+
+const QMetaObject gnash::DrawingWidget::staticMetaObject = {
+    { &QX11EmbedWidget::staticMetaObject, 
qt_meta_stringdata_gnash__DrawingWidget,
+      qt_meta_data_gnash__DrawingWidget, 0 }
+};
+
+const QMetaObject *gnash::DrawingWidget::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *gnash::DrawingWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_gnash__DrawingWidget))
+        return static_cast<void*>(const_cast< DrawingWidget*>(this));
+    return QX11EmbedWidget::qt_metacast(_clname);
+}
+
+int gnash::DrawingWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QX11EmbedWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: play(); break;
+        case 1: pause(); break;
+        case 2: stop(); break;
+        case 3: restart(); break;
+        case 4: refresh(); break;
+        case 5: fullscreen((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        }
+        _id -= 6;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE

=== renamed file 'macros/kde.m4' => 'macros/kde3.m4'
--- a/macros/kde.m4     2008-05-19 07:35:06 +0000
+++ b/macros/kde3.m4    2008-11-14 22:22:01 +0000
@@ -14,203 +14,222 @@
 dnl  along with this program; if not, write to the Free Software
 dnl  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-
-AC_DEFUN([GNASH_PATH_KDE],
-[
-  dnl Lool for the header
-  AC_ARG_WITH(kde_incl, AC_HELP_STRING([--with-kde-incl], [directory where kde 
headers are]), with_kde_incl=${withval})
-  AC_CACHE_VAL(ac_cv_path_kde_incl,[
-    if test x"${with_kde_incl}" != x ; then
-      if test -f ${with_kde_incl}/kapp.h ; then
-        ac_cv_path_kde_incl="-I`(cd ${with_kde_incl}; pwd)`"
-      else
-        AC_MSG_ERROR([${with_kde_incl} directory doesn't contain any headers])
-      fi
-    fi
-  ])
-
-  AC_PATH_PROG(KDE_CONFIG, kde-config, ,[${pathlist}])
-
-  AC_ARG_WITH(kparts-install,
-    AC_HELP_STRING([--with-kparts-install=system|user|prefix], [Policy for 
KPARTS plugin install. Default: user.]),
-       [case "${withval}" in
-         user) KPARTS_INSTALL_POLICY=user ;;
-         system) KPARTS_INSTALL_POLICY=system ;;
-         prefix) KPARTS_INSTALL_POLICY=prefix ;;
-         *)  AC_MSG_ERROR([bad value ${withval} for --with-kparts-install]) ;;
-        esac 
-       ], KPARTS_INSTALL_POLICY=${PLUGINS_INSTALL_POLICY}) dnl Inherit a 
generic PLUGINS_INSTALL_POLICY when available
-
-  AC_ARG_WITH(kde-pluginprefix, AC_HELP_STRING([--with-kde-pluginprefix=DIR],
-      [Prefix for KDE plugin, like /usr]),
-    [KDE_PLUGINPREFIX=${withval}
-  ])
-
-  kde_prefix="/usr"
-  has_kde=no
-  if test x"${ac_cv_path_kde_incl}" = x; then
-    if test "x$KDE_CONFIG" != "x" ; then
-      if test "x$KDE_CFLAGS" = "x" ; then
-        kde_prefix=`$KDE_CONFIG --prefix`
-
-        if test -f ${kde_prefix}/include/kapp.h ; then
-          ac_cv_path_kde_incl="-I${kde_prefix}/include 
-I${kde_prefix}/include/kio"
-        else
-         if test -f ${kde_prefix}/include/kde/kapp.h; then
-            ac_cv_path_kde_incl="-I${kde_prefix}/include/kde 
-I${kde_prefix}/include/kde/kio"
-         fi
-        fi
-
-      fi
-    else
-      AC_MSG_RESULT(no)
-    fi
-  fi
-  AC_MSG_CHECKING([for kde header])
-
-  dnl incllist is inherited from configure.ac.
-  if test x"${ac_cv_path_kde_incl}" = x ; then
-    for i in $incllist; do
-      if test -f $i/kde/kapp.h; then
-        ac_cv_path_kde_incl="-I$i/kde"
-        kde_prefix=`dirname $i`
-        break
-      fi
-    done
-  fi
-
-  if test x"${ac_cv_path_kde_incl}" = x; then
-    AC_MSG_RESULT(no)
-    if test x${cross_compiling} = xno; then
-      AC_CHECK_HEADERS(kde/kapp.h, [ac_cv_path_kde_incl=""])
-    fi
-  else
-    AC_MSG_RESULT(${ac_cv_path_kde_incl})
-  fi
-
-  if test x"${ac_cv_path_kde_incl}" != x ; then
-    KDE_CFLAGS="${ac_cv_path_kde_incl}"
-  else
-    KDE_CFLAGS=""
-  fi
-
-  dnl Look for the libraries
-  AC_ARG_WITH(kde_lib, AC_HELP_STRING([--with-kde-lib], [directory where kde 
libraries are]), with_kde_lib=${withval})
-  AC_CACHE_VAL(ac_cv_path_kde_lib, [
-    if test x"${with_kde_lib}" != x ; then
-      if test `ls -C1 ${with_kde_lib}/libkdeui.* | wc -l` -gt 0; then
-             ac_cv_path_kde_lib="-L`(cd ${with_kde_lib}; pwd)`"
-      else
-             AC_MSG_ERROR([${with_kde_lib} directory doesn't contain kde 
libraries.])
-      fi
-    fi
-  ])
-
-  if test x"${ac_cv_path_kde_lib}" = x; then
-    AC_MSG_CHECKING([for kdeui library])
-    topdir=""
-    newlist="${kde_prefix}/lib ${libslist}"
-    for i in $newlist ; do
-      if test -f $i/libkdeui.a -o -f $i/libkdeui.${shlibext} ; then
-        topdir=$i
-        AC_MSG_RESULT(${topdir}/libkdeui)
-             if test ! x"$i" = x"/usr/lib" -a ! x"$i" = x"/usr/lib64"; then
-               ac_cv_path_kde_lib="-L$i -lkdeui"
-                 break
-        else
-               ac_cv_path_kde_lib="-lkdeui"
-               break
-        fi
-      fi
-    done
-  fi
-
-  dnl Look for the kdecore library, which is required
-  if test x"${ac_cv_path_kde_lib}" != x; then
-    AC_MSG_CHECKING([for kdecore library])
-    if test `ls -C1 ${topdir}/libkdecore.* | wc -l` -gt 0; then
-      ac_cv_path_kde_lib="${ac_cv_path_kde_lib} -lkdecore"
-      AC_MSG_RESULT(${topdir}/libkdecore)
-    else
-      AC_MSG_RESULT(no)
-    fi
-
-    dnl Look for the kdeprint library, which is required
-    AC_MSG_CHECKING([for kdeprint library])
-    if test x"${libkdeprint}" = x; then
-      if test -f ${topdir}/libkdeprint.a -o -f 
${topdir}/libkdeprint.${shlibext}; then
-        ac_cv_path_kde_lib="${ac_cv_path_kde_lib} -lkdeprint"
-        AC_MSG_RESULT(${topdir}/libkdeprint)
+AC_DEFUN([GNASH_PATH_KDE3],
+[ 
+  has_kde3=no
+
+  dnl setup the various options to custimize paths
+  AC_ARG_WITH(kde3_incl, AC_HELP_STRING([--with-kde3-incl],
+             [directory where KDE 3.x headers are]),
+             with_kde3_incl=${withval})
+  dnl make sure the path is a useable one
+  if test x"${with_kde3_incl}" != x ; then
+    if test ! -f ${with_kde3_incl}/kapp.h ; then
+      AC_MSG_ERROR([${with_kde3_incl} directory doesn't contain any KDE 3.x 
headers])
+    fi
+  fi
+
+  AC_ARG_WITH(kde3_prefix, AC_HELP_STRING([--with-kde3-prefix],
+             [Prefix for KDE plugin, like /usr]),
+             with_kde3_prefix=${withval})
+
+  AC_ARG_WITH(kde3_lib, AC_HELP_STRING([--with-kde3-lib],
+             [directory where KDE 3.x libraries are]),
+             with_kde3_lib=${withval})
+  dnl make sure the path is a useable one
+  if test x"${with_kde3_lib}" != x ; then 
+    if test ! -f ${with_kde3_lib}/libkdeui.la; then
+      AC_MSG_ERROR([${with_kde3_lib} directory doesn't contain any KDE 3.x 
libraries!])
+    fi
+  fi
+
+  dnl Specifiy a custom directory for the kparts plugin
+  AC_ARG_WITH(kde3_plugindir, AC_HELP_STRING([--with-kde3-plugindir=DIR],
+             [Directory to install KDE 3.x plugin in]),
+             with_kde3_plugindir=${withval})
+  if test x"${with_kde3_plugindir}" != x ; then 
+    if test ! -d ${with_kde3_plugindir}/designer; then
+      AC_MSG_ERROR([${with_kde3_plugindir} directory doesn't contain any KDE 
3.x plugins!])
+    fi
+  fi
+
+  dnl Specifiy a custom directory for the kde services directory
+  AC_ARG_WITH(kde3_servicesdir, AC_HELP_STRING([--with-kde3-servicesdir=DIR],
+             [Directory to install KDE 3.x plugin in]),
+             with_kde3_servicesdir=${withval})
+  if test x"${with_kde3_servicesdir}" != x ; then 
+    if test ! -d ${with_kde3_servicesdir}; then
+      AC_MSG_ERROR([${with_kde3_} directory doesn't contain any KDE 3.x 
plugins!])
+    fi
+  fi
+
+  AC_ARG_WITH(kde3-configdir, AC_HELP_STRING([--with-kde3-configdir=DIR],
+      [Directory to install KDE 3.x configfile in]),
+    [KDE3_CONFIGDIR=${withval}
+  ])
+
+  AC_ARG_WITH(kde3-appsdatadir, AC_HELP_STRING([--with-kde3-appsdatadir=DIR],
+      [Directory to install KDE 3.x data in]),
+    [KDE3_APPSDATADIR=${withval}
+  ])
+
+  dnl Look for the files necessary to build KDE 3.x applications
+  if test x"${build_kde3}" = xyes; then
+    kde3_prefix=
+    AC_PATH_PROG(KDE3_CONFIG, kde-config, ,[${pathlist}])
+    if test "x$KDE3_CONFIG" != "x" ; then
+      kde3_prefix=`$KDE3_CONFIG --prefix`
+      AC_MSG_NOTICE([KDE3 prefix from kde-config is ${kde3_prefix}])
+    fi
+
+    AC_CACHE_VAL(ac_cv_path_kde3_incl,[
+      dnl if the user specified a path, sanity check it and then use it
+      if test x"${with_kde3_incl}" != x; then
+        if test -f ${with_kde3_incl}/kapp.h; then
+          ac_cv_path_kde3_incl="-I`(cd ${with_kde3_incl}; pwd)`"
+        fi
+      fi
+      dnl if the user didn't specify a path, go search a list of
+      dnl likely directories for the header files.
+      if test x"${ac_cv_path_kde3_incl}" = x ; then
+        AC_MSG_CHECKING([for KDE 3.x header path])
+        dnl incllist is inherited from configure.ac, and lives in /macros
+        for i in ${kde3_prefix}/include ${incllist}; do
+          if test -f $i/kde/kapplication.h; then
+            ac_cv_path_kde3_incl="-I$i/kde"
+            kde3_prefix=`dirname $i`
+            break
+          fi
+          if test -f $i/kapplication.h; then
+            ac_cv_path_kde3_incl="-I$i"
+            kde3_prefix=`dirname $i`
+            break
+          fi
+        done
+      fi
+      if test x"${ac_cv_path_kde3_incl}" != x ; then
+        AC_MSG_RESULT(${ac_cv_path_kde3_incl})
       else
         AC_MSG_RESULT(no)
+        if test x${cross_compiling} = xno; then
+          dnl if no headers have been found yet, make a last ditch
+          dnl attempt to use the compiler to find them.
+          AC_CHECK_HEADERS(kde/kapplication.h, [ac_cv_path_kde3_incl=""])
+        fi
       fi
-    else
-      AC_MSG_RESULT(${libkdeprint})
-      ac_cv_path_kde_lib="${ac_cv_path_kde_lib} ${libkdeprint}"
-    fi 
-  fi                            dnl end of all optional library tests
+    ])                  dnl end of cache ac_cv_path_kde3_incl
 
-  if test x"${ac_cv_path_kde_lib}" != x; then
-    KDE_LIBS="${ac_cv_path_kde_lib}"
-    AC_DEFINE(HAVE_KDE,1,[Have KDE installed])
-    has_kde=yes
-  else
-    KDE_LIBS=""
-    has_kde=no
-  fi
+    dnl Look for the libraries
+    AC_CACHE_VAL(ac_cv_path_kde3_lib, [
+      if test x"${with_kde3_lib}" != x ; then
+        if test -f ${with_kde3_lib}/libkdeui.la; then
+               ac_cv_path_kde3_lib="-L`(cd ${with_kde3_lib}; pwd)`"
+        else
+               AC_MSG_ERROR([${with_kde3_lib} directory doesn't contain KDE 
3.x libraries.])
+        fi
+      fi
+      if test x"${ac_cv_path_kde3_lib}" = x; then
+        AC_MSG_CHECKING([for kdeui library])
+        kde3_topdir=
+        for i in ${kde3_prefix}/lib64 ${kde3_prefix}/lib $libslist ; do
+          if test -f $i/libkdeui.${shlibext} -o -f $i/libkdeui.la; then
+            kde3_topdir=$i
+            AC_MSG_RESULT(${kde3_topdir}/libkdeui)
+                 if test ! x"$i" = x"/usr/lib" -a ! x"$i" = x"/usr/lib64"; then
+                   ac_cv_path_kde3_lib="-L$i -lkdeui"
+                     break
+            else
+                   ac_cv_path_kde3_lib="-lkdeui"
+                   break
+            fi
+          fi
+        done
+      fi
+      dnl Look for the kdecore library, which is required
+      if test x"${ac_cv_path_kde3_lib}" != x; then
+        AC_MSG_CHECKING([for kdecore library])
+        if test -f ${kde3_topdir}/libkdecore.la; then
+          ac_cv_path_kde3_lib="${ac_cv_path_kde3_lib} -lkdecore"
+          AC_MSG_RESULT(${kde3_topdir}/libkdecore)
+        else
+         AC_MSG_RESULT(no)
+        fi
+      fi
+      dnl Look for the kdeprint library, which is required
+      AC_MSG_CHECKING([for kdeprint library])
+      if test x"${libkdeprint}" = x; then
+        if test -f ${kde3_topdir}/libkdeprint.la -o -f 
${kde3_topdir}/libkdeprint.${shlibext}; then
+          ac_cv_path_kde3_lib="${ac_cv_path_kde3_lib} -lkdeprint"
+          AC_MSG_RESULT(${kde3_topdir}/libkdeprint)
+        else
+          AC_MSG_RESULT(no)
+        fi
+      else
+        AC_MSG_RESULT(${libkdeprint})
+        ac_cv_path_kde3_lib="${ac_cv_path_kde3_lib} ${libkdeprint}"
+      fi       
+    ])                  dnl end of cache ac_cv_path_kde3_lib
+  fi                    dnl end of build_kde3
 
   KLASH_PLUGIN=
   
+  dnl If building the kparts plugin, get the install paths correct.  
+  if test x$build_kparts3 = xyes; then
+    AC_CACHE_VAL(ac_cv_path_kde3_prefix,[
+      dnl if the user specified a path, sanity check it and then use it
+      if test x"${with_kde3_prefix}" != x; then
+          ac_cv_path_kde3_prefix="`(cd ${with_kde3_prefix}; pwd)`"
+      fi
+    ])                  dnl end of cache ac_cv_path_kde3_prefix
+
+    KDE3_PREFIX="${ac_cv_path_kde3_prefix}"
+    if test x"${PLUGINS_INSTALL_POLICY}" != x; then
+      case "${PLUGINS_INSTALL_POLICY}" in
+        user)
+                 KDE3_PREFIX=${HOME}/.kde
+          ;;
+        system)
+          KDE3_PREFIX="${kde3_prefix}"
+          ;;
+        prefix)
+               KDE3_PREFIX="${prefix}"
+          ;;
+      esac
+    fi
+
+    KDE3_PLUGINDIR="${KDE3_PREFIX}/lib/kde3"
+    KDE3_SERVICESDIR="${KDE3_PREFIX}/share/services"
+    KDE3_CONFIGDIR="${KDE3_PREFIX}/share/config"
+    KDE3_APPSDATADIR="${KDE3_PREFIX}/share/apps/klash"
+  fi                            dnl end of build_kparts3
+
+  if test x"${ac_cv_path_kde3_incl}" != x ; then
+    if test x"${ac_cv_path_kde3_incl}" != x"-I/usr/include"; then
+      KDE3_CFLAGS="${ac_cv_path_kde3_incl}"
+    else
+      KDE3_CFLAGS=""
+    fi
+  else
+    KDE3_CFLAGS=""
+  fi
+
+  if test x"${ac_cv_path_kde3_lib}" != x; then
+    KDE3_LIBS="${ac_cv_path_kde3_lib}"
+    AC_DEFINE(HAVE_KDE3, 1,[Have KDE 3.x installed])
+    has_kde3=yes
+  else
+    KDE3_LIBS=""
+    has_kde3=no
+  fi
+
   AC_SUBST(KLASH_PLUGIN)
-  AC_SUBST(KDE_CFLAGS)  
-  AC_SUBST(KDE_LIBS)
-
-  dnl If building the kparts plugin, get the install paths correct.  
-  if test x$kparts = xyes; then
-    if test x$KDE_PLUGINPREFIX = x; then
-      if test "x$KPARTS_INSTALL_POLICY" = "xuser"; then
-       KDE_PLUGINPREFIX=${HOME}/.kde
-      elif test "x$KPARTS_INSTALL_POLICY" = "xsystem"; then
-        if test "x$KDE_CONFIG" != "x" ; then
-          KDE_PLUGINPREFIX=`$KDE_CONFIG --prefix`
-        else
-          AC_MSG_ERROR([Dunno how to make a 'system' kde plugin install not 
having found kde-config]);
-        fi
-      elif test "x$KPARTS_INSTALL_POLICY" = "xprefix"; then
-       KDE_PLUGINPREFIX="\${prefix}/kparts"
-      fi
-    fi
-    KDE_PLUGINDIR="${KDE_PLUGINPREFIX}/lib/kde3"
-    KDE_SERVICESDIR="${KDE_PLUGINPREFIX}/share/services"
-    KDE_CONFIGDIR="${KDE_PLUGINPREFIX}/share/config"
-    KDE_APPSDATADIR="${KDE_PLUGINPREFIX}/share/apps/klash"
-  fi
-
-  AC_ARG_WITH(kde-plugindir,
-    AC_HELP_STRING([--with-kde-plugindir=DIR], [Directory to install KDE 
plugin in]),
-    [KDE_PLUGINDIR=${withval}
-  ])
-
-  AC_ARG_WITH(kde-servicesdir, AC_HELP_STRING([--with-kde-servicesdir=DIR],
-      [Directory to install KDE service in]),
-    [KDE_SERVICESDIR=${withval}
-  ])
-
-  AC_ARG_WITH(kde-configdir, AC_HELP_STRING([--with-kde-configdir=DIR],
-      [Directory to install KDE configfile in]),
-    [KDE_CONFIGDIR=${withval}
-  ])
-
-  AC_ARG_WITH(kde-appsdatadir, AC_HELP_STRING([--with-kde-appsdatadir=DIR],
-      [Directory to install KDE data in]),
-    [KDE_APPSDATADIR=${withval}
-  ])
-
-
-  AC_SUBST(KDE_PLUGINDIR)
-  AC_SUBST(KDE_SERVICESDIR)
-  AC_SUBST(KDE_CONFIGDIR)
-  AC_SUBST(KDE_APPSDATADIR)
+  AC_SUBST(KDE3_CFLAGS)  
+  AC_SUBST(KDE3_LIBS)
+
+  AC_SUBST(KDE3_PLUGINDIR)
+  AC_SUBST(KDE3_SERVICESDIR)
+  AC_SUBST(KDE3_CONFIGDIR)
+  AC_SUBST(KDE3_APPSDATADIR)
 ])
 
 # Local Variables:

=== added file 'macros/kde4.m4'
--- a/macros/kde4.m4    1970-01-01 00:00:00 +0000
+++ b/macros/kde4.m4    2008-11-14 22:22:01 +0000
@@ -0,0 +1,245 @@
+dnl  
+dnl    Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+dnl  
+dnl  This program is free software; you can redistribute it and/or modify
+dnl  it under the terms of the GNU General Public License as published by
+dnl  the Free Software Foundation; either version 3 of the License, or
+dnl  (at your option) any later version.
+dnl  
+dnl  This program is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl  GNU General Public License for more details.
+dnl  You should have received a copy of the GNU General Public License
+dnl  along with this program; if not, write to the Free Software
+dnl  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+AC_DEFUN([GNASH_PATH_KDE4],
+[ 
+  has_kde4=no
+
+  dnl setup the various options to custimize paths
+  AC_ARG_WITH(kde4_incl, AC_HELP_STRING([--with-kde4-incl],
+             [directory where KDE 4.x headers are]),
+             with_kde4_incl=${withval})
+  dnl make sure the path is a useable one
+  if test x"${with_kde4_incl}" != x ; then
+    if test ! -f ${with_kde4_incl}/kapp.h ; then
+      AC_MSG_ERROR([${with_kde4_incl} directory doesn't contain any KDE 4.x 
headers])
+    fi
+  fi
+
+  AC_ARG_WITH(kde4_prefix, AC_HELP_STRING([--with-kde4-prefix],
+             [Prefix for KDE plugin, like /usr]),
+             with_kde4_prefix=${withval})
+
+  AC_ARG_WITH(kde4_lib, AC_HELP_STRING([--with-kde4-lib],
+             [directory where KDE 4.x libraries are]),
+             with_kde4_lib=${withval})
+  dnl make sure the path is a useable one
+  if test x"${with_kde4_lib}" != x ; then 
+    if test ! -f ${with_kde4_lib}/libkdeui.la; then
+      AC_MSG_ERROR([${with_kde4_lib} directory doesn't contain any KDE 4.x 
libraries!])
+    fi
+  fi
+
+  dnl Specifiy a custom directory for the kparts plugin
+  AC_ARG_WITH(kde4_plugindir, AC_HELP_STRING([--with-kde4-plugindir=DIR],
+             [Directory to install KDE 4.x plugin in]),
+             with_kde4_plugindir=${withval})
+  if test x"${with_kde4_plugindir}" != x ; then 
+    if test ! -d ${with_kde4_plugindir}/designer; then
+      AC_MSG_ERROR([${with_kde4_plugindir} directory doesn't contain any KDE 
4.x plugins!])
+    fi
+  fi
+
+  dnl Specifiy a custom directory for the kde services directory
+  AC_ARG_WITH(kde4_servicesdir, AC_HELP_STRING([--with-kde4-servicesdir=DIR],
+             [Directory to install KDE 4.x plugin in]),
+             with_kde4_servicesdir=${withval})
+  if test x"${with_kde4_servicesdir}" != x ; then 
+    if test ! -d ${with_kde4_servicesdir}; then
+      AC_MSG_ERROR([${with_kde4_} directory doesn't contain any KDE 4.x 
plugins!])
+    fi
+  fi
+
+  AC_ARG_WITH(kde4-configdir, AC_HELP_STRING([--with-kde4-configdir=DIR],
+      [Directory to install KDE KDE 4.x configfile in]),
+    [KDE4_CONFIGDIR=${withval}
+  ])
+
+  AC_ARG_WITH(kde-appsdatadir, AC_HELP_STRING([--with-kde-appsdatadir=DIR],
+      [Directory to install KDE 4.x data in]),
+    [KDE4_APPSDATADIR=${withval}
+  ])
+
+  dnl Only run these tests if this version was specified by the user, and they
+  dnl haven't spcified a custom path.
+  if test x"${build_kde4}" = xyes; then
+    kde4_prefix=
+    AC_PATH_PROG(KDE4_CONFIG, kde4-config, ,[${pathlist}])
+    if test "x$KDE4_CONFIG" != "x" ; then
+      kde4_prefix=`$KDE4_CONFIG --prefix`
+      AC_MSG_NOTICE([KDE4 prefix from kde4-config is ${kde4_prefix}])
+    fi
+
+    AC_CACHE_VAL(ac_cv_path_kde4_incl,[
+      dnl if the user specified a path, sanity check it and then use it
+      if test x"${with_kde4_incl}" != x ; then
+        if test -f ${with_kde4_incl}/kapplication.h ; then
+          ac_cv_path_kde4_incl="-I`(cd ${with_kde4_incl}; pwd)`"
+        fi
+      fi
+      AC_MSG_CHECKING([for KDE 4.x header path])
+      dnl if the user didn't specify a path, go search a list of
+      dnl likely directories for the header files.
+      if test x"${ac_cv_path_kde4_incl}" = x ; then
+        dnl incllist is inherited from configure.ac, and lives in /macros
+        for i in ${kde4_prefix}/include $incllist; do
+          if test -f $i/kde4/kapplication.h; then
+            ac_cv_path_kde4_incl="-I$i/kde4"
+            kde4_prefix=`dirname $i`
+            break
+          fi
+          if test -f $i/kde/kapplication.h; then
+            ac_cv_path_kde4_incl="-I$i/kde"
+            kde4_prefix=`dirname $i`
+            break
+          fi
+          if test -f $i/kapplication.h; then
+            ac_cv_path_kde4_incl="-I$i"
+            kde4_prefix=`dirname $i`
+            break
+          fi
+        done
+      fi
+      if test x"${ac_cv_path_kde4_incl}" != x ; then
+        AC_MSG_RESULT(${ac_cv_path_kde4_incl})
+      else
+        AC_MSG_RESULT(no)
+        if test x${cross_compiling} = xno; then
+          dnl if no headers have been found yet, make a last ditch
+          dnl attempt to use the compiler to find them.
+          AC_CHECK_HEADERS(kde4/kapplication.h, [ac_cv_path_kde4_incl=""])
+        fi
+      fi
+    ])                  dnl end of cache ac_cv_path_kde4_incl
+
+    dnl Look for the libraries
+    AC_CACHE_VAL(ac_cv_path_kde4_lib, [
+      if test x"${with_kde4_lib}" != x ; then
+        if test -f ${with_kde4_lib}/libkdeui.la; then
+               ac_cv_path_kde4_lib="-L`(cd ${with_kde4_lib}; pwd)`"
+        else
+               AC_MSG_ERROR([${with_kde4_lib} directory doesn't contain KDE 
4.x libraries.])
+        fi
+      fi
+      if test x"${ac_cv_path_kde4_lib}" = x; then
+        AC_MSG_CHECKING([for kdeui library])
+        kde4_topdir=
+        for i in ${kde4_prefix}/lib64 ${kde4_prefix}/lib $libslist ; do
+          if test -f $i/libkdeui.${shlibext} -o -f $i/libkdeui.la; then
+            kde4_topdir=$i
+            AC_MSG_RESULT(${kde4_topdir}/libkdeui)
+                 if test ! x"$i" = x"/usr/lib" -a ! x"$i" = x"/usr/lib64"; then
+                   ac_cv_path_kde4_lib="-L$i -lkdeui"
+                     break
+            else
+                   ac_cv_path_kde4_lib="-lkdeui"
+                   break
+            fi
+          fi
+        done
+      fi
+      dnl Look for the kdecore library, which is required
+      if test x"${ac_cv_path_kde4_lib}" != x; then
+        AC_MSG_CHECKING([for kdecore library])
+        if test -f ${kde4_topdir}/libkdecore.la; then
+          ac_cv_path_kde4_lib="${ac_cv_path_kde4_lib} -lkdecore"
+          AC_MSG_RESULT(${kde4_topdir}/libkdecore)
+        else
+         AC_MSG_RESULT(no)
+        fi
+      fi
+      dnl Look for the kdeprint library, which is required
+      AC_MSG_CHECKING([for kdeprint library])
+      if test x"${libkdeprint}" = x; then
+        if test -f ${kde4_topdir}/libkdeprint.la -o -f 
${kde4_topdir}/libkdeprint.${shlibext}; then
+          ac_cv_path_kde4_lib="${ac_cv_path_kde4_lib} -lkdeprint"
+          AC_MSG_RESULT(${kde4_topdir}/libkdeprint)
+        else
+          AC_MSG_RESULT(no)
+        fi
+      else
+        AC_MSG_RESULT(${libkdeprint})
+        ac_cv_path_kde4_lib="${ac_cv_path_kde4_lib} ${libkdeprint}"
+      fi       
+    ])                  dnl end of cache ac_cv_path_kde4_lib
+  fi                    dnl end of build_kde4
+
+  KLASH_PLUGIN=
+  
+  dnl If building the kparts plugin, get the install paths correct.  
+  if test x$build_kparts3 = xyes; then
+    AC_CACHE_VAL(ac_cv_path_kde4_prefix,[
+      dnl if the user specified a path, sanity check it and then use it
+      if test x"${with_kde4_prefix}" != x; then
+          ac_cv_path_kde4_prefix="`(cd ${with_kde4_prefix}; pwd)`"
+      fi
+    ])                  dnl end of cache ac_cv_path_kde4_prefix
+
+    KDE4_PREFIX="${ac_cv_path_kde4_prefix}"
+    if test x"${PLUGINS_INSTALL_POLICY}" != x; then
+      case "${PLUGINS_INSTALL_POLICY}" in
+        user)
+                 KDE4_PREFIX=${HOME}/.kde
+          ;;
+        system)
+          KDE4_PREFIX="${kde4_prefix}"
+          ;;
+        prefix)
+          KDE4_PREFIX="${prefix}"
+          ;;
+      esac
+    fi
+
+    KDE4_PLUGINDIR="${KDE4_PREFIX}/lib/kde4"
+    KDE4_SERVICESDIR="${KDE4_PREFIX}/share/services"
+    KDE4_CONFIGDIR="${KDE4_PREFIX}/share/config"
+    KDE4_APPSDATADIR="${KDE4_PREFIX}/share/apps/klash"
+  fi                            dnl end of build_kparts3
+
+  if test x"${ac_cv_path_kde4_incl}" != x ; then
+    if test x"${ac_cv_path_kde3_incl}" != x"-I/usr/include"; then
+      KDE4_CFLAGS="${ac_cv_path_kde4_incl}"
+    else
+      KDE4_CFLAGS=""
+    fi
+  else
+    KDE4_CFLAGS=""
+  fi
+
+  if test x"${ac_cv_path_kde4_lib}" != x; then
+    KDE4_LIBS="${ac_cv_path_kde4_lib}"
+    AC_DEFINE(HAVE_KDE4, 1,[Have KDE 4.x installed])
+    has_kde4=yes
+  else
+    KDE4_LIBS=""
+    has_kde4=no
+  fi
+
+  AC_SUBST(KLASH_PLUGIN)
+  AC_SUBST(KDE4_CFLAGS)  
+  AC_SUBST(KDE4_LIBS)
+
+  AC_SUBST(KDE4_PLUGINDIR)
+  AC_SUBST(KDE4_SERVICESDIR)
+  AC_SUBST(KDE4_CONFIGDIR)
+  AC_SUBST(KDE4_APPSDATADIR)
+])
+
+# Local Variables:
+# c-basic-offset: 2
+# tab-width: 2
+# indent-tabs-mode: nil
+# End:

=== modified file 'macros/libslist'
--- a/macros/libslist   2007-09-05 15:12:13 +0000
+++ b/macros/libslist   2008-11-14 22:22:01 +0000
@@ -1,1 +1,1 @@
-${with_top_level}/lib ${prefix}/${host_alias}/lib ${prefix}/lib64 
${prefix}/lib32 ${prefix}/lib /usr/local/lib /lib /usr/lib64 /usr/lib32 
/usr/nekoware/lib /usr/freeware/lib /usr/lib /sw/lib /home/latest/lib /opt/lib 
/pkg/lib /opt/local/lib /usr/pkg/lib /usr/X11R6/lib /usr/X11/lib 
/usr/lib/opengl/xorg-x11/lib /usr/lib64/opengl/xorg-x11/lib 
/usr/lib64/opengl/xorg-x11/lib64  /opt/mesa/lib /opt/mesa/lib64 .. ../..
+${with_top_level}/lib ${prefix}/${host_alias}/lib ${prefix}/lib64 
${prefix}/lib32 ${prefix}/lib /usr/local/lib /lib /usr/lib64 /usr/lib32 
/usr/lib /usr/nekoware/lib /usr/freeware/lib /usr/lib /sw/lib /home/latest/lib 
/opt/lib /pkg/lib /opt/local/lib /usr/pkg/lib /usr/X11R6/lib /usr/X11/lib 
/usr/lib/opengl/xorg-x11/lib /usr/lib64/opengl/xorg-x11/lib 
/usr/lib64/opengl/xorg-x11/lib64  /opt/mesa/lib /opt/mesa/lib64 .. ../..

=== renamed file 'macros/qt.m4' => 'macros/qt3.m4'
--- a/macros/qt.m4      2008-02-01 05:48:33 +0000
+++ b/macros/qt3.m4     2008-11-14 22:22:01 +0000
@@ -22,197 +22,133 @@
 dnl set version flags in config.h and use Automake conditionals to
 dnl force one behaviour or the other.
 
-AC_DEFUN([GNASH_PATH_QT],
+AC_DEFUN([GNASH_PATH_QT3],
 [
-  gnash_qt_topdir=""
-  gnash_qt_version=0
-  qt3support=""
-
-  dnl Lool for the header
-  AC_ARG_WITH(qt_incl, AC_HELP_STRING([--with-qt-incl], [directory where qt 
headers are]), with_qt_incl=${withval})
-  AC_CACHE_VAL(ac_cv_path_qt_incl,[
-    if test x"${with_qt_incl}" != x ; then
-      if test -f ${with_qt_incl}/qobject.h ; then
-        ac_cv_path_qt_incl="-I`(cd ${with_qt_incl}; pwd)`"
+  gnash_qt3_topdir=""
+  has_qt3=no
+
+  dnl Look for the header
+  AC_ARG_WITH(qt3_incl, AC_HELP_STRING([--with-qt3-incl], [directory where QT 
3.x headers are]), with_qt3_incl=${withval})
+
+  AC_CACHE_VAL(ac_cv_path_qt3_incl,[
+    if test x"${with_qt3_incl}" != x; then
+      if test -f ${with_qt3_incl}/qobject.h; then
+        ac_cv_path_qt3_incl="-I`(cd ${with_qt3_incl}; pwd)`"
       else
-        AC_MSG_ERROR([${with_qt_incl} directory doesn't contain any headers])
+        AC_MSG_ERROR([${with_qt3_incl} directory doesn't contain any QT 3.x 
headers])
       fi
     fi
-  ])
+  ])                           dnl end of cache ac_cv_path_qt4_incl
 
-  dnl if QTDIR is set, don't use pkg-config, as it screws the flags
-  dnl up. Default to Qt3 for now.
-  qt_pkg="qt-mt"
-  if test x$QTDIR != x; then
-    if test -f $QTDIR/include/qobject.h; then
-      qt_pkg="qt-mt"
-      if test x`basename $QTDIR` = "qt4"; then
-        gnash_qt_version=4
-      else
-        if test x`basename $QTDIR` = "qt3"; then
+  dnl Only run these tests if this version was specified by the user, and they
+  dnl haven't spcified a custom path.
+  if test x"${build_qt3}" = xyes -a x"${ac_cv_path_qt3_incl}" = x; then
+    dnl if QTDIR is set in the users environment, use that, as that's what
+    dnl most QT programmers do, as it's required by the QT build system.
+    qt_pkg="qt-mt"
+    if test x$QTDIR != x; then
+      if test -f $QTDIR/include/qobject.h; then
+        qt_base=`basename $QTDIR`
+        if test x"${qt_base}" = "qt4"; then
+          AC_MSG_ERROR([Mismatched QT versions! Reset QTDIR in your 
environment!])
+        else
           gnash_qt_version=3
-             else
-          gnash_qt_version=2
-        fi
-      fi
-    else
-      dnl Look for qt4 first, if qt3 exists, we prefer that, so override this
-      if test -f /usr/include/qt4/qobject.h; then
-        qt_pkg="QtCore"
-        gnash_qt_version=4
-      fi
-      if test -f /usr/include/qt3/qobject.h; then
-        qt_pkg="qt-mt"       
-        gnash_qt_version=3
-      fi
-    fi
-  fi
-
-  if test x$cross_compiling = xno; then
-    if test x"$PKG_CONFIG" != x; then
-      gnash_qt_version="`$PKG_CONFIG --modversion $qt_pkg | cut -d '.' -f 1`"
-    fi
-  fi
-
-  AC_MSG_CHECKING([for qt header])
-  if test x$cross_compiling = xno; then
-    if test x"$PKG_CONFIG" != x -a x"${ac_cv_path_qt_incl}" = x; then
-      $PKG_CONFIG --exists $qt_pkg && ac_cv_path_qt_incl="`$PKG_CONFIG 
--cflags-only-I $qt_pkg | cut -d ' ' -f 1`"
-    fi
-  fi
-
-  dnl QT stores it's headers in ../lib/qt-3.3/include for example, so
-  dnl use libslist instead of incllist
-  if test x"${ac_cv_path_qt_incl}" = x; then
-    for i in $QTDIR $libslist $incllist; do
-      for j in $QTDIR `ls -dr $i/qt[[0-9]] 2>/dev/null`; do
-        if test -f $j/include/qobject.h; then
-          gnash_qt_topdir="$j"
-          if test "${gnash_qt_version} " -eq 0; then
-            gnash_qt_version=2
-               fi
-          ac_cv_path_qt_incl="-I$j/include"
-          break
-             else
-          if test -f $j/Qt/qobject.h; then
-            gnash_qt_topdir="$j"
-           if test "${gnash_qt_version} " -eq 0; then
-              gnash_qt_version=4
-           fi
-            ac_cv_path_qt_incl="-I$j -I$j/Qt"
-         fi
-        fi
-      done
-      if test "x$gnash_qt_topdir" != x; then
-        break;
-      fi
-    done
-  else
-    gnash_qt_topdir="`echo ${ac_cv_path_qt_incl} | sed -e 's:-I::' -e 
's:/lib/qt.*::'`"
-  fi
-dnl On Debian the dir is /usr/include/qt3 with /usr/lib/libqt-mt.*
-dnl so we set topdir to /usr so that $topdir/lib/libqt-mt.* works below,
-dnl and version to 3 or whatever.
-dnl incllist is inherited from configure.ac.
-  if test "x$gnash_qt_version" = x; then
-    for i in  $QTDIR $incllist; do
-      for j in  $QTDIR `ls -dr $i/qt[[0-9]] 2>/dev/null`; do
-        if test -f $j/qobject.h -o -f $j/Qt/qobject.h; then
-dnl          gnash_qt_version=`echo "$j" | sed "s:$i/qt::"`
-          ac_cv_path_qt_incl="-I$j -I$j/Qt"
-          break
-        fi
-      done
-      if test x$gnash_qt_version != x; then
-        break;
-      fi
-    done
-  fi
-
-  if test x"${ac_cv_path_qt_incl}" = x; then
-    AC_MSG_RESULT(no)
-  else
-    AC_MSG_RESULT(${ac_cv_path_qt_incl})
-  fi
-
-  if test x"${ac_cv_path_qt_incl}" != x ; then
-    QT_CFLAGS="${ac_cv_path_qt_incl}"
-  else
-    QT_CFLAGS=""
-  fi
-
-  dnl we have to define our own config constant for this, even though
-  dnl QT_VERSION exists, the header path it's in changes, so this
-  dnl seemed easier.
-  if test x$gnash_qt_version != x; then
-    AC_MSG_NOTICE([QT version is $gnash_qt_version])
-    dnl due to a weird problem with variable expansion, we have to use
-    dnl a case statement to set the QT version.
-    case $gnash_qt_version in
-      2)
-             AC_DEFINE([GNASH_QT_VERSION], 2, [The Qtopia version])
-             ;;
-      3)
-             AC_DEFINE([GNASH_QT_VERSION], 3, [The Qtopia version])
-             ;;
-      4)
-             AC_DEFINE([GNASH_QT_VERSION], 4, [The Qtopia version])
-             qt3support="-lqt3support"
-             ;;
-    esac
-  fi
+        fi
+      fi
+    fi
+
+    if test x$cross_compiling = xno; then
+      if test x"$PKG_CONFIG" != x; then
+        gnash_qt_version="`$PKG_CONFIG --modversion $qt_pkg | cut -d '.' -f 1`"
+      fi
+    fi
+
+    AC_MSG_CHECKING([for QT 3.x header])
+    if test x$cross_compiling = xno; then
+      if test x"$PKG_CONFIG" != x -a x"${ac_cv_path_qt3_incl}" = x; then
+        $PKG_CONFIG --exists $qt_pkg && ac_cv_path_qt3_incl="`$PKG_CONFIG 
--cflags-only-I $qt_pkg | cut -d ' ' -f 1`"
+      fi
+    fi
+
+    dnl QT 3,x stores it's headers in ../lib/qt-3.3/include for example, so
+    dnl use libslist instead of incllist
+    if test x"${ac_cv_path_qt3_incl}" = x; then
+      for i in $QTDIR $libslist $incllist; do
+        for j in `ls -dr $i/qt[[0-9]] 2>/dev/null`; do
+          if test -f $j/include/qobject.h; then
+            gnash_qt3_topdir="$j"
+            ac_cv_path_qt3_incl="-I$j/include"
+            break
+          fi
+        done
+        if test "x$gnash_qt3_topdir" != x; then
+          break;
+        fi
+      done
+    else
+      gnash_qt3_topdir="`echo ${ac_cv_path_qt3_incl} | sed -e 's:-I::' -e 
's:/lib/qt.*::'`"
+    fi
+
+    if test x"${ac_cv_path_qt3_incl}" = x; then
+      QT3_CFLAGS=""
+      AC_MSG_RESULT(no)
+    else
+      QT3_CFLAGS="${ac_cv_path_qt3_incl}"
+      AC_MSG_RESULT(${ac_cv_path_qt3_incl})
+    fi
 
 dnl   # QT_LIBS =  -lqtui -lqtcore -lqtprint -L/usr/lib/qt-3.3/lib -lqt-mt
   dnl Look for the libraries
-  AC_ARG_WITH(qt_lib, AC_HELP_STRING([--with-qt-lib], [directory where qt 
libraries are]), with_qt_lib=${withval})
-  AC_CACHE_VAL(ac_cv_path_qt_lib, [
-    if test x"${with_qt_lib}" != x ; then
-      if test `ls -C1 ${gnash_qt_topdir}/lib/libqt*-mt.* | wc -l` -gt 0 ; then
-       ac_cv_path_qt_lib="-L`(cd ${with_qt_lib}; pwd)` ${qt3support} -lqt-mt"
+    AC_ARG_WITH(qt3_lib, AC_HELP_STRING([--with-qt3-lib], [directory where QT 
3.x libraries are]), with_qt3_lib=${withval})
+    AC_CACHE_VAL(ac_cv_path_qt3_lib, [
+      if test x"${with_qt3_lib}" != x ; then
+        if test `ls -C1 ${with_qt3_lib}/lib/libqt*-mt.* | wc -l` -gt 0 ; then
+         ac_cv_path_qt3_lib="-L`(cd ${with_qt3_lib}; pwd)` ${qt3support} 
-lqt-mt"
+        else
+               AC_MSG_ERROR([${with_qt3_lib} directory doesn't contain QT 3.x 
libraries.])
+        fi
+      fi
+    ])
+
+    if test x$cross_compiling = xno; then
+      if test x"$PKG_CONFIG" != x -a x"${ac_cv_path_qt3_lib}" = x; then
+        $PKG_CONFIG --exists $qt_pkg && ac_cv_path_qt3_lib="`$PKG_CONFIG 
--libs-only-l $qt_pkg | cut -d ' ' -f 1`"
+      fi
+    fi
+
+    if test x"${ac_cv_path_qt3_lib}" = x; then
+      AC_MSG_CHECKING([for QT 3.x libraries])
+      if test `ls -C1 ${gnash_qt3_topdir}/lib/libqt*-mt.*| wc -l` -gt 0 ; then
+        dnl Qtopia (embedded QT) uses libqte-mt instead of libqt-mt
+        if test -f ${gnash_qt3_topdir}/lib/libqte-mt.${shlibext}; then
+          ac_cv_path_qt3_lib="-L${gnash_qt3_topdir}/lib ${qt3support} -lqte-mt"
+         else
+          ac_cv_path_qt3_lib="-L${gnash_qt3_topdir}/lib ${qt3support} -lqt-mt"
+        fi
+      fi
+      if test x"${ac_cv_path_qt3_lib}" != x; then
+        AC_MSG_RESULT(${ac_cv_path_qt3_lib})
       else
-             AC_MSG_ERROR([${with_qt_lib} directory doesn't contain qt 
libraries.])
-      fi
-    fi
-  ])
-
-  if test x$cross_compiling = xno; then
-    if test x"$PKG_CONFIG" != x -a x"${ac_cv_path_qt_lib}" = x; then
-         $PKG_CONFIG --exists $qt_pkg && ac_cv_path_qt_lib="`$PKG_CONFIG 
--libs-only-l $qt_pkg | cut -d ' ' -f 1`"
-    fi
-  fi
-
-  if test x"${ac_cv_path_qt_lib}" = x; then
-    AC_MSG_CHECKING([for qt library])
-    if test `ls -C1 ${gnash_qt_topdir}/lib/libqt*-mt.*| wc -l` -gt 0 ; then
-      dnl Qtopia (embedded QT) uses libqte-mt instead of libqt-mt
-      if test -f ${gnash_qt_topdir}/lib/libqte-mt.${shlibext}; then
-        ac_cv_path_qt_lib="-L${gnash_qt_topdir}/lib ${qt3support} -lqte-mt"
-       else
-        ac_cv_path_qt_lib="-L${gnash_qt_topdir}/lib ${qt3support} -lqt-mt"
-      fi
-    fi
-    if test x"${ac_cv_path_qt_lib}" != x; then
-      AC_MSG_RESULT(${ac_cv_path_qt_lib})
+        AC_MSG_RESULT(none)
+      fi
+    fi
+
+    if test x"${ac_cv_path_qt3_lib}" != x; then
+      QT3_LIBS="${ac_cv_path_qt3_lib}"
+      AC_DEFINE(HAVE_QT3, 1, [Have QT 3.x installed])
+      has_qt3="yes"
     else
-      AC_MSG_RESULT(none)
+      QT3_LIBS=""
+      has_qt3="no"
     fi
-  fi
-
-  if test x"${ac_cv_path_qt_lib}" != x; then
-    QT_LIBS="${ac_cv_path_qt_lib}"
-    AC_DEFINE(HAVE_QT,1,[Have QT installed])
-    has_qt="yes"
-  else
-    QT_LIBS=""
-    has_qt="no"
-  fi
-
-  AC_PATH_PROG(MOC, moc, ,[${QTDIR}/bin ${gnash_qt_topdir}/bin ${pathlist}])
-
-  AC_SUBST(MOC)
-
-  AC_SUBST(QT_CFLAGS)  
-  AC_SUBST(QT_LIBS)
+
+    AC_PATH_PROG(MOC3, moc, ,[ /usr/lib/qt-3.3/bin ${QTDIR}/bin${pathlist}])
+
+  fi                              dnl end of build_qt3
+
+  AC_SUBST(MOC3)
+  AC_SUBST(QT3_CFLAGS)  
+  AC_SUBST(QT3_LIBS)
 ])
 
 

=== added file 'macros/qt4.m4'
--- a/macros/qt4.m4     1970-01-01 00:00:00 +0000
+++ b/macros/qt4.m4     2008-11-14 22:22:01 +0000
@@ -0,0 +1,239 @@
+dnl  
+dnl    Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+dnl  
+dnl  This program is free software; you can redistribute it and/or modify
+dnl  it under the terms of the GNU General Public License as published by
+dnl  the Free Software Foundation; either version 3 of the License, or
+dnl  (at your option) any later version.
+dnl  
+dnl  This program is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl  GNU General Public License for more details.
+dnl  You should have received a copy of the GNU General Public License
+dnl  along with this program; if not, write to the Free Software
+dnl  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+AC_DEFUN([GNASH_PATH_QT4], [
+  gnash_qt4_topdir=
+  has_kde4=no
+
+  dnl Look for the header
+  AC_ARG_WITH(qt4_incl, AC_HELP_STRING([--with-qt4-incl],
+             [directory where QT 3.x headers are]),
+            with_qt4_incl=${withval})
+
+  AC_CACHE_VAL(ac_cv_path_qt4_incl,[
+    if test x"${with_qt4_incl}" != x; then
+      if test -f ${with_qt4_incl}/QtCore/qobject.h; then
+        ac_cv_path_qt4_incl="-I`(cd ${with_qt4_incl}; pwd)`"
+      else
+        AC_MSG_ERROR([${with_qt4_incl}/QtCore directory doesn't contain any QT 
4.x headers])
+      fi
+    fi
+  ])                           dnl end of cache ac_cv_path_qt4_incl
+
+  dnl Only run these tests if this version was specified by the user, and they
+  dnl haven't spcified a custom path.
+  if test x"${build_qt4}" = xyes -a x"${ac_cv_path_qt4_incl}" = x; then
+    dnl if QTDIR is set in the users environment, use that, as that's what
+    dnl most QT programmers do, as it's required by the QT build system.
+    if test x$QTDIR != x; then
+      if test -f $QTDIR/include/QtCore/qobject.h; then
+        qt_base=`basename $QTDIR`
+        dnl Only support version 4 in this file.
+        if test x"${qt_base}" != x"qt4"; then
+          AC_MSG_ERROR([Mismatched QT versions! Reset QTDIR in your 
environment!])
+        fi
+      fi
+    fi
+
+dnl FIXME: do we even need the version anymore ?
+dnl     if test x"${cross_compiling} = xno; then
+dnl       if test x"${PKG_CONFIG}" != x; x1then
+dnl         gnash_qt_version="`${PKG_CONFIG} --modversion QtCore | cut -d '.' 
-f 1`"
+dnl       fi
+dnl     fi
+
+     AC_MSG_CHECKING([for QT 4.x headers])
+    if test x$cross_compiling = xno; then
+      if test x"${PKG_CONFIG}" != x -a x"${ac_cv_path_qt4_incl}" = x; then
+        ${PKG_CONFIG} --exists QtCore QtGui && 
ac_cv_path_qt4_incl="`$PKG_CONFIG --cflags-only-I QtCore QtGui`"
+       gnash_qt4_topdir=`echo "${ac_cv_path_qt4_incl}" | sed -e 's/-I//g' | 
cut -d ' ' -f 1`
+      fi
+    fi
+
+    dnl QT 4.x stores it's headers in ../lib/qt4/include for example, so
+    dnl use libslist instead of incllist
+    if test x"${ac_cv_path_qt4_incl}" = x; then
+      for i in ${incllist} ${libslist}; do
+        dnl Some distributions put the QT headers directly in the directory
+        if test -f $i/Qt/qobject.h; then
+          gnash_qt4_topdir="$i"
+         if test x"$i" != x"/usr/include"; then
+            ac_cv_path_qt4_incl="-I$i"
+         fi
+          break
+        fi
+       dnl Some distributions put the QT headers in a sub directory
+        if test -f $i/qt4/Qt/qobject.h; then
+          gnash_qt4_topdir="$i/qt4"
+          ac_cv_path_qt4_incl="-I$i/qt4"
+          break
+        fi
+      done
+    fi
+
+    dnl this is a list of al the libraries supported by QT 4.x, but we don't 
need all of
+    dnl then, but we might as well get all the paths, as header files 
ofteninclude other
+    dnl header files.
+    all_qt4_libs="QtCore QtGui QtXml QtDBus QtNetwork QtOpenGL QtScript QtSql 
QtTest QtSvg QtWebKit"
+    for i in ${all_qt4_libs}; do
+      dnl Darwin is easy, everything is in the same location on all machines.
+      if test x"${darwin}" = xyes; then
+        if test -d /Library/Frameworks; then
+         ac_cv_path_qt4_incl="${ac_cv_path_qt4_incl} 
/Library/Frameworks/$i.framework/Headers"
+       fi
+      else
+        if test -d ${gnash_qt4_topdir}/$i; then
+         ac_cv_path_qt4_incl="${ac_cv_path_qt4_incl} -I${gnash_qt4_topdir}/$i"
+       fi
+      fi
+    done
+    if test x"${ac_cv_path_qt4_incl}" = x; then
+      QT4_CFLAGS=""
+      AC_MSG_RESULT(no)
+    else
+      QT4_CFLAGS="${ac_cv_path_qt4_incl}"
+      AC_MSG_RESULT(${gnash_qt4_topdir})
+    fi
+
+dnl   if test "$gnash_cv_lib_qt_dir" = "no"; then
+dnl     dnl We might be on OSX...
+dnl     if test -d /Library/Frameworks/QtCore.framework; then
+dnl       gnash_cv_lib_qt_dir=/Library/Frameworks
+dnl       KDE_LIBS="-L/Library/Frameworks -F/Library/Frameworks"
+dnl     fi
+dnl   fi
+
+  dnl Look for the libraries
+    AC_ARG_WITH(qt4_lib, AC_HELP_STRING([--with-qt4-lib], [directory where QT 
4.x libraries are]), with_qt4_lib=${withval})
+    AC_CACHE_VAL(ac_cv_path_qt4_lib, [
+      if test x"${with_qt4_lib}" != x ; then
+        if test `ls -C1 ${with_qt4_lib}/libQtCore.${shlibext}* | wc -l` -gt 0 
; then
+         ac_cv_path_qt4_lib="-L`(cd ${with_qt4_lib}; pwd)` ${qt4support} 
-lQtCore -lQtGui"
+        else
+          AC_MSG_ERROR([${with_qt4_lib} directory doesn't contain QT 4.x 
libraries.])
+        fi
+      fi
+    ])
+
+    if test x$cross_compiling = xno; then
+      if test x"$PKG_CONFIG" != x -a x"${ac_cv_path_qt4_lib}" = x; then
+        $PKG_CONFIG --exists QtCore QtGui && ac_cv_path_qt4_lib="`$PKG_CONFIG 
--libs QtCore QtGui`"
+      fi
+    fi
+
+    AC_MSG_CHECKING([for QT 4.x libraries])
+    if test x"${ac_cv_path_qt4_lib}" = x; then
+      for i in $libslist; do
+        if test -f $i/libQtCore.${shlibext}; then
+         gnash_qt4_topdir=$i
+         if test x"$i" != x"/usr/lib"; then
+           ac_cv_path_qt4_lib="-L$i"
+         fi
+         break
+       fi
+      done
+      dnl redefine the list of libraries, as we don't need all of them, so why 
bother.
+      all_qt4_libs="QtCore QtGui"
+      for i in ${all_qt4_libs}; do
+        if test -f ${gnash_qt4_topdir}/lib$i.${shlibext}; then
+           ac_cv_path_qt4_lib="${ac_cv_path_qt4_lib} -l$i"
+       fi
+      done
+    fi
+
+    if test x"${ac_cv_path_qt4_lib}" != x; then
+      AC_MSG_RESULT(${ac_cv_path_qt4_lib})
+      QT4_LIBS="${ac_cv_path_qt4_lib}"
+      AC_DEFINE(HAVE_QT4, 1, [Have QT 4.x installed])
+      has_qt4="yes"
+    else
+      AC_MSG_RESULT(no)
+      QT4_LIBS=""
+      has_qt4="no"
+    fi
+
+    AC_PATH_PROG(MOC4, moc-qt4, ,[${QTDIR}/bin /usr/lib/qt4/bin 
/usr/share/qt4/bin/ ${pathlist}])
+    AC_PATH_PROG(UIC4, uic-qt4, ,[${QTDIR}/bin /usr/lib/qt4/bin 
/usr/share/qt4/bin/ ${pathlist}])
+
+
+    AC_SUBST([QT4_CFLAGS])
+    AC_SUBST([QT4_LIBS])
+    AC_SUBST([MOC4])
+    AC_SUBST([UIC4])
+  fi                              dnl end of build_qt4
+])                             dnl end of defun GNASH_PATH_QT4
+
+dnl dnl Find the QT 4.x libQtCore library
+dnl AC_DEFUN([GNASH_QT4_CORE], [
+dnl   AC_REQUIRE([GNASH_PATH_QT4])
+dnl   if test x"$gnash_qt4_topdir" = x"/Library/Frameworks"; then
+dnl     QT_CFLAGS="${QT_CFLAGS} -D_REENTRANT -DQT_SHARED 
${gnash_qt4_topdir}/QtCore.framework/Headers"
+dnl     QTCORE="-framework QtCore"
+dnl   else
+dnl     QT_CFLAGS="${QT_CFLAGS} -D_REENTRANT -DQT_SHARED 
-I${gnash_qt4_topdir}/QtCore"
+dnl     QT_LIBS="$QT_LIBS -lQtCore"
+dnl   fi
+dnl   if test "$enable_qt_debug" = "no"; then
+dnl     KDE_CFLAGS="$CPPFLAGS -DQT_NO_DEBUG"
+dnl   fi
+dnl   AC_SUBST(QTCORE)
+dnl ])
+
+dnl FIXME: I don't think we need this.
+dnl AC_DEFUN([GNASH_QT_PLATFORM], [
+dnl    AC_REQUIRE([GNASH_QT4_CORE])
+dnl    AC_MSG_CHECKING([Qt platform])
+dnl    platform=unknown
+dnl    AC_COMPILE_IFELSE([
+dnl            #include <qglobal.h>
+dnl            #ifndef Q_WS_X11
+dnl            #error Not X11
+dnl            #endif
+dnl    ], [platform=X11], [])
+dnl    if test "$platform" = "unknown"; then
+dnl            AC_COMPILE_IFELSE([
+dnl                    #include <qglobal.h>
+dnl                    #ifndef Q_WS_QWS
+dnl                    #error Not Qtopia
+dnl                    #endif
+dnl            ], [platform=Qtopia], [])
+dnl    fi
+dnl    if test "$platform" = "unknown"; then
+dnl            AC_COMPILE_IFELSE([
+dnl                    #include <qglobal.h>
+dnl                    #ifndef Q_WS_MACX
+dnl                    #error Not OSX
+dnl                    #endif
+dnl            ], [platform=OSX], [])
+dnl    fi
+dnl    if test "$platform" = "unknown"; then
+dnl            AC_COMPILE_IFELSE([
+dnl                    #include <qglobal.h>
+dnl                    #ifndef Q_WS_MAC9
+dnl                    #error Not OS9
+dnl                    #endif
+dnl            ], [platform=OS9], [])
+dnl    fi
+dnl    if test "$platform" = "unknown"; then
+dnl            AC_COMPILE_IFELSE([
+dnl                    #include <qglobal.h>
+dnl                    #ifndef Q_WS_WIN32
+dnl                    #error No dirty Nazi junk
+dnl                    #endif
+dnl            ], [platform=Win32], [])
+dnl    fi
+dnl    AC_MSG_RESULT([$platform])
+dnl ])

=== modified file 'plugin/Makefile.am'
--- a/plugin/Makefile.am        2008-10-20 12:27:06 +0000
+++ b/plugin/Makefile.am        2008-11-14 22:41:27 +0000
@@ -20,10 +20,14 @@
 
 SUBDIRS =
 
-if KPARTS
+if KPARTS3
 SUBDIRS += klash
 endif
 
+if KPARTS4
+SUBDIRS += klash4
+endif
+
 if NPAPI
 SUBDIRS += mozilla-sdk
 
@@ -41,7 +45,7 @@
 endif # NPAPI
 
 # make sure these files make it into the distribution tarball.
-DIST_SUBDIRS = klash mozilla-sdk xpcom win32
+DIST_SUBDIRS = klash klash4 mozilla-sdk xpcom win32
 
 # This is a hard coded path to where the plugin gets installed.
 GNASHBINDIR = $(bindir)
@@ -132,6 +136,7 @@
        @echo "Use \"make install-plugin\" to install the Firefox plugin to 
$(DESTDIR)$(plugindir)."
 
 if !WIN32
+if NPAPI
 install-plugin: $(plugin_LTLIBRARIES)
        @test -d "$(DESTDIR)$(plugindir)" || $(mkinstalldirs) 
"$(DESTDIR)$(plugindir)"
        @echo "Installing plugin to $(DESTDIR)$(plugindir)"
@@ -140,6 +145,10 @@
        else \
          cp -f libgnashplugin.so* $(DESTDIR)$(plugindir)/libgnashplugin.so; \
        fi
+else # NPAPI
+install-plugin:
+       : # do nothing
+endif
 else
 install-plugin: 
        : # do nothing
@@ -147,6 +156,7 @@
 
 install-plugins: install-plugin
        $(MAKE) -C klash install-plugins
+       $(MAKE) -C klash4 install-plugins
        $(MAKE) -C win32 install-plugins
 
 uninstall-plugins: uninstall-plugin

=== modified file 'plugin/klash/Makefile.am'
--- a/plugin/klash/Makefile.am  2008-10-24 23:00:19 +0000
+++ b/plugin/klash/Makefile.am  2008-11-14 22:41:27 +0000
@@ -17,20 +17,20 @@
 
 AUTOMAKE_OPTIONS = 
 
-if KPARTS
+if KPARTS3
 AM_CPPFLAGS = \
-       $(KDE_CFLAGS) \
-       $(QT_CFLAGS) \
+       $(KDE3_CFLAGS) \
+       $(QT3_CFLAGS) \
        $(X11_CFLAGS) \
        -DGNASHBINDIR=\"${bindir}\"
 
-plugindir   = $(KDE_PLUGINDIR)
-kde_servicesdir = $(KDE_SERVICESDIR)
-kde_rcdir       = $(KDE_APPSDATADIR)
-#$(prefix)/share/apps/klash
-kde_appsdatadir = $(KDE_APPSDATADIR)
-#$(prefix)/share/apps/klash
-kde_configdir   = $(KDE_CONFIGDIR)
+plugindir   = $(KDE3_PLUGINDIR)
+kde_servicesdir = $(KDE3_SERVICESDIR)
+kde_rcdir       = $(KDE3_APPSDATADIR)
+#$(prefix)/share/apps/klash
+kde_appsdatadir = $(KDE3_APPSDATADIR)
+#$(prefix)/share/apps/klash
+kde_configdir   = $(KDE3_CONFIGDIR)
 #$(prefix)/share/config
 
 plugin_LTLIBRARIES= libklashpart.la
@@ -54,11 +54,11 @@
 CLEANFILES = klash_part.moc
 
 klash_part.moc: $(srcdir)/klash_part.h
-       @if test x"$(MOC)" != x; then \
-         echo "Generating MOC file..."; \
-         $(MOC) $(srcdir)/klash_part.h -o klash_part.moc; \
+       @if test x"$(MOC3)" != x; then \
+         echo "Generating MOC 3.x file..."; \
+         $(MOC3) $(srcdir)/klash_part.h -o klash_part.moc; \
        else  \
-         echo "WARNING: Install QT's moc tool! Linking to default MOC file"; \
+         echo "WARNING: Install QT 3.x moc tool! Linking to default MOC file"; 
\
          ln -s $(srcdir)/klash_part.moc.in klash_part.moc; \
        fi
 
@@ -71,13 +71,13 @@
          if test -d $(DESTDIR)$(kde_appsdatadir); then \
            echo "WARNING: Improper permissions for 
$(DESTDIR)$(kde_appsdatadir)!"; \
            echo "You probably need to be root"; \
-           echo "Or configure with --with-kde-pluginprefix= set to a writable 
directory"; \
+           echo "Or configure with --with-kde-prefix= set to a writable 
directory"; \
            exit 1; \
           fi; \
          if test -d $(DESTDIR)$(kde_servicesdir); then \
            echo "WARNING: Improper permissions for 
$(DESTDIR)$(kde_appsdatadir) and $(DESTDIR)$(kde_servicesdir)!"; \
            echo "You probably need to be root"; \
-           echo "Or configure with --with-kde-pluginprefix= set to a writable 
directory"; \
+           echo "Or configure with --with-kde3-prefix= set to a writable 
directory"; \
            exit 1; \
          fi; \
        fi

=== added directory 'plugin/klash4'
=== added file 'plugin/klash4/Makefile.am'
--- a/plugin/klash4/Makefile.am 1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/Makefile.am 2008-11-14 22:41:27 +0000
@@ -0,0 +1,110 @@
+## Process this file with automake to generate Makefile.in
+# 
+#   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+AUTOMAKE_OPTIONS = 
+
+if KPARTS4
+AM_CPPFLAGS = \
+       $(KDE4_CFLAGS) \
+       $(QT4_CFLAGS) \
+       $(X11_CFLAGS) \
+       -DGNASHBINDIR=\"${bindir}\"
+
+plugindir   = $(KDE4_PLUGINDIR)
+kde_servicesdir = $(KDE4_SERVICESDIR)
+kde_rcdir       = $(KDE4_APPSDATADIR)
+#$(prefix)/share/apps/klash
+kde_appsdatadir = $(KDE4_APPSDATADIR)
+#$(prefix)/share/apps/klash
+kde_configdir   = $(KDE4_CONFIGDIR)
+#$(prefix)/share/config
+
+plugin_LTLIBRARIES= libklashpart.la
+
+libklashpart_la_SOURCES = klash_part.cpp klash_part.h
+libklashpart_la_DEPENDENCIES = klash_part.moc
+if PLUGIN_LINK_UNDEFINED
+libklashpart_la_LDFLAGS = -avoid-version -L$(plugindir) $(KDE4_LIBS) 
$(QT4_LIBS)
+else
+libklashpart_la_LDFLAGS = -module -avoid-version -L$(plugindir) $(KDE4_LIBS) 
$(QT4_LIBS)
+endif
+
+dist_kde_services_DATA = klash_part.desktop
+dist_kde_rc_DATA = klashpartui.rc
+dist_kde_appsdata_DATA = pluginsinfo
+#dist_kde_config_DATA = klashrc
+
+# DIST_COMMON = $(dist_kde_appsdata_DATA) $(dist_kde_services_DATA) 
$(dist_kde_rc_DATA)
+
+BUILT_SOURCES = klash_part.moc
+CLEANFILES = klash_part.moc
+
+klash_part.moc: $(srcdir)/klash_part.h
+       @if test x"$(MOC4)" != x; then \
+         echo "Generating MOC 4.x file..."; \
+       $(MOC4) $(srcdir)/klash_part.h -o klash_part.moc; \
+       else  \
+         echo "WARNING: Install QT 4.x moc tool! Linking to default MOC file"; 
\
+         ln -s $(srcdir)/klash_part.moc.in klash_part.moc; \
+       fi
+
+install-data: $(dist_kde_services_DATA)
+       test -d $(DESTDIR)$(kde_servicesdir) || $(mkinstalldirs) 
$(DESTDIR)$(kde_servicesdir)
+       $(INSTALL) $(dist_kde_services_DATA) $(DESTDIR)$(kde_servicesdir)
+
+test_perms:
+       @if test ! -w $(DESTDIR)$(kde_appsdatadir) -o ! -w 
$(DESTDIR)$(kde_servicesdir); then \
+         if test -d $(DESTDIR)$(kde_appsdatadir); then \
+           echo "WARNING: Improper permissions for 
$(DESTDIR)$(kde_appsdatadir)!"; \
+           echo "You probably need to be root"; \
+           echo "Or configure with --with-kde-prefix= set to a writable 
directory"; \
+           exit 1; \
+          fi; \
+         if test -d $(DESTDIR)$(kde_servicesdir); then \
+           echo "WARNING: Improper permissions for 
$(DESTDIR)$(kde_appsdatadir) and $(DESTDIR)$(kde_servicesdir)!"; \
+           echo "You probably need to be root"; \
+           echo "Or configure with --with-kde-prefix= set to a writable 
directory"; \
+           exit 1; \
+         fi; \
+       fi
+
+install-data-am: $(dist_kde_services_DATA) $(dist_kde_appsdata_DATA)
+       test -d $(DESTDIR)$(kde_servicesdir) || $(mkinstalldirs) 
$(DESTDIR)$(kde_servicesdir)
+       $(INSTALL) $(srcdir)/$(dist_kde_services_DATA) 
$(DESTDIR)$(kde_servicesdir)
+       test -d $(DESTDIR)$(kde_appsdatadir) || $(mkinstalldirs) 
$(DESTDIR)$(kde_appsdatadir)
+       $(INSTALL) $(srcdir)/$(dist_kde_appsdata_DATA) 
$(DESTDIR)$(kde_appsdatadir)
+
+install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
+       @echo "Nothing to install here now."
+       @echo "Use \"make install-plugin\" to install the KDE plugin to 
$(DESTDIR)$(plugindir)."
+
+install-plugin install-plugins: test_perms $(plugin_LTLIBRARIES) 
$(dist_kde_services_DATA) \
+       install-dist_kde_appsdataDATA install-dist_kde_rcDATA \
+       install-dist_kde_servicesDATA
+       test -d $(DESTDIR)$(plugindir) || $(mkinstalldirs) 
$(DESTDIR)$(plugindir)
+       $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) 
$(plugin_LTLIBRARIES) $(DESTDIR)$(plugindir)
+
+uninstall-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
+       $(RM) -f $(DESTDIR)$(plugindir)/libklashpart.so
+       $(RM) -f $(DESTDIR)$(plugindir)/libklashpart.la
+       $(RM) -f $(DESTDIR)$(plugindir)/libklashpart.a
+
+endif
+
+force:
+
+.PHONY : install-plugins install-plugin test_perms

=== added file 'plugin/klash4/README'
--- a/plugin/klash4/README      1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/README      2008-10-09 07:35:53 +0000
@@ -0,0 +1,5 @@
+Klash is a plugin for Konqueror, using the gnash binary from the Gnash
+project. As of this writing, you can only get it by checking it out their
+CVS repository. It should be newer than 2006-02-23, because that version
+has the -x option to embed in a window.
+You also need automake/autoconf and the SDL development.

=== added file 'plugin/klash4/klash.desktop'
--- a/plugin/klash4/klash.desktop       1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/klash.desktop       2008-10-09 07:35:53 +0000
@@ -0,0 +1,80 @@
+# KDE Config File
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Exec=kmplayer -caption "%c" %i %m %U
+Icon=kmplayer.png
+DocPath=kmplayer/index.html
+Comment=KDE interface for Gnash
+Comment[ar]=واجهة كيدي لـ Gnash
+Comment[bg]=KDE интерфейс за Gnash
+Comment[br]=Etrefas Gnash evit KDE
+Comment[bs]=KDE interfejs za Gnash
+Comment[ca]=Interfície KDE per a Gnash
+Comment[cs]=KDE rozhraní pro Gnash
+Comment[da]=KDE-grænseflade for Gnash
+Comment[de]=KDE-Oberfläche für Gnash
+Comment[el]=Περιβάλλον χρήσης του Gnash για το KDE
+Comment[es]=Interfaz KDE para Gnash
+Comment[et]=KDE Gnashi liides
+Comment[fi]=KDE-käyttöliittymä Gnashille
+Comment[fr]=Une interface de Gnash pour KDE
+Comment[he]=ממשק KDE של Gnash
+Comment[hi]=एमप्लेयर हेतु केडीई इंटरफेस
+Comment[hu]=KDE-alapú felület az Gnashhez
+Comment[it]=Interfaccia KDE per Gnash
+Comment[nb]=KDE-grensesnitt for Gnash
+Comment[nl]=KDE-interface voor Gnash
+Comment[pa]=Gnash ਲਈ KDE ਇੰਟਰਫੇਸ
+Comment[pt]=Interface KDE para o Gnash
+Comment[pt_BR]=Interface do KDE para o Gnash
+Comment[ru]=Интерфейс KDE для Gnash
+Comment[sr]=KDE-ов интерфејс за Gnash
address@hidden interfejs za Gnash
+Comment[sv]=KDE-gränssnitt för Mplayer
+Comment[ta]=எம் இயக்கிக்கான கேடீஇ இடைமுகம்
+Comment[tr]=Gnash için KDE arayüzü
+Comment[xx]=xxKDE interface for Gnashxx
+Comment[zh_CN]=Gnash 的 KDE 界面
+Terminal=false
+Name=KGnash
+Name[hi]=केएमप्लेयर
+Name[hu]=KMPLayer
+Name[sv]=Kmplayer
+Name[ta]=கேஎம்இயக்கி
+Name[xx]=xxKGnashxx
+MimeType=application/x-shockwave-flash;
+InitialPreference=7
+Categories=Qt;KDE;AudioVideo;
+GenericName=Media Player
+GenericName[bg]=Медия плеър
+GenericName[br]=Soner liesvedia
+GenericName[ca]=Reproductor de medis
+GenericName[cs]=Přehrávač médií
+GenericName[cy]=Chwaraeydd Cyfryngau
+GenericName[da]=Medieafspiller
+GenericName[el]=Αναπαραγωγή πολυμέσων
+GenericName[es]=Reproductor multimedia
+GenericName[et]=Meediamängija
+GenericName[fr]=Lecteur multimédia
+GenericName[ga]=Seinnteoir Meán
+GenericName[he]=נגן מדיה
+GenericName[hi]=मीडिया प्लेयर
+GenericName[hu]=Médialejátszó
+GenericName[it]=Lettore multimediale
+GenericName[lt]=Media grotuvas
+GenericName[mk]=Изведувач на мултимедиа
+GenericName[nb]=Mediaspiller
+GenericName[nl]=Mediaspeler
+GenericName[pa]=ਮੀਡਿਆ ਪਲੇਅਰ
+GenericName[pt]=Leitor Multimédia
+GenericName[pt_BR]=Reprodutor de Mídia
+GenericName[ru]=Медиаплеер
+GenericName[sr]=Медија плејер
address@hidden plejer
+GenericName[sv]=Mediaspelare
+GenericName[tr]=Medya Oynatıcı
+GenericName[xh]=Umdlali we Midia
+GenericName[xx]=xxMedia Playerxx
+GenericName[zh_CN]=媒体播放器
+GenericName[zu]=Umdlali Wezezindaba

=== added file 'plugin/klash4/klash_part.cpp'
--- a/plugin/klash4/klash_part.cpp      1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/klash_part.cpp      2008-10-09 07:35:53 +0000
@@ -0,0 +1,588 @@
+// 
+//   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+// Written by Koos Vriezen <koos ! vriezen ? xs4all ! nl>
+
+#ifdef KDE_USE_FINAL
+#undef Always
+#endif
+
+#include "gnashconfig.h"
+#include <cassert>
+#include <QByteArray>
+#include <QMenu>
+#include <QTimer>
+
+#include <klibloader.h>
+#include <kdebug.h>
+#include <kauthorized.h>
+#include <kconfig.h>
+#include <ksimpleconfig.h>
+#include <kaction.h>
+#include <kapplication.h>
+#include <klocale.h>
+#include <kcomponentdata.h>
+#include <kactioncollection.h>
+#include <kparts/factory.h>
+
+#include "klash_part.h"
+
+#include <signal.h>
+
+//-----------------------------------------------------------------------------
+
+class KlashFactory : public KParts::Factory {
+public:
+    KDE_NO_CDTOR_EXPORT KlashFactory ();
+    KDE_NO_CDTOR_EXPORT virtual ~KlashFactory ();
+    KDE_NO_CDTOR_EXPORT virtual KParts::Part *createPartObject
+        (QWidget *wparent,
+         QObject *parent,
+         const char *className, const QStringList &args);
+    static KComponentData * instance () { return s_instance; }
+private:
+    static KComponentData * s_instance;
+};
+
+K_EXPORT_COMPONENT_FACTORY (libklashpart, KlashFactory)
+
+KComponentData *KlashFactory::s_instance = 0;
+
+KlashFactory::KlashFactory () {
+    s_instance = new KComponentData ("klash");
+}
+
+KlashFactory::~KlashFactory () {
+    delete s_instance;
+}
+
+KParts::Part *KlashFactory::createPartObject
+  (QWidget *wparent,
+   QObject *parent,
+   const char * cls, const QStringList & args) {
+      //kdDebug() << "KlashFactory::createPartObject " << cls << endl;
+      return new KlashPart (wparent, parent, args);
+}
+
+//-----------------------------------------------------------------------------
+
+static bool getBoolValue (const QString & value) {
+    return (value.toLower() != QString::fromLatin1("false") &&
+            value.toLower() != QString::fromLatin1("off") &&
+            value.toLower() != QString::fromLatin1("0"));
+}
+
+KDE_NO_CDTOR_EXPORT KlashPart::KlashPart (QWidget * wparent,
+                    QObject * parent, const QStringList &args)
+ : KParts::ReadOnlyPart (parent),
+   //new KSimpleConfig ("klashrc")),
+   m_browserextension (new KlashBrowserExtension (this)),
+   m_liveconnectextension (new KlashLiveConnectExtension (this)),
+   m_process (0L),
+   m_width (0),
+   m_height (0),
+   m_autostart (false),
+   m_fullscreen (false),
+   m_started_emited (false) {
+    //kdDebug () << "KlashPart(" << this << ")::KlashPart ()" << endl;
+    bool show_fullscreen = false;
+    // FIXME what is the right replacement for this? setInstance 
(KlashFactory::instance (), true);
+    KAction *playact = new KAction(this);
+    playact->setText(i18n("P&lay"));
+    connect(playact, SIGNAL(triggered()), this, SLOT(play()));
+    actionCollection()->addAction("play", playact);
+    KAction *pauseact = new KAction(this);
+    pauseact->setText(i18n("&Pause"));
+    connect(pauseact, SIGNAL(triggered()), this, SLOT(pause()));
+    actionCollection()->addAction("pause", pauseact);
+    KAction *stopact = new KAction(this);
+    stopact->setText(i18n("&Stop"));
+    connect(stopact, SIGNAL(triggered()), this, SLOT(stop()));
+    actionCollection()->addAction("stop", stopact);
+    //new KAction (i18n ("Increase Volume"), QString ("player_volume"), 
KShortcut (), this, SLOT (increaseVolume ()), actionCollection (), 
"edit_volume_up");
+    //new KAction (i18n ("Decrease Volume"), QString ("player_volume"), 
KShortcut (), this, SLOT (decreaseVolume ()), actionCollection (), 
"edit_volume_down");
+    QStringList::const_iterator end = args.end ();
+    for (QStringList::const_iterator it = args.begin () ; it != end; ++it) {
+        int equalPos = (*it).indexOf("=");
+        if (equalPos > 0) {
+            QString name = (*it).left (equalPos).toLower ();
+            QString value = (*it).right ((*it).length () - equalPos - 1);
+            if (value.at(0)=='\"')
+                value = value.right (value.length () - 1);
+            if (value.at (value.length () - 1) == '\"')
+                value.truncate (value.length () - 1);
+            //kdDebug () << "name=" << name << " value=" << value << endl;
+            if (name == QString::fromLatin1("width")) {
+                m_width = value.toInt ();
+            } else if (name == QString::fromLatin1("height")) {
+                m_height = value.toInt ();
+            //} else if (name == QString::fromLatin1("type")) {
+            } else if (name == QString::fromLatin1("__khtml__pluginbaseurl")) {
+                m_docbase = KUrl (value);
+            } else if (name == QString::fromLatin1("src")) {
+                m_src_url = value;
+            } else if (name == QString::fromLatin1 ("fullscreenmode")) {
+                show_fullscreen = getBoolValue (value);
+            } else if (name == QString::fromLatin1 ("autostart")) {
+                bool ok;
+                m_autostart = value.toInt (&ok);
+                if (!ok)
+                    m_autostart = (value.toLower () == "false");
+            }
+            m_args.push_back(name + QChar('=') + value);
+        }
+    }
+    KParts::Part::setWidget (new KlashView (wparent));
+    setXMLFile("klashpartui.rc");
+    setProgressInfoEnabled (false);
+
+    if (m_fullscreen)
+        fullScreen ();
+}
+
+KDE_NO_CDTOR_EXPORT KlashPart::~KlashPart () {
+    kdDebug() << "KlashPart::~KlashPart" << endl;
+    stop ();
+    //delete m_config;
+    //m_config = 0L;
+}
+
+KDE_NO_EXPORT bool KlashPart::allowRedir (const KUrl & url) const {
+    return KAuthorized::authorizeUrlAction ("redirect", m_docbase, url);
+}
+
+KDE_NO_EXPORT void KlashPart::play ()
+{
+
+    QString procname;
+    char *gnash_env = getenv("KLASH_PLAYER");
+    if (!gnash_env) {
+      procname = GNASHBINDIR "/kde4-gnash";
+    } else {
+      procname = gnash_env;
+    }
+
+    stop ();
+    if (m_src_url.isEmpty ())
+        return;
+    m_process = new KProcess;
+    m_process->setEnv (QString::fromLatin1 ("SESSION_MANAGER"), 
QString::fromLatin1 (""));
+    *m_process << procname
+              << "-x"
+              << QString::number(static_cast<KlashView*>(widget())->embedId());
+
+    if (m_width > 0 && m_height > 0)
+        *m_process << "-j" << QString::number(m_width)
+                   << "-k" << QString::number(m_height);
+
+    QString url = this->url().url();
+    if (!url.isEmpty())
+        *m_process << "-u" << url;
+    url = m_docbase.url();
+    if (!url.isEmpty())
+        *m_process << "-U" << url;
+
+    for (QStringList::const_iterator it=m_args.begin(), end=m_args.end();it != 
end; ++it)
+        *m_process << "-P" << *it;
+
+    *m_process << m_src_url;
+
+    connect (m_process, SIGNAL (finished (int, QProcess::ExitStatus)),
+            this, SLOT (processStopped (int, QProcess::ExitStatus)));
+    m_process->start ();
+}
+
+KDE_NO_EXPORT void KlashPart::pause () {
+}
+
+KDE_NO_EXPORT void KlashPart::stop () {
+    if (m_process) {
+        if (m_process->state () == KProcess::Running) {
+            ; // IPC close
+            //m_process->wait(2);
+           
+           // Ignore SIGTERM, so we won't kill ourselves.
+            void (*oldhandler)(int) = signal(SIGTERM, SIG_IGN);
+
+           int pid = -1 * ::getpid();
+           assert(pid < -1);
+
+           // Terminate every process in our process group.
+            ::kill (pid, SIGTERM);
+
+           // Restore the old handler.
+            signal(SIGTERM, oldhandler);
+            m_process->waitForFinished(2000);
+        }
+        delete m_process;
+        m_process = 0L;
+    }
+}
+
+bool KlashPart::openFile() {
+    if (!localFilePath().isEmpty ())
+        m_src_url = localFilePath();
+    play ();
+    return true;
+}
+
+KDE_NO_EXPORT bool KlashPart::openUrl (const KUrl & url) {
+    kdDebug () << "KlashPart::openUrl " << url.url() << endl;
+    emit started (0);
+    return KParts::ReadOnlyPart::openUrl (url);
+}
+
+KDE_NO_EXPORT bool KlashPart::closeUrl () {
+    return KParts::ReadOnlyPart::closeUrl ();
+}
+
+KDE_NO_EXPORT void KlashPart::fullScreen () {
+}
+
+KDE_NO_EXPORT void KlashPart::setLoaded (int percentage) {
+    if (percentage < 100) {
+        m_browserextension->setLoadingProgress (percentage);
+        m_browserextension->infoMessage
+            (QString::number (percentage) + i18n ("% Cache fill"));
+    }
+}
+
+KDE_NO_EXPORT void KlashPart::playingStarted () {
+    //kdDebug () << "KlashPart::processStartedPlaying " << endl;
+    //if (m_settings->sizeratio && !m_noresize && m_source->width() > 0 && 
m_source->height() > 0)
+    //    m_liveconnectextension->setSize (m_source->width(), 
m_source->height());
+    m_browserextension->setLoadingProgress (100);
+    if (m_started_emited) {
+        emit completed ();
+        m_started_emited = false;
+    }
+    m_liveconnectextension->started ();
+    m_browserextension->infoMessage (i18n("Klash: Playing"));
+}
+
+KDE_NO_EXPORT void KlashPart::playingStopped () {
+    if (m_started_emited) {
+        m_started_emited = false;
+        m_browserextension->setLoadingProgress (100);
+        emit completed ();
+    }
+    m_liveconnectextension->finished ();
+    m_browserextension->infoMessage (i18n ("Klash: Stop Playing"));
+}
+
+KDE_NO_EXPORT void KlashPart::processStopped (int, QProcess::ExitStatus) {
+    QTimer::singleShot (0, this, SLOT (playingStopped ()));
+}
+
+//---------------------------------------------------------------------
+
+KDE_NO_CDTOR_EXPORT KlashBrowserExtension::KlashBrowserExtension (KlashPart * 
parent)
+  : KParts::BrowserExtension (parent) {
+}
+
+KDE_NO_EXPORT void KlashBrowserExtension::urlChanged (const QString & url) {
+    emit setLocationBarUrl (url);
+}
+
+KDE_NO_EXPORT void KlashBrowserExtension::setLoadingProgress (int percentage) {
+    emit loadingProgress (percentage);
+}
+
+KDE_NO_EXPORT void KlashBrowserExtension::saveState (QDataStream & stream) {
+    stream << static_cast <KlashPart *> (parent ())->source ();
+}
+
+KDE_NO_EXPORT void KlashBrowserExtension::restoreState (QDataStream & stream) {
+    QString url;
+    stream >> url;
+    static_cast <KlashPart *> (parent ())->openUrl (KUrl(url));
+}
+
+KDE_NO_EXPORT void KlashBrowserExtension::requestOpenUrl (const KUrl & url, 
const QString & target, const QString & service) {
+    KParts::OpenUrlArguments args;
+    //FIXME what replaces those?
+    //args.frameName = target;
+    //args.serviceType = service;
+    emit openUrlRequest (url, args);
+}
+
+//---------------------------------------------------------------------
+/*
+ * add
+ * .error.errorCount
+ * .error.item(count)
+ *   .errorDescription
+ *   .errorCode
+ * .controls.stop()
+ * .controls.play()
+ */
+
+enum JSCommand {
+    notsupported,
+    isfullscreen, isloop,
+    length, width, height, position, prop_source, source, setsource,
+    play, jsc_pause, start, stop,
+    prop_volume, volume, setvolume
+};
+
+struct KLASH_NO_EXPORT JSCommandEntry {
+    const char * name;
+    JSCommand command;
+    const char * defaultvalue;
+    const KParts::LiveConnectExtension::Type rettype;
+};
+
+// keep this list in alphabetic order
+// 
http://service.real.com/help/library/guides/realonescripting/browse/htmfiles/embedmet.htm
+static const JSCommandEntry JSCommandList [] = {
+    { "GetSource", source, 0L, KParts::LiveConnectExtension::TypeString },
+    { "GetTitle", notsupported, "title", 
KParts::LiveConnectExtension::TypeString },
+    { "GetVolume", volume, "100", KParts::LiveConnectExtension::TypeNumber },
+    { "Pause", jsc_pause, 0L, KParts::LiveConnectExtension::TypeBool },
+    { "Play", play, 0L, KParts::LiveConnectExtension::TypeBool },
+    { "SetSource", setsource, 0L, KParts::LiveConnectExtension::TypeBool },
+    { "SetVolume", setvolume, "true", KParts::LiveConnectExtension::TypeBool },
+    { "Start", start, 0L, KParts::LiveConnectExtension::TypeBool },
+    { "Stop", stop, 0L, KParts::LiveConnectExtension::TypeBool },
+    { "Volume", prop_volume, "100", KParts::LiveConnectExtension::TypeNumber },
+    { "pause", jsc_pause, 0L, KParts::LiveConnectExtension::TypeBool },
+    { "play", play, 0L, KParts::LiveConnectExtension::TypeBool },
+    { "stop", stop, 0L, KParts::LiveConnectExtension::TypeBool },
+    { "volume", volume, 0L, KParts::LiveConnectExtension::TypeBool },
+};
+
+static const JSCommandEntry * getJSCommandEntry (const char * name, int start 
= 0, int end = sizeof (JSCommandList)/sizeof (JSCommandEntry)) {
+    if (end - start < 2) {
+        if (start != end && !strcasecmp (JSCommandList[start].name, name))
+            return &JSCommandList[start];
+        return 0L;
+    }
+    int mid = (start + end) / 2;
+    int cmp = strcasecmp (JSCommandList[mid].name, name);
+    if (cmp < 0)
+        return getJSCommandEntry (name, mid + 1, end);
+    if (cmp > 0)
+        return getJSCommandEntry (name, start, mid);
+    return &JSCommandList[mid];
+}
+
+KDE_NO_CDTOR_EXPORT KlashLiveConnectExtension::KlashLiveConnectExtension 
(KlashPart * parent)
+  : KParts::LiveConnectExtension (parent), player (parent),
+    lastJSCommandEntry (0L),
+    m_started (false),
+    m_enablefinish (false) {
+      connect (parent, SIGNAL (started (KIO::Job *)), this, SLOT (started ()));
+}
+
+KDE_NO_CDTOR_EXPORT KlashLiveConnectExtension::~KlashLiveConnectExtension() {
+    //kdDebug () << "KlashLiveConnectExtension::~KlashLiveConnectExtension()" 
<< endl;
+}
+
+KDE_NO_EXPORT void KlashLiveConnectExtension::started () {
+    m_started = true;
+}
+
+KDE_NO_EXPORT void KlashLiveConnectExtension::finished () {
+    if (m_started && m_enablefinish) {
+        KParts::LiveConnectExtension::ArgList args;
+        args.push_back (qMakePair (KParts::LiveConnectExtension::TypeString, 
QString("if (window.onFinished) onFinished();")));
+        emit partEvent (0, "eval", args);
+        m_started = true;
+        m_enablefinish = false;
+    }
+}
+
+KDE_NO_EXPORT bool KlashLiveConnectExtension::get
+  (const unsigned long id, const QString & name,
+   KParts::LiveConnectExtension::Type & type,
+   unsigned long & rid, QString & rval) {
+    const char * str = name.toAscii ();
+    kdDebug () << "get " << str << endl;
+    const JSCommandEntry * entry = getJSCommandEntry (str);
+    if (!entry)
+        return false;
+    rid = id;
+    type = entry->rettype;
+    switch (entry->command) {
+        case prop_source:
+            type = KParts::LiveConnectExtension::TypeString;
+            rval = player->source ();
+            break;
+        case prop_volume:
+            //if (player->view ())
+            //    rval = QString::number (??);
+            break;
+        default:
+            lastJSCommandEntry = entry;
+            type = KParts::LiveConnectExtension::TypeFunction;
+    }
+    return true;
+}
+
+KDE_NO_EXPORT bool KlashLiveConnectExtension::put
+  (const unsigned long, const QString & name, const QString & val) {
+    kdDebug () << "put " << name << "=" << val << endl;
+    const JSCommandEntry * entry = getJSCommandEntry (name.toAscii ());
+    if (!entry)
+        return false;
+    switch (entry->command) {
+        case prop_source: {
+            KUrl url (val);
+            if (player->allowRedir (url))
+                player->openUrl (url);
+            break;
+        }
+        case prop_volume:
+            //if (player->view ())
+            //    ?? (val.toInt ());
+            break;
+        default:
+            return false;
+    }
+    return true;
+}
+
+KDE_NO_EXPORT bool KlashLiveConnectExtension::call
+  (const unsigned long id, const QString & name,
+   const QStringList & args, KParts::LiveConnectExtension::Type & type,
+   unsigned long & rid, QString & rval) {
+    const JSCommandEntry * entry = lastJSCommandEntry;
+    const char * str = name.toAscii ();
+    if (!entry || strcmp (entry->name, str))
+        entry = getJSCommandEntry (str);
+    if (!entry)
+        return false;
+    kdDebug () << "entry " << entry->name << endl;
+    for (unsigned int i = 0; i < args.size (); ++i)
+        kdDebug () << "      " << args[i] << endl;
+    //Klash::View * view = static_cast <Klash::View*> (player->widget ());
+    //if (!view)
+    //    return false;
+    rid = id;
+    type = entry->rettype;
+    switch (entry->command) {
+        case notsupported:
+            if (entry->rettype != KParts::LiveConnectExtension::TypeVoid)
+                rval = entry->defaultvalue;
+            break;
+        case play:
+            if (args.size ()) {
+                KUrl url (args.first ());
+                if (player->allowRedir (url))
+                    ;//player->openNewUrl (url);
+            } else
+                player->play ();
+            rval = "true";
+            break;
+        case start:
+            player->play ();
+            rval = "true";
+            break;
+        case stop:
+            player->stop ();
+            rval = "true";
+            break;
+        case jsc_pause:
+            player->pause ();
+            rval = "true";
+            break;
+        case length:
+            rval.setNum (0 /*player->source ()->length ()*/);
+            break;
+        case width:
+            rval.setNum (player->width ());
+            break;
+        case height:
+            rval.setNum (player->height ());
+            break;
+        case setsource:
+            rval ="false";
+            if (args.size ()) {
+                KUrl url (args.first ());
+                if (player->allowRedir (url) && player->openUrl (url))
+                    rval = "true";
+            }
+            break;
+        case setvolume:
+            if (!args.size ())
+                return false;
+            //?? (args.first ().toInt ());
+            rval = "true";
+            break;
+        case source:
+            rval = player->url ().url ();
+            break;
+        case volume:
+            if (player->widget ())
+                rval = QString::number (0);
+            break;
+        default:
+            return false;
+    }
+    return true;
+}
+
+KDE_NO_EXPORT void KlashLiveConnectExtension::unregister (const unsigned long) 
{
+}
+
+KDE_NO_EXPORT void KlashLiveConnectExtension::setSize (int w, int h) {
+    QByteArray jscode;
+    //jscode.sprintf("this.width=%d;this.height=%d;klash", w, h);
+    KParts::LiveConnectExtension::ArgList args;
+    args.push_back (qMakePair (KParts::LiveConnectExtension::TypeString, 
QString("width")));
+    args.push_back (qMakePair (KParts::LiveConnectExtension::TypeNumber, 
QString::number (w)));
+    emit partEvent (0, "this.setAttribute", args);
+    args.clear();
+    args.push_back (qMakePair (KParts::LiveConnectExtension::TypeString, 
QString("height")));
+    args.push_back (qMakePair (KParts::LiveConnectExtension::TypeNumber, 
QString::number (h)));
+    emit partEvent (0, "this.setAttribute", args);
+}
+
+//-----------------------------------------------------------------------------
+
+#include <X11/Xlib.h>
+#include <X11/keysym.h>
+#include <X11/Intrinsic.h>
+#include <X11/StringDefs.h>
+static const int XKeyPress = KeyPress;
+#undef KeyPress
+#undef Always
+#undef Never
+#undef Status
+#undef Unsorted
+#undef Bool
+
+KlashEmbed::KlashEmbed (KlashView * view) : QX11EmbedWidget (view), m_view 
(view) {}
+
+KlashEmbed::~KlashEmbed () {}
+
+//-----------------------------------------------------------------------------
+
+KlashView::KlashView (QWidget * parent)
+    : QWidget (parent), m_embed (new KlashEmbed (this)) {}
+
+KlashView::~KlashView () {}
+
+void KlashView::resizeEvent (QResizeEvent *) {
+    m_embed->setGeometry (0, 0, width (), height ());
+}
+
+WId KlashView::embedId () {
+    return m_embed->winId ();
+}
+
+#include "klash_part.moc"

=== added file 'plugin/klash4/klash_part.desktop'
--- a/plugin/klash4/klash_part.desktop  1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/klash_part.desktop  2008-10-09 07:35:53 +0000
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Klash, embedded Gnash player for KDE
+Comment=SWF player plugin
+X-KDE-Library=libklashpart
+# Keep in sync with the audio types in kmplayer.desktop
+MimeType=application/x-shockwave-flash;application/futuresplash;
+Type=Service
+Icon=www
+ServiceTypes=KParts/ReadOnlyPart,Browser/View
+X-KDE-BrowserView-PluginsInfo=klash/pluginsinfo
+InitialPreference=1

=== added file 'plugin/klash4/klash_part.h'
--- a/plugin/klash4/klash_part.h        1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/klash_part.h        2008-10-09 07:35:53 +0000
@@ -0,0 +1,162 @@
+// 
+//   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+// Written by Koos Vriezen <koos ! vriezen ? xs4all ! nl>
+
+#ifndef KLASH_PART_H
+#define KLASH_PART_H
+
+#include <QX11EmbedWidget>
+#include <kprocess.h>
+#include <kparts/browserextension.h>
+
+#if __GNUC__ - 0 > 3
+#define KLASH_NO_EXPORT __attribute__ ((visibility("hidden")))
+#else
+#define KLASH_NO_EXPORT
+#endif
+#define KDE_NO_CDTOR_EXPORT KLASH_NO_EXPORT
+#ifndef KDE_NO_EXPORT
+#define KDE_NO_EXPORT KLASH_NO_EXPORT
+#endif
+
+class KAboutData;
+class KlashPart;
+class KInstance;
+class KProcess;
+class JSCommandEntry;
+class KlashView;
+
+/*
+ * Part notifications to hosting application
+ */
+class KLASH_NO_EXPORT KlashBrowserExtension : public KParts::BrowserExtension {
+    Q_OBJECT
+public:
+    KlashBrowserExtension(KlashPart *parent);
+    KDE_NO_CDTOR_EXPORT ~KlashBrowserExtension () {}
+    void urlChanged (const QString & url);
+    void setLoadingProgress (int percentage);
+
+    void saveState (QDataStream & stream);
+    void restoreState (QDataStream & stream);
+    void requestOpenUrl (const KUrl & url, const QString & target, const 
QString & service);
+};
+
+/*
+ * Part javascript support
+ */
+class KLASH_NO_EXPORT KlashLiveConnectExtension : public 
KParts::LiveConnectExtension {
+    Q_OBJECT
+public:
+    KlashLiveConnectExtension (KlashPart * parent);
+    ~KlashLiveConnectExtension ();
+
+    // LiveConnect interface
+    bool get (const unsigned long, const QString &,
+            KParts::LiveConnectExtension::Type &, unsigned long &, QString &);
+    bool put (const unsigned long, const QString &, const QString &);
+    bool call (const unsigned long, const QString &,
+            const QStringList &, KParts::LiveConnectExtension::Type &, 
+            unsigned long &, QString &);
+    void unregister (const unsigned long);
+    void sendEvent(const unsigned long objid, const QString & event, const 
KParts::LiveConnectExtension::ArgList & args ) {
+        emit partEvent(objid, event, args);
+    }
+
+    void enableFinishEvent (bool b = true) { m_enablefinish = b; }
+signals:
+    void partEvent (const unsigned long, const QString &,
+                    const KParts::LiveConnectExtension::ArgList &);
+public slots:
+    void setSize (int w, int h);
+    void started ();
+    void finished ();
+private:
+    KlashPart * player;
+    const JSCommandEntry * lastJSCommandEntry;
+    bool m_started : 1;
+    bool m_enablefinish : 1;
+};
+
+class KLASH_NO_EXPORT KlashEmbed : public QX11EmbedWidget {
+    KlashView * m_view;
+public:
+    KlashEmbed (KlashView * parent);
+    ~KlashEmbed ();
+};
+
+class KLASH_NO_EXPORT KlashView : public QWidget {
+    KlashEmbed * m_embed;
+public:
+    KlashView (QWidget * parent);
+    ~KlashView ();
+    WId embedId ();
+protected:
+    void resizeEvent (QResizeEvent *);
+};
+
+/*
+ * Part that gets created when used a KPart
+ */
+class KLASH_NO_EXPORT KlashPart : public KParts::ReadOnlyPart {
+    Q_OBJECT
+    friend struct GroupPredicate;
+public:
+    KlashPart (QWidget * wparent, QObject * parent, const QStringList &args);
+    ~KlashPart ();
+
+    KDE_NO_EXPORT KlashBrowserExtension * browserextension() const
+        { return m_browserextension; }
+    KlashLiveConnectExtension * liveconnectextension () const
+        { return m_liveconnectextension; }
+    bool allowRedir (const KUrl & url) const;
+    void fullScreen ();
+    void setLoaded (int percentage);
+    const QString & source () const { return m_src_url; }
+public slots:
+    virtual bool openUrl (const KUrl & url);
+    virtual bool closeUrl ();
+    void play ();
+    void stop ();
+    void pause ();
+    int width () const {return m_width; }
+    int height () const {return m_height; }
+protected slots:
+    void playingStarted ();
+    void playingStopped ();
+    void processStopped (int, QProcess::ExitStatus);
+protected:
+    virtual bool openFile();
+private:
+    QStringList m_args;
+    KlashBrowserExtension * m_browserextension;
+    KlashLiveConnectExtension * m_liveconnectextension;
+    KProcess * m_process;
+    KUrl m_docbase;
+    QString m_src_url;
+    QString m_file_name;
+    int m_width;
+    int m_height;
+    //bool m_noresize : 1;
+    bool m_autostart : 1;
+    bool m_fullscreen : 1;
+    bool m_started_emited : 1;
+};
+
+
+#endif

=== added file 'plugin/klash4/klash_part.moc.in'
--- a/plugin/klash4/klash_part.moc.in   1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/klash_part.moc.in   2008-12-04 09:27:57 +0000
@@ -0,0 +1,213 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'klash_part.h'
+**
+** Created: Thu Dec 4 10:00:51 2008
+**      by: The Qt Meta Object Compiler version 59 (Qt 4.4.3)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'klash_part.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 59
+#error "This file was generated using the moc from 4.4.3. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_KlashBrowserExtension[] = {
+
+ // content:
+       1,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_KlashBrowserExtension[] = {
+    "KlashBrowserExtension\0"
+};
+
+const QMetaObject KlashBrowserExtension::staticMetaObject = {
+    { &KParts::BrowserExtension::staticMetaObject, 
qt_meta_stringdata_KlashBrowserExtension,
+      qt_meta_data_KlashBrowserExtension, 0 }
+};
+
+const QMetaObject *KlashBrowserExtension::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *KlashBrowserExtension::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_KlashBrowserExtension))
+        return static_cast<void*>(const_cast< KlashBrowserExtension*>(this));
+    typedef KParts::BrowserExtension QMocSuperClass;
+    return QMocSuperClass::qt_metacast(_clname);
+}
+
+int KlashBrowserExtension::qt_metacall(QMetaObject::Call _c, int _id, void 
**_a)
+{
+    typedef KParts::BrowserExtension QMocSuperClass;
+    _id = QMocSuperClass::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+static const uint qt_meta_data_KlashLiveConnectExtension[] = {
+
+ // content:
+       1,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       4,   10, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+
+ // signals: signature, parameters, type, tag, flags
+      30,   27,   26,   26, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      97,   93,   26,   26, 0x0a,
+     114,   26,   26,   26, 0x0a,
+     124,   26,   26,   26, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_KlashLiveConnectExtension[] = {
+    "KlashLiveConnectExtension\0\0,,\0"
+    "partEvent(ulong,QString,KParts::LiveConnectExtension::ArgList)\0"
+    "w,h\0setSize(int,int)\0started()\0"
+    "finished()\0"
+};
+
+const QMetaObject KlashLiveConnectExtension::staticMetaObject = {
+    { &KParts::LiveConnectExtension::staticMetaObject, 
qt_meta_stringdata_KlashLiveConnectExtension,
+      qt_meta_data_KlashLiveConnectExtension, 0 }
+};
+
+const QMetaObject *KlashLiveConnectExtension::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *KlashLiveConnectExtension::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_KlashLiveConnectExtension))
+        return static_cast<void*>(const_cast< 
KlashLiveConnectExtension*>(this));
+    typedef KParts::LiveConnectExtension QMocSuperClass;
+    return QMocSuperClass::qt_metacast(_clname);
+}
+
+int KlashLiveConnectExtension::qt_metacall(QMetaObject::Call _c, int _id, void 
**_a)
+{
+    typedef KParts::LiveConnectExtension QMocSuperClass;
+    _id = QMocSuperClass::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: partEvent((*reinterpret_cast< const 
ulong(*)>(_a[1])),(*reinterpret_cast< const 
QString(*)>(_a[2])),(*reinterpret_cast< const 
KParts::LiveConnectExtension::ArgList(*)>(_a[3]))); break;
+        case 1: setSize((*reinterpret_cast< 
int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 2: started(); break;
+        case 3: finished(); break;
+        }
+        _id -= 4;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void KlashLiveConnectExtension::partEvent(const unsigned long _t1, const 
QString & _t2, const KParts::LiveConnectExtension::ArgList & _t3)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), 
const_cast<void*>(reinterpret_cast<const void*>(&_t2)), 
const_cast<void*>(reinterpret_cast<const void*>(&_t3)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+static const uint qt_meta_data_KlashPart[] = {
+
+ // content:
+       1,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      10,   10, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+
+ // slots: signature, parameters, type, tag, flags
+      20,   16,   11,   10, 0x0a,
+      34,   10,   11,   10, 0x0a,
+      45,   10,   10,   10, 0x0a,
+      52,   10,   10,   10, 0x0a,
+      59,   10,   10,   10, 0x0a,
+      71,   10,   67,   10, 0x0a,
+      79,   10,   67,   10, 0x0a,
+      88,   10,   10,   10, 0x09,
+     105,   10,   10,   10, 0x09,
+     124,  122,   10,   10, 0x09,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_KlashPart[] = {
+    "KlashPart\0\0bool\0url\0openUrl(KUrl)\0"
+    "closeUrl()\0play()\0stop()\0pause()\0int\0"
+    "width()\0height()\0playingStarted()\0"
+    "playingStopped()\0,\0"
+    "processStopped(int,QProcess::ExitStatus)\0"
+};
+
+const QMetaObject KlashPart::staticMetaObject = {
+    { &KParts::ReadOnlyPart::staticMetaObject, qt_meta_stringdata_KlashPart,
+      qt_meta_data_KlashPart, 0 }
+};
+
+const QMetaObject *KlashPart::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *KlashPart::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_KlashPart))
+        return static_cast<void*>(const_cast< KlashPart*>(this));
+    typedef KParts::ReadOnlyPart QMocSuperClass;
+    return QMocSuperClass::qt_metacast(_clname);
+}
+
+int KlashPart::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    typedef KParts::ReadOnlyPart QMocSuperClass;
+    _id = QMocSuperClass::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: { bool _r = openUrl((*reinterpret_cast< const 
KUrl(*)>(_a[1])));
+            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
+        case 1: { bool _r = closeUrl();
+            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
+        case 2: play(); break;
+        case 3: stop(); break;
+        case 4: pause(); break;
+        case 5: { int _r = width();
+            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; }  break;
+        case 6: { int _r = height();
+            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; }  break;
+        case 7: playingStarted(); break;
+        case 8: playingStopped(); break;
+        case 9: processStopped((*reinterpret_cast< 
int(*)>(_a[1])),(*reinterpret_cast< QProcess::ExitStatus(*)>(_a[2]))); break;
+        }
+        _id -= 10;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE

=== added file 'plugin/klash4/klashpartui.rc'
--- a/plugin/klash4/klashpartui.rc      1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/klashpartui.rc      2008-10-09 07:35:53 +0000
@@ -0,0 +1,15 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="klash" version="1">
+<MenuBar>
+  <Menu name="view"><text>&amp;View</text>
+    <Action name="play"/>
+    <Action name="pause"/>
+    <Action name="stop"/>
+  </Menu>
+</MenuBar>
+<Toolbar name="mainToolBar"><text></text>
+  <Action name="play"/>
+  <Action name="pause"/>
+  <Action name="stop"/>
+</Toolbar>
+</kpartgui>

=== added file 'plugin/klash4/klashplayer.lsm'
--- a/plugin/klash4/klashplayer.lsm     1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/klashplayer.lsm     2008-10-09 07:35:53 +0000
@@ -0,0 +1,14 @@
+Begin3
+Title:          Klashplayer 
+Version:        0.0.1-pre1
+Entered-date:   
+Description:    
+Keywords:        
+Author:         Koos Vriezen <> 
+Maintained-by:  Koos Vriezen <> 
+Primary-site:                  
+Home-page:      http://xx.kde.org
+Original-site:  
+Platforms:       Linux and other Unices
+Copying-policy: GNU Public License
+End

=== added file 'plugin/klash4/pluginsinfo'
--- a/plugin/klash4/pluginsinfo 1970-01-01 00:00:00 +0000
+++ b/plugin/klash4/pluginsinfo 2008-10-09 07:35:53 +0000
@@ -0,0 +1,7 @@
+number=1
+
+[0]
+description=Shockwave Flash 7.0
+file=libklashpart.so
+mime=application/x-shockwave-flash:swf:Shockwave 
Flash;application/futuresplash:spl:FutureSplash Player
+name=Shockwave Flash


reply via email to

[Prev in Thread] Current Thread [Next in Thread]