diff -pruN 4:4.6.3-1/debian/changelog 4:4.6.3-1ubuntu1/debian/changelog
--- 4:4.6.3-1/debian/changelog	2011-05-26 00:54:02.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/changelog	2011-05-30 21:54:14.000000000 +0100
@@ -1,3 +1,22 @@
+kdebase (4:4.6.3-1ubuntu1) oneiric; urgency=low
+
+  [ Jonathan Thomas ]
+  * Merge with Debian Unstable, remaining changes:
+    - Keep bumped replace/conflicts versions where necessary
+    - Do not re-add optional, unsatisfiable kdesktop dependency for libkonq5a
+    - Suggest instead of recommend ruby in dolphin
+    - Reduce the x-www-browser priority for konqueror to 30 as rekonq is the
+      default Kubuntu browser.
+
+  [ Michał Zając ]
+  * New upstream release
+   - Bump on kde-sc-dev-latest
+
+  [ Philip Muškovac ]
+  * Update Vcs links as the branch is owned by kubuntu-packagers now 
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Mon, 30 May 2011 16:52:59 -0400
+
 kdebase (4:4.6.3-1) unstable; urgency=low
 
   * New upstream release.
@@ -76,6 +95,258 @@ kdebase (4:4.6.2-1) experimental; urgenc
 
  -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 27 Apr 2011 12:23:39 +0300
 
+kdebase (4:4.6.2-0ubuntu1) natty; urgency=low
+
+  * New upstream release
+
+ -- Romain Perier <romain.perier@gmail.com>  Mon, 04 Apr 2011 20:06:33 +0200
+
+kdebase (4:4.6.1-0ubuntu1~ppa1) natty; urgency=low
+
+  [ Jonathan Riddell ]
+  * New upstream release
+  * Update kde-sc-dev-latest version
+
+  [ Felix Geyer ]
+  * Reduce the x-www-browser priority for konqueror to 30 as rekonq is the
+    default Kubuntu browser.
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 26 Jan 2011 11:40:33 +0000
+
+kdebase (4:4.6.0-0ubuntu1) natty; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 21 Jan 2011 15:58:41 +0000
+
+kdebase (4:4.5.95-0ubuntu1) natty; urgency=low
+
+  * New upstream RC release
+   - Bump on kde-sc-dev-latest
+
+ -- Michał Zając <quintasan@kubuntu.org>  Wed, 05 Jan 2011 17:06:17 +0100
+
+kdebase (4:4.5.90-0ubuntu1) natty; urgency=low
+
+  * New upstream RC release
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 22 Dec 2010 18:51:01 +0000
+
+kdebase (4:4.5.85-0ubuntu1) natty; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 07 Dec 2010 12:42:37 +0000
+
+kdebase (4:4.5.80-0ubuntu2) natty; urgency=low
+
+  * konqueror replaces libkonqsidebarplugin4a (<< 4:4.5.80) 
+
+ -- Philip Muskovac <yofel@gmx.net>  Wed, 01 Dec 2010 16:53:09 +0100
+
+kdebase (4:4.5.80-0ubuntu1) natty; urgency=low
+
+  * New upstream beta release
+  * Drop kubuntu_06_simple_aboutpage.diff, didn't apply and no point
+    keeping a distro patch to an app we don't ship by default
+  * Drop kubuntu_23_konqueror_spinner_in_toolbar.diff now upstream
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 25 Nov 2010 16:00:47 +0000
+
+kdebase (4:4.5.3-0ubuntu1) natty; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 04 Nov 2010 16:10:59 +0000
+
+kdebase (4:4.5.2-0ubuntu1) natty; urgency=low
+
+  [ Jonathan Riddell ]
+  * New upstream release
+
+  [ Felix Geyer ]
+  * Merge with Debian git, remaining changes:
+    - Do not add unsatisfiable kdesktop dependency for libkonq5a
+    - Suggest instead of recommend ruby in dolphin.
+    - kubuntu_04_hide_kfind.diff
+    - kubuntu_06_simple_aboutpage.diff
+    - kubuntu_10_konq_scans_nsplugins_at_startup.diff
+    - kubuntu_19_install_flash.diff
+    - kubuntu_18_fix_systemsettings_about_me.diff
+    - kubuntu_23_konqueror_spinner_in_toolbar.diff
+    - kubuntu_24_folderview_livecd_directory.diff
+
+  [ Alessandro Ghersi ]
+  * Build against kdelibs5-dev 4.5.2-0ubuntu1 for libkutils4 transition
+  * konqueror replaces libkonqsidebarplugin4a (<< 4:4.5.1-0ubuntu2)
+  * Remove XS-Debian-Vcs-Browser and git
+
+ -- Felix Geyer <debfx-pkg@fobos.de>  Mon, 18 Oct 2010 18:21:10 +0200
+
+kdebase (4:4.5.1-0r2) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+  [ Modestas Vainius ]
+  * Point debian/control Vcs fields to the new Git repository.
+
+  [ George Kiagiadakis ]
+  * Change my email address in uploaders.
+  * Remove the kinfocenter package (moved to kdebase-workspace).
+  * Remove the kappfinder package (removed upstream).
+  * Refresh patches.
+  * Update installed files.
+  * Remove unused build dependencies:
+    - libsmbclient-dev
+    - libusb-dev
+    - libraw1394-dev
+    - libglu1-mesa-dev
+    - libpci-dev
+    - libxext-dev
+  * Rename libkonq5 to libkonq5a because BC was broken.
+  * Update libkonq5a.symbols.
+  * Fix some lintian warnings related to package descriptions.
+  * Make dolphin suggest kdesdk-dolphin-plugins.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 01 Aug 2010 00:07:45 +0300
+
+kdebase (4:4.5.1-0ubuntu4) maverick; urgency=low
+
+  * Enable kubuntu_18_fix_systemsettings_about_me was removed
+    in 4:4.4.80-0ubuntu1 (LP: #390396)
+
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Sun, 03 Oct 2010 06:56:08 +0200
+
+kdebase (4:4.5.1-0ubuntu3) maverick; urgency=low
+
+  * Add kubuntu_07_fix_filename_abbreviations.diff
+    (http://bugs.kde.org/show_bug.cgi?id=251121)
+  * Add kubuntu_08_update_title_of_the_tab.diff
+    (http://websvn.kde.org/?view=revision&revision=1177954)
+
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Sun, 26 Sep 2010 23:13:06 +0200
+
+kdebase (4:4.5.1-0ubuntu2) maverick; urgency=low
+
+  * Add kubuntu_01_fix_preview_in_tooltip.diff
+    (http://bugs.kde.org/show_bug.cgi?id=250000)
+  * Add kubuntu_02_fix_konqueror_malformed_error.diff to fix
+    malformed url error when when reloading the initial about:konqueror page
+  * Add kubuntu_03_fix_konsole_tab_width.diff
+    (http://bugs.kde.org/show_bug.cgi?id=166573
+     http://bugs.kde.org/show_bug.cgi?id=189847
+     http://bugs.kde.org/show_bug.cgi?id=157201)
+  * Add kubuntu_05_folderview_triggered_by_click_or_hover.diff
+    (http://websvn.kde.org/?view=revision&revision=1171793)
+
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Fri, 10 Sep 2010 21:47:50 +0200
+
+kdebase (4:4.5.1-0ubuntu1) maverick; urgency=low
+
+  * New upstream release.
+  * Update install files.
+
+ -- Felix Geyer <debfx-pkg@fobos.de>  Mon, 30 Aug 2010 18:54:22 +0200
+
+kdebase (4:4.5.0b-0ubuntu4) maverick; urgency=low
+
+  * Add kubuntu_24_folderview_livecd_directory.diff to set folderview to
+    point at Desktop folder if running from a live CD.  Closes LP: #613834
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 23 Aug 2010 23:53:42 +0100
+
+kdebase (4:4.5.0b-0ubuntu3) maverick; urgency=low
+
+  [ Jonathan Riddell ]
+  * Add kubuntu_23_konqueror_spinner_in_toolbar.diff from Aurelien Gateau
+    needed to make Konqueror support external menu bar Plasmoid
+   - http://reviewboard.kde.org/r/4743
+
+  [ Harald Sitter ]
+  * Drop kubuntu_22_dolphin_previews.diff since it makes every folder
+    default to preview, which is dragging down performance big time.
+    Additionally turning it off by default will not work recursive. Meaning
+    if the user turns off the previews for a in a/b/c/ and enters b they will
+    be on again, leading to the user turning them off again...
+    Instead an upstream solution should be implemented that only previews in
+    folders where it makes sense (e.g. XDG_PICTURES_DIR)
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Mon, 16 Aug 2010 12:46:54 +0200
+
+kdebase (4:4.5.0b-0ubuntu2) maverick; urgency=low
+
+  * Remove kubuntu_20_folderview_configchanged.diff, applied upstream
+
+ -- Felix Geyer <debfx-pkg@fobos.de>  Thu, 05 Aug 2010 10:50:18 +0200
+
+kdebase (4:4.5.0b-0ubuntu1) maverick; urgency=low
+
+  [ Jonathan Riddell ]
+  * New tar from upstream
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 10 Aug 2010 02:52:33 +0100
+
+kdebase (4:4.5.0-0ubuntu1) maverick; urgency=low
+
+  [ Jonathan Riddell ]
+  * Add debian/patches/kubuntu_22_dolphin_previews.diff turn on previews
+    by default
+
+  [ Michał Zając ]
+  * New upstream release
+    - Bump on build-depends 
+
+ -- Michał Zając <michal.zajac@gmail.com>  Sat, 31 Jul 2010 01:15:10 +0200
+
+kdebase (4:4.4.92-0ubuntu1) maverick; urgency=low
+
+  * New upstream rc release
+    - Bump kde-sc-dev-latest
+    - Confirmed symbols
+
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Thu, 08 Jul 2010 04:39:59 +0200
+
+kdebase (4:4.4.90-0ubuntu1) maverick; urgency=low
+
+  * New upstream rc release
+    - Bump kde-sc-dev-latest
+    - Remove README.source no longer need
+    - Update not-installed file
+    - Update symbol files
+
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Sun, 20 Jun 2010 00:17:55 +0200
+
+kdebase (4:4.4.85-0ubuntu1) maverick; urgency=low
+
+  * New upstream release
+    - Bump build-depends
+    - Refrsh kubuntu_20_folderview_configchanged.diff
+
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Wed, 09 Jun 2010 14:20:42 +0200
+
+kdebase (4:4.4.80-0ubuntu2) maverick; urgency=low
+
+  * Really remove kappfinder
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sun, 30 May 2010 21:37:27 +0000
+
+kdebase (4:4.4.80-0ubuntu1) maverick; urgency=low
+
+  * New upstream release
+  * Switch to source format 3.0
+  * Bump on build-depends verions
+  * Removed README.Source
+  * Refreshed kubuntu_10_konq_scans_nsplugins_at_startup.diff
+  * Modified kubuntu_18_fix_systemsettings_about_me.diff
+  * Removed kubuntu_21_konsole_invalid_session_crash_fix.diff,
+    implemented upstream
+  * Removed kinfocenter, moved to kdebase-runtime
+  * Removed kappfinder
+  * Updated *.install and libkonq5.symbols
+  * Added libkdeinit4_dolphin.so to dolphin.install
+
+ -- Michał Zając <michal.zajac@gmail.com>  Fri, 28 May 2010 23:22:07 +0200
+
 kdebase (4:4.4.5-3) unstable; urgency=low
 
   * Split off support files from libkonq5 to the libkonq-common package and
@@ -139,6 +410,45 @@ kdebase (4:4.4.3-1) unstable; urgency=lo
 
  -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 01 May 2010 23:37:50 +0300
 
+kdebase (4:4.4.3-0ubuntu2) maverick; urgency=low
+
+  * Merge with Debian Unstable, remaining changes:
+    - Do not add unsatisfiable kdesktop dependency for libkonq5
+    - kubuntu_04_hide_kfind.diff
+    - kubuntu_06_simple_aboutpage.diff
+    - kubuntu_10_konq_scans_nsplugins_at_startup.diff
+    - kubuntu_18_fix_systemsettings_about_me.diff, LP: #390396
+    - kubuntu_19_install_flash.diff
+    - kubuntu_20_folderview_configchanged.diff
+    - kubuntu_21_konsole_invalid_session_crash_fix.diff
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Sun, 16 May 2010 22:19:06 -0400
+
+kdebase (4:4.4.3-0ubuntu1) lucid; urgency=low
+
+  * New upstream release
+    - Bump build-depends 
+
+ -- Roderick B. Greening <roderick.greening@gmail.com>  Tue, 04 May 2010 01:37:16 -0230
+
+kdebase (4:4.4.3-1) unstable; urgency=low
+
+  * New upstream release:
+    - Konsole does not crash when closing a broken restored session.
+      (Closes: #555831)
+    - Konqueror does not crash when closing fast a tab. (Closes: #441298)
+
+  [Martin Alfke]
+  * Update of debian/copyright for kde 4.4
+
+  [ Modestas Vainius ]
+  * Bump kde-sc-dev-latest build dependency to 4.4.3.
+  * Confirm symbol files for 4.4.2 on hurd-i386 i386 ia64 kfreebsd-amd64
+    kfreebsd-i386 mips powerpc s390 sparc.
+  * Release KDE SC 4.4.3 to unstable.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 01 May 2010 23:37:50 +0300
+
 kdebase (4:4.4.2-1) experimental; urgency=low
 
   * New upstream release (Closes: #568776):
@@ -186,111 +496,612 @@ kdebase (4:4.4.2-1) experimental; urgenc
 
  -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 05 Apr 2010 23:15:35 +0300
 
-kdebase (4:4.3.4-1) unstable; urgency=low
+kdebase (4:4.4.2-0ubuntu2) lucid; urgency=low
 
-  * New upstream release.
+  * Add kubuntu_21_konsole_session_crash_fix.diff to fix crashes when the
+    session data provided to Konsole is either corrupted or missing.
+    Fixes LP: #350740
 
-  +++ Changes by Karl Ferdinand Ebert:
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Fri, 16 Apr 2010 11:44:43 -0400
 
-  * Add source.lintian-overrides to ignore lintian warning about missing
-    debug depends.
+kdebase (4:4.4.2-1) experimental; urgency=low
 
-  +++ Changes by Lukasz Janyst:
+  * New upstream release (Closes: #568776):
+    - does no more close the window when entering a new adblock filter and
+      pressing Enter. (Closes: #450774)
+    - Konqueror does not hangs after first letter of autocompletion at Google
+      Custom Search sites. (Closes: #565270)
+    - Konqueror now displays SHA1 digest for SSL certificates.
+      (Closes: #525975)
+    - Fixes random crashes in dolphin caused by Nepomuk D-Bus calls.
+      (Closes: #558010)
+    - Konsole now uses the more readable color scheme "Linux" by default.
+      (Closes: #570907)
+    - The nsplugins' copy of np sdk supports the SH4 architecture.
+      (Closes: 562504)
 
-  * Bump build depends.
+  [ Modestas Vainius ]
+  * Change my email address to modax@debian.org in Uploaders field.
+  * Fix Vcs-Browser URL. (Closes: #569043)
+  * libkdeinit4_*.so have been moved to private directory (Closes: #553007).
+  * Add cmake to Build-Depends.
+  * Add kde-sc-dev-latest (>= 4:4.4.2) to Build-Depends.
+  * Bump Standards-Version to 3.8.4: no changes needed.
+  * Bump pkg-kde-tools build dependency to 0.6.4.
+  * Add a symbol file for libkonq5: based on 4.3.4, update for 4.4.1 on
+    amd64/i386.
+  * Rename libkonqsidebarplugin4 to libkonqsidebarplugin4a, it broke API/ABI
+    without bumping a soname.
+  * Rename libkonqsidebarplugin4-dev to libkonqsidebarplugin-dev, adjust its
+    dependencies for libkonqsidebarplugin4a.
+  * Add a symbol file for libkonqsidebarplugin4a: based on 4.4.1 amd64/i386.
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+  [ George Kiagiadakis ]
+  * Refresh patches.
+  * Bump kdelibs5-dev build dependency to >= 4:4.4.
+  * Add build dependency on shared-desktop-ontologies.
+  * Remove kdebase-workspace-dev build dependency as it doesn't
+    seem to be used anymore.
+  * Update installed files.
+  * Recommend ruby in dolphin for the new get hot new stuff scripts.
+  * Remove unused lintian overrides.
 
-  * Remove myself from Uploaders.
+  [ Pino Toscano ]
+  * Register the konqueror manpage as slave in the x-www-browser alternative.
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 09 Dec 2009 00:24:05 +0200
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 05 Apr 2010 23:15:35 +0300
 
-kdebase (4:4.3.2-1) unstable; urgency=low
+kdebase (4:4.4.2-0ubuntu1) lucid; urgency=low
 
-  * New upstream release.
+  [ Alessandro Ghersi ]
+  * New upstream release
+    - Bump build-depends
+    - In kubuntu_06_simple_aboutpage.diff change query.data() to query.value()
 
-  +++ Changes by Modestas Vainius:
+  [ Harlad Sitter ]
+  * Remove kubuntu_14_dolphin_preview_on.diff based on the fact that we are not
+    smarter than upstream and on the following insantly thought up fails:
+    + Running on battery, machine is constantly creating previews reducing
+      the time until you run out of battery.
+    + Accessing remote shares (e.g. a ftp share for a website) the patch causes
+      a constant drain of bandwith. Something users might not even be aware of.
+    + It exposes pictures in sub directories of dolphin's default location, which
+      might be private data that becomes available to other people this way.
+      For a more graphical example please poke me or Quintasan in #kubuntu-devel
+    + Unable to turn off without making Dolphin's settings apply global instead
+      of per-directory which is quite a trade-off
 
-  * Use DEB_HOST_ARCH_OS rather than DEB_BUILD_ARCH_OS in debian/rules
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Sat, 27 Mar 2010 15:01:41 +0100
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 06 Oct 2009 17:55:14 +0200
+kdebase (4:4.4.1-0ubuntu3) lucid; urgency=low
 
-kdebase (4:4.3.1-1) unstable; urgency=low
+  * Switch back to previous control file. konq-plugins isn't our target.
 
-  * New upstream release.
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu, 11 Mar 2010 00:01:28 +0100
 
-  +++ Changes by Modestas Vainius:
+kdebase (4:4.4.1-0ubuntu2) lucid; urgency=low
 
-  * Downgrade konqueror-nsplugins from kdebase-apps Depends to Recommends.
-  * Update install files.
-  * Bump KDE build dependencies to KDE 4.3.1.
-  * Rewrite Linux only installation hack and use BUILD_OS rather than HOST_OS.
+  * Konqueror recommends konq-plugins, not suggests.
+    We removed konq-plugins dependancy on konqueror, since rekonq uses
+    it too.
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 30 Aug 2009 11:32:51 +0300
+ -- Anthony Mercatante <tonio@ubuntu.com>  Wed, 10 Mar 2010 23:44:36 +0100
 
-kdebase (4:4.3.0-2) unstable; urgency=low
+kdebase (4:4.4.1-0ubuntu1) lucid; urgency=low
 
-  +++ Changes by Modestas Vainius:
+  [ Alessandro Ghersi ]
+  * New upstream release
+    - Bump build-depends
+    - Update kinfocenter.install
+    - Update konqueror.install
+
+  [ Harald Sitter ]
+  * Add kubuntu_20_folderview_configchanged.diff
+    + Adding a configChanged() interface to folderview, which is necessary
+      for plasma to trigger a reload of folderview's content (most
+      importantly via kubuntu-default-settings' plasma init scripts)
 
-  * Bump shlibs each new upstream version.
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Sat, 27 Feb 2010 05:36:55 +0100
 
-  +++ Changes by Pino Toscano:
+kdebase (4:4.4.0-0ubuntu1) lucid; urgency=low
 
-  * Remove the separate kinfocenter.install.kfreebsd and instead install
-    Linux-specific stuff using rules. This way there is a .install file less
-    to maintain, and it works on hurd-i386 as well.
-  * Recommend kinfocenter in the kdebase-apps metapackage. (Closes: #524115)
+  * New upstream release
+   - Bump on Build-Depends
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+ -- Michał Zając <michal.zajac@gmail.com>  Fri, 05 Feb 2010 00:02:39 +0100
 
-  * Update to Standards-Version: 3.8.3, no changes required.
-  * Rename kdebase metapackage to kdebase-apps. kdebase metapackage is moved
-    to meta-kde source and will be slightly different.
+kdebase (4:4.3.98-0ubuntu1) lucid; urgency=low
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 22 Aug 2009 15:43:32 +0200
+  [ Michał Zając ]
+  * New upstream release
+   - Bump on build-deps
+   - Removed one file from kinfocenter.install
 
-kdebase (4:4.3.0-1) unstable; urgency=low
+  [ Alessandro Ghersi ]
+  * Bump Qt to 4.6.1
 
-  * New upstream release.
+ -- Michał Zając <michal.zajac@gmail.com>  Mon, 01 Feb 2010 21:07:45 +0100
 
-  +++ Changes by Didier Raboud:
+kdebase (4:4.3.95-0ubuntu1) lucid; urgency=low
 
-  * Add dependency on install-info, thanks to Norbert Preining. (Closes: #532585)
+  * New upstream release
+    - Bump build-deps
 
-  +++ Changes by Sune Vuorela:
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Wed, 20 Jan 2010 13:05:56 +0100
 
-  * Make konsole ignore -T. (Closes: #532029)
+kdebase (4:4.3.90-0ubuntu1) lucid; urgency=low
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+  * New upstream release candidate:
+    - Bump build-depend versions
+    - Update dolphin.install
 
-  * Bump build depends to >= 4.3.0.
-  * Update packaging copyright in debian/copyright.
-  * Update to Standards-Version: 3.8.2, no changes required.
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Wed, 06 Jan 2010 19:29:15 -0500
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 04 Aug 2009 09:05:27 +0200
+kdebase (4:4.3.85-0ubuntu1) lucid; urgency=low
 
-kdebase (4:4.2.96-1) experimental; urgency=low
+  * New upstream release
+    - Bump build-deps
 
-  * New upstream snapshot.
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Sat, 19 Dec 2009 18:29:39 +0100
 
-  +++ Changes by George Kiagiadakis:
+kdebase (4:4.3.4-1) unstable; urgency=low
 
-  * Bump build-dependency on kdelibs5 to version 4.2.95.
-  * Update installed files.
-  * Add myself to uploaders.
-  * Add build dependency on kdebase-workspace-dev.
+  * New upstream release.
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 26 Jun 2009 19:58:54 +0300
+  +++ Changes by Karl Ferdinand Ebert:
 
-kdebase (4:4.2.4-1) unstable; urgency=low
+  * Add source.lintian-overrides to ignore lintian warning about missing
+    debug depends.
 
-  * New upstream release:
-    - khtml fixes. (Closes: #529851)
+  +++ Changes by Lukasz Janyst:
 
-  +++ Changes by Josh Metzler:
+  * Bump build depends.
 
-  * Add Breaks: gtk-qt-engine to konqueror-nsplugins since they are
-    incompatible. (Closes: #513881)
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Remove myself from Uploaders.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 09 Dec 2009 00:24:05 +0200
+
+kdebase (4:4.3.80-0ubuntu1) lucid; urgency=low
+
+  * New upstream release:
+    - Drop kubuntu_05_konsole_colour_scheme.diff, applied upstream
+    - Drop kubuntu_15-17.diff, applied upstream
+    - Bump build-depend versions
+    - Add build-depend on shared-desktop-ontologies for nepomuk support
+    - Update various .install files
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Wed, 02 Dec 2009 13:28:20 -0500
+
+kdebase (4:4.3.3-0ubuntu3) lucid; urgency=low
+
+  * Remove transitional kdebase package, kdebase is a real package in meta-kde
+    now. Fixes upload failure.
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Fri, 27 Nov 2009 11:43:14 -0500
+
+kdebase (4:4.3.3-0ubuntu2) lucid; urgency=low
+
+  * Add missing epoch to Qt build-depends version
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 25 Nov 2009 13:46:58 +0000
+
+kdebase (4:4.3.3-0ubuntu1) lucid; urgency=low
+
+  * Merge with Debian testing remaining changes:
+    - Keep our -kde4 replaces/conflicts
+    - Do not add unsatisfiable kdesktop dependency for libkonq5
+    - kubuntu_04_hide_kfind.diff
+    - kubuntu_05_konsole_colour_scheme.diff
+    - kubuntu_06_simple_aboutpage.diff
+    - kubuntu_10_konq_scans_nsplugins_at_startup.diff
+    - kubuntu_14_dolphin_preview_on.diff
+    - kubuntu_15_fdo_notifications.diff
+    - kubuntu_16_fdo_notifications.diff
+    - kubuntu_17_abort_string.diff
+    - kubuntu_18_fix_systemsettings_about_me.diff, LP: #390396
+    - kubuntu_19_install_flash.diff
+    - Add kdebase transitional package which depends on kdebase-apps
+  * New upstream release
+    - Remove kubuntu_20_fix_dolphin_terminal_crash.diff, fixed upstream
+    - Remove kubuntu_13_fix_phonon_include.diff, include file now exists
+
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Sun, 08 Nov 2009 05:31:34 +0100
+
+kdebase (4:4.3.2-1) unstable; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Modestas Vainius:
+
+  * Use DEB_HOST_ARCH_OS rather than DEB_BUILD_ARCH_OS in debian/rules
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 06 Oct 2009 17:55:14 +0200
+
+kdebase (4:4.3.2-0ubuntu3) karmic; urgency=low
+
+  * Drop kubuntu_12_folderview_retry.diff, fixes LP: #453874
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Tue, 20 Oct 2009 11:36:09 -0400
+
+kdebase (4:4.3.2-0ubuntu2) karmic; urgency=low
+
+  * Add kubuntu_20_fix_dolphin_terminal_crash.diff from upstream to revert
+    a problematic commit that lead to Dolphin crashing during terminal use.
+    Can be unapplied in KDE 4.3.3 (LP: #454601)
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Tue, 20 Oct 2009 10:50:05 -0400
+
+kdebase (4:4.3.2-1) unstable; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Modestas Vainius:
+
+  * Use DEB_HOST_ARCH_OS rather than DEB_BUILD_ARCH_OS in debian/rules
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 06 Oct 2009 17:55:14 +0200
+
+kdebase (4:4.3.2-0ubuntu1) karmic; urgency=low
+
+  [ Alessandro Ghersi ]
+  * New upstream release
+    - Bump build-deps
+
+  [ Harald Sitter ]
+  * Make Lintian happy about the konqueror maintainer scripts
+  * Add konsole maintainer scripts to register it as x-terminal-emulator
+    alternative (LP: #278722)
+  * Add kubuntu_19_install_flash.diff using update-notifier-kde to recommend
+    installation of flash plugin
+
+  [ Jonathan Thomas ]
+  * Bump replaces for konqueror on dolphin to (<< 4:4.2.85) (LP: #421742)
+
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Sat, 03 Oct 2009 03:45:08 +0200
+
+kdebase (4:4.3.1-1) unstable; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Modestas Vainius:
+
+  * Downgrade konqueror-nsplugins from kdebase-apps Depends to Recommends.
+  * Update install files.
+  * Bump KDE build dependencies to KDE 4.3.1.
+  * Rewrite Linux only installation hack and use BUILD_OS rather than HOST_OS.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 30 Aug 2009 11:32:51 +0300
+
+kdebase (4:4.3.1-0ubuntu1) karmic; urgency=low
+
+  * New upstream release
+    - Bump build-depends
+
+ -- Alessandro Ghersi <alessandro-ghersi@kubuntu.org>  Sat, 29 Aug 2009 01:59:53 +0200
+
+kdebase (4:4.3.0-2) unstable; urgency=low
+
+  +++ Changes by Modestas Vainius:
+
+  * Bump shlibs each new upstream version.
+
+  +++ Changes by Pino Toscano:
+
+  * Remove the separate kinfocenter.install.kfreebsd and instead install
+    Linux-specific stuff using rules. This way there is a .install file less
+    to maintain, and it works on hurd-i386 as well.
+  * Recommend kinfocenter in the kdebase-apps metapackage. (Closes: #524115)
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Update to Standards-Version: 3.8.3, no changes required.
+  * Rename kdebase metapackage to kdebase-apps. kdebase metapackage is moved
+    to meta-kde source and will be slightly different.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 22 Aug 2009 15:43:32 +0200
+
+kdebase (4:4.3.0-1) unstable; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Didier Raboud:
+
+  * Add dependency on install-info, thanks to Norbert Preining. (Closes: #532585)
+
+  +++ Changes by Sune Vuorela:
+
+  * Make konsole ignore -T. (Closes: #532029)
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Bump build depends to >= 4.3.0.
+  * Update packaging copyright in debian/copyright.
+  * Update to Standards-Version: 3.8.2, no changes required.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 04 Aug 2009 09:05:27 +0200
+
+kdebase (4:4.3.0-0ubuntu3) karmic; urgency=low
+
+  * Add kubuntu_18_fix_systemsettings_about_me.diff Closes LP: 390396
+
+ -- Achim Bohnet <allee@kubuntu.org>  Wed, 05 Aug 2009 17:34:09 +0200
+
+kdebase (4:4.3.0-0ubuntu2) karmic; urgency=low
+
+  * Really, this patch doesn't exist
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 05 Aug 2009 00:05:39 +0100
+
+kdebase (4:4.3.0-2) unstable; urgency=low
+
+  +++ Changes by Modestas Vainius:
+
+  * Bump shlibs each new upstream version.
+
+  +++ Changes by Pino Toscano:
+
+  * Remove the separate kinfocenter.install.kfreebsd and instead install
+    Linux-specific stuff using rules. This way there is a .install file less
+    to maintain, and it works on hurd-i386 as well.
+  * Recommend kinfocenter in the kdebase-apps metapackage. (Closes: #524115)
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Update to Standards-Version: 3.8.3, no changes required.
+  * Rename kdebase metapackage to kdebase-apps. kdebase metapackage is moved
+    to meta-kde source and will be slightly different.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 22 Aug 2009 15:43:32 +0200
+
+kdebase (4:4.3.0-1) unstable; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Didier Raboud:
+
+  * Add dependency on install-info, thanks to Norbert Preining. (Closes: #532585)
+
+  +++ Changes by Sune Vuorela:
+  
+  * Make konsole ignore -T. (Closes: #532029)
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Bump build depends to >= 4.3.0.
+  * Update packaging copyright in debian/copyright.
+  * Update to Standards-Version: 3.8.2, no changes required.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 04 Aug 2009 09:05:27 +0200
+
+kdebase (4:4.3.0-0ubuntu1) karmic; urgency=low
+
+  * New upstream release
+  * Remove kubuntu_17_startup_notification.diff, applied upstream
+  * Add kubuntu_17_abort_string.diff, Closes LP: #389751
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 31 Jul 2009 17:52:40 +0100
+
+kdebase (4:4.2.98-0ubuntu3) karmic; urgency=low
+
+  * Rebuild with new pkg-kde-tools to build translation templates
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 29 Jul 2009 18:11:57 +0100
+
+kdebase (4:4.2.98-0ubuntu2) karmic; urgency=low
+
+  * Add kubuntu_17_startup_notification.diff to debian/patches/series, 
+    bzr missed it out
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 27 Jul 2009 12:18:51 +0100
+
+kdebase (4:4.2.98-0ubuntu1) karmic; urgency=low
+
+  [ Michał Zając ]
+  * New upstream release (KDE 4.3 RC 3)
+  * Bump on Build-Depends
+
+  [ Jonathan Riddell ]
+  * Add kubuntu_17_startup_notification.diff Closes LP: #399155
+
+ -- Michał Zając <michal.zajac@gmail.com>  Wed, 22 Jul 2009 11:39:02 +0200
+
+kdebase (4:4.2.96-1) experimental; urgency=low
+
+  * New upstream snapshot.
+
+  +++ Changes by George Kiagiadakis:
+
+  * Bump build-dependency on kdelibs5 to version 4.2.95.
+  * Update installed files.
+  * Add myself to uploaders.
+  * Add build dependency on kdebase-workspace-dev.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 26 Jun 2009 19:58:54 +0300
+
+kdebase (4:4.2.96-0ubuntu2) karmic; urgency=low
+
+  * Backport support for freedesktop.org notifications. Makes it possible for
+    GNOME and KDE applications to display notifications using the native
+    desktop notification system.
+   - debian/patches/kubuntu_15_fdo_notifications.diff
+   - debian/patches/kubuntu_16_fdo_notifications.diff
+
+ -- Aurélien Gâteau <aurelien.gateau@canonical.com>  Fri, 17 Jul 2009 12:51:23 +0200
+
+kdebase (4:4.2.96-0ubuntu1) karmic; urgency=low
+
+  * New upstream release
+    - Bump on Build-Depends.
+
+ -- Michał Zając <michal.zajac@gmail.com>  Fri, 10 Jul 2009 19:14:12 +0200
+
+kdebase (4:4.2.95-0ubuntu1) karmic; urgency=low
+
+  * New upstream release:
+    - Bump KDE versions to 4.2.95
+  * Bump Standards-Version to 3.8.2, no changes required
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Thu, 25 Jun 2009 12:41:12 -0400
+
+kdebase (4:4.2.90-0ubuntu1) karmic; urgency=low
+
+  * New upstream release:
+    - Update KDE versions to 4.2.90
+    - update debian/libkonq5-dev.install
+
+ -- Steve Stalcup <vorian@ubuntu.com>  Wed, 03 Jun 2009 23:42:46 -0400
+
+kdebase (4:4.2.85-0ubuntu6) karmic; urgency=low
+
+  [ Jonathan Thomas ]
+  * Bump replaces version of kdebase-bin/data for dolphin (LP: #374959)
+
+  [ Anthony Mercatante ]
+  * Add kubuntu_14_dolphin_preview_on.diff:
+    - turns on dolphin preview by default 
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Tue, 02 Jun 2009 17:01:48 +0200
+
+kdebase (4:4.2.85-0ubuntu5) karmic; urgency=low
+
+  * Update replaces for kdebase-plasma in plasma-widget-folderview
+  * Add transitional package for kdebase-plasma (to plasma-widget-folderview)
+
+ -- Roderick B. Greening <roderick.greening@gmail.com>  Wed, 20 May 2009 11:29:13 -0230
+
+kdebase (4:4.2.85-0ubuntu4) karmic; urgency=low
+
+  * Bump replaces version of konqueror to (<< 4:4.2.85) for kdebase-data
+    (LP: #377856)
+  * Bump replaces version of kdebase-bin to (<< 4:4.2.85) for libkonq5
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Mon, 18 May 2009 10:47:32 -0400
+
+kdebase (4:4.2.85-0ubuntu3) karmic; urgency=low
+
+  * Remove libkonsoleprivate.so from not-installed to konsole.install,
+    konsole dies without it
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Sat, 16 May 2009 21:11:26 -0400
+
+kdebase (4:4.2.85-0ubuntu2) karmic; urgency=low
+
+  [ Roderick B. Greening ]
+  * Remove (and not just disable) kubuntu_09_trash_kcm_in_dolphin.diff and
+    kubuntu_11_svn954343_dolphin_prefix.diff
+  * Update libphonon-dev to libqt4-phonon-dev (>= 4.5.1)
+
+  [ Jonathan Thomas ]
+  * libkonq5-dev replaces kdebase-data (<< 4:4.2.85)
+  * Bump replaces version of kdebase-data for libkonq5
+  * Bump replaces version of konqueror for kdebase-bin
+  * Bump replaces version of kdepasswd for kdebase-data
+  * Bump replaces version of kdebase-bin for kinfocenter
+  * Bump replaces version of konqueror for libkonqsidebar4
+  * konqueror replaces kdebase-bin (<< 4:4.1.85)
+  * konqueror-nsplugins replaces kdebase-bin (<< 4:4.2.85)
+
+  [ Scott Kitterman ]
+  * Change VCS* headers back to Kubuntu VCS from Debian's
+
+ -- Scott Kitterman <scott@kitterman.com>  Sat, 16 May 2009 18:44:58 -0400
+
+kdebase (4:4.2.96-1) experimental; urgency=low
+
+  * New upstream snapshot.
+
+  +++ Changes by George Kiagiadakis:
+
+  * Bump build-dependency on kdelibs5 to version 4.2.95.
+  * Update installed files.
+  * Add myself to uploaders.
+  * Add build dependency on kdebase-workspace-dev.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 26 Jun 2009 19:58:54 +0300
+
+kdebase (4:4.2.85-0ubuntu1) karmic; urgency=low
+
+  * New upstream release
+  * Remove merged/unnecessary patches
+    - kubuntu_09_trash_kcm_in_dolphin.diff
+    - kubuntu_11_svn954343_dolphin_prefix.diff
+  * Add the following patches
+    - kubuntu_13_fix_phonon_include.diff - fix FTBFS in phononwidget.cpp
+  * Updated build dep to include kdebase-workspace-dev req by folderview
+  * Updated various install files
+    - Removed from:
+      kdebase-data.install
+        usr/share/kde4/services/filetypes.desktop
+        usr/share/kde4/services/useragentstrings/firefox15oncurrent.desktop
+        usr/share/kde4/services/useragentstrings/mozoncurrent.desktop
+        usr/share/kde4/services/useragentstrings/mozoncurrent12.desktop
+        usr/share/kde4/services/useragentstrings/mozonwinxp.desktop
+        usr/share/kde4/services/useragentstrings/safari12.desktop
+      dolphin.install
+        usr/lib/kde4/kcm_dolphin.so
+        usr/lib/libdolphinprivate.so.4.2.0
+        usr/share/icons/hicolor/128x128/actions/preview.png
+        usr/share/icons/hicolor/16x16/actions/preview.png
+        usr/share/icons/hicolor/22x22/actions/preview.png
+        usr/share/icons/hicolor/32x32/actions/preview.png
+        usr/share/icons/hicolor/48x48/actions/preview.png
+        usr/share/icons/hicolor/64x64/actions/preview.png
+        usr/share/kde4/services/kcmdolphin.desktop
+      konqueror.install
+        usr/lib/libkonquerorprivate.so.4.2.0
+        usr/lib/kde4/konq_remoteencoding.so
+        usr/share/kde4/apps/dolphinpart/kpartplugins/kremoteencodingplugin.desktop
+        usr/share/kde4/apps/dolphinpart/kpartplugins/kremoteencodingplugin.rc
+      libkonqsidebarplugin4.install
+        usr/lib/libkonqsidebarplugin.so.4.2.0
+      libkonq5.install
+        usr/lib/libkonq.so.5.2.0
+      kdebase-bin.install
+        usr/bin/keditfiletype
+        usr/lib/kde4/kcm_filetypes.so
+    - Added to:
+      kdebase-data.install
+        usr/share/kde4/services/useragentstrings/android10.desktop
+        usr/share/kde4/services/useragentstrings/chrome10onwinnt51.desktop
+        usr/share/kde4/services/useragentstrings/firefox30oncurrent.desktop
+        usr/share/kde4/services/useragentstrings/ie70onwinnt51.desktop
+        usr/share/kde4/services/useragentstrings/op962oncurrent.desktop
+        usr/share/kde4/services/useragentstrings/safari30oniphone.desktop
+        usr/share/kde4/services/useragentstrings/safari32.desktop
+      dolphin.install
+        usr/lib/kde4/kcm_dolphingeneral.so
+        usr/lib/kde4/kcm_dolphinnavigation.so
+        usr/lib/kde4/kcm_dolphinservices.so
+        usr/lib/kde4/kcm_dolphinviewmodes.so
+        usr/lib/libdolphinprivate.so.4.3.0
+        usr/share/kde4/services/kcmdolphingeneral.desktop
+        usr/share/kde4/services/kcmdolphinnavigation.desktop
+        usr/share/kde4/services/kcmdolphinservices.desktop
+        usr/share/kde4/services/kcmdolphinviewmodes.desktop
+      konqueror.install
+        usr/lib/libkonquerorprivate.so.4.3.0
+      libkonqsidebarplugin4.install
+        usr/lib/libkonqsidebarplugin.so.4.3.0
+      libkonq5.install
+        usr/lib/libkonq.so.5.3.0
+        usr/share/kde4/servicetypes/konqdndpopupmenuplugin.desktop
+  * Updated not-installed file
+    - Added
+      ./usr/lib/libkonsoleprivate.so
+
+ -- Roderick B. Greening <roderick.greening@gmail.com>  Wed, 13 May 2009 12:21:39 -0230
+
+kdebase (4:4.2.4-1) unstable; urgency=low
+
+  * New upstream release:
+    - khtml fixes. (Closes: #529851)
+
+  +++ Changes by Josh Metzler:
+
+  * Add Breaks: gtk-qt-engine to konqueror-nsplugins since they are
+    incompatible. (Closes: #513881)
   * Add konsole as an alternative for x-terminal-emulator. (Closes: #528307)
 
   +++ Changes by Sune Vuorela:
@@ -312,6 +1123,22 @@ kdebase (4:4.2.4-1) unstable; urgency=lo
 
  -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 01 May 2009 18:35:24 +0200
 
+kdebase (4:4.2.2-1ubuntu1) karmic; urgency=low
+
+  * Merge with Debian, reamaining changes:
+    - Keep our -kde4 replaces/conflicts
+    - Do not re-add optional, unsatisfiable kdesktop dependency for libkonq5
+    - Add newline to the end of kwrite.lintian-overrides
+    - kubuntu_04_hide_kfind.diff, access though dolphin
+    - kubuntu_05_konsole_colour_scheme.diff, much easier on the eyes
+    - kubuntu_06_simple_aboutpage.diff, treat konqeror as a web browser
+    - kubuntu_09_trash_kcm_in_dolphin.diff, from trunk
+    - kubuntu_10_konq_scans_nsplugins_at_startup.diff, scan for new plugins
+    - kubuntu_11_svn954343_dolphin_prefix.diff, from trunk
+    - kubuntu_12_folderview_retry.diff, fixes folderview on live CD
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 05 May 2009 13:55:26 +0000
+
 kdebase (4:4.2.2-1) unstable; urgency=low
 
   * New upstream release:
@@ -411,364 +1238,5731 @@ kdebase (4:4.1.3-1) experimental; urgenc
   * New upstream release
     - bump b-d
 
- -- Sune Vuorela <debian@pusling.com>  Sat, 01 Nov 2008 14:21:14 +0100
+ -- Sune Vuorela <debian@pusling.com>  Sat, 01 Nov 2008 14:21:14 +0100
+
+kdebase (4:4.2.2-0ubuntu5) UNRELEASED; urgency=low
+
+  * Added patch kubuntu_10_konq_scans_nsplugins_at_startup.diff:
+    - Closes LP: #349728
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 17 Apr 2009 11:00:21 +0200
+
+kdebase (4:4.2.2-0ubuntu4) jaunty; urgency=low
+
+  [ Anthony Mercatante ]
+  * Added patch kubuntu_11_svn954343_dolphin_prefix.diff:
+    - Closes LP: #354768
+
+  [ Jonathan Riddell ]
+  * Add kubuntu_12_folderview_retry.diff to retry loading if it fails.
+    Closes LP: #362895 "on live CD folderview can show big large red X"
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu, 16 Apr 2009 14:08:17 +0200
+
+kdebase (4:4.2.2-0ubuntu3) jaunty; urgency=low
+
+  * In kubuntu_06_simple_aboutpage.diff set default search engine to Google
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 06 Apr 2009 16:40:50 +0100
+
+kdebase (4:4.2.2-0ubuntu2) jaunty; urgency=low
+
+  * Add konqueror.postinst and konqueror.prerm to add konqueror to
+    x-www-browser in update-alternatives. (LP: #353678)
+
+ -- Andreas Wenning <awen@awen.dk>  Fri, 03 Apr 2009 18:42:41 +0200
+
+kdebase (4:4.2.2-0ubuntu1) jaunty; urgency=low
+
+  [Jonathan Thomas]
+  * Add kubuntu_09_trash_kcm_in_dolphin.diff to put the Trash KCM inside
+    Dolphin's Configuration page. Can be removed in KDE 4.3.
+
+  [Steve Stalcup]
+  * New upstream release
+  * Bump KDE versions in debian/control
+  * Remove kubuntu_07_konsole_split_svn935623.diff
+  * Remove kubuntu_08_konsole_text_selection.diff
+
+ -- Steve Stalcup <vorian@ubuntu.com>  Thu, 26 Mar 2009 21:35:49 -0400
+
+kdebase (4:4.2.1-0ubuntu6) jaunty; urgency=low
+
+  [ Michal Zajac ]
+  * Add kubuntu_08_konsole_text_selection.diff
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Tue, 17 Mar 2009 19:32:18 -0400
+
+kdebase (4:4.2.1-0ubuntu5) jaunty; urgency=low
+
+  * Reupload since the previous fix wasn't in it for real...
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Sun, 08 Mar 2009 23:01:57 +0100
+
+kdebase (4:4.2.1-0ubuntu4) jaunty; urgency=low
+
+  * Fixed kubuntu_06_simple_aboutpage.diff:
+    - Also fixed the "name" QString for NULL, as David Faure suggested. 
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 06 Mar 2009 15:01:59 +0100
+
+kdebase (4:4.2.1-0ubuntu3) jaunty; urgency=low
+
+  * Fixed kubuntu_06_simple_aboutpage.diff:
+    - DefaultSearchEngine could be empty in some cases (no K-D-S...)
+      so set "google" as default is an empty value is returned.
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 06 Mar 2009 13:26:20 +0100
+
+kdebase (4:4.2.1-0ubuntu2) jaunty; urgency=low
+
+  * Added kubuntu_07_konsole_split_svn935623.diff:
+    - Closes KDE bug #171544
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 06 Mar 2009 12:31:29 +0100
+
+kdebase (4:4.2.1-0ubuntu1) jaunty; urgency=low
+
+  * New upstream release
+  * Update dolphin.install and konqueror.install (replace 4.2.0 w/ 4.2.*)
+  * Update build-deps (libplasma-dev, libphonon-dev and kdelibs5-dev)
+  * Update deps for kdebase-dev (kdepimlibs5-dev, libphonon-dev)
+  * Update deps for libkonq5-dev (kdelibs5-dev)
+
+ -- Roderick B. Greening <roderick.greening@gmail.com>  Fri, 27 Feb 2009 10:01:24 -0330
+
+kdebase (4:4.2.0-0ubuntu3) jaunty; urgency=low
+
+  * Add kubuntu_06_simple_aboutpage.diff, make Konqueror intro page
+    more web focused now Konq is focused on the web
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 18 Feb 2009 16:13:42 +0000
+
+kdebase (4:4.2.0-0ubuntu2) jaunty; urgency=low
+
+  * Add kubuntu_05_konsole_colour_scheme.diff to use Linux scheme by
+    default, must easier to view
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 02 Feb 2009 10:39:48 +0000
+
+kdebase (4:4.2.0-0ubuntu1) jaunty; urgency=low
+
+  * New upstream release
+  * Bump duild-deps accordingly
+  * updated *.install doc path from kde4 to kde
+
+ -- Roderick B. Greening <roderick.greening@gmail.com>  Thu, 22 Jan 2009 20:58:20 -0330
+
+kdebase (4:4.1.96-0ubuntu2) jaunty; urgency=low
+
+  * Rebuild against new libplasma-dev
+
+ -- Steve Stalcup <vorian@ubuntu.com>  Thu, 14 Jan 2009 09:49:20 -0500
+
+kdebase (4:4.1.96-0ubuntu1) jaunty; urgency=low
+
+  * New upstream release
+  * Updated various .install files:
+    + dolphin.install
+    + kappfinder.install
+    + kfind.install
+    + konqueror.install
+  * Bumped build-dep versions
+
+ -- Steve Stalcup <vorian@ubuntu.com>  Thu, 08 Jan 2009 09:49:20 -0500
+
+kdebase (4:4.1.85-0ubuntu1) jaunty; urgency=low
+
+  * Change Vcs-Browser to Launchpad and replace Vcs-Svn with Vcs-Bzr
+  * New upstream release
+  * Bump build-dep versions
+  * Update:
+    + konqueror.install
+    + kdebase-bin.install
+    + kdebase-data.install
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Wed, 03 Dec 2008 15:01:21 +0100
+
+kdebase (4:4.1.80-0ubuntu1) jaunty; urgency=low
+
+  [ Michael Casadevall ]
+  * New upstream release
+  * debian/control:
+    * Dropped kdepimlibs-dev as a build-dep
+    * Added kdelibs5-dev (>= 4.1.80) as a build-dep
+
+  [ Harald Sitter ]
+  * Bump phonon and libplasma-dev build-deps to 4.2.80/4.1.80
+  * quilt refresh
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Tue, 25 Nov 2008 15:55:53 +0100
+
+kdebase (4:4.1.73-0ubuntu1) jaunty; urgency=low
+
+  * New upstream alpha snapshot
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 17 Nov 2008 11:09:41 +0000
+
+kdebase (4:4.1.2-1ubuntu1) jaunty; urgency=low
+
+  * Merge with Debian, remaining changes:
+    - Use our custom kde4.mk
+    - Keep our -kde4 replaces/conflicts
+    - Do not re-add optional, unsatisfiable kdesktop dependency for libkonq5
+    - Add newline to the end of kwrite.lintian
+    - Keep kubuntu_04, 05, 06, 07, 900 patches, though we can remove all but 04 next 
+      upstream release
+  * Updated KUBUNTU-DEBIAN-DIFFERENCES
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Thu, 06 Nov 2008 13:10:32 -0500
+
+kdebase (4:4.1.2-1) experimental; urgency=low
+
+  * New upstream release.
+  * Update installed files.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Tue, 30 Sep 2008 12:20:04 +0200
+
+kdebase (4:4.1.2-0ubuntu4) intrepid; urgency=low
+
+  * Remove unsatisfiable kdesktop dependency from libkonq5. (LP: #283281)
+  * Fix a Dolphin crash on startup with upstream patch
+    kubuntu_07_fix_KDE_169103_dolphin_crash.diff. (LP: #277240)
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Tue, 14 Oct 2008 16:26:00 -0400
+
+kdebase (4:4.1.2-0ubuntu3) intrepid; urgency=low
+
+  * Fix the cut and copy context menu actions in Konqueror with upstream patch 
+    kubuntu_06_fix_cut_copy_context_menu.diff. (LP: #277122)
+    - Already fixed in 4.1.3, so patch can be dropped with the next new
+      upstream release
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Mon, 06 Oct 2008 21:17:01 -0400
+
+kdebase (4:4.1.2-0ubuntu2) intrepid; urgency=low
+
+  [ Harald Sitter ]
+  * quilt refresh
+  * Improve kfind's startup performance using patch borrowed from upstream
+    kubuntu_900_improve_kfind_performance.diff
+  * Add final new line to kwrite.lintian
+
+  [ Jonathan Riddell ]
+  * Add kubuntu_05_konsole_resize.diff stop konsole resizing, 
+    workaround http://bugs.kde.org/show_bug.cgi?id=172042
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Sat, 04 Oct 2008 03:23:09 +0200
+
+kdebase (4:4.1.2-0ubuntu1) intrepid; urgency=low
+
+  * New upstream release
+    - updated konqueror.install and konsole.install files
+
+ -- Steve Stalcup <vorian@ubuntu.com>  Thu, 25 Sep 2008 20:30:58 -0400
+
+kdebase (4:4.1.1-1) experimental; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Sune Vuorela:
+
+  * Change sections.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 31 Aug 2008 20:49:19 +0200
+
+kdebase (4:4.1.1-0ubuntu2) intrepid; urgency=low
+
+  * Rebuild against kdelibs 4:4.1.1+really4.1.1
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Tue, 02 Sep 2008 03:11:52 +0200
+
+kdebase (4:4.1.1-1) experimental; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Sune Vuorela: 
+  
+  * Change sections.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 31 Aug 2008 20:49:19 +0200
+
+kdebase (4:4.1.1-0ubuntu1) intrepid; urgency=low
+
+  * New upstream release
+  * Removed obsolete debian/cdbs dir
+
+ -- Steve Stalcup <vorian@ubuntu.com>  Thu, 28 Aug 2008 19:32:12 -0400
+
+kdebase (4:4.1.0-1) experimental; urgency=low
+
+  * New upstream release.
+  * Update build depends and depends to >=4.1.0.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Sun, 27 Jul 2008 14:25:51 +0200
+
+kdebase (4:4.1.0-0ubuntu2) intrepid; urgency=low
+
+  * switch to kde4.mk from cdbs
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 01 Aug 2008 15:29:37 +0000
+
+kdebase (4:4.1.0-1) experimental; urgency=low
+
+  * New upstream release.
+  * Update build depends and depends to >=4.1.0.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Sun, 27 Jul 2008 14:25:51 +0200
+
+kdebase (4:4.1.0-0ubuntu1) intrepid; urgency=low
+
+  * New upstream release, 4.1 final release
+    - updated konqueror.install
+    - bumped build-deps on kdepimlibs5-dev to (>= 4:4.1.0)
+
+ -- Steve Stalcup <vorian@ubuntu.com>  Wed, 23 Jul 2008 20:23:58 -0400
+
+kdebase (4:4.0.98-1) experimental; urgency=low
+
+  * New upstream release, Release Candidate 1.
+
+  +++ Changes by Xavier Vello:
+
+  * konqueror now suggests konq-plugins >=4:4.1~.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Remove patch 97_fix_target_link_libraries.
+  * Add Conflicts with kcontrol to kdebase-bin. Thanks Peter!
+    (Closes: #483658)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 14 Jul 2008 18:50:01 +0200
+
+kdebase (4:4.0.98-0ubuntu4) intrepid; urgency=low
+
+  * Add kfind as recommends for dolphin (LP: #212570) 
+
+ -- Jonathan Thomas (The man) <echidnaman@gmail.com>  Thu, 17 Jul 2008 13:05:47 -0400
+
+kdebase (4:4.0.98-0ubuntu3) intrepid; urgency=low
+
+  * Removed filemanagement konqueror profile from konqueror.install:
+    - usr/share/kde4/apps/konqueror/profiles/filemanagement
+    - usr/share/kde4/apps/konqueror/konq-filemanagement.rc 
+  * Added KUBUNTU-DEBIAN-DIFFERENCES file for easy package sync with
+    Debian
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu, 17 Jul 2008 14:34:30 +0200
+
+kdebase (4:4.0.98-0ubuntu2) intrepid; urgency=low
+
+  * Removed useless konqueror profiles from konqueror.install:
+    - usr/share/kde4/apps/konqueror/profiles/kde_devel
+    - usr/share/kde4/apps/konqueror/profiles/midnightcommander
+    - usr/share/kde4/apps/konqueror/profiles/tabbedbrowsing
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Wed, 16 Jul 2008 11:55:18 +0200
+
+kdebase (4:4.0.98-1) experimental; urgency=low
+
+  * New upstream release, Release Candidate 1.
+  
+  +++ Changes by Xavier Vello:
+
+  * konqueror now suggests konq-plugins >=4:4.1~.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+  
+  * Remove patch 97_fix_target_link_libraries.
+  * Add Conflicts with kcontrol to kdebase-bin. Thanks Peter! 
+    (Closes: #483658)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 14 Jul 2008 18:50:01 +0200
+
+kdebase (4:4.0.98-0ubuntu1) intrepid; urgency=low
+
+  * New upstream release candidate release
+  * Bump Standards-Version to 3.8.0
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Sat, 12 Jul 2008 00:38:24 +0200
+
+kdebase (4:4.0.84-1) experimental; urgency=low
+
+  * New upstream snapshot
+  * Nspluginviewer needs glib
+
+ -- Sune Vuorela <debian@pusling.com>  Sat, 28 Jun 2008 19:21:30 +0000
+
+kdebase (4:4.0.83-0ubuntu2) intrepid; urgency=low
+
+  * Make kdebase-data depend on kdebase-bin, because it pulls in desktop files
+    which are used by kcmshell4/systemsettings and causes 'shared library not
+    found' errors without the -bin package.
+  * Bump Standards-Versin from 3.7.3 to 3.8.0
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Sat, 28 Jun 2008 18:23:34 +0200
+
+kdebase (4:4.0.83-0ubuntu1) intrepid; urgency=low
+
+  * New upstream beta release
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 19 Jun 2008 11:56:01 +0000
+
+kdebase (4:4.0.82+svn819867-1) experimental; urgency=low
+
+  * New upstream development snapshot.
+
+  +++ Changes by Modestas Vainius:
+
+  * Bump kdepimlibs5-dev to 4.0.82, libphonon-dev to 4.2~ (Closes: #483116).
+  * Build depend on libplasma-dev >=4.0.82 (folderview applet).
+  * Add a new binary kdebase-plasma for a Folder View applet. Add appropriate
+    replaces with libplasma2.
+  * Update install files.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Remove 01_r811027_konqcrash_on_rightclick.diff, merged upstream.
+  * Add small update in 97_fix_target_link_libraries.diff.
+  * Update build dependencies:
+    - Bump kdepimlibs5-dev to (>= 4:4.0.81).
+    - Change libphonon-dev to new versioning (>= 4:4.2~).
+  * Update installed files.
+
+  +++ Changes by Fathi Boudra:
+
+  * Add libxext-dev build dependency.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 15 Jun 2008 15:22:53 +0200
+
+kdebase (4:4.0.80-1ubuntu3) intrepid; urgency=low
+
+  * Fix config install targest
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 09 Jun 2008 16:07:19 +0100
+
+kdebase (4:4.0.80-1ubuntu2) intrepid; urgency=low
+
+  * Update kde.mk, use /usr/share/kde4/config for settings, mark
+    packages as Kubuntu not Debian
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 09 Jun 2008 15:10:36 +0100
+
+kdebase (4:4.0.80-1ubuntu1) intrepid; urgency=low
+
+  * Merge with Debian
+   - remove 97_fix_target_link_libraries.diff
+   - Add replaces/conflicts on -kde4 packages
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 27 May 2008 12:09:48 +0100
+
+kdebase (4:4.0.80-1) experimental; urgency=low
+
+  * New upstream development milestone (KDE 4.1 Beta1).
+
+  +++ Changes by Modestas Vainius:
+
+  * Resync 97_ patch.
+  * Update install files.
+  * Backport 01_r811027_konqcrash_on_rightclick.diff patch from upstream svn
+    which fixes a konqueror crash on each mouse right click.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 22 May 2008 11:55:10 +0300
+
+kdebase (4:4.0.74-1) experimental; urgency=low
+
+  * New upstream development snapshot.
+  * Corrections to *.install files:
+    - libkonq5.install: 1 file(s) removed;
+    - libkonq5-dev.install: 1 file(s) removed;
+
+  +++ Changes by Modestas Vainius:
+
+  * Resync 97_ patch.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 10 May 2008 21:06:59 +0300
+
+kdebase (4:4.0.72-1) experimental; urgency=low
+
+  * New upstream development snapshot.
+
+   +++ Changes by Modestas Vainius:
+
+   * Add libstreamanalyzer-dev, libxrender-dev, zlib1g-dev, libglu1-mesa-dev,
+     libpci-dev, libxt-dev, pkg-config (for getting strigi version) to
+     build depends.
+   * Add 97_fix_target_link_libraries.diff.
+   * Update install files, sort them.
+   * Remove AUTHORS from debian/docs.
+   * Do not install README to each package. It's pointless. Install it only
+     to kdebase.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 01 May 2008 08:11:05 +0200
+
+kdebase (4:4.0.68+svn794641-1) experimental; urgency=low
+
+  * New upstream snapshot.
+  * Add versioned build depend on qimageblitz >= 1:0.0.4-2.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Fri, 04 Apr 2008 16:37:13 +0200
+
+kdebase (4:4.0.66+svn791114-1) experimental; urgency=low
+
+  * First KDE 4.1 snapshot packaged.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Update installed files.
+  * Add build depend on libraw1394-dev.
+
+  +++ Changes by Armin Berres
+
+  * Add conflict against kcontrol to kinfocenter (Closes: #465702).
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 28 Mar 2008 16:22:10 +0100
+
+kdebase (4:4.0.2-1) experimental; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Matthew Rosewarne:
+
+  * Move dolphin, kfind, and kinfocenter to Section: utils.
+  * Move kdepasswd to Section: admin.
+  * Move kwrite to Section: editors.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Update installed files.
+  * Bump build-depends to >= 4.0.2.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 04 Mar 2008 19:35:59 +0100
+
+kdebase (4:4.0.1-1) experimental; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Armin Berres:
+
+  * Update installed files.
+  * Bump build-depends to >= 4.0.1-1.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Bump compat/debhelper 6.
+
+  +++ Changes by Fathi Boudra:
+
+  * Add Vcs-Browser and Vcs-Svn fields.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 04 Feb 2008 14:35:21 +0100
+
+kdebase (4:4.0.0-2) experimental; urgency=low
+
+  +++ Changes by Armin Berres:
+
+  * KWrite ships files which are contained in kate from KDE 3. Add
+    conflict and replaces.
+
+  +++ Changes by Matthew Rosewarne:
+
+  * Tweak package descriptions.
+  * Change KDE 4 dependency version to 4:4.0.0-1.
+  * Remove unnecessary Replaces.
+  * Make dependencies binNMU-friendly.
+  * More specific dependencies for kdebase-dev.
+  * Move libkonq.so from kdebase-dev to libkonq5-dev.
+  * Use source:Version for kdebase metapackage.
+  * Remove Recommends: kdm from kdebase.
+  * Add Recommends: konqueror-nsplugins to konqueror.
+  * Remove Recommends: xine-ui from kappfinder.
+  * Change kdebase-dbg Depends to kdebase-runtime-dbg.
+  * Add Suggests: kdebase to kdebase-dbg.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Add lintian overrides for dolphin, kinfocenter, konqueror, konsole and
+    kwrite.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 26 Jan 2008 05:46:56 +0100
+
+kdebase (4:4.0.0-1) experimental; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Bump build-depends to >= 4.0.0-1.
+  * Update dolphin.install.
+  * Update years in copyright.
+
+  +++ Changes by Matthew Rosewarne:
+
+  * Add Homepage: to control.
+  * Tweak package descriptions.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 10 Jan 2008 09:19:46 +0100
+
+kdebase-kde4 (4:4.0.3-0ubuntu2) hardy; urgency=low
+
+  * Add kfind-kde4 as dependency for dolphin-kde4 (LP: #212570)
+  * Add kubuntu_04_hide_kfind.diff to hide kfind from the menu
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Sat, 12 Apr 2008 00:25:52 +0200
+
+kdebase-kde4 (4:4.0.3-0ubuntu1) hardy; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 28 Mar 2008 11:59:56 +0000
+
+kdebase-kde4 (4:4.0.2-0ubuntu6) hardy; urgency=low
+
+  * Remove konqueror's dependency on -bin and -data, it now includes, like in
+    the KDE 3 package all necessary files.
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Tue, 25 Mar 2008 23:18:19 +0100
+
+kdebase-kde4 (4:4.0.2-0ubuntu5) hardy; urgency=low
+
+  * debian/control:
+    + Don't exceed 80 characters per line, where possible
+    + Add kdebase-bin-kde4 as dependency for konqueror-kde4 (LP: #196520)
+    + Fix not-binnmuable-any-depends-all for kdebase-dev-kde4 and -dbg-kde4 
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Sun, 23 Mar 2008 02:43:57 +0100
+
+kdebase-kde4 (4:4.0.2-0ubuntu4) hardy; urgency=low
+
+  * Ensure patches are unapplied before uploading
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 14 Mar 2008 18:54:57 +0000
+
+kdebase-kde4 (4:4.0.2-0ubuntu3) hardy; urgency=low
+
+  * Add kubuntu_03_hide_home.diff, hide Konqueror Home from apps menu,
+    we have a Computer menu now
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 14 Mar 2008 17:47:38 +0000
+
+kdebase-kde4 (4:4.0.2-0ubuntu2) hardy; urgency=low
+
+  * Add kubuntu_02_hide_konquerorsu.diff, hide konquerorsu
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 14 Mar 2008 17:21:42 +0000
+
+kdebase-kde4 (4:4.0.2-0ubuntu1) hardy; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 03 Mar 2008 11:37:30 +0000
+
+kdebase-kde4 (4:4.0.1-0ubuntu2) hardy; urgency=low
+
+  * Prevent Konqueror from exposing an issue caused by absolute paths
+    in our desktop files (LP: #188498)
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Wed, 06 Feb 2008 00:25:17 +0100
+
+kdebase-kde4 (4:4.0.1-0ubuntu1) hardy; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 31 Jan 2008 17:38:27 +0000
+
+kdebase-kde4 (4:4.0.0-0ubuntu5) hardy; urgency=low
+
+  * set XDG_APPS_INSTALL_DIR=/usr/share/applications/kde4/ in kde.mk
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 29 Jan 2008 13:30:50 +0000
+
+kdebase-kde4 (4:4.0.0-0ubuntu4) hardy; urgency=low
+
+  * Changed Maintainer tag to Kubuntu Developers
+  * Tried to not exceed 80 characters, where possible
+  * Changed descriptions to better reflect, that these are KDE 4 packages
+  * Removed kdesktop as alternative dependency to libkonq5-templates in libkonq5
+  * Fix installation of libkonq5-templates files
+  * Fix desktop file creation to attach "KDE 4" to all Name entries
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Sun, 13 Jan 2008 17:38:08 +0100
+
+kdebase-kde4 (4:4.0.0-0ubuntu3) hardy; urgency=low
+
+  * Fix icon paths in desktop files 
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Sat, 12 Jan 2008 19:29:16 +0100
+
+kdebase-kde4 (4:4.0.0-0ubuntu2) hardy; urgency=low
+
+  * Fixed dependency: -dbg depends on kdebase-kde4 not kdebase
+
+ -- Harald Sitter <apachelogger@ubuntu.com>  Sat, 12 Jan 2008 16:27:09 +0100
+
+kdebase-kde4 (4:4.0.0-0ubuntu1) hardy; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sun, 06 Jan 2008 18:18:35 +0000
+
+kdebase-kde4 (4:3.98.0~svn755919-1ubuntu1) hardy; urgency=low
+
+  * Merge with Debian, using our kde.mk, paths, extra rules
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 03 Jan 2008 15:45:57 +0000
+
+kdebase (4:3.98.0~svn755919-1) experimental; urgency=low
+
+  * New svn snapshot release to revision 755919.
+
+  +++ Changes by Armin Berres:
+
+  * Update installed files.
+  * Raise build-dep to >= 4:3.98.0~svn755919-1.
+
+  +++ Changes by Fathi Boudra:
+
+  * Add libphonon-dev build dependency.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 02 Jan 2008 12:24:03 +0100
+
+kdebase (4:3.98.0~svn753247-1) experimental; urgency=low
+
+  * Svn snapshot of revision 753247.
+
+  +++ Changes by Armin Berres:
+
+  * Split some files from libkonq5 out into libkonq5-templates which conflict
+    with KDE 3's kdesktop.
+  * Remove extra LDFLAGS. Included via CDBS now.
+  * Make kdebase-bin depend on the source and not the binary version of
+    kdebase-data and add a conflict with kdesktop. Package doesn't exist
+    anymore and should be removed if new kdebase gets installed.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Bump build-dep to >= 4:3.98.0~svn753247-1.
+  * Update *.install files.
+  * Add kinfocenter, it has been moved from -runtime.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Thu, 27 Dec 2007 04:37:59 +0100
+
+kdebase-kde4 (4:3.97.0-1ubuntu6) hardy; urgency=low
+
+  * Fix cdbs directory - removed utils.mk 
+
+ -- Richard A. Johnson <nixternal@kubuntu.org>  Mon, 31 Dec 2007 01:22:54 -0600
+
+kdebase-kde4 (4:3.97.0-1ubuntu5) hardy; urgency=low
+
+  * Merge from Debian
+    - debian/cdbs the only thing merged in at this time
+    - remove CMAKE_SKIP_RPATH from cdbs/kde.mk
+
+  +++ Added by Terence Simpson
+
+  * Really pass arguements to executibles from wrapper scripts
+  * Add PATH to wrapper scripts
+
+ -- Richard A. Johnson <nixternal@kubuntu.org>  Sun, 30 Dec 2007 23:19:00 -0600
+
+kdebase-kde4 (4:3.97.0-1ubuntu4) hardy; urgency=low
+
+  * Fix Exec= entry in .desktop files
+  * Pass arguements to executibles from wrapper scripts
+
+ -- Terence Simpson <stdin@stdin.me.uk>  Wed, 12 Dec 2007 16:39:43 +0000
+
+kdebase-kde4 (4:3.97.0-1ubuntu3) hardy; urgency=low
+
+  * Work around in debian/rules for arch-only builds
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 10 Dec 2007 14:27:45 +0000
+
+kdebase-kde4 (4:3.97.0-1ubuntu2) hardy; urgency=low
+
+  * Add epoch to kdepimlibs build-dep
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 07 Dec 2007 11:31:18 +0000
+
+kdebase-kde4 (4:3.97.0-1ubuntu1) hardy; urgency=low
+
+  * New upstream release
+  * Merge with Debian
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 07 Dec 2007 00:42:32 +0000
+
+kdebase (4:3.97.0-1) experimental; urgency=low
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * New upstream release:
+    - Build depend on kdepimlibs5-dev >= 4:3.97.0.
+    - Update *.install files.
+  * Update Standards-Version to 3.7.3.
+  * Remove README about beta packages, they are supposed to be stable now.
+  * Remove empty packages knetattach and kdebase-kio-plugins.
+  * Add export LDFLAGS+="-Wl,--as-needed" in rules to make dpkg-shlibdeps
+    happier.
+
+  +++ Changes by Armin Berres:
+
+  * Remove dependency of kdebase-data on kde-icons-oxygen.
+  * Depend on epoched version of kdepimlibs5-dev.
+  * Correct libkonq5-dev's dependency on kdelibs5-dev.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 11 Dec 2007 21:32:04 +0100
+
+kdebase-kde4 (4:3.96.0-1ubuntu1) hardy; urgency=low
+
+  * Sync with Debian
+  * Use Kubuntu kde.mk
+  * Rename packages to be -kde4
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 19 Nov 2007 14:00:54 +0000
+
+kdebase (4:3.96.0-1) experimental; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Fathi Boudra:
+
+  * Bump kdepimlibs5-dev build dependency version.
+  * Update installed files.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 14 Nov 2007 20:37:18 +0100
+
+kdebase (4:3.95.2-1) experimental; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Fathi Boudra:
+
+  * Bump kdepimlibs5-dev build dependency version.
+  * Update installed files.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 09 Nov 2007 01:17:02 +0100
+
+kdebase (4:3.95.0-1) experimental; urgency=low
+
+  * New upstream release: KDE4 beta 4.
+
+  +++ Changes by Fathi Boudra:
+
+  * Add kdebase-data build dependency to kdebase-bin.
+  * Add xine-ui recommends to kappfinder. See xine call in xine.desktop.
+
+  +++ Changes by Armin Berres:
+
+  * Remove no more needed build dependency on libxine-dev.
+  * Add build dependency on libxkbfile-dev.
+  * Let kdebase-dev strictly depend on the same binary version of kdebase.
+  * Remove the conflict of kde-icons-oxygen with kdebase-data. It isn't
+    needed and prevents co-installability with KDE3.
+  * Update *.install files.
+  * Remove drkonqi, kde-icons-oxygen and khelpcenter which are shipped with
+    kdebase-runtime now.
+  * Remove kdeprint package which has been removed upstream.
+  * Remove runtime files from copyright.
+  * Make kdebase-data arch-all.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 28 Oct 2007 11:51:21 +0000
+
+kdebase (4:3.94.0-2) experimental; urgency=low
+
+  +++ Changes by Fathi Boudra:
+
+  * Pull SVN branch to r726783.
+
+  +++ Changes by Armin Berres:
+
+  * Add debug package.
+  * Split the Oxygen icons into a separate package kde-icons-oxygen. This way
+    KDE4 applications can be used when running KDE3.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Update *.install files.
+  * Upload! :-)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 18 Oct 2007 23:32:51 +0200
+
+kdebase (4:3.94.0-1) experimental; urgency=low
+
+  * KDE4 beta3.
+
+  +++ Changes by Armin Berres:
+
+  * Remove listed directories in kdebase-data.install to avoid accidentally
+    installed files - removes conflicting file between kdebase-data and
+    kdeprint.
+  * Update *.install files.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 17 Oct 2007 23:37:18 +0200
+
+kdebase (4:3.93.0-1) experimental; urgency=low
+
+  * KDE4 beta2, first upload to the Debian archive.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Sat, 01 Sep 2007 16:17:55 +0200
+
+kdebase (4:3.92.0-1) experimental; urgency=low
+
+  * KDE4 beta 1, first upload to the Debian archive.
+  * Update *.install files.
+  * Added patch 01_kdehome_kde4.diff to set kdehome directory to .kde4.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Wed, 15 Aug 2007 01:57:17 +0200
+
+kdebase (4:3.91.0-1) alioth; urgency=low
+
+  * New alpha release.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Thu, 05 Jul 2007 19:11:19 +0200
+
+kdebase (4:3.90.1-1) alioth; urgency=low
+
+  * Initial release of KDE4.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Fri, 11 May 2007 16:23:33 +0100
+
+kdebase (4:3.5.9-0ubuntu1) hardy; urgency=low
+
+  [ Jonathan Riddell ]
+  * New upstream release
+
+  [ Terence Simpson ]
+  * Fix config script for kdm to detect kdm-kde4
+	
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 14 Feb 2008 12:27:06 +0000
+
+kdebase (4:3.5.8-2ubuntu21) hardy; urgency=low
+
+  * Add kubuntu_9921_kdm_bulletproof_x.diff, adds bulletproof X
+    feature to KDM.
+
+ -- Eugene Tretyak <etretyak@gmail.com>  Thu, 14 Feb 2008 10:40:12 +0000
+
+kdebase (4:3.5.8-2ubuntu20) hardy; urgency=low
+
+  * debian/ubuntu.xmodmap:
+    Add Brightness Up & Down keycode -> xkeysym mapping
+
+ -- Luka Renko <lure@ubuntu.com>  Sun, 10 Feb 2008 20:25:47 +0100
+
+kdebase (4:3.5.8-2ubuntu19) hardy; urgency=low
+
+  * kdebase-kio-plugins replaces old kdebase-data, closes LP: #189963
+  * Remove 70_kdm_consolekit.diff replace with kubuntu_70_kdm_consolekit.diff,
+    updated version from http://bugs.kde.org/show_bug.cgi?id=147790
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 08 Feb 2008 12:32:50 +0000
+
+kdebase (4:3.5.8-2ubuntu18)  hardy; urgency=low
+
+  * Edited debian/patches/70_kdm_consolekit.diff to fix a crash
+    when attempting to connect to local kdm via XDMCP (Closes LP: #178242)
+    Thanks to Paul Brook for debbuging this, and to Zoogie for reporting this
+ 
+ -- Maxim Levitsky <maximlevitsky@gmail.com>  Tue, 06 Feb 2008 00:39:44 +0000
+
+kdebase (4:3.5.8-2ubuntu17) hardy; urgency=low
+
+  * Patch from Jan Klötzke to update LUKS support, Closes LP: #186841
+   - Update kubuntu_9913_kiomedialuks.diff and icons (debian/img/medialuks)
+   - Package new icons in kdebase-kio-plugins (kdebase-kio-plugins.install updated)
+   - Package "media_decrypt.desktop" in konqueror (konqueror.install updated)
+   - "debian/rules" updated accordingly
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 06 Feb 2008 15:25:59 +0000
+
+kdebase (4:3.5.8-2ubuntu17) hardy; urgency=low
+
+  * Added kubuntu_9920_startkde_dash_stupidness.diff:
+    - For some stupid reasons, env scripts are not parsed correctly
+      due dash. Hard to believe, but this patch fixes the issue...
+    - Closes LP: #189144
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Wed, 06 Feb 2008 11:52:05 +0100
+
+kdebase (4:3.5.8-2ubuntu16) hardy; urgency=low
+
+  * Move kde-applications-merged/kde-essential.menu to
+    applications-merged/, apparantly the prefix doesn't get used for merge
+    directories
+  * Make kdesktop depend on xdg-user-dirs
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 28 Jan 2008 18:29:54 +0000
+
+kdebase (4:3.5.8-2ubuntu15) hardy; urgency=low
+
+  * Update kubuntu_9917_flash_xembed.diff:
+    - Fix from KDE svn
+    - Partially fixes flash 9 breaking in konqueror. May not
+      always work...
+
+ -- Anthony Mercatante <tonio@kubuntu.org>  Tue, 22 Jan 2008 13:21:45 +0100
+
+kdebase (4:3.5.8-2ubuntu14) hardy; urgency=low
+
+  * Removed trash.desktop from .kdebase-kio-plugins.install:
+
+ -- Anthony Mercatante <tonio@kubuntu.org>  Tue, 08 Jan 2008 09:53:46 +0100
+
+kdebase (4:3.5.8-2ubuntu13) hardy; urgency=low
+
+  * Added kubuntu_9919_kdm_preferuser.diff, uses the kubuntu-default-
+    settings's settings for facesource if any
+
+ -- Anthony Mercatante <tonio@kubuntu.org>  Fri, 04 Jan 2008 15:50:02 +0100
+
+kdebase (4:3.5.8-2ubuntu12) hardy; urgency=low
+
+  * Really fix kubuntu_9918_kdm_systemlocale.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 04 Jan 2008 11:11:38 +0000
+
+kdebase (4:3.5.8-2ubuntu11) hardy; urgency=low
+
+  * Previous patch was added twice, causing the build to fail.
+    My fault.
+
+ -- Anthony Mercatante <tonio@kubuntu.org>  Thu, 03 Jan 2008 16:17:25 +0100
+
+kdebase (4:3.5.8-2ubuntu10) hardy; urgency=low
+
+  * Added kubuntu_9918_kdm_systemlocale.diff:
+    - KDM uses the system locale
+
+ -- Anthony Mercatante <tonio@kubuntu.org>  Wed, 02 Jan 2008 12:56:51 +0100
+
+kdebase (4:3.5.8-2ubuntu9) hardy; urgency=low
+
+  * Edit kubuntu_9915_userdiskmount.diff
+  Fixes for NTFS user hard disk mounting
+  Closes LP: #178351
+
+ -- Eugene Tretyak <etretyak@gmail.com>  Sun, 23 Dec 2007 22:00:03 +0200
+
+kdebase (4:3.5.8-2ubuntu8) hardy; urgency=low
+
+  * debian/patches/kubuntu_95_kurl_not-so-pretty.diff:
+    - removed since is a patch for kdelibs (LP: #178233)
+  * debian/control, debian/control.in:
+    - bumped Standars-Version to 3.7.3
+
+ -- Mario Bonino <mariobonino@ubuntu-it.org>  Sun, 23 Dec 2007 11:25:53 +0100
+
+kdebase (4:3.5.8-2ubuntu7) hardy; urgency=low
+
+  * Add kubuntu_9917_flash_xembed.diff from KDE SVN, adds support
+    for latest Adobe Flash plugin with xembed.  Needs testing.
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 20 Dec 2007 22:11:44 +0000
+
+kdebase (4:3.5.8-2ubuntu6) hardy; urgency=low
+
+  * Add kubuntu_9915_userdiskmount.diff from Eugene Tretyak
+    Adds user hard disk mounting
+    Closes LP: #177036
+  * Add kubuntu_9916_konsole_mc_shell.diff from Daniel Hahler
+    Closes LP: #93063
+	
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 19 Dec 2007 14:03:58 +0000
+
+kdebase (4:3.5.8-2ubuntu5) hardy; urgency=low
+
+  * Add kubuntu_9914_kdm_user_image_check.diff from upstream
+    fixes potential KDM local DoS if users set an invalid image
+    Closes LP: #176347
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 14 Dec 2007 12:24:17 +0000
+
+kdebase (4:3.5.8-2ubuntu4) hardy; urgency=low
+
+  * Rebuild for libopenexr transition
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 11 Dec 2007 15:12:48 +0000
+
+kdebase (4:3.5.8-2ubuntu3) hardy; urgency=low
+
+  * Created binary-install/kdebase-kio-plugins to install new desktop files for
+    LUKS support.
+
+ -- Jonathan Patrick Davies <jpatrick@kubuntu.org>  Fri, 30 Nov 2007 19:06:10 +0100
+
+kdebase (4:3.5.8-2ubuntu2) hardy; urgency=low
+
+  * Fix version of kdebase-bin-kde3 Replaces: kdebase-bin 
+    Closes LP: #173053
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 30 Nov 2007 14:39:31 +0000
+
+kdebase (4:3.5.8-2ubuntu1) hardy; urgency=low
+
+  [ Jonathan Riddell ]
+  * Merge with Debian for consolekit patch, closes LP: #172281
+
+  [ Jonathan Patrick Davies ]
+  * Dropped kubuntu_9912_enable_crypto.diff replaced by below.
+  * Added kubuntu_9913_kiomedialuks.diff, adds support for LUKS directly into
+    media KIO, thanks to Jan Klötzke. (LP: #128863)
+  * Added icons for LUKS devices (debian/img/medialuks/) and added rules to make
+    and remove them in debian/rules.
+  * Added dependency of cryptsetup to kdebase-kio-plugins.
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 29 Nov 2007 15:23:12 +0000
+
+kdebase (4:3.5.8.dfsg.1-2) unstable; urgency=low
+
+  +++ Changes by Fathi Boudra:
+
+  * Remove /usr/bin/X11 from KDM's default session path. (Closes: 441392)
+  * Add support for ConsoleKit. Thanks to Michael Biebl, William Jon McCann and
+    Kevin Kofler. (Closes: #450603)
+
+  +++ Changes by Armin Berres:
+
+  * Split off kdebase-bin-kde3 which contains executables which can be provided by
+    KDE3 or KDE4.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Add dependence of konqueror-nsplugins on konqueror. (Closes: #446998)
+  * Add debconf template translations into fi by Esko Arajärvi (Closes: #447055)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 14 Nov 2007 22:59:58 +0100
+
+kdebase (4:3.5.8-1ubuntu3) hardy; urgency=low
+
+  * remove kdebase dependency on pmount
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 27 Nov 2007 09:23:39 +0000
+
+kdebase (4:3.5.8-1ubuntu2) hardy; urgency=low
+
+  * Fix fail to build caused by debian/patches/kubuntu_9912_enable_crypto.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 23 Nov 2007 18:08:36 +0000
+
+kdebase (4:3.5.8-1ubuntu1) hardy; urgency=low
+
+  * Merge with Debian, remaining changes in debian/KUBUNTU-DEBIAN-CHANGES
+  * Add kubuntu_9911_xdg_user_dirs_dirpath.diff from Mandriva, adds support for XDG Home Dirs
+  * Add kubuntu_9912_enable_crypto.diff, adds support for LUKS encrypted disks using kryptomedia
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 14 Nov 2007 11:43:38 +0000
+
+kdebase (4:3.5.8.dfsg.1-1) unstable; urgency=low
+
+  * New upstream version.
+
+  +++ Changes by Sune Vuorela:
+
+  * Adapt patch 38_furry_frosted_animals - stuff have been changed a bit.
+  * Drop patches - applied or worked around upstream:
+    -  24_knotify_arts.diff
+    -  41_nspluginviewer_64bit_fix.diff
+    -  50_several-CVE-konqueror.diff
+    -  51_CVE-2007-4569-kdm-autologin.diff
+    -  60_new-debshortcut.diff
+  * Redo buildprep.
+  * Bump build-dependencies and stuff to 3.5.8.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 09 Oct 2007 22:12:27 +0200
+
+kdebase (4:3.5.7.dfsg.1-1) unstable; urgency=low
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Repackage to remove the Energy Star logo and icons. It is not clear if
+    this use is permitted under EPA's trademark guidelines. See prune-nonfree 
+    for a list of the removed files.  (Closes: #441269)
+  * Add set of icons to replace the removed *-app-energy_star.png ones. Icons
+    made by Sune Vuorela.
+  * Update deb shortcut. Thanks to Raúl Sánchez Siles. (Closes: #440571) 
+  * Re-add kcmopengl.png icon (free icon has been replaced by upstream)
+
+  +++ Changes by Sune Vuorela:
+  
+  * Add smbclient to suggests of kdeprint to show that it is needed to make
+    smb printers work. Also adapt the description. (Closes: #445182)
+  * Lower gdb recommends to a suggests now that recommends get installed by
+    default. (Closes: 442432)
+  * Stop recommending hotplug and don't install hotplug configuration files.
+    Hotplug has been removed from debian and adapt descriptions and
+    documentation. (Closes: 436503)
+  * Fix maxresults in khelpcenter search. Thanks to Yair K. (Closes: 436436)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 04 Oct 2007 11:41:14 +0200
+
+kdebase (4:3.5.7-4) unstable; urgency=low
+
+  * Add patch to fix unauthorized login problem in kdm.
+    CVE-2007-4569.
+
+ -- Sune Vuorela <debian@pusling.com>  Wed, 19 Sep 2007 20:30:01 +0200
+
+kdebase (4:3.5.7-3) unstable; urgency=low
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Update section in Debian menu files.
+  * Add patch 50_several-CVE-konqueror.diff to make Konqueror address
+    bar more robust against addressbar spoofing. (Closes: #433072)
+    Related CVEs: CVE-2007-4224, CVE-2007-4225, CVE-2007-3820.
+
+  +++ Changes by Fathi Boudra:
+
+  * Add xserver-xorg Recommends to kdm. (Closes: #436573)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 27 Jul 2007 16:29:18 +0200
+
+kdebase (4:3.5.7-2) unstable; urgency=low
+
+  +++ Changes by Sune Vuorela:
+
+  * Ignore gecko also in wm class list in klipper. Thanks Sean.
+    (Closes: #428026)
+  * Add support or back references in klipper. Thanks to Sean Finney.
+    (Closes: #427843)
+  * Updated nb debconf translation. (Closes: #417942)
+  * Fix typo in startkde manpage. Thanks A. Costa. (Closes: #432062)
+  * Fix typo in kdmrc. Thanks Greg. (Closes: #422142)
+  * Updated vi debconf translation. Thanks Clytie Siddall (Closes: #426820)
+  * Updated pt_BR debconf translation. Thanks Eder L. Marques. 
+    (Closes: #422285)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 07 Jul 2007 22:18:23 +0200
+
+kdebase (4:3.5.8-0ubuntu2) gutsy; urgency=low
+
+  * Added kubuntu_9910_fix_kdeeject.diff, fixes bug ejecting a USB key
+    when 2 keys are pluged in, due to kio-umountwrapper we use to
+    replace kde standard one
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon, 15 Oct 2007 12:11:23 +0200
+
+kdebase (4:3.5.8-0ubuntu1) gutsy; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Riddell <jr@jriddell.org>  Tue, 09 Oct 2007 10:00:33 +0100
+
+kdebase (4:3.5.7-1ubuntu28) gutsy; urgency=low
+
+  * Add kubuntu_9908_nodisplay_opengl.diff to hide the kinfocentre
+    openGL module, it has a habit of freezing systems dead
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 04 Oct 2007 22:09:31 +0100
+
+kdebase (4:3.5.7-1ubuntu27) gutsy; urgency=low
+
+  * Add kubuntu_9907_remove_ksplash_cache.diff, removes ksplash cache when
+    out of date
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 04 Oct 2007 15:40:39 +0100
+
+kdebase (4:3.5.7-1ubuntu26) gutsy; urgency=low
+
+  * SECURITY UPDATE: addressbar spoofing possible via trailing spaces or
+    timer manipulation.
+  * Add kubuntu_9906_addressbar_spoofing.diff: upstream fixes.
+  * References
+    CVE-2007-4224
+    CVE-2007-4225
+    CVE-2007-3820
+    http://www.kde.org/info/security/advisory-20070914-1.txt
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 01 Oct 2007 22:49:20 +0100
+
+kdebase (4:3.5.7-1ubuntu25) gutsy; urgency=low
+
+  * Fixed debian/patches/kubuntu_33_kubuntuify_about.diff, fixes ftbfs
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Sat, 29 Sep 2007 15:41:26 +0200
+
+kdebase (4:3.5.7-1ubuntu24) gutsy; urgency=low
+
+  [ Richard A. Johnson ]
+  * SECURITY UPDATE: KDM password-less login
+  * KDM can be tricked into performing a password-less login even for accounts
+    with a password set under certain circumstances, namely autologin to be
+    configured and "shutdown with password" enabled.
+  * Add kubuntu_sec_03_kdm_pwless_login.diff for session.c to fix KDM
+    password-less and autologin configuration.
+  * References:
+    - http://www.kde.org/info/security/advisory-20070919-1.txt
+    - CVE-2007-4569
+  * Updated debian/kubuntu_33_kubuntuify_about.diff - changed link to Kubuntu
+    Documentation so Konqueror startpage links work correctly
+
+  [ Sarah Hobbs ]
+  * Added kubuntu_17_check_for_prelinking.diff. (Closes LP: #107694)
+  * Added konqueror dependancy for konqueror-nsplugins. (LP: #139893)
+  * Added kubuntu_fix_kscreensaver_with_compiz_fixed_in_3.5.8.diff (LP:
+    #141628)
+
+ -- Sarah Hobbs <hobbsee@ubuntu.com>  Fri, 28 Sep 2007 18:56:10 +1000
+
+kdebase (4:3.5.7-1ubuntu23) gutsy; urgency=low
+
+  * Fixed kubuntu_52_gtk_qt_engine_config.diff and
+    kubuntu_53_kwallet_config.diff as $kdehome=$HOME/.kde so we should use
+    $kdehome instead of $HOME/$kdehome
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Wed, 19 Sep 2007 12:22:46 +0200
+
+kdebase (4:3.5.7-1ubuntu22) gutsy; urgency=low
+
+  * Fixed kubuntu_52_gtk_qt_engine_config.diff, path for testing is not
+    good
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon, 17 Sep 2007 16:01:52 +0200
+
+kdebase (4:3.5.7-1ubuntu21) gutsy; urgency=low
+
+  * Add kubuntu_9905_fix_konsole_forking.diff to revert to old code, fixes 
+    https://bugs.launchpad.net/ubuntu/+source/python-kde3/+bug/117731
+  * Fixed file name on kubuntu_9904_hide_kfind.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sat, 15 Sep 2007 23:59:58 +0100
+
+kdebase (4:3.5.7-1ubuntu20) gutsy; urgency=low
+
+  * Changed (again) $KDEHOME to $kdehome in kubuntu_52_gtk_qt_engine_config.diff and 
+    kubuntu_53_kwallet_config.diff . (LP: #136560)
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sat, 15 Sep 2007 23:12:26 +0100
+
+kdebase (4:3.5.7-1ubuntu19) gutsy; urgency=low
+
+  * Re-apply changes from ubuntu17 which got lost in previous upload
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 06 Sep 2007 16:43:45 +0100
+
+kdebase (4:3.5.7-1ubuntu18) gutsy; urgency=low
+
+  [ Sarah Hobbs ]
+  * Corrected path to .Xmodmap.  (LP: #106718)
+
+  [ Ryan Kavanagh ]
+  * Dropping kubuntu_9902_nspluginviewer_hangs_cpu.diff and the libgtk
+    build-dep as they are no longer needed
+  * Changed $KDEHOME to $kdehome in kubuntu_52_gtk_qt_engine_config.diff and 
+    kubuntu_53_kwallet_config.diff . (LP: #136560)
+
+ -- Ryan Kavanagh <ryanakca@kubuntu.org>  Mon, 03 Sep 2007 10:26:36 -0400
+
+kdebase (4:3.5.7-1ubuntu17) gutsy; urgency=low
+
+  * Edit kubuntu_52_gtk_qt_engine_config.diff and
+    kubuntu_53_kwallet_config.diff to use $KDEHOME instead of .kde
+  * Remove kubuntu_77_kiosystem.diff, home:/ better than /home now
+  * Edit kubuntu_27_aboutscreen_searchbar.diff to work with strigi
+  * Add kubuntu_9903_api_docs_move.diff for new API website
+  * Add kubuntu_9904_hide_kfind.desktop, now strigi is our default desktop
+    search
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 31 Aug 2007 13:34:53 +0100
+
+kdebase (4:3.5.7-1ubuntu16) gutsy; urgency=low
+
+  * Added kubuntu_9902_nspluginviewer_hangs_cpu.diff. Fixes LP: #66573
+  * Added libgtk2.0-dev build-dep according to the patch.
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Tue, 28 Aug 2007 12:09:02 +0200
+
+kdebase (4:3.5.7-1ubuntu15) gutsy; urgency=low
+
+  * Fixed kubuntu_77_kiosystem.diff:
+    - URL set to media:/ instead of /media
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon, 30 Jul 2007 16:30:55 +0200
+
+kdebase (4:3.5.7-1ubuntu14) gutsy; urgency=low
+
+  * Drop kubuntu_73_nomediaioslave_mounthelper.diff,
+    kubuntu_76_kickermedia.diff and
+    kubuntu_83_media_desktop.diff:
+    -  as it's been decided to switch back to the standard media:/
+       protocol, as /media create as many problems as it resolves...
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 27 Jul 2007 17:12:11 +0200
+
+kdebase (4:3.5.7-1ubuntu13) gutsy; urgency=low
+
+  * Removed non-standard konqueror.rc. Our default is stored in kubuntu-default-settings,
+    and hopefully it won't use kdebase's konqueror.rc unless k-d-s is removed.
+
+ -- Harald Sitter <sitter.harald@gmail.com>  Thu, 26 Jul 2007 15:46:40 +0100
+
+kdebase (4:3.5.7-1ubuntu12) gutsy; urgency=low
+
+  * Remove kubuntu_95_safely-remove_umount_dialog.diff as
+    kio_umountwrapper is being promoted to main
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 23 Jul 2007 11:41:02 +0100
+
+kdebase (4:3.5.7-1ubuntu11) gutsy; urgency=low
+
+  * Add kubuntu_9901_location_cursor_at_start.diff
+    always display the beginning of the url rather than its end 
+    to prevent spoofing attempts.
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 18 Jul 2007 12:04:25 +0100
+
+kdebase (4:3.5.7-1ubuntu10) gutsy; urgency=low
+
+  * Added kubuntu_99_kate_crashfix_from_svn.diff.  (LP: #122296)
+  * Committed into Bzr.
+  * Added gs-esp-x to kdeprint depends and konqueror depends. (LP: #83597)
+  * Added konqueror Recommends: libxine1-ffmpeg, so that the thumbnail
+    generation no longer fails on video files. (LP: #51024)
+  * Added konqueror Recommends: libarts1-mpeglib, so that the thumbnail
+    generation no longer fails on video files. (LP: #103972)
+
+ -- Sarah Hobbs <hobbsee@ubuntu.com>  Thu, 28 Jun 2007 15:37:31 +1000
+
+kdebase (4:3.5.7-1ubuntu9) gutsy; urgency=low
+
+  * Fixed kdebase-kio-plugins.install to remove the trash from the
+    systemview kicker applet
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Sat, 30 Jun 2007 02:41:16 +0200
+
+kdebase (4:3.5.7-1ubuntu8) gutsy; urgency=low
+
+  * Fixed debian/kdm.init
+    set kdm language to the system default.
+  * Droped pmount dependancy for kdebase.
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu, 14 Jun 2007 17:15:21 +0200
+
+kdebase (4:3.5.7-1ubuntu7) gutsy; urgency=low
+
+  * Fixed debian/kdm.init
+    Previous code was bash code while the init script is sh
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu, 14 Jun 2007 13:13:22 +0200
+
+kdebase (4:3.5.7-1ubuntu6) gutsy; urgency=low
+
+  * Don't install desktop icons (except in unused directory)
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 06 Jun 2007 17:43:35 +0100
+
+kdebase (4:3.5.7-1ubuntu5) gutsy; urgency=low
+
+  * Move kde-applications-merged/kde-essential.menu to
+    applications-merged/, apparantly the prefix doesn't get used for merge
+    directories
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 05 Jun 2007 01:52:38 +0100
+
+kdebase (4:3.5.7-1ubuntu4) gutsy; urgency=low
+
+  * Removed kubuntu_55_kdm_usplash_down.diff, usplash is now launched
+    via the kdm.init script, modified to launch usplash_down
+    (Fixes LP: #83727  and LP: #34821)
+  * Added kbuntu_97_khotkeys_alt_print_shortcut.diff, capture a window
+    with khotkeys with alt+print
+  * Fixed kubuntu_76_kickermedia.diff. Fix from Frode M. Døving <frode@ubuntu.com>
+    (Fixes LP: #116021)
+  * Added kubuntu_98_icon_alignement.diff
+    (Fixes LP: #90801)
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu, 31 May 2007 13:00:24 +0200
+
+kdebase (4:3.5.7-1ubuntu3) gutsy; urgency=low
+
+  * Add kubuntu_96_gdm_logout_moved.diff ; the GDM control socket moved in
+    7.04 and we need to use the new path.  This fix makes the "Reboot" and
+    "Shut down" buttons reappear for people using GDM with KDE.  
+    LP: #64695.
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 25 May 2007 09:07:03 +0100
+
+kdebase (4:3.5.7-1ubuntu2) gutsy; urgency=low
+
+  * Update kubuntu_89_new_logout_ui.diff with changes from
+    Stefan Skotte <sfs@enhance-it.dk> to fix shortcuts when
+    using non-English languages
+  * Update kubuntu_83_media_desktop.diff from 
+    Frode M. Doving <frode@kubuntu.org> to fix dialogue when ejecting audiocds
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 23 May 2007 14:01:21 +0100
+
+kdebase (4:3.5.7-1ubuntu1) gutsy; urgency=low
+
+  * Merge with Debian for new upstream release, remaining changes in
+    KUBUNTU-DEBIAN-CHANGES
+  * Remove kubuntu_62_genkdmconf_fix.diff, applied upstream
+  * Update kubuntu_68_xinerama.diff
+  * Remove kubuntu_87_kicker_restore_description_parents.diff, obsoleted by upstream changes
+  * Remove kubuntu_94_konqueror_nsplugins_amd64.diff, now part of Debian
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 22 May 2007 18:16:15 +0100
+
+kdebase (4:3.5.7-1) unstable; urgency=low
+
+  * New upstream release:
+    - Now checks lnusertmp return values. (Closes: #292078)
+    - Uses correct encoding in error messages. (Closes: #362653)
+  
+  ++ Changes by Sune Vuorela:
+
+  * Patches:
+    - Redo patch 18 about fonts.
+    - Remove patch 21 - applied upstream.
+    - Adapt patch 27 - kfreebsd - minor changes.
+    - Adapt patch 41 - amd64 and nspluginviewer -  small changes.
+    - Remove patch 42 - kwin and 64 bit. applied upstream.
+    - Remove patch 44 - opengl logo is fixed.
+    - Remove patch 45 - keyboard handler - applied upstream.
+
+  ++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Update kdebase-data.install to remove "Serbia and Montenegro" (yu), and 
+    add "Serbia" (rs) and "Montenegro" (me). 
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 15 May 2007 17:03:48 +0100
+
+kdebase (4:3.5.6-2ubuntu2) gutsy; urgency=low
+
+  * Add kubuntu_96_gdm_logout_moved.diff from Tollef Fog Heen
+    closes https://bugs.beta.launchpad.net/ubuntu/+source/kdebase/+bug/64695
+    "If GDM is the default display manager KDE logout dialog is
+     missing shutdown and restart options"
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 30 Apr 2007 12:17:55 +0100
+
+kdebase (4:3.5.6-2ubuntu1) gutsy; urgency=low
+
+  * Merge with Debian
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 27 Apr 2007 18:45:03 +0100
+
+kdebase (4:3.5.6.dfsg.2-2) unstable; urgency=low
+
+  * Add patch 45_plugin-keyboard-handler.diff to fix keyboard events handling.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Thu, 19 Apr 2007 18:43:34 +0200
+
+kdebase (4:3.5.6.dfsg.2-1) unstable; urgency=low
+
+  * Upload to unstable after Etch release. Some bugs fixed in this release:
+    - A javascript related crash is fixed. (Closes: #416142)
+    - Prevent ksplash from locking due to race conditions. (Closes: #413273)
+
+  +++ Changes by Modestas Vainius:
+
+  * Correct false assumptions about the size of long always being 32bit. This
+    should fix nspluginviewer segfaults in some cases on 64bit arches
+    (Closes: #410091). Thanks to Matthias Dellweg for the bug analysis and the
+    patch. Patch No. 41.
+  * Use NET::timestampCompare() for comparing timestamps. It takes into
+    account that Higher 32bit of long get lost on 64bit archs due to
+    Xlib 32bit-in-long wrapping (Closes: #416615). Patch No. 42.
+
+  +++ Changes by Fathi Boudra:
+
+  * add autologin overrides, useful for live debian environment. It introduces
+    AUTOLOGINAGAIN, AUTOLOGINDELAY, AUTOLOGINLOCKED and AUTOLOGINUSER.
+
+  +++ Changes by Sune Vuorela:
+  
+  * Support where the frosty furry animals wants their plugins. (Patch 38)
+  * Better distinguish wether users has modified their kdm theme. (Patch 39)
+  * Update kdm debconf template, thanks to Christian Perrier. (Closes: #415941)
+    Also update kdm debconf translations:
+      - Norwegian Bokmal
+      - Swedish thanks to Daniel Nylander (Closes: #417875)
+      - Arabic thanks to Ossama Khayat (Closes: #417886)
+      - Japanese thanks to Kenshi Muto (Closes: #417891)
+      - Portuguese (pt_PT) thanks to Eduardo Silva. (Closes: #418000)
+      - Italian thanks to Danilo Piazzalunga. (Closes: #418151)
+      - German thanks to Alwin Meschede. (Closes: #418160)
+      - Galician thanks to Jacobo Tarrío. (Closes: #418186)
+      - Danish is something I just did myself. No bugs filed.
+      - French thanks to Christian Perrier. (Closes: #418518)
+      - Dutch thanks to Bart Cornelis. (Closes: #418606)
+      - Czech thanks to Miroslav Kure. (Closes: #418569)
+      - Catalan thanks to Leopold Palomo-Avellaneda. (Closes: #412303)
+      - Russian thanks to Yuri Kozlov. (Closes: #418739)
+      - Brazilian Portuguese thanks to Christian Perrier.
+
+    New translations:
+      - Tamil thanks to Tirumurti Vasudevan. (Closes: #417943)
+      - Slovak thanks to Peter Mann. (Closes: #417878)
+      - Basque thanks to Piarres Beobide. (Closes: #417993)
+      - Korean thanks to Sunjae Park. (Closes: #418211)
+      - Simplified chinese thanks to Ming Hua. (Closes: #418486)
+      - Malayam thanks to Praveen A. (Closes: #418495)
+      - Greek (still has a couple of fuzzy strings).
+  * Add a patch to put some quotes in kdeprintgfax to have spaces in
+    names/numbers. Thanks to Robert Cheramy. (Closes: #247396)
+  * Fix minor issues in manpage. Thanks JS Bygott. (Closes: #414270)
+  * Enable kerberos in kio slaves. It seems do not break anything. 
+    Thanks to Raúl Sánchez Siles. (Closes: #376952)
+  * Improve klipper description, thanks to J S Bygott. (Closes: #410202)
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+  
+  * Repackage to remove non-free OpenGL logo and update prune-nonfree
+    script. Also, patch 44 to not install the logo. (Closes: #419962)
+  * Update spanish kdm debconf template translation, thanks to Enrique Matías.
+  * Fix changelog typos ;-)
+  * And, as always, upload.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 19 Apr 2007 13:27:00 +0100
+
+kdebase (4:3.5.6.dfsg.1-2) experimental; urgency=low
+
+  +++ Changes by Sune Vuorela:
+
+  * Don't install gvim desktop file in kappfinder. gvim does it by itself -
+    and much better. (Closes: #408233)
+  * Improve documentation about styling kdm (thanks to Jeremy Bygott).
+    This is a note in kdm.init, in kdm.README.Debian and in the
+    generated kdmrc.  (Closes: #408418, #403776, #403797, #406438)
+  * Add portuguese debconf translation. Thanks to Carlos Lisboa.
+    (Closes: #408021)
+
+  +++ Changes by Modestas Vainius:
+
+  * Add patch from upstream svn to fix "switching desktops with win+tab
+    key broken" bug (patch no. 21) .(Closes: #406549)
+  * Fix khelpcenter documentation indexing/searching. Thanks to Vedran Furač
+    for the solution (patch 25) .(Closes: #386283)
+  * Promote htdig from Suggests to Depends. Indexing and searching are
+    important for most people. (Closes: #389844)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu,  8 Feb 2007 12:14:08 +0200
+
+kdebase (4:3.5.6-0ubuntu20) feisty; urgency=low
+
+  * Add kubuntu_95_safely-remove_umount_dialog.diff
+    On 'Safely Remove' this will make a kprogressdialog-popup telling 
+    the user it's unmounting. 
+    The popup will not close until the umount is complete. (Closes: LP #61946)
+
+ -- Frode M. Døving <frode@ubuntu.com>  Sun,  8 Apr 2007 01:10:14 +0200
+
+kdebase (4:3.5.6-0ubuntu19) feisty; urgency=low
+
+  * Fixes konsole.README.Debian according to debian changes.
+    - Closes Malone #89858
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Tue, 03 Apr 2007 15:04:12 +0100
+
+kdebase (4:3.5.6-0ubuntu18) feisty; urgency=low
+
+  * Add kubuntu_94_konqueror_nsplugins_amd64.diff:
+    - Enables nsplugins support for AMD64 (Closes Malone #98551)
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu, 29 Mar 2007 17:45:20 +0100
+
+kdebase (4:3.5.6-0ubuntu17) feisty; urgency=low
+
+  * Update kubuntu_52_gtk_qt_engine_config.diff:
+    - copy the config file before ~/.kde/env/ scripts are
+      executed so that gtk-qt-engines works at first login.
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 23 Mar 2007 19:38:23 +0100
+
+kdebase (4:3.5.6-0ubuntu16) feisty; urgency=low
+
+  [ Richard Johnson ]
+  * Update kubuntu_93_konq_doc_remove_go_window_menu.diff
+    to fix compile error
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 15 Mar 2007 13:48:08 +0000
+
+kdebase (4:3.5.6-0ubuntu15) feisty; urgency=low
+
+  [ Richard Johnson ]
+  * Add kubuntu_93_konq_doc_remove_go_window_menu.diff
+  fix documentation, closes http://launchpad.net/bugs/48462
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 14 Mar 2007 17:08:48 +0000
+
+kdebase (4:3.5.6-0ubuntu14) feisty; urgency=low
+
+  * Update kubuntu_33_kubuntuify_about.diff for links to
+    new Kubuntu Docs
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 12 Mar 2007 16:41:45 +0000
+
+kdebase (4:3.5.6-0ubuntu13) feisty; urgency=low
+
+  * Update of kubuntu_89_new_logout_ui.diff from 
+    Stefan Skotte <sfs@enhance-it.dk>
+    Fixes using arrows on logout dialogues
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon,  5 Mar 2007 10:38:55 +0000
+
+kdebase (4:3.5.6-0ubuntu12) feisty; urgency=low
+
+  * Add kubuntu_92_krandrtray_config.diff, krandrtray now uses guidance
+    display configuration module in the first place.
+    Closes Malone #46877
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 23 Feb 2007 15:16:32 +0100
+
+kdebase (4:3.5.6-0ubuntu11) feisty; urgency=low
+
+  * Fix kubuntu_52_gtk_qt_engine_config.diff to fit with new
+    gtk-qt-engines package. Closes Malone #36256
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 23 Feb 2007 12:54:27 +0100
+
+kdebase (4:3.5.6-0ubuntu10) feisty; urgency=low
+
+  * Add kubuntu_91_ksplash_fork_too_early_cond.diff, closes
+    Malone #46682. Patch from  Mark Jenkins
+  * Removed kubuntu_05_kdm_theme_config.diff, kdm config will now be
+    set via kubuntu-default-settings postinst script.
+    Closes Malone #58639
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu, 22 Feb 2007 17:18:34 +0100
+
+kdebase (4:3.5.6-0ubuntu9) feisty; urgency=low
+
+  * Improved kubuntu_76_kickermedia.diff and 
+    kubuntu_83_media_desktop.diff by Simon Edwards
+  * Improved kubuntu_89_new_logout_ui.diff by Stefan Skotte
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Sun, 19 Feb 2007 00:25:47 +0100
+
+kdebase (4:3.5.6-0ubuntu8) feisty; urgency=low
+
+  * Rebuilt against new kdelibs.
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Sat, 17 Feb 2007 11:44:23 +0100
+
+kdebase (4:3.5.6-0ubuntu7) feisty; urgency=low
+
+  * Add kubuntu_90_execute_feedback.diff, replaces the zooming
+    rectangle that is drawn if you activate an icon in konqueror
+    for execution feedback. Patch from Johannes Schriewer
+  * Improved kubuntu_89_new_logout_ui.diff from Stefan Skotte
+    <sfs@enhance-it.dk>
+    - tabbing/cursor movement fixed
+    - resizing issues depending on font sizes
+    - dropdown box for selecting lilo/grub entries if enabled in
+      system-settings/Login Manager (hold down Restart button to
+      get options)
+    - hibernate/suspend buttons works again
+    - logout image changed from undo.png to back.png
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Tue, 13 Feb 2007 06:59:32 +0100
+
+kdebase (4:3.5.6-0ubuntu6) feisty; urgency=low
+
+  * Add kubuntu_89_new_logout_ui.diff from Stefan Skotte
+    <sfs@enhance-it.dk>, based on the ubuntu/gnome one
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Wed,  7 Feb 2007 23:42:47 +0100
+
+kdebase (4:3.5.6-0ubuntu5) feisty; urgency=low
+
+  * Add kubuntu_88_logout_fade.diff from Stefan Skotte <sfs@enhance-it.dk>
+    based on http://www.kde-look.org/content/show.php?content=20652
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon,  5 Feb 2007 12:29:23 +0000
+
+kdebase (4:3.5.6-0ubuntu4) feisty; urgency=low
+
+  * Fix syntax in kdebase-data.install
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 29 Jan 2007 19:48:54 +0000
+
+kdebase (4:3.5.6-0ubuntu3) feisty; urgency=low
+
+  * Use correct directory for kde-essentials.menu
+
+ -- Stefan Skotte <sfs@enhance-itNOSPAM.dk>  Mon, 29 Jan 2007 14:28:10 +0100
+
+kdebase (4:3.5.6-0ubuntu2) feisty; urgency=low
+
+  * Add kubuntu_87_kicker_restore_description_parents.diff
+    Restores the parents in kmenu in name (description) mode
+    Closes Malone #67113
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 26 Jan 2007 02:22:35 +0100
+
+kdebase (4:3.5.6-0ubuntu1) feisty; urgency=low
+
+  * New upstream release
+  * Remove patched applied upstream:
+   - 02_hal_kwin_fixes_branch.diff
+   - 29_halbackend_fstab_improvements.diff
+   - 30_mediamanager_followsymlinks.diff
+   - 32_camera_icon_from_mimetype.diff
+   - kubuntu_85_dpms_fix.diff
+   - kubuntu_86_slovenia_euro.diff
+  * Update kubuntu_73_nomediaioslave_mounthelper.diff
+  * Add kubuntu_86_konsole_pty.diff from Michael Vogt to support
+    attaching new ptys to konsole, needed for kubuntu-update-tool
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 17 Jan 2007 11:22:28 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu18) feisty; urgency=low
+
+  * Update replaces on kdebase data to fix https://launchpad.net/bugs/78947
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sun, 14 Jan 2007 12:54:34 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu17) feisty; urgency=low
+
+  * Add kubuntu_85_language_selector.diff to complete
+    kubuntu-feisty-language-selector integration
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 12 Jan 2007 11:00:51 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu16) feisty; urgency=low
+
+  * Make debian/80ubuntu-xmodmap resistant to xmodmap failure that could
+    make this script fail and stop processing other Xsession scripts.
+  * Added kubuntu_85_dpms_fix.diff to fix wrong reading of DPMS defaults
+    on startup - all values are in seconds and need conversion to
+    minutes before being used (LP: #65791).
+  * Added kubuntu_86_slovenia_euro.diff to change currency for Slovenia
+    from Slovenian Tolar (SIT) to Euro.
+
+ -- Luka Renko <lure@ubuntu.com>  Sat,  6 Jan 2007 12:58:45 +0100
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu15) feisty; urgency=low
+
+  * Make sure patches are not applied before upload
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri,  5 Jan 2007 21:00:36 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu14) feisty; urgency=low
+
+  * Fix syntax error in kubuntu_72_kxkb_xmodmap.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri,  5 Jan 2007 12:38:25 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu13) feisty; urgency=low
+
+  * Update kdm init script to stop usplash with "start"
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu,  4 Jan 2007 23:05:08 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu12) feisty; urgency=low
+
+  * Alter kubuntu_72_kxkb_xmodmap.diff and debian/80ubuntu-xmodmap to load
+    ~/.Xmodmap for personalised keyboard mapping.  Based on patch from 
+    Thorsten Zachmann <zachmann@schlund.de>
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sat, 23 Dec 2006 11:42:26 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu11) feisty; urgency=low
+
+  * Improve kubuntu_76_ksmserver_suspend.diff to respect power-managerrc
+    options for disabling suspend/hibernate buttons and lock on resume
+  * Add mapping for Calculator key to XF86Calculator and change Play/Pause
+    key mapping to XF86AudioPause
+
+ -- Luka Renko <lure@ubuntu.com>  Thu,  7 Dec 2006 00:57:59 +0100
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu10) feisty; urgency=low
+
+  * Install trash.desktop into unused directory, so it
+    doesn't appear on the desktop.
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue,  5 Dec 2006 17:19:37 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu9) feisty; urgency=low
+
+  * Add missing file debian/80ubuntu-xmodmap
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 22 Nov 2006 09:26:02 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu8) feisty; urgency=low
+
+  * Add ubuntu.xmodmap and install rule
+  * Add klipper.rc edit rule
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 21 Nov 2006 11:09:49 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu7) feisty; urgency=low
+
+  * Removed debian/tmp/usr/share/services/kfile_trash.desktop
+    from kdebase-kio-plugins.install
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Tue, 21 Nov 2006 00:01:43 +0200
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu6) feisty; urgency=low
+
+  * Compile with --with-sudo-kdesu-backend
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 20 Nov 2006 10:18:52 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu5) feisty; urgency=low
+
+  * Add missing debian/konqueror.rc file
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 17 Nov 2006 20:37:45 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu4) feisty; urgency=low
+
+  * Use correct kubuntu_01_kdepot.diff patch
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 16 Nov 2006 23:52:10 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu3) feisty; urgency=low
+
+  * rebuild on latest kdelibs
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 16 Nov 2006 19:39:16 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu2) feisty; urgency=low
+
+  * Add missing kubuntu_01_kdepot.diff patch
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 15 Nov 2006 21:19:33 +0000
+
+kdebase (4:3.5.5a.dfsg.1-1ubuntu1) feisty; urgency=low
+
+  * Merge with Debian
+  * Remove kubuntu_18_default_fonts.diff keep 18_default_fonts.diff
+  * Remove kubuntu_28_kdebase_rubberband.diff now in Debian as 28_kdebase_rubberband.diff
+  * Remove 33_mounthelper_find_medium_by_url.diff, it clashes with our media ioslave patches
+  * Build with --enable-gcc-hidden-visibility
+  * Remove kubuntu_69_no_kcontrol_joystick.diff, it builds now
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 14 Nov 2006 23:20:10 +0000
+
+kdebase (4:3.5.6.dfsg.1-1) experimental; urgency=low
+
+  * New upstream release:
+    * Fixes "kdm does not obey pam_limits". (Closes: #242641)
+    * Resolves ksysguard problem that it was not possible to sensor order.
+      (Closes: #350561)
+    * Fixes kdesktop_lock and pam_krb5. (Closes: #374394, #376803)
+
+  +++ Changes by Modestas Vainius:
+
+  * Update debian/*.install files.
+  * Resync debian/patches:
+    * Adapt to upstream changes - 18, 23.
+    * Remove, applied upstream - 02, 29, 30, 32, 33, 35, 36.
+    * Fix offsets - 14, 19, 20, 28.
+  * Update Uploaders.
+
+  +++ Changes by Sune Vuorela:
+  
+  * Add norwegian (nb) translation of debconf questions. Thanks to 
+    Bjorn Steensrud. (Closes: #405417)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 16 Jan 2007 18:13:20 +0100
+
+kdebase (4:3.5.5a.dfsg.1-5) unstable; urgency=high
+
+  +++ Changes by Sune Vuorela:
+  * Add | kfreebsd-gnu | hurd as dependencies to help installability on
+    non-linux archs (Closes: 399059)
+
+  +++ Changes by Modestas Vainius:
+  * Fix 36_kwin.diff patch. In some cases clients were not properly added to
+    the group. (Closes: #404226)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 29 Dec 2006 19:15:23 +0200
+
+kdebase (4:3.5.5a.dfsg.1-4) unstable; urgency=low
+
+  +++ Changes by Sune Vuorela:
+  * Add a section to man page about how to use sudo as kdesu backend 
+    (Closes: #399823, #384416)
+ 
+  +++ Changes by Ana Guerrero:
+  * Applied patch to avoid kwin crashes when switching desktop 
+    (Closes: #365829).
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 13 Dec 2006 13:09:33 +0100
+
+kdebase (4:3.5.5a.dfsg.1-3) unstable; urgency=high
+
+  * Urgency high for etch's KDE artwork.
+
+  +++ Changes by Fathi Boudra:
+  * Remove debian kde background, it will be provided by desktop-base:
+    * debian-kde_default.png.desktop
+    * 21_default_background_image.diff.uu
+    * 22_default_backgrounds.diff
+  * Add kdm customization support and update kdm README.Debian. Main changes
+    can be found in kdm init script:
+    * use an alternative kdm master configuration file (/var/run/kdm/kdmrc)
+      and background configuration file (/var/run/kdm/backgroundrc)
+    * source override file in kdm override directory (/etc/default/kdm.d)
+    (Closes: #385839)
+
+  +++ Changes by Sune Vuorela:
+  * Add kdelibs-dbg to kdebase-dbg dependencies.
+
+  +++ Changes by Josh Metzler:
+  * Restore kdm's default user face icon by adding a symlink to kdm.links.
+    (Closes: #267722)
+
+  +++ Changes by Modestas Vainius:
+  * Add patch (number 35) from KDE bug #120619 comment #34, which fixes 
+    mounting and unmounting of floppy devices managed by HAL. (Closes: #350097)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 11 Dec 2006 17:26:16 +0100
+
+kdebase (4:3.5.5a.dfsg.1-2) unstable; urgency=medium
+
+  +++ Changes by Fathi Boudra:
+
+  * Remove kde-applications-merged directory in kdebase-data.preinst as we must
+    use applications-merged as the default merge directory.
+  * Urgency medium, as along with kdelibs this upload fixes broken fresh
+    installs.
+
+  +++ Changes by Sune Vuorela:
+
+  * Fix a typo in konsole manpage and extend the description about -e a bit.
+    Inspired by xterm man page.
+
+  +++ Changes by Christopher Martin:
+
+  * Add a patch from the upstream bug report (http://bugs.kde.org/41744) that
+    fixes the display of Japanese fullwidth characters in Konsole.
+    (Closes: #395141)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 16 Nov 2006 17:08:46 -0500
+
+kdebase (4:3.5.5a.dfsg.1-1) unstable; urgency=medium
+
+  * Add 4 new patches. Thanks to Sune Vuorela for investigating and
+    to Modestas Vainius for creating them:
+    * 29_halbackend_fstab_improvements
+      * fixes HALBackend::inInFstab() to correctly match the fstab device node
+        that is a symlink.
+      * Improve error messages for HAL/fstab unmount failures. Include a list
+        of processes using the device in them (if there are any).
+      * When handling fstab devices, make HALBackend::mount() and
+        HALBackend::umount() calls block until the operation actually
+        completes (the same behaviour as with HAL devices).
+      * In mounthelper always unmount a device before ejecting it. However,
+        if unmount fails, still try to eject the device. In case of failure,
+        display the unmount error message which is more informative.
+    * 30_mediamanager_followsymlinks
+      * MediaManager::properties() follows symlinks on local paths.
+    * 32_camera_icon_from_mimetype
+      * Do not set icons for cameras explicitly, because they can be
+        determined from the mimetype. In addition, always reset a medium icon
+        when properties of the medium change. This fixes a problem when the
+        camera_mounted icon is not reset once the camera storage has been
+        unmounted.
+    * 33_mounthelper_find_medium_by_url
+      * Mounthelper should search for the medium by the whole url in addition
+        to just the filename. This unbreaks krusader 1.70.x media:/ 
+        unmount/eject commands.
+
+  * Add psmisc to Depends of kdebase-kio-plugins since it provides 'fuser'
+    utility, needed for listUsingProcesses() function added in
+    29_halbackend_fstab_improvements patch. Thanks to Modestas Vainius.
+
+  * Promote eject from Recommends to Depends for kdesktop, and make sure
+    kdebase-kio-plugins Depends on kdesktop, so that kdeeject is always
+    present.
+
+  * Update 20_applications_menu_move patch to fix an incomptability with
+    freedesktop.org menu specification: Note that a system that uses either
+    gnome-applications.menu or kde-applications.menu depending on the desktop
+    environment in use must still use applications-merged as the default merge
+    directory in both cases. Thanks to Kevin Krammer. (Closes: #392807)
+
+  * Version our build-conflict with nvidia-glx, since newer packages should
+    work. (Closes: #393855)
+
+  * Drop thunderbird and mozilla icons from the tarball, as they are non-free.
+    (Closes: #394045)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu,  2 Nov 2006 17:59:48 -0500
+
+kdebase (4:3.5.5a-2) unstable; urgency=low
+
+  * Re-add pmount to kdebase's dependencies. It turns out that there remain
+    strange cases where pmount is needed in conjunction with HAL to do the
+    right thing.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 13 Oct 2006 17:05:08 -0400
+
+kdebase (4:3.5.5a-1) unstable; urgency=high
+
+  * New upstream tarball, with a number of fixes. Also include several
+    important patches that didn't make the tarball.
+    + Fixes 'konsole flashes and is unusable' with some focus policies.
+      (Closes: #391357, #391361)
+    + This upload, and the last one, must make Etch with their RC fixes,
+      so urgency=high.
+
+  * Drop the pmount Depends from the kdebase metapackage, since pmount isn't
+    important with the latest HAL. (Closes: #391502)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 10 Oct 2006 17:12:10 -0400
+
+kdebase (4:3.5.5-1) unstable; urgency=low
+
+  [ Debian Qt/KDE Maintainers ]
+  * New upstream release.
+    + Reorders the paths which kxkb searches. This should prevent it from
+      mistakenly thinking that it has found its data; this was breaking
+      keyboard layouts for many users. (Closes: #382988)
+    + Fixes kxkb with multiple users - create properly named files in /tmp.
+      (Closes: #383893)
+    + Fixes kdesktop crash when copying things to the kde clipboard under
+      special configuration. (Closes: #386336)
+    + Fixes kicker external taskbar sizing. (Closes: #373919)
+
+  +++ Changes by Christopher Martin:
+
+  * Join the club by adding full depends on hal and pmount to the kdebase
+    metapackage. kdebase-kio-plugins will retain recommends for hal and
+    pmount. This way, people who still really hate udev can simply ditch the
+    kdebase metapackage, but most users will automatically get the full
+    Utopia. This is good, since nobody reads recommends anyway, and volume
+    handling is becoming standard and expected basic functionality. The
+    kde-desktop task depends on kde-core, a metapackage that in turn
+    depends on kdebase, so the kde-desktop task will now pull in hal/pmount
+    as well. (Closes: #384663)
+
+  * Fix typo in /etc/pam.d/kdm-np. (Closes: #381908)
+
+  * Remove /usr/share/apps/kappfinder/apps/Office/lyx.desktop, as lyx-qt
+    provides its own better .desktop file. (Closes: #383412)
+
+  * Revamp patches/18_default_fonts.diff, not only to sync it with the latest
+    changes in the KDE_3_5_BRANCH, but also to fix a number of recent problems
+    with KDE's font handling. These include mismatches between defaults in
+    different parts of KDE, which led to different apps using different
+    settings, with respect to the enabling of anti-aliasing, subpixel
+    rendering, and other settings. Also, set the default font hinting level
+    to 'full', since anything other than that has the effect of actually
+    disabling hinting with Debian's fontconfig. This probably led many users
+    to wonder why their fonts suddenly became so ugly after they ran KControl
+    and accepted the then-default 'medium' hinting level. (Closes: #381232)
+
+  * Clarify in the kdebase and kdebase-kio-plugins README.Debian files that
+    plugdev membership through /etc/security/group.conf doesn't cut it.
+
+  * Add Romanian debconf translation, thanks to Stan Ioan-Eugen.
+    (Closes: #387586)
+
+  * New default background, thanks to Andre L.R. Ferreira. This background was
+    chosen from a group of images proposed for a standard Debian background by
+    the Debian Desktop project. This work doesn't look like it will make Etch,
+    but the old background wasn't super, so we took the one we judged to be
+    best.
+
+  * Grab a few minipager fixes from the KDE_3_5_BRANCH.
+
+  +++ Changes by Fathi Boudra:
+
+  * Fix typos in libkonq4 description. (Closes: #385148)
+
+  * Re-write kpersonalizer description. (Closes: #385309)
+
+  * Fix typos in kdebase-kio-plugins description. (Closes: #385734)
+
+  * Remove non-free firefox icon. [CM: Add a prune-nonfree script to the
+    debian packaging that makes it easy to drop the icons from a source
+    tree, since we must remove the icons from the tarball as well.]
+    (Closes: #284699)
+
+  +++ Changes by Pierre Habouzit:
+
+  * Add kfreebsd-specific patches to the configure system, ensuring that
+    all needed files are installed on all platforms, even though the build
+    system erroneously leaves them out of non-Linux builds. (Closes: #339937)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed,  4 Oct 2006 18:43:28 -0400
+
+kdebase (4:3.5.4-2) unstable; urgency=low
+
+  * KDE_3_5_BRANCH update (up to r567687).
+
+  +++ Changes by Christopher Martin:
+
+  * Re-upload 3.5.4 with a new build hack that disables the use of
+    --enable-final on slow architectures. This will hopefully allow kdebase
+    (and other KDE modules) to build on arm and m68k more easily. This should
+    in turn ease the movement of recent KDE modules into Testing. Thanks to
+    Adeodato Simo for the fix.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 29 Jul 2006 15:41:35 -0400
+
+kdebase (4:3.5.4-1) unstable; urgency=low
+
+  * New upstream release:
+    + fixes setting of the xrdb resource Xft.antialias to always match what's
+      configured in the control center, not in ~/.qt/qtrc. (Closes: #377147)
+    + fixes konqueror crahshes. (Closes: #367090)
+    + fix a crash in kate at save time. (Closes: #368504)
+
+  +++ Changes by Christopher Martin:
+
+  * Add more manpages from Holger Hartmann. Thanks again!
+    (Closes: #193527, #373759, #374087)
+
+  * Add libjessie-java to konqueror's Java Suggests, since it is needed for
+    JSSE in conjunction with GCJ.
+
+  * Add a LSB header to the KDM init script, making KDM usable with a parallel
+    bootscripts setup. Thanks to Carlos Villegas. (Closes: #376958)
+
+  * 25_khelp_htdig.diff: With the htdig package, searchable indexes should
+    be usable in the KDE Help Center. (Closes: #313375, #368208, #378408)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 28 Jul 2006 00:04:41 +0200
+
+kdebase (4:3.5.5-0ubuntu4) edgy; urgency=low
+
+  * Fix kubuntu_76_ksmserver_suspend.diff to not crash due to uninitialized
+    HAL context pointer if shutdown options are disabled in logout dialog. 
+    Closes LP #67889
+
+ -- Luka Renko <lure@ubuntu.com>  Tue, 24 Oct 2006 22:09:44 +0200
+
+kdebase (4:3.5.5-0ubuntu4) feisty; urgency=low
+
+  * Update kubuntu_73_nomediaioslave_mounthelper.diff,
+    kubuntu_76_kickermedia.diff and kubuntu_83_media_desktop.diff
+    patches by Simon Edwards
+  * Add kubuntu_84_konqueror_stop_reload_button.diff to merge
+    those 2 buttons.
+  * Removed kubuntu_84_group_toolbar_viewmode_icons.diff
+  * Removed kubuntu_69_no_kcontrol_joystick.diff
+    fixes Malone #53732
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu,  19 Oct 2006 18:35:23 +0200
+
+kdebase (4:3.5.5-0ubuntu3) edgy; urgency=low
+
+  * Update kubuntu_73_nomediaioslave_mounthelper.diff to change
+    media:/ to /media link in about:konqueror page
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu,  11 Oct 2006 13:27:23 +0200
+
+kdebase (4:3.5.5-0ubuntu2) edgy; urgency=low
+
+  * Build-dep on kdelibs 3.5.5
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 11 Oct 2006 10:18:56 +0100
+
+kdebase (4:3.5.5-0ubuntu1) edgy; urgency=low
+
+  * New upstream release
+  * 18_default_fonts.diff now kubuntu_18_default_fonts.diff and first hunk
+    removed to apply
+  * 28_kdebase_rubberband.diff now kubuntu_28_kdebase_rubberband.diff and hunk
+    removed to apply
+  * kubuntu_14_hide_konquerorsu_menu_entry.diff updated
+  * kubuntu_20_kdesu_sudo.diff updated, merged upstream
+  * kubuntu_35_hide_klipper_menu_entry.diff updated
+  * kubuntu_73_nomediaioslave_mounthelper.diff  updated
+  * kubuntu_75_kicker_taskbar_resize.diff removed, fixed upstream
+  * kubuntu_76_kickermedia.diff updated
+  * kubuntu_83_media_desktop.diff updated
+  * Use --with-sudo-kdesu-backend and build-dep on sudo
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue,  3 Oct 2006 10:56:06 +0000
+
+kdebase (4:3.5.4-0ubuntu28) edgy; urgency=low
+
+  * Add kubuntu_84_group_toolbar_viewmode_icons.diff to get
+    icons grouped in the viewmode actionlist.
+  * Update kubuntu_73_nomediaioslave_mounthelper.diff to change
+    media:/ to /media link in about:konqueror page
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon,  25 Sep 2006 21:46:23 +0200
+
+kdebase (4:3.5.4-0ubuntu27) edgy; urgency=low
+
+  * Update kubuntu_73_nomediaioslave_mounthelper.diff
+    by Simon Edwards
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon,  25 Sep 2006 12:44:23 +0200
+
+kdebase (4:3.5.4-0ubuntu26) edgy; urgency=low
+
+  * Install kdm at init level 13
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 22 Sep 2006 01:58:38 +0100
+
+kdebase (4:3.5.4-0ubuntu25) edgy; urgency=low
+
+  * Rebuild on latest cdbs to change .pot files to UTF8
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 20 Sep 2006 13:09:27 +0100
+
+kdebase (4:3.5.4-0ubuntu24) edgy; urgency=low
+
+  * Update kubuntu_73_nomediaioslave_mounthelper.diff
+    by Simon Edwards
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Tue,  19 Sep 2006 23:55:23 +0200
+
+kdebase (4:3.5.4-0ubuntu23) edgy; urgency=low
+
+  * Update kubuntu_76_ksmserver_suspend.diff to use suspend/hibernate icons
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 19 Sep 2006 12:20:00 +0100
+
+kdebase (4:3.5.4-0ubuntu22) edgy; urgency=low
+
+  * Improved kubuntu_73_nomediaioslave_mounthelper.diff and
+    kubuntu_76_kickermedia.diff by Simon Edwards
+  * Added kubuntu_83_media_desktop to fix Desktop icons URLs
+    for /media, by Simon Edwards
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon,  18 Sep 2006 21:08:23 +0200
+
+kdebase (4:3.5.4-0ubuntu21) edgy; urgency=low
+
+  * Add kubuntu_82_safari_useragent.diff to update user agent
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 18 Sep 2006 16:32:41 +0100
+
+kdebase (4:3.5.4-0ubuntu20) edgy; urgency=low
+
+  * Improved kubuntu_73_nomediaioslave_mounthelper.diff
+    by Simon Edwards
+  * Improved kubuntu_76_ksmserver_suspend.diff by
+    Luka Renko
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu,  14 Sep 2006 19:19:23 +0200
+
+kdebase (4:3.5.4-0ubuntu19) edgy; urgency=low
+
+  * Added kubuntu_80_kdm_grub.diff (closes #57066)
+  * Added kubuntu_81_search_engines_config.diff (closes #60058)
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Tue,  12 Sep 2006 08:26:23 +0200
+
+kdebase (4:3.5.4-0ubuntu18) edgy; urgency=low
+
+  * Improved patch kubuntu_79_kdm_halt.diff since kcontrol connection
+    manager module also hardcodes the setting, instead of reading kdm
+    settings (evil)
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon,  11 Sep 2006 13:19:23 +0200
+
+kdebase (4:3.5.4-0ubuntu17) edgy; urgency=low
+
+  * Added patch kubuntu_79_kdm_halt.diff to change the shutdown command
+    (closes #59134)
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon,  11 Sep 2006 11:50:23 +0200
+
+kdebase (4:3.5.4-0ubuntu16) edgy; urgency=low
+
+  * Added binary-install/klipper entry in debian rule to fix klipperrc
+    file (closes #56377)
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Sat,  9 Sep 2006 00:00:23 +0200
+
+kdebase (4:3.5.4-0ubuntu15) edgy; urgency=low
+
+  * Improved kubuntu_05_kdm_theme_config.diff (closes #57428)
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri,  8 Sep 2006 15:06:20 +0200
+
+kdebase (4:3.5.4-0ubuntu14) edgy; urgency=low
+
+  * Added kubuntu_78_kcontrol_hide_component_chooser.diff (closes #59435)
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri,  8 Sep 2006 11:43:20 +0200
+
+kdebase (4:3.5.4-0ubuntu13) edgy; urgency=low
+
+  [ Jonathan Riddell ]
+  * Update kubuntu_68_xinerama.diff with improved patch from Lubos Lunak
+
+  [ Brandon Holtsclaw ]
+  * Added kubuntu_76_kickermedia.diff - Patch for the "Storage Media" kicker applet 
+    to fit into simes other patches
+  * Added kubuntu_77_kiosystem.diff - system:/. The contents of system:/ now go to 
+    normal directories instead of media:/ etc. This also fixes the "System Menu" 
+    kicker applet
+
+ -- Brandon Holtsclaw <imbrandon@kubuntu.org>  Fri,  1 Sep 2006 10:59:47 -0500
+
+kdebase (4:3.5.4-0ubuntu12) edgy; urgency=low
+
+  * debian/patches/kubuntu_76_ksmserver_suspend.diff: provides Suspend
+    and Hibernate buttons on KDE logout dialog. Uses HAL/dbus to detect
+    supported actions and to perform suspend/hibernate.
+
+ -- Luka Renko <lure@ubuntu.com>  Fri, 01 Sep 2006 14:33:00 +0200
+
+kdebase (4:3.5.4-0ubuntu11) edgy; urgency=low
+
+  * Rebuild against dbus 0.90
+
+ -- Sebastian Dröge <slomo@ubuntu.com>  Wed, 30 Aug 2006 13:13:55 +0200
+
+kdebase (4:3.5.4-0ubuntu10) edgy; urgency=low
+
+  * Changed kdebase-kio-plugins.install to remove the trash icon klipper
+    from system applet
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Sun, 27 Aug 2006 21:36:20 +0200
+
+kdebase (4:3.5.4-0ubuntu9) edgy; urgency=low
+
+  [ Jonathan Riddell ]
+  * Add kubuntu_74_sidebar_icons.diff from http://bugs.kde.org/101636
+    "All icons in the services sidebar become folders when pressing plus sign"
+  * Add kubuntu_75_kicker_taskbar_resize.diff from http://bugs.kde.org/128552
+    " "Length" has no effect if External TaskBar is at the side of the screen"
+
+  [ Brandon Holtsclaw ]
+  * Modified kubuntu_73_nomediaioslave_mounthelper.diff from
+    Simon Edwards, https://wiki.ubuntu.com/KubuntuKDEMedia with new updates
+
+ -- Brandon Holtsclaw <imbrandon@kubuntu.org>  Tue, 22 Aug 2006 20:22:20 -0500
+
+kdebase (4:3.5.4-0ubuntu8) edgy; urgency=low
+
+  * Modified kubuntu_70_hide_printers_desktop.diff or printers to
+    still appear in SystemSettings whenever hidden in K menu
+  * Modified konqueror.install to remove konq sidebar system entry.
+    Causes a crash because of the kicker system applet patch
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon, 18 Aug 2006 20:22:20 +0200
+
+kdebase (4:3.5.4-0ubuntu7) edgy; urgency=low
+
+  [ Jonathan Riddell ]
+  * Add kubuntu_73_nomediaioslave_mounthelper.diff from
+    Simon Edwards, http://www.kdedevelopers.org/node/2231
+
+  [ Luka Renko ]
+  * Moved Ubuntu keycode -> xkeysym mapping from kdeutils/kmilo
+  * debian/ubuntu.xmodmap: Ubuntu laptop keycode -> xkeysym mapping
+  * debian/80ubuntu-xmodmap: Xsession startup script for Ubuntu laptop xmodmap
+  * debian/patches/kubuntu_72_kxkb_xmodmap.diff: reload Ubuntu laptop xmodmap on
+    keyboard layout switch (after setxkbmap)
+
+ -- Luka Renko <lure@ubuntu.com>  Sun, 20 Aug 2006 13:36:55 +0200
+
+kdebase (4:3.5.4-0ubuntu6) edgy; urgency=low
+
+  * Added kubuntu_70_hide_printers_desktop.diff to hide the printers
+    configuration entry in kmenu.
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Fri, 18 Aug 2006 15:17:20 +0200
+
+kdebase (4:3.5.4-0ubuntu5) edgy; urgency=low
+
+  * Fix string in kubuntu_67_easy_zeroconf.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed,  9 Aug 2006 11:25:20 +0000
+
+kdebase (4:3.5.4-0ubuntu4) edgy; urgency=low
+
+  * Add missing includes to kubuntu_67_easy_zeroconf.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon,  7 Aug 2006 09:28:13 -0400
+
+kdebase (4:3.5.4-0ubuntu3) edgy; urgency=low
+
+  * Add warning message dialogue when enabling Zeroconf in 
+    in kubuntu_67_easy_zeroconf.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue,  1 Aug 2006 17:26:01 +0000
+
+kdebase (4:3.5.4-0ubuntu2) edgy; urgency=low
+
+  * Add kdebase-data replaces kcontrol << 3.5.4
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue,  1 Aug 2006 15:10:17 +0000
+
+kdebase (4:3.5.4-0ubuntu1) edgy; urgency=low
+
+  * New upstream release
+  * Add kubuntu_69_no_kcontrol_joystick.diff, compilation is 
+    broken with current linux headers
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 25 Jul 2006 10:43:22 +0000
+
+kdebase (4:3.5.3-2ubuntu8) edgy; urgency=low
+
+  * Fix path to executables in kubuntu_67_easy_zeroconf.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 24 Jul 2006 14:49:07 +0100
+
+kdebase (4:3.5.3-2ubuntu7) edgy; urgency=low
+
+  * Add kubuntu_68_xinerama.diff from 
+    http://ktown.kde.org/~seli/xinerama/
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 20 Jul 2006 18:41:03 +0100
+
+kdebase (4:3.5.3-2ubuntu6) edgy; urgency=low
+
+  * Remove bdftopcf from build-deps, not in xfont-utils
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 20 Jul 2006 14:57:22 +0100
+
+kdebase (4:3.5.3-2ubuntu5) edgy; urgency=low
+
+  * Update kubuntu_40_xmkmf.diff for new X packages and remove 
+    kubuntu_64_xbindir.diff
+  * Add kubuntu_67_easy_zeroconf.diff for 
+    https://launchpad.net/distros/ubuntu/+spec/kubuntu-easy-zeroconf
+  * Add kubuntu_00_autoconf2.60.diff for Autoconf 2.60 compatibility
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 19 Jul 2006 23:02:19 +0100
+
+kdebase (4:3.5.3-2ubuntu4) edgy; urgency=low
+
+  * Install directory.trash into unused
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 17 Jul 2006 21:45:33 +0000
+
+kdebase (4:3.5.3-2ubuntu3) edgy; urgency=low
+
+  * Add kubuntu_66_xscreensaver.diff from 
+    http://bugs.kde.org/128610
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue,  4 Jul 2006 14:44:38 +0000
+
+kdebase (4:3.5.3-2ubuntu2) edgy; urgency=low
+
+  * Build-dep on latest kdelibs, fixes Qt binary compatibility break
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 28 Jun 2006 16:18:05 +0000
+
+kdebase (4:3.5.3-2ubuntu1) edgy; urgency=low
+
+  * Merge with Debian
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 27 Jun 2006 09:13:53 +0000
+
+kdebase (4:3.5.3-2) unstable; urgency=medium
+
+  * KDE_3_5_BRANCH update (up to r549661).
+    + Fixes kpager crash. (Closes: #370158)
+
+  * Urgency medium for RC kpager crash fix.
+
+  +++ Changes by Christopher Martin:
+
+  * Add a small patch to make the Printer panel available from the KMenu
+    again.
+
+  * Add numerous manpages from Holger Hartmann. Thanks!
+    (Closes: #370140, #370164, #370358)
+
+  * Make kcontrol suggest ntpdate | ntp-simple, since the Date and Time panel
+    can use NTP to set up the clock. (Closes: #369899)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri,  9 Jun 2006 09:51:32 -0400
+
+kdebase (4:3.5.3-1) unstable; urgency=low
+
+  * New upstream release.
+    + fix kwin alt-tab problems. (Closes: #363357, #361421, #361127)
+    + fix problems with systram. (Closes: #347320)
+
+  +++ Changes by Christopher Martin:
+
+  * Add konqueror Suggests for java, since java works (more or less)
+    with the DFSG-free gij-4.1 and libgcj7-awt.
+
+  * Lower konqueror's Recommends on ksvg to a Suggests.
+
+  * Improve kpager's package description. Thanks to David Liontooth.
+    (Closes: #366476)
+
+  * Update the kate manpage. (Closes: #347883)
+
+  * Manually add /usr/bin/X11 to the KDM's default session path, as otherwise
+    systems still running X11R6.9 won't be able to find X binaries, which can
+    cause the login process to fail under certain circumstances. This bit of
+    cruft (for X11R7 users) should be harmless, and can be removed post-Etch.
+    (Closes: #367072)
+
+  +++ Changes by Pierre Habouzit:
+
+  * Move arch indep files from kcontrol into kdebase-data. (Closes: #233379)
+    (still *.desktop files remains in kcontrol to avoid beeing advertised from
+    KDE menus with no corresponding binaries).
+
+  * Add 'ru' debconf templates translation, thanks to Yuriy Talakan.
+    (Closes: #367206)
+
+  * Add konqueror.presubj (konqueror is responsible of 25% of the kdebase bug
+    reports) to ask for more precise bug reports, because often they lack the
+    fundamental information necessary to make them useful.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 29 May 2006 09:55:11 +0200
+
+kdebase (4:3.5.2-2) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * Now that menu-xdg+menu can provide xsession .desktop files for window
+    managers, add /var/lib/menu-xdg/xsessions to kdmrc's default list of
+    places to search. Window managers should continue to provide their
+    own .desktop files, however, since they will be more customized and
+    won't force users to install the menu package. This is merely a
+    fallback. (Closes: #360919)
+
+  * Make kdm look for /usr/bin/X by default, now that /usr/X11R6 is on its way
+    out. Adjust other paths in kdmrc as well. kdm should now work better with
+    X.Org 7. (Closes: #362924)
+
+  * Patch kdm so that if it can't find the X executable in kdmrc (now
+    /usr/bin/X by default), then try /usr/X11R6/bin/X, then finally
+    /usr/bin/X. This should keep kdm working for users who have a partial or
+    botched dist-upgrade, or neglected to permit the installation of an
+    up-to-date kdmrc.
+
+  * Revamp /etc/pam.d/kdm and the other pam files. They should now find the
+    new /etc/default/locale language settings. (Closes: #361089, #361163)
+
+  * Remove xlibs-static-pic build-dependency, and replace it with
+    libfontenc-dev, for the more modular X.Org 7. Also add libxkbfile-dev to
+    the build-depends. (Closes: #363438)
+
+  * Improve konqueror's use of alternatives, by slaving the konqueror manpage
+    to the x-www-browser manpage. Thanks to Magnus Holmgren. (Closes: #363076)
+
+  * Fix klipper description typo. (Closes: #364171)
+
+  +++ Changes by Pierre Habouzit.
+
+  * Add gl.po to the debconf templates. (Closes: #361208)
+
+  * Improve konsole's use of alternatives, by slaving the konsole manpage to
+    the x-terminal-emulator manpage. Thanks to Magnus Holmgren.
+    (Closes: #363280)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 22 Apr 2006 20:00:39 -0400
+
+kdebase (4:3.5.2-1) unstable; urgency=low
+
+  * New upstream release.
+    + Fixes the klipper + OpenOffice.org problems.
+    (Closes: #350930)
+
+  * KDE_3_5_BRANCH update (up to r523654).
+
+  +++ Changes by Christopher Martin:
+
+  * Add a kpersonalizer manpage from Joe Zonker Brockmeier. Thanks.
+    (Closes: #327395)
+
+  * Make the KDM option "Restart X Server" visible by default again.
+
+  * Fix the logitechmouse udev rules. Thanks to Henrique de Moraes Holschuh
+    for spotting the problems. (Closes: #359751, #359773)
+
+  +++ Changes by Pierre Habouzit:
+
+  * Add a recommends on ksvg for konqueror. (Closes: #200008)
+
+  * Add a note on how to read Kdm help, since no "help" button exists for it.
+    (Closes: #294126)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 28 Mar 2006 20:19:46 -0500
+
+kdebase (4:3.5.1-1) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * Enable zeroconf support in ksysguardd; add libavahi-compat-libdnssd-dev to
+    the build-depends. (Closes: #348583)
+
+  * Merge startkde manpage (and maintainer script patch to fully integrate it)
+    from Philipp Grau. Thanks. (Closes: #348501)
+
+  * Upload to unstable.
+
+  +++ Changes by Luk Claes:
+
+  * Add Italian debconf translation (thanks to Luca Monducci).
+    (Closes: #349344)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 26 Jan 2006 19:18:45 -0500
+
+kdebase (4:3.5.0-4) unstable; urgency=low
+
+  +++ Changes by Isaac Clerencia
+
+  * Add kdnssd kcontrol module files to kcontrol package
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 11 Jan 2006 23:05:12 +0100
+
+kdebase (4:3.5.0-3) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * Install kdm's NEWS file in all kdebase packages. This ensures that
+    apt-listchanges will display the news to all users. (Closes: #344947)
+
+  +++ Changes by Adeodato Simó:
+
+  * Upload to unstable.
+
+  * KDE_3_5_BRANCH update (up to r494868).
+
+  * Use the new --with-usbids configure option to use the usb.ids file
+    provided by usbutils instead of the one included in the source. Make
+    kcontrol depend on usbutils for this, and do not ship usb.ids anymore.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat,  7 Jan 2006 19:11:37 +0100
+
+kdebase (4:3.5.0-2) experimental; urgency=low
+
+  * Upload to experimental.
+
+  * KDE_3_5_BRANCH update (up to r488815).
+
+  +++ Changes by Christopher Martin:
+
+  * Add strict build-depends on dbus and hal, ensuring that we build against
+    the latest packages. (Closes: #332647)
+
+  * No longer build with gcc-3.4 on any architectures, since gcc-4.0 should
+    be fixed. (Closes: #342980)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 15 Dec 2005 19:25:37 -0500
+
+kdebase (4:3.5.2-0ubuntu27) dapper-security; urgency=low
+
+  * SECURITY UPDATE: KDM symlink attack vulnerability
+  * Add kubuntu_65_kdm_symlink_vunerability.diff
+  * KDM allows the user to select the session type for login. This
+    setting is permanently stored in the user home directory. By
+    using a symlink attack, KDM can be tricked into allowing the
+    user to read file content that would otherwise be unreadable
+    to this particular user. 
+  * References:
+    CVE-2006-2449
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 12 Jun 2006 16:01:48 +0000
+
+kdebase (4:3.5.2-0ubuntu26) dapper; urgency=low
+
+  * Add kubuntu_64_xbindir.diff to set XBINDIR to /usr/bin
+    Fixed upgrades when xserver-xorg is not installed
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 22 May 2006 17:48:01 +0300
+
+kdebase (4:3.5.2-0ubuntu25) dapper; urgency=low
+
+  * Fix kubuntu_53_kwallet_config.diff to not install kwallet 
+    file in wrong directory, closes Malone #45999
+  * Install filemanagement and webbrowsing konqueror profiles, 
+    closes Malone #45004
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 22 May 2006 17:09:21 +0300
+
+kdebase (4:3.5.2-0ubuntu24) dapper; urgency=low
+
+  * debian/cdbs/kde.mk:
+    - added dh_iconcache.
+
+ -- Daniel Holbach <daniel.holbach@ubuntu.com>  Thu, 18 May 2006 21:03:58 +0200
+
+kdebase (4:3.5.2-0ubuntu23) dapper; urgency=low
+
+  * Don't install Konqueror default profiles
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Thu, 12 May 2006 02:00:44 +0200
+
+kdebase (4:3.5.2-0ubuntu22) dapper; urgency=low
+
+  * Update kubuntu_20_kdesu_sudo.diff to fix run as foo message in kdesu
+    with -u switch (Closes: Malone #41184)
+
+ -- Raphaël Pinson <raphink@ubuntu.com>  Thu, 11 May 2006 12:12:44 +0200
+
+kdebase (4:3.5.2-0ubuntu21) dapper; urgency=low
+
+  * Make sure all patches unapplied before uploading
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 10 May 2006 18:18:50 +0300
+
+kdebase (4:3.5.2-0ubuntu20) dapper; urgency=low
+
+  * Add kubuntu_63_pot_generation_path.diff to create 
+    some .pot files in the correct directory.
+  * Edit kde.mk to be able to find extractattr for .pot generation
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue,  9 May 2006 18:08:02 +0300
+
+kdebase (4:3.5.2-0ubuntu19) dapper; urgency=low
+ 
+  * Add kubuntu_62_genkdmconf_fix.diff, closes Malone #39599 
+
+ -- Frode M. Doeving <frode@lnix.net>  Mon,  1 May 2006 15:25:48 +0100
+
+kdebase (4:3.5.2-0ubuntu18) dapper; urgency=low
+
+  * Fix wallpaper in kubuntu_05_kdm_theme_config.diff
+  * Alter kubuntu_52_gtk_qt_engine_config.diff, don't make use of
+    gtk_qt_engine if gnome or xfce are already installed (Malone #36256)
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon,  1 May 2006 15:02:46 +0100
+
+kdebase (4:3.5.2-0ubuntu17) dapper; urgency=low
+
+  * Remove kubuntu_36_hide_kjobviewer_menu_entry.diff
+    handy to be able to get at print job viewer
+    Closes Malone #38573
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sat, 29 Apr 2006 16:05:23 +0100
+
+kdebase (4:3.5.2-0ubuntu16) dapper; urgency=low
+
+  * Update kubuntu_05_kdm_theme_config.diff for dapper wallpaper
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 27 Apr 2006 15:45:33 +0100
+
+kdebase (4:3.5.2-0ubuntu15) dapper; urgency=low
+
+  * Removed kubuntu_17_hide_desktop_trash.diff and
+    kubuntu_46_no_desktop_files.diff and install desktop files in
+    /usr/share/kdesktop/unused
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Wed, 26 Apr 2006 03:01:24 +0200
+
+kdebase (4:3.5.2-0ubuntu14) dapper; urgency=low
+
+  * Added previously removed kubuntu_54_system_protocol_home_dir.diff  make
+    system:/ use /home/foo not system:/home/foo
+  * Removed system tab from konqueror's sidebar
+  * Alter kubuntu_52_gtk_qt_engine_config.diff, don't make use of
+    gtk_qt_engine if gnome or xfce are already installed (Malone #36256)
+  * Added kubuntu_61_kdeprint_admin.diff, makes kdeprint admin mode work
+    (Malone #39867)
+
+ -- Anthony Mercatante <tonio@ubuntu.com>  Mon, 24 Apr 2006 21:16:19 +0200
+
+kdebase (4:3.5.2-0ubuntu13) dapper; urgency=low
+
+  * Add kubuntu_59_lisa_popup.diff to prevent displaying a popup error when
+    the lisa package is not installed.
+
+ -- Raphaël Pinson <raphink@ubuntu.com>  Sun, 23 Apr 2006 23:19:19 +0200
+
+kdebase (4:3.5.2-0ubuntu12) dapper; urgency=low
+
+  * Edit debian/cdbs/kde.mk to mark .po files as UTF-8
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 21 Apr 2006 19:14:28 +0100
+
+kdebase (4:3.5.2-0ubuntu11) dapper; urgency=low
+
+  * Fix serverguide URL in kubuntu_33_kubuntuify_about.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 21 Apr 2006 16:12:54 +0100
+
+kdebase (4:3.5.2-0ubuntu10) dapper; urgency=low
+
+  * Add missing "|| true" in case the rmdir fails.
+
+ -- Scott James Remnant <scott@ubuntu.com>  Fri, 21 Apr 2006 11:09:44 +0100
+
+kdebase (4:3.5.2-0ubuntu9) dapper; urgency=low
+
+  * Drop hotplug script entirely and update udev rules to Ubuntu standards.
+
+ -- Scott James Remnant <scott@ubuntu.com>  Thu, 20 Apr 2006 12:29:01 +0100
+
+kdebase (4:3.5.2-0ubuntu8) dapper; urgency=low
+
+  * Add kubuntu_58_kwin_branch.diff fixes crash on alt-tab and 
+    focus policies
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 14 Apr 2006 15:35:56 +0000
+
+kdebase (4:3.5.2-0ubuntu7) dapper; urgency=low
+
+  * konqueror: Put the system tab back in sidebar now that we deal with the
+    kio properly.
+
+ -- Raphaël Pinson <raphink@ubuntu.com>  Fri, 14 Apr 2006 00:59:01 +0200
+
+kdebase (4:3.5.2-0ubuntu6) dapper; urgency=low
+
+  * Remove kubuntu_54_system_protocol_home_dir.diff, restricting
+    protocols in .desktop files is better. 
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 13 Apr 2006 14:45:35 +0100
+
+kdebase (4:3.5.2-0ubuntu5) dapper; urgency=low
+
+  * Fix compile error in kubuntu_33_kubuntuify_about.diff 
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed,  5 Apr 2006 16:10:20 +0100
+
+kdebase (4:3.5.2-0ubuntu4) dapper; urgency=low
+
+  * Remove obsolete Quick Guide from 
+    kubuntu_33_kubuntuify_about.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue,  4 Apr 2006 12:10:33 +0100
+
+kdebase (4:3.5.2-0ubuntu3) dapper; urgency=low
+
+  * konqueror: Remove system tab from sidebar (Close: Malone #33917)
+
+ -- Raphaël Pinson <raphink@ubuntu.com>  Fri, 31 Mar 2006 14:08:35 +0200
+
+kdebase (4:3.5.2-0ubuntu2) dapper; urgency=low
+
+  * kdebase-kio-plugins: Remove trash from the system applet 
+    (Close: Malone #14393).
+  * kdesktop: Remove unused invisible desktop files on the Desktop.
+
+ -- Raphaël Pinson <raphink@ubuntu.com>  Wed, 29 Mar 2006 18:14:35 +0200
+
+kdebase (4:3.5.2-0ubuntu1) dapper; urgency=low
+
+  * New upstream release
+  * Update 25_khelp_htdig.diff
+  * Remove kubuntu_44_systray_show.diff
+  * Remove kubuntu_45_kxkb_xx_XX_layouts.diff
+  * Remove kubuntu_49_xkb_path.diff
+  * Remove kubuntu_39_konqueror_focus_location_bar.diff
+  * Remove kubuntu_47_autostart_kdeonly.diff
+  * Add kubuntu_56_kmenuedit_doc.diff from Rocco Stanzione Malone No 36636
+  * Add kubuntu_57_kxbd_patch.diff from Raphael Pinson, fixes xkbd path
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 20 Mar 2006 11:22:14 +0000
+
+kdebase (4:3.5.1-0ubuntu14) dapper; urgency=low
+
+  * Add kubuntu_55_kdm_usplash_down.diff run usplash on exit from KDM
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 17 Mar 2006 12:26:58 +0000
+
+kdebase (4:3.5.1-0ubuntu13) dapper; urgency=low
+
+  * Update kdm background colour in kubuntu_05_kdm_theme_config.diff
+    to match current artwork
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 15 Mar 2006 21:17:36 +0000
+
+kdebase (4:3.5.1-0ubuntu12) dapper; urgency=low
+
+  [ Anthony Mercatante ]
+  * Add kubuntu_53_kwallet_config.diff copy a default 
+    KWallet config for new users
+  * Add kubuntu_54_system_protocol_home_dir.diff make
+    system:/ use /home/foo not system:/home/foo keep 
+    Kaffeine etc happy
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon,  6 Mar 2006 12:10:14 +0000
+
+kdebase (4:3.5.1-0ubuntu11) dapper; urgency=low
+
+  * Add kubuntu_52_gtk_qt_engine_config.diff install 
+    gtk-qt-engine config files if suitable
+  * Patch by Anthony Mercatante <tonio@ubuntu.com>
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 27 Feb 2006 17:30:59 +0000
+
+kdebase (4:3.5.1-0ubuntu10) dapper; urgency=low
+
+  * Add kubuntu_50_kate_desktop.diff use existing Kate session
+  * Add kubuntu_51_kdmrc_options.diff add back restart X option
+  * Patches by Anthony Mercatante <tonio@ubuntu.com>
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 27 Feb 2006 15:18:06 +0000
+
+kdebase (4:3.5.1-0ubuntu9) dapper; urgency=low
+
+  * Fix URLs on kubuntu_33_kubuntuify_about.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 23 Feb 2006 13:48:01 +0000
+
+kdebase (4:3.5.1-0ubuntu8) dapper; urgency=low
+
+  * Add new line in kubuntu_33_kubuntuify_about.diff to fix 
+    layout of about page
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 20 Feb 2006 11:46:30 +0000
+
+kdebase (4:3.5.1-0ubuntu7) dapper; urgency=low
+
+  * Update kubuntu_33_kubuntuify_about.diff for dapper
+  * Add kubuntu_48_xkb_path.diff to fix keyboard layout lists in kxkb config
+    window (Closes: Malone #31165).
+    Patch by Raphael Pinson <raphink@ubuntu.com>
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 15 Feb 2006 23:05:11 +0000
+
+kdebase (4:3.5.1-0ubuntu6) dapper; urgency=low
+
+  * Add kubuntu_48_hide_display.diff to hide display module
+    from KControl, replaced by Guidance 0.6 displayconfig
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 15 Feb 2006 15:26:25 +0000
+
+kdebase (4:3.5.1-0ubuntu5) dapper; urgency=low
+
+  * Fix install path for Home.desktop and System.desktop
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu,  9 Feb 2006 16:22:53 +0000
+
+kdebase (4:3.5.1-0ubuntu4) dapper; urgency=low
+
+  * Do install System.desktop or Home.desktop kdesktop icons and add
+    kubuntu_46_no_desktop_files.diff to hide them 
+    (makes it easier to turn them back on)
+  * Add kubuntu_47_autostart_kdeonly.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu,  9 Feb 2006 13:26:36 +0000
+
+kdebase (4:3.5.1-0ubuntu3) dapper; urgency=low
+
+  * Add kubuntu_45_kxkb_xx_XX_layouts.diff fix support for 
+    xx_XX layouts in kxkb
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri,  3 Feb 2006 11:41:13 +0000
+
+kdebase (4:3.5.1-0ubuntu2) dapper; urgency=low
+
+  * Added a desktop file for kdcop and added a line to
+    debian/kdebase-bin.install to install it in the system
+    (Closes : Malone #30112)
+  * Patch from Raphaël Pinson <raphink@raphink.net>
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 31 Jan 2006 02:14:55 +0100
+
+kdebase (4:3.5.1-0ubuntu1) dapper; urgency=low
+
+  * New upstream release
+  * Add kubuntu_44_systray_show.diff, advised by upstream to 
+    ensure systray apps dock properly
+  * Lower dbus build-dep for backporting
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 23 Jan 2006 14:26:06 +0000
+
+kdebase (4:3.5.0-0ubuntu16) dapper; urgency=low
+
+  * Add kubuntu_43_kdesu_terminal_output.diff to make kdesu
+    have terminal output
+  * Remove xlibs-static-pic from build-deps
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 20 Jan 2006 15:13:49 +0000
+
+kdebase (4:3.5.0-0ubuntu15) dapper; urgency=low
+
+  * kcontrol replaces old kdebase-bin for kcm_kdnssd.desktop
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 17 Jan 2006 15:20:42 +0000
+
+kdebase (4:3.5.0-0ubuntu14) dapper; urgency=low
+
+  * Remove /usr/share/apps/konsole/fonts/fonts.dir from konsole.install
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 12 Jan 2006 20:28:48 +0000
+
+kdebase (4:3.5.0-0ubuntu13) dapper; urgency=low
+
+  * Tighten build-dep to kdelibs 4:3.5.0-0ubuntu9
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 12 Jan 2006 18:22:00 +0000
+
+kdebase (4:3.5.0-0ubuntu12) dapper; urgency=low
+
+  * Tighten build-dep to kdelibs 4:3.5.0-0ubuntu8
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 12 Jan 2006 15:34:03 +0000
+
+kdebase (4:3.5.0-0ubuntu11) dapper; urgency=low
+
+  * Add kubuntu_42_konsole_root_shell.diff for a working root shell via sudo
+    (Closes: ubuntu bugzilla #12343)
+
+ -- Stephan Hermann <sh@sourcecode.de>  Wed, 11 Jan 2006 18:42:39 +0100
+
+kdebase (4:3.5.0-0ubuntu10) dapper; urgency=low
+
+  * Remove kubuntu_41_kcmdnssd_friendly_name.diff, which shouldn't
+    have been there
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 11 Jan 2006 14:48:28 +0000
+
+kdebase (4:3.5.0-0ubuntu9) dapper; urgency=low
+
+  * Add kubuntu_40_xmkmf.diff for new imake/xmkmf path
+  * Install kcm_kdnssd in kcontrol
+  * Add kubuntu_41_kcmdnssd_name_icon.diff to make kcontrol module
+    more recognisable
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 10 Jan 2006 23:51:15 +0000
+
+kdebase (4:3.5.0-0ubuntu8) dapper; urgency=low
+
+  * Change xmkmf build-dep to imake
+  * Remove build-dep on xutils (was for imake)
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 10 Jan 2006 22:16:38 +0000
+
+kdebase (4:3.5.0-0ubuntu7) dapper; urgency=low
+
+  * Update 10_kdmrc_defaults_kubuntu.diff changing Debian to Kubuntu
+    and rename to kubuntu_10_kdmrc_defaults_kubuntu.diff
+  * Remove kdm dependency on kubuntu-default-settings, setting KDM 
+    theme now scripted in kubuntu-default-settings
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 10 Jan 2006 00:26:23 +0000
+
+kdebase (4:3.5.0-0ubuntu6) dapper; urgency=low
+
+  * Add kubuntu_39_konqueror_focus_location_bar.diff fix 
+    http://bugs.kde.org/117031
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri,  6 Jan 2006 00:49:25 +0000
+
+kdebase (4:3.5.0-0ubuntu5) dapper; urgency=low
+
+  * rebuild against latest dbus, updated dependencies
+
+ -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 20 Dec 2005 22:05:42 +0100
+
+kdebase (4:3.5.0-0ubuntu4) dapper; urgency=low
+
+  * Remove printmgr.desktop from install target
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sat, 17 Dec 2005 22:29:48 +0000
+
+kdebase (4:3.5.0-0ubuntu3) dapper; urgency=low
+
+  * Add kubuntu_38_ksysguard_pot.diff fix ksysguard .pot generation
+  * Edit kde.mk to allow for fail on gettext
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sat, 17 Dec 2005 18:21:40 +0000
+
+kdebase (4:3.5.0-0ubuntu2) dapper; urgency=low
+
+  * Do not install System.desktop or Home.desktop kdesktop icons
+  * Add kubuntu_34_no_duplicate_desktop_file.diff for 
+    duplicate printer .desktop files
+  * Add kubuntu_35_hide_klipper_menu_entry.diff autostarts by default
+  * Add kubuntu_36_hide_kjobviewer_menu_entry.diff starts when printing
+  * Add kubuntu_37_hide_kdeprintfax_menu_entry.diff kdeprintfax 
+    is available when printing with Print to Fax
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 14 Dec 2005 21:51:29 +0000
+
+kdebase (4:3.5.0-0ubuntu1) dapper; urgency=low
+
+  * New upstream release
+  * Remove GCC 3.4 on hppa
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue,  6 Dec 2005 12:27:26 +0000
+
+kdebase (4:3.5-rc2-0ubuntu2) dapper; urgency=low
+
+  * Tighten build-dep to pick up new kdelibs4-dev with libattr1-dev
+    and libacl1-dev
+  * Remove gettext-kde and kdesdk-scripts from build-dep, now in kdelibs4-dev
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sat, 26 Nov 2005 00:22:58 +0000
+
+kdebase (4:3.5-rc2-0ubuntu1) dapper; urgency=low
+
+  * New upstream pre-release
+  * Tighten kdelibs-dev build-dep for libstdc++ transition
+  * kdm depends on xauth not xbase-clients
+  * Update 18_default_fonts.diff
+  * Generate .pot files
+  * Remove kubuntu_26_startkde.diff, no need to start ivman in 3.5
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 21 Nov 2005 17:46:39 +0000
+
+kdebase (4:3.5-rc1-1ubuntu1) dapper; urgency=low
+
+  * New upstream pre-release
+  * Sync with Debian
+  * Update kubuntu_05_kdm_theme_config.diff
+  * Update kubuntu_16_hide_kpager_menu_entry.diff
+  * Update kubuntu_19_kdm_zsh_emulate.diff
+  * Update kubuntu_25_kcontrol_only_in_kde.diff
+  * Update kubuntu_30_startkde_background_colour.diff
+  * Update kubuntu_32_usplash_console_font.diff
+  * konqueror replaces old kcontrol
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 10 Nov 2005 23:29:58 +0000
+
+kdebase (4:3.5.0-1) alioth; urgency=low
+
+  * New upstream release.
+
+  * Fixed in this release:
+  
+    + A bug that caused switching to Administrator mode in KControl to
+      fail on occasion is resolved. (Closes: #306951)
+
+  +++ Changes by Christopher Martin:
+
+  * In light of upstream changes, remove the xfonts-konsole package. Instead,
+    ship bitmap fonts as part of konsole.
+
+  * Improve kcontrol's Logitech mouse support in conjunction with udev.
+    However, kcontrol + udev now requires kernel 2.6.14 or later. Older
+    kernels are still supported with the hotplug package.
+
+  * Bump DH_COMPAT to 5. No changes.
+
+  * Add a kdebase-dbg package for helping to trace problems.
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Add manpage for Konsole.
+  
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 30 Nov 2005 02:29:16 -0500
+
+kdebase (4:3.4.3-3) unstable; urgency=low
+
+  * Upload to unstable, rebuilding against kdelibs4c2a.
+
+  * KDE_3_4_BRANCH update (up to r484262).
+
+  +++ Changes by Christopher Martin:
+
+  * Temporarily bump build-depends on dbus to >= 0.23.4-8, ensuring that
+    we build against a package that doesn't link against the pre-transition
+    kdelibs4c2.
+
+  * Add "noextendedglob" to zsh's options when reading the X startup scripts
+    for kdm. This works around some of its quirks. (Closes: #336305)
+
+  * Backport a fix from KDE 3.5 for a bug that caused switching to
+    Administrator mode in KControl to fail on occasion. (Closes: #306951)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 30 Nov 2005 01:14:06 +0100
+
+kdebase (4:3.4.3-2) experimental; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * Add "chmod +x" for usermap.pl in debian/rules, to ensure that the package
+    builds...
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 18 Oct 2005 17:49:19 -0400
+
+kdebase (4:3.4.3-1) experimental; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Christopher Martin:
+
+  * Add a small addition to the "Improving KDE" patch selection used in
+    Debian. The rounded icon text selection now applies on the desktop
+    as well. (Closes: #329484)
+
+  * Increase konsole's x-terminal-emulator priority from 20 to 35, placing it
+    above xterm. (Closes: #332223)
+
+  * Adapt kcontrol's hotplug support for special control of Logitech mice to
+    work with udev as well.
+
+  * Add the Swedish debconf translation by Daniel Nylander. (Closes: #333798)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 15 Oct 2005 14:00:13 -0400
+
+kdebase (4:3.4.2-4) unstable; urgency=medium
+
+  +++ Changes by Christopher Martin:
+
+  * Fix kicker's dependency on kdebase-data so that a binNMU does not render
+    kdebase uninstallable. This is currently a problem on ia64.
+    (Closes: #335285)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 23 Oct 2005 08:25:27 -0400
+
+kdebase (4:3.4.2-3) unstable; urgency=low
+
+  * KDE_3_4_BRANCH update (up to r458655). This includes a fix for a local
+    root exploit, CAN-2005-2494, in the kcheckpass binary (Closes: #327039)
+
+  +++ Changes by Christopher Martin:
+
+  * Add a NEWS entry that explains the KDM upgrade process for users moving
+    from KDM 3.3.x, as well as KDM's new behaviour regarding login scripts.
+    (Closes: #326542, #327191)
+
+  * Add a patch from the "Improving KDE" set that eliminates a superfluous
+    border around kicker's systray that appeared on mouseover.
+
+  * Add another "Improving KDE" patch that allows the selection of a special
+    tranparent selection rectangle (off by default) to be made from the
+    Control Center's Style module. Temporarily bump our kdelibs build-depends,
+    to ensure that we build against a similarly patched Qt and kdelibs.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 16 Sep 2005 16:59:45 -0400
+
+kdebase (4:3.4.2-2) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * For kdebase-data, add conflicts against old versions of kcontrol, kwin,
+    and kicker. This should prevent users from unwittingly upgrading
+    kdebase-data to 3.4.x, while the rest of KDE stays at the 3.3.x level.
+    This had resulted in kcontrol breaking and other assorted issues.
+    (Closes: #325592)
+
+  +++ Changes by Adeodato Simó:
+
+  * Build with g++-3.4 on arm, m68k and hppa; kdebase also makes gcc 4.0 ICE
+    as described in #323133.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 02 Sep 2005 10:59:00 +0200
+
+kdebase (4:3.4.2-1) unstable; urgency=low
+
+  * New upstream release.
+
+  * KDE_3_4_BRANCH update.
+
+  * Bugs reported in the Debian BTS fixed by this release:
+
+    - kdm uses /dev/urandom instead of /dev/random as the default source
+      of entropy. This solves myriad issues on low-entropy systems.
+      (Closes: #240027, #294267, #298254, #320838)
+
+    - "-nolisten tcp" no longer prevents kdm from connecting to remote
+      hosts. (Closes: #263449)
+
+  +++ Changes by Pierre Habouzit:
+
+  * [debian/po/vi.po] : add the Vietnamese debconf translation by Clytie
+    Siddall. (Closes: #312156)
+
+  +++ Changes by Christopher Martin:
+
+  * Add build-dependencies on libxss-dev, libxxf86misc-dev, libxau-dev,
+    libxdmcp-dev, libxcomposite-dev, libxdamage-dev, and prune the
+    07_xlibs-static-pic.diff accordingly, for the X.Org transition. kompmgr
+    is also now built and installed with kwin.
+
+  * Tightened build dependency on dbus-qt-1-dev to force building against a
+    C++ transitioned version. Can be removed once dbus (>= 0.23.4-5) is
+    available on all arches.
+
+  * Tighten all package relations between packages in kdebase, preventing many
+    instances of potentially harmful partial upgrades. In particular, ensure
+    that kdm is upgraded along with kdebase-bin. (Closes: #312358)
+
+  * Fix typos in the kappfinder manpage. Thanks to A Costa. (Closes: #312767)
+
+  * Add a patch that makes knotify aware that arts is available when arts is
+    manually started. This (more or less) resolves the issue wherein knotify
+    did not work with arts, had arts ever once been unavailable.
+    (Closes: #312217)
+
+  * No longer set a random ForgingSeed in the kdmrc conffile, for this caused
+    each kdebase build to generate a different kdmrc, and therefore made
+    updates a nuissance.
+
+  * Make kdm Suggest kdepasswd, since the later contains icons that can be
+    used to provide users with 'face' icons.
+
+  * Fix formatting of the kdepasswd manpage. (Closes: #313472)
+
+  * Add the Arabic debconf translation by Mohammed Adnene Trojette.
+    (Closes: #320768)
+
+  * Fix kdm session files that contain the incorrent binary names.
+    (Closes: #320628)
+
+  * Change kdm's debconf dependency into a dependency on debconf |
+    debconf-2.0, as this allows the installation of cdebconf.
+
+  * Move all of konsole's README documentation into /usr/share/doc/konsole.
+    (Closes: #324003)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 25 Aug 2005 22:58:52 +0200
+
+kdebase (4:3.4.1-1) experimental; urgency=low
+
+  * New upstream release.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 31 May 2005 15:43:52 -0400
+
+kdebase (4:3.4.3-0ubuntu6) breezy-updates; urgency=low
+
+  * Add kubuntu_34_kdesu_sycoca_cache_path.diff fix administrator
+    kcontrol module bug http://bugzilla.ubuntu.com/8681
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed,  2 Nov 2005 02:37:11 +0000
+
+kdebase (4:3.4.3-0ubuntu5) breezy-updates; urgency=low
+
+  * Fix kubuntu_23_hal_api.diff to include the proper configure 
+    checks for hal 0.5  http://bugzilla.ubuntu.com/17625
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri, 14 Oct 2005 13:39:57 +0000
+
+kdebase (4:3.4.3-0ubuntu4) breezy; urgency=low
+
+  * Fix typo in kubuntu_18_default_fonts.diff to give anti-aliased
+    fonts in kdm
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 11 Oct 2005 22:50:44 +0100
+
+kdebase (4:3.4.3-0ubuntu3) breezy; urgency=low
+
+  * Add kubuntu_33_kubuntuify_about.diff to make about page point to
+    documentation
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 10 Oct 2005 16:02:47 +0100
+
+kdebase (4:3.4.3-0ubuntu2) breezy; urgency=low
+
+  * Add a build-dep on automake1.9 to clear up the failure to build.
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Mon, 10 Oct 2005 14:03:47 +1000
+
+kdebase (4:3.4.3-0ubuntu1) breezy; urgency=low
+
+  * New upstream release
+  * Move 18_default_fonts.diff to kubuntu_18_default_fonts.diff and use DejaVu
+    fixes http://bugzilla.ubuntu.com/14690
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Fri,  7 Oct 2005 14:23:37 +0000
+
+kdebase (4:3.4.2-0ubuntu5) breezy; urgency=low
+
+  * Add kubuntu_32_usplash_console_font.diff
+    make sure to set console fonts when usplash is runing
+    before X is started (ubuntu No 15344 , No 15102)
+  * Ensure kubuntu_27_aboutscreen_searchbar.diff is not 
+    applied before upload
+  * Fix kdm.postinst to move kdm back to S21
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue, 27 Sep 2005 12:50:34 +0100
+
+kdebase (4:3.4.2-0ubuntu4) breezy; urgency=low
+
+  * Add kubuntu_29_desktop_roundedge_icons.diff for rounded text
+    on desktop icons
+  * Compile with GCC 3.4 on hppa, m68k, arm to prevent 
+    internal compiler error
+  * Add kubuntu_30_startkde_background_colour.diff to make default
+    background colour match default wallpaperchange background colour
+  * Do not install SVG icons to save space
+  * Install simple konqueror.rc into /usr/share/apps/konqueror, workaround
+    for sessions loading beastie http://bugs.kde.org/109493
+  * Add kubuntu_31_kicker_crash.diff branch patch to prevent kicker crashes
+  * Update kubuntu_27_aboutscreen_searchbar.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 26 Sep 2005 12:40:50 +0100
+
+kdebase (4:3.4.2-0ubuntu3) breezy; urgency=low
+
+  * Do not install System.desktop or Home.desktop kdesktop icons
+  * Add back missing kubuntu_23_hal_api.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 15 Sep 2005 20:51:54 +0000
+
+kdebase (4:3.4.2-0ubuntu2) breezy; urgency=low
+
+  * SECURITY UPDATE: fix insecure lock file creation
+  * If the directory /var/lock is writeable for a user that is allowed to
+    invoke kcheckpass, a local user can escalate its privileges to the
+    root user.
+  * References:
+    http://www.kde.org/info/security/advisory-20050905-1.txt
+    CAN-2005-2494
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Tue,  6 Sep 2005 11:51:57 +0000
+
+kdebase (4:3.4.2-0ubuntu1) breezy; urgency=low
+
+  * New upstream release
+  * Move 10_kdmrc_defaults.diff to kubuntu_10_kdmrc_defaults.diff 
+    and s/Debian/Kubuntu
+  * Add kubuntu_27_aboutscreen_searchbar.diff
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu,  1 Sep 2005 19:18:56 +0000
+
+kdebase (4:3.4.1-0ubuntu6) breezy; urgency=low
+
+  * Add xmkmf to build-depends, as configure appears to want it.
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Fri, 19 Aug 2005 21:41:55 +1000
+
+kdebase (4:3.4.1-0ubuntu5) breezy; urgency=low
+
+  * Rebuild to pick up new mesa shlibs and drop Xrender.la references.
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Fri, 19 Aug 2005 14:01:12 +1000
+
+kdebase (4:3.4.1-0ubuntu4) breezy; urgency=low
+
+  * New kubuntu_23_hal_api.diff to fix problems 
+    with HAL support
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 27 Jun 2005 16:08:59 +0000
+
+kdebase (4:3.4.1-0ubuntu3) breezy; urgency=low
+
+  * Add build-depend on x11proto-kb-dev where 
+    XKBstr.h has been moved to
+  * Add build-depend on libxkbfile-dev where
+    XKBrules.h has been moved to
+  * Update kubuntu_23_hal_api.diff
+  * Replace 19_kcontrol_only_in_kde.diff with kubuntu_25_kcontrol_only_in_kde.diff 
+    which stops KControl displaying (use System Settings instead)
+  * Add kubuntu_26_startkde.diff to start ivman
+  * Add 25_khelp_htdig.diff from Debian
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Mon, 20 Jun 2005 09:15:07 +0000
+
+kdebase (4:3.4.1-0ubuntu2) breezy; urgency=low
+
+  * Rebuild to get proper libglu1c2 shlibs dependencies.
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Fri, 17 Jun 2005 07:34:22 +0000
+
+kdebase (4:3.4.1-0ubuntu1) breezy; urgency=low
+
+  * Update version number following KDE 3.4.1 release
+  * Add kde-base conflict with kdm << 3.4.1
+  * Add back ktip to meta package
+
+ -- Jonathan Riddell <jr@jriddell.org>  Wed,  1 Jun 2005 00:15:47 +0000
+
+kdebase (4:3.4.1-0ubuntu0pre3) breezy; urgency=low
+
+  * Add build-depend son libxcomposite-dev and libxdamage-dev
+  * Add kubuntu_24_deb_web_shortcut.diff redirecting deb: to package.ubuntu.com
+
+ -- Jonathan Riddell <jr@jriddell.org>  Thu, 26 May 2005 10:38:42 +0000
+
+kdebase (4:3.4.1-0ubuntu0pre2) breezy; urgency=low
+
+  * Add build-dep on libxau-dev, libxdmcp-dev to let KDM compile
+
+ -- Jonathan Riddell <jr@jriddell.org>  Tue, 24 May 2005 19:23:39 +0000
+
+kdebase (4:3.4.1-0ubuntu0pre1) breezy; urgency=low
+
+  * New upstream release.
+  * Sync with Debian
+  * Change /usr/bin/X11 to /usr/X11R6/bin in kdm.README.Debian and 
+    patches/11_genkdmconf.diff renamed to kubuntu_01_genkdmconf.diff
+    and alter PATH in debian/rules
+
+ -- Jonathan Riddell <jr@jriddell.org>  Tue, 24 May 2005 11:34:02 +0000
+
+kdebase (4:3.4.0-0pre4) alioth; urgency=low
+
+  * New upstream release.
+
+  * Bugs reported in the Debian BTS fixed by this release:
+
+    - KDE can now use pmount if available. (Closes: #294258)
+
+    - drag'n'dropping local files from Konqueror to Thunderbird works now
+      (file:/// is used instead of file:/ for the url). (Closes: #296255)
+
+    - konsole now uses a proper set of default fonts, resulting in less
+      obvious corruption. (Closes: #289468)
+
+  * Converted packaging to CDBS (initial version by Daniel Schepler, further
+    changes by Christopher Martin and Adeodato Simó).
+
+  +++ Changes by Christopher Martin:
+
+  * Added a patch to set reasonable default fonts, using the fontconfig
+    defaults, for kpersonalizer, kcontrol, kdm, and the Plastik theme. We
+    also use the Debian Blue artwork to provide a standard desktop
+    background.
+
+  * KDM no longer shows the Custom session. When it works at all, it simply
+    duplicates Default's behaviour anyway. (Closes: #251602)
+
+  * New KDM patches source /etc/profile and the user's normal shell startup
+    scripts. (Closes: #173802, #211953, #250645, #250765, #289143)
+
+  * KDM once again looks for window manager session definitions in
+    /usr/share/apps/kdm/sessions by default. (Closes: #293645, #310155)
+
+  * USB usermap for Logitech mice is now installed, with device permissions
+    set so that members of the plugdev group can make use of the Logitech
+    KControl module (under Peripherals/Mouse).
+
+  * Added README.Debian files for kcontrol and kdebase-kio-plugins, explaining
+    how to setup Logitech mouse advanced configuration, and the media
+    kioslave.
+
+  * New kdebase-doc-html package, containing doc-base registered HTML versions
+    of application handbooks, for users without Konqueror or KHelpCenter.
+
+  * Fixed typos in the kate manpage. Thanks to A. Costa. (Closes: #302812)
+
+  * KControl and KInfoCenter are now only visible in the KDE menu. Their
+    presence elsewhere had caused user confusion. They are both still
+    available through the Debian menu system. Trivial patch borrowed from
+    Kubuntu. (Closes: #246280)
+
+  * Make ksmserver Recommend kpersonalizer, since it is used when
+    running KDE for the first time. Also patch startkde so it doesn't
+    fail when kpersonalizer is not present. (Closes: #309803)
+
+  * Add manpages for kdialog (thanks to Bastian Kleineidam for tracking it
+    down) and my own manpage for kdesu/kdesud. (Closes: #239945)
+
+  +++ Changes by Adeodato Simó:
+
+  * After clearing up some issues with multiple de.po files being sent for
+    inclusion, include an updated German po-debconf translation sent by
+    Florian Ernst, and agreed upon several translators. (Closes: #291954)
+
+  * Created XPM icons for packages having a menu file. Install them in
+    /usr/share/pixmaps and update the menu entries to use them.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 14 May 2005 13:00:44 -0400
+
+kdebase (4:3.3.2-1) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * KDE_3_3_BRANCH update.
+
+  * Fix typo in kdebase-bin description. (Closes: #286587)
+
+  * Update kdeprint documentation to sync with kdelibs patches.
+
+  * Add NEWS.Debian for kdm, explaining the "keyboard doesn't work"
+    problem when upgrading to KDE 3.3, and how to deal with it.
+    (Closes: #266106, #267622)
+
+  * Fix update-alternatives prerm scripts: only --remove when
+    the package is actually being removed, not upgraded. This
+    should prevent the needless resetting of the sysadmin's
+    preferences on package upgrade. (Closes: #247243)
+
+  * Fix debian/copyright to refer to License rather than to Copyright
+    when discussing KDE's licenses.
+
+  +++ Changes by Adeodato Simó:
+
+  * debian/control:
+    - make kdebase-dev depend on kwin for the libkdecorations.so ->
+      libkdecorations.so.1.0.0 symlink. (Closes: #289544)
+
+  * Included Czech po-debconf translation by Miroslav Kure.
+    (Closes: #289454)
+
+  * Add manpages for keditbookmarks, konqueror, and kfmclient.
+    (Closes: #286373)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 23 Jan 2005 16:11:07 +0100
+
+kdebase (4:3.4.0-0ubuntu21) breezy; urgency=low
+
+  * Remove visiblity=hidden from admin/acinclude.m4.in
+
+ -- Jonathan Riddell <jr@jriddell.org>  Sat, 21 May 2005 14:54:28 +0000
+
+kdebase (4:3.4.0-0ubuntu20) breezy; urgency=low
+
+  * CXX transition: Tighten build-deps on kdelibs4-dev and libdbus-qt-1-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 20 May 2005 14:58:10 +0000
+
+kdebase (4:3.4.0-0ubuntu19) breezy; urgency=low
+
+  * Add kubuntu_23_hal_api.diff and change build-depends to compile
+    against new dbus/hal.
+
+ -- Jonathan Riddell <jr@jriddell.org>  Thu, 12 May 2005 15:29:39 +0000
+
+kdebase (4:3.4.0-0ubuntu18) hoary; urgency=low
+
+  * Add kubuntu_21_konq_tab_colour.diff make loading tab text colour visible
+  * Add kubuntu_22_kipper_menu.diff hide klipper from menu
+
+ -- Jonathan Riddell <jr@jriddell.org>  Wed,  6 Apr 2005 02:46:32 +0100
+
+kdebase (4:3.4.0-0ubuntu17) hoary; urgency=low
+
+  * Changed kdm start from S13 to S21 (Ubuntu: 8029)  
+  * More Linitian cleanup
+
+ -- Andreas Mueller <amu@ubuntu.com>  Tue,  5 Apr 2005 16:00:01 +0200
+
+kdebase (4:3.4.0-0ubuntu16) hoary; urgency=low
+
+  * Add kubuntu_20_kdesu_sudo.diff to fix string on kdesu for sudo.
+    Fixes http://bugzilla.ubuntu.com/7327
+
+ -- Jonathan Riddell <jr@jriddell.org>  Sat,  2 Apr 2005 17:01:37 +0100
+
+kdebase (4:3.4.0-0ubuntu15) hoary; urgency=low
+
+  * Remove link to pmount from hal/devices.d for kiomedia
+
+ -- Jonathan Riddell <jr@jriddell.org>  Fri,  1 Apr 2005 00:02:31 +0100
+
+kdebase (4:3.4.0-0ubuntu14) hoary; urgency=low
+
+  * Change Hidden to OnlyShowIn=Old in kubuntu_10_hide_kmenuedit_menu_entry.diff
+    Fixes https://bugzilla.ubuntu.com/8030
+
+ -- Jonathan Riddell <jr@jriddell.org>  Wed, 30 Mar 2005 19:24:00 +0100
+
+kdebase (4:3.4.0-0ubuntu13) hoary; urgency=low
+
+  * Fix kdm login when shell is zsh. Thanks Antti S. Lankila for the hint.
+     19_kdm_zsh_emulate.diff (Hoary #7620)
+  * Fix init script output (Hoary #7180)
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Wed, 30 Mar 2005 01:01:26 +0100
+
+kdebase (4:3.4.0-0ubuntu12) hoary; urgency=low
+
+  * Fix install command for edit-as-root.desktop
+
+ -- Jonathan Riddell <jr@jriddell.org>  Tue, 29 Mar 2005 00:16:01 +0100
+
+kdebase (4:3.4.0-0ubuntu11) hoary; urgency=low
+
+  * Move pmount and hal from depends to recommends for kdebase-kio-plugins
+  * Add edit-as-root.desktop Konqueror service menu
+
+ -- Jonathan Riddell <jr@jriddell.org>  Mon, 28 Mar 2005 20:45:01 +0100
+
+kdebase (4:3.4.0-0ubuntu10) hoary; urgency=low
+
+  * Add kubuntu_18_kate_initial_preference.diff to set make Kate
+    default for text files, not OpenOffice.
+
+ -- Jonathan Riddell <jr@jriddell.org>  Mon, 28 Mar 2005 14:51:20 +0000
+
+kdebase (4:3.4.0-0ubuntu9) hoary; urgency=low
+
+  * Move pmount and hal from recommends to depends for kdebase-kio-plugins
+
+ -- Jonathan Riddell <jr@jriddell.org>  Thu, 24 Mar 2005 05:18:00 +0000
+
+kdebase (4:3.4.0-0ubuntu8) hoary; urgency=low
+
+  * Make default background colour of kdm match wallpaper
+  * Add kubuntu_17_hide_desktop_trash.diff to hide desktop wastebin
+  * Remove dependency on ktip from kdebase
+  * Change Hidden to OnlyShowIn in knetattach.desktop so it isn't hidden from remote:/
+
+ -- Jonathan Riddell <jr@jriddell.org>  Thu, 24 Mar 2005 04:12:14 +0000
+
+kdebase (4:3.4.0-0ubuntu7) hoary; urgency=low
+
+  * Make kdm depend on kubuntu-default-settings
+
+ -- Jonathan Riddell <jr@jriddell.org>  Thu, 17 Mar 2005 07:11:28 +0000
+
+kdebase (4:3.4.0-0ubuntu6) hoary; urgency=low
+
+  * Ensure patches are not applied before uploading
+
+ -- Jonathan Riddell <jr@jriddell.org>  Thu, 17 Mar 2005 03:54:25 +0000
+
+kdebase (4:3.4.0-0ubuntu5) hoary; urgency=low
+
+  * Add further patches to hide menu entries
+
+ -- Jonathan Riddell <jr@jriddell.org>  Thu, 17 Mar 2005 02:34:41 +0000
+
+kdebase (4:3.4.0-0ubuntu4) hoary; urgency=low
+
+  * Add kubuntu_07_hide_knetattach_menu_entry.diff-foo to hide knetattach menu entry.
+
+ -- Jonathan Riddell <jr@jriddell.org>  Thu, 17 Mar 2005 00:21:28 +0000
+
+kdebase (4:3.4.0-0ubuntu3) hoary; urgency=low
+
+  * Fix kdm.postinst to correctly update existing S99kdm links to S13kdm
+
+ -- Jonathan Riddell <jr@jriddell.org>  Wed, 16 Mar 2005 23:43:54 +0000
+
+kdebase (4:3.4.0-0ubuntu2) hoary; urgency=low
+
+  * Fix kdm.postinst to update existing S99kdm links to S13kdm
+  * Fix kubuntu_03_ksplash_settings.diff to change all references to icon
+  * Remove depend on kde-style-lipstik while still in universe
+  * Add kubuntu_05_kdm_theme_config.diff to make kdm use Kubuntu theme
+  * Add kubuntu_06_hide_home_menu_entry.diff to hide Home from KMenu
+
+ -- Jonathan Riddell <jr@jriddell.org>  Wed, 16 Mar 2005 17:26:25 +0000
+
+kdebase (4:3.4.0-0ubuntu1) hoary; urgency=low
+
+  * Add kubuntu_03_ksplash_settings.diff to use correct icon on splash screen
+  * Depend kdebase on kde-style-lipstik
+  * Do not install System.desktop or Home.desktop kdesktop icons
+  * Add kubuntu_04_hide_menu_entries.diff to hide kwrite menu entry
+  * Add link to pmount from hal/devices.d for kiomedia
+
+ -- Jonathan Riddell <jr@jriddell.org>  Wed, 16 Mar 2005 01:29:27 +0000
+
+kdebase (4:3.4.0-0pre1ubuntu6) hoary; urgency=low
+
+  * Make kdm start at at S13 rather than S99 (see Ubuntu Bugzilla No 3143
+    for gdm).
+  * Make kdebase-bin depend on gdb for drkonqi
+  * Add patch kubuntu_02_kcontrol_only_kde_menu.diff making KControl only
+    show in KDE's menu
+
+ -- Jonathan Riddell <jr@jriddell.org>  Fri, 11 Mar 2005 21:47:56 +0000
+
+kdebase (4:3.4.0-0pre1ubuntu5) hoary; urgency=low
+
+  * Add kwin conflicts with old kdeartwork-theme-window
+
+ -- Jonathan Riddell <jr@jriddell.org>  Tue,  8 Mar 2005 22:48:59 +0000
+
+kdebase (4:3.4.0-0pre1ubuntu4) hoary; urgency=low
+
+  * Regenerate Makefiles, this time with maintainer mode turned on
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Mon,  7 Mar 2005 23:24:28 +0000
+
+kdebase (4:3.4.0-0pre1ubuntu3) hoary; urgency=low
+
+  * Revert last change and use debian/rules buildprep to update the build system
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Mon,  7 Mar 2005 22:31:12 +0000
+
+kdebase (4:3.4.0-0pre1ubuntu2) hoary; urgency=low
+
+  * Sync 99_buildprep.diff from Debian to prevent aclocal invocation
+    during build
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Mon,  7 Mar 2005 21:34:35 +0000
+
+kdebase (4:3.4.0-0pre1ubuntu1) hoary; urgency=low
+
+  * Sync with Debian
+  * Remove kubuntu_2_acimake_configure.diff, now included by Debian
+
+ -- Jonathan Riddell <jr@jriddell.org>  Sun,  6 Mar 2005 01:52:35 +0000
+
+kdebase (4:3.3.2-0pre1) experimental; urgency=low
+
+  * New upstream release.
+  * KDE_3_3_BRANCH update. Includes the kdebase part of the fix
+    for CAN-2004-1158.
+  * Lower kdeprint's dependency on gv to a Suggests. (Closes: #269590)
+  * kwin is now registered as an x-window-manager. (Closes: #249162)
+  * Added /usr/share/xsessions to KDM's default session path, so
+    .desktop files installed there are found.
+    (Closes: #243770, #247365, #247747, #250384)
+  * kdm can now be installed while building kdebase, without affecting
+    the generated kdmrc and other config files.
+  * Adjust documentation to reflect the CUPS document path used by
+    Debian.
+  * Incorporate new manpages, for kdepasswd, kappfinder, kfind,
+    kmenuedit, kate, kwrite, kpager, from Andre Ramos and
+    Clement Stenac.
+    (Closes: #189574, #207123, #207124, #207125, #207126, #207130)
+  * Incorporate new package descriptions for konqueror, kcontrol,
+    and kate, from Tomas Pospisek. (Closes: #280358, #280362, #280795)
+  * Remove build-dependency on automake1.9.
+  * Acknowledge old NMUs. (Closes: #178507, #261740, #244547, #247407)
+    (Closes: #237062, #237065, #237067)
+  * Take some action wrt #284844: [AS]
+    - rename README.linux.console to README.Linux-font, more explicit
+      and does not create confusion with the original file. Removed
+      note about this file not being the original one.
+    - when talking about dpkg-reconfigure fontconfig, be clear about
+      which one the relevant question is and what the answer has to be.
+    - added patches/14_konsole_README.Linux-font.diff to make the popup
+      that konsole displays when it can find the font specify the full
+      path to the README file. (Closes: #284844)
+
+ -- Christopher Martin <chrsmrtn@freeshell.org>  Sat, 18 Dec 2004 14:54:58 -0500
+
+kdebase (4:3.4.0~rc1-0ubuntu0.1) hoary; urgency=low
+
+  * Add kubuntu_2_acimake_configure.diff to fix
+    problem with acimake being called by rules.
+  * Add kubuntu_1_applications_menu_move.diff to move applications.menu
+    and prevent file clash with Gnome.
+  * New upstream release.
+
+ -- Jonathan Riddell <jr@jriddell.org>  Sun, 23 Jan 2005 04:37:53 +0100
+
+kdebase (4:3.3.1-4) unstable; urgency=high
+
+  +++ Changes by Adeodato Simó:
+
+  * High urgency upload to fix security vulnerability in sarge.
+
+  * Include patch to fix CAN-2004-1158, "Konqueror Window Injection
+    Vulnerability". (Closes: #286516)
+
+  * Include small patch from Christoffer Sawicki to ignore /sys and /.dev and
+    not report them as hard disks in Konqueror. (Closes: #287424)
+
+  * Included Dutch po-debconf translation by Luk Claes. (Closes: #283971)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed,  5 Jan 2005 17:11:03 +0100
+
+kdebase (4:3.3.1-3) unstable; urgency=medium
+
+  * Include patch to fix CAN-2004-1171 ("plain text password exposure").
+    Closes half of #285126.
+
+ -- Adeodato Simó <asp16@alu.ua.es>  Fri, 10 Dec 2004 22:28:25 +0100
+
+kdebase (4:3.3.1-2) unstable; urgency=low
+
+  * Forgot then in ksmserver.preinst.
+
+ -- Christopher L Cheney <ccheney@debian.org>  Thu,  4 Nov 2004 18:00:00 -0600
+
+kdebase (4:3.3.1-1) unstable; urgency=low
+
+  * New upstream release.
+  * KDE_3_3_BRANCH update.
+  * ksmserver: only reset x-session-manager on install. (Closes: #247243)
+  * kdm: remove log files on purge. (Closes: #273542)
+  * Correct Danish po-debconf translations. (Closes: #273832)
+
+ -- Christopher L Cheney <ccheney@debian.org>  Thu,  4 Nov 2004 04:00:00 -0600
+
+kdebase (4:3.3.0a-1) unstable; urgency=low
+
+  * Respin orig.tar.gz.
+  * KDE_3_3_BRANCH update.
+  * Add Turkish po-debconf translations. (Closes: #248326)
+  * Add German po-deconf translations. (Closes: #264608)
+  * Correct /etc/kde3/kdm/Xsession file. (Closes: #265795)
+  * Correct usage of "its" in konsole description. (Closes: #268517)
+  * Correct Danish po-debconf translations. (Closes: #269575)
+  * Correct kdm name in /etc/init.d/kdm. (Closes: #272062)
+
+ -- Christopher L Cheney <ccheney@debian.org>  Sat, 25 Sep 2004 20:00:00 -0500
+
+kdebase (4:3.3.0-1) unstable; urgency=high
+
+  * New upstream release.
+
+ -- Christopher L Cheney <ccheney@debian.org>  Fri, 13 Aug 2004 20:00:00 -0500
 
-kdebase (4:4.1.2-1) experimental; urgency=low
+kdebase (4:3.2.3-1) unstable; urgency=high
 
   * New upstream release.
-  * Update installed files.
+  * ksmserver Provides: x-session-manager. (Closes: #258677)
+  * Remove Energy Star logo png files. (Closes: #259638)
+  * Build-Depends: xlibs-static-pic. (Closes: #260959)
 
- -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Tue, 30 Sep 2008 12:20:04 +0200
+ -- Christopher L Cheney <ccheney@debian.org>  Tue,  3 Aug 2004 02:00:00 -0500
 
-kdebase (4:4.1.1-1) experimental; urgency=low
+kdebase (4:3.2.2-1) unstable; urgency=low
 
   * New upstream release.
+  * Added Build-Depends: libsensors-dev.
+  * Corrected kdm postinst startup code. (Closes: #195052)
+  * Removed Debian menu desktop files. (Closes: #198661)
+  * Added a README.linux.console document. (Closes: #218035)
+  * Remove kdm log files on purge. (Closes: #225157)
+  * Corrected kate/konqueror mime nametemplate support. (Closes: #235216)
+  * Removed "FIXME - observe" lines from kdm scripts. (Closes: #236422)
+  * Added Danish po-debconf translations. (Closes: #236480)
+  * Remove old x-session-manager alternatives. (Closes: #236515, #236795,
+    #237081, #240773)
+  * Removed kdebase and kicker menu-methods. (Closes: #236700)
+  * Corrected kdm-np PAM service. (Closes: #236750, #238182, #242381)
+  * Added kcontrol Depends: kdebase-data. (Closes: #239297)
+  * Updated GDM session file. (Closes: #240980)
+  * debian/*.menu: remove the obsolete kderemove tag.
 
-  +++ Changes by Sune Vuorela:
+ -- Christopher L Cheney <ccheney@debian.org>  Sun, 11 Apr 2004 04:00:00 -0500
 
-  * Change sections.
+kdebase (4:3.2.1-1) unstable; urgency=low
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 31 Aug 2008 20:49:19 +0200
+  * New upstream release.
+  * Added Catalan po-deconf translations. (Closes: #139733)
+  * Added Polish po-deconf translations. (Closes: #142540)
+  * Added Japanese po-deconf translations. (Closes: #137940, #210431)
+  * Updated kate Recommends: kregexpeditor. (Closes: #227677)
+  * Added konqueror Depends: kdebase-kio-plugins. (Closes: #230203)
+  * Added kdm Provides: x-display-manager. (Closes: #231442)
+  * Added kdebase-bin/kdm Depends libpam-runtime. (Closes: #233562, #236078)
+  * Added kate/konqueror mime nametemplate support. (Closes: #235216)
 
-kdebase (4:4.1.0-1) experimental; urgency=low
+ -- Christopher L Cheney <ccheney@debian.org>  Fri,  5 Mar 2004 04:00:00 -0600
+
+kdebase (4:3.2.0-0pre1v1) experimental; urgency=low
 
   * New upstream release.
-  * Update build depends and depends to >=4.1.0.
 
- -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Sun, 27 Jul 2008 14:25:51 +0200
+ -- Christopher L Cheney <ccheney@debian.org>  Tue, 17 Feb 2004 17:00:00 -0600
 
-kdebase (4:4.0.98-1) experimental; urgency=low
+kdebase (4:3.1.95-1) unstable; urgency=low
 
-  * New upstream release, Release Candidate 1.
+  * New upstream release.
 
-  +++ Changes by Xavier Vello:
+ -- Christopher L Cheney <ccheney@debian.org>  Fri, 23 Jan 2004 18:00:00 -0600
 
-  * konqueror now suggests konq-plugins >=4:4.1~.
+kdebase (4:3.1.5-2) unstable; urgency=low
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+  * Remove Build-Depends: libsensors-dev.
 
-  * Remove patch 97_fix_target_link_libraries.
-  * Add Conflicts with kcontrol to kdebase-bin. Thanks Peter!
-    (Closes: #483658)
+ -- Christopher L Cheney <ccheney@debian.org>  Thu, 29 Jan 2004 22:00:00 -0600
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 14 Jul 2008 18:50:01 +0200
+kdebase (4:3.1.5-1) unstable; urgency=low
 
-kdebase (4:4.0.84-1) experimental; urgency=low
+  * New upstream release.
+  * Added pt_BR debconf translation. (Closes: #107023)
+  * Updated /etc/gdm/Sessions/KDE file. (Closes: #177144)
 
-  * New upstream snapshot
-  * Nspluginviewer needs glib
+ -- Christopher L Cheney <ccheney@debian.org>  Mon, 12 Jan 2004 19:00:00 -0600
 
- -- Sune Vuorela <debian@pusling.com>  Sat, 28 Jun 2008 19:21:30 +0000
+kdebase (4:3.1.4-2) unstable; urgency=low
 
-kdebase (4:4.0.82+svn819867-1) experimental; urgency=low
+  * Added es debconf translation. (Closes: #128933)
+  * Added fr debconf translation. (Closes: #132615, #225899)
+  * Corrected konqueror gs mime tests. (Closes: #160428)
+  * kdesktop Recommends eject. (Closes: #223642)
+  * konqueror Provides info-browser. (Closes: #223913)
+  * Added '|| true' to db_input lines in kdm debconf support. (Closes: #224548)
+  * Corrected typo in kdm.config script. (Closes: #224578)
 
-  * New upstream development snapshot.
+ -- Christopher L Cheney <ccheney@debian.org>  Mon,  5 Jan 2004 23:00:00 -0600
 
-  +++ Changes by Modestas Vainius:
+kdebase (4:3.1.4-1) unstable; urgency=low
 
-  * Bump kdepimlibs5-dev to 4.0.82, libphonon-dev to 4.2~ (Closes: #483116).
-  * Build depend on libplasma-dev >=4.0.82 (folderview applet).
-  * Add a new binary kdebase-plasma for a Folder View applet. Add appropriate
-    replaces with libplasma2.
-  * Update install files.
+  * The "Why isn't KDE installable yet" release.
+  * New upstream release.
+  * Added patch to update autotools files.
+  * Added patch to remove pedantic-errors from KDE_CHECK_FUNC_EXT since it
+    causes configure checks to fail due to #line numbers being > 32767.
+  * Demote kdeprint Depends 'efax | hylafax-client | mgetty-fax' to Suggests.
+    (Closes: #142489)
+  * Change kicker.menu-method to not display the empty_mime icon if a menu file
+    doesn't provide an icon. (Closes: #154065)
+  * Make konqueror depend on kdesktop. (Closes: #192550)
+  * Update pam support to use new common module fragments. (Closes: #206958)
+  * Update package descriptions. (Closes: #209532, #209856)
+  * Strip SUID root from kcheckpass since its not needed. (Closes: #212212)
+  * Update kdm debconf and use po-debconf. (Closes: #218731)
+  * Make kicker depend on kdebase-data. (Closes: #223407)
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+ -- Christopher L Cheney <ccheney@debian.org>  Thu, 18 Dec 2003 13:30:00 -0600
 
-  * Remove 01_r811027_konqcrash_on_rightclick.diff, merged upstream.
-  * Add small update in 97_fix_target_link_libraries.diff.
-  * Update build dependencies:
-    - Bump kdepimlibs5-dev to (>= 4:4.0.81).
-    - Change libphonon-dev to new versioning (>= 4:4.2~).
-  * Update installed files.
+kdebase (4:3.1.3-1) unstable; urgency=low
 
-  +++ Changes by Fathi Boudra:
+  * New upstream release.
 
-  * Add libxext-dev build dependency.
+ -- Christopher L Cheney <ccheney@debian.org>  Wed, 30 Jul 2003 15:00:00 -0500
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 15 Jun 2008 15:22:53 +0200
+kdebase (4:3.1.2-1.1) unstable; urgency=low
 
-kdebase (4:4.0.80-1) experimental; urgency=low
+  * NMU (Maintainer is aware for a while but is dumb)
+      - Summary: kdebase-dev depends on kdebase that is not installable
+                 some package have build-depends on kdebase-dev so they are
+                 buildable since at least 06 Jun 2003
+  * Fix Depends: field (previous was libsensors1 and it was replaced by
+    libsensors-1debian1) (Closes: #196370, #200224)
+  * Fix FTBFS with gcc-3.3 (Closes: #200620)
+      - Thanks Riku Voipio <riku.voipio@iki.fi>
+      - use cvs files from KDE_3_1_BRANCH
+      	+ recentapps.cpp version 1.3.6.2
+      	+ recentapps.h version 1.3.8.2
+      	+ service_mnu.cpp version 1.50.2.4
+      	+ browser_mnu.cpp version 1.44.2.2
 
-  * New upstream development milestone (KDE 4.1 Beta1).
+ -- Igor Genibel <igenibel@debian.org>  Fri, 18 Jul 2003 10:35:34 +0200
 
-  +++ Changes by Modestas Vainius:
+kdebase (4:3.1.2-1) unstable; urgency=low
 
-  * Resync 97_ patch.
-  * Update install files.
-  * Backport 01_r811027_konqcrash_on_rightclick.diff patch from upstream svn
-    which fixes a konqueror crash on each mouse right click.
+  * New upstream release.
+  * Remove Build-Depends on libsasl-dev. (Closes: #189949, #193866)
+  * Add libkregexpeditor to kate Recommends. (Closes: #183280)
+  * Add efax | hylafax | mgetty-fax to kdeprint Depends. (Closes: #142489)
+  * Add kfind to konqueror Depends. (Closes: #192859)
+  * Fix KDE GDM Session file. (Closes: #144206, #154519, #188560, #189438,
+    #193274)
+  * Add log rotation for KDM logfile. (Closes: #145345, #153728)
+  * Add screen number to KDM Xservers file. (Closes: #182708, #184737, #187257)
+  * Moved xfonts-konsole fonts to /usr/X11R6/lib/X11/fonts/misc/
+    (Closes: #184548)
+
+ -- Christopher L Cheney <ccheney@debian.org>  Wed, 21 May 2003 08:00:00 -0500
+
+kdebase (4:3.1.1-1) unstable; urgency=low
+
+  * New upstream release. (Closes: #180816, #181309)
+  * Corrected kdm-update-menu.sh kdm.options path. (Closes: #180355)
+  * Added xbase-clients depend to kdm. (Closes: #180536)
+  * Added xutils depend to xfonts-konsole. (Closes: #180695)
+  * Improved xfonts-konsole description. (Closes: #180696)
+  * Remove upgrade from alternatives removal prerm script. (Closes: #180927)
+  * Change Xservers to launch /usr/X11R6/bin/X. (Closes: #182037)
+  * Add entries for kdm reserve xserver feature. (Closes: #182708)
+  * Add kcontrol depends to konqueror (Closes: #182724)
+  * Change konqueror menu entry to allow execution. (Closes: #183225)
+  * Make konqueror provide www-browser. (Closes: #183391)
+
+ -- Christopher L Cheney <ccheney@debian.org>  Tue, 11 Mar 2003 22:00:00 -0600
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 22 May 2008 11:55:10 +0300
+kdebase (4:3.1.0-2) unstable; urgency=low
 
-kdebase (4:4.0.74-1) experimental; urgency=low
+  * Add 'chmod +x configure' to rules.
 
-  * New upstream development snapshot.
-  * Corrections to *.install files:
-    - libkonq5.install: 1 file(s) removed;
-    - libkonq5-dev.install: 1 file(s) removed;
+ -- Christopher L Cheney <ccheney@debian.org>  Sat,  8 Feb 2003 02:00:00 -0600
 
-  +++ Changes by Modestas Vainius:
+kdebase (4:3.1.0-1) unstable; urgency=low
 
-  * Resync 97_ patch.
+  * New upstream release.
+  * Redo debian dir.
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 10 May 2008 21:06:59 +0300
+ -- Christopher L Cheney <ccheney@debian.org>  Sat, 01 Feb 2003 23:00:00 -0600
 
-kdebase (4:4.0.72-1) experimental; urgency=low
+kdebase (4:2.2.2-14.7) stable-security; urgency=high
 
-  * New upstream development snapshot.
+  * Non-maintainer upload by the Security Team
+  * Updated patch from KDE advisory 20030916
 
-   +++ Changes by Modestas Vainius:
+ -- Matt Zimmerman <mdz@debian.org>  Tue, 16 Sep 2003 15:18:59 -0400
+
+kdebase (4:2.2.2-14.6) stable-security; urgency=high
+
+  * Non-maintainer upload by the Security Team
+  * Apply updated patch from KDE advisory 20030915
+    - Fixes CAN-2003-0690 (setcred())
+    - Fixed CAN-2003-0692 (session cookie issue)
+
+ -- Matt Zimmerman <mdz@debian.org>  Mon,  8 Sep 2003 19:56:40 -0400
+
+kdebase (4:2.2.2-14.5) stable-security; urgency=high
+
+  * Non-maintainer upload by the Security Team
+  * Apply patch from KDE advisory 20030908 to fix local root vulnerability in
+    PAM authentication in KDM
+
+ -- Matt Zimmerman <mdz@debian.org>  Sun, 31 Aug 2003 04:39:47 -0400
+
+kdebase (4:2.2.2-14.4) stable-security; urgency=medium
+
+  * Non-maintainer upload by the Security Team
+  * Applied upstream patch from Dirk Mueller (uninitialized variable use)
+    to fix problems with klipper and pasted urls (klipper/urlgrabber.cpp,
+    Bug#178407, thanks to Niccolo Rigacci)
+
+ -- Martin Schulze <joey@infodrom.org>  Sat, 12 Apr 2003 09:48:40 +0200
+
+kdebase (4:2.2.2-14.3) stable-security; urgency=high
+
+  * Non-maintainer upload by the Security Team
+  * Applied upstream patch so ghostscript won't execute arbitrary commands
+    hidden inside of postscript files.
+
+ -- Martin Schulze <joey@infodrom.org>  Thu, 10 Apr 2003 11:44:04 +0200
+
+kdebase (4:2.2.2-14.2) stable-security; urgency=high
+
+  * Non-maintainer upload by the Security Team
+  * Added special detection routine for big/little endianess on MIPS since
+    the line "byteorder : {big|little} endian" from /proc/cpuinfo was
+    removed as of Linux 2.4.20, resulting in the mipsel buildd being
+    unable to build this package.
+
+ -- Martin Schulze <joey@infodrom.org>  Thu,  9 Jan 2003 09:38:33 +0100
+
+kdebase (4:2.2.2-14.1) stable-security; urgency=high
+
+  * Non-maintainer upload by the Security Team
+  * Applied upstream patches to fix several potential vulnerabilities.
+    http://www.kde.org/info/security/advisory-20021220-1.txt
+
+ -- Martin Schulze <joey@infodrom.org>  Sun,  5 Jan 2003 21:36:47 +0100
+
+kdebase (4:2.2.2-14) unstable; urgency=high
+
+  * New maintainer.
+
+ -- Christopher L Cheney <ccheney@debian.org>  Sun,  3 Mar 2002 01:30:00 -0600
+
+kdebase (4:2.2.2-13) unstable; urgency=low
+
+  * Adopting orphaned package. Thanks Ivan for all your great work on KDE over
+    the years; you'll be sorely missed. (closes: #127706)
+  * Relink with libpng2. (closes: #128275)
+  * debian/rules, debian/konsole.dirs:
+    - Make symlinks in the X fonts directory to Konsole fonts in
+      /usr/share/fonts in the install target. (closes: #127871)
+  * debian/kdmrc:
+    - Disallow remote users from shutting down the machine. (Yeah, yeah, I
+      know - dodgy grammar). (closes: #127616)
+  * debian/control:
+    - Depend on kdebase | x-s-m | x-w-m, instead of just the latter two, so
+      that KDE gets installed in preference to, say, GNOME. (closes: #128208)
+    - Shuffle Build-Deps back to libpng2.
+  * kpersonalizer/keyecandypage.cpp:
+    - Stop anti-aliasing from being selected by default when the level of cool
+      stuff selected is high enough.
+
+ -- Daniel Stone <daniel@sfarc.net>  Fri,  4 Jan 2002 09:14:11 -0500
+
+kdebase (4:2.2.2-12) unstable; urgency=low
+
+  * Yet another overwrite. (Closes: #126699)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 28 Dec 2001 00:15:00 -0700
+
+kdebase (4:2.2.2-11) unstable; urgency=low
+
+  * Crap.  fix -audiolibs again.
+  * Fix spelling error (Closes: #124779)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 17 Dec 2001 22:00:00 -0700
+
+kdebase (4:2.2.2-10) unstable; urgency=low
+
+  * Move the audio kcm modules over to kdebase-libs since they a) don't depend
+    on audio libs and b) are required for sound to automatically start.  
+    (Closes: #124144)
+  * More upstream konsole fixes
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 16 Dec 2001 00:30:00 -0700
+
+kdebase (4:2.2.2-9) unstable; urgency=low
+
+  * Fix klipperrc (Closes: #123904)
+  * Add lynx/opera/etc to klipperrc
+  * Add libfam-dev to Build-Depends as well as other packages which we
+    depend on but have relied on other depended upon packages to provide.
+  * libkonq_sound.* needs to be in kdebase-audiolibs.  We don't need
+    to require libarts to be installed in order to use konq.
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 15 Dec 2001 00:02:00 -0700
+
+kdebase (4:2.2.2-8) unstable; urgency=low
+
+  * Sync with upstream
+  * Fix Xsetup (Closes: #123115)
+  * Fix file location (Closes: #122621)
+  * Move keditbookmarks stuff into kdebase-libs
+  * Let's attempt to import mozilla bookmarks along with netscape automatically
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 09 Dec 2001 14:07:00 -0700
+
+kdebase (4:2.2.2-7) unstable; urgency=low
+
+  * Sync with upstream
+  * Add missing dependency for kdebase-libs to kdebase
+  * Move Sound .desktop files to kdebase-audiolibs
+  * Fix file location...
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 05 Dec 2001 16:59:00 -0700
+
+kdebase (4:2.2.2-6) unstable; urgency=low
+
+  * Move libkcm_launch.so to where it belongs (Closes: #122136)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 02 Dec 2001 15:49:00 -0700
+
+kdebase (4:2.2.2-5) unstable; urgency=low
+
+  * Crap.  Fix build-depends since we now need the latest kdelibs package
+    I uploaded first.  (Closes: #122066)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 01 Dec 2001 22:29:00 -0700
+
+kdebase (4:2.2.2-4) unstable; urgency=low
+
+  * Sync with upstream
+  * Build-Depends cleanup
+  * Depends/Suggests/etc... cleanup for freeze
+  * Build cleanup
+  * Build with xinerama support for i386
+  * Another update for Nedit.ad to work with newer Nedit
+  * Cleanup kdmrc for release..default to security
+  * Update documentation for freeze
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 30 Nov 2001 02:30:00 -0700
+
+kdebase (4:2.2.2-3) unstable; urgency=low
+
+  * Update Brazilian Portuguese debconf entries (Closes: #120841)
+  * Remove kdmrc debconf note
+  * Add in replaces to fix those people using testing who don't know
+    how to use --force-overwrite or don't know how to let dpkg fix 
+    things on the second go around.  What a waste of disk space.
+    You know...people who don't know how to use dpkg or know how
+    releases are done shouldn't be allowed to manipulate severities
+    on bug reports.  (Closes: #121163, #121165)
+  * Fix konsole (Closes: #120840, #120984, #121159)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 26 Nov 2001 14:47:00 -0700
+
+kdebase (4:2.2.2-2) unstable; urgency=low
+
+  * Update deps to allow for temp -crypto packages
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 22 Nov 2001 22:54:00 -0700
+
+kdebase (4:2.2.2-1) unstable; urgency=low
+
+  * new upstream version
+  * Add in suggests for libpam-krb/heimdel to kdm so we can get rid of the
+    kdm-krb package
+  * Update Nedit.ad (Closes: #117881)
+  * Apply kdm cleanup patch by Branden (Closes: #118217)
+  * Fix mime checks (Closes: #117747)
+  * Fix kate syntax highlights (Closes: #113773)
+  * Add kate undocumented manpage
+  * Run lilo query for kdm with -w
+  * Fix konsole crashes (Closes: #119480)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 21 Nov 2001 16:18:00 -0700
+
+kdebase (4:2.2.1.0-7) unstable; urgency=low
+
+  * Update build-deps for lesstif-dev since certain recent versions do
+    not contain files we need to build
+  * Sync with upstream
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 28 Oct 2001 11:37:00 -0700
+
+kdebase (4:2.2.1.0-6) unstable; urgency=low
+
+  * Sync with upstream
+  * Should fix Home/End keys (Closes: #117149, #100878, #107071, #114312)
+  * Fixes default.Schema (Closes: #107450)
+  * Transparant forgetfullness should also be fixed (Closes: #110773)
+  * Fix rearrange issues (Closes: #112113)
+  * Pause option fixed (Closes: #95928)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 26 Oct 2001 11:20:00 -0700
+
+kdebase (4:2.2.1.0-5) unstable; urgency=low
+
+  * Sync with upstream
+  * build with newer binutils
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 24 Oct 2001 10:11:00 -0700
+
+kdebase (4:2.2.1.0-4) unstable; urgency=low
+
+  * more upstream fixes
+  * Get rid of automake hacks
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 19 Oct 2001 12:46:00 -0700
+
+kdebase (4:2.2.1.0-3) unstable; urgency=low
+
+  * More konsole/transparancy fixes
+  * build against newer kdelibs with fixed shlibs.  this'll fix several problems
+    with users running incompatable versions.
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 15 Oct 2001 00:30:00 -0700
+
+kdebase (4:2.2.1.0-2) unstable; urgency=low
+
+  * hopefully fix kicker/aa problems
+  * Fix Xpdf.ad (Closes: #115293)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 11 Oct 2001 13:26:00 -0700
+
+kdebase (4:2.2.1.0-1) unstable; urgency=low
+
+  * remove auto* bits from configure so it doesn't try to run them after
+    configure runs and thus re-introducing the whole automake problem with 1.5
+  * Sync with upstream..new binaries so new source version...ack
+  * Update standards version
+  * Take out the extra space in the !s390 requirement
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 08 Oct 2001 20:54:00 -0700
+
+kdebase (4:2.2.1-6) unstable; urgency=low
+ 
+  * Fix configure
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 05 Oct 2001 14:21:00 -0700
+
+kdebase (4:2.2.1-5) unstable; urgency=low
+ 
+  * build with automake 1.5..well a way around it at least for now
+  * undocumented man page (Closes: #114144)
+  * Sync with upstream
+  * don't build-dep on xserver for s390 (Closes: #114237)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 02 Oct 2001 00:01:00 -0700
+
+kdebase (4:2.2.1-4) unstable; urgency=low
+
+  * More upstream fixes
+  * don't set background in startkde script by default.  
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 27 Sep 2001 12:13:00 -0700
+
+kdebase (4:2.2.1-3) unstable; urgency=low
+ 
+  * Build-Conflicts for nas-lib so we can build properly
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 24 Sep 2001 19:28:00 -0700
+
+kdebase (4:2.2.1-2) unstable; urgency=low
+
+  * fix kdm preinst (Closes: #112900)
+  * fix overwrite (Closes: #112903)
+  * A couple kdm fixes and on keditbookmarks fix from upstream
+  * Use usbutils's usb.ids if it exists (Closes: #112879)
+  * konsole save fixes (Closes: #112982, 112943)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 23 Sep 2001 18:05:00 -0700
+
+kdebase (4:2.2.1-1) unstable; urgency=low
+ 
+  * New upstream version 2.2.1
+  * Fix init script (Closes: #110474)
+  * Fix --type (Closes: #109704)
+  * Fix prerm (Closes: #111223)
+  * Fixes preinst (Closes: #111584)
+  * url paste/del behaviour fixed (Closes: #98121)
+  * item list selection works (Closes: #102879)
+  * GL screensaver fixes (Closes: #109270)
+  * Fix --type foo (Closes: #109704)
+  * Fix transparency issues (Closes: #84062)
+  * File view fix (Closes: #94641)
+  * kde logo rotation fix (Closes: #95841)
+  * desktop link url added
+  * kxmlrpcd not started by default (Closes: #110381)
+  * ppc build hack/fix for linking to -lgcc
+  * Fix audiocd.desktop (Closes: #111713)
+  * Don't use objprelink
+  * Don't merge resources (Closes: #112198)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 07 Sep 2001 00:01:00 -0700
+
+kdebase (4:2.2.0.20010822-1) unstable; urgency=low
+ 
+  * Apply GL patch for Bug #109270
+  * Font/Schema/Session Management fixes for konsole
+  * Remove gvim.desktop and gvim.png files so there is no confliction with
+    new vim package.
+  * sync with upstream
+  * Fix kdm not allowing typing after the first boot
+  * kdm now uses new x-display-manager bits
+  * Fix typos and update script bits from Branden
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 22 Aug 2001 00:01:00 -0700
+
+kdebase (4:2.2.0-final-3) unstable; urgency=low
+ 
+  * Fix Typo (Closes: #109115)
+  * Fix GL bits (Closes: #109136)
+  * Fix prerm - Thanks Branden (Closes: #109142)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 19 Aug 2001 00:01:00 -0700
+
+kdebase (4:2.2.0-final-2) unstable; urgency=low
+
+  * Re-Add the *proper* Xsession script that will use the one provided
+    by Debian's X rather than the one provided by kdm which is broken.
+    The one provided by Debian works better anyways. (Closes: #108736)
+  * Fix klipperrc (Closes: #108856)
+  * Add a debconf note to kdm about SessionTypes being auto-generated.  This
+    is now noted in 3 locations.
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 14 Aug 2001 16:53:00 -0700
+
+kdebase (4:2.2.0-final-1) unstable; urgency=low
+ 
+  * New upstream version
+  * Fix debconf template (Closes: #107021)
+  * fix mime (Closes: #107145)
+  * Fix kdebase compile issues (Closes: #107010, #104045)
+  * Provide x-display-manager as well as all the new bells and whistles
+    that Branden Robinson hacked together to allow *dm's to play nice
+  * Move around EBS's for bug: stuff (Closes: #107832)
+  * Hack to work around hppa problems. (Closes: #108274)
+  * If ~/.resources exists, load it (Closes: #108394)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 12 Aug 2001 01:52:00 -0700
+
+kdebase (4:2.2.0-0.3beta1-1) unstable; urgency=low
+ 
+  * Sync with upstream
+  * Fix http connection problems (Closes: 106909)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 28 Jul 2001 14:08:00 -0700
+
+kdebase (4:2.2.0-0.2beta1-2) unstable; urgency=low
+ 
+  * konsole bits are fixed (Closes: #100878)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 27 Jul 2001 02:14:00 -0700
+
+kdebase (4:2.2.0-0.2beta1-1) unstable; urgency=low
+ 
+  * add GL_LDFLAGS="-lpthread" to build process for building with X4.1
+  * Fix htdig pathing for htdig.gif (Closes: #103977)
+  * Update Build-Depends and Depends
+  * Fix pdf viewing problem (Closes: #88006)
+  * Fix reference to woody's version in userguide (Closes: #105301)
+  * kdm Brazilian debconf translations (Closes: #105374)
+  * Fix kde-update-menu script so that it can be run as a normal user 
+    (Closes: #105786)
+  * sync with upstream
+  * gcc3 fixes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 25 Jul 2001 03:40:00 -0700
+
+kdebase (4:2.2.0-0.1beta1-2) unstable; urgency=low
+ 
+  * Sync with upstream
+  * Update README (Closes: #103680)
+  * Build with -mieee for Alpha
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 07 Jul 2001 01:13:00 -0700
+
+kdebase (4:2.2.0-0.1beta1-1) unstable; urgency=low
+ 
+  * Sync with upstream
+  * Spanish template (Closes: #103065, #103232)
+  * Fix kde-update-menu (Closes: #103228)
+  * don't let debhelper compress .bz2 files
+  * Auto-build for alpha
+  * Fix overwrite (Closes: #103390)
+  * Fix "same file" problem (Closes: #103528)
+  * Add missing Build-Depends (Closes: #103535)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 04 Jul 2001 01:45:00 -0700
+
+kdebase (4:2.2.0-0beta1-3) unstable; urgency=low
+ 
+  * Fix konsole mappings maybe?
+  * Fix overwrites (Closes: #102852, #102856)
+  * Fixes pam file (Closes: #102854)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 29 Jun 2001 22:00:00 -0700
+
+kdebase (4:2.2.0-0beta1-2) unstable; urgency=low
+ 
+  * Fix kdm preinst
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 29 Jun 2001 09:51:00 -0700
+
+kdebase (4:2.2.0-0beta1-1) unstable; urgency=low
+
+  * Update path info in kdm files...these were in the comments so
+    it wasn't a big deal
+  * Add a comment to default kdmrc about SessionType generation
+  * Re-hash kdm README
+  * KDE 2.2 beta1
+  * Sync with upstream
+  * Fix typo in Xsetup
+  * Fix dup dependencies (Closes: #99690)
+  * Fix other replaces and whatnot (Closes: #101187)
+  * Add filterproxy,freenet user to kdmrc (Closes: #96707, #98746)
+  * Upstream reports these bugs fixed (Closes: #77151)
+  * Adding in a note about kwrited (Closes: #97245)
+  * Add w3m to klipperrc
+  * Re-adding debian xpm files
+  * Fix gdm script (Closes: #92712)
+  * Update konq mime (Closes: #97694)
+  * Fix menu-method (Closes: #98816)
+  * Change to -cvs* versioning for entrance into experimental
+  * Merge all changelogs from -alpha1 versions 
+  * This is a post alpha1 snapshot taken from the HEAD cvs branch.  The 
+    date listed in the version number states when the initial pull was made
+    however updates may and most likely will have taken place since that
+    date.  Look at it as a >= cvs{date}
+  * Generate SessionTypes line in kdmrc during kdm postinst.
+  * Change KDE logo's in konq's about:konqueror to Debian powered-by logo with
+    link to debian.org instead of kde.org
+  * Remove old menu debian xpm files and use existing debian png mimetype
+    graphic as it still looks good and is already there.
+  * Downgrade x-session-manager alternative priority to conform to policy
+    even tho there is none for x-session-manager yet.  Using x-window-manager
+    as the guide
+  * Add in a suggests for x-terminal-emulator to libkonq3
+  * Change call to konsole in libkonq3 to use x-terminal-emulator instead
+  * Add in missing mimetypes
+  * Don't run mkfontdir during package build. make sure there is not fonts.dir
+    files created
+  * Move to debhelper 3..or rather actually depend on v3 which is what 
+    we were using.
+  * Fix description of kate...oops..thanks Oswald. :)
+  * More menu clean...full pathing
+  * ton of kdm updates...basically syncing conffiles with those from
+    the xdm from 4.0.3
+  * More build-deps:
+    libogg-dev, libvorbis-dev  (For auidocd:/ support)
+  * Provide man link from kdm to chooser
+  * More build cleanup..take more of the automation out to make sure things
+    are constant
+  * Remove custom startkde
+  * Revert old overrides so we can start from scratch
+  * Add in new python-base dependency
+  * New packages: kate, kdebase-audiolibs (so that those without sound do
+    not have to install sound libs.  Your welcome.)
+  * Lots of files moving around...out of kdebase-libs into the new 
+    kdebase-audiolibs and to konqueror.  This should drastically reduce
+    the size of kdebase-libs which is required by alot of non-kdebase packages
+    in order to provide things like smtp, bug reporting, etc...
+  * And let's list the bugs fixed...
+       ctrl-u problems with location bar fixed (Closes: #81425)
+       image transparency fixed for konsole on startup (Closes: #84062)
+       fixes kwin's conflicting key accelerators (Closes: #86370)
+       fixes rendering error for www.bluesnews.com (Closes: #79800)
+       fixes button problems for katalog.ub.uni-heidelberg.de (Closes: #88934)
+       now provides the audiocd ioslave bits which allow for ripping audio
+         tracks using konqueror..ie drag and drop..I'm not saying it works...
+         just saying the code is there now...(Closes: #91829)
+       Oh...and did I say...IMP works now via konqueror!@# YEA!@#  I personally
+         can now drop netscape.
+       Fix description (Closes: #95939)
+       Fixes anchor problem (Closes: #88605)
+       New HD Templates (Closes: #94004)
+       lots and lots and lots of little things of course have been fixed
+       lots and lots and lots of little things of course have been added
+  * Move khelpcenter's menu entry into Top level Help (Closes: #93702)
+  * New man pages for: konqueror
+  * More debconf cleanup
+  * Adding in suggests for xearth
+  * Add in Dependency for x-window-manager | x-session-manager to kdm
+  * Add icons to debian sub menus
+  * kdm auto-generation of session list
+  * Merging Debian and KDE menus a bit
+  * Add lynx and links to default klipperc
+  * Fixed communicator entry in klipperrc so that it will actually launch 
+    communicator
+  * More x-terminal-emulator fixes (Closes: #99982)
+  * Fix render issues with inline scripts (Closes: #99402)
+  * Fix sed issues (Closes: #101280, #101333)
+  * Trash problem no longer exists (Closes: #101129)
+  * Now properly understands environment variables either directly or 
+    indirectly.  By release it will have a GUI option for this or will have
+    information in the FAQ on konqueror.org that will tell how to do it.  
+    (Closes: #87178)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 22 Jun 2001 06:30:00 -0700
+
+kdebase (4:2.1.1-5) unstable; urgency=low
+ 
+  * Overhaul menu-method bits.  
+    kderemove="y"  in a menu entry will cause that menu item to not show
+    up in the KDE Debian submenu.  (Closes: #93260)
+  * Update build-depends to recognize real | virtual
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 08 Apr 2001 17:21:00 -0700
+
+kdebase (4:2.1.1-4) unstable; urgency=low
+ 
+  * Fix a couple debconf problems
+  * Couple more lintain errors down the tubes
+  * Some more upstream fixes
+  * Remove AA items as they now go in task-kde-aa
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 07 Apr 2001 04:11:00 -0700
+
+kdebase (4:2.1.1-3) unstable; urgency=low
+ 
+  * Fix kdmrc file (Closes: #92415)
+  * Update XftConfig example
+  * Fix kfmclient and kicker crashes (Closes: #89146, #88647)
+  * More upstream fixes
+    Fix for Proxy Authentication
+  * Apply Dutch debconf konq translations (Closes: #92533)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 03 Apr 2001 10:26:00 -0700
+
+kdebase (4:2.1.1-2) unstable; urgency=low
+ 
+  * Move startkde script into /etc/kde2 so that it will be a conffile and
+    link it back to /usr/bin/kde2.  (Closes: #91787)
+  * Build on older libc
+  * Adding in recommends for klisa
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 26 Mar 2001 10:59:00 -0700
+
+kdebase (4:2.1.1-1) unstable; urgency=low
+ 
+  * New upstream version
+  * Remove manpage alternative for x-terminal-emulator (Closes: #91357)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 19 Mar 2001 20:49:00 -0700
+
+kdebase (4:2.1.0.1-5) unstable; urgency=low
+ 
+  * One more shot the AA settings fix
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 15 Mar 2001 20:49:00 -0700
+
+kdebase (4:2.1.0.1-4) unstable; urgency=low
+ 
+  * pam_env fixes for kdm as well as a ton of other updates to kdm
+  * Fixing a problem with the default AA settings.  It looks like I "fixed" 
+    the wrong bit when I first fixed this.  (Closes: #89741)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 15 Mar 2001 10:41:00 -0700
+
+kdebase (4:2.1.0.1-3) unstable; urgency=low
+ 
+  * Adding in debconf note for systems that have a /.kde directory
+  * Adding debconf dependency to kdm
+  * More upstream fixes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 13 Mar 2001 18:20:00 -0700
+
+kdebase (4:2.1.0.1-2) unstable; urgency=low
+ 
+  * Fix kdm init script. actually stop when we tell you to stop (Closes: #89235)
+  * More documentation added to the QT AA Font Howto
+  * Fix for K Menu restarts and other funky behaviour
+  * XftConfig example included
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 11 Mar 2001 05:23:00 -0700
+
+kdebase (4:2.1.0.1-1) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Adding a QT AA Font HOWTO written by Lars Knoll <lars@trolltech.com> with
+    his permission...it's been slightly modified with Debian specific infoz.
+  * Major cleanup to debian.diff
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 10 Mar 2001 00:17:00 -0700
+
+kdebase (4:2.1.0-4) unstable; urgency=low
+ 
+  * More upstream fixes
+   konqueror - minimum size for history is 1
+   konqueror - check config key for minimum size of 1
+   KSysGuardApplet - use correct catalog for translations
+   KSysGuardApplet - save settings on exit
+  * Adding in "Replaces" for faulty kde-i18n package
+  * Removing link to non-existant man page for x-session-manager
+  * Adding xserver to build-depends as the configure scripts look for it to
+    determine pathing and whatnot
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 07 Mar 2001 02:32:00 -0700
+
+kdebase (4:2.1.0-3) unstable; urgency=low
+ 
+  * Grrr...let's try this konsole thing again
+  * Add in Mozilla plugin paths for nspluginscan
+  * More upstream fixes
+  * FIXED - manual URL input. Users may have to restart KDE. (Closes: #88331)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 03 Mar 2001 00:01:00 -0700
+
+kdebase (4:2.1.0-2) unstable; urgency=low
+ 
+  * Re-Enable AA support in konsole as it's brokt if you enable AA either
+    way...but if AA support is enabled at least you can change the font. 
+  * url entry problems should also be fixed now
+  * FIXED - anyone was allowed to shutdown despite RootOnly mode
+  * More cleanup on konsole default keytabs
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 03 Mar 2001 00:01:00 -0700
+
+kdebase (4:2.1.0-1) unstable; urgency=low
+ 
+  * Changing version number so that I can re-upload the source.  This is a
+    CVS sync with the 2.1 branch which will eventually become 2.1.1
+    The main purpose for doing this is to allow an easier way for handling
+    upstream fixes as the old source had the head tag and not the branch tag.
+  * Fix kmenuedit...not sure how kmenuedit.so got moved to -dev (Closes: #87817)
+  * Include utf8.sh as konsole-utf8 (Closes: #87724)
+  * Remove hacks for XFT bug
+  * Turn off XFT for konsole as konsole doesn't handle AA very well right now
+  * Turn off AA support by default...grrrrr..this fixes alot of crashes and
+    other issues.  (Closes: #84472)
+  * Adding in Recommends for xfonts-scalable and a Suggests for xfs-xtt. If
+    AA is turned on and there are no type1 fonts it seems to be very unhappy.
+  * Includes fix for QT 2.3.0 so that the url entry problems go away
+  * Adding in Suggests for fttools (creates the fonts.dir for truetype fonts
+  * More information added to kdebase's README.debian on truetype font 
+    setup
+  * Make the XFree 3.x.x keytab for konsole the default one to fit policy
+  * Fix for stylesheet application (Closes: #87188)
+  * The url entry bug is believed to be a bug in QT and a report has gone
+    on to trolltech.  The KDE developer who made this report stated that
+    a hack patch might be applied to get around it for now.  I'm choosing not
+    to go that route.  If the bug is in QT, that's where it needs to be fixed.
+    I don't want to have to update this package and QT both to fix a single
+    problem and I definatly hate bandaides.
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 01 Mar 2001 00:15:00 -0700
+
+kdebase (4:2.1-final-1) unstable; urgency=low
+ 
+  * New upstream version
+  * Fix kdm init.d script
+  * Upping standards version
+  * Fix for "chooser not running from kdm" (Closes: #76586)
+  * Fix graphics display (Closes: #85166)
+  * Fix bg clear issue (Closes: #77649)
+  * Fix kdm and expiring passwords
+  * Fix for konq crash on startup and other crashes (Closes: 84472, #77151, #80102)
+  * Moving task-kde* packages out of kdebase source
+  * Fixes for khelpcenter hangs (Closes: #81683)
+  * konq provides ftp-client as well
+  * Update /usr/bin/kde2 script
+  * Compile ldap kioslave
+  * Updated kdm init.d script
+  * Fix these rendering issues (Closes: #87183)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 19 Feb 2001 02:31:00 -0700
+
+kdebase (4:2.1-beta2-0128-1) unstable; urgency=low
+ 
+  * More work on nspluginscan to avoid problems with faulty plugins
+  * Several small bug fixes from upstream
+  * Adding xutils to task-kde-devel package
+  * Fixing conflict with kfind (Closes: #83709)
+  * Fixing default bs for konsole for those not using "linux" or "vt100" 
+    (Closes: #83705)
+  * Adding notation to konqueror about page about kdelibs3-crypto
+  * Applying German debconf template (Closes: #83871)
+  * Should also handle upgrade cleanup better.  This is across the board but
+    affects base more than any other package. (Closes: #83543)
+  * Fixes problem with symbols in konsole (Closes: #83987)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 28 Jan 2001 01:30:00 -0700
+
+kdebase (4:2.1-beta2-3) unstable; urgency=low
+ 
+  * Don't crash when trying to load/read faulty plugins (Closes: #82983)
+  * Moving kdesu to kdebase-libs so that we can use it without needing
+    kdebase installed
+  * Adding autoconf and gettext to build-deps
+  * Several small bug fixes from upstream
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 25 Jan 2001 02:10:00 -0700
+
+kdebase (4:2.1-beta2-2) unstable; urgency=low
+ 
+  * Updating menu entries (Closes: #83216)
+  * Fixes form content memory in konq (Closes: #77317)
+  * Fixes problem with version numbers not showing
+  * Adding Build-Depends for xutils as it seems kdm needs imake
+  * Applied patch for konq template (Closes: #83355)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 23 Jan 2001 12:36:00 -0700
+
+kdebase (4:2.1-beta2-1) unstable; urgency=low
+ 
+  * New upstream beta
+  * No Response header fixing (Closes: #77398)
+  * Fixes toolbar settings (Closes: #80487)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 22 Jan 2001 00:10:00 -0700
+
+kdebase (4:2.1-20010118-1) unstable; urgency=low
+ 
+  * More upstream fixes
+    Fix JS crashes with onmouseover
+    Updated print dialog
+  * Updated sections
+  * Change Recommend to Suggests (Closes: #82764)
+  * Another fix to the gtk non-overwrite bits
+  * clean source tree
+  * Fixing documentation inclusion and Changelog inclusion
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 18 Jan 2001 12:45:00 -0700
+
+kdebase (4:2.1-20010115-1) unstable; urgency=low
+ 
+  * More upstream fixes
+  * ask where the mozilla bookmarks are (Closes: #81710)
+  * tip that was annoying to some seems to be gone (Closes: #82253)
+  * Adding in kscreensaver pam file
+  * Updating kdmrc to match current features and all
+  * Add a link in /etc/X11/kdm to kdmrc (Closes: #82643)
+  * Updated kde2 start script that fixes overwriting of gtk confs
+  * This version fixes smb problems...you just need to make sure
+    you have smbclient installed.  Added that as a Recommend (Closes: #82612)
+  * (Closes: #76838, #77093)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 15 Jan 2001 01:00:00 -0700
+
+kdebase (4:2.1-20010109-1) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Fixing some more task- related issues
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 09 Jan 2001 10:05:00 -0700
+
+kdebase (4:2.1-20010106-1) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Moving task- conflicts/replaces into kdebase so as to keep dist-upgrade
+    from being unhappy.  (Closes: #81365)
+  * Adding in a debconf note about SSL support
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 06 Jan 2001 20:54:00 -0700
+
+kdebase (4:2.1-20010101-2) unstable; urgency=low
+ 
+  * More upstream fixes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 04 Jan 2001 03:30:00 -0700
+
+kdebase (4:2.1-20010101-1) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Fixing development task
+  * Should also fix klipper crashes (Closes: 80330) 
+        
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 01 Jan 2001 05:15:00 -0700
+
+kdebase (4:2.1-20001218-2) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Adding in a undocumented manpage for /usr/bin/kde2
+  * Fixing problem with Netscape.ad again
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 20 Dec 2000 15:15:00 -0700
+
+kdebase (4:2.1-20001218-1) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Fix for GDM Session (Closes: #79987)
+  * Update to kdm man page and README
+  * Adding /usr/bin/kde2 as a x-session-manager
+  * Adding new menu hints (Closes: #80022, #80020)
+  * Fixing menu-method to handle new hints
+  * Updating menu files for konqueror
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 18 Dec 2000 11:16:00 -0700
+
+kdebase (4:2.1-20001216-1) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Removing x-window-alternative as it's causing more problems than 
+    solutions
+  * Adding in better notation about htdig (Closes: #79710)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 16 Dec 2000 23:13:00 -0700
+
+kdebase (4:2.1-20001213-1) unstable; urgency=low
+ 
+  * New upstream beta
+  * Fixing alternative priority for konsole
+  * Adding in a session for gdm (Closes: #74678)
+  * new x4 port of xdm -> kdm (Closes: #79196, #79509)
+  * Fix whatis typo (Closes: #78178)
+  * Fix segfaults (Closes: #78903)
+  * Adding in a Recommend for kview to konqueror (Closes: #79201)
+  * Changing x-window-manager alternative from kde2 to kwin
+  * KDM init.d script cleanup (Closes: #79320)
+  * Fixed default kdmrc script to show new options
+  * Adding in a kwm script for non-session launches
+  * Adding new users to NoUsers (Closes: #79617)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 13 Dec 2000 14:41:00 -0700
+
+kdebase (4:2.0-final-5) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Fixing suid bits and ownerships - security fixes
+  * More suggests added
+  * Again removing update-alternatives --auto (Closes: #75623)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 14 Nov 2000 14:10:00 -0700
+
+kdebase (4:2.0-final-4.3) unstable; urgency=low
+ 
+  * New i18n patch for krdb kcontrol module
+  * More dependency work
+  * Minor tweak to Netscape.ad to fix font problem in messanger
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 12 Nov 2000 20:00:00 -0700
+
+kdebase (4:2.0-final-4.2) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Setting konsole as a x-terminal-emulator alternative
+  * Adding in provides for www-browser and x-terminal-emulator
+  * Removing dpkg-alternatives x-windows-manager auto setting
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 10 Nov 2000 13:30:00 -0700
+
+kdebase (4:2.0-final-4.1) unstable; urgency=low
+ 
+  * Adding in menu hints
+  * More upstream fixes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 09 Nov 2000 22:45:00 -0700
+
+kdebase (4:2.0-final-4) unstable; urgency=low
+ 
+  * Minor upstream documentation updates
+  * more kdebase-libs work
+    now properly handles pop3 and other services correctly
+    now allows for email configuration without kdebase installed
+  * more dependency work with kdm (Closes: #76565)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 08 Nov 2000 17:30:00 -0700
+
+kdebase (4:2.0-final-3.1) unstable; urgency=low
+ 
+  * applying i18n patch (Closes: #75831)
+  * more kdmrc default setting updates
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 05 Nov 2000 23:00:00 -0700
+
+kdebase (4:2.0-final-3) unstable; urgency=low
+ 
+  * more upstream fixes
+  * more kdmrc default setting updates
+  * build against new xlibs and updating depends
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 04 Nov 2000 01:00:00 -0700
+
+kdebase (4:2.0-final-2) unstable; urgency=low
+
+  * more upstream fixes
+  * klipper should be happy again
+  * more konqueror debian settings (ie..jdk default path)
+  * Minor kde2 script fixes
+  * Fixing task-kde-devel depends
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 02 Nov 2000 18:00:00 -0700
+
+kdebase (4:2.0-final-0) unstable; urgency=low
+ 
+  * KDE 2.0
+  * Updating nsplugin search paths
+  * Adding in suggest for java-virtual-machine
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 23 Oct 2000 00:00:00 -0700
+
+kdebase (4:2.0-20001016-0) unstable; urgency=low
+
+  * more upstream fixes
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 16 Oct 2000 15:00:00 -0700
+
+kdebase (4:2.0-20001015-0) unstable; urgency=low
+ 
+  * More upstream fixes
+  * More konqueror fixes for seperate package
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 15 Oct 2000 20:05:00 -0700      
+
+kdebase (4:2.0-20001013-0) unstable; urgency=low
+ 
+  * kdmdesktop fixes from upstream
+  * more i18n work
+  * applying i18n patche
+  * more fixes for konqueror
+  * Creating a kdebase-libs package
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 13 Oct 2000 07:13:00 -0700
+
+kdebase (4:2.0-20001011-0) unstable; urgency=low
+ 
+  * Lintian error cleanup
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 12 Oct 2000 05:30:00 -0700
+
+kdebase (4:2.0-20001010-0) unstable; urgency=low
+ 
+  * more upstream fixes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 10 Oct 2000 17:00:00 -0700
+
+kdebase (4:2.0-20001009-0) unstable; urgency=low
+ 
+  * KDE 2.0 RC2
+  * more upstream fixes
+  * minor kdmdekstop fix
+  
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 09 Oct 2000 08:00:00 -0700
+
+kdebase (4:2.0-20001008-0) unstable; urgency=low
+ 
+  * Breaking out konqueror, konsole, libkonq3 (and -dev) into seperate packages
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 08 Oct 2000 08:30:00 -0700
+
+kdebase (4:2.0-20001006-1) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Applying kdebase-1.94-kwin-nofreeze-20000924.diff patch (Closes: #74051)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 08 Oct 2000 03:30:00 -0700
+
+kdebase (4:2.0-20001006-0) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Breaking out crypto modules into a seperate package
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 06 Oct 2000 01:30:00 -0700
+
+kdebase (4:2.0-20001004-0) unstable; urgency=low
+ 
+  * More upstream fixes
+  * No longer depend on versioned kdelibs
+  * Fixing up kdm's postinst to better handle kdmrc
+  * More spice for kdm
+  * Fixes the following:  (Closes: #73057, #73015, #73002, #72921, #72989, #72919, #72638) 
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 02 Oct 2000 01:00:00 -0700
+
+kdebase (4:2.0-20001002-0) unstable; urgency=low
+ 
+  * KDE 2.0 RC1
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 02 Oct 2000 01:00:00 -0700
+
+kdebase (4:2.0-20000927-2) unstable; urgency=low
+ 
+  * Fixing up dependencies forcing versioned kdelibs
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 28 Sep 2000 05:00:00 -0700
+
+kdebase (4:2.0-20000927-1) unstable; urgency=low
+ 
+  * More upstream fixes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 27 Sep 2000 22:00:00 -0700
+
+kdebase (4:2.0-20000925-3) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Fixing crypto support
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 27 Sep 2000 18:00:00 -0700
+
+kdebase (4:2.0-20000925-2) unstable; urgency=low
+
+  * More upstream fixes
+  * More build-depend cleanup
+  * Clean build against new libc6
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 26 Sep 2000 22:30:00 -0700
+
+kdebase (4:2.0-20000925-0) unstable; urgency=low
+ 
+  * More upstream fixes
+  * More build-depend cleanup
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 25 Sep 2000 15:30:00 -0700
+
+kdebase (4:2.0-20000923-0) unstable; urgency=low
+ 
+  * More upstream fixes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 23 Sep 2000 00:30:00 -0700
+
+kdebase (4:2.0-20000920-2) unstable; urgency=low
+ 
+  * Trying some build tweaks
+  * Fixing build-depends some more
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 22 Sep 2000 15:00:00 -0700
+
+kdebase (4:2.0-20000920-0) unstable; urgency=low
+ 
+  * More upstream fixes 
+  * Rebuild on kdelibs3-nossl
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 20 Sep 2000 23:00:00 -0700
+
+kdebase (4:2.0-20000918-0) unstable; urgency=low
+ 
+  * More upstream fixes (-beta5)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 18 Sep 2000 17:30:00 -0700
+
+kdebase (4:2.0-20000912-0) unstable; urgency=low
+ 
+  * More upstream fixes
+  * Fixing typo in menu for kde window manager (Closes: #71395)
+  * Adding in menu-method fix to use .desktop instead of .kdelnk
+  * More copyright updates
+  * Fixing startmenu LD_LIBRARY_PATH problem (Closes: #10390)
+  * Fixing up Debian menu entries (Closes: #71402)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 12 Sep 2000 09:00:00 -0700
+
+kdebase (4:2.0-20000910-2) unstable; urgency=low
+
+  * Fixing Debian menu graphic problem
+  * More cleanup of kdm settings
+  * More dependency fixes
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 10 Sep 2000 23:00:00 -0700
+
+kdebase (4:2.0-20000910-0) unstable; urgency=low
+
+  * Changing kdm banner graphic to be the Debian swirl
+  * Fixing start script so that kde actually starts with the desktop 
+    functional.  (sorry)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 10 Sep 2000 11:45:00 -0700
+
+kdebase (4:2.0-20000909-0) unstable; urgency=low
+
+  * More upstream updates
+  * More kdm cleanup (star'd password option added)
+  * Migrating binary-indep build pieces into their own area
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 09 Sep 2000 01:00:00 -0700
+
+kdebase (4:2.0-20000907-1) unstable; urgency=low
+
+  * New upstream cvs pull
+  * Built against qt 2.2 final (GPL'd version)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 07 Sep 2000 01:00:00 -0700
+
+kdebase (4:2.0-20000905-0) unstable; urgency=low
+
+  * New upstream fixes
+  * Fixing up sections
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 05 Sep 2000 00:30:00 -0700
+
+kdebase (4:2.0-20000901-0) unstable; urgency=low
+ 
+  * New upstream fixes
+  * Fixing menu entries for konqueror
+  * Fixing build issues with random
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 01 Sep 2000 00:02:00 -0700
+
+kdebase (4:2.0-20000825-0) unstable; urgency=low
+ 
+  * New upstream fixes
+  * Updating kdm init script to match current xdm one
+  * Typo fixes in kdmrc
+  * Turning off xconsole by default for kdm
+  * Some work on menus
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 25 Aug 2000 21:30:00 -0700
+
+kdebase (4:2.0-20000821-1.0) experimental; urgency=low
+ 
+  * New upstream fixes
+  * changed xdm.options to kdm.options to seperate from xdm
+  * cleaned up pre/post scripts for kdm to handle proper upgrade from
+    kdm1.  Forcing a restart (if possible and without killing the upgrade)
+    during an upgrade.
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 21 Aug 2000 22:45:00 -0700
+
+kdebase (4:2.0-20000816-1.0) experimental; urgency=low
+
+  * New upstream beta version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 16 Aug 2000 22:30:00 -0700
+
+kdebase (4:2.0-20000810-1.0) experimental; urgency=low
+ 
+  * New upstream version
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 10 Aug 2000 02:30:00 -0700
+
+kdebase-cvs (4:2.0-20000521-1.0) experimental; urgency=low
+ 
+  * Adding in a conflict for man2html since we provide it
+  * Fixing ln issues with documentation
+  * Fixing file permissions in CVS tree
+  * Fixing some kdm issues
+  * Changing suggest to depend for kde-i18n since some documentation, etc
+    resides in that package now.  (including english)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 21 May 2000 02:30:00 -0700
+
+kdebase-cvs (4:2.0-20000512-1.0) experimental; urgency=low
+
+  * New upstream beta version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 12 May 2000 22:30:00 -0700
+
+kdebase-cvs (4:2.0-20000314-1.0) experimental; urgency=low
+ 
+  * New upstream CVS fixes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 14 Mar 2000 22:30:00 -0700
+
+kdebase-cvs (4:2.0-20000306-1.1) experimental; urgency=low
+ 
+  * New upstream CVS fixes
+  * More shlibs fixes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 06 Mar 2000 22:30:00 -0700
+
+kdebase-cvs (4:2.0-20000302-1.0) experimental; urgency=low
+ 
+  * New upstream CVS fixes
+  * Migrating chooser over to kdm-cvs package
+  * Updating kdm config files to match current versions of xdm
+  * Fixing kdm init.d scripts to handle now missing parser script
+  * Fixing kicker applet issues (required -dev to be installed to work)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 02 Mar 2000 22:00:00 -0700
+
+kdebase-cvs (4:2.0-20000229-1.0) experimental; urgency=low
+
+  * New upstream CVS fixes 
+  * Adding in build-depends
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 29 Feb 2000 22:00:00 -0700
+
+kdebase-cvs (4:2.0-20000223-1.0) experimental; urgency=low
+
+  * New upstream CVS fixes
+  * Fixing pathing for kde help files
+  * Adding in md5 options to pam.d file for kdm
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 23 Feb 2000 22:00:36 -0700
+
+kdebase-cvs (4:2.0-19991130-1.0) experimental; urgency=low
+
+  * New upstream CVS fixes
+  * Removing old update-window-managers piece in leu of new udpate-alternatives
+  * Adding missing dependencies - grep, sed
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 30 Nov 1999 00:30:36 -0400
+
+kdebase-cvs (4:2.0-19991128-1.0) experimental; urgency=low
+
+  * New upstream CVS fixes
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 28 Nov 1999 03:30:36 -0400
+
+kdebase-cvs (4:2.0-19991020-1.0) experimental; urgency=low
+
+  * New upstream CVS fixes
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 20 Oct 1999 08:30:36 -0400
+
+kdebase-cvs (4:2.0-19991001-0.1) experimental; urgency=low
+
+  * new upstream version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 01 Oct 1999 14:30:36 -0400
+
+kdebase-cvs (4:2.0-19990912-1.0) experimental; urgency=low
+
+  * new upstream version
+  * Cleaning up debian subtree: removing old window-managers file
+  * Finishing migration to /usr/share/doc
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 12 Sep 1999 15:00:36 -0400
+
+kdebase-cvs (4:2.0-19990903-1.0) experimental; urgency=low
+
+  * new upstream version
+
+ -- Stephan Kulow <coolo@kde.org>  Fri,  3 Sep 1999 21:51:36 +0200
+
+kdebase-cvs (4:2.0-19990825-1.0) experimental; urgency=low
+
+  * New upstream CVS changes
+  * Fixes problem with /usr/bin/kde2 (missing a / )
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 25 Aug 1999 13:00:56 -0400
+
+kdebase-cvs (4:2.0-19990825-1) experimental; urgency=low
+
+  * New upstream CVS changes
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 25 Aug 1999 07:00:56 -0400
+
+kdebase-cvs (4:2.0-19990823-1) experimental; urgency=low
+ 
+  * New upstream CVS changes
+  * Fixes bug with init.d script for kdm2
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 23 Aug 1999 07:00:56 -0400
+
+kdebase-cvs (4:2.0-19990820-1.1) experimental; urgency=low
+
+  * several small package fixes mainly with pathing
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 21 Aug 1999 00:30:56 -0400
+
+kdebase-cvs (4:2.0-19990820-1) experimental; urgency=low
+
+  * new CVS version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 20 Aug 1999 13:30:56 -0400
+
+kdebase-cvs (4:2.0-19990626-2) experimental; urgency=low
+
+  * new version
+
+ -- Stephan Kulow <coolo@kde.org>  Sat, 26 Jun 1999 22:37:56 +0200
+
+kdebase-cvs (4:2.0-19990626-1) experimental; urgency=low
+
+  * New upstream CVS version
+  * Brought in sync with -stable tree
+  * Adding in -include statements into the ./configure piece
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 26 Jun 1999 06:00:29 -0400
+
+kdebase-cvs (4:2.0-19990620-1) experimental; urgency=low
+
+  * New upstream CVS version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 20 Jun 1999 11:00:29 -0400
+
+kdebase-cvs (4:2.0-19990601-1) experimental; urgency=low
+
+  * New upstream CVS version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 01 Jun 1999 01:00:29 -0400
+
+kdebase-cvs (4:2.0-19990531-1) experimental; urgency=low 
+
+  * Making kdm not require xdm
+  * Fixing some pam stuff which includes a /etc/pam.d/kde file, making
+    the pam name=kde so that it uses the /etc/pam.d/kde file instead of
+    xdm, kdm, or whatever.
+  * Fixing the linux fonts for konsole.
+  * Fixing the /var/state/kdm issue
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 31 May 1999 19:30:29 -0400
+
+kdebase-cvs (4:2.0-19990524-1) experimental; urgency=low
+
+  * migrating back to / from /opt
+  * working in new build changes to bring package more in line with
+    current Debian dist
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 24 May 1999 07:00:29 -0400
+
+kdebase-cvs (4:2.0-19990314-3) experimental; urgency=low
+
+  * fixing some lintian problems
+
+ -- Stephan Kulow <coolo@kde.org>  Mon, 15 Mar 1999 17:17:29 +0100
+
+kdebase-cvs (4:2.0-19990314-2) experimental; urgency=low
+
+  * taking out the undocumented call
+
+ -- Stephan Kulow <coolo@kde.org>  Mon, 15 Mar 1999 16:42:47 +0100
+
+kdebase-cvs (4:2.0-19990314-1) experimental; urgency=low
+
+  * moving the -cvs from version to package name
+
+ -- Stephan Kulow <coolo@kde.org>  Sun, 14 Mar 1999 21:01:10 +0100
+
+kdebase-cvs (4:2.0-19990314-cvs-1) experimental; urgency=low
+
+  * using newest kdelibs
+
+ -- Stephan Kulow <coolo@kde.org>  Sun, 14 Mar 1999 00:16:36 +0100
+
+kdebase (4:2.0-19990309-1) experimental; urgency=low
+
+  * new upstream version with Qt 2.0
+
+ -- Stephan Kulow <coolo@kde.org>  Tue,  9 Mar 1999 23:56:08 +0100
+
+kdebase (4:1.1-19990306-1) unstable; urgency=low
+
+  * new upstream version out of CVS (many translation updates and some
+    security fixes
+
+ -- Stephan Kulow <coolo@kde.org>  Sat,  6 Mar 1999 18:03:04 +0100
+
+kdebase (4:1.1-19990217-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephan Kulow <coolo@kde.org>  Wed, 17 Feb 1999 19:09:41 +0100
+
+kdebase (4:1.1-19990214-2) unstable; urgency=low
+
+  * move the link from /var/ to /usr, since /usr may be read only
+  * patch Xserver_0 to run kdmgreeter if kdm runs
+
+ -- Stephan Kulow <coolo@kde.org>  Tue, 16 Feb 1999 18:52:03 +0100
+
+kdebase (4:1.1-19990214-1) unstable; urgency=low
+
+  * fix some bugs (krdb & menu)
+
+ -- Stephan Kulow <coolo@kde.org>  Sun, 14 Feb 1999 21:29:34 +0100
+
+kdebase (4:1.1-19990207-3) unstable; urgency=low
+
+  * new kdmrc handling
+
+ -- Stephan Kulow <coolo@kde.org>  Fri, 12 Feb 1999 11:03:56 +0100
+
+kdebase (4:1.1-19990207-2) unstable; urgency=low
+
+  * followed the suggestion of Russel Cooker and splited kdebase
+  * fixed a bug with the jpeglib version
+
+ -- Stephan Kulow <coolo@kde.org>  Tue,  9 Feb 1999 09:59:11 +0100
+
+kdebase (4:1.1-19990207-1) unstable; urgency=low
+
+  * new upstream version 1.1 and new epoche
+
+ -- Stephan Kulow <coolo@kde.org>  Sun,  7 Feb 1999 12:12:58 +0100
+
+kdebase (2:980710-1.0-1) unstable; urgency=low
+
+  * new upstream version 1.0
+
+ -- Stephan Kulow <coolo@kde.org>  Sun, 12 Jul 1998 14:44:00 +0200
+
+kdebase (2:980419-b4-1) unstable; urgency=low
+
+  * new upstream version Beta4
+
+ -- Stephan Kulow <coolo@kde.org>  Sun, 19 Apr 1998 15:04:38 +0200
+
+kdebase (2:980312-5) unstable; urgency=low
+
+  * remove kwm from /etc/X11/window-managers in postrm
+
+ -- Stephan Kulow <coolo@kde.org>  Fri,  3 Apr 1998 18:42:12 +0200
+
+kdebase (2:980312-4) frozen; urgency=low
+
+  * added undocumented man page
+  * renamed kdmconfig to switchdm. This name existed twice
+  * new compile with latest kdelibs shlibs
+
+ -- Stephan Kulow <coolo@kde.org>  Tue, 31 Mar 1998 20:26:23 +0200
+
+kdebase (2:980312-3) unstable; urgency=low
+
+  * use debhelper tools now
+  * changed the directory for debian apps to /var/spool/applnk
+  * set the correct UTMP file
+  * test prefix() before removing it. This should avoid a rm -rf /, when possible
+  * new kdm (with bugfixes and new location for configuration files)
+
+ -- Stephan Kulow <coolo@kde.org>  Fri, 27 Mar 1998 16:07:37 +0100
+
+kdebase (2:980312-2) frozen; urgency=low
 
-   * Add libstreamanalyzer-dev, libxrender-dev, zlib1g-dev, libglu1-mesa-dev,
-     libpci-dev, libxt-dev, pkg-config (for getting strigi version) to
-     build depends.
-   * Add 97_fix_target_link_libraries.diff.
-   * Update install files, sort them.
-   * Remove AUTHORS from debian/docs.
-   * Do not install README to each package. It's pointless. Install it only
-     to kdebase.
+  * new compile cycle with qt-1.33 and libstd++-2.8
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 01 May 2008 08:11:05 +0200
+ -- Stephan Kulow <coolo@kde.org>  Tue, 24 Mar 1998 19:07:00 +0100
 
-kdebase (4:4.0.68+svn794641-1) experimental; urgency=low
+kdebase (2:980312-1) experimental; urgency=low
 
-  * New upstream snapshot.
-  * Add versioned build depend on qimageblitz >= 1:0.0.4-2.
+  * added -O2 to CXXFLAGS
+  * New upstream release
 
- -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Fri, 04 Apr 2008 16:37:13 +0200
+ -- Stephan Kulow <coolo@kde.org>  Thu, 12 Mar 1998 23:05:14 +0100
 
-kdebase (4:4.0.66+svn791114-1) experimental; urgency=low
+kdebase (2:980310-1) experimental; urgency=low
 
-  * First KDE 4.1 snapshot packaged.
+  * disable the run of kappfinder to not create a non-KDE apps like menu twice
+  * changed the README.debian file to reflect the new state of this package
+  * New upstream release
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+ -- Stephan Kulow <coolo@kde.org>  Mon,  9 Mar 1998 23:12:46 +0100
 
-  * Update installed files.
-  * Add build depend on libraw1394-dev.
+kdebase (980228-1) experimental; urgency=low
 
-  +++ Changes by Armin Berres
+  * New upstream release
 
-  * Add conflict against kcontrol to kinfocenter (Closes: #465702).
+ -- Stephan Kulow <coolo@kde.org>  Sat, 28 Feb 1998 21:21:55 +0100
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 28 Mar 2008 16:22:10 +0100
+kdebase (980227-1) experimental; urgency=low
 
-kdebase (4:4.0.2-1) experimental; urgency=low
+  * added *.moc to the clean target
+  * added po/no/Makefile to configure.in
+  * disabled all sound applications, because mediatool is broken
+  * disabled rpath
+  * changed section to contrib
+  * New upstream release
 
-  * New upstream release.
+ -- Stephan Kulow <coolo@kde.org>  Fri, 27 Feb 1998 20:06:44 +0100
 
-  +++ Changes by Matthew Rosewarne:
+kdebase (1:980225-1) experimental; urgency=low
 
-  * Move dolphin, kfind, and kinfocenter to Section: utils.
-  * Move kdepasswd to Section: admin.
-  * Move kwrite to Section: editors.
+  * New upstream release
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+ -- Stephan Kulow <coolo@kde.org>  Wed, 25 Dec 1998 21:48:23 +0100
 
-  * Update installed files.
-  * Bump build-depends to >= 4.0.2.
+kdebase (1:Beta2-2.1) experimental; urgency=low
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 04 Mar 2008 19:35:59 +0100
+  * New upstream release
 
-kdebase (4:4.0.1-1) experimental; urgency=low
+ -- Andreas Jellinghaus <aj@debian.org>  Fri,  5 Dec 1997 21:18:40 +0100
 
-  * New upstream release.
+kdebase (1:Beta2-2) unstable; urgency=low
 
-  +++ Changes by Armin Berres:
+  * fixed kde / startkde script. added minimal documentation.
+  * fixed klock permissions.
+  * removed startkde script.
+  * removed virtual package names.
+  * fixed utmp file location in kvt.
 
-  * Update installed files.
-  * Bump build-depends to >= 4.0.1-1.
+ -- Andreas Jellinghaus <aj@debian.org>  Sat, 29 Nov 1997 12:53:41 +0100
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+kdebase (1:Beta2-1) unstable; urgency=low
 
-  * Bump compat/debhelper 6.
+  * New upstream release
 
-  +++ Changes by Fathi Boudra:
+ -- Andreas Jellinghaus <aj@debian.org>  Sun, 23 Nov 1997 22:27:46 +0100
 
-  * Add Vcs-Browser and Vcs-Svn fields.
+kdebase (1:Beta1.2-2) unstable; urgency=low
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 04 Feb 2008 14:35:21 +0100
+  * start kdepanel only once.
+  * fixed kfm bug.
 
-kdebase (4:4.0.0-2) experimental; urgency=low
+ -- Andreas Jellinghaus <aj@debian.org>  Sun,  9 Nov 1997 17:37:38 +0100
 
-  +++ Changes by Armin Berres:
+kdebase (1:Beta1.2-1) unstable; urgency=low
 
-  * KWrite ships files which are contained in kate from KDE 3. Add
-    conflict and replaces.
+  * New upstream release
 
-  +++ Changes by Matthew Rosewarne:
+ -- Andreas Jellinghaus <aj@debian.org>  Mon, 27 Oct 1997 11:49:11 +0100
 
-  * Tweak package descriptions.
-  * Change KDE 4 dependency version to 4:4.0.0-1.
-  * Remove unnecessary Replaces.
-  * Make dependencies binNMU-friendly.
-  * More specific dependencies for kdebase-dev.
-  * Move libkonq.so from kdebase-dev to libkonq5-dev.
-  * Use source:Version for kdebase metapackage.
-  * Remove Recommends: kdm from kdebase.
-  * Add Recommends: konqueror-nsplugins to konqueror.
-  * Remove Recommends: xine-ui from kappfinder.
-  * Change kdebase-dbg Depends to kdebase-runtime-dbg.
-  * Add Suggests: kdebase to kdebase-dbg.
+kdebase (1:Beta1.1-1) unstable; urgency=low
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+  * New upstream release
 
-  * Add lintian overrides for dolphin, kinfocenter, konqueror, konsole and
-    kwrite.
+ -- Andreas Jellinghaus <aj@debian.org>  Mon, 20 Oct 1997 11:44:11 +0200
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 26 Jan 2008 05:46:56 +0100
+kdebase (971019-1) unstable; urgency=low
 
-kdebase (4:4.0.0-1) experimental; urgency=low
+  * added module support to kde menu-method (untested)
+  * dependency on new menu version with extensions for kde
+  * new menu method (thanks joost) 
+  * Fixed screen saver path (debian paths)
+  * New upstream release
+  * Fixed more paths (debian paths)
 
-  * New upstream release.
+ -- Andreas Jellinghaus <aj@debian.org>  Sun, 19 Oct 1997 12:53:44 +0200
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+kdebase (971013-1) unstable; urgency=low
 
-  * Bump build-depends to >= 4.0.0-1.
-  * Update dolphin.install.
-  * Update years in copyright.
+  * New upstream release
 
-  +++ Changes by Matthew Rosewarne:
+ -- Andreas Jellinghaus <aj@debian.org>  Mon, 13 Oct 1997 08:23:08 +0200
 
-  * Add Homepage: to control.
-  * Tweak package descriptions.
+kdebase (971011-1) unstable; urgency=low
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 10 Jan 2008 09:19:46 +0100
+  * New upstream release
 
-kdebase (4:3.98.0~svn755919-1) experimental; urgency=low
+ -- Andreas Jellinghaus <aj@debian.org>  Sun, 12 Oct 1997 12:13:25 +0200
 
-  * New svn snapshot release to revision 755919.
+kdebase (971009-1) unstable; urgency=low
 
-  +++ Changes by Armin Berres:
+  * New upstream release
 
-  * Update installed files.
-  * Raise build-dep to >= 4:3.98.0~svn755919-1.
+ -- Andreas Jellinghaus <aj@debian.org>  Thu,  9 Oct 1997 10:51:49 +0200
 
-  +++ Changes by Fathi Boudra:
+kdebase (971008-1) unstable; urgency=low
 
-  * Add libphonon-dev build dependency.
+  * New upstream release
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 02 Jan 2008 12:24:03 +0100
+ -- Andreas Jellinghaus <aj@debian.org>  Wed,  8 Oct 1997 10:07:59 +0200
 
-kdebase (4:3.98.0~svn753247-1) experimental; urgency=low
+kdebase (971006-2) unstable; urgency=low
 
-  * Svn snapshot of revision 753247.
+  * daily recompile of everything.
 
-  +++ Changes by Armin Berres:
+ -- Andreas Jellinghaus <aj@debian.org>  Tue,  7 Oct 1997 10:56:23 +0200
 
-  * Split some files from libkonq5 out into libkonq5-templates which conflict
-    with KDE 3's kdesktop.
-  * Remove extra LDFLAGS. Included via CDBS now.
-  * Make kdebase-bin depend on the source and not the binary version of
-    kdebase-data and add a conflict with kdesktop. Package doesn't exist
-    anymore and should be removed if new kdebase gets installed.
+kdebase (971006-1) unstable; urgency=low
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+  * New upstream release
 
-  * Bump build-dep to >= 4:3.98.0~svn753247-1.
-  * Update *.install files.
-  * Add kinfocenter, it has been moved from -runtime.
+ -- Andreas Jellinghaus <aj@debian.org>  Mon,  6 Oct 1997 09:24:17 +0200
 
- -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Thu, 27 Dec 2007 04:37:59 +0100
+kdebase (971005-1) unstable; urgency=low
 
-kdebase (4:3.97.0-1) experimental; urgency=low
+  * New upstream release
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+ -- Andreas Jellinghaus <aj@debian.org>  Sun,  5 Oct 1997 17:32:13 +0200
 
-  * New upstream release:
-    - Build depend on kdepimlibs5-dev >= 4:3.97.0.
-    - Update *.install files.
-  * Update Standards-Version to 3.7.3.
-  * Remove README about beta packages, they are supposed to be stable now.
-  * Remove empty packages knetattach and kdebase-kio-plugins.
-  * Add export LDFLAGS+="-Wl,--as-needed" in rules to make dpkg-shlibdeps
-    happier.
+kdebase (971003-1) unstable; urgency=low
 
-  +++ Changes by Armin Berres:
+  * New upstream release
 
-  * Remove dependency of kdebase-data on kde-icons-oxygen.
-  * Depend on epoched version of kdepimlibs5-dev.
-  * Correct libkonq5-dev's dependency on kdelibs5-dev.
+ -- Andreas Jellinghaus <aj@debian.org>  Fri,  3 Oct 1997 08:23:44 +0200
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 11 Dec 2007 21:32:04 +0100
+kdebase (971002-1) unstable; urgency=low
 
-kdebase (4:3.96.0-1) experimental; urgency=low
+  * New upstream release
 
-  * New upstream release.
+ -- Andreas Jellinghaus <aj@debian.org>  Thu,  2 Oct 1997 08:52:11 +0200
 
-  +++ Changes by Fathi Boudra:
+kdebase (970930-1) unstable; urgency=low
 
-  * Bump kdepimlibs5-dev build dependency version.
-  * Update installed files.
+  * New upstream release
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 14 Nov 2007 20:37:18 +0100
+ -- Andreas Jellinghaus <aj@debian.org>  Tue, 30 Sep 1997 11:56:08 +0200
 
-kdebase (4:3.95.0-1) experimental; urgency=low
+kdebase (970929-1) unstable; urgency=low
 
-  * New upstream release: KDE4 beta 4.
+  * New upstream release
 
-  +++ Changes by Fathi Boudra:
+ -- Andreas Jellinghaus <aj@debian.org>  Mon, 29 Sep 1997 09:40:07 +0200
 
-  * Add kdebase-data build dependency to kdebase-bin.
-  * Add xine-ui recommends to kappfinder. See xine call in xine.desktop.
+kdebase (970925-2) unstable; urgency=low
 
-  +++ Changes by Armin Berres:
+  * daily recompile of everything.
 
-  * Remove no more needed build dependency on libxine-dev.
-  * Add build dependency on libxkbfile-dev.
-  * Let kdebase-dev strictly depend on the same binary version of kdebase.
-  * Remove the conflict of kde-icons-oxygen with kdebase-data. It isn't
-    needed and prevents co-installability with KDE3.
-  * Update *.install files.
-  * Remove drkonqi, kde-icons-oxygen and khelpcenter which are shipped with
-    kdebase-runtime now.
-  * Remove kdeprint package which has been removed upstream.
-  * Remove runtime files from copyright.
-  * Make kdebase-data arch-all.
+ -- Andreas Jellinghaus <aj@debian.org>  Fri, 26 Sep 1997 08:55:56 +0200
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 28 Oct 2007 11:51:21 +0000
+kdebase (970925-1) unstable; urgency=low
 
-kdebase (4:3.94.0-2) experimental; urgency=low
+  * New upstream release
 
-  +++ Changes by Fathi Boudra:
+ -- Andreas Jellinghaus <aj@debian.org>  Thu, 25 Sep 1997 08:08:36 +0200
 
-  * Pull SVN branch to r726783.
+kdebase (970924-2) unstable; urgency=low
 
-  +++ Changes by Armin Berres:
+  * now use kderules.
+  * daily recompile of everything.
 
-  * Add debug package.
-  * Split the Oxygen icons into a separate package kde-icons-oxygen. This way
-    KDE4 applications can be used when running KDE3.
+ -- Andreas Jellinghaus <aj@debian.org>  Wed, 24 Sep 1997 10:36:09 +0200
 
-  +++ Changes by Ana Beatriz Guerrero Lopez:
+kdebase (970924-1) unstable; urgency=low
 
-  * Update *.install files.
-  * Upload! :-)
+  * New upstream release
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 18 Oct 2007 23:32:51 +0200
+ -- Andreas Jellinghaus <aj@debian.org>  Wed, 24 Sep 1997 08:32:38 +0200
 
-kdebase (4:3.94.0-1) experimental; urgency=low
+kdebase (970923-1) unstable; urgency=low
 
-  * KDE4 beta3.
+  * New upstream release
 
-  +++ Changes by Armin Berres:
+ -- Andreas Jellinghaus <aj@debian.org>  Tue, 23 Sep 1997 08:40:36 +0200
 
-  * Remove listed directories in kdebase-data.install to avoid accidentally
-    installed files - removes conflicting file between kdebase-data and
-    kdeprint.
-  * Update *.install files.
+kdebase (970922-1) unstable; urgency=low
 
- -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 17 Oct 2007 23:37:18 +0200
+  * New upstream release
 
-kdebase (4:3.93.0-1) experimental; urgency=low
+ -- Andreas Jellinghaus <aj@debian.org>  Mon, 22 Sep 1997 09:30:58 +0200
 
-  * KDE4 beta2, first upload to the Debian archive.
+kdebase (970921-1) unstable; urgency=low
 
- -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Sat, 01 Sep 2007 16:17:55 +0200
+  * New upstream release
 
-kdebase (4:3.92.0-1) experimental; urgency=low
+ -- Andreas Jellinghaus <aj@debian.org>  Sun, 21 Sep 1997 13:50:08 +0200
 
-  * KDE4 beta 1, first upload to the Debian archive.
-  * Update *.install files.
-  * Added patch 01_kdehome_kde4.diff to set kdehome directory to .kde4.
+kdebase (970920-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Andreas Jellinghaus <aj@debian.org>  Sat, 20 Sep 1997 10:36:15 +0200
 
- -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Wed, 15 Aug 2007 01:57:17 +0200
diff -pruN 4:4.6.3-1/debian/control 4:4.6.3-1ubuntu1/debian/control
--- 4:4.6.3-1/debian/control	2011-05-26 00:53:12.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/control	2011-05-30 21:48:29.000000000 +0100
@@ -1,7 +1,8 @@
 Source: kdebase
 Section: kde
 Priority: optional
-Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
+Maintainer: Kubuntu Developers <kubuntu-devel@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
 Uploaders: Sune Vuorela <debian@pusling.com>, Fathi Boudra <fabo@debian.org>, Armin Berres <armin+debian@space-based.de>,
  Modestas Vainius <modax@debian.org>, George Kiagiadakis <kiagiadakis.george@gmail.com>,
  José Manuel Santamaría Lema <panfaust@gmail.com>
@@ -14,8 +15,8 @@ Build-Depends: kde-sc-dev-latest (>= 4:4
  libxt-dev, pkg-config, libglib2.0-dev, shared-desktop-ontologies
 Standards-Version: 3.9.2
 Homepage: http://www.kde.org/
-Vcs-Browser: http://git.debian.org/?p=pkg-kde/kde-sc/kdebase.git
-Vcs-Git: git://git.debian.org/pkg-kde/kde-sc/kdebase.git
+Vcs-Browser: http://bazaar.launchpad.net/~kubuntu-packagers/kdebase/ubuntu
+Vcs-Bzr: https://code.launchpad.net/~kubuntu-packagers/kdebase/ubuntu
 
 Package: kdebase-apps
 Architecture: all
@@ -40,8 +41,8 @@ Package: dolphin
 Section: utils
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Recommends: kfind, ruby
-Suggests: kdesdk-dolphin-plugins
+Recommends: kfind
+Suggests: kdesdk-dolphin-plugins, ruby
 Description: file manager 
  Dolphin is the default file manager in the KDE Plasma Workspaces, intended
  to be both powerful and easy to use.
@@ -70,6 +71,8 @@ Description: core binaries for the KDE b
 Package: kdebase-data
 Architecture: all
 Depends: ${misc:Depends}
+Replaces: dolphin (<< 4:4.6.3-1ubuntu1), konqueror (<< 4:4.6.3-1ubuntu1)
+Breaks: dolphin (<< 4:4.6.3-1ubuntu1), konqueror (<< 4:4.6.3-1ubuntu1)
 Description: shared data files for the KDE base applications
  This package contains the architecture-independent shared data files needed
  for a basic KDE 4 desktop installation.
@@ -101,6 +104,7 @@ Architecture: any
 Provides: info-browser, man-browser, www-browser
 Depends: ${shlibs:Depends}, ${misc:Depends}, kdebase-data (= ${source:Version}),
  kdebase-bin (= ${binary:Version}), install-info
+Replaces: libkonqsidebarplugin4a (<< 4:4.5.80)
 Suggests: konq-plugins (>= 4:4.1~)
 Recommends: konqueror-nsplugins (= ${binary:Version}), dolphin
 Description:  advanced file manager, web browser and document viewer
@@ -206,6 +210,8 @@ Section: libs
 Architecture: any
 X-Debian-ABI: 0
 Depends: ${shlibs:Depends}, ${misc:Depends}
+Replaces: libkonqsidebarplugin4
+Breaks: libkonqsidebarplugin4
 Description: konqueror sidebar plugin library
  This package contains base library for Konqueror sidebar plugins.
  .
@@ -216,6 +222,8 @@ Section: libdevel
 Architecture: any
 Depends: libkonqsidebarplugin4a (= ${binary:Version}),
  ${sameVersionDep:kdelibs5-dev:libkonqsidebarplugin4a}, ${misc:Depends}
+Replaces: libkonqsidebarplugin4-dev
+Breaks: libkonqsidebarplugin4-dev
 Description: konqueror sidebar plugin library development files
  This package contains development headers for the Konqueror sidebar plugin
  library.
diff -pruN 4:4.6.3-1/debian/konqueror.postinst 4:4.6.3-1ubuntu1/debian/konqueror.postinst
--- 4:4.6.3-1/debian/konqueror.postinst	2010-07-26 00:45:22.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/konqueror.postinst	2011-05-30 21:22:59.000000000 +0100
@@ -3,7 +3,7 @@
 case "$1" in
     configure)
 	update-alternatives --install /usr/bin/x-www-browser \
-	    x-www-browser /usr/bin/konqueror 100 \
+	    x-www-browser /usr/bin/konqueror 30 \
 	    --slave /usr/share/man/man1/x-www-browser.1.gz \
 	    x-www-browser.1.gz /usr/share/man/man1/konqueror.1.gz
     ;;
diff -pruN 4:4.6.3-1/debian/KUBUNTU-DEBIAN-DIFFERENCES 4:4.6.3-1ubuntu1/debian/KUBUNTU-DEBIAN-DIFFERENCES
--- 4:4.6.3-1/debian/KUBUNTU-DEBIAN-DIFFERENCES	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/KUBUNTU-DEBIAN-DIFFERENCES	2011-05-30 21:46:14.000000000 +0100
@@ -0,0 +1,5 @@
+    - Keep bumped replace/conflicts versions where necessary
+    - Do not re-add optional, unsatisfiable kdesktop dependency for libkonq5a
+    - Suggest instead of recommend ruby in dolphin
+    - Reduce the x-www-browser priority for konqueror to 30 as rekonq is the
+      default Kubuntu browser.
diff -pruN 4:4.6.3-1/debian/patches/kubuntu_04_hide_kfind.diff 4:4.6.3-1ubuntu1/debian/patches/kubuntu_04_hide_kfind.diff
--- 4:4.6.3-1/debian/patches/kubuntu_04_hide_kfind.diff	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/patches/kubuntu_04_hide_kfind.diff	2011-05-30 21:22:59.000000000 +0100
@@ -0,0 +1,9 @@
+Index: kdebase-4.5.80/kfind/kfind.desktop
+===================================================================
+--- kdebase-4.5.80.orig/kfind/kfind.desktop	2010-11-19 10:51:02.000000000 +0000
++++ kdebase-4.5.80/kfind/kfind.desktop	2010-11-25 16:07:04.071492705 +0000
+@@ -95,3 +95,4 @@
+ X-KDE-StartupNotify=true
+ OnlyShowIn=KDE;
+ Categories=Qt;KDE;Core;
++NoDisplay=true
diff -pruN 4:4.6.3-1/debian/patches/kubuntu_10_konq_scans_nsplugins_at_startup.diff 4:4.6.3-1ubuntu1/debian/patches/kubuntu_10_konq_scans_nsplugins_at_startup.diff
--- 4:4.6.3-1/debian/patches/kubuntu_10_konq_scans_nsplugins_at_startup.diff	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/patches/kubuntu_10_konq_scans_nsplugins_at_startup.diff	2011-05-30 21:22:59.000000000 +0100
@@ -0,0 +1,33 @@
+Index: kdebase-4.5.80/konqueror/src/konqmain.cpp
+===================================================================
+--- kdebase-4.5.80.orig/konqueror/src/konqmain.cpp	2010-07-06 06:54:17.000000000 +0000
++++ kdebase-4.5.80/konqueror/src/konqmain.cpp	2010-11-25 16:16:44.703492705 +0000
+@@ -24,6 +24,7 @@
+ #include "konqsessionmanager.h"
+ #include "konqview.h"
+ #include "konqsettingsxt.h"
++#include "kprocess.h"
+ 
+ #include <ktemporaryfile.h>
+ #include <klocale.h>
+@@ -216,6 +217,20 @@
+     }
+     args->clear();
+ 
++    // Kubuntu FIX: Execute nspluginscan if available, so that users won't have
++    // to run it manually (see LP: #349728)
++    KProcess nspluginscan;
++    nspluginscan.setOutputChannelMode(KProcess::SeparateChannels);
++    QString scanExe = KGlobal::dirs()->findExe("nspluginscan");
++    if (scanExe.isEmpty()) {
++      kDebug() << "can't find nspluginviewer";
++    }
++    // start nspluginscan
++    nspluginscan << scanExe;
++    kDebug() << "Running nspluginscan";
++    nspluginscan.start();
++
++
+     app.exec();
+ 
+     // Delete all KonqMainWindows, so that we don't have
diff -pruN 4:4.6.3-1/debian/patches/kubuntu_18_fix_systemsettings_about_me.diff 4:4.6.3-1ubuntu1/debian/patches/kubuntu_18_fix_systemsettings_about_me.diff
--- 4:4.6.3-1/debian/patches/kubuntu_18_fix_systemsettings_about_me.diff	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/patches/kubuntu_18_fix_systemsettings_about_me.diff	2011-05-30 21:22:59.000000000 +0100
@@ -0,0 +1,58 @@
+Index: kdebase-4.4.80/kdepasswd/kcm/main.cpp
+===================================================================
+--- kdebase-4.4.80.orig/kdepasswd/kcm/main.cpp	2010-05-25 19:38:25.713529516 +0200
++++ kdebase-4.4.80/kdepasswd/kcm/main.cpp	2010-05-25 19:40:36.291654080 +0200
+@@ -20,8 +20,15 @@
+  *
+  */
+ 
++
+ #include "main.h"
+ 
++// for getpwuid(getuid())
++#include <unistd.h>
++#include <sys/types.h>
++#include <pwd.h>
++
++
+ #include <QtGui/QLayout>
+ #include <QtGui/QLabel>
+ #include <QtGui/QLineEdit>
+@@ -143,7 +150,14 @@
+ 
+ 	_kes->setProfile(_kes->defaultProfileName());
+ 
+-	_mw->leRealname->setText( _kes->getSetting( KEMailSettings::RealName ));
++	QString realName = _kes->getSetting( KEMailSettings::RealName );
++	 if (realName.isEmpty()) {
++	   QString gecos( getpwuid(getuid())->pw_gecos );
++	   realName = gecos.left(gecos.indexOf(','));
++	   _kes->setSetting( KEMailSettings::RealName, realName );
++	 }
++	_mw->leRealname->setText( realName );
++
+ 	_mw->leEmail->setText( _kes->getSetting( KEMailSettings::EmailAddress ));
+ 	_mw->leOrganization->setText( _kes->getSetting( KEMailSettings::Organization ));
+ 	_mw->leSMTP->setText( _kes->getSetting( KEMailSettings::OutServer ));
+Index: kdebase-4.4.80/kdepasswd/kcm/main_widget.ui
+===================================================================
+--- kdebase-4.4.80.orig/kdepasswd/kcm/main_widget.ui	2010-05-25 19:38:36.362904328 +0200
++++ kdebase-4.4.80/kdepasswd/kcm/main_widget.ui	2010-05-25 19:41:33.101654172 +0200
+@@ -128,12 +128,15 @@
+          <bool>false</bool>
+         </property>
+         <property name="buddy">
+-         <cstring>leRealname</cstring>
++	  <cstring>leRealname</cstring>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+-       <widget class="KLineEdit" name="leRealname">
++	<widget class="KLineEdit" name="leRealname">
++	  <property name="enabled">
++	    <bool>false</bool>
++	  </property>
+         <property name="showClearButton" stdset="0">
+          <bool>true</bool>
+         </property>
diff -pruN 4:4.6.3-1/debian/patches/kubuntu_19_install_flash.diff 4:4.6.3-1ubuntu1/debian/patches/kubuntu_19_install_flash.diff
--- 4:4.6.3-1/debian/patches/kubuntu_19_install_flash.diff	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/patches/kubuntu_19_install_flash.diff	2011-05-30 21:22:59.000000000 +0100
@@ -0,0 +1,22 @@
+Index: kdebase-4.5.80/konqueror/src/konqmainwindow.cpp
+===================================================================
+--- kdebase-4.5.80.orig/konqueror/src/konqmainwindow.cpp	2010-11-11 14:40:39.000000000 +0000
++++ kdebase-4.5.80/konqueror/src/konqmainwindow.cpp	2010-11-25 16:16:48.911492704 +0000
+@@ -189,6 +189,17 @@
+     , m_configureDialog(0)
+     , m_pURLCompletion(0)
+ {
++  //Added by Kubuntu for update-notifier-kde to prompt for restricted codec install
++  QDBusMessage m = QDBusMessage::createMethodCall(QLatin1String("org.kubuntu.restrictedInstall"),
++                                                  QLatin1String("/org/kubuntu/restrictedInstall"),
++             QLatin1String("org.kubuntu.restrictedInstall"),
++             QLatin1String("installRestricted"));
++  QList<QVariant> dbusargs;
++  dbusargs.append(KonqFactory::aboutData()->programName());
++  dbusargs.append(QLatin1String("flashplugin-installer"));
++  m.setArguments(dbusargs);
++  bool queued = QDBusConnection::sessionBus().send(m);
++
+   incInstancesCount();
+   setPreloadedFlag( false );
+ 
diff -pruN 4:4.6.3-1/debian/patches/kubuntu_21_konsole_invalid_session_crash_fix.diff 4:4.6.3-1ubuntu1/debian/patches/kubuntu_21_konsole_invalid_session_crash_fix.diff
--- 4:4.6.3-1/debian/patches/kubuntu_21_konsole_invalid_session_crash_fix.diff	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/patches/kubuntu_21_konsole_invalid_session_crash_fix.diff	2011-05-30 21:22:59.000000000 +0100
@@ -0,0 +1,19 @@
+Index: kdebase-4.4.2/konsole/src/ViewManager.cpp
+===================================================================
+--- kdebase-4.4.2.orig/konsole/src/ViewManager.cpp	2010-04-16 11:43:42.909426295 -0400
++++ kdebase-4.4.2/konsole/src/ViewManager.cpp	2010-04-16 11:44:21.748371342 -0400
+@@ -955,6 +955,14 @@
+         _viewSplitter->activeContainer()->setActiveView(display);
+         display->setFocus(Qt::OtherFocusReason);
+     }
++    if (ids.isEmpty()) // Session file is unusable, start default Profile
++    {
++        Profile::Ptr profile = SessionManager::instance()->defaultProfile();
++        Session* session = SessionManager::instance()->createSession(profile);
++        createView(session);
++        if (!session->isRunning())
++            session->run();
++    }
+ }
+ 
+ uint qHash(QPointer<TerminalDisplay> display)
diff -pruN 4:4.6.3-1/debian/patches/kubuntu_24_folderview_livecd_directory.diff 4:4.6.3-1ubuntu1/debian/patches/kubuntu_24_folderview_livecd_directory.diff
--- 4:4.6.3-1/debian/patches/kubuntu_24_folderview_livecd_directory.diff	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/patches/kubuntu_24_folderview_livecd_directory.diff	2011-05-30 21:22:59.000000000 +0100
@@ -0,0 +1,23 @@
+Index: kdebase-4.5.80/plasma/applets/folderview/folderview.cpp
+===================================================================
+--- kdebase-4.5.80.orig/plasma/applets/folderview/folderview.cpp	2010-11-11 14:40:41.000000000 +0000
++++ kdebase-4.5.80/plasma/applets/folderview/folderview.cpp	2010-11-25 16:18:05.839492704 +0000
+@@ -27,6 +27,7 @@
+ #include <QGraphicsSceneDragDropEvent>
+ #include <QImageReader>
+ #include <QItemSelectionModel>
++#include <QFile>
+ 
+ #include <KAction>
+ #include <KAuthorized>
+@@ -378,6 +379,10 @@
+                 path = QString("desktop:/");
+             }
+         }
++
++        if (QFile::exists("/usr/share/applications/kde4/oem-config-prepare-kde.desktop") || QFile::exists("/usr/share/applications/kde4/ubiquity-kdeui.desktop")) {
++            path = QString("desktop:/");
++        }
+         setUrl(cg.readEntry("url", KUrl(path)));
+ 
+     } else {
diff -pruN 4:4.6.3-1/debian/patches/series 4:4.6.3-1ubuntu1/debian/patches/series
--- 4:4.6.3-1/debian/patches/series	2011-05-26 00:53:12.000000000 +0100
+++ 4:4.6.3-1ubuntu1/debian/patches/series	2011-05-30 21:51:49.000000000 +0100
@@ -1,3 +1,8 @@
+kubuntu_04_hide_kfind.diff
+kubuntu_10_konq_scans_nsplugins_at_startup.diff
+kubuntu_19_install_flash.diff
 debian-T-addition.diff
+kubuntu_18_fix_systemsettings_about_me.diff
+kubuntu_24_folderview_livecd_directory.diff
 enable_debianabimanager.diff
 enable_dlrestrictions.diff
diff -pruN 4:4.6.3-1/kdepasswd/kcm/main.cpp 4:4.6.3-1ubuntu1/kdepasswd/kcm/main.cpp
--- 4:4.6.3-1/kdepasswd/kcm/main.cpp	2011-02-25 21:55:12.000000000 +0000
+++ 4:4.6.3-1ubuntu1/kdepasswd/kcm/main.cpp	2011-05-31 01:41:11.000000000 +0100
@@ -20,8 +20,15 @@
  *
  */
 
+
 #include "main.h"
 
+// for getpwuid(getuid())
+#include <unistd.h>
+#include <sys/types.h>
+#include <pwd.h>
+
+
 #include <QtGui/QLayout>
 #include <QtGui/QLabel>
 #include <QtGui/QLineEdit>
@@ -143,7 +150,14 @@ void KCMUserAccount::load()
 
 	_kes->setProfile(_kes->defaultProfileName());
 
-	_mw->leRealname->setText( _kes->getSetting( KEMailSettings::RealName ));
+	QString realName = _kes->getSetting( KEMailSettings::RealName );
+	 if (realName.isEmpty()) {
+	   QString gecos( getpwuid(getuid())->pw_gecos );
+	   realName = gecos.left(gecos.indexOf(','));
+	   _kes->setSetting( KEMailSettings::RealName, realName );
+	 }
+	_mw->leRealname->setText( realName );
+
 	_mw->leEmail->setText( _kes->getSetting( KEMailSettings::EmailAddress ));
 	_mw->leOrganization->setText( _kes->getSetting( KEMailSettings::Organization ));
 	_mw->leSMTP->setText( _kes->getSetting( KEMailSettings::OutServer ));
diff -pruN 4:4.6.3-1/kdepasswd/kcm/main_widget.ui 4:4.6.3-1ubuntu1/kdepasswd/kcm/main_widget.ui
--- 4:4.6.3-1/kdepasswd/kcm/main_widget.ui	2011-02-25 21:55:12.000000000 +0000
+++ 4:4.6.3-1ubuntu1/kdepasswd/kcm/main_widget.ui	2011-05-31 01:41:11.000000000 +0100
@@ -128,12 +128,15 @@
          <bool>false</bool>
         </property>
         <property name="buddy">
-         <cstring>leRealname</cstring>
+	  <cstring>leRealname</cstring>
         </property>
        </widget>
       </item>
       <item row="0" column="1">
-       <widget class="KLineEdit" name="leRealname">
+	<widget class="KLineEdit" name="leRealname">
+	  <property name="enabled">
+	    <bool>false</bool>
+	  </property>
         <property name="showClearButton" stdset="0">
          <bool>true</bool>
         </property>
diff -pruN 4:4.6.3-1/kfind/kfind.desktop 4:4.6.3-1ubuntu1/kfind/kfind.desktop
--- 4:4.6.3-1/kfind/kfind.desktop	2011-04-28 14:15:36.000000000 +0100
+++ 4:4.6.3-1ubuntu1/kfind/kfind.desktop	2011-05-31 01:41:11.000000000 +0100
@@ -95,3 +95,4 @@ Name[zh_TW]=尋找檔案/資料夾
 X-KDE-StartupNotify=true
 OnlyShowIn=KDE;
 Categories=Qt;KDE;Core;
+NoDisplay=true
diff -pruN 4:4.6.3-1/konqueror/src/konqmain.cpp 4:4.6.3-1ubuntu1/konqueror/src/konqmain.cpp
--- 4:4.6.3-1/konqueror/src/konqmain.cpp	2011-02-25 22:33:12.000000000 +0000
+++ 4:4.6.3-1ubuntu1/konqueror/src/konqmain.cpp	2011-05-31 01:41:11.000000000 +0100
@@ -24,6 +24,7 @@
 #include "konqsessionmanager.h"
 #include "konqview.h"
 #include "konqsettingsxt.h"
+#include "kprocess.h"
 
 #include <ktemporaryfile.h>
 #include <klocale.h>
@@ -216,6 +217,20 @@ extern "C" KDE_EXPORT int kdemain(int ar
     }
     args->clear();
 
+    // Kubuntu FIX: Execute nspluginscan if available, so that users won't have
+    // to run it manually (see LP: #349728)
+    KProcess nspluginscan;
+    nspluginscan.setOutputChannelMode(KProcess::SeparateChannels);
+    QString scanExe = KGlobal::dirs()->findExe("nspluginscan");
+    if (scanExe.isEmpty()) {
+      kDebug() << "can't find nspluginviewer";
+    }
+    // start nspluginscan
+    nspluginscan << scanExe;
+    kDebug() << "Running nspluginscan";
+    nspluginscan.start();
+
+
     app.exec();
 
     // Delete all KonqMainWindows, so that we don't have
diff -pruN 4:4.6.3-1/konqueror/src/konqmainwindow.cpp 4:4.6.3-1ubuntu1/konqueror/src/konqmainwindow.cpp
--- 4:4.6.3-1/konqueror/src/konqmainwindow.cpp	2011-02-25 22:33:12.000000000 +0000
+++ 4:4.6.3-1ubuntu1/konqueror/src/konqmainwindow.cpp	2011-05-31 01:41:11.000000000 +0100
@@ -189,6 +189,17 @@ KonqMainWindow::KonqMainWindow( const KU
     , m_configureDialog(0)
     , m_pURLCompletion(0)
 {
+  //Added by Kubuntu for update-notifier-kde to prompt for restricted codec install
+  QDBusMessage m = QDBusMessage::createMethodCall(QLatin1String("org.kubuntu.restrictedInstall"),
+                                                  QLatin1String("/org/kubuntu/restrictedInstall"),
+             QLatin1String("org.kubuntu.restrictedInstall"),
+             QLatin1String("installRestricted"));
+  QList<QVariant> dbusargs;
+  dbusargs.append(KonqFactory::aboutData()->programName());
+  dbusargs.append(QLatin1String("flashplugin-installer"));
+  m.setArguments(dbusargs);
+  bool queued = QDBusConnection::sessionBus().send(m);
+
   incInstancesCount();
   setPreloadedFlag( false );
 
diff -pruN 4:4.6.3-1/.pc/applied-patches 4:4.6.3-1ubuntu1/.pc/applied-patches
--- 4:4.6.3-1/.pc/applied-patches	2011-05-31 01:45:14.000000000 +0100
+++ 4:4.6.3-1ubuntu1/.pc/applied-patches	2011-05-31 01:41:11.000000000 +0100
@@ -1,3 +1,8 @@
+kubuntu_04_hide_kfind.diff
+kubuntu_10_konq_scans_nsplugins_at_startup.diff
+kubuntu_19_install_flash.diff
 debian-T-addition.diff
+kubuntu_18_fix_systemsettings_about_me.diff
+kubuntu_24_folderview_livecd_directory.diff
 enable_debianabimanager.diff
 enable_dlrestrictions.diff
diff -pruN 4:4.6.3-1/.pc/kubuntu_04_hide_kfind.diff/kfind/kfind.desktop 4:4.6.3-1ubuntu1/.pc/kubuntu_04_hide_kfind.diff/kfind/kfind.desktop
--- 4:4.6.3-1/.pc/kubuntu_04_hide_kfind.diff/kfind/kfind.desktop	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/.pc/kubuntu_04_hide_kfind.diff/kfind/kfind.desktop	2011-04-28 14:15:36.000000000 +0100
@@ -0,0 +1,97 @@
+[Desktop Entry]
+Exec=kfind %u
+Icon=kfind
+X-DocPath=kfind/index.html
+Type=Application
+Terminal=false
+Name=Find Files/Folders
+Name[af]=Soek Lêers/Gidse
+Name[ar]=إبحث عن ملفات/مجلّدات
+Name[as]=নথিপত্ৰ/পঞ্জিকা বিচাৰক
+Name[ast]=Guetar ficheros/carpetes
+Name[be]=Пошук файлаў і тэчак
+Name[be@latin]=Pošuk fajłaŭ i katalohaŭ
+Name[bg]=Търсене на файлове
+Name[bn]=ফাইল/ফোল্ডার অনুসন্ধান
+Name[bn_IN]=ফাইল/ফোল্ডার অনুসন্ধান
+Name[br]=Klask restroù/renkelloù
+Name[ca]=Cerca fitxers i carpetes
+Name[ca@valencia]=Cerca fitxers i carpetes
+Name[cs]=Najít soubory/složky
+Name[csb]=Szëkba lopków/katalogów
+Name[da]=Find filer/mapper
+Name[de]=Dateien/Ordner suchen
+Name[el]=Αναζήτηση αρχείων/φακέλων
+Name[en_GB]=Find Files/Folders
+Name[eo]=Trovi dosierojn/dosierujojn
+Name[es]=Buscar archivos/carpetas
+Name[et]=Failide/kataloogide otsimine
+Name[eu]=Bilatu fitxategiak/karpetak
+Name[fa]=یافتن پرونده‌ها/پوشه‌ها
+Name[fi]=Etsi tiedostoja ja kansioita
+Name[fr]=Recherche de fichiers / dossiers
+Name[fy]=Triemmen/mappen sykje
+Name[ga]=Aimsigh Comhaid/Comhadlanna
+Name[gl]=Procurar ficheiros/cartafoles
+Name[gu]=ફાઇલો/ફોલ્ડરો શોધો
+Name[he]=חיפוש קבצים ותיקיות
+Name[hi]=फ़ाइलें/फोल्डर ढूंढें
+Name[hne]=फाइल मन ल/फोल्डर मन ल खोजव
+Name[hr]=Traži datoteke/mape
+Name[hsb]=Dataje/zapiski namakać
+Name[hu]=Fájlkereső
+Name[ia]=Trova files/dossieres
+Name[id]=Cari Berkas/Folder
+Name[is]=Finna skrár/möppur
+Name[it]=Trova file e cartelle
+Name[ja]=ファイル/フォルダを検索
+Name[ka]=ფაილთა და საქაღალდეთა ძიება
+Name[kk]=Файлды не қапшықты табу
+Name[km]=រក​ឯកសារ/ថត
+Name[kn]=ಕಡತಗಳನ್ನು/ಕಡತಕೋಶಗಳನ್ನು ಹುಡುಕು
+Name[ko]=파일/폴더 찾기
+Name[ku]=Pelan/peldankan Bibîne
+Name[lt]=Rasti failus/aplankus
+Name[lv]=Meklēt failus/mapes
+Name[mai]=फाइलसभ/फोल्डरसभ ढूँढू
+Name[mk]=Пронајди датотеки/папки
+Name[ml]=രേഖകളും കൂടകളും തിരയുക
+Name[mr]=फाइल/फोल्डर पहा
+Name[ms]=Cari Fail/Folder
+Name[nb]=Finn filer/mapper
+Name[nds]=Dateien un Ornern söken
+Name[ne]=फाइल/फोल्डर फेला पार्नुहोस्
+Name[nl]=Bestanden/mappen zoeken
+Name[nn]=Finn filer/mapper
+Name[or]=ଫାଇଲ/ଫୋଲଡର ଖୋଜନ୍ତୁ
+Name[pa]=ਫਾਇਲ/ਫੋਲਡਰ ਖੋਜ
+Name[pl]=Wyszukiwanie plików/katalogów
+Name[pt]=Procurar Ficheiros/Pastas
+Name[pt_BR]=Procurar arquivos/pastas
+Name[ro]=Caută fișiere/dosare
+Name[ru]=Поиск файлов и папок
+Name[se]=Oza fiillaid dahje máhpaid
+Name[si]=ගොනු/බහලුම් සොයන්න
+Name[sk]=Nájsť súbory/priečinky
+Name[sl]=Najdi datoteke in mape
+Name[sr]=Тражење фајлова и фасцикли
+Name[sr@ijekavian]=Тражење фајлова и фасцикли
+Name[sr@ijekavianlatin]=Traženje fajlova i fascikli
+Name[sr@latin]=Traženje fajlova i fascikli
+Name[sv]=Hitta filer eller kataloger
+Name[ta]=கோப்புகள்/அடைவுகளைக் கண்டுபிடி
+Name[te]=దస్త్రాలు/ఫొల్డర్లను వెతుకు
+Name[tg]=Ҷустуҷӯи файлҳо/феҳристҳо
+Name[th]=ค้นหาแฟ้ม/โฟลเดอร์
+Name[tr]=Dosya/Klasör Bul
+Name[uk]=Пошук файлів та тек
+Name[uz]=Fayl/jildlarni qidirish
+Name[uz@cyrillic]=Файл/жилдларни қидириш
+Name[vi]=Tìm Tập tin/Thư mục
+Name[wa]=Trover des fitchîs/ridants
+Name[x-test]=xxFind Files/Foldersxx
+Name[zh_CN]=查找文件/文件夹
+Name[zh_TW]=尋找檔案/資料夾
+X-KDE-StartupNotify=true
+OnlyShowIn=KDE;
+Categories=Qt;KDE;Core;
diff -pruN 4:4.6.3-1/.pc/kubuntu_10_konq_scans_nsplugins_at_startup.diff/konqueror/src/konqmain.cpp 4:4.6.3-1ubuntu1/.pc/kubuntu_10_konq_scans_nsplugins_at_startup.diff/konqueror/src/konqmain.cpp
--- 4:4.6.3-1/.pc/kubuntu_10_konq_scans_nsplugins_at_startup.diff/konqueror/src/konqmain.cpp	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/.pc/kubuntu_10_konq_scans_nsplugins_at_startup.diff/konqueror/src/konqmain.cpp	2011-02-25 22:33:12.000000000 +0000
@@ -0,0 +1,235 @@
+/* This file is part of the KDE project
+   Copyright (C) 1998, 1999 Simon Hausmann <hausmann@kde.org>
+
+   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 2 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; see the file COPYING.  If not, write to
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.
+*/
+
+#include "konqapplication.h"
+#include "konqmisc.h"
+#include "konqfactory.h"
+#include "konqmainwindow.h"
+#include "konqsessionmanager.h"
+#include "konqview.h"
+#include "konqsettingsxt.h"
+
+#include <ktemporaryfile.h>
+#include <klocale.h>
+#include <kstandarddirs.h>
+#include <kdebug.h>
+#include <kcmdlineargs.h>
+#include <QtCore/QFile>
+#include <QtGui/QApplication>
+#include <QtGui/QWidget>
+
+#ifdef Q_WS_X11
+#include <QX11Info>
+#endif
+
+#include <QtDBus/QtDBus>
+#include <QDir>
+
+static void listProfiles()
+{
+    QStringList profiles = KGlobal::dirs()->findAllResources("data", "konqueror/profiles/*", KStandardDirs::NoDuplicates);
+    profiles.sort();
+    Q_FOREACH(const QString& _file, profiles)
+    {
+        const QString file = _file.mid(_file.lastIndexOf('/')+1);
+        printf("%s\n", QFile::encodeName(file).constData());
+    }
+}
+
+static void listSessions()
+{
+    const QString dir = KStandardDirs::locateLocal("appdata", "sessions/");
+    QDirIterator it(dir, QDir::Readable|QDir::NoDotAndDotDot|QDir::Dirs);
+    while (it.hasNext())
+    {
+        QFileInfo fileInfo(it.next());
+        printf("%s\n", QFile::encodeName(fileInfo.baseName()).constData());
+    }
+}
+
+static bool tryPreload()
+{
+#ifdef Q_WS_X11
+    if(KonqSettings::maxPreloadCount() > 0) {
+        QDBusInterface ref("org.kde.kded", "/modules/konqy_preloader", "org.kde.konqueror.Preloader", QDBusConnection::sessionBus());
+        QX11Info info;
+        QDBusReply<bool> retVal = ref.call(QDBus::Block, "registerPreloadedKonqy", QDBusConnection::sessionBus().baseService(), info.screen());
+        if(!retVal)
+            return false; // too many preloaded or failed
+        KonqMainWindow* win = new KonqMainWindow; // prepare an empty window too
+        // KonqMainWindow ctor sets always the preloaded flag to false, so create the window before this
+        KonqMainWindow::setPreloadedFlag(true);
+        KonqMainWindow::setPreloadedWindow(win);
+        kDebug() << "Konqy preloaded :" << QDBusConnection::sessionBus().baseService();
+        return true;
+    } else {
+        return false; // no preloading
+    }
+#else
+    return false; // no preloading
+#endif
+}
+
+extern "C" KDE_EXPORT int kdemain(int argc, char **argv)
+{
+    KCmdLineArgs::init(argc, argv, KonqFactory::aboutData());
+
+
+    KCmdLineOptions options;
+
+    options.add("silent", ki18n("Start without a default window, when called without URLs"));
+
+    options.add("preload", ki18n("Preload for later use. This mode does not support URLs on the command line"));
+
+    options.add("profile <profile>", ki18n("Profile to open"));
+
+    options.add("profiles", ki18n("List available profiles"));
+
+    options.add("sessions", ki18n("List available sessions"));
+
+    options.add("open-session <session>", ki18n("Session to open"));
+
+    options.add("mimetype <mimetype>", ki18n("Mimetype to use for this URL (e.g. text/html or inode/directory)"));
+
+    options.add("select", ki18n("For URLs that point to files, opens the directory and selects the file, instead of opening the actual file"));
+
+    options.add("+[URL]", ki18n("Location to open"));
+
+    KCmdLineArgs::addCmdLineOptions(options); // Add our own options.
+    KCmdLineArgs::addTempFileOption();
+
+    KonquerorApplication app;
+    app.setQuitOnLastWindowClosed(false);
+
+    KGlobal::locale()->insertCatalog("libkonq"); // needed for apps using libkonq
+
+    KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+
+    if (app.isSessionRestored()) {
+        KonqSessionManager::self()->askUserToRestoreAutosavedAbandonedSessions();
+
+        int n = 1;
+        while (KonqMainWindow::canBeRestored(n))
+        {
+            const QString className = KXmlGuiWindow::classNameOfToplevel(n);
+            if (className == QLatin1String("KonqMainWindow"))
+                (new KonqMainWindow())->restore(n);
+            else
+                kWarning() << "Unknown class" << className << "in session saved data!" ;
+            ++n;
+        }
+    } else {
+        // First the invocations that do not take urls.
+        if (args->isSet("preload")) {
+            if (!tryPreload())
+                return 0; // no preloading
+        } else if (args->isSet("profiles")) {
+            listProfiles();
+            return 0;
+        } else if (args->isSet("sessions")) {
+            listSessions();
+            return 0;
+        } else if (args->isSet("open-session")) {
+            const QString session = args->getOption("open-session");
+            QString sessionPath = session;
+            if (!session.startsWith('/')) {
+                sessionPath = KStandardDirs::locateLocal("appdata", "sessions/" + session);
+            }
+
+            QDirIterator it(sessionPath, QDir::Readable|QDir::Files);
+            if (!it.hasNext()) {
+                kError() << "session" << session << "not found or empty";
+                return -1;
+            }
+
+            KonqSessionManager::self()->restoreSessions(sessionPath);
+        } else if (args->count() == 0) {
+            // No args. If --silent, do nothing, otherwise create a default window.
+            if (!args->isSet("silent")) {
+                const QString profile = args->getOption("profile");
+                KonqMisc::createBrowserWindowFromProfile(QString(), profile);
+            }
+        } else {
+            // Now is a good time to parse each argument as a URL.
+            KUrl::List urlList;
+            for (int i = 0; i < args->count(); i++) {
+                // KonqMisc::konqFilteredURL doesn't cope with local files... A bit of hackery below
+                const KUrl url = args->url(i);
+                if (url.isLocalFile() && QFile::exists(url.toLocalFile())) // "konqueror index.html"
+                    urlList += url;
+                else
+                    urlList += KUrl(KonqMisc::konqFilteredURL(0L, args->arg(i))); // "konqueror slashdot.org"
+            }
+
+            QStringList filesToSelect;
+
+            if (args->isSet("select")) {
+                // Get all distinct directories from 'files' and open a tab
+                // for each directory.
+                QList<KUrl> dirs;
+                Q_FOREACH(const KUrl& url, urlList) {
+                    const KUrl dir(url.directory());
+                    if (!dirs.contains(dir)) {
+                        dirs.append(dir);
+                    }
+                }
+                filesToSelect = urlList.toStringList();
+                urlList = dirs;
+            }
+
+            KUrl firstUrl = urlList.takeFirst();
+
+            KParts::OpenUrlArguments urlargs;
+            if (args->isSet("mimetype"))
+                urlargs.setMimeType(args->getOption("mimetype"));
+
+            KonqMainWindow * mainwin = 0;
+            if (args->isSet("profile")) {
+                const QString profile = args->getOption("profile");
+                //kDebug() << "main() -> createBrowserWindowFromProfile mimeType=" << urlargs.mimeType();
+                mainwin = KonqMisc::createBrowserWindowFromProfile(QString(), profile, firstUrl, urlargs, KParts::BrowserArguments(), false /*forbidUseHTML*/, filesToSelect);
+            } else {
+                const bool tempFile = KCmdLineArgs::isTempFileSet();
+                mainwin = KonqMisc::createNewWindow(firstUrl, urlargs, KParts::BrowserArguments(), false, filesToSelect, tempFile);
+            }
+            if (!urlList.isEmpty()) {
+                // Open the other urls as tabs in that window
+                mainwin->openMultiURL(urlList);
+            }
+        }
+    }
+    args->clear();
+
+    app.exec();
+
+    // Delete all KonqMainWindows, so that we don't have
+    // any parts loaded when KLibLoader::cleanUp is called.
+    // Their deletion was postponed in their event()
+    // (and Qt doesn't delete WDestructiveClose widgets on exit anyway :()
+    while(KonqMainWindow::mainWindowList() != NULL)
+    { // the list will be deleted by last KonqMainWindow
+        delete KonqMainWindow::mainWindowList()->first();
+    }
+
+    // Notify the session manager that the instance was closed without errors, and normally.
+    KonqSessionManager::self()->disableAutosave();
+    KonqSessionManager::self()->deleteOwnedSessions();
+
+    return 0;
+}
diff -pruN 4:4.6.3-1/.pc/kubuntu_18_fix_systemsettings_about_me.diff/kdepasswd/kcm/main.cpp 4:4.6.3-1ubuntu1/.pc/kubuntu_18_fix_systemsettings_about_me.diff/kdepasswd/kcm/main.cpp
--- 4:4.6.3-1/.pc/kubuntu_18_fix_systemsettings_about_me.diff/kdepasswd/kcm/main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/.pc/kubuntu_18_fix_systemsettings_about_me.diff/kdepasswd/kcm/main.cpp	2011-02-25 21:55:12.000000000 +0000
@@ -0,0 +1,365 @@
+
+/**
+ *  Copyright (C) 2004 Frans Englich <frans.englich@telia.com>
+ *
+ *  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 2 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
+ *
+ *
+ *  Please see the README
+ *
+ */
+
+#include "main.h"
+
+#include <QtGui/QLayout>
+#include <QtGui/QLabel>
+#include <QtGui/QLineEdit>
+#include <QtCore/QEvent>
+#include <QtGui/QPixmap>
+#include <QtCore/QStringList>
+#include <QtGui/QDragEnterEvent>
+
+#include <kpushbutton.h>
+#include <kguiitem.h>
+#include <kpassworddialog.h>
+#include <kuser.h>
+#include <kdialog.h>
+#include <kimageio.h>
+#include <kmimetype.h>
+#include <kstandarddirs.h>
+#include <kaboutdata.h>
+#include <kmessagebox.h>
+#include <QProcess>
+#include <kio/netaccess.h>
+#include <kurl.h>
+
+#include "settings.h"
+#include "pass.h"
+#include "chfnprocess.h"
+#include <KPluginFactory>
+#include <KPluginLoader>
+
+K_PLUGIN_FACTORY(Factory,
+        registerPlugin<KCMUserAccount>();
+        )
+K_EXPORT_PLUGIN(Factory("useraccount"))
+
+KCMUserAccount::KCMUserAccount( QWidget *parent, const QVariantList &)
+	: KCModule( Factory::componentData(), parent)
+{
+	QVBoxLayout *topLayout = new QVBoxLayout(this);
+        topLayout->setSpacing(KDialog::spacingHint());
+        topLayout->setMargin(0);
+
+	_mw = new MainWidget(this);
+	topLayout->addWidget( _mw );
+
+	connect( _mw->btnChangeFace, SIGNAL(clicked()), SLOT(slotFaceButtonClicked()));
+	connect( _mw->btnChangePassword, SIGNAL(clicked()), SLOT(slotChangePassword()));
+	_mw->btnChangePassword->setGuiItem( KGuiItem( i18n("Change &Password..."), "preferences-desktop-user-password" ));
+
+	connect( _mw->leRealname, SIGNAL(textChanged(const QString&)), SLOT(changed()));
+	connect( _mw->leOrganization, SIGNAL(textChanged(const QString&)), SLOT(changed()));
+	connect( _mw->leEmail, SIGNAL(textChanged(const QString&)), SLOT(changed()));
+	connect( _mw->leSMTP, SIGNAL(textChanged(const QString&)), SLOT(changed()));
+
+	_ku = new KUser();
+	_kes = new KEMailSettings();
+
+	_mw->lblUsername->setText( _ku->loginName() );
+	QFont font( _mw->lblUsername->font() );
+	font.setPointSizeF( font.pointSizeF()  * 1.41 );
+	font.setBold( true );
+	_mw->lblUsername->setFont( font );
+	_mw->lblUID->setText( QString().number(_ku->uid()) );
+
+	KAboutData *about = new KAboutData("kcm_useraccount", 0,
+		ki18n("Password & User Information"), 0, KLocalizedString(),
+		KAboutData::License_GPL,
+		ki18n("(C) 2002, Braden MacDonald, "
+			"(C) 2004 Ravikiran Rajagopal"));
+
+	about->addAuthor(ki18n("Frans Englich"), ki18n("Maintainer"), "frans.englich@telia.com");
+	about->addAuthor(ki18n("Ravikiran Rajagopal"), KLocalizedString(), "ravi@kde.org");
+	about->addAuthor(ki18n("Michael H\303\244ckel"), KLocalizedString(), "haeckel@kde.org" );
+
+	about->addAuthor(ki18n("Braden MacDonald"), ki18n("Face editor"), "bradenm_k@shaw.ca");
+	about->addAuthor(ki18n("Geert Jansen"), ki18n("Password changer"), "jansen@kde.org",
+			"http://www.stack.nl/~geertj/");
+	about->addAuthor(ki18n("Daniel Molkentin"));
+	about->addAuthor(ki18n("Alex Zepeda"));
+	about->addAuthor(ki18n("Hans Karlsson"), ki18n("Icons"), "karlsson.h@home.se");
+	about->addAuthor(ki18n("Hermann Thomas"), ki18n("Icons"), "h.thomas@gmx.de");
+	setAboutData(about);
+
+	setQuickHelp( i18n("<qt>Here you can change your personal information, which "
+			"will be used, for instance, in mail programs and word processors. You can "
+			"change your login password by clicking <em>Change Password...</em>.</qt>") );
+
+	addConfig( KCFGPassword::self(), this );
+	load();
+}
+
+void KCMUserAccount::slotChangePassword()
+{
+	QString bin = KGlobal::dirs()->findExe("kdepasswd");
+	if ( bin.isEmpty() )
+	{
+		kDebug() << "kcm_useraccount: kdepasswd was not found.";
+		KMessageBox::sorry ( this, i18n( "A program error occurred: the internal "
+			"program 'kdepasswd' could not be found. You will "
+			"not be able to change your password."));
+
+		_mw->btnChangePassword->setEnabled(false);
+		return;
+	}
+	QStringList lst;
+	lst << _ku->loginName();
+	QProcess::startDetached(bin,lst);
+
+}
+
+
+KCMUserAccount::~KCMUserAccount()
+{
+	delete _ku;
+	delete _kes;
+}
+
+void KCMUserAccount::load()
+{
+	_mw->lblUsername->setText(_ku->loginName());
+
+	_kes->setProfile(_kes->defaultProfileName());
+
+	_mw->leRealname->setText( _kes->getSetting( KEMailSettings::RealName ));
+	_mw->leEmail->setText( _kes->getSetting( KEMailSettings::EmailAddress ));
+	_mw->leOrganization->setText( _kes->getSetting( KEMailSettings::Organization ));
+	_mw->leSMTP->setText( _kes->getSetting( KEMailSettings::OutServer ));
+
+	QString _userPicsDir = KCFGUserAccount::faceDir() +
+		KGlobal::dirs()->resourceDirs("data").last() + "kdm/faces/";
+
+	QString fs = KCFGUserAccount::faceSource();
+	if (fs == QLatin1String("UserOnly"))
+		_facePerm = userOnly;
+	else if (fs == QLatin1String("PreferUser"))
+		_facePerm = userFirst;
+	else if (fs == QLatin1String("PreferAdmin"))
+		_facePerm = adminFirst;
+	else
+		_facePerm = adminOnly; // Admin Only
+
+	if ( _facePerm == adminFirst )
+	{ 	// If the administrator's choice takes preference
+		_facePixmap = QPixmap( _userPicsDir + _ku->loginName() + ".face.icon" );
+
+		if ( _facePixmap.isNull() )
+			_facePerm = userFirst;
+		else
+			_mw->btnChangeFace->setIcon( KIcon(_facePixmap) );
+	}
+
+	if ( _facePerm >= userFirst )
+	{
+		// If the user's choice takes preference
+		_facePixmap = QPixmap( KCFGUserAccount::faceFile() );
+
+		// The user has no face, should we check for the admin's setting?
+		if ( _facePixmap.isNull() && _facePerm == userFirst )
+			_facePixmap = QPixmap( _userPicsDir + _ku->loginName() + ".face.icon" );
+
+		if ( _facePixmap.isNull() )
+			_facePixmap = QPixmap( _userPicsDir + KCFGUserAccount::defaultFile() );
+
+		_mw->btnChangeFace->setIcon( KIcon(_facePixmap) );
+	}
+	else if ( _facePerm <= adminOnly )
+	{
+		// Admin only
+		_facePixmap = QPixmap( _userPicsDir + _ku->loginName() + ".face.icon" );
+		if ( _facePixmap.isNull() )
+			_facePixmap = QPixmap( _userPicsDir + KCFGUserAccount::defaultFile() );
+		_mw->btnChangeFace->setIcon( KIcon(_facePixmap) );
+	}
+
+        if (!_facePixmap.isNull()) {
+            _mw->btnChangeFace->setIconSize(_facePixmap.size());
+        }
+
+	KCModule::load(); /* KConfigXT */
+
+}
+
+void KCMUserAccount::save()
+{
+	KCModule::save(); /* KConfigXT */
+
+/*
+ * FIXME: there is apparently no way to set full name
+ * non-interactively as a normal user on FreeBSD.
+ */
+#ifndef Q_OS_FREEBSD
+	/* Save realname to /etc/passwd */
+	if ( _mw->leRealname->isModified() )
+	{
+		KPasswordDialog dlg( _mw );
+		dlg.setPrompt(i18n("Please enter your password in order to save your settings:"));
+		if ( !dlg.exec() )
+		{
+			KMessageBox::sorry( this, i18n("You must enter "
+				"your password in order to change your information."));
+			return;
+		}
+
+		ChfnProcess *proc = new ChfnProcess();
+		int ret = proc->exec(dlg.password().toLocal8Bit() , _mw->leRealname->text().toLocal8Bit() );
+		if ( ret )
+		{
+			if ( ret == ChfnProcess::PasswordError )
+				KMessageBox::sorry( this, i18n("You must enter a correct password."));
+
+			else
+			{
+				KMessageBox::sorry( this, i18n("An error occurred and your name has "
+							"probably not been changed. The error "
+							"message was:\n%1", QString::fromLocal8Bit(proc->error())));
+				kDebug() << "ChfnProcess->exec() failed. Error code: " << ret
+					<< "\nOutput:" << proc->error() << endl;
+			}
+
+			delete proc;
+			return;
+		}
+
+		delete proc;
+	}
+#endif
+
+	/* Save the image */
+	if( !_facePixmap.isNull() )
+	{
+		if( !_facePixmap.save( KCFGUserAccount::faceFile(), "PNG" ))
+		{
+			KMessageBox::error( this, i18n("There was an error saving the image: %1" ,
+				KCFGUserAccount::faceFile()) );
+			return;
+		}
+	}
+
+	/* Save KDE's homebrewn settings */
+	_kes->setSetting( KEMailSettings::RealName, _mw->leRealname->text() );
+	_kes->setSetting( KEMailSettings::EmailAddress, _mw->leEmail->text() );
+	_kes->setSetting( KEMailSettings::Organization, _mw->leOrganization->text() );
+	_kes->setSetting( KEMailSettings::OutServer, _mw->leSMTP->text() );
+}
+
+void KCMUserAccount::changeFace(const QPixmap &pix)
+{
+  if ( _facePerm < userFirst )
+    return; // If the user isn't allowed to change their face, don't!
+
+  if ( pix.isNull() ) {
+    KMessageBox::sorry( this, i18n("There was an error loading the image.") );
+    return;
+  }
+
+  _facePixmap = pix;
+  _mw->btnChangeFace->setIcon( KIcon(_facePixmap) );
+  _mw->btnChangeFace->setIconSize(_facePixmap.size());
+  emit changed( true );
+}
+
+void KCMUserAccount::slotFaceButtonClicked()
+{
+  if ( _facePerm < userFirst )
+  {
+    KMessageBox::sorry( this, i18n("Your administrator has disallowed changing your image.") );
+    return;
+  }
+
+  ChFaceDlg* pDlg = new ChFaceDlg( KGlobal::dirs()->resourceDirs("data").last() +
+	"/kdm/pics/users/", this );
+
+  if ( pDlg->exec() == QDialog::Accepted && !pDlg->getFaceImage().isNull() )
+      changeFace( pDlg->getFaceImage() );
+
+  delete pDlg;
+}
+
+/**
+ * I merged faceButtonDropEvent into this /Frans
+ * The function was called after checking event type and
+ * the code is now below that if statement
+ */
+bool KCMUserAccount::eventFilter(QObject *, QEvent *e)
+{
+	if (e->type() == QEvent::DragEnter)
+		{
+		QDragEnterEvent *ee = (QDragEnterEvent *) e;
+    if (!KUrl::List::fromMimeData( ee->mimeData() ).isEmpty())
+      ee->accept();
+    else
+      ee->ignore();
+		return true;
+	}
+
+	if (e->type() == QEvent::Drop)
+	{
+		if ( _facePerm < userFirst )
+		{
+			KMessageBox::sorry( this, i18n("Your administrator "
+				"has disallowed changing your image.") );
+			return true;
+		}
+
+		KUrl *url = decodeImgDrop( (QDropEvent *) e, this);
+		if (url)
+		{
+			QString pixPath;
+			KIO::NetAccess::download(*url, pixPath, this);
+			changeFace( QPixmap( pixPath ) );
+			KIO::NetAccess::removeTempFile(pixPath);
+			delete url;
+		}
+		return true;
+	}
+	return false;
+}
+
+inline KUrl *KCMUserAccount::decodeImgDrop(QDropEvent *e, QWidget *wdg)
+{
+  KUrl::List uris = KUrl::List::fromMimeData(e->mimeData());
+  if (!uris.isEmpty())
+  {
+    KUrl *url = new KUrl(uris.first());
+
+    KMimeType::Ptr mime = KMimeType::findByUrl( *url );
+    if ( mime && KImageIO::isSupported( mime->name(), KImageIO::Reading ) )
+      return url;
+
+    QStringList qs = KImageIO::pattern().split( '\n');
+    qs.erase(qs.begin());
+
+    QString msg = i18n( "%1 does not appear to be an image file.\n"
+			  "Please use files with these extensions:\n"
+			  "%2", url->fileName(), qs.join("\n"));
+    KMessageBox::sorry( wdg, msg);
+    delete url;
+  }
+  return 0;
+}
+
+#include "main.moc"
+
diff -pruN 4:4.6.3-1/.pc/kubuntu_18_fix_systemsettings_about_me.diff/kdepasswd/kcm/main_widget.ui 4:4.6.3-1ubuntu1/.pc/kubuntu_18_fix_systemsettings_about_me.diff/kdepasswd/kcm/main_widget.ui
--- 4:4.6.3-1/.pc/kubuntu_18_fix_systemsettings_about_me.diff/kdepasswd/kcm/main_widget.ui	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/.pc/kubuntu_18_fix_systemsettings_about_me.diff/kdepasswd/kcm/main_widget.ui	2011-02-25 21:55:12.000000000 +0000
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <author>Frans Englich &lt;frans.englich@telia.com&gt;</author>
+ <class>MainWidget</class>
+ <widget class="QWidget" name="MainWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>399</width>
+    <height>557</height>
+   </rect>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="margin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout">
+     <item>
+      <widget class="KPushButton" name="btnChangeFace">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>74</width>
+         <height>74</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>74</width>
+         <height>74</height>
+        </size>
+       </property>
+       <property name="acceptDrops">
+        <bool>true</bool>
+       </property>
+       <property name="toolTip">
+        <string>Change your image</string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <layout class="QVBoxLayout">
+       <property name="margin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="QLabel" name="lblUsername">
+         <property name="text">
+          <string/>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignVCenter</set>
+         </property>
+         <property name="wordWrap">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="lblClickButtonInfo">
+         <property name="text">
+          <string>&lt;i&gt;Click to change your image&lt;/i&gt;</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignVCenter</set>
+         </property>
+         <property name="wordWrap">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout">
+         <item>
+          <widget class="KPushButton" name="btnChangePassword">
+           <property name="text">
+            <string>Change Password...</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer>
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeType">
+            <enum>QSizePolicy::Expanding</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>158</width>
+             <height>18</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="grpUserInformation">
+     <property name="title">
+      <string>User Information</string>
+     </property>
+     <layout class="QGridLayout">
+      <item row="0" column="0">
+       <widget class="QLabel" name="lblRealName">
+        <property name="text">
+         <string>&amp;Name:</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+        <property name="buddy">
+         <cstring>leRealname</cstring>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="KLineEdit" name="leRealname">
+        <property name="showClearButton" stdset="0">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="lblOrganisation">
+        <property name="text">
+         <string>&amp;Organization:</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+        <property name="buddy">
+         <cstring>leOrganization</cstring>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="KLineEdit" name="leOrganization">
+        <property name="showClearButton" stdset="0">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="lblEmail">
+        <property name="text">
+         <string>&amp;Email address:</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+        <property name="buddy">
+         <cstring>leEmail</cstring>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="KLineEdit" name="leEmail">
+        <property name="showClearButton" stdset="0">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0">
+       <widget class="QLabel" name="textLabel3">
+        <property name="text">
+         <string>&amp;SMTP server:</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+        <property name="buddy">
+         <cstring>leSMTP</cstring>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="KLineEdit" name="leSMTP">
+        <property name="showClearButton" stdset="0">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="0">
+       <widget class="QLabel" name="lblUIDTell">
+        <property name="text">
+         <string>User ID:</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="1">
+       <widget class="QLabel" name="lblUID">
+        <property name="text">
+         <string/>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="KButtonGroup" name="kcfg_EchoMode">
+     <property name="title">
+      <string>At Password Prompt</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <item>
+       <widget class="QRadioButton" name="rdbOneStar">
+        <property name="text">
+         <string>Show one bullet for each letter</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="rdbThreeStars">
+        <property name="text">
+         <string>Show three bullets for each letter</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="rdbShowPassword">
+        <property name="text">
+         <string>Show nothing</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <spacer>
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Expanding</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>16</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>KButtonGroup</class>
+   <extends>QGroupBox</extends>
+   <header>kbuttongroup.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>KPushButton</class>
+   <extends>QPushButton</extends>
+   <header>kpushbutton.h</header>
+  </customwidget>
+  <customwidget>
+   <class>KLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>klineedit.h</header>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>btnChangeFace</tabstop>
+  <tabstop>leRealname</tabstop>
+  <tabstop>leOrganization</tabstop>
+  <tabstop>leEmail</tabstop>
+  <tabstop>leSMTP</tabstop>
+  <tabstop>btnChangePassword</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff -pruN 4:4.6.3-1/.pc/kubuntu_19_install_flash.diff/konqueror/src/konqmainwindow.cpp 4:4.6.3-1ubuntu1/.pc/kubuntu_19_install_flash.diff/konqueror/src/konqmainwindow.cpp
--- 4:4.6.3-1/.pc/kubuntu_19_install_flash.diff/konqueror/src/konqmainwindow.cpp	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/.pc/kubuntu_19_install_flash.diff/konqueror/src/konqmainwindow.cpp	2011-02-25 22:33:12.000000000 +0000
@@ -0,0 +1,5673 @@
+/* This file is part of the KDE project
+   Copyright (C) 1998, 1999 Simon Hausmann <hausmann@kde.org>
+   Copyright (C) 2000 Carsten Pfeiffer <pfeiffer@kde.org>
+   Copyright (C) 2000-2005 David Faure <faure@kde.org>
+   Copyright (C) 2007 Eduardo Robles Elvira <edulix@gmail.com>
+   Copyright (C) 2007 Daniel García Moreno <danigm@gmail.com>
+
+   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 2 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; see the file COPYING.  If not, write to
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.
+*/
+
+#include "konqmainwindow.h"
+#include "konqrmbeventfilter.h"
+#include "konqclosedwindowsmanager.h"
+#include "konqsessionmanager.h"
+#include "konqsessiondlg.h"
+#include "konqdraggablelabel.h"
+#include "konqcloseditem.h"
+#include "konqapplication.h"
+#include "konqguiclients.h"
+#include "KonqMainWindowAdaptor.h"
+#include "KonquerorAdaptor.h"
+#include "konqview.h"
+#include "konqrun.h"
+#include "konqmisc.h"
+#include "konqviewmanager.h"
+#include "konqframestatusbar.h"
+#include "konqtabs.h"
+#include "konqactions.h"
+#include "konqsettingsxt.h"
+#include "konqextensionmanager.h"
+#include "konqueror_interface.h"
+#include "delayedinitializer.h"
+#include "konqextendedbookmarkowner.h"
+#include "konqframevisitor.h"
+#include "konqbookmarkbar.h"
+#include "konqundomanager.h"
+#include "konqhistorydialog.h"
+#include <config-konqueror.h>
+#include <kstringhandler.h>
+
+#include <konq_events.h>
+#include <konqpixmapprovider.h>
+#include <konq_operations.h>
+#include <kbookmarkmanager.h>
+#include <kinputdialog.h>
+#include <klineedit.h>
+#include <kzip.h>
+#include <pwd.h>
+// we define STRICT_ANSI to get rid of some warnings in glibc
+#ifndef __STRICT_ANSI__
+#define __STRICT_ANSI__
+#define _WE_DEFINED_IT_
+#endif
+#include <netdb.h>
+#ifdef _WE_DEFINED_IT_
+#undef __STRICT_ANSI__
+#undef _WE_DEFINED_IT_
+#endif
+#include <assert.h>
+#include <stdlib.h>
+#include <time.h>
+#include <kde_file.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <QtCore/QFile>
+#include <QtGui/QClipboard>
+#include <QtCore/QArgument>
+#include <QtGui/QLayout>
+#include <QStackedWidget>
+#include <QtCore/QFileInfo>
+#ifdef Q_WS_X11
+#include <QX11Info>
+#endif
+#include <QtCore/QEvent>
+#include <QtGui/QKeyEvent>
+#include <QtCore/QByteRef>
+#include <QtCore/QList>
+#include <QtGui/QPixmap>
+#include <QtGui/QLineEdit>
+
+#include <kaboutdata.h>
+#include <ktoolbar.h>
+#include <konqbookmarkmenu.h>
+#include <kcmultidialog.h>
+#include <kdebug.h>
+#include <kdesktopfile.h>
+#include <kedittoolbar.h>
+#include <klocalizedstring.h>
+#include <kmenubar.h>
+#include <kmessagebox.h>
+#include <knewmenu.h>
+#include <konq_popupmenu.h>
+#include "konqsettings.h"
+#include "konqanimatedlogo_p.h"
+#include <kprotocolinfo.h>
+#include <kprotocolmanager.h>
+#include <kstandardshortcut.h>
+#include <kstandardaction.h>
+#include <kstandarddirs.h>
+#include <ksycoca.h>
+#include <ktemporaryfile.h>
+#include <ktogglefullscreenaction.h>
+#include <ktoolbarpopupaction.h>
+#include <kurlcompletion.h>
+#include <kurlrequesterdialog.h>
+#include <kurlrequester.h>
+#include <kmimetypetrader.h>
+#include <kwindowsystem.h>
+#include <kfiledialog.h>
+#include <klocale.h>
+#include <kicon.h>
+#include <kiconloader.h>
+#include <kmenu.h>
+#include <kprocess.h>
+#include <kio/scheduler.h>
+#include <kio/netaccess.h>
+#include <kparts/browseropenorsavequestion.h>
+#include <kacceleratormanager.h>
+#include <kuser.h>
+#include <kxmlguifactory.h>
+#include <netwm.h>
+#include <sonnet/configdialog.h>
+#ifdef KDE_MALLINFO_MALLOC
+#include <malloc.h>
+#endif
+
+#include <sys/time.h>
+#ifdef Q_WS_X11
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <fixx11h.h>
+#endif
+#include <kauthorized.h>
+#include <ktoolinvocation.h>
+#include <QtDBus/QtDBus>
+#include <kconfiggroup.h>
+
+template class QList<QPixmap*>;
+template class QList<KToggleAction*>;
+
+KBookmarkManager* s_bookmarkManager = 0;
+QList<KonqMainWindow*> *KonqMainWindow::s_lstViews = 0;
+KConfig * KonqMainWindow::s_comboConfig = 0;
+KCompletion * KonqMainWindow::s_pCompletion = 0;
+
+bool KonqMainWindow::s_preloaded = false;
+KonqMainWindow* KonqMainWindow::s_preloadedWindow = 0;
+static int s_initialMemoryUsage = -1;
+static time_t s_startupTime;
+static int s_preloadUsageCount;
+
+KonqOpenURLRequest KonqOpenURLRequest::null;
+
+static int current_memory_usage( int* limit = NULL );
+
+static unsigned short int s_closedItemsListLength = 10;
+static unsigned long s_konqMainWindowInstancesCount = 0;
+
+KonqExtendedBookmarkOwner::KonqExtendedBookmarkOwner(KonqMainWindow *w)
+{
+   m_pKonqMainWindow = w;
+}
+
+KonqMainWindow::KonqMainWindow( const KUrl &initialURL, const QString& xmluiFile)
+    : KParts::MainWindow()
+    , m_paClosedItems(0)
+    , m_fullyConstructed(false)
+    , m_bLocationBarConnected(false)
+    , m_bURLEnterLock(false)
+    , m_urlCompletionStarted(false)
+    , m_prevMenuBarVisible(true)
+    , m_goBuffer(0)
+    , m_pBookmarkMenu(0)
+    , m_configureDialog(0)
+    , m_pURLCompletion(0)
+{
+  incInstancesCount();
+  setPreloadedFlag( false );
+
+  if ( !s_lstViews )
+    s_lstViews = new QList<KonqMainWindow*>;
+
+  s_lstViews->append( this );
+
+  KonqRmbEventFilter::self(); // create it
+
+  m_pChildFrame = 0;
+  m_pActiveChild = 0;
+  m_workingTab = 0;
+  (void) new KonqMainWindowAdaptor( this );
+  m_paBookmarkBar = 0;
+
+  m_viewModesGroup = new QActionGroup(this);
+  m_viewModesGroup->setExclusive(true);
+  connect(m_viewModesGroup, SIGNAL(triggered(QAction*)),
+          this, SLOT(slotViewModeTriggered(QAction*)),
+          Qt::QueuedConnection); // Queued so that we don't delete the action from the code that triggered it.
+
+    // This has to be called before any action is created for this mainwindow
+    setComponentData(KGlobal::mainComponent(), false /*don't load plugins yet*/);
+
+  m_pViewManager = new KonqViewManager( this );
+
+  m_viewModeMenu = 0;
+  m_openWithMenu = 0;
+  m_paCopyFiles = 0;
+  m_paMoveFiles = 0;
+  m_bookmarkBarInitialized = false;
+
+  m_toggleViewGUIClient = new ToggleViewGUIClient( this );
+
+  m_pBookmarksOwner = new KonqExtendedBookmarkOwner(this);
+
+  // init history-manager, load history, get completion object
+  if ( !s_pCompletion ) {
+      s_bookmarkManager = KBookmarkManager::userBookmarksManager();
+
+      // let the KBookmarkManager know that we are a browser, equals to "keditbookmarks --browser"
+      s_bookmarkManager->setEditorOptions("konqueror", true);
+
+      KonqHistoryManager* mgr = new KonqHistoryManager(s_bookmarkManager);
+      s_pCompletion = mgr->completionObject();
+
+    // setup the completion object before createGUI(), so that the combo
+    // picks up the correct mode from the HistoryManager (in slotComboPlugged)
+    int mode = KonqSettings::settingsCompletionMode();
+    s_pCompletion->setCompletionMode( static_cast<KGlobalSettings::Completion>(mode) );
+  }
+  connect(KParts::HistoryProvider::self(), SIGNAL(cleared()), SLOT(slotClearComboHistory()));
+
+  KonqPixmapProvider *prov = KonqPixmapProvider::self();
+  if ( !s_comboConfig ) {
+      s_comboConfig = new KConfig("konq_history", KConfig::NoGlobals);
+      KonqCombo::setConfig( s_comboConfig );
+      KConfigGroup locationBarGroup( s_comboConfig, "Location Bar" );
+      prov->load( locationBarGroup, "ComboIconCache" );
+  }
+
+  connect( prov, SIGNAL( changed() ), SLOT( slotIconsChanged() ) );
+
+  m_pUndoManager = new KonqUndoManager(this);
+  connect( m_pUndoManager, SIGNAL( undoAvailable( bool ) ),
+           this, SLOT( slotUndoAvailable( bool ) ) );
+
+  initCombo();
+  initActions();
+
+  connect( KGlobalSettings::self(), SIGNAL( kdisplayFontChanged()), SLOT(slotReconfigure()));
+
+  //load the xmlui file specified in the profile or the default konqueror.rc
+  setXMLFile( KonqViewManager::normalizedXMLFileName(xmluiFile) );
+
+  setStandardToolBarMenuEnabled( true );
+
+  createGUI( 0 );
+
+  m_combo->setParent( toolBar("locationToolBar") );
+  m_combo->setFont( KGlobalSettings::generalFont() );
+  m_combo->show();
+
+  checkDisableClearButton();
+
+  connect(toolBarMenuAction(),SIGNAL(triggered()),this,SLOT(slotForceSaveMainWindowSettings()) );
+
+  if ( !m_toggleViewGUIClient->empty() )
+    plugActionList( QLatin1String( "toggleview" ), m_toggleViewGUIClient->actions() );
+  else
+  {
+    delete m_toggleViewGUIClient;
+    m_toggleViewGUIClient = 0;
+  }
+
+  m_bHTMLAllowed = KonqSettings::htmlAllowed();
+
+  m_ptaUseHTML->setChecked( m_bHTMLAllowed );
+
+  m_bNeedApplyKonqMainWindowSettings = true;
+
+  if ( !initialURL.isEmpty() ) {
+      openFilteredUrl( initialURL.url() );
+  } else {
+      // silent
+      m_bNeedApplyKonqMainWindowSettings = false;
+  }
+
+    if ( !initialGeometrySet() )
+        resize( 700, 480 );
+
+    //kDebug() << this << "done";
+
+  if( s_initialMemoryUsage == -1 )
+  {
+      s_initialMemoryUsage = current_memory_usage();
+      s_startupTime = time( NULL );
+      s_preloadUsageCount = 0;
+  }
+  KonqSessionManager::self();
+  m_fullyConstructed = true;
+}
+
+KonqMainWindow::~KonqMainWindow()
+{
+    //kDebug() << this;
+
+    delete m_pViewManager;
+    m_pViewManager = 0;
+
+    if (s_lstViews) {
+        s_lstViews->removeAll(this);
+        if (s_lstViews->isEmpty()) {
+            delete s_lstViews;
+            s_lstViews = 0;
+        }
+    }
+
+    qDeleteAll(m_openWithActions);
+    m_openWithActions.clear();
+
+  delete m_pBookmarkMenu;
+  delete m_paBookmarkBar;
+  delete m_pBookmarksOwner;
+  delete m_pURLCompletion;
+  delete m_paClosedItems;
+
+  if ( s_lstViews == 0 ) {
+      delete s_comboConfig;
+      s_comboConfig = 0;
+  }
+
+  delete m_configureDialog;
+  m_configureDialog = 0;
+  delete m_combo;
+  m_combo = 0;
+  delete m_locationLabel;
+  m_locationLabel = 0;
+  m_pUndoManager->disconnect();
+  delete m_pUndoManager;
+  decInstancesCount();
+
+    //kDebug() << this << "done";
+}
+
+void KonqMainWindow::incInstancesCount()
+{
+    s_konqMainWindowInstancesCount++;
+}
+
+void KonqMainWindow::decInstancesCount()
+{
+    s_konqMainWindowInstancesCount--;
+}
+
+QWidget * KonqMainWindow::createContainer( QWidget *parent, int index, const QDomElement &element, QAction* &containerAction )
+{
+  QWidget *res = KParts::MainWindow::createContainer( parent, index, element, containerAction );
+
+  static QString nameBookmarkBar = QLatin1String( "bookmarkToolBar" );
+  static QString tagToolBar = QLatin1String( "ToolBar" );
+  if ( res && (element.tagName() == tagToolBar) && (element.attribute( "name" ) == nameBookmarkBar) )
+  {
+    assert( ::qobject_cast<KToolBar*>( res ) );
+    if (!KAuthorized::authorizeKAction("bookmarks")) {
+        delete res;
+        return 0;
+    }
+
+    if ( !m_bookmarkBarInitialized ) {
+        // The actual menu needs a different action collection, so that the bookmarks
+        // don't appear in kedittoolbar
+        m_bookmarkBarInitialized = true;
+        DelayedInitializer *initializer = new DelayedInitializer( QEvent::Show, res );
+        connect( initializer, SIGNAL( initialize() ), this, SLOT(initBookmarkBar()) );
+    }
+  }
+
+  if (res && element.tagName() == QLatin1String("Menu")) {
+      const QString& menuName = element.attribute("name");
+      if (menuName == "edit" || menuName == "tools") {
+          Q_ASSERT(qobject_cast<QMenu*>(res));
+          KAcceleratorManager::manage(static_cast<QMenu *>(res));
+      }
+  }
+
+  return res;
+}
+
+void KonqMainWindow::initBookmarkBar()
+{
+  KToolBar * bar = qFindChild<KToolBar *>( this, "bookmarkToolBar" );
+
+  if (!bar) return;
+
+  delete m_paBookmarkBar;
+  m_paBookmarkBar = new KBookmarkBar( s_bookmarkManager, m_pBookmarksOwner, bar, this );
+
+  // hide if empty
+  if (bar->actions().count() == 0 )
+     bar->hide();
+}
+
+void KonqMainWindow::removeContainer( QWidget *container, QWidget *parent, QDomElement &element, QAction* containerAction )
+{
+  static QString nameBookmarkBar = QLatin1String( "bookmarkToolBar" );
+  static QString tagToolBar = QLatin1String( "ToolBar" );
+
+  if ( element.tagName() == tagToolBar && element.attribute( "name" ) == nameBookmarkBar )
+  {
+    assert( ::qobject_cast<KToolBar*>( container ) );
+    if (m_paBookmarkBar)
+      m_paBookmarkBar->clear();
+  }
+
+  KParts::MainWindow::removeContainer( container, parent, element, containerAction );
+}
+
+// Detect a name filter (e.g. *.txt) in the url.
+// Note that KShortURIFilter does the same, but we have no way of getting it from there
+//
+// Note: this removes the filter from the URL.
+QString KonqMainWindow::detectNameFilter( KUrl & url )
+{
+    if ( !KProtocolManager::supportsListing(url) )
+        return QString();
+
+    // Look for wildcard selection
+    QString nameFilter;
+    QString path = url.path();
+    int lastSlash = path.lastIndexOf( '/' );
+    if ( lastSlash > -1 )
+    {
+        if ( !url.query().isEmpty() && lastSlash == path.length()-1 ) {  //  In /tmp/?foo, foo isn't a query
+            path += url.query(); // includes the '?'
+            url.setQuery( QString() );
+        }
+        QString fileName = path.mid( lastSlash + 1 );
+        QString testPath = path.left( lastSlash + 1 );
+        if ( fileName.indexOf( '*' ) != -1 || fileName.indexOf( '[' ) != -1 || fileName.indexOf( '?' ) != -1 )
+        {
+            // Check that a file or dir with all the special chars in the filename doesn't exist
+            if ( url.isLocalFile() ? !QFile::exists( url.toLocalFile() ) : !KIO::NetAccess::exists( url, KIO::NetAccess::DestinationSide, this ) )
+            {
+                nameFilter = fileName;
+                url.setFileName( QString() );
+                kDebug() << "Found wildcard. nameFilter=" << nameFilter << "  New url=" << url;
+            }
+        }
+    }
+
+    return nameFilter;
+}
+
+void KonqMainWindow::openFilteredUrl(const QString & url, const KonqOpenURLRequest & req)
+{
+    // Filter URL to build a correct one
+    if (m_currentDir.isEmpty() && m_currentView)
+       m_currentDir = m_currentView->url().path( KUrl::AddTrailingSlash );
+
+    KUrl filteredURL ( KonqMisc::konqFilteredURL( this, url, m_currentDir ) );
+    kDebug() << "url" << url << "filtered into" << filteredURL;
+
+    if ( filteredURL.isEmpty() ) // initially empty, or error (e.g. ~unknown_user)
+        return;
+
+    m_currentDir.clear();
+
+    openUrl(0, filteredURL, QString(), req);
+
+    // #4070: Give focus to view after URL was entered manually
+    // Note: we do it here if the view mode (i.e. part) wasn't changed
+    // If it is changed, then it's done in KonqViewManager::doSetActivePart
+    if (m_currentView)
+        m_currentView->setFocus();
+}
+
+void KonqMainWindow::openFilteredUrl(const QString & _url, bool inNewTab, bool tempFile)
+{
+    KonqOpenURLRequest req( _url );
+    req.browserArgs.setNewTab(inNewTab);
+    req.newTabInFront = true;
+    req.tempFile = tempFile;
+
+    openFilteredUrl( _url, req );
+}
+
+void KonqMainWindow::openUrl(KonqView *_view, const KUrl &_url,
+                             const QString &_mimeType, const KonqOpenURLRequest& _req,
+                             bool trustedSource)
+{
+#ifndef NDEBUG // needed for req.debug()
+    kDebug() << "url=" << _url << "mimeType=" << _mimeType
+                 << "_req=" << _req.debug() << "view=" << _view;
+#endif
+
+    // We like modifying args in this method :)
+    KUrl url(_url);
+    QString mimeType(_mimeType);
+    KonqOpenURLRequest req(_req);
+
+    if (!url.isValid()) {
+        // I think we can't really get here anymore; I tried and didn't succeed.
+        // URL filtering catches this case before hand, and in cases without filtering
+        // (e.g. HTML link), the url is empty here, not invalid.
+        // But just to be safe, let's keep this code path, even if it can't show the typed string.
+        url = KParts::BrowserRun::makeErrorUrl(KIO::ERR_MALFORMED_URL, url.url() /*empty*/, url.url() /*empty*/);
+    } else if (!KProtocolInfo::isKnownProtocol(url)) {
+        url = KParts::BrowserRun::makeErrorUrl(KIO::ERR_UNSUPPORTED_PROTOCOL, url.protocol(), url.url());
+    }
+    if (url.url() == "about:blank" || url.protocol() == "error") {
+        mimeType = "text/html";
+    }
+
+  QString nameFilter = detectNameFilter( url );
+  if ( !nameFilter.isEmpty() )
+  {
+    req.nameFilter = nameFilter;
+    url.setFileName( QString() );
+  }
+
+    m_combo->lineEdit()->setModified(false);
+
+    KonqView *view = _view;
+
+    // When clicking a 'follow active' view (e.g. view is the sidebar),
+    // open the URL in the active view
+    if (view && view->isFollowActive())
+        view = m_currentView;
+
+    if (!view && !req.browserArgs.newTab())
+        view = m_currentView; /* Note, this can be 0, e.g. on startup */
+    else if (!view && req.browserArgs.newTab()) {
+
+        // The URL should be opened in a new tab. Let's create the tab right away,
+        // it gives faster user feedback (#163628). For a short while (kde-4.1-beta1)
+        // I removed this entire block so that we wouldn't end up with a useless tab when
+        // launching an external application for this mimetype. But user feedback
+        // in all cases is more important than empty tabs in some cases.
+        view = m_pViewManager->addTab("text/html",
+                                      QString(),
+                                      false,
+                                      req.openAfterCurrentPage);
+        if (view) {
+            view->setCaption(i18nc("@title:tab", "Loading..."));
+            view->setLocationBarURL(_url);
+            if (!req.browserArgs.frameName.isEmpty())
+                view->setViewName(req.browserArgs.frameName); // #44961
+
+            if (req.newTabInFront)
+                m_pViewManager->showTab(view);
+
+            updateViewActions(); //A new tab created -- we may need to enable the "remove tab" button (#56318)
+        } else {
+            req.browserArgs.setNewTab(false);
+        }
+    }
+
+  const QString oldLocationBarURL = m_combo->currentText();
+  if ( view )
+  {
+    if ( view == m_currentView )
+    {
+      //will do all the stuff below plus GUI stuff
+      abortLoading();
+    }
+    else
+    {
+      view->stop();
+      // Don't change location bar if not current view
+    }
+  }
+
+  // Fast mode for local files: do the stat ourselves instead of letting KRun do it.
+  if ( mimeType.isEmpty() && url.isLocalFile() )
+  {
+    KDE_struct_stat buff;
+    if ( KDE::stat( url.toLocalFile(), &buff ) != -1 )
+        mimeType = KMimeType::findByUrl( url, buff.st_mode )->name();
+  }
+
+    if (url.isLocalFile()) {
+        // Generic mechanism for redirecting to tar:/<path>/ when clicking on a tar file,
+        // zip:/<path>/ when clicking on a zip file, etc.
+        // The .protocol file specifies the mimetype that the kioslave handles.
+        // Note that we don't use mimetype inheritance since we don't want to
+        // open OpenDocument files as zip folders...
+        // Also note that we do this here and not in openView anymore,
+        // because in the case of foo.bz2 we don't know the final mimetype, we need a konqrun...
+        const QString protocol = KProtocolManager::protocolForArchiveMimetype(mimeType);
+        if (!protocol.isEmpty() && KonqFMSettings::settings()->shouldEmbed(mimeType)) {
+            url.setProtocol( protocol );
+            if (mimeType == "application/x-webarchive") {
+                url.addPath("index.html");
+                mimeType = "text/html";
+            } else {
+                if (KProtocolManager::outputType(url) == KProtocolInfo::T_FILESYSTEM) {
+                    url.adjustPath(KUrl::AddTrailingSlash);
+                    mimeType = "inode/directory";
+                } else
+                    mimeType.clear();
+            }
+        }
+
+        // Redirect to the url in Type=Link desktop files
+        if (mimeType == "application/x-desktop") {
+            KDesktopFile df(url.toLocalFile());
+            if (df.hasLinkType()) {
+                url = df.readUrl();
+                mimeType.clear(); // to be determined again
+            }
+        }
+    }
+
+
+    //kDebug() << "trying openView for" << url << "( mimeType" << mimeType << ")";
+  if ( ( !mimeType.isEmpty() && mimeType != "application/octet-stream") ||
+       url.url() == "about:" || url.url().startsWith("about:konqueror") || url.url() == "about:plugins" )
+  {
+    KService::Ptr offer = KMimeTypeTrader::self()->preferredService(mimeType, "Application");
+    const bool associatedAppIsKonqueror = isMimeTypeAssociatedWithSelf( mimeType, offer );
+    // If the associated app is konqueror itself, then make sure we try to embed before bailing out.
+    if ( associatedAppIsKonqueror )
+      req.forceAutoEmbed = true;
+
+    // Built-in view ?
+    if ( !openView( mimeType, url, view /* can be 0 */, req ) )
+    {
+        //kDebug() << "openView returned false";
+        // Are we following another view ? Then forget about this URL. Otherwise fire app.
+        if ( !req.followMode )
+        {
+            //kDebug() << "we were not following. Fire app.";
+            // The logic below is similar to BrowserRun::handleNonEmbeddable(),
+            // but we don't have a BrowserRun instance here, and since it uses
+            // some virtual methods [like save, for KHTMLRun], we can't just
+            // move all the logic to static methods... catch 22...
+
+            if ( !url.isLocalFile() && !trustedSource && KonqRun::isTextExecutable( mimeType ) )
+                mimeType = "text/plain"; // view, don't execute
+            // Remote URL: save or open ?
+            QString protClass = KProtocolInfo::protocolClass(url.protocol());
+            bool open = url.isLocalFile() || protClass==":local" || KProtocolInfo::isHelperProtocol(url);
+            if ( !open ) {
+                KParts::BrowserOpenOrSaveQuestion dlg(this, url, mimeType);
+                dlg.setFeatures(KParts::BrowserOpenOrSaveQuestion::ServiceSelection);
+                const KParts::BrowserOpenOrSaveQuestion::Result res = dlg.askOpenOrSave();
+                if (res == KParts::BrowserOpenOrSaveQuestion::Save)
+                    KParts::BrowserRun::saveUrl( url, QString(), this, req.args );
+                open = (res == KParts::BrowserOpenOrSaveQuestion::Open);
+                if (open) {
+                    offer = dlg.selectedService();
+                }
+            }
+            if ( open )
+            {
+                if ( associatedAppIsKonqueror && refuseExecutingKonqueror(mimeType) )
+                    return;
+                KUrl::List lst;
+                lst.append(url);
+                //kDebug() << "Got offer" << (offer ? offer->name() : QString("0"));
+                const bool allowExecution = trustedSource || KParts::BrowserRun::allowExecution( mimeType, url );
+                if ( allowExecution &&
+                     ( KonqRun::isExecutable( mimeType ) || !offer || !KRun::run( *offer, lst, this ) ) )
+                {
+                    setLocationBarURL( oldLocationBarURL ); // Revert to previous locationbar URL
+                    (void)new KRun( url, this );
+                }
+            }
+        }
+    }
+  }
+  else // no known mimeType, use KonqRun
+  {
+      bool earlySetLocationBarURL = false;
+      if (!view && !m_currentView) // no view yet, e.g. starting with url as argument
+          earlySetLocationBarURL = true;
+      else if (view == m_currentView && view->url().isEmpty()) // opening in current view
+          earlySetLocationBarURL = true;
+      if (req.browserArgs.newTab()) // it's going into a new tab anyway
+          earlySetLocationBarURL = false;
+      if (earlySetLocationBarURL) {
+          // Show it for now in the location bar, but we'll need to store it in the view
+          // later on (can't do it yet since either view == 0 or updateHistoryEntry will be called).
+          kDebug() << "url=" << url;
+          setLocationBarURL( url );
+      }
+
+      kDebug() << "Creating new konqrun for" << url << "req.typedUrl=" << req.typedUrl;
+
+      KonqRun * run = new KonqRun( this, view /* can be 0 */, url, req, trustedSource );
+
+      // Never start in external browser
+      run->setEnableExternalBrowser(false);
+
+      if ( view )
+        view->setRun( run );
+
+      if ( view == m_currentView )
+        startAnimation();
+
+      connect( run, SIGNAL( finished() ), this, SLOT( slotRunFinished() ) );
+  }
+}
+
+bool KonqMainWindow::openView( QString mimeType, const KUrl &_url, KonqView *childView, const KonqOpenURLRequest& req )
+{
+  // Second argument is referring URL
+  if ( !KAuthorized::authorizeUrlAction("open", childView ? childView->url() : KUrl(), _url) )
+  {
+     QString msg = KIO::buildErrorString(KIO::ERR_ACCESS_DENIED, _url.prettyUrl());
+     KMessageBox::queuedMessageBox( this, KMessageBox::Error, msg );
+     return true; // Nothing else to do.
+  }
+
+  if ( KonqRun::isExecutable( mimeType ) )
+     return false; // execute, don't open
+  // Contract: the caller of this method should ensure the view is stopped first.
+
+#ifndef NDEBUG
+  kDebug() << mimeType << _url << "childView=" << childView << "req:" << req.debug();
+#endif
+  bool bOthersFollowed = false;
+
+  if ( childView )
+  {
+    // If we're not already following another view (and if we are not reloading)
+    if ( !req.followMode && !req.args.reload() && !m_pViewManager->isLoadingProfile() )
+    {
+      // When clicking a 'follow active' view (e.g. childView is the sidebar),
+      // open the URL in the active view
+      // (it won't do anything itself, since it's locked to its location)
+      if ( childView->isFollowActive() && childView != m_currentView )
+      {
+        abortLoading();
+        setLocationBarURL( _url );
+        KonqOpenURLRequest newreq;
+        newreq.forceAutoEmbed = true;
+        newreq.followMode = true;
+        newreq.args = req.args;
+        newreq.browserArgs = req.browserArgs;
+        bOthersFollowed = openView( mimeType, _url, m_currentView, newreq );
+      }
+      // "link views" feature, and "sidebar follows active view" feature
+      bOthersFollowed = makeViewsFollow(_url, req.args, req.browserArgs, mimeType, childView) || bOthersFollowed;
+    }
+    if ( childView->isLockedLocation() && !req.args.reload() /* allow to reload a locked view*/ )
+      return bOthersFollowed;
+  }
+
+    KUrl url(_url);
+
+    // In case we open an index.html, we want the location bar
+    // to still display the original URL (so that 'up' uses that URL,
+    // and since that's what the user entered).
+    // changePart will take care of setting and storing that url.
+    QString originalURL = url.pathOrUrl();
+    if (!req.nameFilter.isEmpty()) { // keep filter in location bar
+        if (!originalURL.endsWith('/'))
+            originalURL += '/';
+        originalURL += req.nameFilter;
+    }
+
+    QString serviceName; // default: none provided
+    const QString urlStr = url.url();
+    if ( urlStr == "about:" || urlStr.startsWith("about:konqueror") || urlStr == "about:plugins" ) {
+        mimeType = "KonqAboutPage"; // not KParts/ReadOnlyPart, it fills the Location menu ! :)
+        serviceName = "konq_aboutpage";
+        originalURL = req.typedUrl.isEmpty() ? QString() : req.typedUrl;
+    }
+    else if ( urlStr == "about:blank" && req.typedUrl.isEmpty() ) {
+        originalURL.clear();
+    }
+
+
+    bool forceAutoEmbed = req.forceAutoEmbed || req.userRequestedReload;
+    if (!req.typedUrl.isEmpty()) // the user _typed_ the URL, he wants it in Konq.
+        forceAutoEmbed = true;
+    if (url.protocol() == "about" || url.protocol() == "error")
+        forceAutoEmbed = true;
+    // Related to KonqFactory::createView
+    if (!forceAutoEmbed && !KonqFMSettings::settings()->shouldEmbed(mimeType)) {
+        kDebug() << "KonqFMSettings says: don't embed this servicetype";
+        return false;
+    }
+    // Do we even have a part to embed? Otherwise don't ask, since we'd ask twice.
+    if (!forceAutoEmbed) {
+        KService::List partServiceOffers;
+        KonqFactory::getOffers(mimeType, &partServiceOffers);
+        if (partServiceOffers.isEmpty()) {
+            kDebug() << "No part available for" << mimeType;
+            return false;
+        }
+    }
+
+    // If the protocol doesn't support writing (e.g. HTTP) then we might want to save instead of just embedding.
+    // So (if embedding would succeed, hence the checks above) we ask the user
+    // Otherwise the user will get asked 'open or save' in openUrl anyway.
+    if (!forceAutoEmbed && !KProtocolManager::supportsWriting(url)) {
+        QString suggestedFileName;
+        KonqRun* run = childView ? childView->run() : 0;
+        int attachment = 0;
+        if (run) {
+            suggestedFileName = run->suggestedFileName();
+            attachment = (run->serverSuggestsSave()) ? KParts::BrowserRun::AttachmentDisposition : KParts::BrowserRun::InlineDisposition;
+        }
+
+        KParts::BrowserOpenOrSaveQuestion dlg(this, url, mimeType);
+        dlg.setSuggestedFileName(suggestedFileName);
+        const KParts::BrowserOpenOrSaveQuestion::Result res = dlg.askEmbedOrSave(attachment);
+        if (res == KParts::BrowserOpenOrSaveQuestion::Embed)
+            forceAutoEmbed = true;
+        else if (res == KParts::BrowserOpenOrSaveQuestion::Cancel)
+            return true; // handled, don't do anything else
+        else { // Save
+            KParts::BrowserRun::saveUrl(url, suggestedFileName, this, req.args);
+            return true; // handled
+        }
+    }
+
+
+    // Look for which view mode to use, if a directory - not if view locked
+  if ( ( !childView || (!childView->isLockedViewMode()) )
+       && mimeType == "inode/directory" ) {
+
+      if ( url.isLocalFile() ) { // local, check .directory file
+          // Read HTMLAllowed in the .directory file, default to m_bHTMLAllowed
+          KUrl urlDotDir( url );
+          urlDotDir.addPath(".directory");
+          bool HTMLAllowed = m_bHTMLAllowed;
+          QFile f( urlDotDir.toLocalFile() );
+          if ( f.open(QIODevice::ReadOnly) ) {
+              f.close();
+              KConfig config(urlDotDir.path(), KConfig::SimpleConfig);
+              KConfigGroup urlProperties( &config, "URL properties" );
+              HTMLAllowed = urlProperties.readEntry( "HTMLAllowed", m_bHTMLAllowed);
+              //serviceName = urlProperties.readEntry( "ViewMode", serviceName );
+              //kDebug() << "serviceName=" << serviceName;
+          }
+          QString indexFile;
+          if ( HTMLAllowed &&
+               ( !( indexFile = findIndexFile( url.toLocalFile() ) ).isEmpty() ) ) {
+              mimeType = "text/html";
+              url = KUrl(indexFile);
+              //serviceName.clear(); // cancel what we just set, this is not a dir finally
+          }
+
+          // Reflect this setting in the menu
+          m_ptaUseHTML->setChecked( HTMLAllowed );
+        }
+    }
+
+  bool ok = true;
+  if ( !childView )
+  {
+      if (req.browserArgs.newTab())
+      {
+          KonqFrameTabs* tabContainer = m_pViewManager->tabContainer();
+          int index = tabContainer->currentIndex();
+          childView = m_pViewManager->addTab( mimeType, serviceName, false, req.openAfterCurrentPage );
+
+          if (req.newTabInFront && childView)
+          {
+              if ( req.openAfterCurrentPage )
+                  tabContainer->setCurrentIndex( index + 1 );
+              else
+                  tabContainer->setCurrentIndex( tabContainer->count()-1 );
+          }
+      }
+
+      else
+      {
+        // Create a new view
+        // createFirstView always uses force auto-embed even if user setting is "separate viewer",
+        // since this window has no view yet - we don't want to keep an empty mainwindow.
+        // This can happen with e.g. application/pdf from a target="_blank" link, or window.open.
+        childView = m_pViewManager->createFirstView( mimeType, serviceName );
+
+        if ( childView )
+        {
+            enableAllActions( true );
+            m_currentView = childView;
+        }
+      }
+
+      if ( !childView )
+          return false; // It didn't work out.
+
+      childView->setViewName( m_initialFrameName.isEmpty() ? req.browserArgs.frameName : m_initialFrameName );
+      m_initialFrameName.clear();
+  }
+  else // We know the child view
+  {
+      if ( !childView->isLockedViewMode() ) {
+          if ( ok ) {
+
+              // When typing a new URL, the current context doesn't matter anymore
+              // -> select the preferred part for a given mimetype (even if the current part can handle this mimetype).
+              // This fixes the "get katepart and then type a website URL -> loaded into katepart" problem
+              // (first fixed in r168902 from 2002!, see also unittest KonqHtmlTest::textThenHtml())
+
+              if (!req.typedUrl.isEmpty() || !serviceName.isEmpty()) {
+                  ok = childView->changePart( mimeType, serviceName, forceAutoEmbed );
+              } else {
+                  ok = childView->ensureViewSupports( mimeType, forceAutoEmbed );
+              }
+          }
+      }
+  }
+
+  if (ok)
+  {
+      //kDebug() << "req.nameFilter= " << req.nameFilter;
+      //kDebug() << "req.typedUrl= " << req.typedUrl;
+      //kDebug() << "Browser extension? " << (childView->browserExtension() ? "YES" : "NO");
+      //kDebug() << "Referrer: " << req.args.metaData()["referrer"];
+      childView->setTypedURL( req.typedUrl );
+      if ( childView->part() )
+          childView->part()->setArguments( req.args );
+      if ( childView->browserExtension() )
+          childView->browserExtension()->setBrowserArguments( req.browserArgs );
+
+      // see dolphinpart
+      childView->part()->setProperty( "filesToSelect", KUrl::List(req.filesToSelect) );
+
+      if ( !url.isEmpty() )
+          childView->openUrl( url, originalURL, req.nameFilter, req.tempFile );
+  }
+    //kDebug() << "ok=" << ok << "bOthersFollowed=" << bOthersFollowed
+    //             << "returning" << (ok || bOthersFollowed);
+    return ok || bOthersFollowed;
+}
+
+static KonqView * findChildView( KParts::ReadOnlyPart *callingPart, const QString &name, KonqMainWindow *&mainWindow, KParts::BrowserHostExtension *&hostExtension, KParts::ReadOnlyPart **part )
+{
+    if ( !KonqMainWindow::mainWindowList() )
+        return 0;
+
+    foreach ( KonqMainWindow* window, *KonqMainWindow::mainWindowList() ) {
+        KonqView *res = window->childView( callingPart, name, hostExtension, part );
+        if ( res ) {
+            mainWindow = window;
+            return res;
+        }
+    }
+
+    return 0;
+}
+
+void KonqMainWindow::slotOpenURLRequest( const KUrl &url, const KParts::OpenUrlArguments& args, const KParts::BrowserArguments &browserArgs )
+{
+    //kDebug() << "frameName=" << browserArgs.frameName;
+
+  KParts::ReadOnlyPart *callingPart = static_cast<KParts::ReadOnlyPart *>( sender()->parent() );
+  QString frameName = browserArgs.frameName;
+
+  if ( !frameName.isEmpty() )
+  {
+    static QString _top = QLatin1String( "_top" );
+    static QString _self = QLatin1String( "_self" );
+    static QString _parent = QLatin1String( "_parent" );
+    static QString _blank = QLatin1String( "_blank" );
+
+    if ( frameName.toLower() == _blank )
+    {
+      slotCreateNewWindow( url, args, browserArgs );
+      return;
+    }
+
+    if ( frameName.toLower() != _top &&
+         frameName.toLower() != _self &&
+         frameName.toLower() != _parent )
+    {
+      KParts::BrowserHostExtension *hostExtension = 0;
+      KonqView *view = childView( callingPart, frameName, hostExtension, 0 );
+      if ( !view )
+      {
+        KonqMainWindow *mainWindow = 0;
+        view = findChildView( callingPart, frameName, mainWindow, hostExtension, 0 );
+
+        if ( !view || !mainWindow )
+        {
+          slotCreateNewWindow( url, args, browserArgs );
+          return;
+        }
+
+        if ( hostExtension )
+          hostExtension->openUrlInFrame( url, args, browserArgs );
+        else
+          mainWindow->openUrlRequestHelper( view, url, args, browserArgs );
+        return;
+      }
+
+      if ( hostExtension )
+        hostExtension->openUrlInFrame( url, args, browserArgs );
+      else
+        openUrlRequestHelper( view, url, args, browserArgs );
+      return;
+    }
+  }
+
+  KonqView *view = browserArgs.newTab() ? 0 : childView( callingPart );
+  openUrlRequestHelper( view, url, args, browserArgs );
+}
+
+//Called by slotOpenURLRequest
+void KonqMainWindow::openUrlRequestHelper( KonqView *childView, const KUrl &url, const KParts::OpenUrlArguments& args, const KParts::BrowserArguments &browserArgs )
+{
+    //kDebug() << "url=" << url;
+    KonqOpenURLRequest req;
+    req.args = args;
+    req.browserArgs = browserArgs;
+    openUrl(childView, url, args.mimeType(), req, browserArgs.trustedSource);
+}
+
+QObject *KonqMainWindow::lastFrame( KonqView *view )
+{
+  QObject *nextFrame, *viewFrame;
+  nextFrame = view->frame();
+  viewFrame = 0;
+  while ( nextFrame != 0 && !::qobject_cast<QStackedWidget*>(nextFrame) ) {
+    viewFrame = nextFrame;
+    nextFrame = nextFrame->parent();
+  }
+  return nextFrame ? viewFrame : 0;
+}
+
+// Linked-views feature, plus "sidebar follows URL opened in the active view" feature
+bool KonqMainWindow::makeViewsFollow( const KUrl & url,
+                                      const KParts::OpenUrlArguments& args,
+                                      const KParts::BrowserArguments &browserArgs,
+                                      const QString & serviceType, KonqView * senderView )
+{
+  if ( !senderView->isLinkedView() && senderView != m_currentView )
+    return false; // none of those features apply -> return
+
+  bool res = false;
+  //kDebug() << senderView->metaObject()->className() << "url=" << url << "serviceType=" << serviceType;
+  KonqOpenURLRequest req;
+  req.forceAutoEmbed = true;
+  req.followMode = true;
+  req.args = args;
+  req.browserArgs = browserArgs;
+  // We can't iterate over the map here, and openUrl for each, because the map can get modified
+  // (e.g. by part changes). Better copy the views into a list.
+  const QList<KonqView*> listViews = m_mapViews.values();
+
+    QObject *senderFrame = lastFrame( senderView );
+
+    foreach (KonqView * view, listViews)
+    {
+        if (view == senderView)
+            continue;
+        bool followed = false;
+        // Views that should follow this URL as both views are linked
+        if (view->isLinkedView() && senderView->isLinkedView()) {
+            QObject *viewFrame = lastFrame(view);
+
+            // Only views in the same tab of the sender will follow
+            if (senderFrame && viewFrame && viewFrame != senderFrame)
+                continue;
+
+            kDebug() << "sending openUrl to view" << view->part()->metaObject()->className() << "url=" << url;
+
+            // XXX duplicate code from ::openUrl
+            if (view == m_currentView) {
+                abortLoading();
+                setLocationBarURL(url);
+            } else {
+                view->stop();
+            }
+
+            followed = openView(serviceType, url, view, req);
+        } else {
+            // Make the sidebar follow the URLs opened in the active view
+            if (view->isFollowActive() && senderView == m_currentView) {
+                followed = openView(serviceType, url, view, req);
+            }
+        }
+
+        // Ignore return value if the view followed but doesn't really
+        // show the file contents. We still want to see that
+        // file, e.g. in a separate viewer.
+        // This happens in views locked to a directory mode,
+        // like sidebar and konsolepart (#52161).
+        const bool ignore = view->isLockedViewMode() && view->showsDirectory();
+        //kDebug() << "View " << view->service()->name()
+        //              << " supports dirs: " << view->showsDirectory()
+        //              << " is locked-view-mode:" << view->isLockedViewMode()
+        //              << " ignore=" << ignore;
+        if ( !ignore )
+            res = followed || res;
+    }
+
+    return res;
+}
+
+void KonqMainWindow::abortLoading()
+{
+    if ( m_currentView ) {
+        m_currentView->stop(); // will take care of the statusbar
+        stopAnimation();
+    }
+}
+
+// Are there any indications that this window has a strong popup
+// nature and should therefore not be embedded into a tab?
+static bool isPopupWindow( const KParts::WindowArgs &windowArgs )
+{
+    // ### other settings to respect?
+    return windowArgs.x() != -1 || windowArgs.y() != -1 ||
+        windowArgs.width() != -1 || windowArgs.height() != -1 ||
+        !windowArgs.isMenuBarVisible() ||
+        !windowArgs.toolBarsVisible() ||
+        !windowArgs.isStatusBarVisible();
+}
+
+// This is called for the javascript window.open call.
+// Also called for MMB on link, target="_blank" link, MMB on folder, etc.
+void KonqMainWindow::slotCreateNewWindow( const KUrl &url,
+                                          const KParts::OpenUrlArguments& args,
+                                          const KParts::BrowserArguments &browserArgs,
+                                          const KParts::WindowArgs &windowArgs, KParts::ReadOnlyPart **part )
+{
+    // NOTE: 'part' may be null
+
+    kDebug() << "url=" << url << "args.mimeType()=" << args.mimeType()
+                 << "browserArgs.frameName=" << browserArgs.frameName;
+
+    if ( part )
+        *part = 0; // Make sure to be initialized in case of failure...
+
+    KonqMainWindow *mainWindow = 0;
+    if ( !browserArgs.frameName.isEmpty() && browserArgs.frameName.toLower() != "_blank" ) {
+        KParts::BrowserHostExtension *hostExtension = 0;
+        KParts::ReadOnlyPart *ro_part = 0;
+        KParts::BrowserExtension *be = ::qobject_cast<KParts::BrowserExtension *>(sender());
+        if (be)
+            ro_part = ::qobject_cast<KParts::ReadOnlyPart *>(be->parent());
+        if ( findChildView( ro_part, browserArgs.frameName, mainWindow, hostExtension, part ) ) {
+            // Found a view. If url isn't empty, we should open it - but this never happens currently
+            // findChildView put the resulting part in 'part', so we can just return now
+            //kDebug() << "frame=" << browserArgs.frameName << "-> found part=" << part << part->name();
+            return;
+        }
+    }
+
+    bool createTab = browserArgs.newTab();
+    if (!createTab && !browserArgs.forcesNewWindow() /* explicit "Open in New Window" action, e.g. on frame or history item */) {
+        if (args.actionRequestedByUser()) { // MMB or some RMB popupmenu action
+            createTab = KonqSettings::mmbOpensTab();
+        } else { // Javascript popup
+            createTab = KonqSettings::popupsWithinTabs() &&
+                        !isPopupWindow( windowArgs );
+        }
+    }
+    kDebug() << "createTab=" << createTab << "part=" << part;
+
+    if ( createTab ) {
+
+        bool newtabsinfront = KonqSettings::newTabsInFront();
+        if ( windowArgs.lowerWindow() || (QApplication::keyboardModifiers() & Qt::ShiftModifier))
+           newtabsinfront = !newtabsinfront;
+        const bool aftercurrentpage = KonqSettings::openAfterCurrentPage();
+
+        KonqOpenURLRequest req;
+        req.args = args;
+        req.browserArgs = browserArgs;
+        // Can we use the standard way (openUrl), or do we need the part pointer immediately?
+        if (!part) {
+            req.browserArgs.setNewTab(true);
+            req.forceAutoEmbed = true; // testcase: MMB on link-to-PDF, when pdf setting is "show file in external browser".
+            req.newTabInFront = newtabsinfront;
+            req.openAfterCurrentPage = aftercurrentpage;
+            openUrl(0, url, args.mimeType(), req);
+        } else {
+            KonqView* newView = m_pViewManager->addTab("text/html", QString(), false, aftercurrentpage);
+            if (newView == 0) return;
+
+            if (newtabsinfront)
+                m_pViewManager->showTab( newView );
+
+            openUrl( newView, url.isEmpty() ? KUrl("about:blank") : url, QString(), req );
+            newView->setViewName( browserArgs.frameName );
+
+            *part = newView->part();
+        }
+        return;
+    }
+
+    // Pass the URL to createNewWindow so that it can select the right profile for it
+    // Note that it's always empty in case of window.open, though.
+    mainWindow = KonqMisc::createNewWindow(url, args, browserArgs, false, QStringList(),
+        false, false /*do not open URL*/, false /*don't show*/);
+    mainWindow->resetAutoSaveSettings(); // Don't autosave
+
+    KonqOpenURLRequest req;
+    req.args = args;
+    req.browserArgs = browserArgs;
+    req.browserArgs.setNewTab(false); // we got a new window, no need for a new tab in that window
+    req.forceAutoEmbed = true;
+
+    // Do we know the mimetype? If not, go to generic openUrl which will use a KonqRun.
+    if ( args.mimeType().isEmpty() ) {
+      mainWindow->openUrl( 0, url, QString(), req );
+    } else if (!mainWindow->openView(args.mimeType(), url, m_currentView, req)) {
+      // we have problems. abort.
+      delete mainWindow;
+
+      if ( part )
+        *part = 0;
+      return;
+    }
+
+    KonqView * view = 0;
+    // cannot use activePart/currentView, because the activation through the partmanager
+    // is delayed by a singleshot timer (see KonqViewManager::setActivePart)
+    // ### TODO: not true anymore
+    if ( mainWindow->viewMap().count() )
+    {
+      MapViews::ConstIterator it = mainWindow->viewMap().begin();
+      view = it.value();
+
+      if ( part )
+        *part = it.key();
+    }
+
+    // activate the view now in order to make the menuBar() hide call work
+    if ( part && *part ) {
+       mainWindow->viewManager()->setActivePart(*part);
+    }
+
+    if ( windowArgs.x() != -1 )
+        mainWindow->move( windowArgs.x(), mainWindow->y() );
+    if ( windowArgs.y() != -1 )
+        mainWindow->move( mainWindow->x(), windowArgs.y() );
+
+    int width;
+    if ( windowArgs.width() != -1 )
+        width = windowArgs.width();
+    else
+        width = mainWindow->width();
+
+    int height;
+    if ( windowArgs.height() != -1 )
+        height = windowArgs.height();
+    else
+        height = mainWindow->height();
+
+    mainWindow->resize( width, height );
+
+    // process the window args
+
+    if ( !windowArgs.isMenuBarVisible() )
+    {
+        mainWindow->menuBar()->hide();
+        mainWindow->m_paShowMenuBar->setChecked( false );
+    }
+
+    if ( !windowArgs.toolBarsVisible() )
+    {
+      foreach (KToolBar* bar, mainWindow->findChildren<KToolBar*>())
+        bar->hide();
+    }
+
+    if ( view ) {
+        if ( !windowArgs.scrollBarsVisible() )
+            view->disableScrolling();
+        if ( !windowArgs.isStatusBarVisible() )
+            view->frame()->statusbar()->hide();
+    }
+
+    if ( !windowArgs.isResizable() )
+        // ### this doesn't seem to work :-(
+        mainWindow->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
+
+// Trying to show the window initially behind the current window is a bit tricky,
+// as this involves the window manager, which may see things differently.
+// Many WMs raise and activate new windows, which means without WM support this won't work very
+// well. If the WM has support for _NET_WM_USER_TIME, it will be just set to 0 (=don't focus on show),
+// and the WM should take care of it itself.
+    bool wm_usertime_support = false;
+
+#ifdef Q_WS_X11
+    Time saved_last_input_time = QX11Info::appUserTime();
+    if ( windowArgs.lowerWindow() )
+    {
+        NETRootInfo wm_info( QX11Info::display(), NET::Supported );
+        wm_usertime_support = wm_info.isSupported( NET::WM2UserTime );
+        if( wm_usertime_support )
+        {
+        // *sigh*, and I thought nobody would need QWidget::dontFocusOnShow().
+        // Avoid Qt's support for user time by setting it to 0, and
+        // set the property ourselves.
+            QX11Info::setAppUserTime( 0 );
+            KWindowSystem::setUserTime( mainWindow->winId(), 0 );
+        }
+        // Put below the current window before showing, in case that actually works with the WM.
+        // First do complete lower(), then stackUnder(), because the latter may not work with many WMs.
+        mainWindow->lower();
+        mainWindow->stackUnder( this );
+    }
+
+    mainWindow->show();
+
+    if ( windowArgs.lowerWindow() )
+    {
+        QX11Info::setAppUserTime( saved_last_input_time );
+        if( !wm_usertime_support )
+        { // No WM support. Let's try ugly tricks.
+            mainWindow->lower();
+            mainWindow->stackUnder( this );
+            if( this->isActiveWindow())
+                this->activateWindow();
+        }
+    }
+#else // Q_WS_X11
+    mainWindow->show();
+#endif
+
+    if ( windowArgs.isFullScreen() )
+        mainWindow->action( "fullscreen" )->trigger();
+}
+
+void KonqMainWindow::slotNewWindow()
+{
+  // Use profile from current window, if set
+  QString profile = m_pViewManager->currentProfile();
+  if ( profile.isEmpty() )
+  {
+    if ( m_currentView && m_currentView->url().protocol().startsWith( "http" ) )
+       profile = QLatin1String("webbrowsing");
+    else
+       profile = QLatin1String("filemanagement");
+  }
+  KonqMisc::createBrowserWindowFromProfile(
+    KStandardDirs::locate( "data", QLatin1String("konqueror/profiles/")+profile ),
+    profile );
+}
+
+void KonqMainWindow::slotDuplicateWindow()
+{
+    m_pViewManager->duplicateWindow()->show();
+}
+
+void KonqMainWindow::slotSendURL()
+{
+  const KUrl::List lst = currentURLs();
+  QString body;
+  QString fileNameList;
+  for ( KUrl::List::ConstIterator it = lst.begin() ; it != lst.end() ; ++it )
+  {
+    if ( !body.isEmpty() ) body += '\n';
+    body += (*it).prettyUrl();
+    if ( !fileNameList.isEmpty() ) fileNameList += ", ";
+    fileNameList += (*it).fileName();
+  }
+  QString subject;
+  if (m_currentView && !m_currentView->showsDirectory())
+    subject = m_currentView->caption();
+  else // directory view
+      subject = fileNameList;
+  KToolInvocation::invokeMailer(QString(),QString(),QString(),
+                     subject, body);
+}
+
+void KonqMainWindow::slotSendFile()
+{
+  const KUrl::List lst = currentURLs();
+  QStringList urls;
+  QString fileNameList;
+  for ( KUrl::List::ConstIterator it = lst.begin() ; it != lst.end() ; ++it )
+  {
+    if ( !fileNameList.isEmpty() ) fileNameList += ", ";
+    if ( (*it).isLocalFile() && QFileInfo((*it).toLocalFile()).isDir() )
+    {
+        // Create a temp dir, so that we can put the ZIP file in it with a proper name
+        QString zipFileName;
+        {
+          //TODO This should use KTempDir
+          KTemporaryFile zipFile;
+          zipFile.open();
+          zipFileName = zipFile.fileName();
+        }
+
+        QDir().mkdir(zipFileName);
+        zipFileName = zipFileName+'/'+(*it).fileName()+".zip";
+        KZip zip( zipFileName );
+        if ( !zip.open( QIODevice::WriteOnly ) )
+            continue; // TODO error message
+        zip.addLocalDirectory( (*it).path(), QString() );
+        zip.close();
+        fileNameList += (*it).fileName()+".zip";
+        urls.append( zipFileName );
+    }
+    else
+    {
+        fileNameList += (*it).fileName();
+        urls.append( (*it).url() );
+    }
+  }
+  QString subject;
+  if ( m_currentView && !m_currentView->showsDirectory())
+    subject = m_currentView->caption();
+  else
+    subject = fileNameList;
+  KToolInvocation::invokeMailer(QString(), QString(), QString(), subject,
+                     QString(), //body
+                     QString(),
+                     urls); // attachments
+}
+
+void KonqMainWindow::slotOpenLocation()
+{
+    focusLocationBar();
+    m_combo->lineEdit()->selectAll();
+}
+
+void KonqMainWindow::slotOpenFile()
+{
+    KUrl currentUrl;
+    if (m_currentView && m_currentView->url().isLocalFile())
+        currentUrl = m_currentView->url();
+    else
+        currentUrl = KUrl::fromPath(QDir::homePath());
+
+    KUrl url = KFileDialog::getOpenUrl(currentUrl, QString(), this);
+    if (!url.isEmpty())
+      openFilteredUrl( url.url().trimmed() );
+}
+
+void KonqMainWindow::slotIconsChanged()
+{
+    kDebug();
+    m_combo->updatePixmaps();
+    m_pViewManager->updatePixmaps();
+    updateWindowIcon();
+}
+
+void KonqMainWindow::slotOpenWith()
+{
+    KUrl::List lst;
+    lst.append(m_currentView->url());
+
+    const QString serviceName = sender()->objectName();
+
+    const KService::List offers = m_currentView->appServiceOffers();
+    KService::List::ConstIterator it = offers.begin();
+    const KService::List::ConstIterator end = offers.end();
+    for (; it != end; ++it ) {
+        if ((*it)->desktopEntryName() == serviceName) {
+            KRun::run(**it, lst, this);
+            return;
+        }
+    }
+}
+
+void KonqMainWindow::slotViewModeTriggered(QAction* action)
+{
+    // Gather data from the action, since the action will be deleted by changePart
+    const QString modeName = action->objectName();
+    const QString internalViewMode = action->data().toString();
+
+    if ( m_currentView->service()->desktopEntryName() != modeName ) {
+        m_currentView->stop();
+        m_currentView->lockHistory();
+
+        // Save those, because changePart will lose them
+        KUrl url = m_currentView->url();
+        QString locationBarURL = m_currentView->locationBarURL();
+#if 0
+        // Problem: dolphinpart doesn't currently implement it. But we don't need it that much
+        // now that it's the main filemanagement part for all standard modes.
+        KUrl::List filesToSelect = childView->part()->property("filesToSelect").value<KUrl::List>();
+#endif
+
+        m_currentView->changePart( m_currentView->serviceType(), modeName );
+        KUrl locURL( locationBarURL );
+        QString nameFilter = detectNameFilter( locURL );
+#if 0
+        childView->part()->setProperty( "filesToSelect", KUrl::List(req.filesToSelect) );
+#endif
+        m_currentView->openUrl( locURL, locationBarURL, nameFilter );
+    }
+
+    if (!internalViewMode.isEmpty() && internalViewMode != m_currentView->internalViewMode()) {
+        m_currentView->setInternalViewMode(internalViewMode);
+    }
+}
+
+void KonqMainWindow::showHTML( KonqView * _view, bool b, bool _activateView )
+{
+  // Save this setting
+  // This has to be done before calling openView since it relies on it
+    KonqSettings::setHtmlAllowed( b );
+    KonqSettings::self()->writeConfig();
+    if ( _activateView )
+        m_bHTMLAllowed = b;
+
+    if ( b && _view->showsDirectory()) {
+    _view->lockHistory();
+    openView( "inode/directory", _view->url(), _view );
+  }
+  else if ( !b && _view->supportsMimeType( "text/html" ) )
+  {
+    KUrl u( _view->url() );
+    QString fileName = u.fileName().toLower();
+    if ( KProtocolManager::supportsListing( u ) && fileName.startsWith("index.htm") ) {
+        _view->lockHistory();
+        u.setPath( u.directory() );
+        openView( "inode/directory", u, _view );
+    }
+  }
+}
+
+void KonqMainWindow::slotShowHTML()
+{
+  bool b = !m_currentView->allowHTML();
+
+  m_currentView->stop();
+  m_currentView->setAllowHTML( b );
+  showHTML( m_currentView, b, true ); //current view
+  m_pViewManager->showHTML(b );
+
+}
+
+void KonqMainWindow::setShowHTML( bool b )
+{
+    m_bHTMLAllowed = b;
+    if ( m_currentView )
+        m_currentView->setAllowHTML( b );
+    m_ptaUseHTML->setChecked( b );
+}
+
+void KonqMainWindow::slotLockView()
+{
+  m_currentView->setLockedLocation( m_paLockView->isChecked() );
+}
+
+void KonqMainWindow::slotStop()
+{
+  abortLoading();
+  if ( m_currentView )
+  {
+    m_currentView->frame()->statusbar()->message( i18n("Canceled.") );
+  }
+}
+
+void KonqMainWindow::slotLinkView()
+{
+    // Can't access this action in passive mode anyway
+    assert(!m_currentView->isPassiveMode());
+    const bool mode = !m_currentView->isLinkedView();
+
+    const QList<KonqView*> linkableViews = KonqLinkableViewsCollector::collect(this);
+    if (linkableViews.count() == 2) {
+        // Exactly two linkable views : link both
+        linkableViews.at(0)->setLinkedView( mode );
+        linkableViews.at(1)->setLinkedView( mode );
+    } else { // Normal case : just this view
+        m_currentView->setLinkedView( mode );
+    }
+}
+
+void KonqMainWindow::slotReload( KonqView* reloadView, bool softReload )
+{
+  if ( !reloadView )
+    reloadView = m_currentView;
+
+    if (!reloadView || (reloadView->url().isEmpty() && reloadView->locationBarURL().isEmpty()))
+        return;
+
+    if (reloadView->isModified()) {
+        if (KMessageBox::warningContinueCancel( this,
+           i18n("This page contains changes that have not been submitted.\nReloading the page will discard these changes."),
+           i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"view-refresh"), KStandardGuiItem::cancel(), "discardchangesreload") != KMessageBox::Continue )
+            return;
+    }
+
+  KonqOpenURLRequest req( reloadView->typedUrl() );
+  req.userRequestedReload = true;
+  if ( reloadView->prepareReload( req.args, req.browserArgs, softReload ) )
+  {
+      reloadView->lockHistory();
+      // Reuse current servicetype for local files, but not for remote files (it could have changed, e.g. over HTTP)
+      QString serviceType = reloadView->url().isLocalFile() ? reloadView->serviceType() : QString();
+      // By using locationBarURL instead of url, we preserve name filters (#54687)
+      KUrl reloadUrl = reloadView->locationBarURL();
+      if (reloadUrl.isEmpty()) // e.g. initial screen
+          reloadUrl = reloadView->url();
+      openUrl(reloadView, reloadUrl, serviceType, req);
+  }
+}
+
+void KonqMainWindow::slotForceReload()
+{
+    // A forced reload is simply a "hard" (i.e. - not soft!) reload.
+    slotReload(0L /* Current view */, false /* Not softReload*/);
+}
+
+void KonqMainWindow::slotReloadPopup()
+{
+    KonqFrameBase* tab = m_pViewManager->tabContainer()->tabAt(m_workingTab);
+    if (tab) {
+        slotReload(tab->activeChildView());
+    }
+}
+
+void KonqMainWindow::slotHome(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
+{
+    const QString homeURL = m_paHomePopup->data().toString();
+
+    KonqOpenURLRequest req;
+    req.browserArgs.setNewTab(true);
+    req.newTabInFront = KonqSettings::newTabsInFront();
+
+    if (modifiers & Qt::ShiftModifier)
+        req.newTabInFront = !req.newTabInFront;
+
+    if( modifiers & Qt::ControlModifier ) // Ctrl Left/MMB
+	openFilteredUrl( homeURL, req);
+    else if( buttons & Qt::MidButton )
+    {
+        if(KonqSettings::mmbOpensTab())
+	    openFilteredUrl( homeURL, req);
+	else
+	{
+	    KUrl finalURL = KonqMisc::konqFilteredURL( this, homeURL );
+	    KonqMisc::createNewWindow( finalURL.url() );
+	}
+    }
+    else
+	openFilteredUrl( homeURL, false );
+}
+
+void KonqMainWindow::slotHome()
+{
+    slotHome(Qt::LeftButton, Qt::NoModifier);
+}
+
+void KonqMainWindow::slotHomePopupActivated(QAction* action)
+{
+    openUrl( 0, action->data().toString() );
+}
+
+void KonqMainWindow::slotGoHistory()
+{
+    if (!m_historyDialog) {
+        m_historyDialog = new KonqHistoryDialog(this);
+        m_historyDialog->setAttribute(Qt::WA_DeleteOnClose);
+        m_historyDialog->setModal(false);
+    }
+    m_historyDialog->show();
+}
+
+void KonqMainWindow::slotConfigureExtensions()
+{
+    KonqExtensionManager extensionManager(this, this, m_currentView ? m_currentView->part() : 0);
+    extensionManager.exec();
+}
+
+void KonqMainWindow::slotConfigure()
+{
+    if( !m_configureDialog )
+    {
+        m_configureDialog = new KCMultiDialog( this );
+        m_configureDialog->setObjectName( QLatin1String( "configureDialog" ) );
+        connect(m_configureDialog, SIGNAL(finished()), this, SLOT(slotConfigureDone()));
+
+        //BEGIN SYNC with initActions()
+        const char* const toplevelModules[]={
+                "khtml_general",
+#ifndef Q_WS_WIN
+                "kcmkonqyperformance",
+#endif
+                "bookmarks"};
+        for (uint i=0;i<sizeof(toplevelModules)/sizeof(char*);++i)
+            if (KAuthorized::authorizeControlModule(toplevelModules[i]))
+                m_configureDialog->addModule(KCModuleInfo(QString(toplevelModules[i])+".desktop"));
+
+
+        if (KAuthorized::authorizeControlModule("filebehavior") )
+        {
+            KPageWidgetItem * fileManagementGroup = m_configureDialog->addModule("filebehavior");
+            fileManagementGroup->setName(i18n("File Management"));
+            const char* const fmModules[]={
+                "kcmdolphinviewmodes",
+                "kcmdolphinnavigation",
+                "kcmdolphinservices",
+                "kcmdolphingeneral",
+                "filetypes",
+                "kcmtrash"};
+            for (uint i=0;i<sizeof(fmModules)/sizeof(char*);++i)
+                if (KAuthorized::authorizeControlModule(fmModules[i]))
+                    m_configureDialog->addModule(KCModuleInfo(QString(fmModules[i])+".desktop"),fileManagementGroup);
+        }
+
+        if (KAuthorized::authorizeControlModule("khtml_behavior"))
+        {
+            KPageWidgetItem * webGroup = m_configureDialog->addModule("khtml_behavior");
+            webGroup->setName(i18n("Web Browsing"));
+
+            const char* const webModules[]={
+                "khtml_appearance",
+                "khtml_filter",
+                "ebrowsing",
+                "cache",
+                "proxy",
+                "kcmhistory",
+                "cookies",
+                "crypto",
+                "useragent",
+                "khtml_java_js",
+                "khtml_plugins"};
+            for (uint i=0;i<sizeof(webModules)/sizeof(char*);++i)
+                if (KAuthorized::authorizeControlModule(webModules[i]))
+                    m_configureDialog->addModule(KCModuleInfo(QString(webModules[i])+".desktop"),webGroup);
+
+        }
+        //END SYNC with initActions()
+
+    }
+
+    m_configureDialog->show();
+
+}
+
+void KonqMainWindow::slotConfigureDone()
+{
+    // Cleanup the dialog so other instances can use it..
+    if ( m_configureDialog )
+    {
+        m_configureDialog->deleteLater();
+        m_configureDialog = 0;
+    }
+}
+
+void KonqMainWindow::slotConfigureSpellChecking()
+{
+    Sonnet::ConfigDialog dialog( KGlobal::config().data(), this);
+    dialog.setWindowIcon( KIcon( "konqueror" ));
+    dialog.exec();
+}
+
+void KonqMainWindow::slotConfigureToolbars()
+{
+    slotForceSaveMainWindowSettings();
+    KEditToolBar dlg(factory(), this);
+    connect(&dlg,SIGNAL(newToolBarConfig()),this,SLOT(slotNewToolbarConfig()));
+    connect(&dlg,SIGNAL(newToolBarConfig()),this,SLOT(initBookmarkBar()));
+    dlg.exec();
+    checkDisableClearButton();
+}
+
+void KonqMainWindow::slotNewToolbarConfig() // This is called when OK or Apply is clicked
+{
+    if ( m_toggleViewGUIClient )
+      plugActionList( QLatin1String( "toggleview" ), m_toggleViewGUIClient->actions() );
+    if ( m_currentView && m_currentView->appServiceOffers().count() > 0 )
+      plugActionList( "openwith", m_openWithActions );
+
+    plugViewModeActions();
+
+    KConfigGroup cg = KGlobal::config()->group( "KonqMainWindow" );
+    applyMainWindowSettings( cg );
+}
+
+void KonqMainWindow::slotUndoAvailable( bool avail )
+{
+  m_paUndo->setEnabled( avail );
+}
+
+void KonqMainWindow::slotPartChanged( KonqView *childView, KParts::ReadOnlyPart *oldPart, KParts::ReadOnlyPart *newPart )
+{
+  m_mapViews.remove( oldPart );
+  m_mapViews.insert( newPart, childView );
+
+  // Remove the old part, and add the new part to the manager
+  const bool wasActive = m_pViewManager->activePart() == oldPart;
+
+  m_pViewManager->replacePart( oldPart, newPart, false );
+
+  // Set active immediately - but only if the old part was the active one (#67956)
+  if (wasActive) {
+      // Note: this makes the new part active... so it calls slotPartActivated
+      m_pViewManager->setActivePart(newPart);
+  }
+
+  viewsChanged();
+}
+
+
+void KonqMainWindow::slotRunFinished()
+{
+  const KonqRun *run = static_cast<const KonqRun *>( sender() );
+
+  if ( !run->mailtoURL().isEmpty() )
+  {
+      KToolInvocation::invokeMailer( run->mailtoURL() );
+  }
+
+  if ( run->hasError() ) { // we had an error
+      QDBusMessage message = QDBusMessage::createSignal( KONQ_MAIN_PATH, "org.kde.Konqueror.Main", "removeFromCombo" );
+      message << run->url().prettyUrl();
+      QDBusConnection::sessionBus().send( message );
+  }
+
+  KonqView *childView = run->childView();
+
+  // Check if we found a mimetype _and_ we got no error (example: cancel in openwith dialog)
+  if ( run->wasMimeTypeFound() && !run->hasError() )
+  {
+
+    // We do this here and not in the constructor, because
+    // we are waiting for the first view to be set up before doing this...
+    // Note: this is only used when konqueror is started from command line.....
+    if ( m_bNeedApplyKonqMainWindowSettings )
+    {
+      m_bNeedApplyKonqMainWindowSettings = false; // only once
+      applyKonqMainWindowSettings();
+    }
+
+    return;
+  }
+
+    // An error happened in KonqRun - stop wheel etc.
+
+    if (childView) {
+        childView->setLoading(false);
+
+        if (childView == m_currentView) {
+            stopAnimation();
+
+            // Revert to working URL - unless the URL was typed manually
+            if (run->typedUrl().isEmpty() && childView->currentHistoryEntry()) // not typed
+                childView->setLocationBarURL(childView->currentHistoryEntry()->locationBarURL);
+        }
+    } else { // No view, e.g. empty webbrowsing profile
+        stopAnimation();
+    }
+}
+
+void KonqMainWindow::applyKonqMainWindowSettings()
+{
+  const QStringList toggableViewsShown = KonqSettings::toggableViewsShown();
+  QStringList::ConstIterator togIt = toggableViewsShown.begin();
+  QStringList::ConstIterator togEnd = toggableViewsShown.end();
+  for ( ; togIt != togEnd ; ++togIt )
+  {
+    // Find the action by name
+  //    KAction * act = m_toggleViewGUIClient->actionCollection()->action( (*togIt).toLatin1() );
+    QAction *act = m_toggleViewGUIClient->action( *togIt );
+    if ( act )
+      act->trigger();
+    else
+      kWarning() << "Unknown toggable view in ToggableViewsShown " << *togIt ;
+  }
+}
+
+void KonqMainWindow::slotSetStatusBarText( const QString & )
+{
+   // Reimplemented to disable KParts::MainWindow default behaviour
+   // Does nothing here, see KonqFrame
+}
+
+void KonqMainWindow::slotViewCompleted( KonqView * view )
+{
+  assert( view );
+
+  // Need to update the current working directory
+  // of the completion object every time the user
+  // changes the directory!! (DA)
+  if( m_pURLCompletion )
+  {
+    KUrl u( view->locationBarURL() );
+    if( u.isLocalFile() )
+      m_pURLCompletion->setDir( u.toLocalFile() );
+    else
+      m_pURLCompletion->setDir( u.url() );  //needs work!! (DA)
+  }
+}
+
+void KonqMainWindow::slotPartActivated(KParts::Part *part)
+{
+    kDebug() << part
+               << (part && part->componentData().isValid() && part->componentData().aboutData() ? part->componentData().aboutData()->appName() : "");
+
+  KonqView *newView = 0;
+  KonqView *oldView = m_currentView;
+
+    if (part) {
+        newView = m_mapViews.value( static_cast<KParts::ReadOnlyPart *>(part) );
+        Q_ASSERT(newView);
+        if (newView->isPassiveMode()) {
+      // Passive view. Don't connect anything, don't change m_currentView
+      // Another view will become the current view very soon
+            //kDebug() << "Passive mode - return";
+      return;
+    }
+  }
+
+  KParts::BrowserExtension *ext = 0;
+
+    if (oldView) {
+    ext = oldView->browserExtension();
+        if (ext) {
+      //kDebug() << "Disconnecting extension for view" << oldView;
+      disconnectExtension( ext );
+    }
+  }
+
+    kDebug() << "New current view" << newView;
+  m_currentView = newView;
+    if (!part) {
+      //kDebug() << "No part activated - returning";
+    unplugViewModeActions();
+      createGUI(0);
+      KParts::MainWindow::setCaption(QString());
+    return;
+  }
+
+  ext = m_currentView->browserExtension();
+
+    if (ext) {
+        connectExtension(ext);
+    } else {
+    kDebug() << "No Browser Extension for the new part";
+    // Disable all browser-extension actions
+
+    KParts::BrowserExtension::ActionSlotMap * actionSlotMap = KParts::BrowserExtension::actionSlotMapPtr();
+    KParts::BrowserExtension::ActionSlotMap::ConstIterator it = actionSlotMap->constBegin();
+        const KParts::BrowserExtension::ActionSlotMap::ConstIterator itEnd = actionSlotMap->constEnd();
+        for (; it != itEnd ; ++it) {
+            QAction * act = actionCollection()->action(QString::fromLatin1(it.key()));
+      Q_ASSERT(act);
+      if (act)
+        act->setEnabled( false );
+    }
+
+        if (m_paCopyFiles)
+            m_paCopyFiles->setEnabled(false);
+        if (m_paMoveFiles)
+            m_paMoveFiles->setEnabled(false);
+  }
+
+    createGUI(part);
+
+  // View-dependent GUI
+
+  KParts::MainWindow::setCaption( KStringHandler::csqueeze( m_currentView->caption(), 128 ) );
+    // This line causes #170470 when removing the current tab, because QTabBar
+    // emits currentChanged before calling tabRemoved, so KTabWidget gets confused.
+    // I don't see a need for it anyway...
+    //m_currentView->frame()->setTitle(m_currentView->caption(), 0);
+
+  updateOpenWithActions();
+  updateViewActions(); // undo, lock, link and other view-dependent actions
+  updateViewModeActions();
+
+  bool viewShowsDir = m_currentView->showsDirectory();
+  bool buttonShowsFolder = m_paHomePopup->text() == i18n("Home Folder");
+  if ( m_paHomePopup->text() == i18n("Home") || viewShowsDir != buttonShowsFolder ) {
+    KAction *actHomeFolder = new KAction( this );
+    KAction *actHomePage = new KAction ( this );
+
+    actHomeFolder->setIcon( KIcon("user-home") );
+    actHomeFolder->setText( i18n("Home Folder") );
+    actHomeFolder->setStatusTip( i18n("Navigate to your 'Home Folder'") );
+    actHomeFolder->setWhatsThis( i18n("Navigate to your local 'Home Folder'") );
+    actHomeFolder->setData(QDir::homePath());
+    actHomePage->setIcon( KIcon("go-home") );
+    actHomePage->setText( i18n("Home Page") );
+
+    actHomePage->setStatusTip( i18n("Navigate to your 'Home Page'") );
+    actHomePage->setWhatsThis( i18n("<html>Navigate to your 'Home Page'<br /><br />"
+                              "You can configure the location where this button takes you "
+                              "under <b>Settings -> Configure Konqueror -> General</b>.</html>") );
+    actHomePage->setData(KonqSettings::homeURL());
+
+    m_paHome->setIcon( viewShowsDir ? actHomeFolder->icon() : actHomePage->icon() );
+    m_paHome->setText( viewShowsDir ? actHomeFolder->text() : actHomePage->text() );
+    m_paHome->setStatusTip( viewShowsDir ? actHomeFolder->statusTip() : actHomePage->statusTip() );
+    m_paHome->setWhatsThis( viewShowsDir ? actHomeFolder->whatsThis() : actHomePage->whatsThis() );
+    m_paHomePopup->setIcon( viewShowsDir ? actHomeFolder->icon() : actHomePage->icon() );
+    m_paHomePopup->setText( viewShowsDir ? actHomeFolder->text() : actHomePage->text() );
+    m_paHomePopup->setStatusTip( viewShowsDir ? actHomeFolder->statusTip() : actHomePage->statusTip() );
+    m_paHomePopup->setWhatsThis( viewShowsDir ? actHomeFolder->whatsThis() : actHomePage->whatsThis() );
+    m_paHomePopup->setData( viewShowsDir ? actHomeFolder->data() : actHomePage->data() );
+    m_paHomePopup->menu()->clear();
+    if ( viewShowsDir ) {
+      m_paHomePopup->menu()->addAction( actHomePage );
+      delete actHomeFolder;
+    }
+    else {
+      m_paHomePopup->menu()->addAction( actHomeFolder );
+      delete actHomePage;
+    }
+  }
+
+  m_currentView->frame()->statusbar()->updateActiveStatus();
+
+  if ( oldView && oldView->frame() )
+    oldView->frame()->statusbar()->updateActiveStatus();
+
+  //kDebug() << "setting location bar url to"
+  //         << m_currentView->locationBarURL() << "m_currentView=" << m_currentView;
+  m_currentView->setLocationBarURL( m_currentView->locationBarURL() );
+
+  updateToolBarActions();
+
+  m_currentView->setActiveComponent();
+}
+
+void KonqMainWindow::insertChildView( KonqView *childView )
+{
+    //kDebug() << childView;
+    m_mapViews.insert(childView->part(), childView);
+
+    connect(childView, SIGNAL(viewCompleted(KonqView *)),
+            this, SLOT(slotViewCompleted(KonqView *)));
+
+    emit viewAdded(childView);
+}
+
+// Called by KonqViewManager, internal
+void KonqMainWindow::removeChildView( KonqView *childView )
+{
+    //kDebug() << childView;
+
+  disconnect( childView, SIGNAL( viewCompleted( KonqView * ) ),
+              this, SLOT( slotViewCompleted( KonqView * ) ) );
+
+#ifndef NDEBUG
+    //dumpViewList();
+#endif
+
+  MapViews::Iterator it = m_mapViews.begin();
+  const MapViews::Iterator end = m_mapViews.end();
+
+  // find it in the map - can't use the key since childView->part() might be 0
+
+  //kDebug() << "Searching map";
+
+  while ( it != end && it.value() != childView )
+      ++it;
+
+  //kDebug() << "Verifying search results";
+
+  if ( it == m_mapViews.end() )
+  {
+      kWarning() << "KonqMainWindow::removeChildView childView " << childView << " not in map !" ;
+      return;
+  }
+
+  //kDebug() << "Removing view" << childView;
+
+  m_mapViews.erase( it );
+
+  emit viewRemoved( childView );
+
+#ifndef NDEBUG
+  //dumpViewList();
+#endif
+
+  // KonqViewManager takes care of m_currentView
+}
+
+void KonqMainWindow::linkableViewCountChanged()
+{
+    const QList<KonqView*> linkableViews = KonqLinkableViewsCollector::collect(this);
+    const int lvc = linkableViews.count();
+    m_paLinkView->setEnabled( lvc > 1 );
+    // Only one view -> unlink it
+    if (lvc == 1) {
+        linkableViews.at(0)->setLinkedView( false );
+    }
+    m_pViewManager->viewCountChanged();
+}
+
+void KonqMainWindow::viewCountChanged()
+{
+    // This is called (by the view manager) when the number of views changes.
+    linkableViewCountChanged();
+    viewsChanged();
+}
+
+void KonqMainWindow::viewsChanged()
+{
+    // This is called when the number of views changes OR when
+    // the type of some view changes.
+
+    updateViewActions(); // undo, lock, link and other view-dependent actions
+}
+
+KonqView * KonqMainWindow::childView( KParts::ReadOnlyPart *view )
+{
+    return m_mapViews.value(view);
+}
+
+KonqView * KonqMainWindow::childView( KParts::ReadOnlyPart *callingPart, const QString &name, KParts::BrowserHostExtension *&hostExtension, KParts::ReadOnlyPart **part )
+{
+    //kDebug() << "this=" << this << "looking for" << name;
+    QList<KonqView *> views = m_mapViews.values();
+    KonqView* callingView = m_mapViews.value(callingPart);
+    if (callingView) {
+        // Move the callingView in front of the list, in case of duplicate frame names (#133967)
+        if (views.removeAll(callingView))
+            views.prepend(callingView);
+    }
+
+  Q_FOREACH(KonqView* view, views) {
+    QString viewName = view->viewName();
+    //kDebug() << "       - viewName=" << viewName
+    //          << "frame names:" << view->frameNames();
+
+    // First look for a hostextension containing this frame name
+    KParts::BrowserHostExtension *ext = KParts::BrowserHostExtension::childObject( view->part() );
+    if ( ext )
+    {
+      ext = ext->findFrameParent(callingPart, name);
+      kDebug() << "BrowserHostExtension found part" << ext;
+      if (!ext)
+         continue; // Don't use this window
+    }
+
+    if ( !viewName.isEmpty() && viewName == name )
+    {
+      kDebug() << "found existing view by name:" << view;
+      hostExtension = 0;
+      if ( part )
+        *part = view->part();
+      return view;
+    }
+
+//    KParts::BrowserHostExtension* ext = KonqView::hostExtension( view->part(), name );
+
+    if ( ext )
+    {
+      const QList<KParts::ReadOnlyPart*> frames = ext->frames();
+      QListIterator<KParts::ReadOnlyPart *> frameIt(frames);
+      while (frameIt.hasNext())
+      {
+        KParts::ReadOnlyPart *item = frameIt.next();
+        if ( item->objectName() == name )
+        {
+          kDebug() << "found a frame of name" << name << ":" << item;
+          hostExtension = ext;
+          if ( part )
+            *part = item;
+          return view;
+        }
+      }
+    }
+  }
+
+  return 0;
+}
+
+int KonqMainWindow::activeViewsNotLockedCount() const
+{
+  int res = 0;
+  MapViews::ConstIterator end = m_mapViews.constEnd();
+  for (MapViews::ConstIterator it = m_mapViews.constBegin(); it != end; ++it ) {
+      if ( !it.value()->isPassiveMode() && !it.value()->isLockedLocation() )
+          ++res;
+  }
+
+  return res;
+}
+
+int KonqMainWindow::linkableViewsCount() const
+{
+    return KonqLinkableViewsCollector::collect(const_cast<KonqMainWindow*>(this)).count();
+}
+
+int KonqMainWindow::mainViewsCount() const
+{
+  int res = 0;
+  MapViews::ConstIterator it = m_mapViews.constBegin();
+  const MapViews::ConstIterator end = m_mapViews.constEnd();
+  for (; it != end; ++it ) {
+    if ( !it.value()->isPassiveMode() && !it.value()->isToggleView() ) {
+      //kDebug() << res << it.value() << it.value()->part()->widget();
+      ++res;
+    }
+  }
+
+  return res;
+}
+
+void KonqMainWindow::slotURLEntered(const QString &text, Qt::KeyboardModifiers modifiers)
+{
+    if (m_bURLEnterLock || text.isEmpty())
+        return;
+
+    m_bURLEnterLock = true;
+
+    if ((modifiers & Qt::ControlModifier) || (modifiers & Qt::AltModifier)) {
+        m_combo->setURL(m_currentView ? m_currentView->url().prettyUrl() : QString());
+        openFilteredUrl(text.trimmed(), true /*inNewTab*/);
+    } else {
+        openFilteredUrl(text.trimmed());
+    }
+
+    m_bURLEnterLock = false;
+}
+
+void KonqMainWindow::slotSplitViewHorizontal()
+{
+    if ( !m_currentView )
+        return;
+    KonqView* oldView = m_currentView;
+    KonqView* newView = m_pViewManager->splitView(m_currentView, Qt::Horizontal);
+    if (newView == 0)
+        return;
+    KonqOpenURLRequest req;
+    req.forceAutoEmbed = true;
+    openView(oldView->serviceType(), oldView->url(), newView, req);
+}
+
+void KonqMainWindow::slotSplitViewVertical()
+{
+    if ( !m_currentView )
+        return;
+    KonqView* oldView = m_currentView;
+    KonqView* newView = m_pViewManager->splitView(m_currentView, Qt::Vertical);
+    if (newView == 0)
+        return;
+    KonqOpenURLRequest req;
+    req.forceAutoEmbed = true;
+    openView(oldView->serviceType(), oldView->url(), newView, req);
+}
+
+void KonqMainWindow::slotAddTab()
+{
+    // we can hardcode text/html because this is what about:blank will use anyway
+    KonqView* newView = m_pViewManager->addTab("text/html",
+                                               QString(),
+                                               false,
+                                               KonqSettings::openAfterCurrentPage());
+    if (!newView)
+      return;
+
+    openUrl( newView, KUrl("about:blank"), QString() );
+
+    //HACK!! QTabBar likes to steal focus when changing widgets.  This can result
+    //in a flicker since we don't want it to get focus we want the combo to get
+    //or keep focus...
+    // TODO: retest, and replace with the smaller hack from KTabWidget::moveTab
+    QWidget *widget = newView->frame() && newView->frame()->part() ?
+                      newView->frame()->part()->widget() : 0;
+    QWidget* origFocusProxy = widget ? widget->focusProxy() : 0;
+    if (widget)
+        widget->setFocusProxy(m_combo);
+
+    m_pViewManager->showTab( newView );
+
+    if (widget)
+        widget->setFocusProxy(origFocusProxy);
+
+    m_workingTab = 0;
+}
+
+void KonqMainWindow::slotDuplicateTab()
+{
+    m_pViewManager->duplicateTab(m_pViewManager->tabContainer()->currentIndex(), KonqSettings::openAfterCurrentPage());
+}
+
+void KonqMainWindow::slotDuplicateTabPopup()
+{
+    m_pViewManager->duplicateTab(m_workingTab, KonqSettings::openAfterCurrentPage());
+}
+
+void KonqMainWindow::slotBreakOffTab()
+{
+    breakOffTab(m_pViewManager->tabContainer()->currentIndex());
+}
+
+void KonqMainWindow::slotBreakOffTabPopup()
+{
+    // Delay the call since it might delete the tabbar
+    QMetaObject::invokeMethod(this, "breakOffTab", Qt::QueuedConnection, Q_ARG(int, m_workingTab));
+}
+
+void KonqMainWindow::breakOffTab(int tabIndex)
+{
+    KonqFrameBase* tab = m_pViewManager->tabContainer()->tabAt(tabIndex);
+    if (!tab)
+        return;
+    const int originalTabIndex = m_pViewManager->tabContainer()->currentIndex();
+    // TODO: Why do we warn about breaking off a modified tab, since it seems to show the unsubmitted form data just fine?
+    if (!KonqModifiedViewsCollector::collect(tab).isEmpty()) {
+        m_pViewManager->showTab(tabIndex);
+        if (KMessageBox::warningContinueCancel(
+                this,
+                i18n("This tab contains changes that have not been submitted.\nDetaching the tab will discard these changes."),
+                i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"tab-detach"), KStandardGuiItem::cancel(), "discardchangesdetach") != KMessageBox::Continue) {
+            m_pViewManager->showTab(originalTabIndex);
+            return;
+        }
+    }
+    m_pViewManager->showTab(originalTabIndex);
+    m_pViewManager->breakOffTab(tabIndex, size());
+    updateViewActions();
+}
+
+void KonqMainWindow::slotPopupNewWindow()
+{
+    KFileItemList::const_iterator it = m_popupItems.constBegin();
+    const KFileItemList::const_iterator end = m_popupItems.constEnd();
+    for ( ; it != end; ++it ) {
+      KonqMisc::createNewWindow((*it).targetUrl(), m_popupUrlArgs, m_popupUrlBrowserArgs);
+    }
+}
+
+void KonqMainWindow::slotPopupThisWindow()
+{
+    openUrl(0, m_popupItems.first().url());
+}
+
+void KonqMainWindow::slotPopupNewTab()
+{
+    bool openAfterCurrentPage = KonqSettings::openAfterCurrentPage();
+    bool newTabsInFront = KonqSettings::newTabsInFront();
+
+    if (QApplication::keyboardModifiers() & Qt::ShiftModifier)
+      newTabsInFront = !newTabsInFront;
+
+    popupNewTab(newTabsInFront, openAfterCurrentPage);
+}
+
+void KonqMainWindow::popupNewTab(bool infront, bool openAfterCurrentPage)
+{
+  KonqOpenURLRequest req;
+  req.newTabInFront = false;
+  req.forceAutoEmbed = true;
+  req.openAfterCurrentPage = openAfterCurrentPage;
+  req.args = m_popupUrlArgs;
+  req.browserArgs = m_popupUrlBrowserArgs;
+  req.browserArgs.setNewTab(true);
+
+  for ( int i = 0; i < m_popupItems.count(); ++i )
+  {
+    if ( infront && i == m_popupItems.count()-1 )
+    {
+      req.newTabInFront = true;
+    }
+    openUrl( 0, m_popupItems[i].targetUrl(), QString(), req );
+  }
+}
+
+void KonqMainWindow::openMultiURL( const KUrl::List& url )
+{
+    KUrl::List::ConstIterator it = url.constBegin();
+    const KUrl::List::ConstIterator end = url.constEnd();
+    for (; it != end; ++it )
+    {
+        KonqView* newView = m_pViewManager->addTab("text/html");
+        Q_ASSERT( newView );
+        if (newView == 0) continue;
+        openUrl( newView, *it, QString() );
+        m_pViewManager->showTab( newView );
+    }
+}
+
+void KonqMainWindow::slotRemoveView()
+{
+    if (m_currentView->isModified()) {
+      if ( KMessageBox::warningContinueCancel( this,
+           i18n("This view contains changes that have not been submitted.\nClosing the view will discard these changes."),
+           i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"view-close"), KStandardGuiItem::cancel(), "discardchangesclose") != KMessageBox::Continue )
+        return;
+    }
+
+    // takes care of choosing the new active view
+    m_pViewManager->removeView(m_currentView);
+}
+
+void KonqMainWindow::slotRemoveTab()
+{
+    removeTab(m_pViewManager->tabContainer()->currentIndex());
+}
+
+void KonqMainWindow::slotRemoveTabPopup()
+{
+    // Can't do immediately - may kill the tabbar, and we're in an event path down from it
+    QMetaObject::invokeMethod(this, "removeTab", Qt::QueuedConnection, Q_ARG(int, m_workingTab));
+}
+
+void KonqMainWindow::removeTab(int tabIndex)
+{
+    KonqFrameBase* tab = m_pViewManager->tabContainer()->tabAt(tabIndex);
+    if (!tab)
+        return;
+    const int originalTabIndex = m_pViewManager->tabContainer()->currentIndex();
+    if (!KonqModifiedViewsCollector::collect(tab).isEmpty()) {
+        m_pViewManager->showTab(tabIndex);
+        if ( KMessageBox::warningContinueCancel(
+                 this,
+                 i18n("This tab contains changes that have not been submitted.\nClosing the tab will discard these changes."),
+                 i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"tab-close"), KStandardGuiItem::cancel(), "discardchangesclose") != KMessageBox::Continue) {
+            m_pViewManager->showTab(originalTabIndex);
+            return;
+        }
+    }
+    m_pViewManager->showTab(originalTabIndex);
+    m_pViewManager->removeTab(tab);
+    updateViewActions();
+}
+
+void KonqMainWindow::slotRemoveOtherTabs()
+{
+    removeOtherTabs(m_pViewManager->tabContainer()->currentIndex());
+}
+
+void KonqMainWindow::slotRemoveOtherTabsPopup()
+{
+    // Can't do immediately - kills the tabbar, and we're in an event path down from it
+    QMetaObject::invokeMethod(this, "removeOtherTabs", Qt::QueuedConnection, Q_ARG(int, m_workingTab));
+}
+
+void KonqMainWindow::removeOtherTabs(int tabToKeep)
+{
+    if (KMessageBox::warningContinueCancel(
+            this,
+            i18n("Do you really want to close all other tabs?"),
+            i18n("Close Other Tabs Confirmation"), KGuiItem(i18n("Close &Other Tabs"),"tab-close-other"),
+            KStandardGuiItem::cancel(), "CloseOtherTabConfirm") != KMessageBox::Continue)
+        return;
+
+    KonqFrameTabs* tabContainer = m_pViewManager->tabContainer();
+    const int originalTabIndex = tabContainer->currentIndex();
+    for (int tabIndex = 0; tabIndex < tabContainer->count(); ++tabIndex) {
+        if (tabIndex == tabToKeep) {
+            continue;
+        }
+        KonqFrameBase* tab = tabContainer->tabAt(tabIndex);
+        if (!KonqModifiedViewsCollector::collect(tab).isEmpty()) {
+            m_pViewManager->showTab(tabIndex);
+            if (KMessageBox::warningContinueCancel(
+                    this,
+                    i18n("This tab contains changes that have not been submitted.\nClosing other tabs will discard these changes."),
+                    i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"tab-close"),
+                    KStandardGuiItem::cancel(), "discardchangescloseother") != KMessageBox::Continue) {
+                m_pViewManager->showTab(originalTabIndex);
+                return;
+            }
+        }
+    }
+    m_pViewManager->showTab(originalTabIndex);
+    m_pViewManager->removeOtherTabs(tabToKeep);
+    updateViewActions();
+}
+
+void KonqMainWindow::slotReloadAllTabs()
+{
+    KonqFrameTabs* tabContainer = m_pViewManager->tabContainer();
+    const int originalTabIndex = tabContainer->currentIndex();
+    for (int tabIndex = 0; tabIndex < tabContainer->count(); ++tabIndex) {
+        KonqFrameBase* tab = tabContainer->tabAt(tabIndex);
+        if (!KonqModifiedViewsCollector::collect(tab).isEmpty()) {
+            m_pViewManager->showTab(tabIndex);
+            if (KMessageBox::warningContinueCancel(this,
+                   i18n("This tab contains changes that have not been submitted.\nReloading all tabs will discard these changes."),
+                    i18n("Discard Changes?"),
+                    KGuiItem(i18n("&Discard Changes"), "view-refresh"),
+                    KStandardGuiItem::cancel(), "discardchangesreload") != KMessageBox::Continue ) {
+                m_pViewManager->showTab(originalTabIndex);
+                return;
+            }
+        }
+    }
+    m_pViewManager->showTab(originalTabIndex);
+    m_pViewManager->reloadAllTabs();
+    updateViewActions();
+}
+
+
+void KonqMainWindow::slotActivateNextTab()
+{
+  m_pViewManager->activateNextTab();
+}
+
+void KonqMainWindow::slotActivatePrevTab()
+{
+  m_pViewManager->activatePrevTab();
+}
+
+void KonqMainWindow::slotActivateTab()
+{
+  m_pViewManager->activateTab( sender()->objectName().right( 2 ).toInt() -1 );
+}
+
+void KonqMainWindow::slotDumpDebugInfo()
+{
+#ifndef NDEBUG
+  dumpViewList();
+  m_pViewManager->printFullHierarchy();
+#endif
+}
+
+bool KonqMainWindow::askForTarget(const KLocalizedString& text, KUrl& url)
+{
+   const KUrl initialUrl = (viewCount()==2) ? otherView(m_currentView)->url() : m_currentView->url();
+   QString label = text.subs( m_currentView->url().pathOrUrl() ).toString();
+   KUrlRequesterDialog dlg(initialUrl.pathOrUrl(), label, this);
+   dlg.setCaption(i18n("Enter Target"));
+   dlg.urlRequester()->setMode( KFile::File | KFile::ExistingOnly | KFile::Directory );
+   if (dlg.exec())
+   {
+      url = dlg.selectedUrl();
+      if ( url.isValid() )
+        return true;
+      else
+      {
+        KMessageBox::error( this, i18n("<qt><b>%1</b> is not valid</qt>", url.url()));
+        return false;
+      }
+   }
+   return false;
+}
+
+void KonqMainWindow::slotRequesterClicked( KUrlRequester *req )
+{
+    req->fileDialog()->setMode(KFile::Directory|KFile::ExistingOnly);
+}
+
+void KonqMainWindow::slotCopyFiles()
+{
+  KUrl dest;
+  if (!askForTarget(ki18n("Copy selected files from %1 to:"), dest))
+     return;
+
+  KonqOperations::copy(this, KonqOperations::COPY, currentURLs(), dest);
+}
+
+void KonqMainWindow::slotMoveFiles()
+{
+  KUrl dest;
+  if (!askForTarget(ki18n("Move selected files from %1 to:"), dest))
+     return;
+
+  KonqOperations::copy(this, KonqOperations::MOVE, currentURLs(), dest);
+}
+
+KUrl::List KonqMainWindow::currentURLs() const
+{
+  KUrl::List urls;
+  if ( m_currentView ) {
+    urls.append( m_currentView->url() );
+    if (!m_currentView->selectedItems().isEmpty()) // Return list of selected items only if we have a selection
+        urls = m_currentView->selectedItems().urlList();
+  }
+  return urls;
+}
+
+// Only valid if there are one or two views
+KonqView * KonqMainWindow::otherView( KonqView * view ) const
+{
+  assert( viewCount() <= 2 );
+  MapViews::ConstIterator it = m_mapViews.constBegin();
+  if ( (*it) == view )
+    ++it;
+  if ( it != m_mapViews.constEnd() )
+    return (*it);
+  return 0;
+}
+
+void KonqMainWindow::slotSaveViewProfile()
+{
+    m_pViewManager->showProfileDlg( m_pViewManager->currentProfile() );
+}
+
+void KonqMainWindow::slotUpAboutToShow()
+{
+    QMenu *popup = m_paUp->menu();
+    popup->clear();
+
+    int i = 0;
+
+    // Use the location bar URL, because in case we display a index.html
+    // we want to go up from the dir, not from the index.html
+    KUrl u(m_currentView->locationBarURL());
+    u = u.upUrl();
+    while (u.hasPath()) {
+        QAction* action = new QAction(KIcon(KonqPixmapProvider::self()->iconNameFor(u)),
+                                      u.pathOrUrl(),
+                                      popup);
+        action->setData(u);
+        popup->addAction(action);
+
+        if (u.path() == "/" || ++i > 10)
+            break;
+
+        u = u.upUrl();
+    }
+}
+
+void KonqMainWindow::slotUp(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
+{
+    m_goMouseState = buttons;
+    m_goKeyboardState = modifiers;
+    QTimer::singleShot( 0, this, SLOT( slotUpDelayed() ) );
+}
+
+void KonqMainWindow::slotUp()
+{
+    m_goMouseState = Qt::LeftButton;
+    m_goKeyboardState = Qt::NoModifier;
+    QTimer::singleShot( 0, this, SLOT( slotUpDelayed() ) );
+}
+
+void KonqMainWindow::slotUpDelayed()
+{
+    KonqOpenURLRequest req;
+    req.browserArgs.setNewTab(true);
+    req.forceAutoEmbed = true;
+
+    req.openAfterCurrentPage = KonqSettings::openAfterCurrentPage();
+    req.newTabInFront = KonqSettings::newTabsInFront();
+
+    if (m_goKeyboardState & Qt::ShiftModifier)
+        req.newTabInFront = !req.newTabInFront;
+
+    const QString& url = m_currentView->upUrl().url();
+    if(m_goKeyboardState & Qt::ControlModifier)
+	openFilteredUrl(url, req );
+    else if(m_goMouseState & Qt::MidButton)
+    {
+        if(KonqSettings::mmbOpensTab())
+	    openFilteredUrl( url, req);
+	else
+	    KonqMisc::createNewWindow( url );
+    }
+    else
+	openFilteredUrl( url, false );
+    m_goMouseState = Qt::LeftButton;
+}
+
+void KonqMainWindow::slotUpActivated(QAction* action)
+{
+    openUrl( 0, action->data().value<KUrl>() );
+}
+
+void KonqMainWindow::slotGoHistoryActivated( int steps )
+{
+    slotGoHistoryActivated( steps, Qt::LeftButton, Qt::NoModifier );
+}
+
+void KonqMainWindow::slotGoHistoryActivated( int steps, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers )
+{
+  if (!m_goBuffer)
+  {
+    // Only start 1 timer.
+    m_goBuffer = steps;
+    m_goMouseState = buttons;
+    m_goKeyboardState = modifiers;
+    QTimer::singleShot( 0, this, SLOT(slotGoHistoryDelayed()));
+  }
+}
+
+void KonqMainWindow::slotGoHistoryDelayed()
+{
+  if (!m_currentView) return;
+
+  bool openAfterCurrentPage = KonqSettings::openAfterCurrentPage();
+  bool mmbOpensTab = KonqSettings::mmbOpensTab();
+  bool inFront = KonqSettings::newTabsInFront();
+  if(m_goKeyboardState & Qt::ShiftModifier)
+      inFront = !inFront;
+
+  if(m_goKeyboardState & Qt::ControlModifier)
+  {
+      KonqView * newView = m_pViewManager->addTabFromHistory( m_currentView, m_goBuffer, openAfterCurrentPage );
+      if (newView && inFront)
+	  m_pViewManager->showTab( newView );
+  }
+  else if(m_goMouseState & Qt::MidButton)
+  {
+      if(mmbOpensTab)
+      {
+	  KonqView * newView = m_pViewManager->addTabFromHistory( m_currentView, m_goBuffer, openAfterCurrentPage );
+	  if (newView && inFront)
+	      m_pViewManager->showTab( newView );
+      }
+      else
+	  KonqMisc::newWindowFromHistory(this->currentView(), m_goBuffer);
+  }
+  else
+  {
+      m_currentView->go( m_goBuffer );
+      makeViewsFollow(m_currentView->url(),
+                      KParts::OpenUrlArguments(),
+                      KParts::BrowserArguments(),
+                      m_currentView->serviceType(),
+                      m_currentView);
+  }
+
+  m_goBuffer = 0;
+  m_goMouseState = Qt::LeftButton;
+  m_goKeyboardState = Qt::NoModifier;
+}
+
+
+void KonqMainWindow::slotBackAboutToShow()
+{
+    m_paBack->menu()->clear();
+    if (m_currentView)
+        KonqActions::fillHistoryPopup(m_currentView->history(), m_currentView->historyIndex(), m_paBack->menu(), true, false);
+}
+
+
+/**
+ * Fill the closed tabs action menu before it's shown
+ */
+void KonqMainWindow::slotClosedItemsListAboutToShow()
+{
+    QMenu* popup = m_paClosedItems->menu();
+    // Clear the menu and fill it with a maximum of s_closedItemsListLength number of urls
+    popup->clear();
+    QAction* clearAction = popup->addAction( i18nc("This menu entry empties the closed items history", "Empty Closed Items History") );
+    connect(clearAction, SIGNAL(triggered()), m_pUndoManager, SLOT(clearClosedItemsList()));
+    popup->insertSeparator(static_cast<QAction*>(0));
+
+    QList<KonqClosedItem *>::ConstIterator it =
+        m_pUndoManager->closedItemsList().constBegin();
+    const QList<KonqClosedItem *>::ConstIterator end =
+        m_pUndoManager->closedItemsList().constEnd();
+    for ( int i = 0; it != end && i < s_closedItemsListLength; ++it, ++i ) {
+        const QString text = QString::number(i) + ' ' + (*it)->title();
+        QAction* action = popup->addAction( (*it)->icon(), text );
+        action->setActionGroup(m_closedItemsGroup);
+        action->setData(i);
+    }
+    KAcceleratorManager::manage(popup);
+}
+
+/**
+ * Fill the sessions list action menu before it's shown
+ */
+void KonqMainWindow::slotSessionsListAboutToShow()
+{
+    QMenu* popup = m_paSessions->menu();
+    // Clear the menu and fill it with a maximum of s_closedItemsListLength number of urls
+    popup->clear();
+    QAction* saveSessionAction = popup->addAction( KIcon("document-save"), i18n("Save As...") );
+    connect(saveSessionAction, SIGNAL(triggered()), this, SLOT(saveCurrentSession()));
+    QAction* manageSessionsAction = popup->addAction( KIcon("view-choose"), i18n("Manage...") );
+    connect(manageSessionsAction, SIGNAL(triggered()), this, SLOT(manageSessions()));
+    popup->insertSeparator(static_cast<QAction*>(0));
+
+    QString dir= KStandardDirs::locateLocal("appdata", "sessions/");
+    QDirIterator it(dir, QDir::Readable|QDir::NoDotAndDotDot|QDir::Dirs);
+
+    while (it.hasNext())
+    {
+        QFileInfo fileInfo(it.next());
+
+        QAction* action = popup->addAction( KIO::decodeFileName(fileInfo.baseName()) );
+        action->setActionGroup(m_sessionsGroup);
+        action->setData(fileInfo.filePath());
+    }
+    KAcceleratorManager::manage(popup);
+}
+
+void KonqMainWindow::saveCurrentSession()
+{
+    KonqNewSessionDlg dlg( this );
+    dlg.exec();
+}
+
+void KonqMainWindow::manageSessions()
+{
+    KonqSessionDlg dlg( m_pViewManager, this );
+    dlg.exec();
+}
+
+void KonqMainWindow::slotSessionActivated(QAction* action)
+{
+    QString dirpath = action->data().toString();
+    KonqSessionManager::self()->restoreSessions(dirpath);
+}
+
+void KonqMainWindow::updateClosedItemsAction()
+{
+    bool available = m_pUndoManager->undoAvailable();
+    m_paClosedItems->setEnabled(available);
+    m_paUndo->setText(m_pUndoManager->undoText());
+}
+
+void KonqMainWindow::slotBack()
+{
+    slotGoHistoryActivated(-1);
+}
+
+void KonqMainWindow::slotBack(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
+{
+    slotGoHistoryActivated( -1, buttons, modifiers );
+}
+
+void KonqMainWindow::slotBackActivated(QAction* action)
+{
+    KMenu* backMenu = static_cast<KMenu *>( m_paBack->menu() );
+    slotGoHistoryActivated( action->data().toInt(), backMenu->mouseButtons(), backMenu->keyboardModifiers());
+}
+
+void KonqMainWindow::slotForwardAboutToShow()
+{
+    m_paForward->menu()->clear();
+    if (m_currentView)
+        KonqActions::fillHistoryPopup(m_currentView->history(), m_currentView->historyIndex(), m_paForward->menu(), false, true);
+}
+
+void KonqMainWindow::slotForward()
+{
+  slotGoHistoryActivated( 1 );
+}
+
+void KonqMainWindow::slotForward(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
+{
+    slotGoHistoryActivated( 1, buttons, modifiers );
+}
+
+void KonqMainWindow::slotForwardActivated(QAction* action)
+{
+    KMenu* forwardMenu = static_cast<KMenu *>( m_paForward->menu() );
+    slotGoHistoryActivated( action->data().toInt(), forwardMenu->mouseButtons(), forwardMenu->keyboardModifiers() );
+}
+
+void KonqMainWindow::checkDisableClearButton()
+{
+  // if the location toolbar already has the clear_location action,
+  // disable the combobox's embedded clear icon.
+  KToolBar* ltb = toolBar("locationToolBar");
+  QAction* clearAction = action("clear_location");
+  bool enable = true;
+  foreach(QToolButton* atb, qFindChildren<QToolButton *>(ltb))
+  {
+     if (atb->defaultAction() == clearAction) {
+         enable = false;
+         break;
+     }
+  }
+  if (KLineEdit* kle = qobject_cast<KLineEdit*>(m_combo->lineEdit()))
+      kle->setClearButtonShown( enable );
+}
+
+void KonqMainWindow::initCombo()
+{
+  m_combo = new KonqCombo(0);
+
+  m_combo->init( s_pCompletion );
+
+  connect( m_combo, SIGNAL(activated(const QString&,Qt::KeyboardModifiers)),
+           this, SLOT(slotURLEntered(const QString&,Qt::KeyboardModifiers)) );
+  connect( m_combo, SIGNAL(showPageSecurity()),
+           this, SLOT(showPageSecurity()) );
+
+  m_pURLCompletion = new KUrlCompletion();
+  m_pURLCompletion->setCompletionMode( s_pCompletion->completionMode() );
+
+  // This only turns completion off. ~ is still there in the result
+  // We do want completion of user names, right?
+  //m_pURLCompletion->setReplaceHome( false );  // Leave ~ alone! Will be taken care of by filters!!
+
+  connect( m_combo, SIGNAL(completionModeChanged(KGlobalSettings::Completion)),
+           SLOT( slotCompletionModeChanged( KGlobalSettings::Completion )));
+  connect( m_combo, SIGNAL( completion( const QString& )),
+           SLOT( slotMakeCompletion( const QString& )));
+  connect( m_combo, SIGNAL( substringCompletion( const QString& )),
+           SLOT( slotSubstringcompletion( const QString& )));
+  connect( m_combo, SIGNAL( textRotation( KCompletionBase::KeyBindingType) ),
+           SLOT( slotRotation( KCompletionBase::KeyBindingType )));
+  connect( m_combo, SIGNAL( cleared() ),
+           SLOT ( slotClearHistory() ) );
+  connect( m_pURLCompletion, SIGNAL( match(const QString&) ),
+           SLOT( slotMatch(const QString&) ));
+
+  m_combo->installEventFilter(this);
+
+  static bool bookmarkCompletionInitialized = false;
+  if ( !bookmarkCompletionInitialized )
+  {
+      bookmarkCompletionInitialized = true;
+      DelayedInitializer *initializer = new DelayedInitializer( QEvent::KeyPress, m_combo );
+      connect( initializer, SIGNAL( initialize() ), this, SLOT( bookmarksIntoCompletion() ) );
+  }
+}
+
+void KonqMainWindow::bookmarksIntoCompletion()
+{
+    // add all bookmarks to the completion list for easy access
+    bookmarksIntoCompletion( s_bookmarkManager->root() );
+}
+
+// the user changed the completion mode in the combo
+void KonqMainWindow::slotCompletionModeChanged( KGlobalSettings::Completion m )
+{
+  s_pCompletion->setCompletionMode( m );
+
+  KonqSettings::setSettingsCompletionMode( int(m_combo->completionMode()) );
+  KonqSettings::self()->writeConfig();
+
+  // tell the other windows too (only this instance currently)
+  foreach ( KonqMainWindow* window, *s_lstViews ) {
+    if ( window && window->m_combo ) {
+      window->m_combo->setCompletionMode( m );
+      window->m_pURLCompletion->setCompletionMode( m );
+    }
+  }
+}
+
+// at first, try to find a completion in the current view, then use the global
+// completion (history)
+void KonqMainWindow::slotMakeCompletion( const QString& text )
+{
+  if( m_pURLCompletion )
+  {
+    m_urlCompletionStarted = true; // flag for slotMatch()
+
+    // kDebug() << "Local Completion object found!";
+    QString completion = m_pURLCompletion->makeCompletion( text );
+    m_currentDir.clear();
+
+    if ( completion.isNull() && !m_pURLCompletion->isRunning() )
+    {
+      // No match() signal will come from m_pURLCompletion
+      // ask the global one
+      // tell the static completion object about the current completion mode
+      completion = s_pCompletion->makeCompletion( text );
+
+      // some special handling necessary for CompletionPopup
+      if ( m_combo->completionMode() == KGlobalSettings::CompletionPopup ||
+           m_combo->completionMode() == KGlobalSettings::CompletionPopupAuto )
+        m_combo->setCompletedItems( historyPopupCompletionItems( text ) );
+
+      else if ( !completion.isNull() )
+        m_combo->setCompletedText( completion );
+    }
+    else
+    {
+      // To be continued in slotMatch()...
+      if( !m_pURLCompletion->dir().isEmpty() )
+        m_currentDir = m_pURLCompletion->dir();
+    }
+  }
+  // kDebug() << "Current dir:" << m_currentDir << "Current text:" << text;
+}
+
+void KonqMainWindow::slotSubstringcompletion( const QString& text )
+{
+    QString currentURL = m_currentView->url().prettyUrl();
+    bool filesFirst = currentURL.startsWith( '/' ) ||
+                      currentURL.startsWith( "file:/" );
+    QStringList items;
+    if ( filesFirst && m_pURLCompletion )
+        items = m_pURLCompletion->substringCompletion( text );
+
+    items += s_pCompletion->substringCompletion( text );
+    if ( !filesFirst && m_pURLCompletion )
+        items += m_pURLCompletion->substringCompletion( text );
+
+    m_combo->setCompletedItems( items );
+}
+
+void KonqMainWindow::slotRotation( KCompletionBase::KeyBindingType type )
+{
+  // Tell slotMatch() to do nothing
+  m_urlCompletionStarted = false;
+
+  bool prev = (type == KCompletionBase::PrevCompletionMatch);
+  if ( prev || type == KCompletionBase::NextCompletionMatch ) {
+    QString completion = prev ? m_pURLCompletion->previousMatch() :
+                                m_pURLCompletion->nextMatch();
+
+    if( completion.isNull() ) { // try the history KCompletion object
+        completion = prev ? s_pCompletion->previousMatch() :
+                            s_pCompletion->nextMatch();
+    }
+    if ( completion.isEmpty() || completion == m_combo->currentText() )
+      return;
+
+    m_combo->setCompletedText( completion );
+  }
+}
+
+// Handle match() from m_pURLCompletion
+void KonqMainWindow::slotMatch( const QString &match )
+{
+  if ( match.isEmpty() ) // this case is handled directly
+    return;
+
+  // Check flag to avoid match() raised by rotation
+  if ( m_urlCompletionStarted ) {
+    m_urlCompletionStarted = false;
+
+    // some special handling necessary for CompletionPopup
+    if ( m_combo->completionMode() == KGlobalSettings::CompletionPopup ||
+         m_combo->completionMode() == KGlobalSettings::CompletionPopupAuto ) {
+      QStringList items = m_pURLCompletion->allMatches();
+      items += historyPopupCompletionItems( m_combo->currentText() );
+      // items.sort(); // should we?
+      m_combo->setCompletedItems( items );
+    }
+    else if ( !match.isNull() )
+       m_combo->setCompletedText( match );
+  }
+}
+
+void KonqMainWindow::slotCtrlTabPressed()
+{
+   KonqView * view = m_pViewManager->chooseNextView( m_currentView );
+   //kDebug() << m_currentView->url() << "->" << view->url();
+   if ( view ) {
+      m_pViewManager->setActivePart( view->part() );
+      KonqFrameTabs* tabs = m_pViewManager->tabContainer();
+      m_pViewManager->showTab(tabs->tabIndexContaining(view->frame()));
+   }
+}
+
+void KonqMainWindow::slotClearHistory()
+{
+   KonqHistoryManager::kself()->emitClear();
+}
+
+void KonqMainWindow::slotClearComboHistory()
+{
+   if (m_combo && m_combo->count())
+      m_combo->clearHistory();
+}
+
+bool KonqMainWindow::eventFilter(QObject*obj, QEvent *ev)
+{
+  if ( ( ev->type()==QEvent::FocusIn || ev->type()==QEvent::FocusOut ) &&
+       m_combo && m_combo->lineEdit() && m_combo == obj )
+  {
+    //kDebug() << obj << obj->metaObject()->className() << obj->name();
+
+    QFocusEvent * focusEv = static_cast<QFocusEvent*>(ev);
+    if (focusEv->reason() == Qt::PopupFocusReason)
+    {
+      return KParts::MainWindow::eventFilter( obj, ev );
+    }
+
+    KParts::BrowserExtension * ext = 0;
+    if ( m_currentView )
+        ext = m_currentView->browserExtension();
+
+    const QMetaObject* slotMetaObject = 0;
+    if (ext)
+      slotMetaObject = ext->metaObject();
+
+    if (ev->type()==QEvent::FocusIn)
+    {
+      //kDebug() << "ComboBox got the focus...";
+      if (m_bLocationBarConnected)
+      {
+        //kDebug() << "Was already connected...";
+        return KParts::MainWindow::eventFilter( obj, ev );
+      }
+      m_bLocationBarConnected = true;
+
+      // Workaround for Qt issue: usually, QLineEdit reacts on Ctrl-D,
+      // but the duplicatecurrenttab action also has Ctrl-D as accel and
+      // prevents the lineedit from getting this event. IMHO the accel
+      // should be disabled in favor of the focus-widget.
+      // TODO: decide if the delete-character behaviour of QLineEdit
+      // really is useful enough to warrant this workaround
+      QAction *duplicate = actionCollection()->action("duplicatecurrenttab");
+      if ( duplicate->shortcuts().contains( QKeySequence(Qt::CTRL+Qt::Key_D) ))
+          duplicate->setEnabled( false );
+
+      connect( m_paCut, SIGNAL( triggered() ), m_combo->lineEdit(), SLOT( cut() ) );
+      connect( m_paCopy, SIGNAL( triggered() ), m_combo->lineEdit(), SLOT( copy() ) );
+      connect( m_paPaste, SIGNAL( triggered() ), m_combo->lineEdit(), SLOT( paste() ) );
+      connect( QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(slotClipboardDataChanged()) );
+      connect( m_combo->lineEdit(), SIGNAL(textChanged(const QString &)), this, SLOT(slotCheckComboSelection()) );
+      connect( m_combo->lineEdit(), SIGNAL(selectionChanged()), this, SLOT(slotCheckComboSelection()) );
+
+      slotClipboardDataChanged();
+    }
+    else if ( ev->type()==QEvent::FocusOut)
+    {
+      //kDebug() << "ComboBox lost focus...";
+      if (!m_bLocationBarConnected)
+      {
+        //kDebug() << "Was already disconnected...";
+        return KParts::MainWindow::eventFilter( obj, ev );
+      }
+      m_bLocationBarConnected = false;
+
+      // see above in FocusIn for explanation
+      // action is reenabled if a view exists
+      QAction *duplicate = actionCollection()->action("duplicatecurrenttab");
+      if ( duplicate->shortcuts().contains( QKeySequence(Qt::CTRL+Qt::Key_D) ) )
+          duplicate->setEnabled( currentView() && currentView()->frame() );
+
+      disconnect( m_paCut, SIGNAL( triggered() ), m_combo->lineEdit(), SLOT( cut() ) );
+      disconnect( m_paCopy, SIGNAL( triggered() ), m_combo->lineEdit(), SLOT( copy() ) );
+      disconnect( m_paPaste, SIGNAL( triggered() ), m_combo->lineEdit(), SLOT( paste() ) );
+      disconnect( QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(slotClipboardDataChanged()) );
+      disconnect( m_combo->lineEdit(), SIGNAL(textChanged(const QString &)), this, SLOT(slotCheckComboSelection()) );
+      disconnect( m_combo->lineEdit(), SIGNAL(selectionChanged()), this, SLOT(slotCheckComboSelection()) );
+
+      if ( ext )
+      {
+          m_paCut->setEnabled( ext->isActionEnabled( "cut" ) );
+          m_paCopy->setEnabled( ext->isActionEnabled( "copy" ) );
+          m_paPaste->setEnabled( ext->isActionEnabled( "paste" ) );
+      }
+      else
+      {
+          m_paCut->setEnabled( false );
+          m_paCopy->setEnabled( false );
+          m_paPaste->setEnabled( false );
+      }
+    }
+  } else if (ev->type()==QEvent::KeyPress) {
+      QKeyEvent * keyEv = static_cast<QKeyEvent*>(ev);
+      if ((keyEv->key() == Qt::Key_Tab) && (keyEv->modifiers() == Qt::ControlModifier)) {
+          slotCtrlTabPressed();
+          return true; // don't let QTabWidget see the event
+      }
+  }
+  return KParts::MainWindow::eventFilter( obj, ev );
+}
+
+// Only called when m_bLocationBarConnected, i.e. when the combobox has focus.
+// The rest of the time, the part handles the cut/copy/paste actions.
+void KonqMainWindow::slotClipboardDataChanged()
+{
+  const QMimeData *data = QApplication::clipboard()->mimeData();
+  m_paPaste->setEnabled( data->hasText() );
+  slotCheckComboSelection();
+}
+
+void KonqMainWindow::slotCheckComboSelection()
+{
+  bool hasSelection = m_combo->lineEdit()->hasSelectedText();
+  //kDebug() << "m_combo->lineEdit()->hasMarkedText():" << hasSelection;
+  m_paCopy->setEnabled( hasSelection );
+  m_paCut->setEnabled( hasSelection );
+}
+
+void KonqMainWindow::slotClearLocationBar()
+{
+    slotStop();
+    m_combo->clearTemporary();
+    focusLocationBar();
+}
+
+void KonqMainWindow::slotForceSaveMainWindowSettings()
+{
+    if ( autoSaveSettings() ) { // don't do it on e.g. JS window.open windows with no toolbars!
+        saveAutoSaveSettings();
+    }
+}
+
+void KonqMainWindow::slotShowMenuBar()
+{
+  menuBar()->setVisible(!menuBar()->isVisible());
+  slotForceSaveMainWindowSettings();
+}
+
+void KonqMainWindow::slotUpdateFullScreen( bool set )
+{
+  KToggleFullScreenAction::setFullScreen( this, set );
+  if( set )
+  {
+    // Create toolbar button for exiting from full-screen mode
+    // ...but only if there isn't one already...
+
+    bool haveFullScreenButton = false;
+
+    //Walk over the toolbars and check whether there is a show fullscreen button in any of them
+    foreach (KToolBar* bar, findChildren<KToolBar*>())
+    {
+        //Are we plugged here, in a visible toolbar?
+        if (bar->isVisible() &&
+            action( "fullscreen" )->associatedWidgets().contains(bar))
+        {
+            haveFullScreenButton = true;
+            break;
+        }
+    }
+
+    if (!haveFullScreenButton)
+    {
+        QList<QAction*> lst;
+        lst.append( m_ptaFullScreen );
+        plugActionList( "fullscreen", lst );
+    }
+
+
+    m_prevMenuBarVisible = menuBar()->isVisible();
+    menuBar()->hide();
+    m_paShowMenuBar->setChecked( false );
+
+    // Qt bug, the flags are lost. They know about it.
+    // happens only with the hackish non-_NET_WM_STATE_FULLSCREEN way
+    setAttribute( Qt::WA_DeleteOnClose );
+    // Qt bug (see below)
+//### KDE4: still relevant?
+#if 0
+    setAcceptDrops( false );
+    topData()->dnd = 0;
+    setAcceptDrops( true );
+#endif
+  }
+  else
+  {
+    unplugActionList( "fullscreen" );
+
+    if (m_prevMenuBarVisible)
+    {
+        menuBar()->show();
+        m_paShowMenuBar->setChecked( true );
+    }
+
+    // Qt bug, the flags aren't restored. They know about it.
+    //setWFlags( WType_TopLevel | WDestructiveClose );
+#ifdef __GNUC__
+#warning "Dunno how to port this, is the workaround still needed?"
+#endif
+//                (  Qt::Window );
+    setAttribute( Qt::WA_DeleteOnClose );
+
+#if 0 //### KDE4: is this still relevant?
+    // Other Qt bug
+    setAcceptDrops( false );
+    topData()->dnd = 0;
+    setAcceptDrops( true );
+#endif
+  }
+}
+
+void KonqMainWindow::setLocationBarURL( const KUrl &url )
+{
+    setLocationBarURL( url.pathOrUrl() );
+}
+
+void KonqMainWindow::setLocationBarURL( const QString &url )
+{
+    // Don't set the location bar URL if it hasn't changed
+    // or if the user had time to edit the url since the last call to openUrl (#64868)
+    if (url != m_combo->lineEdit()->text() && !m_combo->lineEdit()->isModified()) {
+        //kDebug() << "url=" << url;
+        m_combo->setURL( url );
+        updateWindowIcon();
+    }
+}
+
+void KonqMainWindow::setPageSecurity( PageSecurity pageSecurity )
+{
+  m_combo->setPageSecurity( pageSecurity );
+}
+
+void KonqMainWindow::showPageSecurity()
+{
+    if ( m_currentView && m_currentView->part() ) {
+      QAction *act = m_currentView->part()->action( "security" );
+      if ( act )
+        act->trigger();
+    }
+}
+
+// Called via DBUS from KonquerorApplication
+void KonqMainWindow::comboAction( int action, const QString& url, const QString& senderId )
+{
+    if (!s_lstViews) // this happens in "konqueror --silent"
+        return;
+
+    KonqCombo *combo = 0;
+    foreach ( KonqMainWindow* window, *s_lstViews ) {
+        if ( window && window->m_combo ) {
+            combo = window->m_combo;
+
+            switch ( action ) {
+            case ComboAdd:
+              combo->insertPermanent( url );
+              break;
+            case ComboClear:
+              combo->clearHistory();
+              break;
+            case ComboRemove:
+              combo->removeURL( url );
+              break;
+            default:
+              break;
+            }
+        }
+    }
+
+    // only one instance should save...
+    if ( combo && senderId == QDBusConnection::sessionBus().baseService() )
+      combo->saveItems();
+}
+
+QString KonqMainWindow::locationBarURL() const
+{
+    return m_combo->currentText();
+}
+
+void KonqMainWindow::focusLocationBar()
+{
+  if ( m_combo->isVisible() || !isVisible() )
+    m_combo->setFocus();
+}
+
+void KonqMainWindow::startAnimation()
+{
+  m_paAnimatedLogo->start();
+  m_paStop->setEnabled( true );
+}
+
+void KonqMainWindow::stopAnimation()
+{
+  m_paAnimatedLogo->stop();
+  m_paStop->setEnabled( false );
+}
+
+void KonqMainWindow::setUpEnabled( const KUrl &url )
+{
+      bool bHasUpURL = ( (url.hasPath() && url.path() != "/" && url.path()[0] == '/')
+                         || !url.query().isEmpty() /*e.g. lists.kde.org*/ );
+      if ( !bHasUpURL )
+          bHasUpURL = url.hasSubUrl();
+
+      m_paUp->setEnabled(bHasUpURL);
+}
+
+void KonqMainWindow::initActions()
+{
+  // Note about this method : don't call setEnabled() on any of the actions.
+  // They are all disabled then re-enabled with enableAllActions
+  // If any one needs to be initially disabled, put that code in enableAllActions
+
+  // For the popup menu only.
+  m_pMenuNew = new KNewFileMenu(actionCollection(), "new_menu", this);
+
+  // File menu
+
+  KAction* action = actionCollection()->addAction("new_window");
+  action->setIcon(KIcon("window-new"));
+  action->setText(i18n( "New &Window" ));
+  connect(action, SIGNAL(triggered()), SLOT( slotNewWindow() ));
+  action->setShortcuts(KStandardShortcut::shortcut(KStandardShortcut::New));
+  action = actionCollection()->addAction("duplicate_window");
+  action->setIcon(KIcon("window-duplicate"));
+  action->setText(i18n( "&Duplicate Window" ));
+  connect(action, SIGNAL(triggered()), SLOT( slotDuplicateWindow() ));
+  action->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_D);
+  action = actionCollection()->addAction("sendURL");
+  action->setIcon(KIcon("mail-message-new"));
+  action->setText(i18n( "Send &Link Address..." ));
+  connect(action, SIGNAL(triggered()), SLOT( slotSendURL() ));
+  action = actionCollection()->addAction("sendPage");
+  action->setIcon(KIcon("mail-message-new"));
+  action->setText(i18n( "S&end File..." ));
+  connect(action, SIGNAL(triggered()), SLOT( slotSendFile() ));
+  action = actionCollection()->addAction("open_location");
+  action->setIcon(KIcon("document-open-remote"));
+  action->setText(i18n( "&Open Location" ));
+  action->setShortcut(Qt::ALT+Qt::Key_O);
+  connect(action, SIGNAL(triggered()), SLOT( slotOpenLocation() ));
+
+  action = actionCollection()->addAction("open_file");
+  action->setIcon(KIcon("document-open"));
+  action->setText(i18n( "&Open File..." ));
+  connect(action, SIGNAL(triggered()), SLOT( slotOpenFile() ));
+  action->setShortcuts(KStandardShortcut::shortcut(KStandardShortcut::Open));
+
+#if 0
+  m_paFindFiles = new KToggleAction(KIcon("edit-find"), i18n( "&Find File..." ), this);
+  actionCollection()->addAction( "findfile", m_paFindFiles );
+  connect(m_paFindFiles, SIGNAL(triggered() ), SLOT( slotToolFind() ));
+  m_paFindFiles->setShortcuts(KStandardShortcut::shortcut(KStandardShortcut::Find));
+#endif
+
+  m_paPrint = actionCollection()->addAction( KStandardAction::Print, "print", 0, 0 );
+  actionCollection()->addAction( KStandardAction::Quit, "quit", this, SLOT( close() ) );
+
+  m_ptaUseHTML = new KToggleAction( i18n( "&Use index.html" ), this );
+  actionCollection()->addAction( "usehtml", m_ptaUseHTML );
+  connect(m_ptaUseHTML, SIGNAL(triggered() ), SLOT( slotShowHTML() ));
+  m_paLockView = new KToggleAction( i18n( "Lock to Current Location"), this );
+  actionCollection()->addAction( "lock", m_paLockView );
+  connect(m_paLockView, SIGNAL(triggered() ), SLOT( slotLockView() ));
+  m_paLinkView = new KToggleAction( i18nc( "This option links konqueror views", "Lin&k View"), this );
+  actionCollection()->addAction( "link", m_paLinkView );
+  connect(m_paLinkView, SIGNAL(triggered() ), SLOT( slotLinkView() ));
+
+  // Go menu
+  m_paUp = new KToolBarPopupAction( KIcon("go-up"), i18n( "&Up" ), this );
+  actionCollection()->addAction( "go_up", m_paUp );
+  m_paUp->setShortcuts( KStandardShortcut::shortcut(KStandardShortcut::Up) );
+  connect( m_paUp, SIGNAL( triggered( Qt::MouseButtons, Qt::KeyboardModifiers) ), this,
+	   SLOT( slotUp(Qt::MouseButtons, Qt::KeyboardModifiers) ) );
+  connect( m_paUp->menu(), SIGNAL( aboutToShow() ), this, SLOT( slotUpAboutToShow() ) );
+  connect( m_paUp->menu(), SIGNAL(triggered(QAction *)), this, SLOT(slotUpActivated(QAction*)) );
+
+  QPair< KGuiItem, KGuiItem > backForward = KStandardGuiItem::backAndForward();
+
+
+  // Trash bin of closed tabs
+  m_paClosedItems = new KToolBarPopupAction( KIcon("edit-undo-closed-tabs"),  i18n( "Closed Items" ), this );
+  actionCollection()->addAction( "closeditems", m_paClosedItems );
+  m_closedItemsGroup = new QActionGroup(m_paClosedItems->menu());
+
+  // set the closed tabs list shown
+  connect( m_paClosedItems, SIGNAL(triggered()), m_pUndoManager, SLOT(undoLastClosedItem()) );
+  connect( m_paClosedItems->menu(), SIGNAL(aboutToShow()), this, SLOT(slotClosedItemsListAboutToShow()) );
+  connect( m_closedItemsGroup, SIGNAL(triggered(QAction*)), m_pUndoManager, SLOT(slotClosedItemsActivated(QAction*)) );
+  connect( m_pViewManager, SIGNAL(aboutToRemoveTab(KonqFrameBase*)), this, SLOT(slotAddClosedUrl(KonqFrameBase*)) );
+  connect( m_pUndoManager, SIGNAL(openClosedTab(const KonqClosedTabItem&)), m_pViewManager, SLOT(openClosedTab(const KonqClosedTabItem&)) );
+  connect( m_pUndoManager, SIGNAL(openClosedWindow(const KonqClosedWindowItem&)), m_pViewManager, SLOT(openClosedWindow(const KonqClosedWindowItem&)) );
+  connect( m_pUndoManager, SIGNAL(closedItemsListChanged()), this, SLOT(updateClosedItemsAction()));
+
+
+  m_paSessions = new KActionMenu( i18n( "Sessions" ), this );
+  actionCollection()->addAction( "sessions", m_paSessions );
+  m_sessionsGroup = new QActionGroup(m_paSessions->menu());
+  connect( m_paSessions->menu(), SIGNAL(aboutToShow()), this, SLOT(slotSessionsListAboutToShow()) );
+  connect( m_sessionsGroup, SIGNAL(triggered(QAction*)), this, SLOT(slotSessionActivated(QAction*)) );
+
+  m_paBack = new KToolBarPopupAction( KIcon(backForward.first.iconName()), backForward.first.text(), this );
+  actionCollection()->addAction( "go_back", m_paBack );
+  m_paBack->setShortcuts( KStandardShortcut::shortcut(KStandardShortcut::Back) );
+  connect( m_paBack, SIGNAL( triggered( Qt::MouseButtons, Qt::KeyboardModifiers) ), this,
+	   SLOT( slotBack(Qt::MouseButtons, Qt::KeyboardModifiers) ) );
+  connect( m_paBack->menu(), SIGNAL( aboutToShow() ), this, SLOT( slotBackAboutToShow() ) );
+  connect( m_paBack->menu(), SIGNAL(triggered(QAction*)), this, SLOT(slotBackActivated(QAction *)) );
+
+  m_paForward = new KToolBarPopupAction( KIcon(backForward.second.iconName()), backForward.second.text(), this );
+  actionCollection()->addAction( "go_forward", m_paForward );
+  m_paForward->setShortcuts( KStandardShortcut::shortcut(KStandardShortcut::Forward) );
+  connect( m_paForward, SIGNAL( triggered( Qt::MouseButtons, Qt::KeyboardModifiers) ), this,
+	   SLOT( slotForward(Qt::MouseButtons, Qt::KeyboardModifiers) ) );
+  connect( m_paForward->menu(), SIGNAL( aboutToShow() ), this, SLOT( slotForwardAboutToShow() ) );
+  connect( m_paForward->menu(), SIGNAL(triggered(QAction*)), this, SLOT(slotForwardActivated(QAction *)) );
+
+  m_paHome = actionCollection()->addAction( KStandardAction::Home );
+  connect( m_paHome, SIGNAL( triggered( Qt::MouseButtons, Qt::KeyboardModifiers) ), this,
+	   SLOT( slotHome(Qt::MouseButtons, Qt::KeyboardModifiers) ) );
+  m_paHomePopup = new KToolBarPopupAction ( KIcon("go-home"), i18n("Home"), this );
+  actionCollection()->addAction( "go_home_popup", m_paHomePopup );
+  connect( m_paHomePopup, SIGNAL( triggered( Qt::MouseButtons, Qt::KeyboardModifiers) ), this,
+           SLOT( slotHome(Qt::MouseButtons, Qt::KeyboardModifiers) ) );
+  connect( m_paHomePopup->menu(), SIGNAL(triggered(QAction*)), this, SLOT(slotHomePopupActivated(QAction*)) );
+
+  KonqMostOftenURLSAction *mostOften = new KonqMostOftenURLSAction( i18nc("@action:inmenu Go", "Most Often Visited"), this );
+  actionCollection()->addAction( "go_most_often", mostOften );
+  connect(mostOften, SIGNAL(activated(KUrl)), SLOT(slotOpenURL(KUrl)));
+
+  action = new KonqHistoryAction(i18nc("@action:inmenu Go", "Recently Visited"), this);
+  actionCollection()->addAction("history", action);
+  connect(action, SIGNAL(activated(KUrl)), SLOT(slotOpenURL(KUrl)));
+
+  action = actionCollection()->addAction("go_history");
+  action->setIcon(KIcon("view-history"));
+  // Ctrl+Shift+H, shortcut from firefox
+  // TODO: and Ctrl+H should open the sidebar history module
+  action->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_H);
+  action->setText(i18nc("@action:inmenu Go", "Show History"));
+  connect(action, SIGNAL(triggered()), SLOT(slotGoHistory()));
+
+  // Settings menu
+
+  m_paSaveViewProfile = actionCollection()->addAction( "saveviewprofile" );
+  m_paSaveViewProfile->setText( i18n( "&Save View Profile As..." ) );
+  connect(m_paSaveViewProfile, SIGNAL(triggered() ), SLOT( slotSaveViewProfile() ));
+
+  // This list is just for the call to authorizeControlModule; see slotConfigure for the real code
+  QStringList configureModules;
+  configureModules << "khtml_general" << "bookmarks" <<
+      "filebehavior" << "filetypes" << "kcmtrash" <<
+      "khtml_appearance" << "khtml_behavior" << "khtml_java_js" <<
+      "khtml_filter" << "ebrowsing" <<
+      "kcmhistory" << "cookies" <<
+      "cache" << "proxy" <<
+      "crypto" << "useragent" <<
+      "khtml_plugins" << "kcmkonqyperformance";
+
+  if (!KAuthorized::authorizeControlModules(configureModules).isEmpty())
+      actionCollection()->addAction( KStandardAction::Preferences, this, SLOT(slotConfigure()) );
+
+  actionCollection()->addAction( KStandardAction::KeyBindings, guiFactory(), SLOT( configureShortcuts() ) );
+  actionCollection()->addAction( KStandardAction::ConfigureToolbars, this, SLOT( slotConfigureToolbars() ) );
+
+  m_paConfigureExtensions = actionCollection()->addAction("options_configure_extensions");
+  m_paConfigureExtensions->setText( i18n("Configure Extensions...") );
+  connect(m_paConfigureExtensions, SIGNAL(triggered() ), SLOT( slotConfigureExtensions()));
+  m_paConfigureSpellChecking = actionCollection()->addAction("configurespellcheck");
+  m_paConfigureSpellChecking->setIcon(KIcon("tools-check-spelling"));
+  m_paConfigureSpellChecking->setText(i18n("Configure Spell Checking..."));
+  connect(m_paConfigureSpellChecking, SIGNAL(triggered()), SLOT( slotConfigureSpellChecking()));
+
+  // Window menu
+  m_paSplitViewHor = actionCollection()->addAction("splitviewh");
+  m_paSplitViewHor->setIcon( KIcon("view-split-left-right") );
+  m_paSplitViewHor->setText( i18n( "Split View &Left/Right" ) );
+  connect(m_paSplitViewHor, SIGNAL(triggered()), SLOT( slotSplitViewHorizontal() ));
+  m_paSplitViewHor->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_L);
+  m_paSplitViewVer = actionCollection()->addAction("splitviewv");
+  m_paSplitViewVer->setIcon( KIcon("view-split-top-bottom") );
+  m_paSplitViewVer->setText( i18n( "Split View &Top/Bottom" ) );
+  connect(m_paSplitViewVer, SIGNAL(triggered()), SLOT( slotSplitViewVertical() ));
+  m_paSplitViewVer->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_T);
+  m_paAddTab = actionCollection()->addAction("newtab");
+  m_paAddTab->setIcon( KIcon("tab-new") );
+  m_paAddTab->setText( i18n( "&New Tab" ) );
+  connect(m_paAddTab, SIGNAL(triggered()), SLOT( slotAddTab() ));
+  m_paAddTab->setShortcuts(KShortcut(Qt::CTRL+Qt::Key_T, Qt::CTRL+Qt::SHIFT+Qt::Key_N));
+
+  m_paDuplicateTab = actionCollection()->addAction("duplicatecurrenttab");
+  m_paDuplicateTab->setIcon( KIcon("tab-duplicate") );
+  m_paDuplicateTab->setText( i18n( "&Duplicate Current Tab" ) );
+  connect(m_paDuplicateTab, SIGNAL(triggered()), SLOT( slotDuplicateTab() ));
+  m_paDuplicateTab->setShortcut(Qt::CTRL+Qt::Key_D);
+  m_paBreakOffTab = actionCollection()->addAction("breakoffcurrenttab");
+  m_paBreakOffTab->setIcon( KIcon("tab-detach") );
+  m_paBreakOffTab->setText( i18n( "Detach Current Tab" ) );
+  connect(m_paBreakOffTab, SIGNAL(triggered()), SLOT( slotBreakOffTab() ));
+  m_paBreakOffTab->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_B);
+  m_paRemoveView = actionCollection()->addAction("removeview");
+  m_paRemoveView->setIcon( KIcon("view-close") );
+  m_paRemoveView->setText( i18n( "&Close Active View" ) );
+  connect(m_paRemoveView, SIGNAL(triggered()), SLOT( slotRemoveView() ));
+  m_paRemoveView->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_W);
+  m_paRemoveTab = actionCollection()->addAction("removecurrenttab");
+  m_paRemoveTab->setIcon( KIcon("tab-close") );
+  m_paRemoveTab->setText( i18n( "Close Current Tab" ) );
+  connect(m_paRemoveTab, SIGNAL(triggered()), SLOT(slotRemoveTab()), Qt::QueuedConnection /* exit Ctrl+W handler before deleting */);
+  m_paRemoveTab->setShortcut(Qt::CTRL+Qt::Key_W);
+  m_paRemoveTab->setAutoRepeat(false);
+  m_paRemoveOtherTabs = actionCollection()->addAction("removeothertabs");
+  m_paRemoveOtherTabs->setIcon( KIcon("tab-close-other") );
+  m_paRemoveOtherTabs->setText( i18n( "Close &Other Tabs" ) );
+  connect(m_paRemoveOtherTabs, SIGNAL(triggered()), SLOT( slotRemoveOtherTabs() ));
+
+  m_paActivateNextTab = actionCollection()->addAction("activatenexttab");
+  m_paActivateNextTab->setText( i18n( "Activate Next Tab" ) );
+  connect(m_paActivateNextTab, SIGNAL(triggered()), SLOT( slotActivateNextTab() ));
+  m_paActivateNextTab->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabPrev() : KStandardShortcut::tabNext());
+  m_paActivatePrevTab = actionCollection()->addAction("activateprevtab");
+  m_paActivatePrevTab->setText( i18n( "Activate Previous Tab" ) );
+  connect(m_paActivatePrevTab, SIGNAL(triggered()), SLOT( slotActivatePrevTab() ));
+  m_paActivatePrevTab->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabNext() : KStandardShortcut::tabPrev());
+
+  QString actionname;
+  for (int i=1;i<13;i++) {
+    actionname.sprintf("activate_tab_%02d", i);
+    QAction *action = actionCollection()->addAction( actionname );
+    action->setText( i18n("Activate Tab %1", i) );
+    connect(action, SIGNAL(triggered()), SLOT(slotActivateTab()));
+  }
+
+  m_paMoveTabLeft = actionCollection()->addAction("tab_move_left");
+  m_paMoveTabLeft->setText( i18n("Move Tab Left") );
+  m_paMoveTabLeft->setIcon( KIcon("arrow-left") );
+  connect(m_paMoveTabLeft, SIGNAL(triggered()), SLOT( slotMoveTabLeft()));
+  m_paMoveTabLeft->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_Left);
+  m_paMoveTabRight = actionCollection()->addAction("tab_move_right");
+  m_paMoveTabRight->setText( i18n("Move Tab Right") );
+  m_paMoveTabRight->setIcon( KIcon("arrow-right") );
+  connect(m_paMoveTabRight, SIGNAL(triggered()), SLOT( slotMoveTabRight()));
+  m_paMoveTabRight->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_Right);
+
+#ifndef NDEBUG
+  action = actionCollection()->addAction("dumpdebuginfo");
+  action->setIcon( KIcon("view-dump-debug-info") );
+  action->setText( i18n( "Dump Debug Info" ) );
+  connect(action, SIGNAL(triggered()), SLOT( slotDumpDebugInfo() ));
+#endif
+
+  m_paSaveRemoveViewProfile = actionCollection()->addAction("saveremoveviewprofile" );
+  m_paSaveRemoveViewProfile->setText( i18n( "C&onfigure View Profiles..." ) );
+  connect(m_paSaveRemoveViewProfile, SIGNAL(triggered() ), m_pViewManager, SLOT( slotProfileDlg() ));
+  m_pamLoadViewProfile = new KActionMenu( i18n( "Load &View Profile" ), this );
+  actionCollection()->addAction( "loadviewprofile", m_pamLoadViewProfile );
+
+  m_pViewManager->setProfiles( m_pamLoadViewProfile );
+
+  m_ptaFullScreen = KStandardAction::fullScreen( 0, 0, this, this );
+  actionCollection()->addAction( m_ptaFullScreen->objectName(), m_ptaFullScreen );
+  KShortcut fullScreenShortcut = m_ptaFullScreen->shortcut();
+  fullScreenShortcut.setAlternate( Qt::Key_F11 );
+  m_ptaFullScreen->setShortcut( fullScreenShortcut );
+  connect( m_ptaFullScreen, SIGNAL( toggled( bool )), this, SLOT( slotUpdateFullScreen( bool )));
+
+  KShortcut reloadShortcut = KStandardShortcut::shortcut(KStandardShortcut::Reload);
+  reloadShortcut.setAlternate(Qt::CTRL + Qt::Key_R);
+  m_paReload = actionCollection()->addAction("reload");
+  m_paReload->setIcon( KIcon("view-refresh") );
+  m_paReload->setText( i18n( "&Reload" ) );
+  connect(m_paReload, SIGNAL(triggered()), SLOT( slotReload() ));
+  m_paReload->setShortcuts(reloadShortcut);
+  m_paReloadAllTabs = actionCollection()->addAction("reload_all_tabs");
+  m_paReloadAllTabs->setIcon( KIcon("view-refresh-all") );
+  m_paReloadAllTabs->setText( i18n( "&Reload All Tabs" ) );
+  connect(m_paReloadAllTabs, SIGNAL(triggered()), SLOT( slotReloadAllTabs() ));
+  m_paReloadAllTabs->setShortcut(Qt::SHIFT+Qt::Key_F5);
+  // "Forced"/ "Hard" reload action - re-downloads all e.g. images even if a cached
+  // version already exists.
+  m_paForceReload = actionCollection()->addAction("hard_reload");
+  // TODO - request new icon? (view-refresh will do for the time being)
+  m_paForceReload->setIcon( KIcon("view-refresh") );
+  m_paForceReload->setText( i18n( "&Force Reload" ) );
+  connect(m_paForceReload, SIGNAL(triggered()), SLOT( slotForceReload()));
+  m_paForceReload->setShortcuts(KShortcut(Qt::CTRL+Qt::Key_F5, Qt::CTRL+Qt::SHIFT+Qt::Key_R));
+
+  m_paUndo = KStandardAction::undo( m_pUndoManager, SLOT( undo() ), this );
+  actionCollection()->addAction( "undo", m_paUndo );
+  connect( m_pUndoManager, SIGNAL( undoTextChanged(QString) ),
+           this, SLOT( slotUndoTextChanged(QString) ) );
+
+  // Those are connected to the browserextension directly
+  m_paCut = KStandardAction::cut( 0, 0, this );
+  actionCollection()->addAction( "cut", m_paCut );
+  KShortcut cutShortCut( m_paCut->shortcut() );
+  cutShortCut.remove( Qt::SHIFT + Qt::Key_Delete ); // used for deleting files
+  m_paCut->setShortcuts( cutShortCut );
+
+  m_paCopy = KStandardAction::copy( 0, 0, this );
+  actionCollection()->addAction( "copy", m_paCopy );
+  m_paPaste = KStandardAction::paste( 0, 0, this );
+  actionCollection()->addAction( "paste", m_paPaste );
+  m_paStop = actionCollection()->addAction("stop");
+  m_paStop->setIcon( KIcon("process-stop") );
+  m_paStop->setText( i18n( "&Stop" ) );
+  connect(m_paStop, SIGNAL(triggered()), SLOT( slotStop() ));
+  m_paStop->setShortcut(Qt::Key_Escape);
+
+  m_paAnimatedLogo = new KonqAnimatedLogo;
+  m_paAnimatedLogo->setIcons("process-working-kde");
+  KAction *logoAction = new KAction( this );
+  actionCollection()->addAction( "konq_logo", logoAction );
+  logoAction->setDefaultWidget( m_paAnimatedLogo );
+  // Set icon and text so that it's easier to figure out what the action is in the toolbar editor
+  logoAction->setText( i18n("Throbber") );
+  logoAction->setIcon( KIcon("kde") );
+
+  // Location bar
+  m_locationLabel = new KonqDraggableLabel( this, i18n("L&ocation: ") );
+  KAction *locationAction = new KAction( this );
+  actionCollection()->addAction( "location_label", locationAction );
+  locationAction->setText( i18n("L&ocation: ") );
+  connect(locationAction, SIGNAL(triggered()), SLOT( slotLocationLabelActivated() ));
+  locationAction->setDefaultWidget(m_locationLabel);
+  m_locationLabel->setBuddy( m_combo );
+
+  KAction *comboAction = new KAction( this );
+  actionCollection()->addAction( "toolbar_url_combo", comboAction );
+  comboAction->setText( i18n( "Location Bar" ) );
+  comboAction->setShortcut(Qt::Key_F6);
+  connect(comboAction, SIGNAL(triggered()), SLOT( slotLocationLabelActivated() ));
+  comboAction->setDefaultWidget(m_combo);
+  comboAction->setShortcutConfigurable( false );
+
+  m_combo->setWhatsThis( i18n( "<html>Location Bar<br /><br />Enter a web address or search term.</html>" ) );
+
+  KAction *clearLocation = actionCollection()->addAction("clear_location");
+  clearLocation->setIcon( KIcon(QApplication::isRightToLeft() ? "edit-clear-locationbar-rtl" : "edit-clear-locationbar-ltr") );
+  clearLocation->setText( i18n( "Clear Location Bar" ) );
+  clearLocation->setShortcut(Qt::CTRL+Qt::Key_L);
+  connect( clearLocation, SIGNAL( triggered() ),
+           SLOT( slotClearLocationBar() ) );
+  clearLocation->setWhatsThis( i18n( "<html>Clear Location bar<br /><br />"
+                                     "Clears the contents of the location bar.</html>" ) );
+
+  // Bookmarks menu
+  m_pamBookmarks = new KBookmarkActionMenu(s_bookmarkManager->root(),
+                                              i18n( "&Bookmarks" ), this);
+  actionCollection()->addAction( "bookmarks", m_pamBookmarks );
+
+  // The actual menu needs a different action collection, so that the bookmarks
+  // don't appear in kedittoolbar
+  m_bookmarksActionCollection = new KActionCollection( static_cast<QWidget*>( this ) );
+
+  m_pBookmarkMenu = new KonqBookmarkMenu( s_bookmarkManager, m_pBookmarksOwner, m_pamBookmarks, m_bookmarksActionCollection );
+
+  QAction *addBookmark = m_bookmarksActionCollection->action("add_bookmark");
+  if (addBookmark) {
+     // Keep the "Add bookmark" action visible though (#153835)
+     // -> We should think of a way to mark actions as "not configurable in toolbars" and
+     // "should not appear in shortcut dialog (!= isShortcutConfigurable)" instead, and use
+     // a single actionCollection.
+     actionCollection()->addAction("add_bookmark", m_bookmarksActionCollection->takeAction(addBookmark));
+  } else {
+     kDebug() << "Action add_bookmark not found!";
+  }
+
+  m_paShowMenuBar = KStandardAction::showMenubar( this, SLOT( slotShowMenuBar() ), this );
+  actionCollection()->addAction( KStandardAction::name(KStandardAction::ShowMenubar), m_paShowMenuBar );
+
+  action = actionCollection()->addAction( "konqintro" );
+  action->setText( i18n( "Kon&queror Introduction" ) );
+  connect(action, SIGNAL(triggered() ), SLOT( slotIntro() ));
+
+  QAction *goUrl = actionCollection()->addAction("go_url");
+  goUrl->setIcon( KIcon("go-jump-locationbar") );
+  goUrl->setText( i18n( "Go" ) );
+  connect(goUrl, SIGNAL(triggered()), SLOT( goURL() ));
+  goUrl->setWhatsThis( i18n( "<html>Go<br /><br />"
+			     "Goes to the page that has been entered into the location bar.</html>" ) );
+
+  enableAllActions( false );
+
+  // help stuff
+  m_paUp->setWhatsThis( i18n( "<html>Enter the parent folder<br /><br />"
+                              "For instance, if the current location is file:/home/%1 clicking this "
+                              "button will take you to file:/home.</html>" ,  KUser().loginName() ) );
+  m_paUp->setStatusTip( i18n( "Enter the parent folder" ) );
+
+  m_paBack->setWhatsThis( i18n( "Move backwards one step in the browsing history" ) );
+  m_paBack->setStatusTip( i18n( "Move backwards one step in the browsing history" ) );
+
+  m_paForward->setWhatsThis( i18n( "Move forward one step in the browsing history" ) );
+  m_paForward->setStatusTip( i18n( "Move forward one step in the browsing history" ) );
+
+
+  m_paClosedItems->setWhatsThis( i18n( "Move backwards one step in the closed tabs history" ) );
+  m_paClosedItems->setStatusTip( i18n( "Move backwards one step in the closed tabs history" ) );
+
+
+  m_paReload->setWhatsThis( i18n( "<html>Reload the currently displayed document<br /><br />"
+                                  "This may, for example, be needed to refresh web pages that have been "
+                                  "modified since they were loaded, in order to make the changes visible.</html>" ) );
+  m_paReload->setStatusTip( i18n( "Reload the currently displayed document" ) );
+
+  m_paReloadAllTabs->setWhatsThis( i18n( "<html>Reload all currently displayed documents in tabs<br /><br />"
+                                  "This may, for example, be needed to refresh web pages that have been "
+                                  "modified since they were loaded, in order to make the changes visible.</html>" ) );
+  m_paReloadAllTabs->setStatusTip( i18n( "Reload all currently displayed document in tabs" ) );
+
+  m_paStop->setWhatsThis( i18n( "<html>Stop loading the document<br /><br />"
+                                "All network transfers will be stopped and Konqueror will display the content "
+                                "that has been received so far.</html>" ) );
+
+  m_paForceReload->setWhatsThis( i18n( "<html>Reload the currently displayed document<br /><br />"
+          "This may, for example, be needed to refresh web pages that have been "
+          "modified since they were loaded, in order to make the changes visible.  Any images on the page are downloaded again, even if cached copies exist.</html>" ) );
+
+  m_paForceReload->setStatusTip( i18n( "Force a reload of the currently displayed document and any contained images" ) );
+
+
+  m_paStop->setStatusTip( i18n( "Stop loading the document" ) );
+
+  m_paCut->setWhatsThis( i18n( "<html>Cut the currently selected text or item(s) and move it "
+                               "to the system clipboard<br /><br />"
+                               "This makes it available to the <b>Paste</b> command in Konqueror "
+                               "and other KDE applications.</html>" ) );
+  m_paCut->setStatusTip( i18n( "Move the selected text or item(s) to the clipboard" ) );
+
+  m_paCopy->setWhatsThis( i18n( "<html>Copy the currently selected text or item(s) to the "
+                                "system clipboard<br /><br />"
+                                "This makes it available to the <b>Paste</b> command in Konqueror "
+                                "and other KDE applications.</html>" ) );
+  m_paCopy->setStatusTip( i18n( "Copy the selected text or item(s) to the clipboard" ) );
+
+  m_paPaste->setWhatsThis( i18n( "<html>Paste the previously cut or copied clipboard "
+                                 "contents<br /><br />"
+                                 "This also works for text copied or cut from other KDE applications.</html>" ) );
+  m_paPaste->setStatusTip( i18n( "Paste the clipboard contents" ) );
+
+  m_paPrint->setWhatsThis( i18n( "<html>Print the currently displayed document<br /><br />"
+                                 "You will be presented with a dialog where you can set various "
+                                 "options, such as the number of copies to print and which printer "
+                                 "to use.<br /><br />"
+                                 "This dialog also provides access to special KDE printing "
+                                 "services such as creating a PDF file from the current document.</html>" ) );
+  m_paPrint->setStatusTip( i18n( "Print the current document" ) );
+
+
+
+  // Please proof-read those (David)
+
+  m_ptaUseHTML->setStatusTip( i18n("If present, open index.html when entering a folder.") );
+  m_paLockView->setStatusTip( i18n("A locked view cannot change folders. Use in combination with 'link view' to explore many files from one folder") );
+  m_paLinkView->setStatusTip( i18n("Sets the view as 'linked'. A linked view follows folder changes made in other linked views.") );
+}
+
+void KonqExtendedBookmarkOwner::openBookmark(const KBookmark & bm, Qt::MouseButtons mb, Qt::KeyboardModifiers km)
+{
+    kDebug() << bm.url() << km << mb;
+
+    const QString url = bm.url().url();
+
+    KonqOpenURLRequest req;
+    req.browserArgs.setNewTab(true);
+    req.newTabInFront = KonqSettings::newTabsInFront();
+    req.forceAutoEmbed = true;
+
+    if (km & Qt::ShiftModifier) {
+        req.newTabInFront = !req.newTabInFront;
+    }
+
+    if( km & Qt::ControlModifier ) { // Ctrl Left/MMB
+        m_pKonqMainWindow->openFilteredUrl( url, req);
+    } else if( mb & Qt::MidButton ) {
+        if(KonqSettings::mmbOpensTab()) {
+            m_pKonqMainWindow->openFilteredUrl( url, req);
+        } else {
+            KUrl finalURL = KonqMisc::konqFilteredURL( m_pKonqMainWindow, url );
+            KonqMisc::createNewWindow( finalURL );
+        }
+    }
+    else {
+        m_pKonqMainWindow->openFilteredUrl( url, false );
+    }
+}
+
+void KonqMainWindow::slotMoveTabLeft()
+{
+  if ( QApplication::isRightToLeft() )
+    m_pViewManager->moveTabForward();
+  else
+    m_pViewManager->moveTabBackward();
+
+  updateViewActions();
+}
+
+void KonqMainWindow::slotMoveTabRight()
+{
+  if ( QApplication::isRightToLeft() )
+    m_pViewManager->moveTabBackward();
+  else
+    m_pViewManager->moveTabForward();
+
+  updateViewActions();
+}
+
+void KonqMainWindow::updateHistoryActions()
+{
+    if(m_currentView)
+    {
+        m_paBack->setEnabled( m_currentView->canGoBack() );
+        m_paForward->setEnabled( m_currentView->canGoForward() );
+    }
+}
+
+void KonqMainWindow::updateToolBarActions( bool pendingAction /*=false*/)
+{
+  // Enables/disables actions that depend on the current view & url (mostly toolbar)
+  // Up, back, forward, the edit extension, stop button, wheel
+  setUpEnabled( m_currentView->url() );
+  m_paBack->setEnabled( m_currentView->canGoBack() );
+  m_paForward->setEnabled( m_currentView->canGoForward() );
+
+  if ( m_currentView->isLoading() )
+  {
+    startAnimation(); // takes care of m_paStop
+  }
+  else
+  {
+    m_paAnimatedLogo->stop();
+    m_paStop->setEnabled( pendingAction );  //enable/disable based on any pending actions...
+  }
+
+  bool ptaUseHTMLEnable=m_currentView
+                        && m_currentView->url().isLocalFile()
+                        && !m_currentView->isLockedViewMode();
+
+  ptaUseHTMLEnable=ptaUseHTMLEnable &&
+                   (
+                     m_currentView->showsDirectory() ||
+                     (
+                       // Currently viewing an index.html file via this feature (i.e. url points to a dir)
+                       m_currentView->serviceTypes().contains("text/html") &&
+                       QFileInfo( KUrl( m_currentView->locationBarURL() ).toLocalFile() ).isDir()
+                     )
+                   );
+
+  m_ptaUseHTML->setEnabled( ptaUseHTMLEnable );
+}
+
+void KonqMainWindow::updateViewActions()
+{
+  // Update actions that depend on the current view and its mode, or on the number of views etc.
+
+  // Don't do things in this method that depend on m_currentView->url().
+  // When going 'back' in history this will be called before opening the url.
+  // Use updateToolBarActions instead.
+
+  bool enable = false;
+
+  if ( m_currentView && m_currentView->part() )
+  {
+    // Avoid qWarning from QObject::property if it doesn't exist
+    if ( m_currentView->part()->metaObject()->indexOfProperty( "supportsUndo" ) != -1 )
+    {
+      QVariant prop = m_currentView->part()->property( "supportsUndo" );
+      if ( prop.isValid() && prop.toBool() )
+        enable = true;
+    }
+  }
+
+  m_pUndoManager->updateSupportsFileUndo(enable);
+
+//   slotUndoAvailable( m_pUndoManager->undoAvailable() );
+
+  m_paLockView->setEnabled( true );
+  m_paLockView->setChecked( m_currentView && m_currentView->isLockedLocation() );
+
+  // Can remove view if we'll still have a main view after that
+  m_paRemoveView->setEnabled( mainViewsCount() > 1 ||
+                              ( m_currentView && m_currentView->isToggleView() ) );
+
+    if ( !currentView() || !currentView()->frame())
+    {
+        m_paAddTab->setEnabled( false );
+        m_paDuplicateTab->setEnabled( false );
+        m_paRemoveOtherTabs->setEnabled( false );
+        m_paBreakOffTab->setEnabled( false );
+        m_paActivateNextTab->setEnabled( false );
+        m_paActivatePrevTab->setEnabled( false );
+        m_paMoveTabLeft->setEnabled( false );
+        m_paMoveTabRight->setEnabled( false );
+    } else {
+        m_paAddTab->setEnabled( true );
+        m_paDuplicateTab->setEnabled( true );
+        KonqFrameTabs* tabContainer = m_pViewManager->tabContainer();
+        bool state = (tabContainer->count()>1);
+        m_paRemoveOtherTabs->setEnabled( state );
+        m_paBreakOffTab->setEnabled( state );
+        m_paActivateNextTab->setEnabled( state );
+        m_paActivatePrevTab->setEnabled( state );
+
+        QList<KonqFrameBase*> childFrameList = tabContainer->childFrameList();
+        Q_ASSERT( !childFrameList.isEmpty() );
+        m_paMoveTabLeft->setEnabled( currentView() ? currentView()->frame()!=
+           (QApplication::isRightToLeft() ? childFrameList.last() : childFrameList.first()) : false );
+        m_paMoveTabRight->setEnabled( currentView() ? currentView()->frame()!=
+           (QApplication::isRightToLeft() ? childFrameList.first() : childFrameList.last()) : false );
+    }
+
+  // Can split a view if it's not a toggle view (because a toggle view can be here only once)
+  bool isNotToggle = m_currentView && !m_currentView->isToggleView();
+  m_paSplitViewHor->setEnabled( isNotToggle );
+  m_paSplitViewVer->setEnabled( isNotToggle );
+
+  m_paLinkView->setChecked( m_currentView && m_currentView->isLinkedView() );
+
+#if 0
+  if ( m_currentView && m_currentView->part() &&
+       ::qobject_cast<KonqDirPart*>( m_currentView->part() ) )
+  {
+    KonqDirPart * dirPart = static_cast<KonqDirPart *>(m_currentView->part());
+    m_paFindFiles->setEnabled( dirPart->findPart() == 0 );
+
+    // Create the copy/move options if not already done
+    // TODO: move that stuff to dolphin(part)
+    if ( !m_paCopyFiles )
+    {
+      // F5 is the default key binding for Reload.... a la Windows.
+      // mc users want F5 for Copy and F6 for move, but I can't make that default.
+
+
+      m_paCopyFiles = actionCollection()->addAction( "copyfiles" );
+      m_paCopyFiles->setText( i18n("Copy &Files...") );
+      connect(m_paCopyFiles, SIGNAL(triggered() ), SLOT( slotCopyFiles() ));
+      m_paCopyFiles->setShortcut(Qt::Key_F7);
+      m_paMoveFiles = actionCollection()->addAction( "movefiles" );
+      m_paMoveFiles->setText( i18n("M&ove Files...") );
+      connect(m_paMoveFiles, SIGNAL(triggered() ), SLOT( slotMoveFiles() ));
+      m_paMoveFiles->setShortcut(Qt::Key_F8);
+
+      QList<QAction*> lst;
+      lst.append( m_paCopyFiles );
+      lst.append( m_paMoveFiles );
+      m_paCopyFiles->setEnabled( false );
+      m_paMoveFiles->setEnabled( false );
+      plugActionList( "operations", lst );
+    }
+  }
+  else
+  {
+      m_paFindFiles->setEnabled( false );
+
+      if (m_paCopyFiles)
+      {
+          unplugActionList( "operations" );
+          delete m_paCopyFiles;
+          m_paCopyFiles = 0;
+          delete m_paMoveFiles;
+          m_paMoveFiles = 0;
+      }
+  }
+#endif
+}
+
+QString KonqMainWindow::findIndexFile( const QString &dir )
+{
+  QDir d( dir );
+
+  QString f = d.filePath( QLatin1String ( "index.html" ) );
+  if ( QFile::exists( f ) )
+    return f;
+
+  f = d.filePath( QLatin1String ( "index.htm" ) );
+  if ( QFile::exists( f ) )
+    return f;
+
+  f = d.filePath( QLatin1String( "index.HTML" ) );
+  if ( QFile::exists( f ) )
+    return f;
+
+  return QString();
+}
+
+void KonqMainWindow::connectExtension( KParts::BrowserExtension *ext )
+{
+  KParts::BrowserExtension::ActionSlotMap * actionSlotMap = KParts::BrowserExtension::actionSlotMapPtr();
+  KParts::BrowserExtension::ActionSlotMap::ConstIterator it = actionSlotMap->constBegin();
+  KParts::BrowserExtension::ActionSlotMap::ConstIterator itEnd = actionSlotMap->constEnd();
+
+  for ( ; it != itEnd ; ++it )
+  {
+    QAction * act = actionCollection()->action( it.key().data() );
+    //kDebug() << it.key();
+    if ( act )
+    {
+      // Does the extension have a slot with the name of this action ?
+      if ( ext->metaObject()->indexOfSlot( it.key()+"()" ) != -1 )
+      {
+          connect( act, SIGNAL( triggered() ), ext, it.value() /* SLOT(slot name) */ );
+          act->setEnabled( ext->isActionEnabled( it.key() ) );
+          const QString text = ext->actionText( it.key() );
+          if ( !text.isEmpty() )
+              act->setText( text );
+          // TODO how to re-set the original action text, when switching to a part that didn't call setAction?
+          // Can't test with Paste...
+      } else
+          act->setEnabled(false);
+
+    } else kError() << "Error in BrowserExtension::actionSlotMap(), unknown action : " << it.key();
+  }
+
+}
+
+void KonqMainWindow::disconnectExtension( KParts::BrowserExtension *ext )
+{
+  KParts::BrowserExtension::ActionSlotMap * actionSlotMap = KParts::BrowserExtension::actionSlotMapPtr();
+  KParts::BrowserExtension::ActionSlotMap::ConstIterator it = actionSlotMap->constBegin();
+  KParts::BrowserExtension::ActionSlotMap::ConstIterator itEnd = actionSlotMap->constEnd();
+
+  for ( ; it != itEnd ; ++it )
+  {
+    QAction * act = actionCollection()->action( it.key().data() );
+    //kDebug() << it.key();
+    if ( act && ext->metaObject()->indexOfSlot( it.key()+"()" ) != -1 )
+    {
+        //kDebug() << act << act->name();
+        act->disconnect( ext );
+    }
+  }
+}
+
+void KonqMainWindow::enableAction( const char * name, bool enabled )
+{
+  QAction * act = actionCollection()->action( name );
+  if (!act)
+    kWarning() << "Unknown action " << name << " - can't enable" ;
+  else
+  {
+    if ( m_bLocationBarConnected && (
+      act==m_paCopy || act==m_paCut || act==m_paPaste ) )
+        // Don't change action state while the location bar has focus.
+        return;
+    //kDebug() << name << enabled;
+    act->setEnabled( enabled );
+  }
+
+  // Update "copy files" and "move files" accordingly
+  if (m_paCopyFiles && !strcmp( name, "copy" ))
+  {
+    m_paCopyFiles->setEnabled( enabled );
+  }
+  else if (m_paMoveFiles && !strcmp( name, "cut" ))
+  {
+    m_paMoveFiles->setEnabled( enabled );
+  }
+}
+
+void KonqMainWindow::setActionText(const char * name, const QString& text)
+{
+    QAction * act = actionCollection()->action(name);
+    if (!act) {
+        kWarning() << "Unknown action " << name << "- can't enable" ;
+    } else {
+        //kDebug() << name << " text=" << text;
+        act->setText(text);
+    }
+}
+
+void KonqMainWindow::setProfileConfig(const KConfigGroup& cfg)
+{
+    // Read toolbar settings and window size from profile, and autosave into that profile from now on
+    setAutoSaveSettings(cfg);
+    currentProfileChanged();
+}
+
+void KonqMainWindow::currentProfileChanged()
+{
+    m_paSaveViewProfile->setEnabled(!m_pViewManager->currentProfile().isEmpty());
+}
+
+void KonqMainWindow::enableAllActions( bool enable )
+{
+    //kDebug() << enable;
+  KParts::BrowserExtension::ActionSlotMap * actionSlotMap = KParts::BrowserExtension::actionSlotMapPtr();
+
+  const QList<QAction *> actions = actionCollection()->actions();
+  QList<QAction *>::ConstIterator it = actions.constBegin();
+  QList<QAction *>::ConstIterator end = actions.constEnd();
+  for (; it != end; ++it )
+  {
+    QAction *act = *it;
+    if ( !act->objectName().startsWith("options_configure") /* do not touch the configureblah actions */
+         && ( !enable || !actionSlotMap->contains( act->objectName().toLatin1() ) ) ) /* don't enable BE actions */
+      act->setEnabled( enable );
+  }
+  // This method is called with enable=false on startup, and
+  // then only once with enable=true when the first view is setup.
+  // So the code below is where actions that should initially be disabled are disabled.
+  if (enable)
+  {
+      setUpEnabled( m_currentView ? m_currentView->url() : KUrl() );
+      // we surely don't have any history buffers at this time
+      m_paBack->setEnabled( false );
+      m_paForward->setEnabled( false );
+
+      // Load profile submenu
+      m_pViewManager->profileListDirty( false );
+
+      currentProfileChanged();
+
+      updateViewActions(); // undo, lock, link and other view-dependent actions
+      updateClosedItemsAction();
+
+      m_paStop->setEnabled( m_currentView && m_currentView->isLoading() );
+
+      if (m_toggleViewGUIClient)
+      {
+          QList<QAction*> actions = m_toggleViewGUIClient->actions();
+          for (int i = 0; i < actions.size(); ++i) {
+            actions.at(i)->setEnabled( true );
+          }
+      }
+
+  }
+  actionCollection()->action( "quit" )->setEnabled( true );
+}
+
+void KonqMainWindow::disableActionsNoView()
+{
+    // No view -> there are some things we can't do
+    m_paUp->setEnabled( false );
+    m_paReload->setEnabled( false );
+    m_paReloadAllTabs->setEnabled( false );
+    m_paBack->setEnabled( false );
+    m_paForward->setEnabled( false );
+    m_ptaUseHTML->setEnabled( false );
+    m_paLockView->setEnabled( false );
+    m_paLockView->setChecked( false );
+    m_paSplitViewVer->setEnabled( false );
+    m_paSplitViewHor->setEnabled( false );
+    m_paRemoveView->setEnabled( false );
+    m_paLinkView->setEnabled( false );
+    if (m_toggleViewGUIClient)
+    {
+        QList<QAction*> actions = m_toggleViewGUIClient->actions();
+        for (int i = 0; i < actions.size(); ++i) {
+            actions.at(i)->setEnabled( false );
+        }
+    }
+    // There are things we can do, though : bookmarks, view profile, location bar, new window,
+    // settings, etc.
+    static const char* const s_enActions[] = { "new_window", "duplicate_window", "open_location",
+                                         "toolbar_url_combo", "clear_location", "animated_logo",
+                                         "konqintro", "go_most_often", "go_applications",
+                                         "go_trash", "go_settings", "go_network_folders", "go_autostart",
+                                         "go_url", "go_media", "go_history", "options_configure_extensions", 0 };
+    for ( int i = 0 ; s_enActions[i] ; ++i )
+    {
+        QAction * act = action(s_enActions[i]);
+        if (act)
+            act->setEnabled( true );
+    }
+    m_pamLoadViewProfile->setEnabled( true );
+    m_paSaveViewProfile->setEnabled( true );
+    m_paSaveRemoveViewProfile->setEnabled( true );
+    m_combo->clearTemporary();
+}
+
+void KonqMainWindow::setCaption( const QString &caption )
+{
+    // KParts sends us empty captions when activating a brand new part
+    // We can't change it there (in case of apps removing all parts altogether)
+    // but here we never do that.
+    if (!caption.isEmpty() && m_currentView) {
+        //kDebug() << caption;
+
+        // Keep an unmodified copy of the caption (before squeezing and KComponentData::makeStdCaption are applied)
+        m_currentView->setCaption(caption);
+        KParts::MainWindow::setCaption(KStringHandler::csqueeze(m_currentView->caption(), 128));
+    }
+}
+
+void KonqMainWindow::showEvent(QShowEvent *event)
+{
+  // We need to check if our toolbars are shown/hidden here, and set
+  // our menu items accordingly. We can't do it in the constructor because
+  // view profiles store toolbar info, and that info is read after
+  // construct time.
+  m_paShowMenuBar->setChecked( !menuBar()->isHidden() );
+  updateBookmarkBar(); // hide if empty
+
+  // Call parent method
+  KParts::MainWindow::showEvent(event);
+}
+
+QString KonqExtendedBookmarkOwner::currentUrl() const
+{
+   return m_pKonqMainWindow->currentView()->url().url();
+}
+
+QString KonqMainWindow::currentProfile() const
+{
+   return m_pViewManager->currentProfile();
+}
+
+QString KonqMainWindow::currentURL() const
+{
+    if ( !m_currentView )
+        return QString();
+    QString url = m_currentView->url().prettyUrl();
+
+#if 0 // do we want this?
+    // Add the name filter (*.txt) at the end of the URL again
+    if ( m_currentView->part() ) {
+        const QString nameFilter = m_currentView->nameFilter();
+        if (!nameFilter.isEmpty()) {
+            if (!url.endsWith('/'))
+                url += '/';
+            url += nameFilter;
+        }
+    }
+#endif
+    return url;
+}
+
+bool KonqExtendedBookmarkOwner::supportsTabs() const
+{
+  return true;
+}
+
+QList<QPair<QString, QString> > KonqExtendedBookmarkOwner::currentBookmarkList() const
+{
+  QList<QPair<QString, QString> > list;
+  KonqFrameTabs* tabContainer = m_pKonqMainWindow->viewManager()->tabContainer();
+
+  foreach ( KonqFrameBase* frame, tabContainer->childFrameList() )
+  {
+    if ( !frame || !frame->activeChildView() )
+      continue;
+    if( frame->activeChildView()->locationBarURL().isEmpty() )
+      continue;
+    list << qMakePair( frame->activeChildView()->caption(),
+                       frame->activeChildView()->url().url() );
+  }
+  return list;
+}
+
+QString KonqExtendedBookmarkOwner::currentTitle() const
+{
+   return m_pKonqMainWindow->currentTitle();
+}
+
+void KonqExtendedBookmarkOwner::openInNewTab(const KBookmark &bm)
+{
+  bool newTabsInFront = KonqSettings::newTabsInFront();
+  if (QApplication::keyboardModifiers() & Qt::ShiftModifier)
+    newTabsInFront = !newTabsInFront;
+
+  KonqOpenURLRequest req;
+  req.browserArgs.setNewTab(true);
+  req.newTabInFront = newTabsInFront;
+  req.openAfterCurrentPage = false;
+  req.forceAutoEmbed = true;
+
+  m_pKonqMainWindow->openUrl( 0, bm.url(), QString(), req );
+}
+
+void KonqExtendedBookmarkOwner::openFolderinTabs(const KBookmarkGroup &grp)
+{
+  bool newTabsInFront = KonqSettings::newTabsInFront();
+  if (QApplication::keyboardModifiers() & Qt::ShiftModifier)
+    newTabsInFront = !newTabsInFront;
+  KonqOpenURLRequest req;
+  req.browserArgs.setNewTab(true);
+  req.newTabInFront = false;
+  req.openAfterCurrentPage = false;
+  req.forceAutoEmbed = true;
+
+  const QList<KUrl> list = grp.groupUrlList();
+  if (list.isEmpty())
+    return;
+
+  if (list.size() > 20) {
+    if(KMessageBox::questionYesNo(m_pKonqMainWindow,
+				  i18n("You have requested to open more than 20 bookmarks in tabs. "
+                                       "This might take a while. Continue?"),
+				  i18n("Open bookmarks folder in new tabs")) != KMessageBox::Yes)
+      return;
+  }
+
+  QList<KUrl>::ConstIterator it = list.constBegin();
+  QList<KUrl>::ConstIterator end = list.constEnd();
+  --end;
+  for (; it != end; ++it )
+  {
+    m_pKonqMainWindow->openUrl( 0, *it, QString(), req );
+  }
+  if ( newTabsInFront )
+  {
+    req.newTabInFront = true;
+  }
+  m_pKonqMainWindow->openUrl( 0, *end, QString(), req );
+}
+
+void KonqExtendedBookmarkOwner::openInNewWindow(const KBookmark &bm)
+{
+  KonqMisc::createNewWindow( bm.url(), KParts::OpenUrlArguments() );
+}
+
+QString KonqMainWindow::currentTitle() const
+{
+  return m_currentView ? m_currentView->caption() : QString();
+}
+
+void KonqMainWindow::slotPopupMenu( const QPoint &global, const KUrl &url, mode_t mode, const KParts::OpenUrlArguments &args, const KParts::BrowserArguments& browserArgs, KParts::BrowserExtension::PopupFlags flags, const KParts::BrowserExtension::ActionGroupMap& actionGroups )
+{
+    KFileItem item( url, args.mimeType(), mode );
+    KFileItemList items;
+    items.append( item );
+    slotPopupMenu( global, items, args, browserArgs, flags, actionGroups );
+}
+
+void KonqMainWindow::slotPopupMenu( const QPoint &global, const KFileItemList &items, const KParts::OpenUrlArguments &args, const KParts::BrowserArguments& browserArgs, KParts::BrowserExtension::PopupFlags itemFlags, const KParts::BrowserExtension::ActionGroupMap& _actionGroups )
+{
+    KParts::BrowserExtension::ActionGroupMap actionGroups = _actionGroups;
+
+    KonqView * m_oldView = m_currentView;
+    KonqView * currentView = childView( static_cast<KParts::ReadOnlyPart *>( sender()->parent() ) );
+
+    //kDebug() << "m_oldView=" << m_oldView << "new currentView=" << currentView << "passive:" << currentView->isPassiveMode();
+
+  if ( (m_oldView != currentView) && currentView->isPassiveMode() )
+  {
+      // Make this view active only temporarily (because it's passive)
+      m_currentView = currentView;
+
+      if ( m_oldView && m_oldView->browserExtension() )
+          disconnectExtension( m_oldView->browserExtension() );
+      if ( m_currentView->browserExtension() )
+          connectExtension( m_currentView->browserExtension() );
+  }
+  // Note that if m_oldView!=currentView and currentView isn't passive,
+  // then the KParts mechanism has already noticed the click in it,
+  // but KonqViewManager delays the GUI-rebuilding with a single-shot timer.
+  // Right after the popup shows up, currentView _will_ be m_currentView.
+
+  //kDebug() << "current view=" << m_currentView << m_currentView->part()->metaObject()->className();
+
+  // This action collection is used to pass actions to KonqPopupMenu.
+  // It has to be a KActionCollection instead of a KActionPtrList because we need
+  // the actionStatusText signal...
+  KActionCollection popupMenuCollection( static_cast<QWidget*>(0) );
+
+  // m_paBack is a submenu, for the toolbar & edit menu "back",
+  // but in the RMB we want a simple one-click back instead.
+  KAction* simpleBack = KStandardAction::back( this, SLOT(slotBack()), &popupMenuCollection );
+  simpleBack->setEnabled( m_paBack->isEnabled() );
+  popupMenuCollection.addAction( "go_back", simpleBack );
+
+  KAction* simpleForward = KStandardAction::forward( this, SLOT(slotForward()), &popupMenuCollection );
+  simpleForward->setEnabled( m_paForward->isEnabled() );
+  popupMenuCollection.addAction( "go_forward", simpleForward );
+
+  popupMenuCollection.addAction( "go_up", m_paUp );
+  popupMenuCollection.addAction( "reload", m_paReload );
+  popupMenuCollection.addAction( "closeditems", m_paClosedItems );
+
+#if 0
+  popupMenuCollection.addAction( "find", m_paFindFiles );
+#endif
+
+  popupMenuCollection.addAction( "undo", m_paUndo );
+  popupMenuCollection.addAction( "cut", m_paCut );
+  popupMenuCollection.addAction( "copy", m_paCopy );
+  popupMenuCollection.addAction( "paste", m_paPaste );
+
+  // The pasteto action is used when clicking on a dir, to paste into it.
+  KAction *actPaste = KStandardAction::paste( this, SLOT( slotPopupPasteTo() ), this );
+  actPaste->setEnabled( m_paPaste->isEnabled() );
+  popupMenuCollection.addAction( "pasteto", actPaste );
+
+  prepareForPopupMenu(items, args, browserArgs);
+
+  bool sReading = false;
+  if (!m_popupUrl.isEmpty()) {
+      sReading = KProtocolManager::supportsReading(m_popupUrl);
+  }
+
+  // Don't set the view URL for a toggle view.
+  // (This is a bit of a hack for the directory tree....)
+  // ## should use the new currentView->isHierarchicalView() instead?
+  // Would this be correct for the konqlistview tree view?
+  KUrl viewURL = currentView->isToggleView() ? KUrl() : currentView->url();
+  kDebug() << "viewURL=" << viewURL;
+
+  bool openedForViewURL = false;
+  //bool dirsSelected = false;
+  bool devicesFile = false;
+
+    if ( items.count() == 1 )
+    {
+      const KUrl firstURL = items.first().url();
+      if ( !viewURL.isEmpty() )
+      {
+	  //firstURL.cleanPath();
+          openedForViewURL = firstURL.equals( viewURL, KUrl::CompareWithoutTrailingSlash );
+      }
+      devicesFile = firstURL.protocol().indexOf("device", 0, Qt::CaseInsensitive) == 0;
+      //dirsSelected = S_ISDIR( items.first()->mode() );
+    }
+    //kDebug() << "viewURL=" << viewURL;
+
+    KUrl url = viewURL;
+    url.cleanPath();
+    bool isIntoTrash = url.protocol() == "trash" || url.url().startsWith( "system:/trash" );
+    const bool doTabHandling = !openedForViewURL && !isIntoTrash && sReading;
+    const bool showEmbeddingServices = items.count() == 1 && !m_popupMimeType.isEmpty() &&
+                                       !isIntoTrash && !devicesFile &&
+                                       (itemFlags & KParts::BrowserExtension::ShowTextSelectionItems) == 0;
+
+    KService::List embeddingServices;
+    if ( showEmbeddingServices ) {
+        const QString currentServiceName = currentView->service()->desktopEntryName();
+
+        // List of services for the "Preview In" submenu.
+        embeddingServices = KMimeTypeTrader::self()->query(
+            m_popupMimeType,
+            "KParts/ReadOnlyPart",
+            // Obey "HideFromMenus". It defaults to false so we want "absent or true"
+            // (wow, testing for 'true' if absent doesn't work, so order matters)
+            "(not exist [X-KDE-BrowserView-HideFromMenus] or not [X-KDE-BrowserView-HideFromMenus]) "
+            "and DesktopEntryName != '"+currentServiceName+"' "
+            // I had an old local dirtree.desktop without lib, no need for invalid entries
+            "and exist [Library]");
+    }
+
+    PopupMenuGUIClient *konqyMenuClient = new PopupMenuGUIClient( embeddingServices,
+                                                                  actionGroups,
+                                                                  !menuBar()->isVisible() ? m_paShowMenuBar : 0,
+                                                                  fullScreenMode() ? m_ptaFullScreen : 0
+        );
+    qRegisterMetaType<KService::Ptr>("KService::Ptr");
+    connect(konqyMenuClient, SIGNAL(openEmbedded(KService::Ptr)),
+            this, SLOT(slotOpenEmbedded(KService::Ptr)), Qt::QueuedConnection);
+
+
+    // Those actions go into the PopupMenuGUIClient, since that's the one defining them.
+    QList<QAction *> tabHandlingActions;
+    if( doTabHandling )
+    {
+        if (browserArgs.forcesNewWindow()) {
+            QAction* act = konqyMenuClient->actionCollection()->addAction( "sameview" );
+            act->setText( i18n( "Open in T&his Window" ) );
+            act->setStatusTip( i18n( "Open the document in current window" ) );
+            connect(act, SIGNAL(triggered() ), SLOT( slotPopupThisWindow() ));
+            tabHandlingActions.append(act);
+        }
+        QAction* actNewWindow = konqyMenuClient->actionCollection()->addAction( "newview" );
+        actNewWindow->setIcon( KIcon("window-new") );
+        actNewWindow->setText( i18n( "Open in New &Window" ) );
+        actNewWindow->setStatusTip( i18n( "Open the document in a new window" ) );
+        connect(actNewWindow, SIGNAL(triggered()), SLOT( slotPopupNewWindow() ));
+        tabHandlingActions.append(actNewWindow);
+
+        QAction* actNewTab = konqyMenuClient->actionCollection()->addAction( "openintab" );
+        actNewTab->setIcon( KIcon("tab-new") );
+        actNewTab->setText( i18n( "Open in &New Tab" ) );
+        connect(actNewTab, SIGNAL(triggered()), SLOT( slotPopupNewTab() ));
+        actNewTab->setStatusTip( i18n( "Open the document in a new tab" ) );
+        tabHandlingActions.append(actNewTab);
+
+        QAction* separator = new QAction(konqyMenuClient->actionCollection());
+        separator->setSeparator(true);
+        tabHandlingActions.append(separator);
+    }
+
+    if (currentView->isHierarchicalView())
+        itemFlags |= KParts::BrowserExtension::ShowCreateDirectory;
+
+    KonqPopupMenu::Flags kpf = 0;
+
+    if (doTabHandling)
+        actionGroups.insert("tabhandling", tabHandlingActions);
+    //if (kpf & KonqPopupMenu::IsLink)
+    //    actionGroups.insert("linkactions", linkActions);
+    // TODO actionGroups.insert("partactions", partActions);
+
+    QPointer<KonqPopupMenu> pPopupMenu = new KonqPopupMenu(
+        items,
+        viewURL,
+        popupMenuCollection,
+        m_pMenuNew,
+        kpf,
+        itemFlags,
+        // This parent ensures that if the part destroys itself (e.g. KHTML redirection),
+        // it will close the popupmenu
+        currentView->part()->widget(),
+        s_bookmarkManager,
+        actionGroups );
+
+    if ( openedForViewURL && !viewURL.isLocalFile() )
+        pPopupMenu->setURLTitle( currentView->caption() );
+
+    QPointer<KParts::BrowserExtension> be = ::qobject_cast<KParts::BrowserExtension *>(sender());
+
+    if (be) {
+        QObject::connect( this, SIGNAL(popupItemsDisturbed()), pPopupMenu, SLOT(close()) );
+        QObject::connect( be, SIGNAL(itemsRemoved(const KFileItemList &)),
+                          this, SLOT(slotItemsRemoved(const KFileItemList &)) );
+    }
+
+
+  QPointer<QObject> guard( this ); // #149736, window could be deleted inside popupmenu event loop
+  pPopupMenu->exec( global );
+
+  delete pPopupMenu;
+
+  // We're sort of misusing KActionCollection here, but we need it for the actionStatusText signal...
+  // Anyway. If the action belonged to the view, and the view got deleted, we don't want ~KActionCollection
+  // to iterate over those deleted actions
+  /*KActionPtrList lst = popupMenuCollection.actions();
+  KActionPtrList::iterator it = lst.begin();
+  for ( ; it != lst.end() ; ++it )
+      popupMenuCollection.take( *it );*/
+
+  if ( guard.isNull() ) // the placement of this test is very important, double-check #149736 if moving stuff around
+      return;
+
+  if (be) {
+    QObject::disconnect( be, SIGNAL(itemsRemoved(const KFileItemList &)),
+                         this, SLOT(slotItemsRemoved(const KFileItemList &)) );
+  }
+
+  delete konqyMenuClient;
+  m_popupItems.clear();
+
+  // Deleted by konqyMenuClient's actioncollection
+  //delete actNewTab;
+  //delete actNewWindow;
+
+  delete actPaste;
+
+  // Restore current view if current is passive
+  if ( (m_oldView != currentView) && (currentView == m_currentView) && currentView->isPassiveMode() )
+  {
+    //kDebug() << "restoring active view" << m_oldView;
+    if ( m_currentView->browserExtension() )
+      disconnectExtension( m_currentView->browserExtension() );
+    if ( m_oldView )
+    {
+        if ( m_oldView->browserExtension() )
+        {
+            connectExtension( m_oldView->browserExtension() );
+            m_currentView = m_oldView;
+        }
+        // Special case: RMB + renaming in sidebar; setFocus would abort editing.
+        QWidget* fw = focusWidget();
+        if ( !fw || !::qobject_cast<QLineEdit*>( fw ) )
+        m_oldView->part()->widget()->setFocus();
+    }
+  }
+}
+
+void KonqMainWindow::prepareForPopupMenu(const KFileItemList &items, const KParts::OpenUrlArguments &args, const KParts::BrowserArguments& browserArgs)
+{
+    if (!items.isEmpty()) {
+        m_popupUrl = items.first().url();
+        m_popupMimeType = items.first().mimetype();
+    }
+    else
+    {
+        m_popupUrl = KUrl();
+        m_popupMimeType.clear();
+    }
+    // We will need these if we call the newTab slot
+    m_popupItems = items;
+    m_popupUrlArgs = args;
+    m_popupUrlArgs.setMimeType( QString() ); // Reset so that Open in New Window/Tab does mimetype detection
+    m_popupUrlBrowserArgs = browserArgs;
+}
+
+void KonqMainWindow::slotItemsRemoved(const KFileItemList &items)
+{
+    QListIterator<KFileItem> it(items);
+    while (it.hasNext()) {
+        if (m_popupItems.contains(it.next())) {
+            emit popupItemsDisturbed();
+            return;
+        }
+    }
+}
+
+Q_DECLARE_METATYPE(KService::Ptr)
+void KonqMainWindow::slotOpenEmbedded(KService::Ptr service)
+{
+    m_currentView->stop();
+    m_currentView->setLocationBarURL(m_popupUrl);
+    m_currentView->setTypedURL(QString());
+    if ( m_currentView->changePart( m_popupMimeType,
+                                        service->desktopEntryName(), true ) )
+        m_currentView->openUrl( m_popupUrl, m_popupUrl.pathOrUrl() );
+}
+
+void KonqMainWindow::slotPopupPasteTo()
+{
+    if ( !m_currentView || m_popupUrl.isEmpty() )
+        return;
+    m_currentView->callExtensionURLMethod( "pasteTo", m_popupUrl );
+}
+
+void KonqMainWindow::slotReconfigure()
+{
+  reparseConfiguration();
+}
+
+void KonqMainWindow::reparseConfiguration()
+{
+  kDebug();
+
+  KonqSettings::self()->readConfig();
+  m_pViewManager->applyConfiguration();
+  KonqRmbEventFilter::self()->reparseConfiguration();
+
+  m_bHTMLAllowed = KonqSettings::htmlAllowed();
+
+  if (m_combo)
+      m_combo->setFont( KGlobalSettings::generalFont() );
+
+  MapViews::ConstIterator it = m_mapViews.constBegin();
+  MapViews::ConstIterator end = m_mapViews.constEnd();
+  for (; it != end; ++it )
+      (*it)->reparseConfiguration();
+}
+
+void KonqMainWindow::saveProperties( KConfigGroup& config )
+{
+    // Ensure no crash if the sessionmanager timer fires before the ctor is done
+    // This can happen via ToggleViewGUIClient -> KServiceTypeTrader::query
+    // -> KSycoca running kbuildsycoca -> nested event loop.
+    if (m_fullyConstructed) {
+        KonqFrameBase::Options flags = KonqFrameBase::saveHistoryItems;
+        m_pViewManager->saveViewProfileToGroup(config, flags);
+    }
+}
+
+void KonqMainWindow::readProperties( const KConfigGroup& configGroup )
+{
+    // ######### THIS CANNOT WORK. It's too late to change the xmlfile, the GUI has been built already!
+    // We need to delay doing setXMLFile+createGUI until we know which profile we are going to use, then...
+    // TODO: Big refactoring needed for this feature. On the other hand, all default profiles shipped with
+    // konqueror use konqueror.rc again, so the need for this is almost zero now.
+    const QString xmluiFile = configGroup.readEntry("XMLUIFile","konqueror.rc");
+    setXMLFile( KonqViewManager::normalizedXMLFileName(xmluiFile) );
+
+    m_pViewManager->loadViewProfileFromGroup( configGroup, QString() /*no profile name*/ );
+    // read window settings
+    applyMainWindowSettings( configGroup, true );
+}
+
+void KonqMainWindow::setInitialFrameName( const QString &name )
+{
+  m_initialFrameName = name;
+}
+
+void KonqMainWindow::updateOpenWithActions()
+{
+  unplugActionList( "openwithbase" );
+  unplugActionList( "openwith" );
+
+  qDeleteAll(m_openWithActions);
+  m_openWithActions.clear();
+
+  delete m_openWithMenu;
+  m_openWithMenu = 0;
+
+  if (!KAuthorized::authorizeKAction("openwith"))
+     return;
+
+  m_openWithMenu = new KActionMenu( i18n("&Open With"), this );
+
+  const KService::List & services = m_currentView->appServiceOffers();
+  KService::List::ConstIterator it = services.constBegin();
+  const KService::List::ConstIterator end = services.constEnd();
+
+  const int baseOpenWithItems = qMax(KonqSettings::openWithItems(), 0);
+
+  int idxService = 0;
+  for (; it != end; ++it, ++idxService)
+  {
+    QAction *action;
+
+    if (idxService < baseOpenWithItems)
+       action = new QAction(i18n("Open with %1", (*it)->name()), this);
+    else
+       action = new QAction((*it)->name(), this);
+    action->setIcon( KIcon( (*it)->icon() ) );
+
+    connect( action, SIGNAL( triggered() ),
+             this, SLOT( slotOpenWith() ) );
+
+    actionCollection()->addAction((*it)->desktopEntryName(), action);
+    if (idxService < baseOpenWithItems)
+        m_openWithActions.append(action);
+    else
+        m_openWithMenu->addAction(action);
+  }
+
+  if ( services.count() > 0 )
+  {
+      plugActionList("openwithbase", m_openWithActions);
+      QList<QAction*> openWithActionsMenu;
+      if (idxService > baseOpenWithItems)
+      {
+          openWithActionsMenu.append(m_openWithMenu);
+      }
+      QAction *sep = new QAction( this );
+      sep->setSeparator( true );
+      openWithActionsMenu.append(sep);
+      plugActionList("openwith", openWithActionsMenu);
+  }
+}
+
+void KonqMainWindow::updateViewModeActions()
+{
+    unplugViewModeActions();
+    Q_FOREACH( QAction* action, m_viewModesGroup->actions() ) {
+        Q_FOREACH( QWidget *w, action->associatedWidgets() )
+            w->removeAction( action );
+        delete action;
+    }
+
+    delete m_viewModeMenu;
+    m_viewModeMenu = 0;
+
+    const KService::List services = m_currentView->partServiceOffers();
+    if ( services.count() <= 1 )
+        return;
+
+    m_viewModeMenu = new KActionMenu( i18nc("@action:inmenu View", "&View Mode"), this );
+    //actionCollection()->addAction( "viewModeMenu", m_viewModeMenu );
+
+    KService::List::ConstIterator it = services.constBegin();
+    const KService::List::ConstIterator end = services.constEnd();
+    for (; it != end; ++it) {
+        const KService::Ptr service = *it;
+        const QVariant propToggable = service->property( "X-KDE-BrowserView-Toggable" );
+        const bool toggable = propToggable.isValid() && propToggable.toBool();
+        const QVariant propHierarchical = service->property( "X-KDE-BrowserView-HierarchicalView" );
+        const bool hierarchical = propHierarchical.isValid() && propHierarchical.toBool();
+        // No hierarchical toggable views in view mode (i.e. konsole ok, but no sidebar)
+        if (toggable && hierarchical)
+            continue;
+
+        const QString desktopEntryName = service->desktopEntryName();
+        bool bIsCurrentView = desktopEntryName == m_currentView->service()->desktopEntryName();
+
+        const QList<KServiceAction> actions = service->actions();
+        if (!actions.isEmpty()) {
+
+            // The service provides several view modes, like DolphinPart
+            // -> create one action per view mode
+            Q_FOREACH(const KServiceAction& serviceAction, actions) {
+                // Create a KToggleAction for each view mode, and plug it into the menu
+                KToggleAction* action = new KToggleAction(KIcon(serviceAction.icon()), serviceAction.text(), this);
+                //actionCollection()->addAction(desktopEntryName /*not unique!*/, action);
+                action->setObjectName(desktopEntryName);
+                action->setData(QVariant(serviceAction.name()));
+                action->setActionGroup(m_viewModesGroup);
+                m_viewModeMenu->menu()->addAction(action);
+                if (bIsCurrentView && m_currentView->internalViewMode() == serviceAction.name()) {
+                    action->setChecked(true);
+                }
+            }
+
+        } else {
+            // The service only provides one view mode (common case)
+
+            QString serviceText = service->genericName();
+            if (serviceText.isEmpty())
+                serviceText = service->name();
+
+            // Create a KToggleAction for this view mode, and plug it into the menu
+            KToggleAction* action = new KToggleAction(KIcon(service->icon()), serviceText, this);
+            actionCollection()->addAction(desktopEntryName, action);
+            action->setObjectName(desktopEntryName);
+            action->setActionGroup(m_viewModesGroup);
+            m_viewModeMenu->menu()->addAction(action);
+
+            action->setChecked(bIsCurrentView);
+        }
+    }
+
+    // No view mode for actions toggable views
+    // (The other way would be to enforce a better servicetype for them, than Browser/View)
+    if (!m_currentView->isToggleView()
+        /* already tested: && services.count() > 1 */
+        && m_viewModeMenu) {
+        plugViewModeActions();
+    }
+}
+
+void KonqMainWindow::slotInternalViewModeChanged()
+{
+    KParts::ReadOnlyPart *part = static_cast<KParts::ReadOnlyPart *>(sender());
+    KonqView * view = m_mapViews.value(part);
+    if (view) {
+        const QString actionName = view->service()->desktopEntryName();
+        const QString actionData = view->internalViewMode();
+        Q_FOREACH(QAction* action, m_viewModesGroup->actions()) {
+            if (action->objectName() == actionName &&
+                action->data().toString() == actionData) {
+                action->setChecked(true);
+                break;
+            }
+        }
+    }
+}
+
+void KonqMainWindow::plugViewModeActions()
+{
+    QList<QAction*> lst;
+    lst.append( m_viewModeMenu );
+    plugActionList( "viewmode", lst );
+}
+
+void KonqMainWindow::unplugViewModeActions()
+{
+    unplugActionList( "viewmode" );
+}
+
+void KonqMainWindow::updateBookmarkBar()
+{
+    KToolBar * bar = qFindChild<KToolBar *>(this, "bookmarkToolBar");
+    if (!bar) return;
+    if (m_paBookmarkBar && bar->actions().isEmpty() )
+        bar->hide();
+
+}
+
+void KonqMainWindow::closeEvent( QCloseEvent *e )
+{
+    // This breaks session management (the window is withdrawn in kwin)
+    // so let's do this only when closed by the user.
+
+    // kapp is 0 in unit tests
+    if (kapp && !kapp->sessionSaving()) {
+      KonqFrameTabs* tabContainer = m_pViewManager->tabContainer();
+      if ( tabContainer->count() > 1 )
+      {
+        KSharedConfig::Ptr config = KGlobal::config();
+        KConfigGroup cs( config, QLatin1String("Notification Messages") );
+
+        if ( !cs.hasKey( "MultipleTabConfirm" ) )
+        {
+          switch (
+              KMessageBox::warningYesNoCancel(
+                  this,
+                  i18n("You have multiple tabs open in this window, "
+                        "are you sure you want to quit?"),
+                  i18n("Confirmation"),
+                  KStandardGuiItem::closeWindow(),
+                  KGuiItem(i18n( "C&lose Current Tab" ), "tab-close"),
+                  KStandardGuiItem::cancel(),
+                  "MultipleTabConfirm"
+              )
+            ) {
+            case KMessageBox::Yes :
+            break;
+            case KMessageBox::No :
+            {
+              e->ignore();
+              slotRemoveTab();
+              return;
+            }
+            break;
+            case KMessageBox::Cancel :
+            {
+              e->ignore();
+    	      return;
+            }
+          }
+        }
+      }
+
+      const int originalTabIndex = tabContainer->currentIndex();
+      for (int tabIndex = 0; tabIndex < tabContainer->count(); ++tabIndex) {
+          KonqFrameBase* tab = tabContainer->tabAt(tabIndex);
+          if (!KonqModifiedViewsCollector::collect(tab).isEmpty()) {
+              m_pViewManager->showTab(tabIndex);
+              const QString question = m_pViewManager->isTabBarVisible()
+                                     ? i18n("This tab contains changes that have not been submitted.\nClosing the window will discard these changes.")
+                                     : i18n("This page contains changes that have not been submitted.\nClosing the window will discard these changes.");
+              if ( KMessageBox::warningContinueCancel(
+                       this, question,
+                       i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"application-exit"),
+                       KStandardGuiItem::cancel(), "discardchangesclose") != KMessageBox::Continue ) {
+                  e->ignore();
+                  m_pViewManager->showTab(originalTabIndex);
+                  return;
+              }
+          }
+      }
+
+      if (settingsDirty() && autoSaveSettings())
+          saveAutoSaveSettings();
+
+      addClosedWindowToUndoList();
+
+      hide();
+      qApp->flush();
+  }
+  // We're going to close - tell the parts
+  MapViews::ConstIterator it = m_mapViews.constBegin();
+  MapViews::ConstIterator end = m_mapViews.constEnd();
+  for (; it != end; ++it )
+  {
+      if ( (*it)->part() && (*it)->part()->widget() )
+          QApplication::sendEvent( (*it)->part()->widget(), e );
+  }
+  KParts::MainWindow::closeEvent( e );
+  if( isPreloaded() && !kapp->sessionSaving())
+  { // queryExit() refused closing, hide instead
+      hide();
+  }
+}
+
+void KonqMainWindow::addClosedWindowToUndoList()
+{
+    kDebug();
+
+    // 1. We get the current title
+    int numTabs = m_pViewManager->tabContainer()->childFrameList().count();
+    QString title( i18n("no name") );
+
+    if(m_currentView)
+        title = m_currentView->caption();
+
+    // 2. Create the KonqClosedWindowItem and  save its config
+    KonqClosedWindowItem* closedWindowItem = new KonqClosedWindowItem(title, m_pUndoManager->newCommandSerialNumber(), numTabs);
+    saveProperties( closedWindowItem->configGroup() );
+
+    // 3. Add the KonqClosedWindowItem to the undo list
+    m_paClosedItems->setEnabled(true);
+    m_pUndoManager->addClosedWindowItem( closedWindowItem );
+
+    kDebug() << "done";
+}
+
+bool KonqMainWindow::queryExit()
+{
+    if( kapp && kapp->sessionSaving()) // *sigh*
+        return true;
+    return !stayPreloaded();
+}
+
+void KonqMainWindow::updateWindowIcon()
+{
+    const QString url = m_combo->currentText();
+    // TODO (kfm-devel email 13/09/2008) should we use a profile-defined icon instead of a url-dependent window icon?
+    const QPixmap pix = KonqPixmapProvider::self()->pixmapFor( url );
+    KParts::MainWindow::setWindowIcon( pix );
+
+    QPixmap big = pix;
+    if (!url.isEmpty()) {
+       big = KonqPixmapProvider::self()->pixmapFor( url, KIconLoader::SizeMedium );
+    }
+
+    KWindowSystem::setIcons( winId(), big, pix );
+}
+
+void KonqMainWindow::slotIntro()
+{
+  openUrl( 0, KUrl("about:") );
+}
+
+void KonqMainWindow::goURL()
+{
+  QLineEdit *lineEdit = m_combo->lineEdit();
+  if ( !lineEdit )
+    return;
+
+  QKeyEvent event( QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier, QChar('\n') );
+  QApplication::sendEvent( lineEdit, &event );
+}
+
+/**
+ * Adds the URL of a KonqView to the closed tabs list.
+ * This slot gets called each time a View is closed.
+ */
+void KonqMainWindow::slotAddClosedUrl(KonqFrameBase *tab)
+{
+    kDebug();
+    QString title( i18n("no name") ), url("about:blank");
+
+    // Did the tab contain a single frame, or a splitter?
+    KonqFrame* frame = dynamic_cast<KonqFrame *>(tab);
+    if (!frame) {
+        KonqFrameContainer* frameContainer = dynamic_cast<KonqFrameContainer *>(tab);
+        if (frameContainer->activeChildView())
+            frame = frameContainer->activeChildView()->frame();
+    }
+
+    KParts::ReadOnlyPart* part = frame ? frame->part() : 0;
+    if (part)
+        url = part->url().url();
+    if (frame)
+        title = frame->title().trimmed();
+    if (title.isEmpty())
+        title = url;
+    title = KStringHandler::csqueeze( title, 50 );
+
+    // Now we get the position of the tab
+    const int index =  m_pViewManager->tabContainer()->childFrameList().indexOf(tab);
+
+    KonqClosedTabItem* closedTabItem = new KonqClosedTabItem(url, title, index, m_pUndoManager->newCommandSerialNumber());
+
+    QString prefix = KonqFrameBase::frameTypeToString( tab->frameType() ) + QString::number(0);
+    closedTabItem->configGroup().writeEntry( "RootItem", prefix );
+    prefix.append( QLatin1Char( '_' ) );
+    KonqFrameBase::Options flags = KonqFrameBase::saveHistoryItems;
+    tab->saveConfig( closedTabItem->configGroup(), prefix, flags, 0L, 0, 1);
+
+    m_paClosedItems->setEnabled(true);
+    m_pUndoManager->addClosedTabItem( closedTabItem );
+
+    kDebug() << "done";
+}
+
+void KonqMainWindow::slotLocationLabelActivated()
+{
+  focusLocationBar();
+  m_combo->lineEdit()->selectAll();
+}
+
+void KonqMainWindow::slotOpenURL( const KUrl& url )
+{
+    openUrl( 0, url );
+}
+
+bool KonqMainWindow::sidebarVisible() const
+{
+    QAction *a = m_toggleViewGUIClient->action("konq_sidebartng");
+    return (a && static_cast<KToggleAction*>(a)->isChecked());
+}
+
+bool KonqMainWindow::fullScreenMode() const
+{
+    return m_ptaFullScreen->isChecked();
+}
+
+void KonqMainWindow::slotAddWebSideBar(const KUrl& url, const QString& name)
+{
+    if (url.url().isEmpty() && name.isEmpty())
+        return;
+
+    kDebug() << "Requested to add URL" << url << " [" << name << "] to the sidebar!";
+
+    QAction *a = m_toggleViewGUIClient->action("konq_sidebartng");
+    if (!a) {
+        KMessageBox::sorry(0, i18n("Your sidebar is not functional or unavailable. A new entry cannot be added."), i18n("Web Sidebar"));
+        return;
+    }
+
+    int rc = KMessageBox::questionYesNo(0,
+              i18n("Add new web extension \"%1\" to your sidebar?",
+                                 name.isEmpty() ? name : url.prettyUrl()),
+              i18n("Web Sidebar"),KGuiItem(i18n("Add")),KGuiItem(i18n("Do Not Add")));
+
+    if (rc == KMessageBox::Yes) {
+        // Show the sidebar
+        if (!static_cast<KToggleAction*>(a)->isChecked()) {
+            a->trigger();
+        }
+
+        // Tell it to add a new panel
+        MapViews::ConstIterator it;
+        for (it = viewMap().constBegin(); it != viewMap().constEnd(); ++it) {
+            KonqView *view = it.value();
+            if (view) {
+                KService::Ptr svc = view->service();
+                if (svc->desktopEntryName() == "konq_sidebartng") {
+                    emit view->browserExtension()->addWebSideBar(url, name);
+                    break;
+                }
+            }
+        }
+    }
+}
+
+void KonqMainWindow::bookmarksIntoCompletion( const KBookmarkGroup& group )
+{
+    static const QString& http = KGlobal::staticQString( "http" );
+    static const QString& ftp = KGlobal::staticQString( "ftp" );
+
+    if ( group.isNull() )
+        return;
+
+    for ( KBookmark bm = group.first();
+          !bm.isNull(); bm = group.next(bm) ) {
+        if ( bm.isGroup() ) {
+            bookmarksIntoCompletion( bm.toGroup() );
+            continue;
+        }
+
+        KUrl url = bm.url();
+        if ( !url.isValid() )
+            continue;
+
+        QString u = url.prettyUrl();
+        s_pCompletion->addItem( u );
+
+        if ( url.isLocalFile() )
+            s_pCompletion->addItem( url.toLocalFile() );
+        else if ( url.protocol() == http )
+            s_pCompletion->addItem( u.mid( 7 ));
+        else if ( url.protocol() == ftp &&
+                  url.host().startsWith( ftp ) )
+            s_pCompletion->addItem( u.mid( 6 ) );
+    }
+}
+
+//
+// the smart popup completion code , <l.lunak@kde.org>
+//
+
+// prepend http://www. or http:// if there's no protocol in 's'
+// This is used only when there are no completion matches
+static QString hp_tryPrepend( const QString& s )
+{
+    if (s.isEmpty() || s[0] == QLatin1Char('/') || s[0] == QLatin1Char('~'))
+        return QString();
+    for( int pos = 0;
+         pos < s.length() - 2; // 4 = ://x
+         ++pos )
+        {
+        if( s[ pos ] == ':' && s[ pos + 1 ] == '/' && s[ pos + 2 ] == '/' )
+            return QString();
+        if( !s[ pos ].isLetter() )
+            break;
+        }
+    return ( s.startsWith( "www." ) ? "http://" : "http://www." ) + s;
+}
+
+
+static void hp_removeDupe( KCompletionMatches& l, const QString& dupe,
+                           KCompletionMatches::Iterator it_orig )
+{
+    KCompletionMatches::Iterator it = it_orig + 1;
+    while (it != l.end()) {
+        if( (*it).value() == dupe ) {
+            (*it_orig).first = qMax( (*it_orig).first, (*it).key());
+            it = l.erase( it );
+            continue;
+        }
+        ++it;
+    }
+}
+
+// remove duplicates like 'http://www.kde.org' and 'http://www.kde.org/'
+// (i.e. the trailing slash)
+// some duplicates are also created by prepending protocols
+static void hp_removeDuplicates( KCompletionMatches& l )
+{
+    QString http = "http://";
+    QString ftp = "ftp://ftp.";
+    QString file = "file:";
+    QString file2 = "file://";
+    l.removeDuplicates();
+    for( KCompletionMatches::Iterator it = l.begin();
+         it != l.end();
+         ++it ) {
+        QString str = (*it).value();
+        if( str.startsWith( http )) {
+            if( str.indexOf( '/', 7 ) < 0 ) { // http://something<noslash>
+                hp_removeDupe( l, str + '/', it );
+                hp_removeDupe( l, str.mid( 7 ) + '/', it );
+            } else if( str[ str.length() - 1 ] == '/' ) {
+                hp_removeDupe( l, str.left( str.length() - 1 ), it );
+                hp_removeDupe( l, str.left( str.length() - 1 ).mid( 7 ), it );
+            }
+            hp_removeDupe( l, str.mid( 7 ), it );
+        }
+        else if( str.startsWith( ftp )) // ftp://ftp.
+            hp_removeDupe( l, str.mid( 6 ), it ); // remove dupes without ftp://
+        else if( str.startsWith( file2 ))
+            hp_removeDupe( l, str.mid( 7 ), it ); // remove dupes without file://
+        else if( str.startsWith( file ))
+            hp_removeDupe( l, str.mid( 5 ), it ); // remove dupes without file:
+    }
+}
+
+static void hp_removeCommonPrefix( KCompletionMatches& l, const QString& prefix )
+{
+    for( KCompletionMatches::Iterator it = l.begin();
+         it != l.end();
+         ) {
+        if( (*it).value().startsWith( prefix )) {
+            it = l.erase( it );
+            continue;
+        }
+        ++it;
+    }
+}
+
+// don't include common prefixes like 'http://', i.e. when s == 'h', include
+// http://hotmail.com but don't include everything just starting with 'http://'
+static void hp_checkCommonPrefixes( KCompletionMatches& matches, const QString& s )
+{
+    static const char* const prefixes[] = {
+        "http://",
+        "https://",
+        "www.",
+        "ftp://",
+        "http://www.",
+        "https://www.",
+        "ftp://ftp.",
+        "file:",
+        "file://",
+        NULL };
+    for( const char* const *pos = prefixes;
+         *pos != NULL;
+         ++pos ) {
+        QString prefix = *pos;
+        if( prefix.startsWith( s )) {
+            hp_removeCommonPrefix( matches, prefix );
+        }
+    }
+}
+
+QStringList KonqMainWindow::historyPopupCompletionItems( const QString& s)
+{
+    const QString http = "http://";
+    const QString https = "https://";
+    const QString www = "http://www.";
+    const QString wwws = "https://www.";
+    const QString ftp = "ftp://";
+    const QString ftpftp = "ftp://ftp.";
+    const QString file = "file:"; // without /, because people enter /usr etc.
+    const QString file2 = "file://";
+    if( s.isEmpty())
+	    return QStringList();
+    KCompletionMatches matches= s_pCompletion->allWeightedMatches( s );
+    hp_checkCommonPrefixes( matches, s );
+    bool checkDuplicates = false;
+    if ( !s.startsWith( ftp ) ) {
+        matches += s_pCompletion->allWeightedMatches( ftp + s );
+	if( QString( "ftp." ).startsWith( s ))
+            hp_removeCommonPrefix( matches, ftpftp );
+        checkDuplicates = true;
+    }
+    if ( !s.startsWith( https ) ) {
+        matches += s_pCompletion->allWeightedMatches( https + s );
+	if( QString( "www." ).startsWith( s ))
+            hp_removeCommonPrefix( matches, wwws );
+        checkDuplicates = true;
+    }
+    if ( !s.startsWith( http )) {
+        matches += s_pCompletion->allWeightedMatches( http + s );
+	if( QString( "www." ).startsWith( s ))
+            hp_removeCommonPrefix( matches, www );
+        checkDuplicates = true;
+    }
+    if ( !s.startsWith( www ) ) {
+        matches += s_pCompletion->allWeightedMatches( www + s );
+        checkDuplicates = true;
+    }
+    if ( !s.startsWith( wwws ) ) {
+        matches += s_pCompletion->allWeightedMatches( wwws + s );
+        checkDuplicates = true;
+    }
+    if ( !s.startsWith( ftpftp ) ) {
+        matches += s_pCompletion->allWeightedMatches( ftpftp + s );
+        checkDuplicates = true;
+    }
+    if ( !s.startsWith( file ) ) {
+        matches += s_pCompletion->allWeightedMatches( file + s );
+        checkDuplicates = true;
+    }
+    if ( !s.startsWith( file2 ) ) {
+        matches += s_pCompletion->allWeightedMatches( file2 + s );
+        checkDuplicates = true;
+    }
+    if( checkDuplicates )
+        hp_removeDuplicates( matches );
+    QStringList items = matches.list();
+    if( items.count() == 0
+	&& !s.contains( ':' ) && !s.isEmpty() && s[ 0 ] != '/' )
+        {
+        QString pre = hp_tryPrepend( s );
+        if( !pre.isNull())
+            items += pre;
+        }
+    return items;
+}
+
+#ifndef NDEBUG
+void KonqMainWindow::dumpViewList()
+{
+    kDebug() << m_mapViews.count() << "views:";
+
+    MapViews::Iterator end = m_mapViews.end();
+    for (MapViews::Iterator it = m_mapViews.begin(); it != end; ++it) {
+        KonqView* view = it.value();
+        kDebug() << view << view->part();
+    }
+}
+#endif
+
+// KonqFrameContainerBase implementation BEGIN
+
+void KonqMainWindow::insertChildFrame( KonqFrameBase * frame, int /*index*/ )
+{
+  m_pChildFrame = frame;
+  m_pActiveChild = frame;
+  frame->setParentContainer(this);
+  if ( centralWidget() && centralWidget() != frame->asQWidget() ) {
+      centralWidget()->setParent( 0 ); // workaround Qt-4.1.2 crash (reported)
+      setCentralWidget( 0 );
+  }
+  setCentralWidget( frame->asQWidget() );
+}
+
+void KonqMainWindow::childFrameRemoved(KonqFrameBase* frame)
+{
+    Q_ASSERT(frame == m_pChildFrame);
+    Q_UNUSED(frame)
+    m_pChildFrame = 0;
+    m_pActiveChild = 0;
+}
+
+void KonqMainWindow::saveConfig( KConfigGroup& config, const QString &prefix, const KonqFrameBase::Options &options, KonqFrameBase* docContainer, int id, int depth ) { if( m_pChildFrame ) m_pChildFrame->saveConfig( config, prefix, options, docContainer, id, depth); }
+
+void KonqMainWindow::copyHistory( KonqFrameBase *other ) { if( m_pChildFrame ) m_pChildFrame->copyHistory( other ); }
+
+void KonqMainWindow::setTitle( const QString &/*title*/ , QWidget* /*sender*/) { return; }
+void KonqMainWindow::setTabIcon( const KUrl &/*url*/, QWidget* /*sender*/ ) { return; }
+
+QWidget* KonqMainWindow::asQWidget() { return this; }
+
+KonqFrameBase::FrameType KonqMainWindow::frameType() const { return KonqFrameBase::MainWindow; }
+
+KonqFrameBase* KonqMainWindow::childFrame()const { return m_pChildFrame; }
+
+void KonqMainWindow::setActiveChild( KonqFrameBase* /*activeChild*/ ) { return; }
+
+void KonqMainWindow::setWorkingTab(int index)
+{
+    m_workingTab = index;
+}
+
+bool KonqMainWindow::isMimeTypeAssociatedWithSelf( const QString &mimeType )
+{
+    return isMimeTypeAssociatedWithSelf( mimeType, KMimeTypeTrader::self()->preferredService( mimeType, "Application" ) );
+}
+
+bool KonqMainWindow::isMimeTypeAssociatedWithSelf( const QString &/*mimeType*/, const KService::Ptr &offer )
+{
+    // Prevention against user stupidity : if the associated app for this mimetype
+    // is konqueror/kfmclient, then we'll loop forever. So we have to
+    // 1) force embedding first, if that works we're ok
+    // 2) check what KRun is going to do before calling it.
+    return ( offer && ( offer->desktopEntryName() == "konqueror" ||
+             offer->exec().trimmed().startsWith( "kfmclient" ) ) );
+}
+
+bool KonqMainWindow::refuseExecutingKonqueror(const QString& mimeType)
+{
+    if ( activeViewsNotLockedCount() > 0 ) { // if I lock the only view, then there's no error: open links in a new window
+        KMessageBox::error( this, i18n("There appears to be a configuration error. You have associated Konqueror with %1, but it cannot handle this file type.", mimeType));
+        return true; // we refuse indeed
+    }
+    return false; // no error
+}
+
+// KonqFrameContainerBase implementation END
+
+void KonqMainWindow::setPreloadedFlag( bool preloaded )
+{
+    if( s_preloaded == preloaded )
+        return;
+    s_preloaded = preloaded;
+    if( s_preloaded )
+    {
+        kapp->disableSessionManagement(); // don't restore preloaded konqy's
+        KonqSessionManager::self()->disableAutosave(); // don't save sessions
+        return; // was registered before calling this
+    }
+    delete s_preloadedWindow; // preloaded state was abandoned without reusing the window
+    s_preloadedWindow = NULL;
+    kapp->enableSessionManagement(); // enable SM again
+    KonqSessionManager::self()->enableAutosave(); // enable session saving again
+    QDBusInterface ref( "org.kde.kded", "/modules/konqy_preloader", "org.kde.konqueror.Preloader", QDBusConnection::sessionBus() );
+    ref.call( "unregisterPreloadedKonqy", QDBusConnection::sessionBus().baseService() );
+}
+
+void KonqMainWindow::setPreloadedWindow( KonqMainWindow* window )
+{
+    s_preloadedWindow = window;
+    if( window == NULL )
+        return;
+    window->viewManager()->clear();
+    KIO::Scheduler::unregisterWindow( window );
+}
+
+// used by preloading - this KonqMainWindow will be reused, reset everything
+// that won't be reset by loading a profile
+void KonqMainWindow::resetWindow()
+{
+#ifdef Q_WS_X11
+    char data[ 1 ];
+    // empty append to get current X timestamp
+    QWidget tmp_widget;
+    XChangeProperty( QX11Info::display(), tmp_widget.winId(), XA_WM_CLASS, XA_STRING, 8,
+		    PropModeAppend, reinterpret_cast<unsigned char*>(&data), 0 );
+    XEvent ev;
+    XWindowEvent( QX11Info::display(), tmp_widget.winId(), PropertyChangeMask, &ev );
+    long x_time = ev.xproperty.time;
+    // bad hack - without updating the _KDE_NET_WM_USER_CREATION_TIME property,
+    // KWin will apply don't_steal_focus to this window, and will not make it active
+    // (shows mainly with 'konqueror --preload')
+    static Atom atom = XInternAtom( QX11Info::display(), "_KDE_NET_WM_USER_CREATION_TIME", False );
+    XChangeProperty( QX11Info::display(), winId(), atom, XA_CARDINAL, 32,
+		     PropModeReplace, reinterpret_cast<unsigned char *>(&x_time), 1);
+    // reset also user time, so that this window won't have _NET_WM_USER_TIME set
+    QX11Info::setAppUserTime(CurrentTime);
+
+    static Atom atom3 = XInternAtom( QX11Info::display(), "_NET_WM_USER_TIME", False );
+    XDeleteProperty( QX11Info::display(), winId(), atom3 );
+#endif
+// Qt remembers the iconic state if the window was withdrawn while on another virtual desktop
+    setWindowState( windowState() & ~Qt::WindowMinimized );
+    ignoreInitialGeometry();
+}
+
+bool KonqMainWindow::event( QEvent* e )
+{
+    if( e->type() == QEvent::DeferredDelete )
+    {
+        // since the preloading code tries to reuse KonqMainWindow,
+        // the last window shouldn't be really deleted, but only hidden
+        // deleting WDestructiveClose windows is done using deleteLater(),
+        // so catch QEvent::DeferredDelete and check if this window should stay
+        if( stayPreloaded())
+        {
+            setAttribute(Qt::WA_DeleteOnClose); // was reset before deleteLater()
+            return true; // no deleting
+        }
+
+    } else if ( e->type() == QEvent::StatusTip) {
+        if (m_currentView && m_currentView->frame()->statusbar()) {
+            KonqFrameStatusBar *statusBar = m_currentView->frame()->statusbar();
+            statusBar->message(static_cast<QStatusTipEvent*>(e)->tip());
+        }
+    }
+
+    if ( KonqFileSelectionEvent::test( e ) ||
+         KonqFileMouseOverEvent::test( e ) )
+    {
+        // Forward the event to all views
+        MapViews::ConstIterator it = m_mapViews.constBegin();
+        MapViews::ConstIterator end = m_mapViews.constEnd();
+        for (; it != end; ++it )
+            QApplication::sendEvent( (*it)->part(), e );
+        return true;
+    }
+    if ( KParts::OpenUrlEvent::test( e ) )
+    {
+        KParts::OpenUrlEvent * ev = static_cast<KParts::OpenUrlEvent*>(e);
+
+        // Forward the event to all views
+        MapViews::ConstIterator it = m_mapViews.constBegin();
+        MapViews::ConstIterator end = m_mapViews.constEnd();
+        for (; it != end; ++it )
+        {
+            // Don't resend to sender
+            if (it.key() != ev->part())
+            {
+                //kDebug() << "Sending event to view" << it.key()->metaObject()->className();
+                QApplication::sendEvent( it.key(), e );
+            }
+        }
+    }
+    return KParts::MainWindow::event( e );
+}
+
+bool KonqMainWindow::stayPreloaded()
+{
+#ifdef Q_WS_X11
+    // last window?
+    if( mainWindowList()->count() > 1 )
+        return false;
+    // not running in full KDE environment?
+    if( getenv( "KDE_FULL_SESSION" ) == NULL || getenv( "KDE_FULL_SESSION" )[ 0 ] == '\0' )
+        return false;
+    // not the same user like the one running the session (most likely we're run via sudo or something)
+    if( getenv( "KDE_SESSION_UID" ) != NULL && uid_t( atoi( getenv( "KDE_SESSION_UID" ))) != getuid())
+        return false;
+    if( KonqSettings::maxPreloadCount() == 0 )
+        return false;
+    viewManager()->clear(); // reduce resource usage before checking it
+    if( !checkPreloadResourceUsage())
+        return false;
+    QDBusInterface ref( "org.kde.kded", "/modules/konqy_preloader", "org.kde.konqueror.Preloader", QDBusConnection::sessionBus() );
+    QX11Info info;
+    QDBusReply<bool> retVal = ref.call( QDBus::Block, "registerPreloadedKonqy", QDBusConnection::sessionBus().baseService(), info.screen());
+    if ( !retVal )
+    {
+        return false;
+    }
+    KonqMainWindow::setPreloadedFlag( true );
+    kDebug() << "Konqy kept for preloading:" << QDBusConnection::sessionBus().baseService();
+    KonqMainWindow::setPreloadedWindow( this );
+    return true;
+#else
+    return false;
+#endif
+}
+
+// try to avoid staying running when leaking too much memory
+// this is checked by using mallinfo() and comparing
+// memory usage during konqy startup and now, if the difference
+// is too large -> leaks -> quit
+// also, if this process is running for too long, or has been
+// already reused too many times -> quit, just in case
+bool KonqMainWindow::checkPreloadResourceUsage()
+{
+    if(
+#ifndef NDEBUG
+        isatty( STDIN_FILENO ) ||
+#endif
+        isatty( STDOUT_FILENO ) || isatty( STDERR_FILENO ))
+    {
+        kDebug() << "Running from tty, not keeping for preloading";
+        return false;
+    }
+    int limit;
+    int usage = current_memory_usage( &limit );
+    kDebug() << "Memory usage increase: " << ( usage - s_initialMemoryUsage )
+        << " (" << usage << "/" << s_initialMemoryUsage << "), increase limit: " << limit;
+    int max_allowed_usage = s_initialMemoryUsage + limit;
+    if( usage > max_allowed_usage ) // too much memory used?
+    {
+	kDebug() << "Not keeping for preloading due to high memory usage";
+	return false;
+    }
+    // working memory usage test ( usage != 0 ) makes others less strict
+    if( ++s_preloadUsageCount > ( usage != 0 ? 100 : 10 )) // reused too many times?
+    {
+	kDebug() << "Not keeping for preloading due to high usage count";
+	return false;
+    }
+    if( time( NULL ) > s_startupTime + 60 * 60 * ( usage != 0 ? 4 : 1 )) // running for too long?
+    {
+	kDebug() << "Not keeping for preloading due to long usage time";
+	return false;
+    }
+    return true;
+}
+
+static int current_memory_usage( int* limit )
+{
+#ifdef __linux__  //krazy:exclude=cpp
+// Check whole memory usage - VmSize
+    QFile f( QString::fromLatin1( "/proc/%1/statm" ).arg(getpid()) );
+    if( f.open( QIODevice::ReadOnly ))
+    {
+        QByteArray buffer; buffer.resize( 100 );
+        const int bytes = f.readLine( buffer.data(), buffer.size()-1 );
+        if ( bytes != -1 )
+        {
+            QString line = QString::fromLatin1( buffer ).trimmed();
+            const int usage = line.section( ' ', 0, 0 ).toInt();
+            if( usage > 0 )
+            {
+                int pagesize = sysconf (_SC_PAGE_SIZE);
+                if( pagesize < 0 )
+                    pagesize = 4096;
+                if( limit != NULL )
+                    *limit = 16 * 1024 * 1024;
+                return usage * pagesize;
+            }
+        }
+    }
+    kWarning() << "Couldn't read VmSize from /proc/*/statm." ;
+#endif
+// Check malloc() usage - very imprecise, but better than nothing.
+    int usage_sum = 0;
+#if defined(KDE_MALLINFO_STDLIB) || defined(KDE_MALLINFO_MALLOC)
+    struct mallinfo m = mallinfo();
+#ifdef KDE_MALLINFO_FIELD_hblkhd
+    usage_sum += m.hblkhd;
+#endif
+#ifdef KDE_MALLINFO_FIELD_uordblks
+    usage_sum += m.uordblks;
+#endif
+#ifdef KDE_MALLINFO_FIELD_usmblks
+    usage_sum += m.usmblks;
+#endif
+    // unlike /proc , this doesn't include things like size of dlopened modules,
+    // and also doesn't include malloc overhead
+    if( limit != NULL )
+        *limit = 6 * 1024 * 1024;
+#endif
+    return usage_sum;
+}
+
+void KonqMainWindow::slotUndoTextChanged( const QString & newText )
+{
+  m_paUndo->setText(newText);
+}
+
+// outlined because of QPointer and gcc3
+KonqView * KonqMainWindow::currentView() const
+{
+     return m_currentView;
+}
+
+bool KonqMainWindow::accept( KonqFrameVisitor* visitor )
+{
+    return visitor->visit( this )
+           && (!m_pChildFrame || m_pChildFrame->accept( visitor ))
+           && visitor->endVisit( this );
+}
+
+void KonqMainWindow::applyWindowSizeFromProfile(const KConfigGroup& profileGroup)
+{
+    // KMainWindow::restoreWindowSize is protected so this logic can't move to KonqViewManager
+    const QSize size = KonqViewManager::readDefaultSize(profileGroup, this); // example: "Width=80%"
+    if (size.isValid())
+        resize(size);
+    restoreWindowSize(profileGroup); // example: "Width 1400=1120"
+}
+
+#include "konqmainwindow.moc"
diff -pruN 4:4.6.3-1/.pc/kubuntu_24_folderview_livecd_directory.diff/plasma/applets/folderview/folderview.cpp 4:4.6.3-1ubuntu1/.pc/kubuntu_24_folderview_livecd_directory.diff/plasma/applets/folderview/folderview.cpp
--- 4:4.6.3-1/.pc/kubuntu_24_folderview_livecd_directory.diff/plasma/applets/folderview/folderview.cpp	1970-01-01 01:00:00.000000000 +0100
+++ 4:4.6.3-1ubuntu1/.pc/kubuntu_24_folderview_livecd_directory.diff/plasma/applets/folderview/folderview.cpp	2011-04-28 14:15:36.000000000 +0100
@@ -0,0 +1,1986 @@
+/*
+ *   Copyright © 2008, 2009 Fredrik Höglund <fredrik@kde.org>
+ *   Copyright © 2008 Rafael Fernández López <ereslibre@kde.org>
+ *
+ *   This library is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU Library General Public
+ *   License as published by the Free Software Foundation; either
+ *   version 2 of the License, or (at your option) any later version.
+ *
+ *   This library 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
+ *   Library General Public License for more details.
+ *
+ *   You should have received a copy of the GNU Library General Public License
+ *   along with this library; see the file COPYING.LIB.  If not, write to
+ *   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *   Boston, MA 02110-1301, USA.
+ */
+
+#include "folderview.h"
+
+#include <QClipboard>
+#include <QDesktopWidget>
+#include <QGraphicsLinearLayout>
+#include <QGraphicsView>
+#include <QGraphicsSceneDragDropEvent>
+#include <QImageReader>
+#include <QItemSelectionModel>
+
+#include <KAction>
+#include <KAuthorized>
+#include <KBookmarkManager>
+#include <KConfigDialog>
+#include <KDebug>
+#include <KDesktopFile>
+#include <KDirModel>
+#include <KFileItemDelegate>
+#include <kfileplacesmodel.h>
+#include <kfilepreviewgenerator.h>
+#include <KGlobalSettings>
+#include <KStandardShortcut>
+#include <KStringHandler>
+#include <KTemporaryFile>
+#include <KStandardDirs>
+#include <KMenu>
+
+#include <kio/copyjob.h>
+#include <kio/fileundomanager.h>
+#include <kio/paste.h>
+
+#include <kfileitemactions.h>
+#include <kfileitemlistproperties.h>
+
+#include <knewfilemenu.h>
+#include <konqmimedata.h>
+#include <konq_operations.h>
+#include <konq_popupmenu.h>
+#include <konq_popupmenuinformation.h>
+
+#include <limits.h>
+
+#ifdef Q_OS_WIN
+#  define _WIN32_WINNT 0x0500 // require NT 5.0 (win 2k pro)
+#  include <windows.h>
+#endif // Q_OS_WIN
+
+#include <Plasma/Corona>
+#include <Plasma/PaintUtils>
+#include <Plasma/Theme>
+#include <Plasma/ToolTipManager>
+#include <Plasma/Wallpaper>
+#include <Plasma/WindowEffects>
+
+#include "dirlister.h"
+#include "dialog.h"
+#include "folderviewadapter.h"
+#include "iconwidget.h"
+#include "label.h"
+#include "previewpluginsmodel.h"
+#include "proxymodel.h"
+#include "listview.h"
+
+
+K_EXPORT_PLASMA_APPLET(folderview, FolderView)
+
+MimeModel::MimeModel(QObject *parent)
+    : QStringListModel(parent)
+{
+    m_mimetypes = KMimeType::allMimeTypes();
+}
+
+QVariant MimeModel::data(const QModelIndex &index, int role) const
+{
+    if (!index.isValid()) {
+        return QVariant();
+    }
+    KMimeType *mime = static_cast<KMimeType*>(index.internalPointer());
+    switch (role) {
+        case Qt::DisplayRole: {
+            if (!mime->comment().isEmpty()) {
+                QString description;
+                if (mime->patterns().count()) {
+                    description = mime->patterns().join(", ");
+                } else {
+                    description = mime->name();
+                }
+                return QString("%1 (%2)").arg(mime->comment()).arg(description);
+            } else {
+                return mime->name();
+            }
+        }
+        case Qt::DecorationRole:
+            return KIcon(mime->iconName());
+        case Qt::CheckStateRole:
+            return m_state[mime];
+        default:
+            return QStringListModel::data(index, role);
+    }
+}
+
+Qt::ItemFlags MimeModel::flags(const QModelIndex &index) const
+{
+    Qt::ItemFlags itemFlags = QStringListModel::flags(index);
+    itemFlags &= ~Qt::ItemIsEditable;
+    if (!index.isValid()) {
+        return itemFlags;
+    }
+    return itemFlags | Qt::ItemIsUserCheckable;
+}
+
+QModelIndex MimeModel::index(int row, int column, const QModelIndex &parent) const
+{
+    if (parent.isValid() || row >= m_mimetypes.count()) {
+        return QModelIndex();
+    }
+    return createIndex(row, column, (void*) m_mimetypes[row].data());
+}
+
+int MimeModel::rowCount(const QModelIndex &parent) const
+{
+    if (parent.isValid()) {
+        return 0;
+    }
+    return m_mimetypes.count();
+}
+
+bool MimeModel::setData(const QModelIndex &index, const QVariant &value, int role)
+{
+    if (!index.isValid()) {
+        return false;
+    }
+
+    if (role == Qt::CheckStateRole) {
+        KMimeType *mime = static_cast<KMimeType*>(index.internalPointer());
+        m_state[mime] = (Qt::CheckState) value.toInt();
+        emit dataChanged(index, index);
+        return true;
+    }
+
+    return QStringListModel::setData(index, value, role);
+}
+
+
+
+// ---------------------------------------------------------------------------
+
+
+
+ProxyMimeModel::ProxyMimeModel(QObject *parent)
+    : QSortFilterProxyModel(parent)
+{
+}
+
+void ProxyMimeModel::setSourceModel(QAbstractItemModel *sourceModel)
+{
+    QSortFilterProxyModel::setSourceModel(sourceModel);
+    sort(0);
+}
+
+void ProxyMimeModel::setFilter(const QString &filter)
+{
+    m_filter = filter;
+    invalidateFilter();
+}
+
+bool ProxyMimeModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+    KMimeType *leftPtr = static_cast<KMimeType*>(left.internalPointer());
+    KMimeType *rightPtr = static_cast<KMimeType*>(right.internalPointer());
+
+    return KStringHandler::naturalCompare(leftPtr->comment(), rightPtr->comment()) < 0;
+}
+
+bool ProxyMimeModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
+{
+    QModelIndex sourceIndex = sourceModel()->index(source_row, 0, source_parent);
+    KMimeType *mime = static_cast<KMimeType*>(sourceIndex.internalPointer());
+    if (m_filter.isEmpty()) {
+        return true;
+    }
+
+    const bool fastRet = mime->comment().contains(m_filter, Qt::CaseInsensitive) ||
+                   ((!mime->patterns().count() || mime->comment().isEmpty()) && mime->name().contains(m_filter, Qt::CaseInsensitive));
+
+    if (fastRet) {
+        return true;
+    }
+
+    foreach (const QString &pattern, mime->patterns()) {
+        if (pattern.contains(m_filter, Qt::CaseInsensitive)) {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+
+
+// ---------------------------------------------------------------------------
+
+
+
+// Proxy model for KFilePlacesModel that filters out hidden items.
+class PlacesFilterModel : public QSortFilterProxyModel
+{
+public:
+    PlacesFilterModel(QObject *parent = 0) : QSortFilterProxyModel(parent) {}
+    bool filterAcceptsRow(int row, const QModelIndex &parent) const {
+        KFilePlacesModel *model = static_cast<KFilePlacesModel*>(sourceModel());
+        const QModelIndex index = model->index(row, 0, parent);
+        return !model->isHidden(index);
+    }
+};
+
+
+
+// ---------------------------------------------------------------------------
+
+
+
+RemoteWallpaperSetter::RemoteWallpaperSetter(const KUrl &url, FolderView *containment)
+    : QObject(containment)
+{
+    const QString suffix = QFileInfo(url.fileName()).suffix();
+
+    KTemporaryFile file;
+    file.setPrefix(KGlobal::dirs()->saveLocation("wallpaper"));
+    file.setSuffix(QString(".") + suffix);
+    file.setAutoRemove(false);
+
+    if (file.open()) {
+        KIO::FileCopyJob *job = KIO::file_copy(url, KUrl::fromPath(file.fileName()), -1, KIO::Overwrite);
+        connect(job, SIGNAL(result(KJob*)), SLOT(result(KJob*)));
+    } else {
+        deleteLater();
+    }
+}
+
+void RemoteWallpaperSetter::result(KJob *job)
+{
+    if (!job->error()) {
+        FolderView *containment = static_cast<FolderView*>(parent());
+        KIO::FileCopyJob *copyJob = static_cast<KIO::FileCopyJob*>(job);
+        containment->setWallpaper(copyJob->destUrl());
+    }
+    deleteLater();
+}
+
+
+
+// ---------------------------------------------------------------------------
+
+
+
+FolderView::FolderView(QObject *parent, const QVariantList &args)
+    : Plasma::Containment(parent, args),
+      m_previewGenerator(0),
+      m_placesModel(0),
+      m_itemActions(0),
+      m_iconView(0),
+      m_listView(0),
+      m_label(0),
+      m_iconWidget(0),
+      m_dialog(0),
+      m_newMenu(0),
+      m_actionCollection(this)
+{
+    setAspectRatioMode(Plasma::IgnoreAspectRatio);
+    setHasConfigurationInterface(true);
+    setAcceptHoverEvents(true);
+    setAcceptDrops(true);
+
+    m_dirModel = new KDirModel(this);
+    m_dirModel->setDropsAllowed(KDirModel::DropOnDirectory | KDirModel::DropOnLocalExecutable);
+
+    m_model = new ProxyModel(this);
+    m_model->setSourceModel(m_dirModel);
+    m_model->setSortLocaleAware(true);
+    m_model->setFilterCaseSensitivity(Qt::CaseInsensitive);
+
+    m_delegate = new KFileItemDelegate(this);
+    m_selectionModel = new QItemSelectionModel(m_model, this);
+
+    if (args.count() > 0) {
+        setUrl(KUrl(args.value(0).toString()));
+    }
+
+    resize(600, 400);
+
+    // As we use some part of konqueror libkonq must be added to have translations
+    KGlobal::locale()->insertCatalog("libkonq");
+}
+
+void FolderView::init()
+{
+    Containment::init();
+    setContainmentType(DesktopContainment);
+
+    // Find out about icon and font settings changes
+    connect(KGlobalSettings::self(), SIGNAL(kdisplayFontChanged()), SLOT(fontSettingsChanged()));
+    connect(KGlobalSettings::self(), SIGNAL(iconChanged(int)), SLOT(iconSettingsChanged(int)));
+
+    // Find out about theme changes
+    connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()), SLOT(themeChanged()));
+
+    // Find out about network availability changes
+    connect(Solid::Networking::notifier(), SIGNAL(statusChanged(Solid::Networking::Status)),
+            SLOT(networkStatusChanged(Solid::Networking::Status)));
+
+    KConfigGroup cg = config();
+    m_customLabel         = cg.readEntry("customLabel", "");
+    m_customIconSize      = cg.readEntry("customIconSize", 0);
+    m_showPreviews        = cg.readEntry("showPreviews", true);
+    m_drawShadows         = cg.readEntry("drawShadows", true);
+    m_numTextLines        = cg.readEntry("numTextLines", 2);
+    m_textColor           = cg.readEntry("textColor", QColor(Qt::transparent));
+    m_iconsLocked         = cg.readEntry("iconsLocked", false);
+    m_alignToGrid         = cg.readEntry("alignToGrid", false);
+    m_previewPlugins      = cg.readEntry("previewPlugins", QStringList() << "imagethumbnail" << "jpegthumbnail");
+    m_sortDirsFirst       = cg.readEntry("sortDirsFirst", true);
+    m_sortColumn          = cg.readEntry("sortColumn", int(KDirModel::Name));
+    m_filterFiles         = cg.readEntry("filterFiles", "*");
+    m_filterType          = cg.readEntry("filter", 0);
+    m_filterFilesMimeList = cg.readEntry("mimeFilter", QStringList());
+
+    m_userSelectedShowAllFiles = m_filterType;
+    if (isContainment()) {
+        m_flow = layoutDirection() == Qt::LeftToRight ? IconView::TopToBottom : IconView::TopToBottomRightToLeft;
+    } else {
+        m_flow = layoutDirection() == Qt::LeftToRight ? IconView::LeftToRight : IconView::RightToLeft;
+    }
+    m_flow = static_cast<IconView::Flow>(cg.readEntry("flow", static_cast<int>(m_flow)));
+
+    m_model->setFilterMode(ProxyModel::filterModeFromInt(m_filterType));
+    m_model->setMimeTypeFilterList(m_filterFilesMimeList);
+    m_model->setFileNameFilter(m_filterFiles);
+    m_model->setSortDirectoriesFirst(m_sortDirsFirst);
+    m_model->setDynamicSortFilter(m_sortColumn != -1);
+    m_model->sort(m_sortColumn != -1 ? m_sortColumn : KDirModel::Name, Qt::AscendingOrder);
+
+    DirLister *lister = new DirLister(this);
+    lister->setDelayedMimeTypes(true);
+    lister->setAutoErrorHandlingEnabled(false, 0);
+
+    m_dirModel->setDirLister(lister);
+
+    if (!m_url.isValid()) {
+
+        //FIXME: 4.3 Need to update folderview's description
+        QString path = QDir::homePath();
+        if (isContainment()) {
+            const QString desktopPath = KGlobalSettings::desktopPath();
+            const QDir desktopFolder(desktopPath);
+
+            if (desktopPath != QDir::homePath() && desktopFolder.exists()) {
+                path = QString("desktop:/");
+            }
+        }
+        setUrl(cg.readEntry("url", KUrl(path)));
+
+    } else {
+        KConfigGroup cg = config();
+        cg.writeEntry("url", m_url);
+    }
+
+    // TODO: 4.3 Check if the URL is a remote URL, and if it is check the network status
+    //       and display a message saying it's not available, instead of trying to open
+    //       the URL and waiting for the job to time out.
+    lister->openUrl(m_url);
+
+    createActions();
+    
+    if (isContainment()) {
+        setupIconView();
+
+        // Set a low Z value so applets don't end up below the icon view
+        m_iconView->setZValue(INT_MIN);
+    }
+
+    // Set the associated application
+    KService::List offers = KFileItemActions::associatedApplications(QStringList() << "inode/directory", QString());
+    if (!offers.isEmpty()) {
+        setAssociatedApplication(offers.first()->exec());
+        setAssociatedApplicationUrls(KUrl::List() << m_url);
+
+        // contextualActions() includes KFileItemActions::preferredOpenWithAction(),
+        // so we'll hide the one Plasma provides.
+        if (QAction *runAction = action("run associated application")) {
+            runAction->setVisible(false);
+        }
+    }
+
+    connect(QApplication::clipboard(), SIGNAL(dataChanged()), SLOT(clipboardDataChanged()));
+}
+
+void FolderView::configChanged()
+{
+    Containment::configChanged();
+    KConfigGroup cg = config();
+
+    //Declare some variables that are used afterwards
+    bool needReload = false;
+    bool preserveIconPositions = false;
+
+    //Reload m_customLabel values
+    QString label = m_customLabel;
+    m_customLabel = cg.readEntry("customLabel", m_customLabel);
+    if (label != m_customLabel) {
+        needReload = true;
+    }
+
+    //Reload m_customIconSize values
+    const int size = m_customIconSize;
+    m_customIconSize = cg.readEntry("customIconSize", m_customIconSize);
+    if (size != iconSize().width()) {
+        needReload = true;
+    }
+
+    m_showPreviews = cg.readEntry("showPreviews", m_showPreviews);
+    m_drawShadows  = cg.readEntry("drawShadows", m_drawShadows);
+    m_iconsLocked  = cg.readEntry("iconsLocked", m_iconsLocked);
+    m_alignToGrid  = cg.readEntry("alignToGrid", m_alignToGrid);
+    m_numTextLines = cg.readEntry("numTextLines", m_numTextLines);
+
+    const int filterType = m_filterType;
+    m_filterType   = cg.readEntry("filter", m_filterType);
+    if (filterType != m_filterType) {
+        needReload = true;
+    }
+
+    QColor color = m_textColor;
+    m_textColor = cg.readEntry("textColor", m_textColor);
+    if (color != m_textColor) {
+        needReload = true;
+    }
+
+    m_previewPlugins = cg.readEntry("previewPlugins", m_previewPlugins);
+
+    if (m_previewGenerator && m_previewPlugins != m_previewGenerator->enabledPlugins()) {
+        m_previewGenerator->setEnabledPlugins(m_previewPlugins);
+
+        //Changing the preview plugins will also need a reload to work, so we need to preserve
+        //the icons position
+        needReload = true;
+        preserveIconPositions = true;
+    }
+
+    m_sortDirsFirst = cg.readEntry("sortDirsFirst", m_sortDirsFirst);
+    toggleDirectoriesFirst(m_sortDirsFirst);
+
+    const int sortColumn = m_sortColumn;
+    m_sortColumn = cg.readEntry("sortColumn", m_sortColumn);
+    if (m_sortColumn != sortColumn) {
+        if (m_sortColumn != -1) {
+            m_model->invalidate();
+            m_model->sort(m_sortColumn, Qt::AscendingOrder);
+            m_model->setDynamicSortFilter(true);
+        } else if (m_iconView) {
+            m_iconView->setCustomLayout(true);
+            m_model->setDynamicSortFilter(false);
+        }
+        updateSortActionsState();
+    }
+
+    const QString filterFiles = m_filterFiles;
+    m_filterFiles = cg.readEntry("filterFiles", m_filterFiles);
+
+    if (filterFiles != m_filterFiles) {
+        needReload = true;
+    }
+
+    const QStringList mimeFilter = m_filterFilesMimeList;
+    m_filterFilesMimeList = cg.readEntry("mimeFilter", m_filterFilesMimeList);
+
+    if (mimeFilter != m_filterFilesMimeList) {
+        needReload = true;
+    }
+
+    const KUrl url = m_url;
+    m_url = cg.readEntry("url", m_url);
+    if (url != m_url) {
+        setUrl(m_url);
+        needReload = true;
+    }
+
+
+    if (m_iconView) {
+        updateIconViewState();
+    }
+
+    if (m_listView) {
+        updateListViewState();
+    }
+
+    if (needReload) {
+        //Manually save and restore the icon positions if we need it
+        QStringList iconPositionsData;
+        if (preserveIconPositions && m_iconView) {
+            iconPositionsData = m_iconView->iconPositionsData();
+
+        }
+
+
+        if (preserveIconPositions && m_iconView) {
+             m_iconView->setIconPositionsData(iconPositionsData);
+        }
+        // So the KFileItemActions will be recreated for the new URL.
+        delete m_itemActions;
+        m_itemActions = 0;
+        m_dirModel->dirLister()->openUrl(m_url);
+    }
+}
+
+FolderView::~FolderView()
+{
+    delete m_newMenu;
+}
+
+void FolderView::saveState(KConfigGroup &config) const
+{
+    Q_UNUSED(config)
+    saveIconPositions();
+}
+
+void FolderView::createConfigurationInterface(KConfigDialog *parent)
+{
+    QWidget *widgetFilter = new QWidget;
+    QWidget *widgetDisplay = new QWidget;
+    QWidget *widgetLocation = new QWidget;
+    uiFilter.setupUi(widgetFilter);
+    uiDisplay.setupUi(widgetDisplay);
+    uiLocation.setupUi(widgetLocation);
+
+    if (!m_placesModel) {
+        m_placesModel = new KFilePlacesModel(this);
+    }
+
+    PlacesFilterModel *placesFilter = new PlacesFilterModel(parent);
+    placesFilter->setSourceModel(m_placesModel);
+    uiLocation.placesCombo->setModel(placesFilter);
+
+    QString desktopPath = KGlobalSettings::desktopPath();
+    QDir desktopFolder(desktopPath);
+
+    const bool desktopVisible = desktopPath != QDir::homePath() && desktopFolder.exists();
+    uiLocation.showDesktopFolder->setVisible(desktopVisible);
+
+    if (desktopVisible && m_url == KUrl("desktop:/")) {
+        uiLocation.showDesktopFolder->setChecked(true);
+        uiLocation.placesCombo->setEnabled(false);
+        uiLocation.lineEdit->setEnabled(false);
+    } else {
+        QModelIndex index;
+        for (int i = 0; i < placesFilter->rowCount(); i++) {
+            const KUrl url = m_placesModel->url(placesFilter->mapToSource(placesFilter->index(i, 0)));
+            if (url.equals(m_url, KUrl::CompareWithoutTrailingSlash)) {
+                index = placesFilter->index(i, 0);
+                break;
+            }
+        }
+        if (index.isValid()) {
+            uiLocation.placesCombo->setCurrentIndex(index.row());
+            uiLocation.showPlace->setChecked(true);
+            uiLocation.lineEdit->setEnabled(false);
+        } else {
+            uiLocation.showCustomFolder->setChecked(true);
+            uiLocation.lineEdit->setUrl(m_url);
+            uiLocation.placesCombo->setEnabled(false);
+        }
+    }
+
+    uiLocation.lineEdit->setMode(KFile::Directory);
+    uiFilter.filterFilesPattern->setText(m_filterFiles);
+
+    MimeModel *mimeModel = new MimeModel(uiFilter.filterFilesList);
+    ProxyMimeModel *pMimeModel = new ProxyMimeModel(uiFilter.filterFilesList);
+    pMimeModel->setSourceModel(mimeModel);
+    uiFilter.filterFilesList->setModel(pMimeModel);
+
+    // The label is not shown when the applet is acting as a containment,
+    // so don't confuse the user by making it editable.
+    if (isContainment()) {
+        uiDisplay.lblCustomLabel->hide();
+        uiDisplay.labelEdit->hide();
+        uiDisplay.headerTitle->hide();
+    }
+
+    uiDisplay.labelEdit->setText(m_titleText);
+
+    const QList<int> iconSizes = QList<int>() << 16 << 22 << 32 << 48 << 64 << 128;
+    uiDisplay.sizeSlider->setRange(0, iconSizes.size() - 1);
+    uiDisplay.sizeSlider->setValue(iconSizes.indexOf(iconSize().width()));
+
+    // Only add "Unsorted" as an option when we're showing an icon view, since the list view
+    // doesn't allow the user to rearrange the icons.
+    if (m_iconView) {
+        uiDisplay.sortCombo->addItem(i18nc("Sort Icons", "Unsorted"), -1);
+    }
+    uiDisplay.sortCombo->addItem(KGlobal::locale()->removeAcceleratorMarker(m_actionCollection.action("sort_name")->text()), KDirModel::Name);
+    uiDisplay.sortCombo->addItem(KGlobal::locale()->removeAcceleratorMarker(m_actionCollection.action("sort_size")->text()), KDirModel::Size);
+    uiDisplay.sortCombo->addItem(KGlobal::locale()->removeAcceleratorMarker(m_actionCollection.action("sort_type")->text()), KDirModel::Type);
+    uiDisplay.sortCombo->addItem(KGlobal::locale()->removeAcceleratorMarker(m_actionCollection.action("sort_date")->text()), KDirModel::ModifiedTime);
+
+    uiDisplay.flowCombo->addItem(i18n("Top to Bottom, Left to Right"), IconView::TopToBottom);
+    uiDisplay.flowCombo->addItem(i18n("Top to Bottom, Right to Left"), IconView::TopToBottomRightToLeft);
+    uiDisplay.flowCombo->addItem(i18n("Left to Right, Top to Bottom"), IconView::LeftToRight);
+    uiDisplay.flowCombo->addItem(i18n("Right to Left, Top to Bottom"), IconView::RightToLeft);
+
+    uiDisplay.alignToGrid->setChecked(m_alignToGrid);
+    uiDisplay.lockInPlace->setChecked(m_iconsLocked);
+    uiDisplay.drawShadows->setChecked(m_drawShadows);
+    uiDisplay.showPreviews->setChecked(m_showPreviews);
+    uiDisplay.previewsAdvanced->setEnabled(m_showPreviews);
+    uiDisplay.numLinesEdit->setValue(m_numTextLines);
+    uiDisplay.colorButton->setColor(textColor());
+
+    for (int i = 0; i < uiDisplay.sortCombo->maxCount(); i++) {
+       if (m_sortColumn == uiDisplay.sortCombo->itemData(i).toInt()) {
+           uiDisplay.sortCombo->setCurrentIndex(i);
+           break;
+       }
+    }
+
+    for (int i = 0; i < uiDisplay.flowCombo->maxCount(); i++) {
+       if (m_flow == uiDisplay.flowCombo->itemData(i).toInt()) {
+           uiDisplay.flowCombo->setCurrentIndex(i);
+           break;
+       }
+    }
+
+    // Hide the icon arrangement controls when we're not acting as a containment,
+    // since this option doesn't make much sense in the applet.
+    if (!isContainment()) {
+        uiDisplay.flowLabel->hide();
+        uiDisplay.flowCombo->hide();
+    }
+
+    connect(uiFilter.searchMimetype, SIGNAL(textChanged(QString)), pMimeModel, SLOT(setFilter(QString)));
+
+    parent->addPage(widgetLocation, i18nc("Title of the page that lets the user choose which location should the folderview show", "Location"), "folder");
+    parent->addPage(widgetDisplay, i18nc("Title of the page that lets the user choose how the folderview should be shown", "Display"), "preferences-desktop-display");
+    parent->addPage(widgetFilter, i18nc("Title of the page that lets the user choose how to filter the folderview contents", "Filter"), "view-filter");
+    parent->setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply);
+
+    connect(parent, SIGNAL(applyClicked()), this, SLOT(configAccepted()));
+    connect(parent, SIGNAL(okClicked()), this, SLOT(configAccepted()));
+    connect(uiLocation.showPlace, SIGNAL(toggled(bool)), uiLocation.placesCombo, SLOT(setEnabled(bool)));
+    connect(uiLocation.showCustomFolder, SIGNAL(toggled(bool)), uiLocation.lineEdit, SLOT(setEnabled(bool)));
+    connect(uiFilter.filterType, SIGNAL(currentIndexChanged(int)), this, SLOT(filterChanged(int)));
+    connect(uiFilter.selectAll, SIGNAL(clicked(bool)), this, SLOT(selectUnselectAll()));
+    connect(uiFilter.deselectAll, SIGNAL(clicked(bool)), this, SLOT(selectUnselectAll()));
+    connect(uiDisplay.previewsAdvanced, SIGNAL(clicked()), this, SLOT(showPreviewConfigDialog()));
+    connect(uiDisplay.showPreviews, SIGNAL(toggled(bool)), uiDisplay.previewsAdvanced, SLOT(setEnabled(bool)));
+
+    KConfigGroup cg = config();
+    const int filter = cg.readEntry("filter", 0);
+    uiFilter.filterType->setCurrentIndex(filter);
+    filterChanged(filter);
+
+    QStringList selectedItems = cg.readEntry("mimeFilter", QStringList());
+
+    if (selectedItems.count()) {
+        for (int i = 0; i < pMimeModel->rowCount(); i++) {
+            const QModelIndex index = pMimeModel->index(i, 0);
+            const KMimeType *mime = static_cast<KMimeType*>(pMimeModel->mapToSource(index).internalPointer());
+            if (selectedItems.contains(mime->name())) {
+                selectedItems.removeAll(mime->name());
+                uiFilter.filterFilesList->model()->setData(index, Qt::Checked, Qt::CheckStateRole);
+            }
+        }
+    }
+
+    connect(uiDisplay.labelEdit, SIGNAL(textChanged(QString)), parent, SLOT(settingsModified()));
+    connect(uiDisplay.flowCombo, SIGNAL(currentIndexChanged(int)), parent, SLOT(settingsModified()));
+    connect(uiDisplay.sortCombo, SIGNAL(currentIndexChanged(int)), parent, SLOT(settingsModified()));
+    connect(uiDisplay.sizeSlider, SIGNAL(sliderMoved(int)), parent, SLOT(settingsModified()));
+    connect(uiDisplay.showPreviews, SIGNAL(toggled(bool)), parent, SLOT(settingsModified()));
+    connect(uiDisplay.lockInPlace, SIGNAL(toggled(bool)), parent, SLOT(settingsModified()));
+    connect(uiDisplay.alignToGrid, SIGNAL(toggled(bool)), parent, SLOT(settingsModified()));
+    connect(uiDisplay.numLinesEdit, SIGNAL(valueChanged(int)), parent, SLOT(settingsModified()));
+    connect(uiDisplay.colorButton, SIGNAL(changed(QColor)), parent, SLOT(settingsModified()));
+    connect(uiDisplay.drawShadows, SIGNAL(toggled(bool)), parent, SLOT(settingsModified()));
+
+    connect(uiFilter.filterType, SIGNAL(currentIndexChanged(int)), parent, SLOT(settingsModified()));
+    connect(uiFilter.filterFilesPattern, SIGNAL(textChanged(QString)), parent, SLOT(settingsModified()));
+    connect(uiFilter.filterFilesList->model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), parent, SLOT(settingsModified()));
+
+    connect(uiLocation.showDesktopFolder, SIGNAL(toggled(bool)), parent, SLOT(settingsModified()));
+    connect(uiLocation.showPlace, SIGNAL(toggled(bool)), parent, SLOT(settingsModified()));
+    connect(uiLocation.showCustomFolder, SIGNAL(toggled(bool)), parent, SLOT(settingsModified()));
+    connect(uiLocation.placesCombo, SIGNAL(currentIndexChanged(int)), parent, SLOT(settingsModified()));
+    connect(uiLocation.lineEdit, SIGNAL(textChanged(QString)), parent, SLOT(settingsModified()));
+}
+
+void FolderView::configAccepted()
+{
+    KUrl url;
+
+    if (uiLocation.showDesktopFolder->isChecked()) {
+        url = KUrl("desktop:/");
+    } else if (uiLocation.showPlace->isChecked()) {
+        PlacesFilterModel *filter = static_cast<PlacesFilterModel*>(uiLocation.placesCombo->model());
+        KFilePlacesModel *model = static_cast<KFilePlacesModel*>(filter->sourceModel());
+        url = model->url(filter->mapToSource(filter->index(uiLocation.placesCombo->currentIndex(), 0)));
+    } else {
+        url = uiLocation.lineEdit->url();
+    }
+
+    if (url.isEmpty()) {
+        url = KUrl(QDir::homePath());
+    }
+
+    // Now, we have to iterate over all items (not only the filtered ones). For that reason we have
+    // to ask the source model, not the proxy model.
+    QStringList selectedItems;
+    ProxyMimeModel *proxyModel = static_cast<ProxyMimeModel*>(uiFilter.filterFilesList->model());
+    for (int i = 0; i < proxyModel->sourceModel()->rowCount(); i++) {
+        const QModelIndex index = proxyModel->sourceModel()->index(i, 0);
+        if (index.model()->data(index, Qt::CheckStateRole).toInt() == Qt::Checked) {
+            selectedItems << static_cast<KMimeType*>(index.internalPointer())->name();
+        }
+    }
+
+    const int filterType = uiFilter.filterType->currentIndex();
+    KConfigGroup cg = config();
+    bool needReload = false;
+    bool preserveIconPositions = false;
+
+    if (m_drawShadows != uiDisplay.drawShadows->isChecked()) {
+        m_drawShadows = uiDisplay.drawShadows->isChecked();
+        cg.writeEntry("drawShadows", m_drawShadows);
+    }
+
+    if (m_showPreviews != uiDisplay.showPreviews->isChecked()) {
+        m_showPreviews = uiDisplay.showPreviews->isChecked();
+        cg.writeEntry("showPreviews", m_showPreviews);
+
+        //As disabling the previews will force a rearrangement, we need to manually
+        //save and restore the icons positions
+
+        QStringList iconPositionsData;
+        if (!m_showPreviews && m_iconView) {
+            //Save the icon positions
+            iconPositionsData = m_iconView->iconPositionsData();
+        }
+
+        //Enable/disable the previews
+        m_previewGenerator->setPreviewShown(m_showPreviews);
+
+        if (!m_showPreviews && m_iconView) {
+            //Restore the icon positions
+            m_iconView->setIconPositionsData(iconPositionsData);
+        }
+    }
+
+    if (m_previewGenerator && m_previewPlugins != m_previewGenerator->enabledPlugins()) {
+        cg.writeEntry("previewPlugins", m_previewPlugins);
+        m_previewGenerator->setEnabledPlugins(m_previewPlugins);
+
+        //Changing the preview plugins will also need a reload to work, so we need to preserve
+        //the icons position
+        needReload = true;
+        preserveIconPositions = true;
+    }
+    
+    const QColor defaultColor = isContainment() ? Qt::white :
+            Plasma::Theme::defaultTheme()->color(Plasma::Theme::TextColor);
+    const QColor color = uiDisplay.colorButton->color();
+    if ((m_textColor != Qt::transparent && color != m_textColor) ||
+        (m_textColor == Qt::transparent && color != defaultColor))
+    {
+        m_textColor = color;
+        cg.writeEntry("textColor", m_textColor);
+    }
+
+    if (m_numTextLines != uiDisplay.numLinesEdit->value()) {
+        m_numTextLines = uiDisplay.numLinesEdit->value();
+        cg.writeEntry("numTextLines", m_numTextLines);
+    }
+
+    const QList<int> iconSizes = QList<int>() << 16 << 22 << 32 << 48 << 64 << 128;
+    const int size = iconSizes.at(uiDisplay.sizeSlider->value());
+    if (size != iconSize().width())
+    {
+        m_customIconSize = size;
+        cg.writeEntry("customIconSize", m_customIconSize);
+
+        // This is to force the preview images to be regenerated with the new size
+        if (m_showPreviews) {
+            needReload = true;
+        }
+    }
+
+    const int sortColumn = uiDisplay.sortCombo->itemData(uiDisplay.sortCombo->currentIndex()).toInt();
+    if (m_sortColumn != sortColumn) {
+        m_sortColumn = sortColumn;
+        if (m_sortColumn != -1) {
+            m_model->invalidate();
+            m_model->sort(m_sortColumn, Qt::AscendingOrder);
+            m_model->setDynamicSortFilter(true);
+        } else if (m_iconView) {
+            m_iconView->setCustomLayout(true);
+            m_model->setDynamicSortFilter(false);
+        }
+        updateSortActionsState();
+        cg.writeEntry("sortColumn", m_sortColumn);
+    }
+
+    const int flow = uiDisplay.flowCombo->itemData(uiDisplay.flowCombo->currentIndex()).toInt();
+    if (m_flow != flow) {
+        m_flow = static_cast<IconView::Flow>(flow);
+        cg.writeEntry("flow", flow);
+    }
+
+    if (m_alignToGrid != uiDisplay.alignToGrid->isChecked()) {
+        m_alignToGrid = uiDisplay.alignToGrid->isChecked();
+        cg.writeEntry("alignToGrid", m_alignToGrid);
+        m_actionCollection.action("auto_align")->setChecked(m_alignToGrid);
+    }
+
+    if (m_iconsLocked != uiDisplay.lockInPlace->isChecked()) {
+        m_iconsLocked = uiDisplay.lockInPlace->isChecked();
+        cg.writeEntry("iconsLocked", m_iconsLocked);
+        m_actionCollection.action("lock_icons")->setChecked(m_iconsLocked);
+    }
+
+    const QString label = uiDisplay.labelEdit->text();
+    if ((m_customLabel.isEmpty() && label != m_titleText) ||
+        (!m_customLabel.isEmpty() && label != m_customLabel))
+    {
+        m_customLabel = label;
+        setUrl(url);
+        cg.writeEntry("customLabel", m_customLabel);
+    }
+
+    if (m_url != url || m_filterFiles != uiFilter.filterFilesPattern->text() ||
+        m_filterFilesMimeList != selectedItems || m_filterType != filterType)
+    {
+        m_model->setFileNameFilter(uiFilter.filterFilesPattern->text());
+        m_filterFiles = uiFilter.filterFilesPattern->text();
+        m_filterFilesMimeList = selectedItems;
+        m_filterType = filterType;
+        setUrl(url);
+
+        cg.writeEntry("url", m_url);
+        cg.writeEntry("filterFiles", m_filterFiles);
+        cg.writeEntry("filter", m_filterType);
+	m_userSelectedShowAllFiles = m_filterType;
+        cg.writeEntry("mimeFilter", m_filterFilesMimeList);
+
+        m_model->setMimeTypeFilterList(m_filterFilesMimeList);
+        m_model->setFilterMode(ProxyModel::filterModeFromInt(m_filterType));
+        needReload = true;
+    }
+
+    if (m_iconView) {
+        updateIconViewState();
+    }
+
+    if (m_listView) {
+        updateListViewState();
+    }
+
+    if (needReload) {
+        //Manually save and restore the icon positions if we need it
+        QStringList iconPositionsData;
+        if (preserveIconPositions && m_iconView) {
+            iconPositionsData = m_iconView->iconPositionsData();
+        }
+
+        m_dirModel->dirLister()->openUrl(m_url);
+
+        if (preserveIconPositions && m_iconView) {
+             m_iconView->setIconPositionsData(iconPositionsData);
+        }
+        // So the KFileItemActions will be recreated for the new URL.
+        delete m_itemActions;
+        m_itemActions = 0;
+    }
+
+    m_delayedSaveTimer.start(5000, this);
+    emit configNeedsSaving();
+}
+
+void FolderView::setWallpaper(const KUrl &url)
+{
+    if (!url.isLocalFile()) {
+        return;
+    }
+
+    const QString wallpaper = url.toLocalFile();
+    Plasma::Wallpaper::ResizeMethod resizeMethod = Plasma::Wallpaper::MaxpectResize;
+
+    // Try to read the image size without loading the image
+    QImageReader reader(wallpaper);
+    QSize size = reader.size();
+
+    if (!size.isEmpty()) {
+        if (size.width() < geometry().width() / 2 && size.height() < geometry().height() / 2) {
+            // If the image size is less than a quarter of the size of the containment,
+            // center it instead of scaling it.
+           resizeMethod = Plasma::Wallpaper::CenteredResize;
+        } else {
+            // Permit up to 10% of the image to be cropped in either dimension as a result of scaling.
+            size.scale(geometry().size().toSize(), Qt::KeepAspectRatioByExpanding);
+            if (size.width() / geometry().width() < 1.1 && size.height() / geometry().height() < 1.1) {
+                resizeMethod = Plasma::Wallpaper::ScaledAndCroppedResize;
+            } else {
+                resizeMethod = Plasma::Wallpaper::MaxpectResize;
+            }
+        }
+    }
+
+    KConfigGroup cg = config();
+    cg = KConfigGroup(&cg, "Wallpaper");
+    cg = KConfigGroup(&cg, "image");
+
+    QStringList userWallpapers = cg.readEntry("userswallpapers", QStringList());
+    if (!userWallpapers.contains(wallpaper)) {
+        userWallpapers.append(wallpaper);
+        cg.writeEntry("userswallpapers", userWallpapers);
+    }
+
+    cg.writeEntry("wallpaper", wallpaper);
+    cg.writeEntry("wallpaperposition", int(resizeMethod));
+    cg.sync();
+
+    Plasma::Containment::setWallpaper("image", "SingleImage");
+}
+
+void FolderView::showPreviewConfigDialog()
+{
+    QWidget *widget = new QWidget;
+    uiPreviewConfig.setupUi(widget);
+
+    PreviewPluginsModel *model = new PreviewPluginsModel(this);
+    model->setCheckedPlugins(m_previewPlugins);
+
+    uiPreviewConfig.listView->setModel(model);
+
+    KDialog *dialog = new KDialog;
+    dialog->setMainWidget(widget);
+
+    if (dialog->exec() == KDialog::Accepted) {
+        m_previewPlugins = model->checkedPlugins();
+    }
+
+    delete widget;
+    delete dialog;
+    delete model;
+}
+
+QColor FolderView::textColor() const
+{
+    if (m_textColor != Qt::transparent) {
+        return m_textColor;
+    }
+
+    // Default to white text on the desktop
+    if (isContainment()) {
+        return Qt::white;
+    }
+
+    return Plasma::Theme::defaultTheme()->color(Plasma::Theme::TextColor);
+}
+
+void FolderView::updateListViewState()
+{
+    QPalette palette = m_listView->palette();
+    palette.setColor(QPalette::Text, m_textColor != Qt::transparent ? m_textColor :
+                     Plasma::Theme::defaultTheme()->color(Plasma::Theme::TextColor));
+    m_listView->setPalette(palette);
+
+    const QFont font = Plasma::Theme::defaultTheme()->font(Plasma::Theme::DesktopFont);
+    if (m_listView->font() != font) {
+        m_listView->setFont(font);
+    }
+    m_listView->setDrawShadows(m_drawShadows);
+    m_listView->setIconSize(iconSize());
+    m_listView->setWordWrap(m_numTextLines > 1);
+    if ( m_iconView ) {
+        m_iconView->setTextLineCount(m_numTextLines);
+    }
+}
+
+void FolderView::updateIconViewState()
+{
+    QPalette palette = m_iconView->palette();
+    palette.setColor(QPalette::Text, textColor());
+    m_iconView->setPalette(palette);
+
+    m_iconView->setDrawShadows(m_drawShadows);
+    m_iconView->setIconSize(iconSize());
+    m_iconView->setTextLineCount(m_numTextLines);
+    m_iconView->setFlow(m_flow);
+    m_iconView->setWordWrap(m_numTextLines > 1);
+    m_iconView->setAlignToGrid(m_alignToGrid);
+    m_iconView->setIconsMoveable(!m_iconsLocked);
+    m_iconView->setClickToViewFolders(config().readEntry("clickForFolderPreviews", true));
+
+    if (m_label) {
+        m_label->setPalette(palette);
+        m_label->setDrawShadow(m_drawShadows);
+    }
+    // make popup inherit file preview settings:
+    m_iconView->setPopupPreviewSettings(m_showPreviews, m_previewPlugins);
+}
+
+void FolderView::addActions(AbstractItemView *view)
+{
+    view->addAction(m_actionCollection.action("rename"));
+    view->addAction(m_actionCollection.action("cut"));
+    view->addAction(m_actionCollection.action("undo"));
+    view->addAction(m_actionCollection.action("copy"));
+    view->addAction(m_actionCollection.action("paste"));
+    view->addAction(m_actionCollection.action("pasteto"));
+    view->addAction(m_actionCollection.action("refresh"));
+    view->addAction(m_actionCollection.action("trash"));
+    view->addAction(m_actionCollection.action("del"));
+}
+
+void FolderView::setupIconView()
+{
+    if (m_iconView) {
+        return;
+    }
+
+    m_iconView = new IconView(this);
+    m_iconView->setModel(m_model);
+    m_iconView->setItemDelegate(m_delegate);
+    m_iconView->setSelectionModel(m_selectionModel);
+    m_iconView->setFont(Plasma::Theme::defaultTheme()->font(Plasma::Theme::DesktopFont));
+
+    // Add widget specific actions with shortcuts to the view
+    addActions(m_iconView);
+
+    if (!isContainment()) {
+        m_label = new Label(this);
+        m_label->setText(m_titleText);
+
+        QFont font = Plasma::Theme::defaultTheme()->font(Plasma::Theme::DesktopFont);
+        font.setPointSize(font.pointSize() + 1);
+        font.setBold(true);
+        m_label->setFont(font);
+    }
+
+    updateIconViewState();
+
+    const QStringList data = config().readEntry("savedPositions", QStringList());
+    m_iconView->setIconPositionsData(data);
+
+    connect(m_iconView, SIGNAL(activated(QModelIndex)), SLOT(activated(QModelIndex)));
+    connect(m_iconView, SIGNAL(indexesMoved(QModelIndexList)), SLOT(indexesMoved(QModelIndexList)));
+    connect(m_iconView, SIGNAL(contextMenuRequest(QWidget*,QPoint)), SLOT(contextMenuRequest(QWidget*,QPoint)));
+    connect(m_iconView, SIGNAL(busy(bool)), SLOT(setBusy(bool)));
+
+    FolderViewAdapter *adapter = new FolderViewAdapter(m_iconView);
+    m_previewGenerator = new KFilePreviewGenerator(adapter, m_model);
+    m_previewGenerator->setPreviewShown(m_showPreviews);
+    m_previewGenerator->setEnabledPlugins(m_previewPlugins);
+
+    QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, this);
+    layout->setContentsMargins(0, 0, 0, 0);
+    layout->setSpacing(0);
+    if (m_label) {
+        layout->addItem(m_label);
+    }
+    layout->addItem(m_iconView);
+
+    setLayout(layout);
+}
+
+void FolderView::fontSettingsChanged()
+{
+    QFont font = Plasma::Theme::defaultTheme()->font(Plasma::Theme::DesktopFont);
+
+    if (m_iconView) {
+        m_iconView->setFont(font);
+    }
+
+    if (m_label) {
+        font.setPointSize(font.pointSize() + 1);
+        font.setBold(true);
+        m_label->setFont(font);
+    }
+}
+
+void FolderView::iconSettingsChanged(int group)
+{
+    if (group == KIconLoader::Desktop && m_iconView) {
+        const int size = (m_customIconSize != 0) ?
+                m_customIconSize : KIconLoader::global()->currentSize(KIconLoader::Desktop);
+
+        m_iconView->setIconSize(QSize(size, size));
+        m_iconView->markAreaDirty(m_iconView->visibleArea());
+        m_iconView->update();
+    } else if (group == KIconLoader::Panel && m_listView) {
+        const int size = (m_customIconSize != 0) ?
+                m_customIconSize : KIconLoader::global()->currentSize(KIconLoader::Panel);
+
+        m_listView->setIconSize(QSize(size, size));
+        m_listView->markAreaDirty(m_listView->visibleArea());
+        m_listView->update();
+    }
+}
+
+void FolderView::themeChanged()
+{
+    if (m_textColor != Qt::transparent) {
+        return;
+    }
+
+    if (m_iconView) {
+        QPalette palette = m_iconView->palette();
+        palette.setColor(QPalette::Text, textColor());
+        m_iconView->setPalette(palette);
+    }
+
+    if (m_listView) {
+        updateListViewState();
+    }
+
+    if (m_label) {
+        QPalette palette = m_label->palette();
+        palette.setColor(QPalette::Text, textColor());
+        m_label->setPalette(palette);
+    }
+}
+
+void FolderView::networkStatusChanged(Solid::Networking::Status status)
+{
+    if (status == Solid::Networking::Connected && !m_url.isLocalFile() &&
+        m_url.protocol() != "desktop") {
+        refreshIcons();
+    }
+}
+
+void FolderView::clipboardDataChanged()
+{
+    const QMimeData *mimeData = QApplication::clipboard()->mimeData();
+    if (KonqMimeData::decodeIsCutSelection(mimeData)) {
+        KUrl::List urls = KUrl::List::fromMimeData(mimeData);
+
+        // TODO Mark the cut icons as cut
+    }
+
+    // Update the paste action
+    if (QAction *action = m_actionCollection.action("paste"))
+    {
+        const QString actionText = KIO::pasteActionText();
+        if (!actionText.isEmpty()) {
+            action->setText(actionText);
+            action->setEnabled(true);
+        } else {
+            action->setText(i18n("&Paste"));
+            action->setEnabled(false);
+        }
+    }
+}
+
+void FolderView::saveIconPositions() const
+{
+    if (!m_iconView) {
+        return;
+    }
+
+    const QStringList data = m_iconView->iconPositionsData();
+    if (!data.isEmpty()) {
+        config().writeEntry("savedPositions", data);
+    } else {
+        config().deleteEntry("savedPositions");
+    }
+}
+
+void FolderView::paintInterface(QPainter *painter, const QStyleOptionGraphicsItem *option, const QRect &contentRect)
+{
+    Q_UNUSED(painter)
+    Q_UNUSED(option)
+    Q_UNUSED(contentRect)
+}
+
+void FolderView::constraintsEvent(Plasma::Constraints constraints)
+{
+    if (constraints & Plasma::FormFactorConstraint) {
+        if (isContainment()) {
+            setBackgroundHints(Applet::NoBackground);
+        } else if (formFactor() == Plasma::Planar || formFactor() == Plasma::MediaCenter) {
+            setBackgroundHints(Applet::TranslucentBackground);
+        }
+
+        if (formFactor() == Plasma::Planar || formFactor() == Plasma::MediaCenter) {
+            // Clean up the icon widget
+            if (m_iconWidget) {
+                disconnect(m_dirModel->dirLister(), SIGNAL(newItems(KFileItemList)), this, SLOT(updateIconWidget()));
+                disconnect(m_dirModel->dirLister(), SIGNAL(itemsDeleted(KFileItemList)), this, SLOT(updateIconWidget()));
+                disconnect(m_dirModel->dirLister(), SIGNAL(clear()), this, SLOT(updateIconWidget()));
+            }
+            delete m_iconWidget;
+            delete m_dialog;
+            m_iconWidget = 0;
+            m_dialog = 0;
+            m_listView = 0;
+
+            if (!isContainment()) {
+                // Give the applet a sane size
+                setupIconView();
+            }
+            setAspectRatioMode(Plasma::IgnoreAspectRatio);
+        } else {
+            // Clean up the icon view
+            delete m_label;
+            delete m_iconView;
+            m_label = 0;
+            m_iconView = 0;
+
+            // Set up the icon widget
+            m_iconWidget = new IconWidget(this);
+            m_iconWidget->setModel(m_dirModel);
+            m_iconWidget->setIcon(m_icon.isNull() ? KIcon("user-folder") : m_icon);
+            connect(m_iconWidget, SIGNAL(clicked()), SLOT(iconWidgetClicked()));
+
+            updateIconWidget();
+
+            // We need to update the tooltip (and maybe the icon) when the contents of the folder changes
+            connect(m_dirModel->dirLister(), SIGNAL(newItems(KFileItemList)), SLOT(updateIconWidget()));
+            connect(m_dirModel->dirLister(), SIGNAL(itemsDeleted(KFileItemList)), SLOT(updateIconWidget()));
+            connect(m_dirModel->dirLister(), SIGNAL(clear()), SLOT(updateIconWidget()));
+
+            m_listView = new ListView;
+            m_listView->setItemDelegate(m_delegate);
+            m_listView->setModel(m_model);
+            m_listView->setSelectionModel(m_selectionModel);
+
+            // Add widget specific actions with shortcuts to the view
+            addActions(m_listView);
+
+            connect(m_listView, SIGNAL(activated(QModelIndex)), SLOT(activated(QModelIndex)));
+            connect(m_listView, SIGNAL(contextMenuRequest(QWidget*,QPoint)), SLOT(contextMenuRequest(QWidget*,QPoint)));
+
+            FolderViewAdapter *adapter = new FolderViewAdapter(m_listView);
+            m_previewGenerator = new KFilePreviewGenerator(adapter, m_model);
+            m_previewGenerator->setPreviewShown(m_showPreviews);
+            m_previewGenerator->setEnabledPlugins(m_previewPlugins);
+
+            updateListViewState();
+
+            m_dialog = new Dialog;
+            m_dialog->setGraphicsWidget(m_listView); // Ownership is transferred to the scene in the dialog
+
+            QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, this);
+            layout->setContentsMargins(0, 0, 0, 0);
+            layout->setSpacing(0);
+            layout->addItem(m_iconWidget);
+
+            setLayout(layout);
+            setAspectRatioMode(Plasma::ConstrainedSquare);
+        }
+    }
+
+    if (constraints & Plasma::ScreenConstraint) {
+        Plasma::Corona *c = corona();
+        disconnect(c, SIGNAL(availableScreenRegionChanged()), this, SLOT(updateScreenRegion()));
+        if (isContainment()) {
+            if (screen() >= 0) {
+                updateScreenRegion();
+                connect(c, SIGNAL(availableScreenRegionChanged()), this, SLOT(updateScreenRegion()));
+            }
+        }
+    }
+}
+
+void FolderView::updateScreenRegion()
+{
+    if (!m_iconView) {
+        return;
+    }
+
+    Plasma::Corona *c = corona();
+    if (!c) {
+        return;
+    }
+
+    const QRect screenRect = c->screenGeometry(screen());
+    QRect availRect;
+    //FIXME: a pretty horrible hack, but there we go; should do something more elegant in 4.5
+    if (c->metaObject()->indexOfSlot("availableScreenRect(int)") != -1) {
+        QMetaObject::invokeMethod(c, "availableScreenRect",
+                                  Qt::DirectConnection, Q_RETURN_ARG(QRect, availRect), Q_ARG(int, screen()));
+    } else {
+        kDebug() << "using qdesktopwidget";
+        availRect = QApplication::desktop()->availableGeometry(screen());
+    }
+
+    m_iconView->setContentsMargins(availRect.x() - screenRect.x(),
+                                   availRect.y() - screenRect.y(),
+                                   screenRect.right() - availRect.right(),
+                                   screenRect.bottom() - availRect.bottom());
+}
+
+void FolderView::dragEnterEvent(QGraphicsSceneDragDropEvent *event)
+{
+    const QString appletMimeType = static_cast<Plasma::Corona*>(scene())->appletMimeType();
+    event->setAccepted(isContainment() && immutability() == Plasma::Mutable &&
+                       event->mimeData()->hasFormat(appletMimeType));
+}
+
+void FolderView::dragMoveEvent(QGraphicsSceneDragDropEvent *event)
+{
+    const QString appletMimeType = static_cast<Plasma::Corona*>(scene())->appletMimeType();
+    event->setAccepted(isContainment() && event->mimeData()->hasFormat(appletMimeType));
+}
+
+void FolderView::dropEvent(QGraphicsSceneDragDropEvent *event)
+{
+    const QString appletMimeType = static_cast<Plasma::Corona*>(scene())->appletMimeType();
+    if (isContainment() && event->mimeData()->hasFormat(appletMimeType)) {
+        Containment::dropEvent(event);
+    }
+}
+
+void FolderView::setUrl(const KUrl &url)
+{
+    m_url = url;
+
+    setAssociatedApplicationUrls(KUrl::List() << m_url);
+
+    // Only parse desktop files when sorting if we're showing the desktop folder
+    m_model->setParseDesktopFiles(m_url.protocol() == "desktop");
+
+    if (!m_customLabel.isEmpty()) {
+        m_titleText = m_customLabel;
+    } else if (m_url == KUrl("desktop:/")) {
+        m_titleText = i18n("Desktop Folder");
+    } else {
+        m_titleText = m_url.pathOrUrl();
+
+        if (!m_placesModel) {
+            m_placesModel = new KFilePlacesModel(this);
+        }
+        const QModelIndex index = m_placesModel->closestItem(url);
+        if (index.isValid()) {
+            m_titleText = m_titleText.right(m_titleText.length() - m_placesModel->url(index).pathOrUrl().length());
+
+            if (!m_titleText.isEmpty()) {
+                if (m_titleText.at(0) == '/') {
+                    m_titleText.remove(0, 1);
+                }
+
+                if (layoutDirection() == Qt::RightToLeft) {
+                    m_titleText.prepend(" < ");
+                } else {
+                    m_titleText.prepend(" > ");
+                }
+            }
+
+            m_titleText.prepend(m_placesModel->text(index));
+        }
+    }
+
+    if (m_label) {
+        m_label->setText(m_titleText);
+    }
+
+    updateIconWidget();
+}
+
+void FolderView::createActions()
+{
+    KIO::FileUndoManager *manager = KIO::FileUndoManager::self();
+
+    // Remove the Shift+Delete shortcut from the cut action, since it's used for deleting files
+    KAction *cut = KStandardAction::cut(this, SLOT(cut()), this);
+    KShortcut cutShortCut = cut->shortcut();
+    cutShortCut.remove(Qt::SHIFT + Qt::Key_Delete);
+    cut->setShortcut(cutShortCut);
+    cut->setShortcutContext(Qt::WidgetShortcut);
+
+    KAction *copy = KStandardAction::copy(this, SLOT(copy()), this);
+    copy->setShortcutContext(Qt::WidgetShortcut);
+
+    KAction *undo = KStandardAction::undo(manager, SLOT(undo()), this);
+    undo->setEnabled(manager->undoAvailable());
+    undo->setShortcutContext(Qt::WidgetShortcut);
+    connect(manager, SIGNAL(undoAvailable(bool)), undo, SLOT(setEnabled(bool)));
+    connect(manager, SIGNAL(undoTextChanged(QString)), SLOT(undoTextChanged(QString)));
+
+    KAction *paste = KStandardAction::paste(this, SLOT(paste()), this);
+    paste->setShortcutContext(Qt::WidgetShortcut);
+
+    QString actionText = KIO::pasteActionText();
+    if (!actionText.isEmpty()) {
+       paste->setText(actionText);
+    } else {
+       paste->setEnabled(false);
+    }
+
+    KAction *pasteTo = KStandardAction::paste(this, SLOT(pasteTo()), this);
+    pasteTo->setEnabled(false); // Only enabled during popupMenu()
+    pasteTo->setShortcutContext(Qt::WidgetShortcut);
+
+    KAction *reload = new KAction(i18n("&Reload"), this);
+    connect(reload, SIGNAL(triggered()), SLOT(refreshIcons()));
+
+    KAction *refresh = new KAction(isContainment() ? i18n("&Refresh Desktop") : i18n("&Refresh View"), this);
+    refresh->setShortcut(KStandardShortcut::reload());
+    refresh->setShortcutContext(Qt::WidgetShortcut);
+    if (isContainment()) {
+        refresh->setIcon(KIcon("user-desktop"));
+    }
+    connect(refresh, SIGNAL(triggered()), SLOT(refreshIcons()));
+
+    KAction *rename = new KAction(KIcon("edit-rename"), i18n("&Rename"), this);
+    rename->setShortcut(Qt::Key_F2);
+    rename->setShortcutContext(Qt::WidgetShortcut);
+    connect(rename, SIGNAL(triggered()), SLOT(renameSelectedIcon()));
+
+    KAction *trash = new KAction(KIcon("user-trash"), i18n("&Move to Trash"), this);
+    trash->setShortcut(Qt::Key_Delete);
+    trash->setShortcutContext(Qt::WidgetShortcut);
+    connect(trash, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)),
+            SLOT(moveToTrash(Qt::MouseButtons, Qt::KeyboardModifiers)));
+
+    KAction *emptyTrash = new KAction(KIcon("trash-empty"), i18n("&Empty Trash Bin"), this);
+    KConfig trashConfig("trashrc", KConfig::SimpleConfig);
+    emptyTrash->setEnabled(!trashConfig.group("Status").readEntry("Empty", true));
+    connect(emptyTrash, SIGNAL(triggered()), SLOT(emptyTrashBin()));
+
+    KAction *del = new KAction(i18n("&Delete"), this);
+    del->setIcon(KIcon("edit-delete"));
+    del->setShortcut(Qt::SHIFT + Qt::Key_Delete);
+    del->setShortcutContext(Qt::WidgetShortcut);
+    connect(del, SIGNAL(triggered()), SLOT(deleteSelectedIcons()));
+
+    m_actionCollection.addAction("cut", cut);
+    m_actionCollection.addAction("undo", undo);
+    m_actionCollection.addAction("copy", copy);
+    m_actionCollection.addAction("paste", paste);
+    m_actionCollection.addAction("pasteto", pasteTo);
+    m_actionCollection.addAction("reload", reload);
+    m_actionCollection.addAction("refresh", refresh);
+    m_actionCollection.addAction("rename", rename);
+    m_actionCollection.addAction("trash", trash);
+    m_actionCollection.addAction("del", del);
+    m_actionCollection.addAction("empty_trash", emptyTrash);
+
+    if (KAuthorized::authorize("editable_desktop_icons")) {
+        KAction *alignToGrid = new KAction(i18n("Align to Grid"), this);
+        alignToGrid->setCheckable(true);
+        alignToGrid->setChecked(m_alignToGrid);
+        connect(alignToGrid, SIGNAL(toggled(bool)), SLOT(toggleAlignToGrid(bool)));
+
+        KAction *lockIcons = new KAction(i18nc("Icons on the desktop", "Lock in Place"), this);
+        lockIcons->setCheckable(true);
+        lockIcons->setChecked(m_iconsLocked);
+        connect(lockIcons, SIGNAL(toggled(bool)), SLOT(toggleIconsLocked(bool)));
+
+        m_sortingGroup = new QActionGroup(this);
+        connect(m_sortingGroup, SIGNAL(triggered(QAction*)), SLOT(sortingChanged(QAction*)));
+        QAction *sortByName = m_sortingGroup->addAction(i18nc("Sort icons", "By Name"));
+        QAction *sortBySize = m_sortingGroup->addAction(i18nc("Sort icons", "By Size"));
+        QAction *sortByType = m_sortingGroup->addAction(i18nc("Sort icons", "By Type"));
+        QAction *sortByDate = m_sortingGroup->addAction(i18nc("Sort icons", "By Date"));
+
+        sortByName->setCheckable(true);
+        sortByName->setData(int(KDirModel::Name));
+
+        sortBySize->setCheckable(true);
+        sortBySize->setData(int(KDirModel::Size));
+
+        sortByType->setCheckable(true);
+        sortByType->setData(int(KDirModel::Type));
+
+        sortByDate->setCheckable(true);
+        sortByDate->setData(int(KDirModel::ModifiedTime));
+
+        KAction *dirsFirst = new KAction(i18nc("Sort icons", "Folders First"), this);
+        dirsFirst->setCheckable(true);
+        dirsFirst->setChecked(m_sortDirsFirst);
+        connect(dirsFirst, SIGNAL(toggled(bool)), SLOT(toggleDirectoriesFirst(bool)));
+
+        QMenu *sortMenu = new QMenu(i18n("Sort Icons"));
+        sortMenu->addAction(sortByName);
+        sortMenu->addAction(sortBySize);
+        sortMenu->addAction(sortByType);
+        sortMenu->addAction(sortByDate);
+        sortMenu->addSeparator();
+        sortMenu->addAction(dirsFirst);
+
+        QMenu *iconsMenu = new QMenu;
+        iconsMenu->addMenu(sortMenu);
+        iconsMenu->addSeparator();
+        iconsMenu->addAction(alignToGrid);
+        iconsMenu->addAction(lockIcons);
+
+        QAction *iconsMenuAction = new KAction(i18n("Icons"), this);
+        iconsMenuAction->setIcon(KIcon("preferences-desktop-icons"));
+        iconsMenuAction->setMenu(iconsMenu);
+
+        // Create the new menu
+        m_newMenu = new KNewFileMenu(&m_actionCollection, "new_menu", QApplication::desktop());
+	m_newMenu->setModal(false);
+	
+        connect(m_newMenu->menu(), SIGNAL(aboutToShow()), this, SLOT(aboutToShowCreateNew()));
+
+        m_actionCollection.addAction("lock_icons", lockIcons);
+        m_actionCollection.addAction("auto_align", alignToGrid);
+        m_actionCollection.addAction("icons_menu", iconsMenuAction);
+        m_actionCollection.addAction("sort_name", sortByName);
+        m_actionCollection.addAction("sort_size", sortBySize);
+        m_actionCollection.addAction("sort_type", sortByType);
+        m_actionCollection.addAction("sort_date", sortByDate);
+
+        updateSortActionsState();
+    }
+}
+
+QList<QAction*> FolderView::contextualActions()
+{
+    QList<QAction*> actions;
+
+    KFileItem rootItem = m_model->itemForIndex(QModelIndex());
+    if (KAuthorized::authorize("action/kdesktop_rmb") && !rootItem.isNull())
+    {
+        if (QAction *action = m_actionCollection.action("new_menu")) {
+            actions.append(action);
+            QAction *separator = new QAction(this);
+            separator->setSeparator(true);
+            actions.append(separator);
+        }
+
+        actions.append(m_actionCollection.action("undo"));
+        actions.append(m_actionCollection.action("paste"));
+
+        QAction *separator = new QAction(this);
+        separator->setSeparator(true);
+        actions.append(separator);
+
+        if (m_iconView) {
+            if (QAction *iconsMenu = m_actionCollection.action("icons_menu")) {
+                actions.append(iconsMenu);
+            }
+        }
+
+        actions.append(m_actionCollection.action("refresh"));
+
+        // Add an action for opening the folder in the preferred application.
+        if (!m_itemActions) {
+            // Create a new KFileItem to prevent the target URL in the root item
+            // from being used. In this case we want the configured URL instead.
+            KFileItem item(rootItem.mode(), rootItem.permissions(), m_url);
+
+            KFileItemListProperties itemList(KFileItemList() << item);
+
+            m_itemActions = new KFileItemActions(this);
+            m_itemActions->setItemListProperties(itemList);
+        }
+        actions.append(m_itemActions->preferredOpenWithAction(QString()));
+        if (m_url.protocol() == "trash") {
+            actions.append(m_actionCollection.action("empty_trash"));
+        }
+
+        separator = new QAction(this);
+        separator->setSeparator(true);
+        actions.append(separator);
+    }
+
+    return actions;
+}
+
+void FolderView::aboutToShowCreateNew()
+{
+    if (m_newMenu) {
+        m_newMenu->checkUpToDate();
+        m_newMenu->setPopupFiles(m_url);
+    }
+}
+
+KUrl::List FolderView::selectedUrls(bool forTrash) const
+{
+    KUrl::List urls;
+    foreach (const QModelIndex &index, m_selectionModel->selectedIndexes())
+    {
+        KFileItem item = m_model->itemForIndex(index);
+
+        if (forTrash) {
+            // Prefer the local URL if there is one, since we can't trash remote URL's
+            const QString path = item.localPath();
+            if (!path.isEmpty()) {
+                urls.append(path);
+            } else {
+                urls.append(item.url());
+            }
+        } else {
+            urls.append(item.url());
+        }
+    }
+    return urls;
+}
+
+void FolderView::copy()
+{
+    QMimeData *mimeData = m_model->mimeData(m_selectionModel->selectedIndexes());
+    QApplication::clipboard()->setMimeData(mimeData);
+}
+
+void FolderView::cut()
+{
+    QMimeData *mimeData = m_model->mimeData(m_selectionModel->selectedIndexes());
+    KonqMimeData::addIsCutSelection(mimeData, true);
+    QApplication::clipboard()->setMimeData(mimeData);
+}
+
+void FolderView::paste()
+{
+    KonqOperations::doPaste(QApplication::desktop(), m_url);
+}
+
+void FolderView::pasteTo()
+{
+    const KUrl::List urls = selectedUrls(false);
+    Q_ASSERT(urls.count() == 1);
+    KonqOperations::doPaste(QApplication::desktop(), urls.first());
+}
+
+void FolderView::refreshIcons()
+{
+    m_dirModel->dirLister()->updateDirectory(m_url);
+}
+
+void FolderView::toggleIconsLocked(bool locked)
+{
+    m_iconsLocked = locked;
+
+    if (m_iconView) {
+        m_iconView->setIconsMoveable(!locked);
+    }
+
+    config().writeEntry("iconsLocked", locked);
+    emit configNeedsSaving();
+}
+
+void FolderView::toggleAlignToGrid(bool align)
+{
+    m_alignToGrid = align;
+
+    if (m_iconView) {
+        m_iconView->setAlignToGrid(align);
+    }
+
+    config().writeEntry("alignToGrid", align);
+    emit configNeedsSaving();
+
+    m_delayedSaveTimer.start(5000, this);
+}
+
+void FolderView::toggleDirectoriesFirst(bool enable)
+{
+    m_sortDirsFirst = enable;
+
+    m_model->setSortDirectoriesFirst(m_sortDirsFirst);
+    if (m_sortColumn != -1) {
+        m_model->invalidate();
+        m_delayedSaveTimer.start(5000, this);
+    }
+
+    config().writeEntry("sortDirsFirst", m_sortDirsFirst);
+    emit configNeedsSaving();
+}
+
+void FolderView::sortingChanged(QAction *action)
+{
+    const int column = action->data().toInt();
+
+    if (column != m_sortColumn) {
+        m_model->invalidate();
+        m_model->sort(column, Qt::AscendingOrder);
+        m_model->setDynamicSortFilter(true);
+        m_sortColumn = column;
+        config().writeEntry("sortColumn", m_sortColumn);
+        emit configNeedsSaving();
+        m_delayedSaveTimer.start(5000, this);
+    }
+}
+
+void FolderView::updateSortActionsState()
+{
+    foreach (QAction *action, m_sortingGroup->actions()) {
+        action->setChecked(action->data() == int(m_sortColumn));
+    }
+}
+
+
+void FolderView::filterChanged(int index)
+{
+    uiFilter.filterFilesPattern->setEnabled(index != 0);
+    uiFilter.searchMimetype->setEnabled(index != 0);
+    uiFilter.filterFilesList->setEnabled(index != 0);
+    uiFilter.selectAll->setEnabled(index != 0);
+    uiFilter.deselectAll->setEnabled(index != 0);
+    if ((index != 0) && (m_userSelectedShowAllFiles == 0)) {
+      for (int i = 0; i < uiFilter.filterFilesList->model()->rowCount(); i++) {
+        const QModelIndex index = uiFilter.filterFilesList->model()->index(i, 0);
+        uiFilter.filterFilesList->model()->setData(index, Qt::Checked, Qt::CheckStateRole);
+      }
+    }
+}
+
+void FolderView::selectUnselectAll()
+{
+    Qt::CheckState state = sender() == uiFilter.selectAll ? Qt::Checked : Qt::Unchecked;
+    for (int i = 0; i < uiFilter.filterFilesList->model()->rowCount(); i++) {
+        const QModelIndex index = uiFilter.filterFilesList->model()->index(i, 0);
+        uiFilter.filterFilesList->model()->setData(index, state, Qt::CheckStateRole);
+    }
+}
+
+void FolderView::moveToTrash(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
+{
+    Q_UNUSED(buttons)
+    if (m_iconView && m_iconView->renameInProgress()) {
+        return;
+    }
+
+    KonqOperations::Operation op = (modifiers & Qt::ShiftModifier) ?
+            KonqOperations::DEL : KonqOperations::TRASH;
+
+    KonqOperations::del(QApplication::desktop(), op, selectedUrls(op == KonqOperations::TRASH));
+}
+
+void FolderView::deleteSelectedIcons()
+{
+    if (m_iconView && m_iconView->renameInProgress()) {
+        return;
+    }
+
+    KonqOperations::del(QApplication::desktop(), KonqOperations::DEL, selectedUrls(false));
+}
+
+void FolderView::renameSelectedIcon()
+{
+    if (m_iconView) {
+        m_iconView->renameSelectedIcon();
+    }
+}
+
+void FolderView::emptyTrashBin()
+{
+    KonqOperations::emptyTrash(QApplication::desktop());
+}
+
+void FolderView::undoTextChanged(const QString &text)
+{
+    if (QAction *action = m_actionCollection.action("undo")) {
+        action->setText(text);
+    }
+}
+
+void FolderView::activated(const QModelIndex &index)
+{
+    const KFileItem item = m_model->itemForIndex(index);
+    item.run();
+
+    if (m_dialog && m_dialog->isVisible()) {
+        Plasma::WindowEffects::slideWindow(m_dialog, location());
+        m_dialog->hide();
+    }
+
+    emit releaseVisualFocus();
+}
+
+void FolderView::indexesMoved(const QModelIndexList &indexes)
+{
+    Q_UNUSED(indexes)
+
+    // If the user has rearranged the icons, the view is no longer sorted
+    if (m_sortColumn != -1) {
+        m_sortColumn = -1;
+        m_model->setDynamicSortFilter(false);
+        updateSortActionsState();
+        config().writeEntry("sortColumn", m_sortColumn);
+        emit configNeedsSaving();
+    }
+
+    m_delayedSaveTimer.start(5000, this);
+}
+
+void FolderView::contextMenuRequest(QWidget *widget, const QPoint &screenPos)
+{
+    showContextMenu(widget, screenPos, m_selectionModel->selectedIndexes());
+}
+
+void FolderView::showContextMenu(QWidget *widget, const QPoint &pos, const QModelIndexList &indexes)
+{
+    if (!KAuthorized::authorize("action/kdesktop_rmb") || indexes.isEmpty()) {
+        return;
+    }
+
+    KFileItemList items;
+    bool hasRemoteFiles = false;
+    bool isTrashLink = false;
+
+    foreach (const QModelIndex &index, indexes) {
+        KFileItem item = m_model->itemForIndex(index);
+        if (!item.isNull()) {
+            hasRemoteFiles |= item.localPath().isEmpty();
+            items.append(item);
+        }
+    }
+
+    // Check if we're showing the menu for the trash link
+    if (items.count() == 1 && items.at(0).isDesktopFile()) {
+        KDesktopFile file(items.at(0).localPath());
+        if (file.readType() == "Link" && file.readUrl() == "trash:/") {
+            isTrashLink = true;
+        }
+    }
+
+    QAction* pasteTo = m_actionCollection.action("pasteto");
+    if (pasteTo) {
+        pasteTo->setEnabled(m_actionCollection.action("paste")->isEnabled());
+        pasteTo->setText(m_actionCollection.action("paste")->text());
+    }
+
+    QList<QAction*> editActions;
+    editActions.append(m_actionCollection.action("rename"));
+
+    KConfigGroup configGroup(KGlobal::config(), "KDE");
+    bool showDeleteCommand = configGroup.readEntry("ShowDeleteCommand", false);
+
+    // Don't add the "Move to Trash" action if we're showing the menu for the trash link
+    if (!isTrashLink) {
+        if (!hasRemoteFiles) {
+            editActions.append(m_actionCollection.action("trash"));
+        } else {
+            showDeleteCommand = true;
+        }
+    }
+    if (showDeleteCommand) {
+        editActions.append(m_actionCollection.action("del"));
+    }
+
+    KParts::BrowserExtension::ActionGroupMap actionGroups;
+    actionGroups.insert("editactions", editActions);
+
+    KParts::BrowserExtension::PopupFlags flags = KParts::BrowserExtension::ShowProperties;
+    flags |= KParts::BrowserExtension::ShowUrlOperations;
+
+    // m_newMenu can be NULL here but KonqPopupMenu does handle this.
+    KonqPopupMenu *contextMenu = new KonqPopupMenu(items, m_url, m_actionCollection, m_newMenu,
+                                                   KonqPopupMenu::ShowNewWindow, flags, widget,
+                                                   KBookmarkManager::userBookmarksManager(),
+                                                   actionGroups);
+
+    contextMenu->exec(pos);
+    delete contextMenu;
+
+    if (pasteTo) {
+        pasteTo->setEnabled(false);
+    }
+}
+
+void FolderView::updateIconWidget()
+{
+    if (!m_iconWidget) {
+        return;
+    }
+
+    if (!m_placesModel) {
+        m_placesModel = new KFilePlacesModel(this);
+    }
+
+    const QModelIndex index = m_placesModel->closestItem(m_url);
+
+    // TODO: Custom icon
+
+    KFileItem item = m_dirModel->itemForIndex(QModelIndex());
+    if (!item.isNull() && item.iconName() != "inode-directory") {
+        m_icon = KIcon(item.iconName(), 0, item.overlays());
+    } else if (m_url.protocol() == "desktop") {
+        m_icon = KIcon("user-desktop");
+    } else if (m_url.protocol() == "trash") {
+        m_icon = m_model->rowCount() > 0 ? KIcon("user-trash-full") : KIcon("user-trash");
+    } else if (index.isValid()) {
+        m_icon = m_placesModel->icon(index);
+    } else {
+        m_icon = KIcon("user-folder");
+    }
+
+    m_iconWidget->setIcon(m_icon);
+    m_iconWidget->update();
+
+    int nFolders = 0;
+    int nFiles = 0;
+    for (int row = 0; row < m_model->rowCount(); row++) {
+        const QModelIndex index = m_model->index(row, 0);
+        KFileItem item = m_model->itemForIndex(index);
+        if (item.isDir()) {
+            nFolders++;
+        } else {
+            nFiles++;
+        }
+    }
+
+    const QString str1 = i18ncp("Inserted as %1 in the message below.", "1 folder", "%1 folders", nFolders);
+    const QString str2 = i18ncp("Inserted as %2 in the message below.", "1 file", "%1 files", nFiles);
+
+    QString subText;
+    if (nFolders > 0) {
+        subText = i18nc("%1 and %2 are the messages translated above.", "%1, %2.", str1, str2);
+    } else {
+        subText = i18np("1 file.", "%1 files.", nFiles);
+    }
+
+    // Update the tooltip
+    Plasma::ToolTipContent data;
+    data.setMainText(m_titleText);
+    data.setSubText(subText);
+    data.setImage(m_icon);
+    Plasma::ToolTipManager::self()->setContent(m_iconWidget, data);
+}
+
+void FolderView::iconWidgetClicked()
+{
+    Plasma::WindowEffects::slideWindow(m_dialog, location());
+    if (m_dialog->isVisible()) {
+        m_dialog->hide();
+    } else {
+        m_dialog->show(this);
+    }
+}
+
+QSize FolderView::iconSize() const
+{
+    const int defaultSize = KIconLoader::global()->currentSize(m_listView ? KIconLoader::Panel : KIconLoader::Desktop);
+    const int size = (m_customIconSize != 0) ? m_customIconSize : defaultSize;
+    return QSize(size, size);
+}
+
+void FolderView::timerEvent(QTimerEvent *event)
+{
+    if (event->timerId() == m_delayedSaveTimer.timerId()) {
+        m_delayedSaveTimer.stop();
+        saveIconPositions();
+        emit configNeedsSaving();
+    }
+
+    Containment::timerEvent(event);
+}
+
+QSizeF FolderView::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
+{
+    if (which == Qt::PreferredSize) {
+        if (!constraint.isEmpty()) {
+            return QSizeF(600, 400).boundedTo(constraint);
+        } else {
+            return QSizeF(600, 400);
+        }
+    }
+
+    return Containment::sizeHint(which, constraint);
+
+}
+
+#include "folderview.moc"
diff -pruN 4:4.6.3-1/plasma/applets/folderview/folderview.cpp 4:4.6.3-1ubuntu1/plasma/applets/folderview/folderview.cpp
--- 4:4.6.3-1/plasma/applets/folderview/folderview.cpp	2011-04-28 14:15:36.000000000 +0100
+++ 4:4.6.3-1ubuntu1/plasma/applets/folderview/folderview.cpp	2011-05-31 01:41:11.000000000 +0100
@@ -27,6 +27,7 @@
 #include <QGraphicsSceneDragDropEvent>
 #include <QImageReader>
 #include <QItemSelectionModel>
+#include <QFile>
 
 #include <KAction>
 #include <KAuthorized>
@@ -378,6 +379,10 @@ void FolderView::init()
                 path = QString("desktop:/");
             }
         }
+
+        if (QFile::exists("/usr/share/applications/kde4/oem-config-prepare-kde.desktop") || QFile::exists("/usr/share/applications/kde4/ubiquity-kdeui.desktop")) {
+            path = QString("desktop:/");
+        }
         setUrl(cg.readEntry("url", KUrl(path)));
 
     } else {
