rev 7648 - in branches/kde4/packages/kdebase/debian: . patches

Fathi Boudra fboudra-guest at alioth.debian.org
Thu Oct 25 13:52:27 UTC 2007


Author: fboudra-guest
Date: 2007-10-25 13:52:27 +0000 (Thu, 25 Oct 2007)
New Revision: 7648

Added:
   branches/kde4/packages/kdebase/debian/patches/01_kdebase_branch_r729276.diff
Removed:
   branches/kde4/packages/kdebase/debian/patches/01_kdebase_branch_r726783.diff
Modified:
   branches/kde4/packages/kdebase/debian/changelog
   branches/kde4/packages/kdebase/debian/patches/series
Log:
* Pull SVN branch to r729276.


Modified: branches/kde4/packages/kdebase/debian/changelog
===================================================================
--- branches/kde4/packages/kdebase/debian/changelog	2007-10-25 13:37:24 UTC (rev 7647)
+++ branches/kde4/packages/kdebase/debian/changelog	2007-10-25 13:52:27 UTC (rev 7648)
@@ -1,5 +1,9 @@
 kdebase (4:3.94.0-3) experimental; urgency=low
 
+  +++ Changes by Fathi Boudra:
+
+  * Pull SVN branch to r729276.
+
   +++ Changes by Armin Berres:
 
   * Add libxcb1-dev build dependency.

Deleted: branches/kde4/packages/kdebase/debian/patches/01_kdebase_branch_r726783.diff

Added: branches/kde4/packages/kdebase/debian/patches/01_kdebase_branch_r729276.diff
===================================================================
--- branches/kde4/packages/kdebase/debian/patches/01_kdebase_branch_r729276.diff	                        (rev 0)
+++ branches/kde4/packages/kdebase/debian/patches/01_kdebase_branch_r729276.diff	2007-10-25 13:52:27 UTC (rev 7648)
@@ -0,0 +1,8961 @@
+--- a/apps/nsplugins/pluginscan.cpp
++++ b/apps/nsplugins/pluginscan.cpp
+@@ -203,8 +203,8 @@
+     int num = cg.readEntry( "number", 0 );
+     cg.writeEntry( "number", num+1 );
+ 
++    cg = KConfigGroup(infoConfig,QString::number(num));
+     // create plugin info
+-    cg.changeGroup( QString::number(num) );
+     cg.writeEntry( "name", name );
+     cg.writeEntry( "description", description );
+     cg.writeEntry( "file", file );
+--- a/apps/nsplugins/khtml_plugins.desktop
++++ b/apps/nsplugins/khtml_plugins.desktop
+@@ -4,12 +4,12 @@
+ ServiceTypes=KCModule,KCModuleInit
+ DocPath=kcontrol/khtml/index.html#kbrowse-plugins
+ Icon=konqueror
+-Exec=kcmshell khtml_plugins
++Exec=kcmshell4 khtml_plugins
+ 
+ X-KDE-Library=kcm_konqhtml
+ X-KDE-PluginKeyword=khtml_plugins
+ X-KDE-Init-Library=kcminit_nsplugins
+-X-KDE-Init-Symbol=kcminit_nsplugin
++X-KDE-Init-Symbol=nsplugin
+ X-KDE-ParentApp=kcontrol
+ 
+ Name=Plugins
+@@ -88,7 +88,7 @@
+ Comment[el]=Ρυθμίστε τα πρόσθετα του περιηγητή
+ Comment[eo]=Agordu la foliumilajn kromaĵojn
+ Comment[es]=Configuración de los complementos del navegador
+-Comment[et]=Veebilehitseja pluginate seadistamine
++Comment[et]=Brauseri pluginate seadistamine
+ Comment[eu]=Konfiguratu arakatzailearen pluginak 
+ Comment[fa]=پیکربندی وصله‌های مرورگر
+ Comment[fi]=Muokkaa selaimen liitännäisasetuksia
+@@ -151,7 +151,7 @@
+ Keywords[el]=konqueror,kfm,περιηγητής,html,ιστός,www,γραμματοσειρές,πρόσθετα
+ Keywords[eo]=Konkeranto,Kfm,TTT,HTML,WWW,tiparo,koloro,Javo,Javoskripto,kursoro, kursilo,ligo,referenco,bildo,signaro,kodo
+ Keywords[es]=konqueror,kfm,navegador,html,web,www,tipos de letra,complementos
+-Keywords[et]=konqueror,kfm,veebilehitseja,html,veeb,www,fondid,pluginad
++Keywords[et]=konqueror,kfm,veebilehitseja,brauser,html,veeb,www,fondid,pluginad
+ Keywords[eu]=konqueror,kfm,arakatzailea,html,web,www,letra-tipoak,pluginak
+ Keywords[fa]=konqueror، kfm، مرورگر، html، وب، www، قلمها، وصله‌ها
+ Keywords[fi]=konqueror,kfm,selain,html,web,www,kirjasimet,liitännäiset
+@@ -165,7 +165,7 @@
+ Keywords[is]=konqueror,kfm,flakkari,html,web,www,letur,íforrit,vefur
+ Keywords[it]=konqueror,kfm,browser,html,web,www,caratteri,plugin
+ Keywords[ja]=konqueror,kfm,ブラウザ,html,web,ウェブ,www,フォント,プラグイン
+-Keywords[km]=konqueror,kfm,កម្មវិធី​រុករក,html,បណ្ដាញ,វើលវ៉ាយវេប,ពុម្ព​អក្សរ,កម្មវិធី​ជំនួយ
++Keywords[km]=konqueror kfm កម្មវិធី​រុករក html បណ្ដាញ វើលវ៉ាយវេប ពុម្ព​អក្សរ កម្មវិធី​ជំនួយ
+ Keywords[ko]=konqueror,브라우저,html,웹,글꼴,플러그인
+ Keywords[lt]=konqueror,kfm,browser,html,web,www,fonts,plugins. naršyklė,tinklalapiai,šriftai,priedai
+ Keywords[lv]=iekarotājs,kfm,pārlūks,html,web,www,fonti,spraudņi
+--- a/apps/nsplugins/kcm_nsplugins.cpp
++++ b/apps/nsplugins/kcm_nsplugins.cpp
+@@ -84,7 +84,7 @@
+ 
+ extern "C"
+ {
+-    KDE_EXPORT void init_nsplugin()
++    KDE_EXPORT void kcminit_nsplugin()
+     {
+         KConfigGroup config(KSharedConfig::openConfig( "kcmnspluginrc", KConfig::NoGlobals ), "Misc");
+         if( true ) // I don't think this needs to be configurable now
+--- a/apps/nsplugins/viewer/viewer.cpp
++++ b/apps/nsplugins/viewer/viewer.cpp
+@@ -123,7 +123,10 @@
+ 
+    kDebug(1430) << "4 - create KApplication";
+ 
+-   KCmdLineArgs::init(argc, argv, "nspluginviewer", "nsplugin", ki18n("nspluginviewer"), "");
++   
++   // Skip the args.. This is internal, anyway.
++   KCmdLineArgs::init(1, argv, "nspluginviewer", "nsplugin", ki18n("nspluginviewer"), "");
++   
+    KApplication app;
+ 
+    {
+--- a/apps/nsplugins/plugin_part.cpp
++++ b/apps/nsplugins/plugin_part.cpp
+@@ -126,7 +126,6 @@
+    _loader->release();
+ 
+    if (s_instance) {
+-       delete s_instance->aboutData();
+        delete s_instance;
+        s_instance = 0;
+    }
+@@ -147,17 +146,12 @@
+     kDebug(1432) << "PluginFactory::instance";
+ 
+     if (!s_instance) {
+-        s_instance = new KComponentData(aboutData());
++        KAboutData about("plugin", 0, ki18n("plugin"), "1.99");
++        s_instance = new KComponentData(about); 
+     }
+     return *s_instance;
+ }
+ 
+-KAboutData *PluginFactory::aboutData()
+-{
+-    KAboutData *about = new KAboutData("plugin", 0, ki18n("plugin"), "1.99");
+-    return about;
+-}
+-
+ 
+ /**************************************************************************/
+ 
+--- a/apps/nsplugins/nspluginloader.cpp
++++ b/apps/nsplugins/nspluginloader.cpp
+@@ -141,11 +141,6 @@
+   _mapping.setAutoDelete( true );
+   _filetype.setAutoDelete(true);
+ 
+-  // trap dbus register events
+-  QObject::connect(QDBusConnection::sessionBus().interface(),
+-                   SIGNAL(serviceRegistered(const QString&)),
+-                   this, SLOT(applicationRegistered(const QString&)));
+-
+   // load configuration
+   KConfig _cfg( "kcmnspluginrc" );
+   KConfigGroup cfg(&_cfg, "Misc");
+@@ -270,7 +265,6 @@
+ {
+    kDebug() << "NSPluginLoader::loadViewer";
+ 
+-   _running = false;
+    _process = new K3Process;
+ 
+    // get the dbus app id
+@@ -356,16 +350,6 @@
+ }
+ 
+ 
+-void NSPluginLoader::applicationRegistered( const QString& appId )
+-{
+-   kDebug() << "D-Bus application " << appId << " just registered!";
+-
+-   if ( _dbusService == appId )
+-   {
+-      _running = true;
+-      kDebug() << "plugin now running";
+-   }
+-}
+ 
+ 
+ void NSPluginLoader::processTerminated(K3Process *proc)
+@@ -399,6 +383,8 @@
+          return 0;
+       }
+    }
++   
++   kDebug() << "-> appID" << appId << " dbus service:" << _dbusService;
+ 
+    QStringList argn( _argn );
+    QStringList argv( _argv );
+@@ -435,7 +421,8 @@
+       kDebug() << "Couldn't create plugin class";
+       return 0;
+    }
+-   org::kde::nsplugins::Class* cls = new org::kde::nsplugins::Class( appId, cls_ref.path(), QDBusConnection::sessionBus() );
++   
++   org::kde::nsplugins::Class* cls = new org::kde::nsplugins::Class( _dbusService, cls_ref.path(), QDBusConnection::sessionBus() );
+ 
+    // handle special plugin cases
+    if ( mime=="application/x-shockwave-flash" )
+--- a/apps/nsplugins/plugin_part.h
++++ b/apps/nsplugins/plugin_part.h
+@@ -50,7 +50,6 @@
+    			            const QStringList &args = QStringList());
+ 
+   static const KComponentData &componentData();
+-  static KAboutData *aboutData();
+ 
+ private:
+ 
+--- a/apps/nsplugins/nspluginloader.h
++++ b/apps/nsplugins/nspluginloader.h
+@@ -97,7 +97,6 @@
+   void unloadViewer();
+ 
+ protected Q_SLOTS:
+-  void applicationRegistered( const QString& appId );
+   void processTerminated( K3Process *proc );
+ 
+ private:
+@@ -105,7 +104,6 @@
+   Q3Dict<QString> _mapping, _filetype;
+ 
+   K3Process *_process;
+-  bool _running;
+   QString _dbusService;
+   OrgKdeNspluginsViewerInterface *_viewer;
+   bool _useArtsdsp;
+--- a/apps/nsplugins/CMakeLists.txt
++++ b/apps/nsplugins/CMakeLists.txt
+@@ -2,47 +2,45 @@
+ if (X11_Xt_LIB)
+ 
+   add_subdirectory( viewer ) 
+-  set(nsplugins_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/plugin_part.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nspluginloader.cpp )
+ 
+ 
+   ########### next target ###############
+ 
+-  set(kcminit_nsplugin_PART_SRCS 
+-	${nsplugins_SRCS}
+-     )
++  set(nsplugins_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/plugin_part.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nspluginloader.cpp )
++  
++  set(nsplugins_PART_SRCS
++       ${nsplugins_SRCS}
++    )
+ 
+-  qt4_add_dbus_adaptor( kcminit_nsplugin_PART_SRCS org.kde.nsplugins.CallBack.xml ${CMAKE_CURRENT_SOURCE_DIR}/plugin_part.h PluginPart )
++  qt4_add_dbus_adaptor( nsplugins_PART_SRCS org.kde.nsplugins.CallBack.xml ${CMAKE_CURRENT_SOURCE_DIR}/plugin_part.h PluginPart )
+ 
+   set(nsplugins_class_xml  ${CMAKE_CURRENT_SOURCE_DIR}/viewer/org.kde.nsplugins.class.xml)
+-  QT4_ADD_DBUS_INTERFACE( kcminit_nsplugin_PART_SRCS ${nsplugins_class_xml} nsplugins_class_interface )
++  QT4_ADD_DBUS_INTERFACE( nsplugins_PART_SRCS ${nsplugins_class_xml} nsplugins_class_interface )
+ 
+   set(nsplugins_instance_xml  ${CMAKE_CURRENT_SOURCE_DIR}/viewer/org.kde.nsplugins.instance.xml)
+-  QT4_ADD_DBUS_INTERFACE( kcminit_nsplugin_PART_SRCS ${nsplugins_instance_xml} nsplugins_instance_interface )
++  QT4_ADD_DBUS_INTERFACE( nsplugins_PART_SRCS ${nsplugins_instance_xml} nsplugins_instance_interface )
+ 
+   set(nsplugins_viewer_xml  ${CMAKE_CURRENT_SOURCE_DIR}/viewer/org.kde.nsplugins.viewer.xml)
+-  QT4_ADD_DBUS_INTERFACE( kcminit_nsplugin_PART_SRCS ${nsplugins_viewer_xml} nsplugins_viewer_interface )
+-
++  QT4_ADD_DBUS_INTERFACE( nsplugins_PART_SRCS ${nsplugins_viewer_xml} nsplugins_viewer_interface )
+ 
+ 
++  kde4_add_plugin(libnsplugin ${nsplugins_PART_SRCS})
+ 
+-  kde4_add_plugin(kcminit_nsplugin WITH_PREFIX ${kcminit_nsplugin_PART_SRCS})
++  target_link_libraries(libnsplugin  ${KDE4_KDE3SUPPORT_LIBS} ${KDE4_KPARTS_LIBS} ${QT_QT3SUPPORT_LIBRARY} ${QT_QTGUI_LIBRARY} )
+ 
+-  target_link_libraries(kcminit_nsplugin  ${KDE4_KDE3SUPPORT_LIBS} ${KDE4_KPARTS_LIBS} ${QT_QT3SUPPORT_LIBRARY} ${QT_QTGUI_LIBRARY} )
+-
+-  install(TARGETS kcminit_nsplugin  DESTINATION ${PLUGIN_INSTALL_DIR} )
++  install(TARGETS libnsplugin  DESTINATION ${PLUGIN_INSTALL_DIR} )
+ 
+ 
+   ########### next target ###############
+ 
+-  set(kcm_nsplugins_PART_SRCS kcm_nsplugins.cpp plugin_paths.cpp)
+-
++  set(kcminit_nsplugins_SRCS kcm_nsplugins.cpp plugin_paths.cpp)
+ 
+-  kde4_add_plugin(kcm_nsplugins ${kcm_nsplugins_PART_SRCS})
+ 
++  kde4_add_plugin(kcminit_nsplugins WITH_PREFIX  ${kcminit_nsplugins_SRCS})
+ 
+-  target_link_libraries(kcm_nsplugins  ${KDE4_KDE3SUPPORT_LIBS} ${KDE4_KDECORE_LIBS} )
++  target_link_libraries(kcminit_nsplugins ${KDE4_KDE3SUPPORT_LIBS} ${KDE4_KDECORE_LIBS} )
+ 
+-  install(TARGETS kcm_nsplugins  DESTINATION ${PLUGIN_INSTALL_DIR} )
++  install(TARGETS kcminit_nsplugins  DESTINATION ${PLUGIN_INSTALL_DIR} )
+ 
+ 
+   ########### next target ###############
+--- a/apps/nsplugins/plugin_paths.cpp
++++ b/apps/nsplugins/plugin_paths.cpp
+@@ -59,7 +59,7 @@
+     }
+ 
+     // read paths
+-    searchPaths = config.readPathListEntry( "scanPaths" );
++    searchPaths = config.readPathEntry( "scanPaths", QStringList() );
+ 
+     // append environment variable NPX_PLUGIN_PATH
+     QStringList envs = QString( getenv("NPX_PLUGIN_PATH") ).split(':');
+--- a/apps/kappfinder/apps/System/xosview.desktop
++++ b/apps/kappfinder/apps/System/xosview.desktop
+@@ -30,7 +30,7 @@
+ GenericName[el]=Επόπτης συστήματος
+ GenericName[eo]=Sistemstato-programo
+ GenericName[es]=Monitor del sistema
+-GenericName[et]=Süsteemi monitor
++GenericName[et]=Süsteemi jälgija
+ GenericName[eu]=Sistemaren monitorea
+ GenericName[fa]=نمایشگر سیستم
+ GenericName[fi]=Järjestelmänvalvontaohjelma
+--- a/apps/kappfinder/apps/Internet/mozilla.desktop
++++ b/apps/kappfinder/apps/Internet/mozilla.desktop
+@@ -27,7 +27,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/arena.desktop
++++ b/apps/kappfinder/apps/Internet/arena.desktop
+@@ -28,7 +28,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/netscape6.desktop
++++ b/apps/kappfinder/apps/Internet/netscape6.desktop
+@@ -36,7 +36,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/xbiff.desktop
++++ b/apps/kappfinder/apps/Internet/xbiff.desktop
+@@ -30,7 +30,7 @@
+ GenericName[el]=Ειδοποίηση για mail
+ GenericName[eo]=Retpoŝtavertilo
+ GenericName[es]=Alerta de correo
+-GenericName[et]=Kirjde monitor
++GenericName[et]=Kirjade jälgija
+ GenericName[eu]=Mail jakinarazpena
+ GenericName[fa]=هشدار نامه
+ GenericName[fi]=Sähköpostivaroitus
+--- a/apps/kappfinder/apps/Internet/coolmail.desktop
++++ b/apps/kappfinder/apps/Internet/coolmail.desktop
+@@ -26,7 +26,7 @@
+ GenericName[el]=Ειδοποίηση για mail
+ GenericName[eo]=Retpoŝtavertilo
+ GenericName[es]=Alerta de correo
+-GenericName[et]=Kirjde monitor
++GenericName[et]=Kirjade jälgija
+ GenericName[eu]=Mail jakinarazpena
+ GenericName[fa]=هشدار نامه
+ GenericName[fi]=Sähköpostivaroitus
+--- a/apps/kappfinder/apps/Internet/Galeon.desktop
++++ b/apps/kappfinder/apps/Internet/Galeon.desktop
+@@ -24,7 +24,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/opera.desktop
++++ b/apps/kappfinder/apps/Internet/opera.desktop
+@@ -25,7 +25,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/mozilla-firefox.desktop
++++ b/apps/kappfinder/apps/Internet/mozilla-firefox.desktop
+@@ -28,7 +28,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/epiphany.desktop
++++ b/apps/kappfinder/apps/Internet/epiphany.desktop
+@@ -25,7 +25,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/Faces.desktop
++++ b/apps/kappfinder/apps/Internet/Faces.desktop
+@@ -35,7 +35,7 @@
+ GenericName[el]=Ειδοποίηση για mail
+ GenericName[eo]=Retpoŝtavertilo
+ GenericName[es]=Alerta de correo
+-GenericName[et]=Kirjde monitor
++GenericName[et]=Kirjade jälgija
+ GenericName[eu]=Mail jakinarazpena
+ GenericName[fa]=هشدار نامه
+ GenericName[fi]=Sähköpostivaroitus
+--- a/apps/kappfinder/apps/Internet/netscape.desktop
++++ b/apps/kappfinder/apps/Internet/netscape.desktop
+@@ -27,7 +27,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/Terminal/Lynx.desktop
++++ b/apps/kappfinder/apps/Internet/Terminal/Lynx.desktop
+@@ -21,7 +21,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/Terminal/Links.desktop
++++ b/apps/kappfinder/apps/Internet/Terminal/Links.desktop
+@@ -31,7 +31,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Internet/Terminal/w3m.desktop
++++ b/apps/kappfinder/apps/Internet/Terminal/w3m.desktop
+@@ -20,7 +20,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/kappfinder/apps/Multimedia/muse.desktop
++++ b/apps/kappfinder/apps/Multimedia/muse.desktop
+@@ -12,6 +12,7 @@
+ GenericName[de]=Musik-Sequencer
+ GenericName[el]=Sequencer μουσικής
+ GenericName[es]=Secuenciador de música
++GenericName[et]=Muusika sekventsija
+ GenericName[fa]=ترتیب‌سنج موسیقی
+ GenericName[ga]=Seicheamhóir Ceoil
+ GenericName[it]=Sequencer musicale
+--- a/apps/kappfinder/apps/Multimedia/mplayer.desktop
++++ b/apps/kappfinder/apps/Multimedia/mplayer.desktop
+@@ -15,7 +15,7 @@
+ GenericName[el]=Αναπαραγωγέας βίντεο
+ GenericName[eo]=Ludilo por videofilmoj
+ GenericName[es]=Reproductor de vídeo
+-GenericName[et]=Videofailide mängimine
++GenericName[et]=Videomängija
+ GenericName[eu]=Bideo erreproduzigailua
+ GenericName[fa]=پخش‌کنندۀ ویدیو
+ GenericName[fi]=Videosoitin
+--- a/apps/kappfinder/apps/Multimedia/freebirth.desktop
++++ b/apps/kappfinder/apps/Multimedia/freebirth.desktop
+@@ -10,6 +10,7 @@
+ GenericName[bg]=Барабани
+ GenericName[de]=Rythmus-Synthesizer
+ GenericName[el]=Μηχανή κρουστών
++GenericName[et]=Trummimasin
+ GenericName[ga]=Meaisín Drumadóireachta
+ GenericName[he]=מכונת תופים
+ GenericName[ja]=ドラムマシン
+--- a/apps/kappfinder/apps/Multimedia/galan.desktop
++++ b/apps/kappfinder/apps/Multimedia/galan.desktop
+@@ -9,6 +9,7 @@
+ GenericName[de]=Modularer Synthesizer
+ GenericName[el]=Αρθρωτός συνθέτης
+ GenericName[es]=Sintetizador modular
++GenericName[et]=Modulaarsüntesaator
+ GenericName[ga]=Sintéiseoir Modúlach
+ GenericName[it]=Sintetizzatore modulare
+ GenericName[ja]=モジュラーシンセ
+--- a/apps/kappfinder/apps/Multimedia/Aumix.desktop
++++ b/apps/kappfinder/apps/Multimedia/Aumix.desktop
+@@ -20,7 +20,7 @@
+ GenericName[el]=Μείκτης ήχου
+ GenericName[eo]=Miksilo por sonoroj
+ GenericName[es]=Mezclador audio
+-GenericName[et]=Audiomikser
++GenericName[et]=Helimikser
+ GenericName[eu]=Audio nahasgailua
+ GenericName[fa]=مخلوط‌کن خودکار
+ GenericName[fi]=Äänimikseri
+--- a/apps/kappfinder/apps/Multimedia/rezound.desktop
++++ b/apps/kappfinder/apps/Multimedia/rezound.desktop
+@@ -22,7 +22,7 @@
+ GenericName[el]=Επεξεργαστής ήχου
+ GenericName[eo]=Sonora redaktilo
+ GenericName[es]=Editor de audio
+-GenericName[et]=Audioredaktor
++GenericName[et]=Heliredaktor
+ GenericName[eu]=Audio editorea
+ GenericName[fa]=ویرایشگر صوتی
+ GenericName[fi]=Äänieditori
+--- a/apps/kappfinder/apps/Multimedia/meterbridge.desktop
++++ b/apps/kappfinder/apps/Multimedia/meterbridge.desktop
+@@ -10,6 +10,7 @@
+ GenericName[bg]=Двуканален VU-метър
+ GenericName[de]=Zweikanal VU-Meter
+ GenericName[el]=VU-Meter δύο καναλιών
++GenericName[et]=Kahekanaline VU-meeter
+ GenericName[ga]=Méadar VU le dhá chainéal
+ GenericName[ja]=デュアルチャンネル VU メーター
+ GenericName[kk]=Қос арналы деңгей индикаторы
+--- a/apps/kappfinder/apps/Multimedia/ardour.desktop
++++ b/apps/kappfinder/apps/Multimedia/ardour.desktop
+@@ -9,6 +9,7 @@
+ GenericName[de]=Mehrspur-Audio-Studio
+ GenericName[el]=Στούντιο ήχου πολλαπλών κομματιών
+ GenericName[es]=Estudio de sonido multipista
++GenericName[et]=Mitmerealine helistuudio
+ GenericName[ga]=Stiúideo Fuaime Ilrian
+ GenericName[he]=סטודיו שמע מרובה רצועות
+ GenericName[it]=Studio audio multitraccia
+--- a/apps/kappfinder/apps/Multimedia/bcast2000.desktop
++++ b/apps/kappfinder/apps/Multimedia/bcast2000.desktop
+@@ -24,7 +24,7 @@
+ GenericName[el]=IDE Ήχου και Βίντεο
+ GenericName[eo]=Redaktilo por sonoro kaj filmo
+ GenericName[es]=IDE de audio y video
+-GenericName[et]=Audio ja video arenduskeskkond
++GenericName[et]=Heli ja video arenduskeskkond
+ GenericName[eu]=Audio eta bideo IDEa
+ GenericName[fa]=آی دی ای صوتی و ویدیویی
+ GenericName[fi]=Ääni ja Video IDE
+--- a/apps/kappfinder/apps/Multimedia/gtv.desktop
++++ b/apps/kappfinder/apps/Multimedia/gtv.desktop
+@@ -15,7 +15,7 @@
+ GenericName[el]=Αναπαραγωγέας MPEG
+ GenericName[eo]=Ludilo por MPEG-dosieroj
+ GenericName[es]=Reproductor MPEG
+-GenericName[et]=MPEG videofailide mängimine
++GenericName[et]=MPEG videofailide mängija
+ GenericName[eu]=MPEG erreproduzigailua
+ GenericName[fa]=پخش‌کنندۀ MPEG
+ GenericName[fi]=MPEG-soitin
+--- a/apps/kappfinder/apps/Multimedia/realplayer.desktop
++++ b/apps/kappfinder/apps/Multimedia/realplayer.desktop
+@@ -15,7 +15,7 @@
+ GenericName[el]=Αναπαραγωγέας βίντεο
+ GenericName[eo]=Ludilo por videofilmoj
+ GenericName[es]=Reproductor de vídeo
+-GenericName[et]=Videofailide mängimine
++GenericName[et]=Videomängija
+ GenericName[eu]=Bideo erreproduzigailua
+ GenericName[fa]=پخش‌کنندۀ ویدیو
+ GenericName[fi]=Videosoitin
+--- a/apps/kappfinder/apps/Multimedia/audacity.desktop
++++ b/apps/kappfinder/apps/Multimedia/audacity.desktop
+@@ -23,7 +23,7 @@
+ GenericName[el]=Επεξεργαστής ήχου
+ GenericName[eo]=Sonora redaktilo
+ GenericName[es]=Editor de audio
+-GenericName[et]=Audioredaktor
++GenericName[et]=Heliredaktor
+ GenericName[eu]=Audio editorea
+ GenericName[fa]=ویرایشگر صوتی
+ GenericName[fi]=Äänieditori
+--- a/apps/kappfinder/apps/Multimedia/aviplay.desktop
++++ b/apps/kappfinder/apps/Multimedia/aviplay.desktop
+@@ -15,7 +15,7 @@
+ GenericName[el]=Αναπαραγωγέας βίντεο AVI
+ GenericName[eo]=Ludilo por AVI-videofilmoj
+ GenericName[es]=Reproductor de vídeo AVI
+-GenericName[et]=AVI videofailide mängimine
++GenericName[et]=AVI videofailide mängija
+ GenericName[eu]=AVI bideo erreproduzigailua
+ GenericName[fa]=پخش‌کنندۀ ویدیویی AVI
+ GenericName[fi]=AVI-videosoitin
+--- a/apps/kappfinder/apps/Multimedia/mtv.desktop
++++ b/apps/kappfinder/apps/Multimedia/mtv.desktop
+@@ -15,7 +15,7 @@
+ GenericName[el]=Αναπαραγωγέας βίντεο
+ GenericName[eo]=Ludilo por videofilmoj
+ GenericName[es]=Reproductor de vídeo
+-GenericName[et]=Videofailide mängimine
++GenericName[et]=Videomängija
+ GenericName[eu]=Bideo erreproduzigailua
+ GenericName[fa]=پخش‌کنندۀ ویدیو
+ GenericName[fi]=Videosoitin
+--- a/apps/kappfinder/apps/Multimedia/XMovie.desktop
++++ b/apps/kappfinder/apps/Multimedia/XMovie.desktop
+@@ -23,7 +23,7 @@
+ GenericName[el]=Αναπαραγωγέας βίντεο
+ GenericName[eo]=Ludilo por videofilmoj
+ GenericName[es]=Reproductor de vídeo
+-GenericName[et]=Videofailide mängimine
++GenericName[et]=Videomängija
+ GenericName[eu]=Bideo erreproduzigailua
+ GenericName[fa]=پخش‌کنندۀ ویدیو
+ GenericName[fi]=Videosoitin
+--- a/apps/kappfinder/apps/Multimedia/mixxx.desktop
++++ b/apps/kappfinder/apps/Multimedia/mixxx.desktop
+@@ -10,6 +10,7 @@
+ GenericName[de]=DJ-Mixer und -Wiedergabe
+ GenericName[el]=Μείκτης DJ και αναπαραγωγέας
+ GenericName[es]=Reproductor y mezclador de DJ
++GenericName[et]=DJ mikser ja mängija
+ GenericName[fa]=ترکیب‌کننده و پخش‌کننده DJ
+ GenericName[ga]=Meascthóir DJ agus Seinnteoir
+ GenericName[he]=מערבל ונגן
+--- a/apps/kappfinder/apps/Multimedia/hydrogen.desktop
++++ b/apps/kappfinder/apps/Multimedia/hydrogen.desktop
+@@ -10,6 +10,7 @@
+ GenericName[bg]=Барабани
+ GenericName[de]=Rythmus-Synthesizer
+ GenericName[el]=Μηχανή κρουστών
++GenericName[et]=Trummimasin
+ GenericName[ga]=Meaisín Drumadóireachta
+ GenericName[he]=מכונת תופים
+ GenericName[ja]=ドラムマシン
+--- a/apps/kappfinder/apps/Multimedia/ams.desktop
++++ b/apps/kappfinder/apps/Multimedia/ams.desktop
+@@ -9,6 +9,7 @@
+ GenericName[de]=Modularer Alsa-Synthesizer
+ GenericName[el]=Αρθρωτός συνθέτης Alsa
+ GenericName[es]=Sintetizador Modular Alsa
++GenericName[et]=Alsa modulaarsüntesaator
+ GenericName[he]=סינתסייזר מודולרי ל־ALSA
+ GenericName[ja]=ALSA モジュラーシンセサイザ
+ GenericName[kk]=Alsa модульді синтезаторы
+--- a/apps/kappfinder/apps/Multimedia/djplay.desktop
++++ b/apps/kappfinder/apps/Multimedia/djplay.desktop
+@@ -12,6 +12,7 @@
+ GenericName[de]=DJ-Mixer und -Wiedergabe
+ GenericName[el]=Μείκτης DJ και αναπαραγωγέας
+ GenericName[es]=Reproductor y mezclador de DJ
++GenericName[et]=DJ mikser ja mängija
+ GenericName[fa]=ترکیب‌کننده و پخش‌کننده DJ
+ GenericName[ga]=Meascthóir DJ agus Seinnteoir
+ GenericName[he]=מערבל ונגן
+--- a/apps/kappfinder/apps/Multimedia/sweep.desktop
++++ b/apps/kappfinder/apps/Multimedia/sweep.desktop
+@@ -28,7 +28,7 @@
+ GenericName[el]=Επεξεργαστής ήχου
+ GenericName[eo]=Sonora redaktilo
+ GenericName[es]=Editor de audio
+-GenericName[et]=Audioredaktor
++GenericName[et]=Heliredaktor
+ GenericName[eu]=Audio editorea
+ GenericName[fa]=ویرایشگر صوتی
+ GenericName[fi]=Äänieditori
+--- a/apps/kappfinder/apps/Multimedia/vkeybd.desktop
++++ b/apps/kappfinder/apps/Multimedia/vkeybd.desktop
+@@ -10,6 +10,7 @@
+ GenericName[de]=Virtuelle MIDI-Klaviatur
+ GenericName[el]=Εικονικό πληκτρολόγιο MIDI
+ GenericName[es]=Teclado MIDI virtual
++GenericName[et]=Virtuaalne MIDI klaviatuur
+ GenericName[ga]=Méarchlár Fíorúil MIDI
+ GenericName[it]=Tastiera MIDI virtuale
+ GenericName[ja]=仮想 MIDI キーボード
+--- a/apps/kappfinder/apps/Multimedia/qsynth.desktop
++++ b/apps/kappfinder/apps/Multimedia/qsynth.desktop
+@@ -10,6 +10,7 @@
+ GenericName[de]=Steuerung für FluidSynth
+ GenericName[el]=Έλεγχος για το FluidSynth
+ GenericName[es]=Control de FluidSynth
++GenericName[et]=FluidSynthi juhtimine
+ GenericName[ga]=Rialtán le haghaidh FluidSynth
+ GenericName[it]=Controllo per FluidSynth
+ GenericName[ja]=FluidSynth のコントロール
+--- a/apps/kappfinder/apps/Multimedia/freqtweak.desktop
++++ b/apps/kappfinder/apps/Multimedia/freqtweak.desktop
+@@ -11,6 +11,7 @@
+ GenericName[de]=Effekte für Jack
+ GenericName[el]=Εφέ για το Jack
+ GenericName[es]=Efectos para Jack
++GenericName[et]=JACKi efektid
+ GenericName[ga]=Maisíochtaí Jack
+ GenericName[it]=Effetti per Jack
+ GenericName[ja]=Jack のエフェクト
+@@ -24,6 +25,7 @@
+ GenericName[nn]=Effektar til Jack
+ GenericName[pt]=Efeitos para o Jack
+ GenericName[pt_BR]=Efeitos para o Jack
++GenericName[ru]=Эффекты для Jack
+ GenericName[sl]=Učinki za Jack
+ GenericName[sv]=Effekter för Jack
+ GenericName[th]=เอฟเฟคต์สำหรับ Jack
+--- a/apps/kappfinder/apps/Multimedia/qjackctl.desktop
++++ b/apps/kappfinder/apps/Multimedia/qjackctl.desktop
+@@ -10,6 +10,7 @@
+ GenericName[de]=Steuerung für Jack
+ GenericName[el]=Έλεγχος για το Jack
+ GenericName[es]=Control de Jack
++GenericName[et]=JACKi juhtimine
+ GenericName[ga]=Rialtán le haghaidh Jack
+ GenericName[it]=Controllo per Jack
+ GenericName[ja]=Jack のコントロール
+--- a/apps/kappfinder/apps/Multimedia/enjoympeg.desktop
++++ b/apps/kappfinder/apps/Multimedia/enjoympeg.desktop
+@@ -22,7 +22,7 @@
+ GenericName[el]=Αναπαραγωγέας MPEG
+ GenericName[eo]=Ludilo por MPEG-dosieroj
+ GenericName[es]=Reproductor MPEG
+-GenericName[et]=MPEG videofailide mängimine
++GenericName[et]=MPEG videofailide mängija
+ GenericName[eu]=MPEG erreproduzigailua
+ GenericName[fa]=پخش‌کنندۀ MPEG
+ GenericName[fi]=MPEG-soitin
+--- a/apps/kappfinder/apps/Multimedia/xine.desktop
++++ b/apps/kappfinder/apps/Multimedia/xine.desktop
+@@ -15,7 +15,7 @@
+ GenericName[el]=Αναπαραγωγέας βίντεο
+ GenericName[eo]=Ludilo por videofilmoj
+ GenericName[es]=Reproductor de vídeo
+-GenericName[et]=Videofailide mängimine
++GenericName[et]=Videomängija
+ GenericName[eu]=Bideo erreproduzigailua
+ GenericName[fa]=پخش‌کنندۀ ویدیو
+ GenericName[fi]=Videosoitin
+--- a/apps/kappfinder/apps/Office/XsLite.desktop
++++ b/apps/kappfinder/apps/Office/XsLite.desktop
+@@ -27,7 +27,7 @@
+ GenericName[el]=Λογιστικό φύλλο
+ GenericName[eo]=Tabelkalkulilo
+ GenericName[es]=Hoja de cálculo
+-GenericName[et]=Tabeltöötlus
++GenericName[et]=Tabelarvutus
+ GenericName[eu]=Kalkulu orria
+ GenericName[fa]=صفحه گسترده
+ GenericName[fi]=Taulukkolaskentaohjelma
+--- a/apps/kappfinder/apps/Office/Gnumeric.desktop
++++ b/apps/kappfinder/apps/Office/Gnumeric.desktop
+@@ -20,7 +20,7 @@
+ GenericName[el]=Λογιστικό φύλλο
+ GenericName[eo]=Tabelkalkulilo
+ GenericName[es]=Hoja de cálculo
+-GenericName[et]=Tabeltöötlus
++GenericName[et]=Tabelarvutus
+ GenericName[eu]=Kalkulu orria
+ GenericName[fa]=صفحه گسترده
+ GenericName[fi]=Taulukkolaskentaohjelma
+--- a/apps/kappfinder/apps/Office/acroread.desktop
++++ b/apps/kappfinder/apps/Office/acroread.desktop
+@@ -39,7 +39,7 @@
+ GenericName[el]=Προβολέας PDF
+ GenericName[eo]=PDF-rigardilo
+ GenericName[es]=Visor de documentos PDF
+-GenericName[et]=PDF failide vaatamine
++GenericName[et]=PDF-failide näitaja
+ GenericName[eu]=PDF ikustailua
+ GenericName[fa]=مشاهده‌گر PDF
+ GenericName[fi]=PDF-näytin
+--- a/apps/kappfinder/apps/Office/Guppi.desktop
++++ b/apps/kappfinder/apps/Office/Guppi.desktop
+@@ -22,7 +22,7 @@
+ GenericName[el]=Πρόγραμμα για διαγράμματα
+ GenericName[eo]=Programo por fari diagramojn
+ GenericName[es]=Generador de diagramas
+-GenericName[et]=Diagrammide joonistamine
++GenericName[et]=Skeemide joonistamine
+ GenericName[eu]=Diagrametarako programa
+ GenericName[fa]=برنامه برای نمودارها
+ GenericName[fi]=Kaavioidenpiirto-ohjelma
+--- a/apps/kappfinder/apps/Office/Dia.desktop
++++ b/apps/kappfinder/apps/Office/Dia.desktop
+@@ -22,7 +22,7 @@
+ GenericName[el]=Πρόγραμμα για διαγράμματα
+ GenericName[eo]=Programo por fari diagramojn
+ GenericName[es]=Generador de diagramas
+-GenericName[et]=Diagrammide joonistamine
++GenericName[et]=Skeemide joonistamine
+ GenericName[eu]=Diagrametarako programa
+ GenericName[fa]=برنامه برای نمودارها
+ GenericName[fi]=Kaavioidenpiirto-ohjelma
+--- a/apps/kappfinder/apps/Office/xpdf.desktop
++++ b/apps/kappfinder/apps/Office/xpdf.desktop
+@@ -24,7 +24,7 @@
+ GenericName[el]=Προβολέας PDF
+ GenericName[eo]=PDF-rigardilo
+ GenericName[es]=Visor de documentos PDF
+-GenericName[et]=PDF failide vaatamine
++GenericName[et]=PDF-failide näitaja
+ GenericName[eu]=PDF ikustailua
+ GenericName[fa]=مشاهده‌گر PDF
+ GenericName[fi]=PDF-näytin
+--- a/apps/kappfinder/apps/Utilities/SystemLogViewer.desktop
++++ b/apps/kappfinder/apps/Utilities/SystemLogViewer.desktop
+@@ -14,7 +14,7 @@
+ Name[el]=Προβολέας αρχείων καταγραφής
+ Name[eo]=Sistemprotokol-rigardilo
+ Name[es]=Visor de registro del sistema
+-Name[et]=Süsteemi logide monitor
++Name[et]=Süsteemi logide jälgija
+ Name[eu]=Sistemaren log ikustailua
+ Name[fa]=مشاهده‌گر ثبت سیستم
+ Name[fi]=Järjestelmälokien näytin
+--- a/apps/kappfinder/apps/Utilities/xutils/xclipboard.desktop
++++ b/apps/kappfinder/apps/Utilities/xutils/xclipboard.desktop
+@@ -42,7 +42,7 @@
+ Name[vi]=Bảng nháp X
+ Name[x-test]=xxX Clipboardxx
+ Name[xh]=Ibhodi yokuqhoboshela ye X
+-Name[zh_CN]=Name=X 剪贴板
++Name[zh_CN]=X 剪贴板
+ Name[zh_TW]=X 剪貼簿
+ MimeType=
+ GenericName=Clipboard Viewer
+@@ -60,7 +60,7 @@
+ GenericName[el]=Προβολέας πρόχειρου
+ GenericName[eo]=Rigardilo por la X-poŝenhavo
+ GenericName[es]=Visor del portapapeles
+-GenericName[et]=Lõikepuhvri vaatamine
++GenericName[et]=Lõikepuhvri näitaja
+ GenericName[eu]=Arbelaren ikustailua
+ GenericName[fa]=مشاهده‌گر تخته یادداشت
+ GenericName[fi]=Leikepöydän näytin
+--- a/apps/kappfinder/apps/Utilities/xutils/xload.desktop
++++ b/apps/kappfinder/apps/Utilities/xutils/xload.desktop
+@@ -55,7 +55,7 @@
+ GenericName[el]=Εποπτεία φόρτου του συστήματος
+ GenericName[eo]=Montras la sistemŝarĝon
+ GenericName[es]=Monitoriza la carga del sistema
+-GenericName[et]=Süsteemi koormuse monitor
++GenericName[et]=Süsteemi koormuse jälgija
+ GenericName[eu]=Sistemaren zama monitorizatzen du
+ GenericName[fa]=بارگذاری سیستم نمایشگرها
+ GenericName[fi]=Seuraa järjestelmän kuormaa
+--- a/apps/kappfinder/apps/Utilities/xutils/xconsole.desktop
++++ b/apps/kappfinder/apps/Utilities/xutils/xconsole.desktop
+@@ -59,7 +59,7 @@
+ GenericName[el]=Προβολέας μηνυμάτων κονσόλας
+ GenericName[eo]=Rigardilo por Konzolo-mesaĝoj
+ GenericName[es]=Visor de mensajes de consola
+-GenericName[et]=Konsooliteadete vaatamine
++GenericName[et]=Konsooliteadete näitaja
+ GenericName[eu]=Konsolako mezu ikustailua
+ GenericName[fa]=مشاهده‌گر پیام پیشانه
+ GenericName[fi]=Konsoliviestien näytin
+--- a/apps/kappfinder/apps/Utilities/xutils/Xtraceroute.desktop
++++ b/apps/kappfinder/apps/Utilities/xutils/Xtraceroute.desktop
+@@ -26,7 +26,7 @@
+ GenericName[el]=Εργαλείο δικτύου
+ GenericName[eo]=Retanalizilo
+ GenericName[es]=Herramienta de redes
+-GenericName[et]=Võrguutiliit
++GenericName[et]=Võrgutööriist
+ GenericName[eu]=Sare tresna
+ GenericName[fa]=ابزار شبکه
+ GenericName[fi]=Verkkotyökalu
+--- a/apps/kappfinder/common.cpp
++++ b/apps/kappfinder/common.cpp
+@@ -79,9 +79,9 @@
+   }
+ 
+   // determine for which executable to look
+-  QString exec = desktop.desktopGroup().readPathEntry( "TryExec" );
++  QString exec = desktop.desktopGroup().readPathEntry( "TryExec", QString() );
+   if ( exec.isEmpty() )
+-    exec = desktop.desktopGroup().readPathEntry( "Exec" );
++    exec = desktop.desktopGroup().readPathEntry( "Exec", QString() );
+   pos = exec.indexOf( ' ' );
+   if ( pos > 0 )
+     exec = exec.left( pos );
+--- a/apps/kappfinder/toplevel.cpp
++++ b/apps/kappfinder/toplevel.cpp
+@@ -228,7 +228,7 @@
+ 
+       item->setPixmap( 0, loader->loadIcon( desktop.readIcon(), KIconLoader::Small ) );
+       item->setText( 1, desktop.readGenericName() );
+-      item->setText( 2, desktop.desktopGroup().readPathEntry( "Exec" ) );
++      item->setText( 2, desktop.desktopGroup().readPathEntry( "Exec", QString() ) );
+       if ( desktop.desktopGroup().readEntry( "X-StandardInstall" , false) )
+         item->setOn( true );
+ 
+--- a/apps/konqueror/konqbrowser.desktop
++++ b/apps/konqueror/konqbrowser.desktop
+@@ -29,7 +29,7 @@
+ GenericName[el]=Περιηγητής ιστού
+ GenericName[eo]=TTT-legilo
+ GenericName[es]=Navegador web
+-GenericName[et]=Veebilehitseja
++GenericName[et]=Veebibrauser
+ GenericName[eu]=Web arakatzailea
+ GenericName[fa]=مرورگر وب‌
+ GenericName[fi]=WWW-selain
+--- a/apps/konqueror/konqfilemgr.desktop
++++ b/apps/konqueror/konqfilemgr.desktop
+@@ -38,7 +38,7 @@
+ Name[kk]=Файл менеджері
+ Name[km]=កម្មវិធី​គ្រប់គ្រង​ឯកសារ
+ Name[ko]=파일 관리자
+-Name[lt]=Bylų tvarkyklė
++Name[lt]=Failų tvarkyklė
+ Name[lv]=Failu Menedžeris
+ Name[mk]=Менаџер на датотеки
+ Name[ms]=Pengurus Fail
+--- a/apps/konqueror/src/konqmainwindow.cpp
++++ b/apps/konqueror/src/konqmainwindow.cpp
+@@ -345,24 +345,21 @@
+   //kDebug(1202) << "KonqMainWindow::~KonqMainWindow " << this << " done";
+ }
+ 
+-QWidget * KonqMainWindow::createContainer( QWidget *parent, int index, const QDomElement &element, int &id )
++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" );
+-
+-  QWidget *res = KParts::MainWindow::createContainer( parent, index, element, id );
+-
+   if ( res && (element.tagName() == tagToolBar) && (element.attribute( "name" ) == nameBookmarkBar) )
+   {
+     assert( ::qobject_cast<KToolBar*>( res ) );
+-    if (!KAuthorized::authorizeKAction("bookmarks"))
+-    {
++    if (!KAuthorized::authorizeKAction("bookmarks")) {
+         delete res;
+         return 0;
+     }
+ 
+-    if ( !m_bookmarkBarInitialized )
+-    {
++    if ( !m_bookmarkBarInitialized ) {
+         // The actual menu needs a different action collection, so that the bookmarks
+         // don't appear in kedittoolbar
+         m_bookmarkBarInitialized = true;
+@@ -388,7 +385,7 @@
+      bar->hide();
+ }
+ 
+-void KonqMainWindow::removeContainer( QWidget *container, QWidget *parent, QDomElement &element, int id )
++void KonqMainWindow::removeContainer( QWidget *container, QWidget *parent, QDomElement &element, QAction* containerAction )
+ {
+   static QString nameBookmarkBar = QLatin1String( "bookmarkToolBar" );
+   static QString tagToolBar = QLatin1String( "ToolBar" );
+@@ -400,7 +397,7 @@
+       m_paBookmarkBar->clear();
+   }
+ 
+-  KParts::MainWindow::removeContainer( container, parent, element, id );
++  KParts::MainWindow::removeContainer( container, parent, element, containerAction );
+ }
+ 
+ // Detect a name filter (e.g. *.txt) in the url.
+@@ -756,7 +753,7 @@
+           if ( f.open(QIODevice::ReadOnly) )
+             {
+               f.close();
+-              KConfig config( urlDotDir.path(), KConfig::OnlyLocal);
++              KConfig config( urlDotDir.path(), KConfig::SimpleConfig);
+               KConfigGroup urlProperties( &config, "URL properties" );
+               HTMLAllowed = urlProperties.readEntry( "HTMLAllowed", m_bHTMLAllowed);
+               serviceName = urlProperties.readEntry( "ViewMode", serviceName );
+@@ -838,11 +835,14 @@
+               QString suggestedFilename;
+ 
+               KonqRun* run = childView->run();
+-              if (run)
++              int attachment = 0;
++              if (run) {
+                   suggestedFilename = run->suggestedFileName();
++                  attachment = (run->serverSuggestsSave()) ? KParts::BrowserRun::AttachmentDisposition : KParts::BrowserRun::InlineDisposition;
++              }
+ 
+               KParts::BrowserRun::AskSaveResult res = KParts::BrowserRun::askEmbedOrSave(
+-                  url, mimeType, suggestedFilename );
++                  url, mimeType, suggestedFilename, attachment );
+               if ( res == KParts::BrowserRun::Open )
+                   forceAutoEmbed = true;
+               else if ( res == KParts::BrowserRun::Cancel )
+@@ -1634,7 +1634,7 @@
+       u.addPath(".directory");
+       if ( u.isLocalFile() )
+       {
+-          KConfig config( u.path(), KConfig::OnlyLocal ); // if we have no write access, just drop it
++          KConfig config( u.path(), KConfig::SimpleConfig ); // if we have no write access, just drop it
+           KConfigGroup urlProperties( &config, "URL properties" );
+           urlProperties.writeEntry( "ViewMode", modeName );
+           config.sync();
+@@ -1660,7 +1660,7 @@
+       u.addPath(".directory");
+       if ( u.isLocalFile() )
+       {
+-          KConfig config( u.path(), KConfig::OnlyLocal ); // No checks for access
++          KConfig config( u.path(), KConfig::SimpleConfig ); // No checks for access
+           KConfigGroup urlProperties( &config, "URL properties" );
+           urlProperties.writeEntry( "HTMLAllowed", b );
+           config.sync();
+@@ -2577,7 +2577,7 @@
+     if (prop.isValid() && prop.toBool())
+       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-breakoff"), KStandardGuiItem::cancel(), "discardchangesdetach") != KMessageBox::Continue )
++           i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"tab-detach"), KStandardGuiItem::cancel(), "discardchangesdetach") != KMessageBox::Continue )
+         return;
+   }
+ 
+@@ -2595,7 +2595,7 @@
+       m_pViewManager->showTab( view );
+       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-breakoff"), KStandardGuiItem::cancel(), "discardchangesdetach") != KMessageBox::Continue )
++           i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"tab-detach"), KStandardGuiItem::cancel(), "discardchangesdetach") != KMessageBox::Continue )
+       {
+         m_pViewManager->showTab( originalView );
+         return;
+@@ -2707,7 +2707,7 @@
+     if (prop.isValid() && prop.toBool())
+       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-remove"), KStandardGuiItem::cancel(), "discardchangesclose") != KMessageBox::Continue )
++           i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"tab-close"), KStandardGuiItem::cancel(), "discardchangesclose") != KMessageBox::Continue )
+         return;
+   }
+ 
+@@ -2724,7 +2724,7 @@
+       m_pViewManager->showTab( view );
+       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-remove"), KStandardGuiItem::cancel(), "discardchangesclose") != KMessageBox::Continue )
++           i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"tab-close"), KStandardGuiItem::cancel(), "discardchangesclose") != KMessageBox::Continue )
+       {
+         m_pViewManager->showTab( originalView );
+         return;
+@@ -2746,7 +2746,7 @@
+ {
+   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-remove"),
++       i18n("Close Other Tabs Confirmation"), KGuiItem(i18n("Close &Other Tabs"),"tab-close"),
+        KStandardGuiItem::cancel(), "CloseOtherTabConfirm") != KMessageBox::Continue )
+     return;
+ 
+@@ -2761,7 +2761,7 @@
+         m_pViewManager->showTab( view );
+         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-remove"), KStandardGuiItem::cancel(), "discardchangescloseother") != KMessageBox::Continue )
++           i18n("Discard Changes?"), KGuiItem(i18n("&Discard Changes"),"tab-close"), KStandardGuiItem::cancel(), "discardchangescloseother") != KMessageBox::Continue )
+         {
+            m_pViewManager->showTab( originalView );
+            return;
+@@ -2856,7 +2856,7 @@
+       if ( f.open(QIODevice::ReadWrite) )
+       {
+           f.close();
+-          KConfig config( u.path(), KConfig::OnlyLocal);
++          KConfig config( u.path(), KConfig::SimpleConfig);
+           config.deleteGroup( "URL properties" ); // Bye bye
+           config.sync();
+           // TODO: Notify the view...
+@@ -3758,7 +3758,7 @@
+ 
+   // Go menu
+   m_paUp = new KToolBarPopupAction( KIcon("go-up"), i18n( "&Up" ), this );
+-  actionCollection()->addAction( "up", m_paUp );
++  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) ) );
+@@ -3768,7 +3768,7 @@
+   QPair< KGuiItem, KGuiItem > backForward = KStandardGuiItem::backAndForward();
+ 
+   m_paBack = new KToolBarPopupAction( KIcon(backForward.first.iconName()), backForward.first.text(), this );
+-  actionCollection()->addAction( "back", m_paBack );
++  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) ) );
+@@ -3776,7 +3776,7 @@
+   connect( m_paBack->menu(), SIGNAL( activated( int ) ), this, SLOT( slotBackActivated( int ) ) );
+ 
+   m_paForward = new KToolBarPopupAction( KIcon(backForward.second.iconName()), backForward.second.text(), this );
+-  actionCollection()->addAction( "forward", m_paForward );
++  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) ) );
+@@ -3788,11 +3788,8 @@
+   connect( m_paHistory, SIGNAL( menuAboutToShow() ), this, SLOT( slotGoMenuAboutToShow() ) );
+   connect( m_paHistory, SIGNAL( step( int ) ), this, SLOT( slotGoHistoryActivated( int ) ) );
+ 
+-  m_paHome = actionCollection()->addAction("home");
+-  m_paHome->setIcon(KIcon("go-home"));
+-  m_paHome->setText(i18n( "Home" ));
++  m_paHome = actionCollection()->addAction( KStandardAction::Home );
+   m_paHome->setEnabled( true );
+-  m_paHome->setShortcuts(KStandardShortcut::shortcut(KStandardShortcut::Home));
+   connect( m_paHome, SIGNAL( triggered( Qt::MouseButtons, Qt::KeyboardModifiers) ), this,
+ 	   SLOT( slotHome(Qt::MouseButtons, Qt::KeyboardModifiers) ) );
+ 
+@@ -3866,10 +3863,10 @@
+   m_paConfigureExtensions = actionCollection()->addAction("options_configure_extensions");
+   m_paConfigureExtensions->setText( i18n("Configure Extensions...") );
+   connect(m_paConfigureExtensions, SIGNAL(triggered(bool) ), 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(bool)), SLOT( slotConfigureSpellChecking()));
++  //m_paConfigureSpellChecking = actionCollection()->addAction("configurespellcheck");
++  //m_paConfigureSpellChecking->setIcon(KIcon("tools-check-spelling"));
++  //m_paConfigureSpellChecking->setText(i18n("Configure Spell Checking..."));
++  //connect(m_paConfigureSpellChecking, SIGNAL(triggered(bool)), SLOT( slotConfigureSpellChecking()));
+ 
+   // Window menu
+   m_paSplitViewHor = actionCollection()->addAction("splitviewh");
+@@ -3894,7 +3891,7 @@
+   connect(m_paDuplicateTab, SIGNAL(triggered(bool)), SLOT( slotDuplicateTab() ));
+   m_paDuplicateTab->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_D);
+   m_paBreakOffTab = actionCollection()->addAction("breakoffcurrenttab");
+-  m_paBreakOffTab->setIcon( KIcon("tab-breakoff") );
++  m_paBreakOffTab->setIcon( KIcon("tab-detach") );
+   m_paBreakOffTab->setText( i18n( "Detach Current Tab" ) );
+   connect(m_paBreakOffTab, SIGNAL(triggered(bool)), SLOT( slotBreakOffTab() ));
+   m_paBreakOffTab->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_B);
+@@ -3904,12 +3901,12 @@
+   connect(m_paRemoveView, SIGNAL(triggered(bool)), SLOT( slotRemoveView() ));
+   m_paRemoveView->setShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_R);
+   m_paRemoveTab = actionCollection()->addAction("removecurrenttab");
+-  m_paRemoveTab->setIcon( KIcon("tab-remove") );
++  m_paRemoveTab->setIcon( KIcon("tab-close") );
+   m_paRemoveTab->setText( i18n( "Close Current Tab" ) );
+   connect(m_paRemoveTab, SIGNAL(triggered(bool)), SLOT( slotRemoveTab() ));
+   m_paRemoveTab->setShortcut(Qt::CTRL+Qt::Key_W);
+   m_paRemoveOtherTabs = actionCollection()->addAction("removeothertabs");
+-  m_paRemoveOtherTabs->setIcon( KIcon("tab-remove") );
++  m_paRemoveOtherTabs->setIcon( KIcon("tab-close") );
+   m_paRemoveOtherTabs->setText( i18n( "Close &Other Tabs" ) );
+   connect(m_paRemoveOtherTabs, SIGNAL(triggered(bool)), SLOT( slotRemoveOtherTabsPopup() ));
+ 
+@@ -4003,7 +4000,7 @@
+   m_paRename->setText( i18n( "&Rename" ) );
+   m_paRename->setShortcut(Qt::Key_F2);
+   m_paTrash = actionCollection()->addAction("trash");
+-  m_paTrash->setIcon( KIcon("edit-trash") );
++  m_paTrash->setIcon( KIcon("user-trash") );
+   m_paTrash->setText( i18n( "&Move to Trash" ) );
+   m_paTrash->setShortcut(Qt::Key_Delete);
+   connect( m_paTrash, SIGNAL( triggered( Qt::MouseButtons, Qt::KeyboardModifiers ) ),
+@@ -4046,7 +4043,7 @@
+ 				  "Enter a web address or search term." ) );
+ 
+   QAction *clearLocation = actionCollection()->addAction("clear_location");
+-  clearLocation->setIcon( KIcon(QApplication::isRightToLeft() ? "clear-left" : "locationbar-erase") );
++  clearLocation->setIcon( KIcon(QApplication::isRightToLeft() ? "edit-clear-locationbar-rtl" : "edit-clear-locationbar") );
+   clearLocation->setText( i18n( "Clear Location Bar" ) );
+   clearLocation->setShortcut(Qt::CTRL+Qt::Key_L);
+   connect( clearLocation, SIGNAL( triggered(bool) ),
+@@ -4077,7 +4074,7 @@
+   connect(action, SIGNAL(triggered(bool) ), SLOT( slotIntro() ));
+ 
+   QAction *goUrl = actionCollection()->addAction("go_url");
+-  goUrl->setIcon( KIcon("browser-go") );
++  goUrl->setIcon( KIcon("go-jump-locationbar") );
+   goUrl->setText( i18n( "Go" ) );
+   connect(goUrl, SIGNAL(triggered(bool)), SLOT( goURL() ));
+   goUrl->setWhatsThis( i18n( "Go<br /><br />"
+@@ -4098,8 +4095,8 @@
+   m_paForward->setToolTip( i18n( "Move forward one step in the browsing history" ) );
+ 
+   m_paHome->setWhatsThis( i18n( "Navigate to your 'Home Location'<br /><br />"
+-                                "You can configure the location this button takes you to in the "
+-                                "<b>KDE Control Center</b>, under <b>File Manager</b>/<b>Behavior</b>." ) );
++                                "You can configure the location this button takes you to "
++                                "under <b>Settings -> Configure Konqueror -> General</b>." ) );
+   m_paHome->setToolTip( i18n( "Navigate to your 'Home Location'" ) );
+ 
+   m_paReload->setWhatsThis( i18n( "Reload the currently displayed document<br /><br />"
+@@ -4740,9 +4737,9 @@
+   // It has to be a KActionCollection instead of a KActionPtrList because we need
+   // the actionStatusText signal...
+   KActionCollection popupMenuCollection( (QWidget*)0 );
+-  popupMenuCollection.addAction( "back", m_paBack );
+-  popupMenuCollection.addAction( "forward", m_paForward );
+-  popupMenuCollection.addAction( "up", m_paUp );
++  popupMenuCollection.addAction( "go_back", m_paBack );
++  popupMenuCollection.addAction( "go_forward", m_paForward );
++  popupMenuCollection.addAction( "go_up", m_paUp );
+   popupMenuCollection.addAction( "reload", m_paReload );
+ 
+ #if 0
+@@ -5323,7 +5320,7 @@
+                         "are you sure you want to quit?"),
+                   i18n("Confirmation"),
+                   KStandardGuiItem::quit(),
+-                  KGuiItem(i18n( "C&lose Current Tab" ), "tab-remove"),
++                  KGuiItem(i18n( "C&lose Current Tab" ), "tab-close"),
+                   KStandardGuiItem::cancel(),
+                   "MultipleTabConfirm"
+               )
+--- a/apps/konqueror/src/konq-webbrowsing.rc
++++ b/apps/konqueror/src/konq-webbrowsing.rc
+@@ -1,6 +1,6 @@
+ <?xml version="1.0"?>
+ <!DOCTYPE gui SYSTEM "kpartgui.dtd">
+-<gui name="Konqueror" version="59">
++<gui name="Konqueror" version="60">
+ <MenuBar>
+  <Menu name="file" noMerge="1"><text>&amp;File</text>
+   <Action name="new_window"/>
+@@ -47,11 +47,11 @@
+   <WeakSeparator/>
+   <Merge/>
+  </Menu>
+- <Menu name="go"><text>&amp;Go</text>
+-  <Action name="back"/>
+-  <Action name="forward"/>
+-  <!--<Action name="up"/>-->
+-  <Action name="home"/>
++ <Menu name="go_web" noMerge="1"><text>&amp;Go</text>
++  <!--<Action name="go_up"/>-->
++  <Action name="go_back"/>
++  <Action name="go_forward"/>
++  <Action name="go_home"/>
+   <Separator/>
+   <Action name="go_system"/>
+   <Action name="go_applications"/>
+@@ -119,12 +119,12 @@
+  <Merge/>
+ </MenuBar>
+ <ToolBar iconText="icononly" name="mainToolBar" newline="true"><text>Main Toolbar</text>
+- <Action name="back"/>
+- <Action name="forward"/>
+- <Action name="up"/>
++ <Action name="go_back"/>
++ <Action name="go_forward"/>
++ <Action name="go_up"/>
+  <Action name="reload"/>
+  <Action name="stop"/>
+- <Action name="home"/>
++ <Action name="go_home"/>
+  <WeakSeparator/>
+  <Merge/>
+ </ToolBar>
+--- a/apps/konqueror/src/konqprofiledlg.cpp
++++ b/apps/konqueror/src/konqprofiledlg.cpp
+@@ -48,7 +48,7 @@
+   {
+     QFileInfo info( *pIt );
+     QString profileName = KIO::decodeFileName( info.baseName() );
+-    KConfig cfg( *pIt, KConfig::OnlyLocal);
++    KConfig cfg( *pIt, KConfig::SimpleConfig);
+     if ( cfg.hasGroup( "Profile" ) )
+     {
+       KConfigGroup profileGroup( &cfg, "Profile" );
+@@ -219,7 +219,7 @@
+     if ( it != m_mapEntries.end() )
+     {
+       QString fileName = it.value();
+-      KConfig _cfg( fileName, KConfig::OnlyLocal );
++      KConfig _cfg( fileName, KConfig::SimpleConfig );
+       KConfigGroup cfg(&_cfg, "Profile" );
+       cfg.writeEntry( "Name", newName );
+       cfg.sync();
+--- a/apps/konqueror/src/konqcombo.cpp
++++ b/apps/konqueror/src/konqcombo.cpp
+@@ -324,7 +324,7 @@
+     historyConfigGroup.writeEntry( "CompletionItems", "unused" );
+ 
+     KConfigGroup locationBarGroup( s_config, "Location Bar" );
+-    const QStringList items = locationBarGroup.readPathListEntry( "ComboContents" );
++    const QStringList items = locationBarGroup.readPathEntry( "ComboContents", QStringList() );
+     QStringList::ConstIterator it = items.begin();
+     QString item;
+     bool first = true;
+@@ -645,7 +645,7 @@
+ 	if ( useColor)
+ 	    edit->setPaletteBackgroundColor( color );
+ 
+-        pix = SmallIcon( m_pageSecurity==KonqMainWindow::Encrypted ? "encrypted" : "halfencrypted" );
++        pix = SmallIcon( m_pageSecurity==KonqMainWindow::Encrypted ? "security-high" : "security-medium" );
+         p.fillRect( re.right() - pix.width() - 3 , re.y(), pix.width() + 4, re.height(),
+ 		    QBrush( useColor ? color : edit->paletteBackgroundColor() ));
+         p.drawPixmap( re.right() - pix.width() -1 , re.y() + ( re.height() - pix.height() ) / 2, pix );
+--- a/apps/konqueror/src/konqrun.cpp
++++ b/apps/konqueror/src/konqrun.cpp
+@@ -87,11 +87,9 @@
+ 
+   bool tryEmbed = true;
+   // One case where we shouldn't try to embed, is when the server asks us to save
+-  // ####### only if content-disposition doesn't say inline
+-#if 0
+-  if ( !m_suggestedFilename.isEmpty() )
+-     tryEmbed = false;
+-#endif
++  if ( serverSuggestsSave() )
++    tryEmbed = false;
++
+   if ( KonqMainWindow::isMimeTypeAssociatedWithSelf( mimeType ) )
+       m_req.forceAutoEmbed = true;
+ 
+@@ -114,6 +112,8 @@
+     if ( res == KParts::BrowserRun::Delayed )
+       return;
+     setFinished( res == KParts::BrowserRun::Handled );
++    if (!hasFinished() && !tryEmbed) // Open selected for a serverSuggestsSave() file
++        setFinished( m_pMainWindow->openView( mimeType, KRun::url(), m_pView, m_req ) );
+   }
+ 
+   // make Konqueror think there was an error, in order to stop the spinning wheel
+--- a/apps/konqueror/src/konqviewmanager.cpp
++++ b/apps/konqueror/src/konqviewmanager.cpp
+@@ -769,7 +769,7 @@
+   if ( QFile::exists( path ) )
+     QFile::remove( path );
+ 
+-  KConfig _cfg( path, KConfig::OnlyLocal );
++  KConfig _cfg( path, KConfig::SimpleConfig );
+   KConfigGroup cfg(&_cfg, "Profile" );
+   if ( !profileName.isEmpty() )
+       cfg.writePathEntry( "Name", profileName );
+@@ -1122,7 +1122,7 @@
+       //kDebug(1202) << "KonqViewManager::loadItem: key " << key;
+       if ( cfg.hasKey( key ) )
+       {
+-        QString u = cfg.readPathEntry( key );
++        QString u = cfg.readPathEntry( key, QString() );
+         if ( u.isEmpty() )
+           u = QString::fromLatin1("about:blank");
+         url = u;
+--- a/apps/konqueror/src/konq-filemanagement.rc
++++ b/apps/konqueror/src/konq-filemanagement.rc
+@@ -1,6 +1,6 @@
+ <?xml version="1.0"?>
+ <!DOCTYPE gui SYSTEM "kpartgui.dtd">
+-<gui name="Konqueror" version="59">
++<gui name="Konqueror" version="60">
+ <MenuBar>
+  <Menu name="file" noMerge="1"><text>&amp;File</text>
+   <Action name="new_window"/>
+@@ -47,12 +47,8 @@
+   <WeakSeparator/>
+   <Merge/>
+  </Menu>
+- <Menu name="go"><text>&amp;Go</text>
+-  <Action name="back"/>
+-  <Action name="forward"/>
+-  <!--<Action name="up"/>-->
+-  <Action name="home"/>
+-  <Separator/>
++ <Menu name="go_web"><text>Go</text>
++  <!-- go_up, go_back, go_forward, go_home: coming from ui_standards.rc -->
+   <Action name="go_system"/>
+   <Action name="go_applications"/>
+   <Action name="go_network_folders"/>
+@@ -119,12 +115,12 @@
+  <Merge/>
+ </MenuBar>
+ <ToolBar fullWidth="true" name="mainToolBar" newline="true"><text>Main Toolbar</text>
+- <Action name="back"/>
+- <Action name="forward"/>
+- <Action name="up"/>
++ <Action name="go_back"/>
++ <Action name="go_forward"/>
++ <Action name="go_up"/>
++ <Separator/>
++ <Action name="go_home"/>
+  <Separator/>
+- <Action name="home"/>
+- <Action name="print"/>
+ </ToolBar>
+ <ToolBar hidden="true" name="extraToolBar" newline="false" index="1"><text>Extra Toolbar</text>
+   <Action name="konq_sidebartng" />
+--- a/apps/konqueror/src/konqueror.rc
++++ b/apps/konqueror/src/konqueror.rc
+@@ -1,6 +1,6 @@
+ <?xml version="1.0"?>
+ <!DOCTYPE gui SYSTEM "kpartgui.dtd">
+-<gui name="Konqueror" version="59">
++<gui name="Konqueror" version="60">
+ <MenuBar>
+  <Menu name="file" noMerge="1"><text>&amp;File</text>
+   <Action name="new_window"/>
+@@ -47,12 +47,8 @@
+   <WeakSeparator/>
+   <Merge/>
+  </Menu>
+- <Menu name="go"><text>&amp;Go</text>
+-  <Action name="back"/>
+-  <Action name="forward"/>
+-  <Action name="up"/>
+-  <Action name="home"/>
+-  <Separator/>
++ <Menu name="go_web"><text>&amp;Go</text>
++  <!-- go_up, go_back, go_forward, go_home: coming from ui_standards.rc -->
+   <Action name="go_system"/>
+   <Action name="go_applications"/>
+   <Action name="go_network_folders"/>
+@@ -116,10 +112,10 @@
+  <Merge/>
+ </MenuBar>
+ <ToolBar fullWidth="true" name="mainToolBar" newline="true"><text>Main Toolbar</text>
+- <Action name="back"/>
+- <Action name="forward"/>
+- <Action name="up"/>
+- <Action name="home"/>
++ <Action name="go_back"/>
++ <Action name="go_forward"/>
++ <Action name="go_up"/>
++ <Action name="go_home"/>
+  <Separator/>
+  <Action name="reload"/>
+  <Action name="stop"/>
+--- a/apps/konqueror/src/konqmainwindow.h
++++ b/apps/konqueror/src/konqmainwindow.h
+@@ -142,8 +142,9 @@
+   // Central widget of the mainwindow, never 0L
+   QWidget *mainWidget() const;
+ 
+-  virtual QWidget *createContainer( QWidget *parent, int index, const QDomElement &element, int &id );
+-  virtual void removeContainer( QWidget *container, QWidget *parent, QDomElement &element, int id );
++  // KXMLGUIBuilder methods
++  virtual QWidget *createContainer( QWidget *parent, int index, const QDomElement &element, QAction* &containerAction );
++  virtual void removeContainer( QWidget *container, QWidget *parent, QDomElement &element, QAction* containerAction );
+ 
+   virtual void saveProperties( KConfig& config );
+   virtual void readProperties( KConfig& config );
+@@ -646,7 +647,7 @@
+   QAction *m_paMoveTabRight;
+ 
+   QAction *m_paConfigureExtensions;
+-  QAction *m_paConfigureSpellChecking;
++  //QAction *m_paConfigureSpellChecking;
+ 
+   KAnimatedButton *m_paAnimatedLogo;
+ 
+--- a/apps/konqueror/src/konqtabs.cpp
++++ b/apps/konqueror/src/konqtabs.cpp
+@@ -113,7 +113,7 @@
+     m_rightWidget->setFlat(true);
+     connect( m_rightWidget, SIGNAL( clicked() ),
+              m_pViewManager->mainWindow(), SLOT( slotRemoveTab() ) );
+-    m_rightWidget->setIcon( KIcon( "tab-remove" ) );
++    m_rightWidget->setIcon( KIcon( "tab-close" ) );
+     m_rightWidget->adjustSize();
+     m_rightWidget->setToolTip( i18n("Close the current tab"));
+     setCornerWidget( m_rightWidget, Qt::TopRightCorner );
+@@ -358,7 +358,7 @@
+     }
+     m_pSubPopupMenuTab->addSeparator();
+     m_closeOtherTabsId =
+-      m_pSubPopupMenuTab->insertItem( KIcon( "tab-remove" ),
++      m_pSubPopupMenuTab->insertItem( KIcon( "tab-close" ),
+ 				      i18n( "Close &Other Tabs" ),
+ 				      m_pViewManager->mainWindow(),
+ 				      SLOT( slotRemoveOtherTabsPopup() ),
+@@ -499,14 +499,14 @@
+   connect( m_pSubPopupMenuTab, SIGNAL( activated ( int ) ),
+            this, SLOT( slotSubPopupMenuTabActivated( int ) ) );
+   m_pPopupMenu->addSeparator();
+-  m_pPopupMenu->insertItem( KIcon( "tab-breakoff" ),
++  m_pPopupMenu->insertItem( KIcon( "tab-detach" ),
+                             i18n("D&etach Tab"),
+                             m_pViewManager->mainWindow(),
+                             SLOT( slotBreakOffTabPopup() ),
+                             m_pViewManager->mainWindow()->action("breakoffcurrenttab")->shortcut(),
+                             BREAKOFF_ID );
+   m_pPopupMenu->addSeparator();
+-  m_pPopupMenu->insertItem( KIcon( "tab-remove" ),
++  m_pPopupMenu->insertItem( KIcon( "tab-close" ),
+                             i18n("&Close Tab"),
+                             m_pViewManager->mainWindow(),
+                             SLOT( slotRemoveTabPopup() ),
+--- a/apps/konqueror/src/konq-simplebrowser.rc
++++ b/apps/konqueror/src/konq-simplebrowser.rc
+@@ -1,4 +1,5 @@
+ <?xml version = '1.0'?>
++<!-- This file is used by the simplebrowser profile -->
+ <!DOCTYPE gui SYSTEM "kpartgui.dtd">
+ <gui version="52" name="Konqueror" >
+  <MenuBar>
+@@ -77,10 +78,10 @@
+  </ToolBar>
+  <ToolBar newline="true" noMerge="1" name="locationToolBar" fullWidth="true" >
+   <text>Location Toolbar</text>
+-  <Action name="back" />
+-  <Action name="forward" />
+-  <Action name="up" />
+-  <Action name="home" />
++  <Action name="go_back" />
++  <Action name="go_forward" />
++  <Action name="go_up" />
++  <Action name="go_home" />
+   <Action name="reload" />
+   <Action name="stop" />
+   <Action name="security" />
+--- a/apps/konqueror/settings/ebrowsing/ebrowsing.desktop
++++ b/apps/konqueror/settings/ebrowsing/ebrowsing.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/ebrowsing/index.html
+ Icon=enhanced_browsing
+-Exec=kcmshell ebrowsing
++Exec=kcmshell4 ebrowsing
+ 
+ X-KDE-Library=kcm_kurifilt
+ X-KDE-ParentApp=kcontrol
+--- a/apps/konqueror/settings/performance/kcmperformance.desktop
++++ b/apps/konqueror/settings/performance/kcmperformance.desktop
+@@ -3,7 +3,7 @@
+ Icon=launch
+ Type=Service
+ ServiceTypes=KCModule
+-Exec=kcmshell kcmperformance
++Exec=kcmshell4 kcmperformance
+ 
+ X-KDE-Library=kcm_performance
+ X-KDE-PluginKeyword=performance
+@@ -87,7 +87,7 @@
+ Comment[el]=Αλλάξτε ρυθμίσεις που μπορεί να βελτιώσουν την απόδοση του KDE
+ Comment[eo]=Agordo de plibonigo de la KDEa potenco
+ Comment[es]=Configurar las preferencias que pueden mejorar el rendimiento de KDE
+-Comment[et]=Siin saad seadistada, kuidas KDE kõigega paremini toime tuleks
++Comment[et]=Siin saab seadistada, kuidas KDE kõigega paremini toime tuleks
+ Comment[eu]=Konfiguratu Konquerorren performantzia hobe dezaketen ezarpenak
+ Comment[fa]=پیکربندی تنظیماتی که کارایی KDE را بهبود می‌بخشد
+ Comment[fi]=Muokkaa KDE:n suorituskykyyn liittyviä asetuksia
+--- a/apps/konqueror/settings/performance/kcmkonqyperformance.desktop
++++ b/apps/konqueror/settings/performance/kcmkonqyperformance.desktop
+@@ -3,7 +3,7 @@
+ Icon=launch
+ Type=Service
+ ServiceTypes=KCModule
+-Exec=kcmshell kcmkonqyperformance
++Exec=kcmshell4 kcmkonqyperformance
+ 
+ X-KDE-Library=kcm_performance
+ X-KDE-PluginKeyword=konqueror
+@@ -85,7 +85,7 @@
+ Comment[el]=Αλλάξτε ρυθμίσεις που μπορεί να βελτιώσουν την απόδοση του Konqueror
+ Comment[eo]=Agordo de Konkeranto por plibonigi la potencon
+ Comment[es]=Configurar las preferencias que pueden mejorar el rendimiento de Konqueror
+-Comment[et]=Siin saad seadistada, kuidas Konqueror kõigega paremini toime tuleks
++Comment[et]=Siin saab seadistada, kuidas Konqueror kõigega paremini toime tuleks
+ Comment[eu]=Konfiguratu Konquerorren performantzia hobe dezaketen ezarpenak
+ Comment[fa]=پیکربندی تنظیماتی که کارایی Konqueror را بهبود می‌بخشد.
+ Comment[fi]=Muokkaa Konquerorin suorituskykyyn liittyviä asetuksia
+--- a/apps/konqueror/settings/kio/cache.ui
++++ b/apps/konqueror/settings/kio/cache.ui
+@@ -6,7 +6,7 @@
+     <x>0</x>
+     <y>0</y>
+     <width>424</width>
+-    <height>279</height>
++    <height>204</height>
+    </rect>
+   </property>
+   <layout class="QVBoxLayout" >
+@@ -21,95 +21,103 @@
+     </widget>
+    </item>
+    <item>
+-    <widget class="QGroupBox" name="bgCachePolicy" >
+-     <property name="enabled" >
+-      <bool>false</bool>
+-     </property>
+-     <property name="title" >
+-      <string>Policy</string>
+-     </property>
+-     <layout class="QVBoxLayout" >
+-      <item>
+-       <widget class="QRadioButton" name="rbVerifyCache" >
+-        <property name="whatsThis" >
+-         <string>Verify whether the cached web page is valid before attempting to fetch the web page again.</string>
+-        </property>
+-        <property name="text" >
+-         <string>&amp;Keep cache in sync</string>
+-        </property>
+-       </widget>
+-      </item>
+-      <item>
+-       <widget class="QRadioButton" name="rbCacheIfPossible" >
+-        <property name="whatsThis" >
+-         <string>Always use documents from the cache when available. You can still use the reload button to synchronize the cache with the remote host.</string>
+-        </property>
+-        <property name="text" >
+-         <string>Use cache whenever &amp;possible</string>
+-        </property>
+-       </widget>
+-      </item>
+-      <item>
+-       <widget class="QRadioButton" name="rbOfflineMode" >
+-        <property name="whatsThis" >
+-         <string>Do not fetch web pages that are not already stored in the cache. Offline mode prevents you from viewing pages that you have not previously visited.</string>
+-        </property>
+-        <property name="text" >
+-         <string>O&amp;ffline browsing mode</string>
+-        </property>
+-       </widget>
+-      </item>
+-     </layout>
+-    </widget>
+-   </item>
+-   <item>
+     <layout class="QHBoxLayout" >
+      <item>
+-      <widget class="QLabel" name="lbMaxCacheSize" >
+-       <property name="enabled" >
+-        <bool>false</bool>
+-       </property>
+-       <property name="text" >
+-        <string>Disk cache &amp;size:</string>
+-       </property>
+-       <property name="buddy" >
+-        <cstring>sbMaxCacheSize</cstring>
+-       </property>
+-      </widget>
+-     </item>
+-     <item>
+-      <widget class="KIntNumInput" name="sbMaxCacheSize" >
+-       <property name="enabled" >
+-        <bool>false</bool>
+-       </property>
+-      </widget>
+-     </item>
+-     <item>
+-      <widget class="QPushButton" name="pbClearCache" >
+-       <property name="enabled" >
+-        <bool>false</bool>
+-       </property>
+-       <property name="text" >
+-        <string>C&amp;lear Cache</string>
+-       </property>
+-      </widget>
+-     </item>
+-     <item>
+       <spacer>
+        <property name="orientation" >
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeType" >
+-        <enum>QSizePolicy::MinimumExpanding</enum>
++        <enum>QSizePolicy::Fixed</enum>
+        </property>
+        <property name="sizeHint" >
+         <size>
+-         <width>0</width>
+-         <height>21</height>
++         <width>16</width>
++         <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
++     <item>
++      <layout class="QVBoxLayout" >
++       <item>
++        <widget class="QGroupBox" name="bgCachePolicy" >
++         <property name="enabled" >
++          <bool>false</bool>
++         </property>
++         <property name="title" >
++          <string>Policy</string>
++         </property>
++         <layout class="QVBoxLayout" >
++          <item>
++           <widget class="QRadioButton" name="rbVerifyCache" >
++            <property name="whatsThis" >
++             <string>Verify whether the cached web page is valid before attempting to fetch the web page again.</string>
++            </property>
++            <property name="text" >
++             <string>&amp;Keep cache in sync</string>
++            </property>
++           </widget>
++          </item>
++          <item>
++           <widget class="QRadioButton" name="rbCacheIfPossible" >
++            <property name="whatsThis" >
++             <string>Always use documents from the cache when available. You can still use the reload button to synchronize the cache with the remote host.</string>
++            </property>
++            <property name="text" >
++             <string>Use cache whenever &amp;possible</string>
++            </property>
++           </widget>
++          </item>
++          <item>
++           <widget class="QRadioButton" name="rbOfflineMode" >
++            <property name="whatsThis" >
++             <string>Do not fetch web pages that are not already stored in the cache. Offline mode prevents you from viewing pages that you have not previously visited.</string>
++            </property>
++            <property name="text" >
++             <string>O&amp;ffline browsing mode</string>
++            </property>
++           </widget>
++          </item>
++         </layout>
++        </widget>
++       </item>
++       <item>
++        <layout class="QHBoxLayout" >
++         <item>
++          <widget class="QLabel" name="lbMaxCacheSize" >
++           <property name="enabled" >
++            <bool>false</bool>
++           </property>
++           <property name="text" >
++            <string>Disk cache &amp;size:</string>
++           </property>
++           <property name="buddy" >
++            <cstring>sbMaxCacheSize</cstring>
++           </property>
++          </widget>
++         </item>
++         <item>
++          <widget class="KIntNumInput" name="sbMaxCacheSize" >
++           <property name="enabled" >
++            <bool>false</bool>
++           </property>
++          </widget>
++         </item>
++         <item>
++          <widget class="QPushButton" name="pbClearCache" >
++           <property name="enabled" >
++            <bool>false</bool>
++           </property>
++           <property name="text" >
++            <string>C&amp;lear Cache</string>
++           </property>
++          </widget>
++         </item>
++        </layout>
++       </item>
++      </layout>
++     </item>
+     </layout>
+    </item>
+    <item>
+@@ -120,7 +128,7 @@
+      <property name="sizeHint" >
+       <size>
+        <width>20</width>
+-       <height>40</height>
++       <height>10</height>
+       </size>
+      </property>
+     </spacer>
+--- a/apps/konqueror/settings/kio/cache.cpp
++++ b/apps/konqueror/settings/kio/cache.cpp
+@@ -47,16 +47,17 @@
+ KCacheConfigDialog::KCacheConfigDialog(QWidget *parent, const QVariantList &)
+     : KCModule(KioConfigFactory::componentData(), parent)
+ {
+-  QVBoxLayout* mainLayout = new QVBoxLayout(this);
+-  mainLayout->setMargin(0);
+-  mainLayout->setSpacing(0);
+-  m_dlg = new CacheDlgUI(this);
+-  mainLayout->addWidget(m_dlg);
+-  mainLayout->addStretch();
++  m_dlg = new Ui::CacheDlgUI();
++  m_dlg->setupUi(this);
+ 
+   load();
+ }
+ 
++KCacheConfigDialog::~KCacheConfigDialog()
++{
++  delete m_dlg;
++}
++
+ void KCacheConfigDialog::load()
+ {
+   m_dlg->cbUseCache->setChecked(KProtocolManager::useCache());
+--- a/apps/konqueror/settings/kio/kcookiesmanagement.cpp
++++ b/apps/konqueror/settings/kio/kcookiesmanagement.cpp
+@@ -291,10 +291,12 @@
+   if ( ckd->cookiesLoaded() )
+     return;
+ 
+-  QList<QVariant> fields;
+-  fields << QVariant(0) << QVariant(1) << QVariant(2) << QVariant(3);
++  QList<int> fields;
++  fields << 0 << 1 << 2 << 3;
+   QDBusInterface kded("org.kde.kded", "/modules/kcookiejar", "org.kde.KCookieServer", QDBusConnection::sessionBus());
+-  QDBusReply<QStringList> reply = kded.call( "findCookies", fields, ckd->domain(),
++  QDBusReply<QStringList> reply = kded.call( "findCookies",
++                                             QVariant::fromValue( fields ),
++                                             ckd->domain(),
+                                           QString(),
+                                           QString(),
+                                           QString() );
+@@ -321,11 +323,12 @@
+ 
+ bool KCookiesManagement::cookieDetails(CookieProp *cookie)
+ {
+-  QList<QVariant> fields;
+-  fields << QVariant(4) << QVariant(5) << QVariant(7);
++  QList<int> fields;
++  fields << 4 << 5 << 7;
+ 
+   QDBusInterface kded("org.kde.kded", "/modules/kcookiejar", "org.kde.KCookieServer", QDBusConnection::sessionBus());
+-  QDBusReply<QStringList> reply = kded.call( "findCookies", fields,
++  QDBusReply<QStringList> reply = kded.call( "findCookies",
++					     QVariant::fromValue( fields ),
+                                           cookie->domain,
+                                           cookie->host,
+                                           cookie->path,
+--- a/apps/konqueror/settings/kio/lanbrowser.desktop
++++ b/apps/konqueror/settings/kio/lanbrowser.desktop
+@@ -3,7 +3,7 @@
+ Type=Service
+ ServiceTypes=KCModule
+ Icon=preferences-system-network-share
+-Exec=kcmshell lanbrowser
++Exec=kcmshell4 lanbrowser
+ 
+ X-KDE-Library=kcm_kio
+ X-KDE-PluginKeyword=lanbrowser
+--- a/apps/konqueror/settings/kio/proxy.desktop
++++ b/apps/konqueror/settings/kio/proxy.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/proxy/index.html
+ Icon=preferences-system-network-proxy
+-Exec=kcmshell proxy
++Exec=kcmshell4 proxy
+ 
+ X-KDE-Library=kcm_kio
+ X-KDE-PluginKeyword=proxy
+@@ -23,6 +23,7 @@
+ Name[cy]=Dirprwy
+ Name[el]=Διαμεσολαβητής
+ Name[eo]=Prokuriloj
++Name[et]=Puhverserver
+ Name[eu]=Proxya
+ Name[fa]=پیشکار
+ Name[fi]=Välityspalvelin
+@@ -77,7 +78,7 @@
+ Comment[el]=Ρυθμίστε τους διαμεσολαβητές που χρησιμοποιούνται
+ Comment[eo]=Agordo de prokurilo
+ Comment[es]=Configuración de los servidores Proxy usados
+-Comment[et]=Kasutatavate proxy serverite seadistamine
++Comment[et]=Kasutatavate puhverserverite seadistamine
+ Comment[eu]=Konfiguratu erabilitako proxy zerbitzariak
+ Comment[fa]=پیکربندی پیشکارهای استفاده‌شده
+ Comment[fi]=Käytettävät välityspalvelimet
+@@ -139,7 +140,7 @@
+ Keywords[el]=Διαμεσολαβητής,Διαμεσολαβητής,Firewall,Squid,διαμεσολαβητής
+ Keywords[eo]=Prokurilo,Prokuro-servo,Fajroŝirmilo,Squid
+ Keywords[es]=Proxy,servidor Proxy,Cortafuegos,Squid,proxy
+-Keywords[et]=proxy,proxy server,tulemüür,squid
++Keywords[et]=proxy,puhver,puhverserver,tulemüür,squid
+ Keywords[eu]=Proxya,Proxy zerbitzaria,Firewalla,Squid,proxya
+ Keywords[fa]=پیشکار، پیشکاری، دیوارۀ آتش، Squid،پیشکار
+ Keywords[fi]=Välityspalvelin,Palomuuri,Squid
+--- a/apps/konqueror/settings/kio/socks.cpp
++++ b/apps/konqueror/settings/kio/socks.cpp
+@@ -224,7 +224,7 @@
+     base->_c_customLabel->setEnabled(false);
+     base->_c_customPath->setEnabled(false);
+   }
+-  base->_c_customPath->setPath(config.readPathEntry("SOCKS_lib"));
++  base->_c_customPath->setPath(config.readPathEntry("SOCKS_lib", QString()));
+ 
+   Q3ListViewItem *thisitem;
+   while ((thisitem = base->_c_libs->firstChild())) {
+@@ -232,7 +232,7 @@
+      delete thisitem;
+   }
+ 
+-  QStringList libs = config.readPathListEntry("SOCKS_lib_path");
++  QStringList libs = config.readPathEntry("SOCKS_lib_path", QStringList());
+   for(QStringList::Iterator it = libs.begin();
+                             it != libs.end();
+                             ++it ) {
+@@ -258,7 +258,7 @@
+     libs << thisitem->text(0);
+     thisitem = thisitem->itemBelow();
+   }
+-  config.writePathEntry("SOCKS_lib_path", libs, ',', KConfigBase::Normal | KConfigBase::Global);
++  config.writePathEntry("SOCKS_lib_path", libs, KConfigBase::Normal | KConfigBase::Global);
+ 
+   KGlobal::config()->sync();
+ 
+--- a/apps/konqueror/settings/kio/cookies.desktop
++++ b/apps/konqueror/settings/kio/cookies.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/cookies/index.html
+ Icon=cookie
+-Exec=kcmshell cookies
++Exec=kcmshell4 cookies
+ 
+ X-KDE-Library=kcm_kio
+ X-KDE-PluginKeyword=cookie
+--- a/apps/konqueror/settings/kio/useragent.desktop
++++ b/apps/konqueror/settings/kio/useragent.desktop
+@@ -3,7 +3,7 @@
+ Type=Service
+ ServiceTypes=KCModule
+ Icon=agent
+-Exec=kcmshell useragent
++Exec=kcmshell4 useragent
+ DocPath=kcontrol/useragent/index.html
+ 
+ X-KDE-Library=kcm_kio
+@@ -25,7 +25,7 @@
+ Name[el]=Ταυτοποίηση περιηγητή
+ Name[eo]=TTT-legila identeco
+ Name[es]=Identificación del navegador
+-Name[et]=Veebilehitseja identifikaator
++Name[et]=Brauseri identifikaator
+ Name[eu]=Arakatzailearen identifikazioa
+ Name[fa]=شناسایی مرورگر
+ Name[fi]=Selaimen tunnistus
+@@ -89,7 +89,7 @@
+ Comment[el]=Ρυθμίστε τον τρόπο με τον οποίο αναφέρεται το Konqueror
+ Comment[eo]=Agordo de Konkeranto-"user agent"
+ Comment[es]=Configuración del modo de autoidentificación de Konqueror
+-Comment[et]=Viisi, kuidas Konqueror endast teada annab, seadistamine
++Comment[et]=Selle seadistamine, kuidas Konqueror endast teada annab
+ Comment[eu]=Konfiguratu nola azaltzen duen Konquerorrek bere burua 
+ Comment[fa]=پیکربندی روشی که Konqueror گزارش خود را می‌دهد.
+ Comment[fi]=Vaihda Konquerorin esittäytymistapaa
+--- a/apps/konqueror/settings/kio/cache.desktop
++++ b/apps/konqueror/settings/kio/cache.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/cache/index.html
+ Icon=cache
+-Exec=kcmshell cache
++Exec=kcmshell4 cache
+ 
+ X-KDE-Library=kcm_kio
+ X-KDE-PluginKeyword=cache
+@@ -21,6 +21,7 @@
+ Name[el]=Λανθάνουσα μνήμη
+ Name[eo]=Tenejo
+ Name[es]=Caché
++Name[et]=Puhver
+ Name[eu]=Katxea
+ Name[fa]=نهانگاه
+ Name[fi]=Välimuisti
+--- a/apps/konqueror/settings/kio/uasproviders/ie45onwinnt5.desktop
++++ /dev/null
+@@ -1,71 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Name=UADescription (IE 4.5 on Win 2000)
+-Name[af]=UA-beskrywing (Ie 4.5 op Win 2000)
+-Name[be]=UADescription (IE 4.5 на Win 2000)
+-Name[br]=UADescription (IE 4.5 war Win 2000)
+-Name[ca]=Descripció de AU (IE 4.5 en Windows 2000)
+-Name[cs]=Popis agenta (IE 4.5 na Win 2000)
+-Name[csb]=Òpis programë brëkòwnika (IE 4.5 na Win 2000)
+-Name[cy]=UADisgrifiad(IE 4.5 ar Win 2000)
+-Name[da]=Brugeragentbeskrivelse (IE 4.5 på Win 2000)
+-Name[de]=Browserkennung (IE 4.5 auf Windows 2000)
+-Name[el]=Περιγραφή UA (IE 5.5 σε Win 2000)
+-Name[eo]=UA-Priskribo (IE 4.5 sub Vindozo 2000)
+-Name[es]=Descripción de AU (IE 4.5 en Windows 2000)
+-Name[et]=UADescription (IE 4.5 Win2000 platvormil)
+-Name[eu]=UA azalpena (IE 4.5 Win 2000-n)
+-Name[fa]=UADescription (IE 4.5 در Win 2000)
+-Name[fi]=Käyttäjäagenttikuvaus (IE 4.5 Win 2000:lla)
+-Name[fr]=Identité du navigateur (IE 4.5 sous Windows 2000)
+-Name[fy]=GA-omskriuwing (IE 4.5 op Win 2000)
+-Name[ga]=UADescription (IE 4.5 ar Win 2000)
+-Name[gl]=UADescription (IE 4.5 en Win 2000)
+-Name[he]=UADescription (‏IE 4.5 על Win 2000)
+-Name[hr]=UADescription (IE 4.5 na Win 2000)
+-Name[hu]=Böngészőtípus (IE 4.5, Win 2000)
+-Name[is]=UAD strengur (IE 4.5 on Win 2000)
+-Name[it]=DescrizioneUA (IE 4.5 su Win 2000)
+-Name[ka]=UADescription (IE 4.5 Win 2000-ში)
+-Name[kk]=UADescription (IE 4.5 / Win 2000)
+-Name[km]=UADescription (IE 4.5 នៅ​លើ​វីនដូ ២០០០)
+-Name[ko]=UADescription (윈도 2000의 IE 4.5)
+-Name[lt]=Naudotojo agento aprašymas (IE 4.5 ir Win 2000)
+-Name[lv]=UAApraksts (IE 5.5 uz Win 2000)
+-Name[mk]=UADescription (IE 4.5 на Win 2000)
+-Name[nb]=Brukeragent (IE 4.5 på Win 2000)
+-Name[nds]=UA-Beschrieven (IE 4.5 op Win 2000)
+-Name[ne]=UA वर्णन (Win 2000 मा IE 4.5)
+-Name[nl]=GA-beschrijving (IE 4.5 op Win 2000)
+-Name[nn]=Brukaragent (IE 4.5 på Win 2000)
+-Name[pa]=UADescription (ਵਿੰਡੋ ੨੦੦੦ 'ਤੇ IE 4.5)
+-Name[pl]=Opis przeglądarki użytkownika (IE 4.5 na Win 2000)
+-Name[pt]=UADescription (IE 4.5 no Win 2000)
+-Name[pt_BR]=UADescription (IE 4.5 no Win 2000)
+-Name[ro]=Descriere UA (IE 4.5 pentru Win 2000)
+-Name[ru]=UADescription (IE 4.5 на Win 2000)
+-Name[se]=UA-čilgehus (IE 4.5 ja Win 2000)
+-Name[sl]=UAOpis (IE 4.5 v Windows 2000)
+-Name[sr]=UADescription (IE 4.5 на Win 2000)
+-Name[sr at latin]=UADescription (IE 4.5 na Win 2000)
+-Name[sv]=AA-beskrivning (IE 4.5 på Win 2000)
+-Name[ta]=UAவிவரம் (IE 4.5 on Win 2000)
+-Name[tg]=ТавзеҳиUA (IE 4.5 ба Win 2000)
+-Name[th]=UADescription (IE 4.5 บน Win 2000)
+-Name[tr]=UA Tanımı (Win 2000 üzerinde IE 4.5)
+-Name[uk]=UADescription (IE 4.5 на Win 2000)
+-Name[uz]=UADescription (Win 2000 билан IE 4.5)
+-Name[vi]=Mô tả UA (IE 5.5 trên Win 2000)
+-Name[wa]=Idintifiaedje do betchteu (MSIE 4.5 so Windows 2000)
+-Name[x-test]=xxUADescription (IE 4.5 on Win 2000)xx
+-Name[xh]=UADescription (IE 4.5 kwi Win 2000)
+-Name[zh_CN]=用户代理描述 (运行于 Win 2000 的 IE 4.5)
+-Name[zh_TW]=使用者代理描述 (IE 4.5 on Win 2000)
+-Type=Service
+-ServiceTypes=UserAgentStrings
+-X-KDE-UA-TAG=IE
+-X-KDE-UA-FULL=Mozilla/4.0 (compatible; MSIE 4.5; Windows NT 5.0)
+-X-KDE-UA-NAME=Internet Explorer
+-X-KDE-UA-VERSION=4.5
+-X-KDE-UA-SYSNAME=Windows
+-X-KDE-UA-SYSRELEASE=2000
+--- a/apps/konqueror/settings/kio/uasproviders/mozoncurrent16.desktop
++++ /dev/null
+@@ -1,67 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Name=UADescription (Mozilla 1.6 on current)
+-Name[af]=UA-beskrywing (Mozilla 1.6 op huidige bedryfstelsel)
+-Name[be]=UADescription (Mozilla 1.6 на гэтай сістэме)
+-Name[ca]=UADescription (Mozilla 1.6 a l'actual)
+-Name[cs]=Popis agenta (Mozilla 1.6 na aktuálním)
+-Name[csb]=Òpis programë brëkòwnika (Mozilla 1.6)
+-Name[cy]=DisgrifiadUA (Mozilla 1.6 ar hyn o bryd)
+-Name[da]=Brugeragentbeskrivelse (Mozilla 1.6 på denne)
+-Name[de]=Browserkennung (Mozilla 1.6 unter aktuellem Betriebssystem)
+-Name[el]=Περιγραφή UA (Mozilla 1.6 στο τρέχον σύστημα)
+-Name[eo]=UA-Priskribo (Mozilo 1.6 sub nuna)
+-Name[es]=Descripción de AU (Mozilla 1.6 en actual)
+-Name[et]=UADescription (Selles masinas töötav Mozilla 1.6)
+-Name[eu]=UA deskriptioa (Mozilla 1.6 unekoan)
+-Name[fa]=UADescription (Mozilla 1.6 در حال حاضر)
+-Name[fi]=Käyttäjäagenttikuvaus (Mozilla 1.6 nykyisellä)
+-Name[fr]=Identité du navigateur (Mozilla 1.6 sous le système actuel)
+-Name[fy]=GA-omskriuwing (Mozilla 1.6 op aktive)
+-Name[ga]=UADescription (Mozilla 1.6 ar an gcóras reatha)
+-Name[gl]=UADescription (Mozilla 1.6 no actual)
+-Name[he]=UADescription (‏Mozilla 1.6 על המחשב הנוכחי)
+-Name[hr]=UADescription (Mozilla 1.6 na trenutnom)
+-Name[hu]=Böngészőtípus (Mozilla 1.6)
+-Name[is]=UAD strengur (Mozilla 1.6 on current)
+-Name[it]=DescrizioneUA(Mozilla 1.6 su sistema attuale)
+-Name[ka]=UADescription (Mozilla 1.6 მიმდინარე სისტემაში)
+-Name[kk]=UADescription (Mozilla 1.6 осы орында)
+-Name[km]=UADescription (Mozilla 1.6 បច្ចុប្បន្ន)
+-Name[ko]=UADescription (현재 플랫폼의 Mozilla 1.6)
+-Name[lt]=Naudotojo agento aprašymas (Mozilla 1.6 ir esama)
+-Name[lv]=UAApraksts (Mozilla 1.6 uz tekošā)
+-Name[mk]=UADescription (Mozilla 1.6 на тековниот)
+-Name[nb]=Brukeragent (Mozilla 1.6 herifra)
+-Name[nds]=UA-Beschrieven (Mozilla 1.6 op dit Systeem)
+-Name[ne]=UA वर्णन (हाल मोजिला १.६)
+-Name[nl]=GA-beschrijving (Mozilla 1.6 op current)
+-Name[nn]=Brukaragent (Mozilla 1.6 herifrå)
+-Name[pa]=UADescription (ਮੌਜੂਦਾ 'ਤੇ ਮੌਜੀਲਾ ੧.੬)
+-Name[pl]=Opis przeglądarki użytkownika (Mozilla 1.6 na bieżącym systemie)
+-Name[pt]=UADescription (Mozilla 1.6 no sistema actual)
+-Name[pt_BR]=UADescription (Mozilla 1.6 no sistema atual)
+-Name[ro]=Descriere UA (Mozilla 1.6 pentru sistemul de operare curent)
+-Name[ru]=UADescription (Mozilla 1.6 на текущей системе)
+-Name[se]=UA-čilgehus (Mozilla 1.6 dan mašiinas)
+-Name[sl]=UAOpis (Mozilla 1.6 na trenutnem)
+-Name[sr]=UADescription (Mozilla 1.6 на тренутном)
+-Name[sr at latin]=UADescription (Mozilla 1.6 na trenutnom)
+-Name[sv]=AA-beskrivning (Mozilla 1.6 på aktuell)
+-Name[ta]=UADescription (Mozilla 1.6 தற்ப்போதில்)
+-Name[th]=UADescription (มอซิลล่า 1.6 บนระบบปัจจุบัน)
+-Name[tr]=UATanımı (güncel üzerinde Mozilla 1.6)
+-Name[uk]=UADescription (Mozilla 1.6 на поточній ОС)
+-Name[uz]=UADescription (жорий билан Mozilla 1.6)
+-Name[vi]=Mô tả UA (Mozilla 1.6 trên hệ thống hiện thời)
+-Name[wa]=Idintifiaedje do betchteu (Mozilla 1.6 sol sistinme do moumint)
+-Name[x-test]=xxUADescription (Mozilla 1.6 on current)xx
+-Name[zh_CN]=用户代理描述 (运行于本机的 Mozilla 1.6)
+-Name[zh_TW]=使用者代理描述 (Mozilla 1.6 on current)
+-Type=Service
+-ServiceTypes=UserAgentStrings
+-X-KDE-UA-TAG=MOZ
+-X-KDE-UA-FULL=Mozilla/5.0 (appPlatform; U; appSysName appMachineType; appLanguage; rv:1.6) Gecko/20040113
+-X-KDE-UA-NAME=Mozilla
+-X-KDE-UA-VERSION=1.6
+-X-KDE-UA-DYNAMIC-ENTRY=1
+--- a/apps/konqueror/settings/kio/uasproviders/nn476onppc.desktop
++++ /dev/null
+@@ -1,73 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Name=UADescription (NN on Mac PPC)
+-Name[af]=UA-beskrywing (NN op Mac PPC)
+-Name[be]=UADescription (NN на Mac PPC)
+-Name[br]=UADescription (NN war Mac PPC)
+-Name[ca]=Descripció de AU (NN en Mac PPC)
+-Name[cs]=Popis agenta (NN na Mac PPC)
+-Name[csb]=Òpis programë brëkòwnika (NN na Mac PPC)
+-Name[cy]=UADisgrifiad (NN ar Mac PPC)
+-Name[da]=Brugeragentbeskrivelse (NN på Mac PPC)
+-Name[de]=Browserkennung (NN auf Mac PPC)
+-Name[el]=Περιγραφή UA (NN σε Mac PPC)
+-Name[eo]=UA-Priskribo (NN sub Mac-PPC)
+-Name[es]=Descripción de AU (NN en Mac PPC)
+-Name[et]=UADescription (Netscape MacPPC platvormil)
+-Name[eu]=UA azalpena (NN Mac PPC-n)
+-Name[fa]=UADescription (NN در Mac PPC)
+-Name[fi]=Käyttäjäagenttikuvaus (NN Mac PPC:llä)
+-Name[fr]=Identité du navigateur (Navigator sous Mac PPC)
+-Name[fy]=GA-omskriuwing (NN op Mac PPC)
+-Name[ga]=UADescription (NN ar Mac PPC)
+-Name[gl]=UADescription (NN en Mac PPC)
+-Name[he]=UADescription (‏NN על Mac PPC)
+-Name[hr]=UADescription (NN na Mac PPC)
+-Name[hu]=Böngészőtípus (NN, Mac PPC)
+-Name[is]=UAD strengur (NN on Mac PPC)
+-Name[it]=DescrizioneUA (NN su Mac PPC)
+-Name[ka]=UADescription (NN на Mac PPC)
+-Name[kk]=UADescription (NN / Mac PPC)
+-Name[km]=UADescription (NN នៅ​លើ Mac PPC)
+-Name[ko]=UADescription (Mac PPC의 넷스케이프)
+-Name[lt]=Naudotojo agento aprašymas (NN ir Mac PPC)
+-Name[lv]=UAApraksts (NN uz Mac PPC)
+-Name[mk]=UADescription (NN на Mac PPC)
+-Name[nb]=Brukeragent (NN på Mac PPC)
+-Name[nds]=UA-Beschrieven (NN op Mac PPC)
+-Name[ne]=UA वर्णन (Mac PPC मा NN)
+-Name[nl]=GA-beschrijving (NN op Mac PPC)
+-Name[nn]=Brukaragent (NN på Mac PPC)
+-Name[pa]=UADescription (Mac PPC 'ਤੇ N1)
+-Name[pl]=Opis przeglądarki użytkownika (NN na Mac PPC)
+-Name[pt]=UADescription (NN no Mac PPC)
+-Name[pt_BR]=UADescription (NN no Mac PPC)
+-Name[ro]=Descriere UA (NN pentru Mac PPC)
+-Name[ru]=UADescription (NN на Mac PPC)
+-Name[se]=UA-čilgehus (NN ja Mac PPC)
+-Name[sl]=UAOpis (NN na Mac PPC)
+-Name[sr]=UADescription (NN на Mac PPC-у)
+-Name[sr at latin]=UADescription (NN na Mac PPC-u)
+-Name[sv]=AA-beskrivning (NN på Mac PPC)
+-Name[ta]=UAவிவரம் (NN on Mac PPC)
+-Name[tg]=ТавзеҳиUA (NN ба Mac PPC)
+-Name[th]=UADescription (NN บน Mac PPC)
+-Name[tr]=UA Tanımı (Mac PPC üzerinde NN)
+-Name[uk]=UADescription (NN на Mac PPC)
+-Name[uz]=UADescription (Mac PPC билан NN)
+-Name[vi]=Mô tả UA (NN trên Mac PPC)
+-Name[wa]=Idintifiaedje do betchteu (Netscape so MacOS PPC)
+-Name[x-test]=xxUADescription (NN on Mac PPC)xx
+-Name[xh]=UADescription (NN kwi Mac PPC)
+-Name[zh_CN]=用户代理描述 (运行于 Mac PPC 的 NN)
+-Name[zh_TW]=使用者代理描述 (NN on Mac PPC)
+-Type=Service
+-ServiceTypes=UserAgentStrings
+-X-KDE-UA-TAG=NN
+-X-KDE-UA-FULL=Mozilla/4.76 (Macintosh; U; PPC)
+-X-KDE-UA-NAME=Netscape Navigator
+-X-KDE-UA-VERSION=4.76
+-X-KDE-UA-SYSNAME=Mac
+-X-KDE-UA-SYSRELEASE=PPC
+-
+-
+--- a/apps/konqueror/settings/kio/uasproviders/mozonwin2000.desktop
++++ /dev/null
+@@ -1,69 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Name=UADescription (1.2.1 on Windows 2000)
+-Name[af]=UA-beskrywing (1.2.1 op Windows 2000)
+-Name[be]=UADescription (1.2.1 на Windows 2000)
+-Name[br]=UADescription (1.2.1 war Windows 2000)
+-Name[ca]=Descripció UA (1.2.1 a Windows 2000)
+-Name[cs]=Popis agenta (1.2.1 na Windows 2000)
+-Name[csb]=Òpis programë brëkòwnika (1.2.1 na Windows 2000)
+-Name[da]=Brugeragentbeskrivelse (1.2.1 på Windows 2000)
+-Name[de]=Browserkennung (1.2.1 unter Windows 2000)
+-Name[el]=Περιγραφή UA (1.2.1 σε Windows 2000)
+-Name[eo]=UA-Priskribo (1.2.1 sub Vindozo 2000)
+-Name[es]=UADescription (1.2.1 en Windows 2000)
+-Name[et]=UADescription (1.2.1 Windows 2000 platvormil)
+-Name[eu]=UA azalpena (1.2.1 Windows 2000n)
+-Name[fa]=UADescription (1.2.1 در Windows 2000)
+-Name[fi]=Käyttäjäagenttikuvaus (1.2.1 Windows 2000)
+-Name[fr]=Identité du navigateur (1.2.1 sous Windows 2000)
+-Name[fy]=GA-omskriuwing (1.2.1 op Windows 2000)
+-Name[ga]=UADescription (1.2.1 ar Windows 2000)
+-Name[gl]=UADescription (1.2.1 en Windows 2000)
+-Name[he]=UADescription (‏1.2.1 על Windows 2000)
+-Name[hr]=UADescription (1.2.1 na Windows 2000)
+-Name[hu]=Böngészőtípus (Mozilla 1.2.1, Win 2000)
+-Name[is]=UAD strengur (1.2.1 á Windows 2000)
+-Name[it]=DescrizioneUA (1.2.1 su Windows 2000)
+-Name[ka]=UADescription (1.2.1 Windows 2000-ში)
+-Name[kk]=UADescription (1.2.1 / Windows 2000)
+-Name[km]=UADescription (1.2.1 នៅ​លើ​វីនដូ ២០០០)
+-Name[ko]=UADescription (윈도 2000의 Mozilla 1.2.1)
+-Name[lt]=Naudotojo agento aprašymas (1.2.1 ir Windows 2000)
+-Name[lv]=UAApraksts (1.2.1 uz Windows 2000)
+-Name[mk]=UADescription (1.2.1 на Windows 2000)
+-Name[nb]=Brukeragent (1.2.1 på Windows 2000)
+-Name[nds]=UA-Beschrieven (1.2.1 op Windows 2000)
+-Name[ne]=UA वर्णन (विण्डोज २००० मा १.२.१)
+-Name[nl]=GA-beschrijving (1.2.1 op Windows 2000)
+-Name[nn]=Brukaragent (1.2.1 på Windows 2000)
+-Name[pa]=UADescription (Windows 2000 'ਤੇ 1.2.1)
+-Name[pl]=Opis przeglądarki użytkownika (1.2.1 na Windows 2000)
+-Name[pt]=UADescription (1.2.1 no Windows 2000)
+-Name[pt_BR]=UADescription (1.2.1 no Windows 2000)
+-Name[ro]=Descriere UA (1.2.1 pentru WinNT 2000)
+-Name[ru]=UADescription (1.2.1 на Windows 2000)
+-Name[se]=UA-čilgehus (1.2.1 ja Windows 2000)
+-Name[sl]=UAOpis (1.2.1 na Windows 2000)
+-Name[sr]=UADescription (1.2.1 на Windows 2000)
+-Name[sr at latin]=UADescription (1.2.1 na Windows 2000)
+-Name[sv]=AA-beskrivning (1.2.1 på Windows 2000)
+-Name[ta]=UAவிவரம் (1.2.1 on Windows 2000)
+-Name[tr]=UA Tanımı (Windows 2000'de 1.2.1)
+-Name[uk]=UADescription (1.2.1 на Windows 2000)
+-Name[uz]=UADescription (Windows 2000 билан 1.2.1)
+-Name[vi]=Mô tả UA (1.2.1 trên Win 2000)
+-Name[wa]=Idintifiaedje do betchteu (1.2.1 so Windows 2000)
+-Name[x-test]=xxUADescription (1.2.1 on Windows 2000)xx
+-Name[zh_CN]=用户代理描述 (运行于 Windows 2000 的 1.2.1)
+-Name[zh_TW]=使用者代理描述 (1.2.1 on Windows 2000)
+-Type=Service
+-ServiceTypes=UserAgentStrings
+-X-KDE-UA-TAG=MOZ
+-X-KDE-UA-FULL=Mozilla/5.0 (Windows; U; Windows NT 5.0; appLanguage; 1.2.1) Gecko/20021130
+-X-KDE-UA-NAME=Mozilla
+-X-KDE-UA-VERSION=1.2.1
+-X-KDE-UA-SYSNAME=Windows
+-X-KDE-UA-SYSRELEASE=2000
+-X-KDE-UA-DYNAMIC-ENTRY=1
+-
+--- a/apps/konqueror/settings/kio/uasproviders/ie501onwinnt5.desktop
++++ /dev/null
+@@ -1,71 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Name=UADescription (IE 5.01 on Win 2000)
+-Name[af]=Ua-beskrywing (Ie 5.01 op Win 2000)
+-Name[be]=UADescription (IE 5.01 на Win 2000)
+-Name[br]=UADescription (IE 5.01 war Win 2000)
+-Name[ca]=Descripció de AU (IE 5.01 en Windows 2000)
+-Name[cs]=Popis agenta (IE 5.01 na Win 2000)
+-Name[csb]=Òpis programë brëkòwnika (IE 5.01 na Win 2000)
+-Name[cy]=UADisgrifiad (IE 5.01 ar Win 2000)
+-Name[da]=Brugeragentbeskrivelse (IE 5.01 på Win 2000)
+-Name[de]=Browserkennung (IE 5.01 auf Windows 2000)
+-Name[el]=Περιγραφή UA (IE 5.01 σε Win 2000)
+-Name[eo]=UA-Priskribo (IE 5.01 sub Vindozo 2000)
+-Name[es]=Descripción de AU (IE 5.01 en Windows 2000)
+-Name[et]=UADescription (IE 5.01 Win2000 platvormil)
+-Name[eu]=UA azalpena (IE 5.01 Win 2000-n)
+-Name[fa]=UADescription (IE 5.01 در Win 2000)
+-Name[fi]=Käyttäjäagenttikuvaus (IE 5.01 Win 2000:lla)
+-Name[fr]=Identité du navigateur (IE 5.01 sous Windows 2000)
+-Name[fy]=GA-omskriuwing (IE 5.01 op Win 2000)
+-Name[ga]=UADescription (IE 5.01 ar Win 2000)
+-Name[gl]=UADescription (IE 5.01 en Win 2000)
+-Name[he]=UADescription (‏IE 5.01 על Win 2000)
+-Name[hr]=UADescription (IE 5.01 na Win 2000)
+-Name[hu]=Böngészőtípus (IE 5.01, Win 2000)
+-Name[is]=UAD strengur (IE 5.01 on Win 2000)
+-Name[it]=DescrizioneUA (IE 5.01 su Win 2000)
+-Name[ka]=UADescription (IE 5.01 Win 2000-ში)
+-Name[kk]=UADescription (IE 5.01 / Win 2000)
+-Name[km]=UADescription (IE 5.01 នៅ​លើ​វីនដូ ២០០០)
+-Name[ko]=UADescription (윈도 2000의 IE 5.01)
+-Name[lt]=Naudotojo agento aprašymas (IE 5.01 ir Win 2000)
+-Name[lv]=UAApraksts (IE 5.01 uz Win 2000)
+-Name[mk]=UADescription (IE 5.01 на Win 2000)
+-Name[nb]=Brukeragent (IE 5.01 på Win 2000)
+-Name[nds]=UA-Beschrieven (IE 5.01 op Win 2000)
+-Name[ne]=UA वर्णन (Win 2000 मा IE 5.01)
+-Name[nl]=GA-beschrijving (IE 5.01 op Win 2000)
+-Name[nn]=Brukaragent (IE 5.01 på Win 2000)
+-Name[pa]=UADescription (ਵਿੰਡੋ ੨੦੦੦ 'ਤੇ IE 5.01)
+-Name[pl]=Opis przeglądarki użytkownika (IE 5.01 na Win 2000)
+-Name[pt]=UADescription (IE 5.01 no Win 2000)
+-Name[pt_BR]=UADescription (IE 5.01 no Win 2000)
+-Name[ro]=Descriere UA (IE 5.01 pentru Win 2000)
+-Name[ru]=UADescription (IE 5.01 на Win 2000)
+-Name[se]=UA-čilgehus (IE 5.01 ja Win 2000)
+-Name[sl]=UAOpis (IE 5.01 na Windows 2000)
+-Name[sr]=UADescription (IE 5.01 на Win 2000)
+-Name[sr at latin]=UADescription (IE 5.01 na Win 2000)
+-Name[sv]=AA-beskrivning (IE 5.01 på Win 2000)
+-Name[ta]=UAவிவரம் (IE 5.01 on Win 2000)
+-Name[tg]=ТавзеҳиUA (IE 5.01 ба Win 2000)
+-Name[th]=UADescription (IE 5.01 บน Win 2000)
+-Name[tr]=UA Tanımı (Win 2000 üzerinde IE 5.01)
+-Name[uk]=UADescription (IE 5.01 на Win 2000)
+-Name[uz]=UADescription (Win 2000 билан IE 5.01)
+-Name[vi]=Mô tả UA (IE 5.01 trên Win 2000)
+-Name[wa]=Idintifiaedje do betchteu (MSIE 5.01 so Windows 2000)
+-Name[x-test]=xxUADescription (IE 5.01 on Win 2000)xx
+-Name[xh]=UADescription (IE 5.01 kwi Win 2000)
+-Name[zh_CN]=用户代理描述 (运行于 Win 2000 的 IE 5.01)
+-Name[zh_TW]=使用者代理描述 (IE 5.01 on Win 2000)
+-Type=Service
+-ServiceTypes=UserAgentStrings
+-X-KDE-UA-TAG=IE
+-X-KDE-UA-FULL=Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
+-X-KDE-UA-NAME=Internet Explorer
+-X-KDE-UA-VERSION=5.01
+-X-KDE-UA-SYSNAME=Windows
+-X-KDE-UA-SYSRELEASE=2000
+--- a/apps/konqueror/settings/kio/uasproviders/op75oncurrent.desktop
++++ /dev/null
+@@ -1,66 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Name=UADescription (Opera 7.53 on current)
+-Name[af]=UA-beskrywing (Opera 7.53 op huidige bedryfstelsel)
+-Name[be]=UADescription (Opera 7.53 на гэтай сістэме)
+-Name[ca]=Descripció UA (Opera 7.53 a l'actual)
+-Name[cs]=Popis agenta (Opera 7.53 na aktuálním)
+-Name[csb]=Òpis programë brëkòwnika (Opera 7.53)
+-Name[da]=UADescription (Opera 7.53 på denne)
+-Name[de]=Browserkennung (Opera 7.53 unter aktuellem Betriebssystem)
+-Name[el]=Περιγραφή UA (Opera 7.53 στο τρέχον σύστημα)
+-Name[eo]=UA-Priskribo (Opera 7.53 sub nuna)
+-Name[es]=UADescription (Opera 7.53 en actual)
+-Name[et]=UADescription (Selles masinas töötav Opera 7.53)
+-Name[eu]=UA azalpena (Opera 7.53 unekoan)
+-Name[fa]=UADescription (Opera 7.53 در حال حاضر)
+-Name[fi]=Käyttäjäagenttikuvaus (Opera 7.53 nykyisellä)
+-Name[fr]=Identité du navigateur (Opera 7.53 sous le système actuel)
+-Name[fy]=GA-omskriuwing (Opera 7.53 op aktive)
+-Name[ga]=UADescription (Opera 7.53 ar an gcóras reatha)
+-Name[gl]=UADescription (Opera 7.53 no actual)
+-Name[he]=UADescription (‏Opera 4.03 על המחשב הנוכחי)
+-Name[hr]=UADescription (Opera 7.53 na trenutnom)
+-Name[hu]=Böngészőtípus (Opera 7.53)
+-Name[is]=UAD strengur (Opera 7.53 á núverandi)
+-Name[it]=DescrizioneUA (Opera 7.53 su sistema attuale)
+-Name[ka]=UADescription (Opera 7.53 მიმდინარე სისტემაში)
+-Name[kk]=UADescription (Opera 7.53 осында)
+-Name[km]=UADescription (Opera 7.53 បច្ចុប្បន្ន)
+-Name[ko]=UADescription (현재 플랫폼의 Opera 7.53)
+-Name[lt]=Naudotojo agento aprašymas (Opera 7.53 ir esama)
+-Name[lv]=UAApraksts (Opera 7.53 uz tekošā)
+-Name[mk]=UADescription (Opera 7.53 на тековно)
+-Name[nb]=Brukeragent (Opera 7.53 herifra)
+-Name[nds]=UA-Beschrieven (Opera 7.53 op dit Systeem)
+-Name[ne]=UA वर्णन (हाल ओपेरा ७.५३)
+-Name[nl]=GA-beschrijving (Opera 7.53 op huidige)
+-Name[nn]=Brukaragent (Opera 7.53 herifrå)
+-Name[pa]=UADescription (ਮੌਜੂਦਾ 'ਤੇ ਓਪੇਰਾ 7.53)
+-Name[pl]=Opis przeglądarki użytkownika (Opera 7.53 na bieżącym systemie)
+-Name[pt]=UADescription (Opera 7.53 no sistema actual)
+-Name[pt_BR]=UADescription (Opera 7.53 no sistema atual)
+-Name[ro]=Descriere UA (Opera 7.53 pentru sistemul de operare curent)
+-Name[ru]=UADescription (Opera 7.53 на текущей системе)
+-Name[se]=UA-čilgehus (Opera 7.53 dán mašiinnas)
+-Name[sl]=UAOpis (Opera 7.53 na trenutnem)
+-Name[sr]=UADescription (Opera 7.53 на тренутном)
+-Name[sr at latin]=UADescription (Opera 7.53 na trenutnom)
+-Name[sv]=AA-beskrivning (Opera 7.53 på aktuell)
+-Name[ta]=UAவிவரம் (நடப்பில் 7.53 ஓபெரா)
+-Name[th]=UADescription (โอเปร่า 7.53 บนระบบปัจจุบัน)
+-Name[tr]=UA Tanımı (bulunulanda Opera 7.53)
+-Name[uk]=UADescription (Opera 7.53 на поточній)
+-Name[uz]=UADescription (жорий билан Opera 7.53)
+-Name[vi]=Mô tả UA (Opera 7.53 trên hệ thống hiện thời)
+-Name[wa]=Idintifiaedje do betchteu (Opera 7.53 sol sistinme do moumint)
+-Name[x-test]=xxUADescription (Opera 7.53 on current)xx
+-Name[zh_CN]=用户代理描述 (运行于本机的 Opera 7.53)
+-Name[zh_TW]=使用者代理描述 (Opera 7.53 on current)
+-Type=Service
+-ServiceTypes=UserAgentStrings
+-X-KDE-UA-TAG=OPR
+-X-KDE-UA-FULL=Opera/7.53 (appPlatform; appSysName appMachineType; U) [appLanguage]
+-X-KDE-UA-NAME=Opera
+-X-KDE-UA-VERSION=7.53
+-X-KDE-UA-DYNAMIC-ENTRY=1
+--- a/apps/konqueror/settings/kio/uasproviders/ie55onwin98.desktop
++++ /dev/null
+@@ -1,71 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Name=UADescription (IE 5.5 on Win 98)
+-Name[af]=UA-beskrywing (Ie 5.5 op Win 98)
+-Name[be]=UADescription (IE 5.5 на Win 98)
+-Name[br]=UADescription (IE 5.5 war Win 98)
+-Name[ca]=Descripció de AU (IE 5.5 en Windows 98)
+-Name[cs]=Popis agenta (IE 5.5 na Win 98)
+-Name[csb]=Òpis programë brëkòwnika (IE 5.5 na Win 98)
+-Name[cy]=UADisgrifiad (IE 5.5 ar Win 98) 
+-Name[da]=Brugeragentbeskrivelse (IE 5.5 på Win 98)
+-Name[de]=Browserkennung (IE 5.5 unter Windows 98)
+-Name[el]=Περιγραφή UA (IE 5.5 σε Win 98)
+-Name[eo]=UA-Priskribo (IE 5.5 sub Vindozo 98)
+-Name[es]=Descripción de AU (IE 5.5 en Windows 98)
+-Name[et]=UADescription (IE 5.5 Win98 platvormil)
+-Name[eu]=UA azalpena (IE 5.5 Win 98-an)
+-Name[fa]=UADescription (IE 5.5 در Win 98)
+-Name[fi]=Käyttäjäagenttikuvaus (IE 5.5 Win 98:lla)
+-Name[fr]=Identité du navigateur (IE 5.5 sous Windows 98)
+-Name[fy]=GA-omskriuwing (IE 5.5 op Win 98)
+-Name[ga]=UADescription (IE 5.5 ar Win 98)
+-Name[gl]=UADescription (IE 5.5 en Win 98)
+-Name[he]=UADescription (‏IE 5.5 על Win 98)
+-Name[hr]=UADescription (IE 5.5 na Win 98)
+-Name[hu]=Böngészőtípus (IE 5.5, Win 98)
+-Name[is]=UAD strengur (IE 5.5 on Win 98)
+-Name[it]=DescrizioneUA (IE 5.5 su Win 98)
+-Name[ka]=UADescription (IE 5.5 Win 98-ში)
+-Name[kk]=UADescription (IE 5.5 / Win 98)
+-Name[km]=UADescription (IE 5.5 នៅ​លើ​វីនដូ ៩៨)
+-Name[ko]=UADescription (윈도 98의 IE 5.5)
+-Name[lt]=Naudotojo agento aprašymas (IE 5.5 ir Win 98)
+-Name[lv]=UAApraksts (IE 5.5 uz Win 98)
+-Name[mk]=UADescription (IE 5.5 на Win 98)
+-Name[nb]=Brukeragent (IE 5.5 på Win 98)
+-Name[nds]=UA-Beschrieven (IE 5.5 op Win 98)
+-Name[ne]=UA वर्णन (Win 98 मा IE 5.5)
+-Name[nl]=GA-beschrijving (IE 5.5 op Win 98)
+-Name[nn]=Brukaragent (IE 5.5 på Win 98)
+-Name[pa]=UADescription (ਵਿੰਡੋ ੯੮ 'ਤੇ IE 5.5)
+-Name[pl]=Opis przeglądarki użytkownika (IE 5.5 na Win 98)
+-Name[pt]=UADescription (IE 5.5 no Win 95)
+-Name[pt_BR]=UADescription (IE 5.5 no Win 98)
+-Name[ro]=Descriere UA (IE 5.5 pentru Win 98)
+-Name[ru]=UADescription (IE 5.5 на Win 98)
+-Name[se]=UA-čilgehus (IE 5.5 ja Win 98)
+-Name[sl]=UAOpis (IE 5.5 na Windows 98)
+-Name[sr]=UADescription (IE 5.5 на Win 98)
+-Name[sr at latin]=UADescription (IE 5.5 na Win 98)
+-Name[sv]=AA-beskrivning (IE 5.5 på Win 98)
+-Name[ta]=UAவிவரம் (IE 5.5 on Win 98)
+-Name[tg]=ТавзеҳиUA (IE 5.5 ба Win 98)
+-Name[th]=UADescription (IE 5.5 บน Win 98)
+-Name[tr]=UA Tanımı (Win 98 üzerinde IE 5.5)
+-Name[uk]=UADescription (IE 5.5 на Win 98)
+-Name[uz]=UADescription (Win 98 билан IE 5.5)
+-Name[vi]=Mô tả UA (IE 5.5 trên Win 98)
+-Name[wa]=Idintifiaedje do betchteu (MSIE 5.5 so Windows 98)
+-Name[x-test]=xxUADescription (IE 5.5 on Win 98)xx
+-Name[xh]=UADescription UA (IE 5.5 kwi Win 98)
+-Name[zh_CN]=用户代理描述 (运行于 Win 98 的 IE 5.5)
+-Name[zh_TW]=使用者代理描述 (IE 5.5 on Win 98)
+-Type=Service
+-ServiceTypes=UserAgentStrings
+-X-KDE-UA-TAG=IE
+-X-KDE-UA-FULL=Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
+-X-KDE-UA-NAME=Internet Explorer
+-X-KDE-UA-VERSION=5.5
+-X-KDE-UA-SYSNAME=Windows
+-X-KDE-UA-SYSRELEASE=98
+--- a/apps/konqueror/settings/kio/uasproviders/firefox10oncurrent.desktop
++++ /dev/null
+@@ -1,66 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Name=UADescription (Firefox 1.0 on current)
+-Name[af]=UA-beskrywing (Firefox 1.0 op huidige bedryfstelsel)
+-Name[be]=UADescription (Firefox 1.0 на гэтай сістэме)
+-Name[ca]=Descripció UA (Firefox 1.0 a l'actual)
+-Name[cs]=Popis agenta (Firefox 1.0 na aktuálním)
+-Name[csb]=Òpis programë brëkòwnika (FireFox 1.0)
+-Name[da]=Brugeragentbeskrivelse (Firefox 1.0 på denne)
+-Name[de]=Browserkennung (Firefox 1.0 unter aktuellem Betriebssystem)
+-Name[el]=Περιγραφή UA (Firefox 1.0 στο τρέχον σύστημα)
+-Name[eo]=UA-Priskribo (Fajrovulpo 1.0 sub nuna)
+-Name[es]=UADescription (Firefox 1.0 en actual)
+-Name[et]=UADescription (Selles masinas töötav Firefox 1.0)
+-Name[eu]=UA azalpena (Firefox 1.0 unekoan)
+-Name[fa]=UADescription (Firefox 1.0 در حال حاضر)
+-Name[fi]=Käyttäjäagenttikuvaus (Firefox 1.0)
+-Name[fr]=Identité du navigateur (Firefox 1.0 sous le système actuel)
+-Name[fy]=GA-omskriuwing (Firefox 1.0 op aktive)
+-Name[ga]=UADescription (Firefox 1.0 ar an gcóras reatha)
+-Name[gl]=UADescription (Firefox 3.01 no actual)
+-Name[he]=UADescription (‏Firefox 1.0 על המחשב הנוכחי)
+-Name[hr]=UADescription (Firefox 1.0 na trenutnom)
+-Name[hu]=Böngészőtípus (Firefox 1.0)
+-Name[is]=UAD strengur (Firefox 1.0 á núverandi)
+-Name[it]=DescrizioneUA (Firefox 1.0 su sistema attuale)
+-Name[ka]=UADescription (Firefox 1.0 მიმდინარე სისტემაში)
+-Name[kk]=UADescription (Firefox 1.0 осында)
+-Name[km]=UADescription (Firefox 1.0 បច្ចុប្បន្ន)
+-Name[ko]=UADescription (현재 플랫폼의 Firefox 1.0)
+-Name[lt]=Naudotojo agento aprašymas (Firefox 1.0 ir esama)
+-Name[lv]=UAApraksts (Firefox 1.0 uz tekošā)
+-Name[mk]=UADescription (Firefox 1.0 на тековно)
+-Name[nb]=Brukeragent (Firefox 1.0 på denne)
+-Name[nds]=UA-Beschrieven (Firefox 1.0 op dit Systeem)
+-Name[ne]=UA वर्णन (हाल फायरफक्स 1.0 मा)
+-Name[nl]=GA-beschrijving (Firefox 1.0 op huidige)
+-Name[nn]=Brukaragent (Firefox 1.0 herifrå)
+-Name[pa]=UADescription (ਮੌਜੂਦਾ Firefox 1.0 ਉੱਤੇ)
+-Name[pl]=Opis przeglądarki użytkownika (FireFox 1.0 na bieżącym systemie)
+-Name[pt]=UADescription (Firefox 1.0 no sistema actual)
+-Name[pt_BR]=UADescription (Firefox 1.0 no sistema atual)
+-Name[ro]=Descriere UA (Firefox 1.0 pentru sistemul de operare curent)
+-Name[ru]=UADescription (Firefox 1.0 на текущей системе)
+-Name[se]=UA-čilgehus (Firefox 1.0 dán mašiinnas)
+-Name[sl]=UAOpis (Firefox 1.0 na trenutnem)
+-Name[sr]=UADescription (Firefox 1.0 на тренутном)
+-Name[sr at latin]=UADescription (Firefox 1.0 na trenutnom)
+-Name[sv]=AA-beskrivning (Firefox 1.0 på aktuell)
+-Name[ta]=UAவிவரம் (Firefox 1.0 on current)
+-Name[th]=UADescription (ไฟร์ฟอกซ์ 1.0 บนระบบปัจจุบัน)
+-Name[tr]=UA Tanımı (bulunulanda Firefox 1.0)
+-Name[uk]=UADescription (Firefox 1.0 на поточній)
+-Name[uz]=UADescription (жорий билан Firefox 1.0)
+-Name[vi]=Mô tả UA (Firefox 1.0 trên hệ thống hiện thời)
+-Name[wa]=Idintifiaedje do betchteu (Firefox 1.0 sol sistinme do moumint)
+-Name[x-test]=xxUADescription (Firefox 1.0 on current)xx
+-Name[zh_CN]=用户代理描述 (运行于本机的 Firefox 1.0)
+-Name[zh_TW]=使用者代理描述 (Firefox 1.0 on current)
+-Type=Service
+-ServiceTypes=UserAgentStrings
+-X-KDE-UA-TAG=FF
+-X-KDE-UA-FULL=Mozilla/5.0 (appPlatform; U; appMachineType appSysName; appLanguage; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
+-X-KDE-UA-NAME=Firefox
+-X-KDE-UA-VERSION=1.0.7
+-X-KDE-UA-DYNAMIC-ENTRY=1
+--- /dev/null
++++ b/apps/konqueror/settings/kio/uasproviders/op90oncurrent.desktop
+@@ -0,0 +1,16 @@
++[Desktop Entry]
++Encoding=UTF-8
++Name=UADescription (Opera 9.00 on current)
++Name[et]=UADescription (Selles masinas töötav Opera 9.00)
++Name[ga]=UADescription (Opera 9.00 ar an gcóras reatha)
++Name[pt]=UADescription (Opera 9.00 no sistema actual)
++Name[pt_BR]=UADescription (Opera 9.00 no sistema atual)
++Name[sv]=AA-beskrivning (Opera 9.00 på aktuell)
++Name[zh_TW]=使用者代理描述 (Opera 9.00 on current)
++Type=Service
++ServiceTypes=UserAgentStrings
++X-KDE-UA-TAG=OPR
++X-KDE-UA-FULL=Opera/9.00 (appPlatform; appSysName appMachineType; U; appLanguage)
++X-KDE-UA-NAME=Opera
++X-KDE-UA-VERSION=9.00
++X-KDE-UA-DYNAMIC-ENTRY=1
+--- a/apps/konqueror/settings/kio/uasproviders/op85oncurrent.desktop
++++ b/apps/konqueror/settings/kio/uasproviders/op85oncurrent.desktop
+@@ -7,6 +7,7 @@
+ Name[de]=Browserkennung (Opera 8.5 unter aktuellem Betriebssystem)
+ Name[el]=Περιγραφή UA (Opera 8.5 στο τρέχον σύστημα)
+ Name[es]=UADescription (Opera 8.5 en actual)
++Name[et]=UADescription (Selles masinas töötav Opera 8.5)
+ Name[fa]=UADescription (Opera ۸.۵ در حال حاضر)
+ Name[ga]=UADescription (Opera 8.5 ar an gcóras reatha)
+ Name[he]=UADescription (‏Opera 8.05 על המחשב הנוכחי)
+--- /dev/null
++++ b/apps/konqueror/settings/kio/uasproviders/firefox20oncurrent.desktop
+@@ -0,0 +1,17 @@
++[Desktop Entry]
++Encoding=UTF-8
++Name=UADescription (Firefox 2.0 on current)
++Name[et]=UADescription (Selles masinas töötav Firefox 2.0)
++Name[ga]=UADescription (Firefox 2.0 ar an gcóras reatha)
++Name[pt]=UADescription (Firefox 2.0 no sistema actual)
++Name[pt_BR]=UADescription (Firefox 2.0 no sistema atual)
++Name[sv]=AA-beskrivning (Firefox 2.0 på aktuell)
++Name[x-test]=xxUADescription (Firefox 2.0 on current)xx
++Name[zh_TW]=使用者代理描述 (Firefox 2.0 on current)
++Type=Service
++ServiceTypes=UserAgentStrings
++X-KDE-UA-TAG=FF
++X-KDE-UA-FULL=Mozilla/5.0 (appPlatform; U; appMachineType appSysName; appLanguage; rv:1.8.16) Gecko/20071015 Firefox/2.0.0.8
++X-KDE-UA-NAME=Firefox
++X-KDE-UA-VERSION=2.0.0.8
++X-KDE-UA-DYNAMIC-ENTRY=1
+--- a/apps/konqueror/settings/kio/uasproviders/CMakeLists.txt
++++ b/apps/konqueror/settings/kio/uasproviders/CMakeLists.txt
+@@ -3,5 +3,14 @@
+ 
+ ########### install files ###############
+ 
+-install( FILES ie401onwinnt4.desktop ie45onwinnt5.desktop ie501onwinnt5.desktop  		ie50onppc.desktop  		ie55onwin98.desktop ie55onwinnt5.desktop ie60onwinnt51.desktop  		ie60oncurrent.desktop mozonwinxp.desktop mozonwin2000.desktop  		mozoncurrent16.desktop  mozoncurrent12.desktop  		mozoncurrent.desktop nn301oncurrent.desktop nn475onwin95.desktop  		nn475oncurrent.desktop nn476onppc.desktop op403onwinnt4.desktop  		lynxoncurrent.desktop w3moncurrent.desktop wgetoncurrent.desktop  		ns71oncurrent.desktop ns71onwinnt51.desktop  		op75oncurrent.desktop op85oncurrent.desktop  		safari12.desktop safari20.desktop googlebot.desktop firefox10oncurrent.desktop firefox15oncurrent.desktop  DESTINATION  ${SERVICES_INSTALL_DIR}/useragentstrings )
++install( FILES ie401onwinnt4.desktop ie50onppc.desktop ie55onwinnt5.desktop
++	  ie60onwinnt51.desktop ie60oncurrent.desktop mozonwinxp.desktop
++	  mozoncurrent12.desktop mozoncurrent.desktop nn301oncurrent.desktop
++	  nn475onwin95.desktop nn475oncurrent.desktop
++	  op403onwinnt4.desktop op90oncurrent.desktop
++	  lynxoncurrent.desktop w3moncurrent.desktop wgetoncurrent.desktop
++	  ns71oncurrent.desktop ns71onwinnt51.desktop op85oncurrent.desktop
++	  safari12.desktop safari20.desktop googlebot.desktop
++	  firefox15oncurrent.desktop firefox20oncurrent.desktop
++	  DESTINATION  ${SERVICES_INSTALL_DIR}/useragentstrings )
+ 
+--- a/apps/konqueror/settings/kio/cache.h
++++ b/apps/konqueror/settings/kio/cache.h
+@@ -23,18 +23,10 @@
+ #define CACHE_H
+ 
+ #include <kcmodule.h>
+-#include "ui_cache.h"
+-
+-class CacheDlgUI : public QWidget, public Ui::CacheDlgUI
+-{
+-    public:
+-        CacheDlgUI(QWidget *parent = 0)
+-        : QWidget(parent)
+-        {
+-            setupUi(this);
+-        }
+-};
+ 
++namespace Ui {
++class CacheDlgUI;
++}
+ 
+ class KCacheConfigDialog : public KCModule
+ {
+@@ -42,7 +34,7 @@
+ 
+ public:
+   KCacheConfigDialog(QWidget *parent, const QVariantList &args);
+-  ~KCacheConfigDialog() {}
++  ~KCacheConfigDialog();
+ 
+   virtual void load();
+   virtual void save();
+@@ -54,7 +46,7 @@
+   void slotClearCache();
+ 
+ private:
+-  CacheDlgUI* m_dlg;
++  Ui::CacheDlgUI* m_dlg;
+ };
+ 
+ #endif // CACHE_H
+--- a/apps/konqueror/settings/kio/smb.desktop
++++ b/apps/konqueror/settings/kio/smb.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/smb/index.html
+ Icon=preferences-system-network-share-windows
+-Exec=kcmshell smb
++Exec=kcmshell4 smb
+ 
+ X-KDE-Library=kcm_kio
+ X-KDE-PluginKeyword=smb
+@@ -105,7 +105,7 @@
+ Comment[kk]=Windows-компьютерлердің қай файл жүйелері (SMB) қатынауға ашық екенін баптау
+ Comment[km]=ប្រើ​ដើម្បី​កំណត់​រចនាសម្ព័ន្ធ ថា​តើ​ប្រព័ន្ធ​ឯកសារ​វីនដូ (SMB) ណា​មួយ​ដែល​អ្នក​អាច​រុករក
+ Comment[ko]=윈도 (SMB) 파일 시스템 탐색 설정
+-Comment[lt]=Naudokite tai norėdami nustatyti kurias Windows (SMB) bylų sistemas Jūs galėsite naršyti
++Comment[lt]=Naudokite tai norėdami nustatyti kurias Windows (SMB) failų sistemas Jūs galėsite naršyti
+ Comment[lv]=Lietojiet, lai norādītu kuras windows (SMB) failu sistēmas Jūs varētu pārlūkot
+ Comment[mk]=Користете го за да конфигурирате кои windows (SMB) датотечни системи можете да ги прелистувате
+ Comment[ms]=Guna untuk konfigur sistem fail tetingkap (SMB) mana yang anda boleh layar
+--- a/apps/konqueror/settings/kio/useragentdlg.cpp
++++ b/apps/konqueror/settings/kio/useragentdlg.cpp
+@@ -191,7 +191,7 @@
+   if (!deleteList.isEmpty())
+   {
+      // Remove entries from local file.
+-     KConfig cfg("kio_httprc", KConfig::OnlyLocal);
++     KConfig cfg("kio_httprc", KConfig::SimpleConfig);
+      for ( QStringList::Iterator it = deleteList.begin();
+            it != deleteList.end(); ++it )
+      {
+--- a/apps/konqueror/settings/kio/netpref.desktop
++++ b/apps/konqueror/settings/kio/netpref.desktop
+@@ -1,6 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Exec=kcmshell netpref
++Exec=kcmshell4 netpref
+ Icon=preferences-system-network-connection
+ Type=Service
+ ServiceTypes=KCModule
+--- a/apps/konqueror/settings/filetypes/typeslistitem.cpp
++++ b/apps/konqueror/settings/filetypes/typeslistitem.cpp
+@@ -271,9 +271,9 @@
+     KConfigGroup cg = config.desktopGroup();
+ 
+     cg.writeEntry("Type", "MimeType");
+-    cg.writeEntry("MimeType", name());
++    cg.writeEntry("MimeType", name()); // XXX shouldn't this be a XdgListEntry?
+     cg.writeEntry("Icon", m_icon);
+-    cg.writeEntry("Patterns", m_patterns, ';');
++    cg.writeXdgListEntry("Patterns", m_patterns);
+     cg.writeEntry("Comment", m_comment);
+     cg.writeEntry("Hidden", false);
+ 
+@@ -358,7 +358,7 @@
+ 
+           KConfigGroup group = desktop->desktopGroup();
+           mimeTypeList = s_changedServices->contains( pService->entryPath())
+-            ? (*s_changedServices)[ pService->entryPath() ] : group.readEntry("MimeType",QStringList(), ';');
++            ? (*s_changedServices)[ pService->entryPath() ] : group.readXdgListEntry("MimeType");
+ 
+           // Remove entry and the number that might follow.
+           for(int i=0;(i = mimeTypeList.indexOf(name())) != -1;)
+@@ -375,7 +375,7 @@
+              }
+           }
+ 
+-          group.writeEntry("MimeType", mimeTypeList, ';');
++          group.writeXdgListEntry("MimeType", mimeTypeList);
+ 
+           // if two or more types have been modified, and they use the same service,
+           // accumulate the changes
+@@ -483,10 +483,10 @@
+ 
+       KConfigGroup group = desktop->desktopGroup();
+       mimeTypeList = s_changedServices->contains( pService->entryPath())
+-            ? (*s_changedServices)[ pService->entryPath() ] : group.readEntry("MimeType", QStringList(),';');
++            ? (*s_changedServices)[ pService->entryPath() ] : group.readXdgListEntry("MimeType");
+       mimeTypeList.append(name());
+ 
+-      group.writeEntry("MimeType", mimeTypeList, ';');
++      group.writeXdgListEntry("MimeType", mimeTypeList);
+       desktop->sync();
+       delete desktop;
+ 
+--- a/apps/konqueror/settings/filetypes/filetypes.desktop
++++ b/apps/konqueror/settings/filetypes/filetypes.desktop
+@@ -3,7 +3,7 @@
+ Icon=filetypes
+ Type=Service
+ ServiceTypes=KCModule
+-Exec=kcmshell filetypes
++Exec=kcmshell4 filetypes
+ DocPath=kcontrol/filetypes/index.html
+ 
+ X-KDE-Library=kcm_filetypes
+@@ -41,7 +41,7 @@
+ Name[kk]=Файл сәйкестіктері
+ Name[km]=​ទំនាក់​ទំនង​ឯកសារ
+ Name[ko]=파일 연결
+-Name[lt]=Bylų asociacijos
++Name[lt]=Failų sąsajos
+ Name[lv]=Failu Asociācijas
+ Name[mk]=Асоцијации на датотеки
+ Name[nb]=Filtilknytninger
+@@ -105,7 +105,7 @@
+ Comment[kk]=Файл сәйкестіктерін баптау
+ Comment[km]=កំណត់​រចនាសម្ព័ន្ធ​​ទំនាក់ទំនង​ឯកសារ
+ Comment[ko]=파일 연결 설정
+-Comment[lt]=Konfigūruoti bylų sietis
++Comment[lt]=Konfigūruoti failų sąsajas
+ Comment[lv]=Konfigurēt failu asociācijas
+ Comment[mk]=Конфигурирајте ги асоцијациите на датотеките
+ Comment[nb]=Sette opp filtilknytninger
+@@ -164,14 +164,14 @@
+ Keywords[ja]=ファイルタイプ,ファイルの関連付け,マイムタイプ,ファイルパターン,ファイル,パターン
+ Keywords[km]=ប្រភេទ​ឯកសារ ទំនាក់ទំនង​ឯកសារ ប្រភេទ Mime លំនាំ​ឯកសារ ឯកសារ លំនាំ
+ Keywords[ko]=Filetypes,File Associations,Mime Types,File Patterns,Files,Pattern,파일 형식,파일 연결,파일 패턴
+-Keywords[lt]=Filetypes,File Associations,Mime Types,File Patterns,Files,Pattern,Bylų tipai,Bylų Asociacijos,Mime Tipai,Bylų modeliai,Bylos,Modeliai, bylų sietys
++Keywords[lt]=Filetypes,File Associations,Mime Types,File Patterns,Files,Pattern,Failų tipai,Failų sąsajos,Mime Tipai,Failų modeliai,Failo,Modeliai, failų sietys
+ Keywords[lv]=Failutipi,Failu Asociācijas,Maime Tipi,Failu Maskas,Faili,Maskas
+ Keywords[mk]=Filetypes,File Associations,Mime Types,File Patterns,Files,Pattern,Типови на датотеки,Асоцијации на датотеки,типови,Датотеки
+ Keywords[nb]=Filtyper,Filtilknytninger,Mime-typer,Filmønster,filer
+ Keywords[nds]=Dateitypen,Datei-Tohören,Mime Typen,Dateimuster,Datei,Muster
+ Keywords[ne]=फाइल प्रकार, फाइल संयोजन, माइम प्रकार, फाइल बाँन्की, फाइलहरू, बाँन्की
+ Keywords[nl]=bestandstypen,bestandsextensies,bestandsassociaties,mime types,bestandspatronen,extensies,bestanden
+-Keywords[nn]=filtypar,filtilknytingar,mime-typar,filmønster,filer,mønster
++Keywords[nn]=filtypar,filtilknytingar,MIME-typar,filmønster,filer,mønster
+ Keywords[pa]=Filetypes,File Associations,Mime Types,File Patterns,ਫਾਇਲਾਂ,Pattern,ਫਾਇਲ ਕਿਸਮ,ਫਾਇਲ ਸਬੰਧ
+ Keywords[pl]=Typy plików,skojarzenia plików,typy MIME,wzorce plików,pliki,wzorzec
+ Keywords[pt]=Tipos de Ficheiros,Associações a Ficheiros,Tipos MIME,Padrões de Ficheiros,Ficheiros,Padrão
+--- a/apps/konqueror/settings/css/kcmcss.desktop
++++ b/apps/konqueror/settings/css/kcmcss.desktop
+@@ -3,7 +3,7 @@
+ Icon=stylesheet
+ Type=Service
+ ServiceTypes=KCModule
+-Exec=kcmshell kcmcss
++Exec=kcmshell4 kcmcss
+ DocPath=kcontrol/kcmcss/index.html
+ 
+ 
+--- a/apps/konqueror/settings/konq/previews.cpp
++++ b/apps/konqueror/settings/konq/previews.cpp
+@@ -67,9 +67,10 @@
+ {
+     QVBoxLayout *lay = new QVBoxLayout(this);
+     lay->setSpacing(KDialog::spacingHint());
+-
+-    lay->addWidget( new QLabel( i18n("<p>Allow previews, \"Folder Icons Reflect Contents\", and "
+-                                     "retrieval of meta-data on protocols:</p>"), this ) );
++    QLabel *label = new QLabel( i18n("<p>Allow previews, \"Folder Icons Reflect Contents\", and "
++                                     "retrieval of meta-data on protocols:</p>"), this );
++    label->setWordWrap(true);
++    lay->addWidget(label);
+ 
+     setQuickHelp( i18n("<h1>Preview Options</h1> Here you can modify the behavior "
+                 "of Konqueror when it shows the files in a folder."
+@@ -128,7 +129,7 @@
+                           "In the list of protocols that appear, select which ones are fast "
+                           "enough for you to allow previews to be generated.") );
+ 
+-    QLabel *label = new QLabel( i18n( "&Maximum file size:" ), this );
++    label = new QLabel( i18n( "&Maximum file size:" ), this );
+     lay->addWidget( label );
+ 
+     m_maxSize = new KDoubleNumInput( this );
+--- a/apps/konqueror/settings/konq/desktop.cpp
++++ b/apps/konqueror/settings/konq/desktop.cpp
+@@ -139,7 +139,7 @@
+   else
+      groupname = "Desktops-screen-" + QByteArray::number ( kwin_screen_number );
+ 
+-  if (config->groupIsImmutable(groupname))
++  if (config->isGroupImmutable(groupname))
+   {
+      name_group->setEnabled(false);
+      number_group->setEnabled(false);
+@@ -147,7 +147,7 @@
+   else
+   {
+      KConfigGroup cfgGroup(config.data(), groupname);
+-     if (cfgGroup.entryIsImmutable("Number"))
++     if (cfgGroup.isEntryImmutable("Number"))
+      {
+         number_group->setEnabled(false);
+      }
+@@ -181,7 +181,7 @@
+   desktopConfig->setGroup("Mouse Buttons");
+   _wheelOption->setChecked(desktopConfig->readEntry("WheelSwitchesWorkspace", false));
+ 
+-  _wheelOptionImmutable = desktopConfig->entryIsImmutable("WheelSwitchesWorkspace");
++  _wheelOptionImmutable = desktopConfig->isEntryImmutable("WheelSwitchesWorkspace");
+ 
+   if (_wheelOptionImmutable || n<2)
+      _wheelOption->setEnabled(false);
+--- a/apps/konqueror/settings/konq/desktoppath.desktop
++++ b/apps/konqueror/settings/konq/desktoppath.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/desktop/index.html#desktop-desktop-path
+ Icon=kfm
+-Exec=kcmshell desktoppath
++Exec=kcmshell4 desktoppath
+ 
+ X-KDE-Library=kcm_konq
+ X-KDE-PluginKeyword=dpath
+@@ -110,7 +110,7 @@
+ Comment[kk]=Маңызды файлдар орналасатын орындарын өзгерту
+ Comment[km]=ផ្លាស់ប្ដូរ​​ទីតាំង​ដែល​ត្រូវ​ទុក​ឯកសារ​សំខាន់ៗ
+ Comment[ko]=중요한 파일이 저장되는 곳 설정
+-Comment[lt]=Pakeiskite svarbių bylų saugojimo vietą
++Comment[lt]=Pakeiskite svarbių failų saugojimo vietą
+ Comment[lv]=Mainīt nozīmīgu failu atrašanās vietas
+ Comment[mk]=Сменете ја локацијата каде што се чуваат важни датотеки
+ Comment[ms]=Ubah lokasi fail penting disimpan
+@@ -170,7 +170,7 @@
+ Keywords[ja]=konqueror,ファイルマネージャ,パス,デスクトップ,ごみ箱,ディレクトリ,自動スタート
+ Keywords[km]=konqueror កម្មវិធី​គ្រប់គ្រង​ឯកសារ ផ្លូវ ផ្ទៃតុ ថត ចាប់ផ្ដើម​ដោយ​ស្វ័យ​ប្រវត្តិ
+ Keywords[ko]=konqueror,경로,데스크톱,디렉터리,자동 시작
+-Keywords[lt]=konqueror,filemanager,paths,desktop,directories,autostart, bylų tvarkyklė,keliai,darbastalis,aplankai
++Keywords[lt]=konqueror,filemanager,paths,desktop,directories,autostart, failų tvarkyklė,keliai,darbastalis,aplankai
+ Keywords[mk]=konqueror,filemanager,paths,desktop,trash,directories,autostart,менаџер на датотеки,патеки,работна површина,површина,корпа,именици,директориуми,папки,автостарт
+ Keywords[nb]=konqueror,filbehandler,paths,desktop,papirkurv,mapper,autostart,filbehandler,stier,arbeidsflate,søppel,kataloger,skrivebord
+ Keywords[nds]=Konqueror,Dateipleger,Padden,Schriefdisch,Orner,Autostart
+--- a/apps/konqueror/settings/konq/desktopbehavior.desktop
++++ b/apps/konqueror/settings/konq/desktopbehavior.desktop
+@@ -4,7 +4,7 @@
+ ServiceType=KCModule
+ DocPath=kcontrol/desktopbehavior/index.html
+ Icon=desktop
+-Exec=kcmshell desktopbehavior
++Exec=kcmshell4 desktopbehavior
+ 
+ X-KDE-Library=kcm_konq
+ X-KDE-PluginKeyword=dbehavior
+@@ -93,7 +93,7 @@
+ Comment[el]=Εδώ μπορείτε να ρυθμίσετε τη συμπεριφορά της επιφάνειας εργασίας
+ Comment[eo]=Vi povas agordi kiel la tabulo kondutas.
+ Comment[es]=Configuración del modo de comportamiento del escritorio
+-Comment[et]=Siin saad seadistada töölaua käitumist
++Comment[et]=Siin saab seadistada töölaua käitumist
+ Comment[eu]=Mahaigainen portaera konfigura dezakezu hemen
+ Comment[fa]=می‌توانید چگونگی رفتار رومیزی را در اینجا پیکربندی کنید.
+ Comment[fi]=Tässä kohdassa voit määritellä työpöydän asetuksia
+@@ -170,7 +170,7 @@
+ Keywords[ja]=konqueror,ファイルマネージャ,kfm,ツールチップ,個別ウィンドウ, ポップウィンドウ,挙動,メモリ使用量,ホームURL
+ Keywords[km]=Konqueror កម្មវិធី​គ្រប់គ្រង​ឯកសារ kfm ព័ត៌មាន​ជំនួយ ព័ត៌មាន​ជំនួយ​ឯកសារ បំបែក​បង្អួច បង្កើត​បង្អួច ឥរិយាបថ ឥរិយាបថ ការ​ប្រើ​សតិ URL ដើម
+ Keywords[ko]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,행동,홈 URL,팁,창
+-Keywords[lt]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,behavior,behaviour,memory usage,Home URL, bylų tvarkyklė, kfm, patarimai, atskiri langai, elgesys, elgsena, atminties naudojimas, namų adresas
++Keywords[lt]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,behavior,behaviour,memory usage,Home URL, failų tvarkyklė, kfm, patarimai, atskiri langai, elgesys, elgsena, atminties naudojimas, namų adresas
+ Keywords[lv]=iekarotājs,failumenedžeris,kfm,padoms,failu padomi,atsevišķs logs,spawn windows,izturēšanās,atmiņas izmantošana,Mājas URL,
+ Keywords[mk]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,behavior,behaviour,memory usage,Home URL,менаџер на датотеки,совети,совети за датотеки,подели го прозорецот, однесување,користење на меморија,Домашно URL,
+ Keywords[nb]=konqueror,filemanager,kfm,tips,file tips,separate vinduer,filbehandler,fil,adskilte vindu,delte vinduer,oppførsel,minnebruk,hjemme-nettadresse
+--- a/apps/konqueror/settings/konq/kcustommenueditor.cpp
++++ b/apps/konqueror/settings/konq/kcustommenueditor.cpp
+@@ -134,7 +134,7 @@
+    Q3ListViewItem *last = 0;
+    for(int i = 0; i < count; i++)
+    {
+-      QString entry = cg.readPathEntry(QString("Item%1").arg(i+1));
++      QString entry = cg.readPathEntry(QString("Item%1").arg(i+1), QString());
+       if (entry.isEmpty())
+          continue;
+ 
+--- a/apps/konqueror/settings/konq/webbehavior.desktop
++++ b/apps/konqueror/settings/konq/webbehavior.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/filemanager/index.html
+ Icon=kfm
+-Exec=kcmshell filebehavior
++Exec=kcmshell4 filebehavior
+ 
+ X-KDE-Library=kcm_konq
+ X-KDE-PluginKeyword=behavior
+@@ -111,7 +111,7 @@
+ Comment[kk]=Konqueror файл менеджер ретінде қолданғандағы қасиеттерін баптау
+ Comment[km]=នៅ​ទីនេះ អ្នក​អាច​កំណត់​រចនាសម្ព័ន្ធ​ពី​របៀប​ដែល Konqueror ដើរតួ​ជា​កម្មវិធី​គ្រប់គ្រង​ឯកសារ
+ Comment[ko]=Konqueror의 파일 관리자로서의 행동 설정
+-Comment[lt]=Čia galite nustatyti, kaip elgiasi Konqueror-bylų tvarkyklė
++Comment[lt]=Čia galite nustatyti, kaip elgiasi Konqueror-failų tvarkyklė
+ Comment[lv]=Šeit jūs varat konfigurēt Iekarotāja izturēšanos failu pārlūkošanas laikā
+ Comment[mk]=Конфигурирајте го однесувањето на Konqueror како менаџер на датотеки
+ Comment[ms]=Anda boleh konfigur bagaimana Konqueror berkelakuan sebagai pengurus fail di sini
+@@ -172,7 +172,7 @@
+ Keywords[ja]=konqueror,ファイルマネージャ,kfm,ツールチップ,個別ウィンドウ, ポップウィンドウ,挙動,メモリ使用量,ホームURL
+ Keywords[km]=Konqueror កម្មវិធី​គ្រប់គ្រង​ឯកសារ kfm ព័ត៌មាន​ជំនួយ ព័ត៌មាន​ជំនួយ​ឯកសារ បំបែក​បង្អួច បង្កើត​បង្អួច ឥរិយាបថ ឥរិយាបថ ការ​ប្រើ​សតិ URL ដើម
+ Keywords[ko]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,행동,홈 URL,팁,창
+-Keywords[lt]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,behavior,behaviour,memory usage,Home URL, bylų tvarkyklė, kfm, patarimai, atskiri langai, elgesys, elgsena, atminties naudojimas, namų adresas
++Keywords[lt]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,behavior,behaviour,memory usage,Home URL, failų tvarkyklė, kfm, patarimai, atskiri langai, elgesys, elgsena, atminties naudojimas, namų adresas
+ Keywords[lv]=iekarotājs,failumenedžeris,kfm,padoms,failu padomi,atsevišķs logs,spawn windows,izturēšanās,atmiņas izmantošana,Mājas URL,
+ Keywords[mk]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,behavior,behaviour,memory usage,Home URL,менаџер на датотеки,совети,совети за датотеки,подели го прозорецот, однесување,користење на меморија,Домашно URL,
+ Keywords[nb]=konqueror,filemanager,kfm,tips,file tips,separate vinduer,filbehandler,fil,adskilte vindu,delte vinduer,oppførsel,minnebruk,hjemme-nettadresse
+--- a/apps/konqueror/settings/konq/filebehavior.desktop
++++ b/apps/konqueror/settings/konq/filebehavior.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/filemanager/index.html
+ Icon=kfm
+-Exec=kcmshell filebehavior
++Exec=kcmshell4 filebehavior
+ 
+ X-KDE-Library=kcm_konq
+ X-KDE-PluginKeyword=behavior
+@@ -110,7 +110,7 @@
+ Comment[kk]=Konqueror файл менеджер ретінде қолданғандағы қасиеттерін баптау
+ Comment[km]=នៅ​ទីនេះ អ្នក​អាច​កំណត់​រចនាសម្ព័ន្ធ​ពី​របៀប​ដែល Konqueror ដើរតួ​ជា​កម្មវិធី​គ្រប់គ្រង​ឯកសារ
+ Comment[ko]=Konqueror의 파일 관리자로서의 행동 설정
+-Comment[lt]=Čia galite nustatyti, kaip elgiasi Konqueror-bylų tvarkyklė
++Comment[lt]=Čia galite nustatyti, kaip elgiasi Konqueror-failų tvarkyklė
+ Comment[lv]=Šeit jūs varat konfigurēt Iekarotāja izturēšanos failu pārlūkošanas laikā
+ Comment[mk]=Конфигурирајте го однесувањето на Konqueror како менаџер на датотеки
+ Comment[ms]=Anda boleh konfigur bagaimana Konqueror berkelakuan sebagai pengurus fail di sini
+@@ -170,7 +170,7 @@
+ Keywords[ja]=konqueror,ファイルマネージャ,kfm,ツールチップ,個別ウィンドウ, ポップウィンドウ,挙動,メモリ使用量,ホームURL,ネットワーク操作,進捗ダイアログ,ごみ箱,削除,確認
+ Keywords[km]=konqueror កម្មវិធី​គ្រប់គ្រង​ឯកសារ kfm ព័ត៌មាន​ជំនួយ ព័ត៌មាន​ជំនួយ​ឯកសារ បំបែក​វីនដូ ,បង្កើត​វីនដ,ឥរិយាប ,ឥរិយាប ,ការ​ប្រើ​សត ,URL ដើ ,ប្រតិបត្តិការ​បណ្ដា ,ប្រអប់វឌ្ឍនភា ,ធុង​សំរា ,លុ ,អះអាង
+ Keywords[ko]=konqueror,파일 관리자,팁,새 창,행동,메모리 사용,홈 URL,네트워크 작업,휴지통
+-Keywords[lt]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,behavior,behaviour,memory usage,Home URL,network operations,progress dialog,trash can,delete,confirmation,bylų tvarkyklė,patarimai,bylų patarimai,langai,atskiri langai, elgesys, elgsena, atminties naudojimas, namų adresas,tinklo operacijos,progreso dialogas,šiukšliadėžė,trinti,patvirtinimas
++Keywords[lt]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,behavior,behaviour,memory usage,Home URL,network operations,progress dialog,trash can,delete,confirmation,failų tvarkyklė,patarimai,failų patarimai,langai,atskiri langai, elgesys, elgsena, atminties naudojimas, namų adresas,tinklo operacijos,progreso dialogas,šiukšliadėžė,trinti,patvirtinimas
+ Keywords[mk]=konqueror,filemanager,kfm,tips,file tips,separate window,spawn windows,behavior,behaviour,memory usage,Home URL,network operations,progress dialog,trash can,delete,confirmation,менаџер на датотеки,совети,совети за датотеки,подели го прозорецот,однесување,користење на меморија,Домашно URL,мрежни операции,дијалог за прогрес,корпа за отпадоци,избриши,потврда
+ Keywords[nb]=konqueror,filbehandler,kfm,tips,tips om filer,eget vindu,åpne vinduer,oppførsel,minnebruk,hjemmeside på nettet,nettverksoperasjoner,framdriftsviser,papirkurv
+ Keywords[nds]=Konqueror,Dateipleger,kfm,Tipps,Dateitipps,egen Finster,Finster maken,Bedregen,behaviour,memory,Spiekerverbruuk,Home,Startsiet,Startadress,Nettwark-Akschonen,Vörankamendialoog,Affalltünn,Affall,löschen,Nafraag,nafragen,wegdoon
+--- a/apps/konqueror/settings/konq/desktop.desktop
++++ b/apps/konqueror/settings/konq/desktop.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/desktop/index.html#desktop-number
+ Icon=desktop
+-Exec=kcmshell desktop
++Exec=kcmshell4 desktop
+ 
+ X-KDE-Library=kcm_konq
+ X-KDE-PluginKeyword=ddesktop
+--- a/apps/konqueror/settings/konq/filebrowser.desktop
++++ b/apps/konqueror/settings/konq/filebrowser.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/filemanager/index.html
+ Icon=kfm
+-Exec=kcmshell filebrowser
++Exec=kcmshell4 filebrowser
+ 
+ X-KDE-Library=kcm_konq
+ X-KDE-PluginKeyword=browser
+@@ -43,7 +43,7 @@
+ Name[kk]=Файл менеджері
+ Name[km]=កម្មវិធី​គ្រប់គ្រង​ឯកសារ
+ Name[ko]=파일 관리자
+-Name[lt]=Bylų tvarkyklė
++Name[lt]=Failų tvarkyklė
+ Name[lv]=Failu Menedžeris
+ Name[mk]=Менаџер на датотеки
+ Name[ms]=Pengurus Fail
+@@ -110,7 +110,7 @@
+ Comment[kk]=Konqueror файл менеджер ретінде қолданғанды баптау
+ Comment[km]=នៅ​ទីនេះ អ្នក​អាច​កំណត់​រចនាសម្ព័ន្ធពី​​របៀប​កម្មវិធី​គ្រប់គ្រង​ឯកសារ​របស់ Konqueror
+ Comment[ko]=Konqueror의 파일 관리자 모드 설정
+-Comment[lt]=Čia galite konfigūruoti Konqueror bylų tvarkyklės veikseną
++Comment[lt]=Čia galite konfigūruoti Konqueror failų tvarkyklės veikseną
+ Comment[lv]=Šeit Jūs varat konfigurēt Iekarotāja failu menedžera režīmu
+ Comment[mk]=Тука може да го конфигурирате режимот на Konqueror за менаџирање на датотеки 
+ Comment[ms]=Anda boleh konfigur mod pengurus fail Konqueror di sini
+@@ -170,7 +170,7 @@
+ Keywords[ja]=konqueror,ファイルマネージャ,ワードラップ,行の折り返し,下線,表示,ファイルサイズ, バイト,フォント,色,カラー
+ Keywords[km]=konqueror កម្មវិធី​គ្រប់គ្រង​ឯកសារ រុំពាក្យ រុំ គូស​បន្ទាត់​ក្រោម បង្ហាញ ទំហំ​ឯកសារ បៃ ពណ៌​ពុម្ពអក្សរ ពណ៌
+ Keywords[ko]=konqueror,파일 관리자,밑줄,표시,파일 크기,바이트,글꼴,색
+-Keywords[lt]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,bylų tvarkyklė, žodžių perkėlimas, perkėlimas, pabraukimas, ekranas, bylos dydis, baitai, šriftas,spalva
++Keywords[lt]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,failų tvarkyklė, žodžių perkėlimas, perkėlimas, pabraukimas, ekranas, failo dydis, baitai, šriftas,spalva
+ Keywords[lv]=iekarotājs,failumenedžeris,vārdu apciršana,apciršana,pasvītrojums,ekrāns,failu izmērs,baiti,fonti,krāsas
+ Keywords[mk]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,менаџер на датотеки,прекршување на зборови,прекршување,подвлекување,екран,големина на датотека,бајти,фонт,боја
+ Keywords[nb]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,filbehandler,tekstbryting,understreket,skjerm,filstørrelse,byter,fonter,farger
+--- a/apps/konqueror/settings/konq/webappearance.desktop
++++ b/apps/konqueror/settings/konq/webappearance.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/filemanager/index.html
+ Icon=kfm
+-Exec=kcmshell fileappearance
++Exec=kcmshell4 fileappearance
+ 
+ X-KDE-Library=kcm_konq
+ X-KDE-PluginKeyword=appearance
+@@ -109,7 +109,7 @@
+ Comment[kk]=Konqueror файл менеджер ретінде қолданғандағы көрінісі
+ Comment[km]=នៅ​ទីនេះ អ្នក​អាច​កំណត់​រចនា​សម្ព័ន្ធ​របៀប​ដែល Konqueror មើល​ទៅ​ដូចជា​កម្មវិធី​គ្រប់គ្រង​ឯកសារ
+ Comment[ko]=Konqueror의 파일 관리자로서의 모양 설정
+-Comment[lt]=Čia galite nustatyti, kaip atrodo Konqueror-bylų tvarkyklė
++Comment[lt]=Čia galite nustatyti, kaip atrodo Konqueror kaip failų tvarkyklė
+ Comment[lv]=Šeit jūs varat konfigurēt Iekarotāja izskatu failu pārlūkošanas laikā
+ Comment[mk]=Конфигурирајте го изгледот на Konqueror како менаџер на датотеки
+ Comment[ms]=Anda boleh konfigur bagaiman rupa Konqueror sebagai pengurus fail di sini
+@@ -170,7 +170,7 @@
+ Keywords[ja]=konqueror,ファイルマネージャ,ワードラップ,行の折り返し,下線,表示,ファイルサイズ, バイト,フォント,色,カラー
+ Keywords[km]=konqueror កម្មវិធី​គ្រប់គ្រង​ឯកសារ រុំពាក្យ រុំ គូស​បន្ទាត់​ក្រោម បង្ហាញ ទំហំ​ឯកសារ បៃ ពណ៌​ពុម្ពអក្សរ ពណ៌
+ Keywords[ko]=konqueror,파일 관리자,밑줄,표시,파일 크기,바이트,글꼴,색
+-Keywords[lt]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,bylų tvarkyklė, žodžių perkėlimas, perkėlimas, pabraukimas, ekranas, bylos dydis, baitai, šriftas,spalva
++Keywords[lt]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,failų tvarkyklė, žodžių perkėlimas, perkėlimas, pabraukimas, ekranas, failo dydis, baitai, šriftas,spalva
+ Keywords[lv]=iekarotājs,failumenedžeris,vārdu apciršana,apciršana,pasvītrojums,ekrāns,failu izmērs,baiti,fonti,krāsas
+ Keywords[mk]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,менаџер на датотеки,прекршување на зборови,прекршување,подвлекување,екран,големина на датотека,бајти,фонт,боја
+ Keywords[nb]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,filbehandler,tekstbryting,understreket,skjerm,filstørrelse,byter,fonter,farger
+--- a/apps/konqueror/settings/konq/fileappearance.desktop
++++ b/apps/konqueror/settings/konq/fileappearance.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/filemanager/index.html
+ Icon=kfm
+-Exec=kcmshell fileappearance
++Exec=kcmshell4 fileappearance
+ 
+ X-KDE-Library=kcm_konq
+ X-KDE-PluginKeyword=appearance
+@@ -108,7 +108,7 @@
+ Comment[kk]=Konqueror файл менеджер ретінде қолданғандағы көрінісі
+ Comment[km]=នៅ​ទីនេះ អ្នក​អាច​កំណត់​រចនា​សម្ព័ន្ធ​របៀប​ដែល Konqueror មើល​ទៅ​ដូចជា​កម្មវិធី​គ្រប់គ្រង​ឯកសារ
+ Comment[ko]=Konqueror의 파일 관리자로서의 모양 설정
+-Comment[lt]=Čia galite nustatyti, kaip atrodo Konqueror-bylų tvarkyklė
++Comment[lt]=Čia galite nustatyti, kaip atrodo Konqueror kaip failų tvarkyklė
+ Comment[lv]=Šeit jūs varat konfigurēt Iekarotāja izskatu failu pārlūkošanas laikā
+ Comment[mk]=Конфигурирајте го изгледот на Konqueror како менаџер на датотеки
+ Comment[ms]=Anda boleh konfigur bagaiman rupa Konqueror sebagai pengurus fail di sini
+@@ -169,7 +169,7 @@
+ Keywords[ja]=konqueror,ファイルマネージャ,ワードラップ,行の折り返し,下線,表示,ファイルサイズ, バイト,フォント,色,カラー
+ Keywords[km]=konqueror កម្មវិធី​គ្រប់គ្រង​ឯកសារ រុំពាក្យ រុំ គូស​បន្ទាត់​ក្រោម បង្ហាញ ទំហំ​ឯកសារ បៃ ពណ៌​ពុម្ពអក្សរ ពណ៌
+ Keywords[ko]=konqueror,파일 관리자,밑줄,표시,파일 크기,바이트,글꼴,색
+-Keywords[lt]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,bylų tvarkyklė, žodžių perkėlimas, perkėlimas, pabraukimas, ekranas, bylos dydis, baitai, šriftas,spalva
++Keywords[lt]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,failų tvarkyklė, žodžių perkėlimas, perkėlimas, pabraukimas, ekranas, failo dydis, baitai, šriftas,spalva
+ Keywords[lv]=iekarotājs,failumenedžeris,vārdu apciršana,apciršana,pasvītrojums,ekrāns,failu izmērs,baiti,fonti,krāsas
+ Keywords[mk]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,менаџер на датотеки,прекршување на зборови,прекршување,подвлекување,екран,големина на датотека,бајти,фонт,боја
+ Keywords[nb]=konqueror,filemanager,word wrap,wrap,underline,display,filesize,bytes,font,color,colour,filbehandler,tekstbryting,understreket,skjerm,filstørrelse,byter,fonter,farger
+--- a/apps/konqueror/settings/konq/filepreviews.desktop
++++ b/apps/konqueror/settings/konq/filepreviews.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/filemanager/index.html
+ Icon=kfm
+-Exec=kcmshell filepreviews
++Exec=kcmshell4 filepreviews
+ 
+ X-KDE-Library=kcm_konq
+ X-KDE-PluginKeyword=previews
+@@ -166,7 +166,7 @@
+ Keywords[ja]=konqueror,ファイルマネージャ,プレビュー,ファイルのプレビュー,最大サイズ
+ Keywords[km]=konqueror កម្មវិធី​គ្រប់គ្រង​ឯកសារ មើល​ជា​មុន មើល​ឯកសារ​ជាមុន ទំហំ​អតិបរមា
+ Keywords[ko]=konqueror,파일 관리자,미리보기,최대 크기
+-Keywords[lt]=konqueror,filemanager,previews,file previews,maximum size, bylų tvarkyklė, peržiūros, bylų peržiūros, didžiausias dydis
++Keywords[lt]=konqueror,filemanager,previews,file previews,maximum size, failų tvarkyklė, peržiūros, failų peržiūros, didžiausias dydis
+ Keywords[lv]=Iekarotājs,failu menedžeris,priekšapskate,failu priekšapskate,maksimālais izmērs
+ Keywords[mk]=konqueror,filemanager,previews,file previews,maximum size,менаџер на датотеки, прегледи, прегледи на датотеки,максимална големина
+ Keywords[nb]=konqueror,forhåndsvisning,fil,filbehandler,forhåndsvisning,filvisning,største størrelse
+--- a/apps/konqueror/settings/konqhtml/appearance.cpp
++++ b/apps/konqueror/settings/konqhtml/appearance.cpp
+@@ -289,7 +289,7 @@
+     KConfigGroup khtmlrc(KSharedConfig::openConfig("khtmlrc", KConfig::NoGlobals),
+ 			 QByteArray(""));
+     KConfigGroup cg(m_pConfig, QByteArray(""));
+-#define SET_GROUP(x) cg.changeGroup(x); khtmlrc.changeGroup(x)
++#define SET_GROUP(x) cg = KConfigGroup(m_pConfig,x); khtmlrc = KConfigGroup(KSharedConfig::openConfig("khtmlrc", KConfig::NoGlobals),x)
+ #define READ_NUM(x,y) cg.readEntry(x, khtmlrc.readEntry(x, y))
+ #define READ_ENTRY(x,y) cg.readEntry(x, khtmlrc.readEntry(x, y))
+ #define READ_LIST(x) cg.readEntry(x, khtmlrc.readEntry(x, QStringList() ))
+--- a/apps/konqueror/settings/konqhtml/khtml_general.desktop
++++ b/apps/konqueror/settings/konqhtml/khtml_general.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/khtml/index.html#kbrowse-html
+ Icon=konqueror
+-Exec=kcmshell khtml_general
++Exec=kcmshell4 khtml_general
+ X-KDE-ParentApp=kcontrol
+ 
+ X-KDE-Library=kcm_konqhtml
+@@ -14,9 +14,11 @@
+ Name[ar]=عام
+ Name[be]=Агульныя
+ Name[bg]=Основно
++Name[br]=Pennañ
+ Name[csb]=Spòdlowé
+ Name[de]=Allgemein
+ Name[el]=Γενικά
++Name[et]=Üldine
+ Name[fa]=عمومی
+ Name[ga]=Ginearálta
+ Name[he]=כללי
+@@ -45,10 +47,12 @@
+ Comment[ar]=اضبط سلوك كونكيورر العام
+ Comment[be]=Настаўленні паводзінаў вандроўніка
+ Comment[bg]=Настройване на уеб браузъра
++Comment[br]=Kefluniañ emzalc'h ar furcher
+ Comment[csb]=Kònfigùracëjô spòdlowégò zachòwaniô przezérnika
+ Comment[de]=Allgemeines Verhalten von Konqueror festlegen
+ Comment[el]=Ρυθμίστε τη γενική συμπεριφορά του περιηγητή
+ Comment[es]=Configurar el comportamiento general de konqueror
++Comment[et]=Konquerori üldise käitumise seadistamine
+ Comment[fa]=پیکربندی رفتار عمومی konqueror
+ Comment[ga]=Cumraigh oibriú ginearálta konqueror
+ Comment[he]=שינוי הגדרות כלליות הקשורות לפעולת Konqueror
+@@ -79,6 +83,7 @@
+ Keywords[de]=konqueror,unterfenster
+ Keywords[el]=Konqueror,καρτέλες
+ Keywords[es]=konqueror,solapas
++Keywords[et]=konqueror,kaardid
+ Keywords[fa]=konqueror، تبها
+ Keywords[ga]=Konqueror,cluaisíní
+ Keywords[he]=konqueror,לשוניות
+@@ -86,7 +91,7 @@
+ Keywords[ja]=konqueror,タブ
+ Keywords[km]=konqueror ផ្ទាំង
+ Keywords[ko]=konqueror,탭
+-Keywords[nb]=Konqueror,arkfaner
++Keywords[nb]=Konqueror,faner
+ Keywords[nds]=Konqueror,Paneels
+ Keywords[ne]=कन्क्वेरर, ट्याब
+ Keywords[nl]=konqueror,tabbladen
+--- a/apps/konqueror/settings/konqhtml/khtml_filter.desktop
++++ b/apps/konqueror/settings/konqhtml/khtml_filter.desktop
+@@ -5,7 +5,7 @@
+ 
+ DocPath=kcontrol/khtml/index.html#khtml-adblock
+ Icon=filter
+-Exec=kcmshell khtml_filter
++Exec=kcmshell4 khtml_filter
+ 
+ X-KDE-Library=kcm_konqhtml
+ X-KDE-PluginKeyword=khtml_filter
+--- a/apps/konqueror/settings/konqhtml/khtml_fonts.desktop
++++ b/apps/konqueror/settings/konqhtml/khtml_fonts.desktop
+@@ -5,7 +5,7 @@
+ 
+ DocPath=kcontrol/khtml/index.html#kbrowse-appearance
+ Icon=preferences-desktop-font
+-Exec=kcmshell khtml_fonts
++Exec=kcmshell4 khtml_fonts
+ X-KDE-ParentApp=kcontrol
+ 
+ X-KDE-Library=kcm_konqhtml
+--- a/apps/konqueror/settings/konqhtml/generalopts.cpp
++++ b/apps/konqueror/settings/konqhtml/generalopts.cpp
+@@ -90,9 +90,8 @@
+ 
+ void KKonqGeneralOptions::load()
+ {
+-    KConfigGroup cg(m_pConfig, QByteArray(""));
+-
+-    cg.changeGroup("FMSettings");
++    KConfigGroup cg(m_pConfig, "FMSettings");
++    
+     homeURL->setUrl(cg.readEntry("HomeURL", "~"));
+     tabOptions->m_pShowMMBInTabs->setChecked( cg.readEntry( "MMBOpensTab", false ) );
+     tabOptions->m_pDynamicTabbarHide->setChecked( ! (cg.readEntry( "AlwaysTabbedMode", false )) );
+@@ -104,7 +103,7 @@
+     tabOptions->m_pPopupsWithinTabs->setChecked( cg.readEntry( "PopupsWithinTabs", false) );
+     tabOptions->m_pTabCloseActivatePrevious->setChecked( cg.readEntry( "TabCloseActivatePrevious", false) );
+ 
+-    cg.changeGroup("Notification Messages");
++    cg = KConfigGroup(m_pConfig, "Notification Messages");
+     tabOptions->m_pTabConfirm->setChecked( !cg.hasKey("MultipleTabConfirm") );
+ 
+ }
+@@ -136,7 +135,7 @@
+     cg.sync();
+ 
+     // It only matters wether the key is present, its value has no meaning
+-    cg.changeGroup("Notification Messages");
++    cg = KConfigGroup(m_pConfig,"Notification Messages");
+     if ( tabOptions->m_pTabConfirm->isChecked() )
+         cg.deleteEntry( "MultipleTabConfirm" );
+     else
+--- a/apps/konqueror/settings/konqhtml/khtml_behavior.desktop
++++ b/apps/konqueror/settings/konqhtml/khtml_behavior.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/khtml/index.html#kbrowse-html
+ Icon=konqueror
+-Exec=kcmshell khtml_behavior
++Exec=kcmshell4 khtml_behavior
+ X-KDE-ParentApp=kcontrol
+ 
+ X-KDE-Library=kcm_konqhtml
+@@ -26,7 +26,7 @@
+ Name[en_GB]=Web Behaviour
+ Name[eo]=TTT-Konduto
+ Name[es]=Comportamiento
+-Name[et]=Veebilehitseja käitumine
++Name[et]=Brauseri käitumine
+ Name[eu]=Web portaera
+ Name[fa]=رفتار وب
+ Name[fi]=Verkkokäyttäytyminen
+@@ -92,7 +92,7 @@
+ Comment[en_GB]=Configure the browser behaviour
+ Comment[eo]=Agordas la konduton de la TTT-legilo
+ Comment[es]=Configuración del comportamiento del navegador
+-Comment[et]=Konquerori veebilehitseja käitumine
++Comment[et]=Konquerori brauseri käitumine
+ Comment[eu]=Konfiguratu arakatzailearen portaera
+ Comment[fa]=پیکربندی رفتار مرورگر
+ Comment[fi]=Selaimen asetukset
+@@ -155,7 +155,7 @@
+ Keywords[en_GB]=konqueror,kfm,browser,html,web,www,fonts,colours,java,javascript,cursor,links,images,charsets,character sets,encoding
+ Keywords[eo]=Konkeranto,Kfm,TTT,HTML,WWW,tiparo,koloro,Javo,Javoskripto,kursoro,kursilo,ligo,referenco,bildo,signaro,kodo
+ Keywords[es]=konqueror,kfm,navegador,html,web,www,tipos de letra,colores,java,javascript,cursor,enlaces,imágenes,mapas de caracteres,codificación
+-Keywords[et]=konqueror,kfm,veebilehitseja,html,veeb,www,fondid,värvid,java,javascript,kursor,viidad,lingid,pildid,kooditabel,kodeering
++Keywords[et]=konqueror,kfm,veebilehitseja,brauser,html,veeb,www,fondid,värvid,java,javascript,kursor,viidad,lingid,pildid,kooditabel,kodeering
+ Keywords[eu]=konqueror,kfm,arakatzailea,html,web,www,letra-tipoak,koloreak,java,javascript,kurtsorea,linkak,irudiak,karaktere-multzoak,karaktereen hobespenak,kodeketa
+ Keywords[fa]=konqueror، kfm، مرورگر، زنگام، وب، www، قلمها، رنگها، رنگها، جاوا، جاوااسکریپت، مکان‌نما، پیوندها، تصاویر، نوسه‌گان، نویسه‌گان، کدبندی
+ Keywords[fi]=konqueror,kfm,selain,html,web,www,kirjasimet,värit,java,javascript,osoitin,linkit,kuvat,merkistöt,koodaus
+--- a/apps/konqueror/settings/konqhtml/khtml_java_js.desktop
++++ b/apps/konqueror/settings/konqhtml/khtml_java_js.desktop
+@@ -4,7 +4,7 @@
+ ServiceTypes=KCModule
+ DocPath=kcontrol/khtml/index.html#kbrowse-java
+ Icon=konqueror
+-Exec=kcmshell khtml_java_js
++Exec=kcmshell4 khtml_java_js
+ X-KDE-ParentApp=kcontrol
+ 
+ X-KDE-Library=kcm_konqhtml
+@@ -139,7 +139,7 @@
+ Keywords[el]=konqueror,kfm,περιηγητής,html,ιστός,www,java,javascript
+ Keywords[eo]=Konkeranto,Kfm,TTT,HTML,WWW,tiparo,koloro,Javo,Javoskripto,kursoro,kursilo,ligo,referenco,bildo,signaro,kodo
+ Keywords[es]=konqueror,kfm,navegador,html,web,wwwjava,javascript
+-Keywords[et]=konqueror,kfm,veebilehitseja,html,veeb,www,java,javascript
++Keywords[et]=konqueror,kfm,veebilehitseja,brauser,html,veeb,www,java,javascript
+ Keywords[eu]=konqueror,kfm,arakatzailea,html,web,www,java,javascript
+ Keywords[fa]=konqueror، kfm، مرورگر، زنگام، وب، www، جاوا، جاوااسکریپت
+ Keywords[fi]=konqueror,kfm,selain,html,web,www,java,javascript
+--- a/apps/konqueror/settings/konqhtml/htmlopts.cpp
++++ b/apps/konqueror/settings/konqhtml/htmlopts.cpp
+@@ -229,7 +229,7 @@
+     KConfigGroup khtmlrc(KSharedConfig::openConfig("khtmlrc", KConfig::NoGlobals),
+ 			 QByteArray(""));
+     KConfigGroup cg(m_pConfig, QByteArray(""));
+-#define SET_GROUP(x) cg.changeGroup(x); khtmlrc.changeGroup(x)
++#define SET_GROUP(x) cg = KConfigGroup(m_pConfig, x); khtmlrc = KConfigGroup(KSharedConfig::openConfig("khtmlrc", KConfig::NoGlobals),x)
+ #define READ_BOOL(x,y) cg.readEntry(x, khtmlrc.readEntry(x, y))
+ #define READ_ENTRY(x) cg.readEntry(x, khtmlrc.readEntry(x))
+ 
+@@ -307,7 +307,7 @@
+     KConfigGroup cg(m_pConfig, "MainView Settings");
+     cg.writeEntry( "OpenMiddleClick", m_pOpenMiddleClick->isChecked() );
+     cg.writeEntry( "BackRightClick", m_pBackRightClick->isChecked() );
+-    cg.changeGroup( "HTML Settings" );
++    cg = KConfigGroup(m_pConfig, "HTML Settings" );
+     cg.writeEntry( "ChangeCursor", m_cbCursor->isChecked() );
+     cg.writeEntry( "AutoLoadImages", m_pAutoLoadImagesCheckBox->isChecked() );
+     cg.writeEntry( "UnfinishedImageFrame", m_pUnfinishedImageFrameCheckBox->isChecked() );
+--- a/apps/konqueror/settings/konqhtml/filteropts.cpp
++++ b/apps/konqueror/settings/konqhtml/filteropts.cpp
+@@ -237,6 +237,8 @@
+ void KCMFilter::defaults()
+ {
+     mListBox->clear();
++    mEnableCheck->setChecked(false);
++    mKillCheck->setChecked(false);
+     updateButton();
+ }
+ 
+@@ -244,7 +246,7 @@
+ {
+     KConfigGroup cg(mConfig, mGroupname);
+     cg.deleteGroup();
+-    cg.changeGroup(mGroupname);
++    cg = KConfigGroup(mConfig, mGroupname);
+ 
+     cg.writeEntry("Enabled",mEnableCheck->isChecked());
+     cg.writeEntry("Shrink",mKillCheck->isChecked());
+@@ -309,7 +311,7 @@
+ {
+     for( int i = mListBox->count(); i >= 0; --i )
+     {
+-        if (mListBox->item(i)->isSelected())
++        if (mListBox->item(i) && mListBox->item(i)->isSelected())
+             delete mListBox->takeItem(i);
+     }
+     emit changed( true );
+--- a/apps/konqueror/profile_filemanagement.desktop
++++ b/apps/konqueror/profile_filemanagement.desktop
+@@ -34,7 +34,7 @@
+ Name[kk]=Файдарды басқару
+ Name[km]=ការ​គ្រប់គ្រង​ឯកសារ
+ Name[ko]=파일 관리자
+-Name[lt]=Bylų valdymas
++Name[lt]=Failų valdymas
+ Name[lv]=Failu Menedžments
+ Name[mk]=Менаџмент на датотеки
+ Name[ms]=Pengurusan Fail
+--- a/apps/konqueror/CMakeLists.txt
++++ b/apps/konqueror/CMakeLists.txt
+@@ -10,7 +10,7 @@
+ add_subdirectory( pics )
+ add_subdirectory( sidebar )
+ add_subdirectory( preloader )
+-add_subdirectory( quickprint )
++#add_subdirectory( quickprint )
+ add_subdirectory( remoteencodingplugin )
+ add_subdirectory( settings )
+ add_subdirectory( kttsplugin )
+--- a/apps/konqueror/profile_tabbedbrowsing.desktop
++++ b/apps/konqueror/profile_tabbedbrowsing.desktop
+@@ -36,11 +36,11 @@
+ Name[lv]=Tabota pārlūkošana
+ Name[mk]=Прелистување со ливчиња
+ Name[ms]=Pelayaran Bertab
+-Name[nb]=Nettleser med arkfaner
++Name[nb]=Nettleser med faner
+ Name[nds]=Nettkieken mit Paneels
+ Name[ne]=ट्याब गरिएको ब्राउजिङ
+ Name[nl]=Browser met tabbladen
+-Name[nn]=Nettlesar med arkfaner
++Name[nn]=Nettlesar med faner
+ Name[pa]=ਟੈਬ ਝਲਕੀ
+ Name[pl]=Przeglądanie wielu stron w jednym oknie
+ Name[pt]=Navegação por Páginas
+--- a/apps/konqueror/quickprint/text-tex-print.desktop
++++ b/apps/konqueror/quickprint/text-tex-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-tex
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-xml-print.desktop
++++ b/apps/konqueror/quickprint/text-xml-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-xml
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-print.desktop
++++ b/apps/konqueror/quickprint/text-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/plain
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-perl-print.desktop
++++ b/apps/konqueror/quickprint/text-perl-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-perl
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-html-print.desktop
++++ b/apps/konqueror/quickprint/text-html-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/html
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-diff-print.desktop
++++ b/apps/konqueror/quickprint/text-diff-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-patch
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-c++-print.desktop
++++ b/apps/konqueror/quickprint/text-c++-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-c++src
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-makefile-print.desktop
++++ b/apps/konqueror/quickprint/text-makefile-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-makefile
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-c++h-print.desktop
++++ b/apps/konqueror/quickprint/text-c++h-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-c++hdr
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-log-print.desktop
++++ b/apps/konqueror/quickprint/text-log-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-log
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-java-print.desktop
++++ b/apps/konqueror/quickprint/text-java-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-java
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-python-print.desktop
++++ b/apps/konqueror/quickprint/text-python-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-python
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-c-print.desktop
++++ b/apps/konqueror/quickprint/text-c-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-csrc
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-tcl-print.desktop
++++ b/apps/konqueror/quickprint/text-tcl-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-tcl
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-pas-print.desktop
++++ b/apps/konqueror/quickprint/text-pas-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-pascal
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-ada-print.desktop
++++ b/apps/konqueror/quickprint/text-ada-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-adasrc
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-css-print.desktop
++++ b/apps/konqueror/quickprint/text-css-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/css
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-ch-print.desktop
++++ b/apps/konqueror/quickprint/text-ch-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=text/x-chdr
+ Actions=Print;
+ 
+--- a/apps/konqueror/quickprint/text-xslt-print.desktop
++++ b/apps/konqueror/quickprint/text-xslt-print.desktop
+@@ -1,5 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
++Type=Service
+ ServiceTypes=application/xslt+xml
+ Actions=Print;
+ 
+--- a/apps/konqueror/konqueror.desktop
++++ b/apps/konqueror/konqueror.desktop
+@@ -27,7 +27,7 @@
+ Comment[el]=Διαχειριστής αρχείων & Περιηγητής ιστού του KDE
+ Comment[eo]=KDE-dosieradministrilo kaj TTT-legilo
+ Comment[es]=Gestor de ficheros y navegador web de KDE
+-Comment[et]=KDE failihaldur & veebilehitseja
++Comment[et]=KDE failihaldur & veebibrauser
+ Comment[eu]=KDE fitxategi kudeatzailea eta Web arakatzailea
+ Comment[fa]=مدیر پرونده و مرورگر وب KDE
+ Comment[fi]=KDE:n tiedostonhallinta ja WWW-selain
+@@ -45,7 +45,7 @@
+ Comment[kk]=KDE файл менеджері және Веб шолғышы
+ Comment[km]=កម្មវិធី​គ្រប់គ្រង​ឯកសារ និង​កម្មវិធី​រុករក​បណ្ដាញ​របស់ KDE​
+ Comment[ko]=KDE 파일 관리자와 웹 브라우저
+-Comment[lt]=KDE bylų tvarkyklė ir žiniatinklio naršyklė
++Comment[lt]=KDE failų tvarkyklė ir žiniatinklio naršyklė
+ Comment[lv]=KDE Failu Menedžeris un Web Pārlūks
+ Comment[mk]=Менаџер на датотеки и веб-прелистувач во KDE
+ Comment[ms]=Pengurus Fail KDE & Pelayar Web
+--- a/apps/konqueror/Home.desktop
++++ b/apps/konqueror/Home.desktop
+@@ -103,7 +103,7 @@
+ GenericName[kk]=Дербес файлдар
+ GenericName[km]=ឯកសារ​ផ្ទាល់​ខ្លួន
+ GenericName[ko]=개인적인 파일
+-GenericName[lt]=Asmeninės bylos
++GenericName[lt]=Asmeniniai failai
+ GenericName[lv]=Personālie Faili
+ GenericName[mk]=Лични датотеки
+ GenericName[ms]=Fail Peribadi
+--- a/apps/konqueror/kttsplugin/khtmlkttsd.desktop
++++ b/apps/konqueror/kttsplugin/khtmlkttsd.desktop
+@@ -18,6 +18,7 @@
+ Name[de]=Sprachausgabe
+ Name[el]=Κείμενο-σε-ομιλία
+ Name[es]=Texto-a-Voz
++Name[et]=Tekst kõneks
+ Name[fa]=متن به گفتار
+ Name[ga]=Téacs-go-Caint
+ Name[he]=טקסט לדיבור
+@@ -47,6 +48,7 @@
+ Comment[de]=Erzeugt Sprachausgabe für Text der aktuellen Seite
+ Comment[el]=Εκφωνεί το κείμενο της τρέχουσας σελίδας
+ Comment[es]=Produce audio del texto de la página actual
++Comment[et]=Aktiivse lehekülje teksti kõnelemine
+ Comment[fa]=خروجی صوتی را برای متن در صفحه جاری تولید می‌کند
+ Comment[he]=הקראת הטקסט בדף הנוכחי
+ Comment[it]=Produce una riproduzione vocale del testo della pagina attuale
+--- a/apps/konqueror/konquerorsu.desktop
++++ b/apps/konqueror/konquerorsu.desktop
+@@ -39,7 +39,7 @@
+ Name[kk]=Файл менеджері (әкімші құқығымен)
+ Name[km]=កម្មវិធី​គ្រប់គ្រង​ឯកសារ - របៀប​អ្នក​ប្រើ​ជាន់​ខ្ពស់
+ Name[ko]=파일 관리자 - 슈퍼유저 모드
+-Name[lt]=Bylų tvarkyklė – super naudotojo veiksena
++Name[lt]=Failų tvarkyklė – super naudotojo veiksena
+ Name[lv]=Failu Pārvaldnieks - Super Lietotāja Režīms
+ Name[mk]=Менаџер на датотеки - режим root
+ Name[ms]=Pengurus Fail - Mod Pengguna Super
+--- a/apps/konqueror/profile_filepreview.desktop
++++ b/apps/konqueror/profile_filepreview.desktop
+@@ -38,7 +38,7 @@
+ Name[kk]=Файдарды алдын-ала қарау
+ Name[km]=មើល​ឯកសារ​ជា​មុន
+ Name[ko]=파일 미리보기
+-Name[lt]=Bylų peržiūra
++Name[lt]=Failų peržiūra
+ Name[lv]=Failu Apskate
+ Name[mk]=Преглед на датотеки
+ Name[ms]=Prapapar Fail
+--- a/apps/konqueror/sidebar/web_module/web_module.cpp
++++ b/apps/konqueror/sidebar/web_module/web_module.cpp
+@@ -63,10 +63,10 @@
+ 
+ 	_desktopName = desktopName;
+ 
+-	KConfig _ksc( _desktopName, KConfig::OnlyLocal );
++	KConfig _ksc( _desktopName, KConfig::SimpleConfig );
+ 	KConfigGroup ksc(&_ksc, "Desktop Entry");
+         reloadTimeout = ksc.readEntry("Reload", 0);
+-	_url = ksc.readPathEntry("URL");
++	_url = ksc.readPathEntry("URL", QString());
+ 	_htmlPart->openUrl(_url );
+ 	// Must load this delayed
+ 	QTimer::singleShot(0, this, SLOT(loadFavicon()));
+@@ -107,7 +107,7 @@
+ 	if( dlg.exec() == KDialog::Accepted ) {
+ 		int msec = ( mins->value() * 60 + secs->value() ) * 1000;
+ 		reloadTimeout = msec;
+-		KConfig _ksc( _desktopName, KConfig::OnlyLocal );
++		KConfig _ksc( _desktopName, KConfig::SimpleConfig );
+ 		KConfigGroup ksc(&_ksc, "Desktop Entry");
+ 		ksc.writeEntry("Reload", reloadTimeout);
+ 		reload();
+@@ -152,9 +152,9 @@
+ 	if (!icon.isEmpty()) {
+ 		emit setIcon(icon);
+ 
+-		KConfig _ksc( _desktopName, KConfig::OnlyLocal );
++		KConfig _ksc( _desktopName, KConfig::SimpleConfig );
+ 		KConfigGroup ksc(&_ksc, "Desktop Entry");
+-		if (icon != ksc.readPathEntry("Icon")) {
++		if (icon != ksc.readPathEntry("Icon", QString())) {
+ 			ksc.writePathEntry("Icon", icon);
+ 		}
+ 	}
+@@ -170,9 +170,9 @@
+ 	if (!title.isEmpty()) {
+ 		emit setCaption(title);
+ 
+-		KConfig _ksc( _desktopName, KConfig::OnlyLocal );
++		KConfig _ksc( _desktopName, KConfig::SimpleConfig );
+ 		KConfigGroup ksc(&_ksc, "Desktop Entry");
+-		if (title != ksc.readPathEntry("Name")) {
++		if (title != ksc.readPathEntry("Name", QString())) {
+ 			ksc.writePathEntry("Name", title);
+ 		}
+ 	}
+--- a/apps/konqueror/sidebar/trees/konq_sidebartree.cpp
++++ b/apps/konqueror/sidebar/trees/konq_sidebartree.cpp
+@@ -97,7 +97,7 @@
+ 
+   for (QStringList::ConstIterator it=list.begin();it!=list.end();++it)
+   {
+-    KConfig _ksc( *it, KConfig::OnlyLocal );
++    KConfig _ksc( *it, KConfig::SimpleConfig );
+     KConfigGroup ksc(&_ksc, "Desktop Entry");
+     QString name    = ksc.readEntry("X-KDE-TreeModule");
+     QString libName = ksc.readEntry("X-KDE-TreeModule-Lib");
+@@ -628,7 +628,7 @@
+             // Version 6 includes the printmanager and lan browser
+             const int currentVersion = 6;
+             QString key = QString::fromLatin1("X-KDE-DirTreeVersionNumber");
+-            KConfig versionCfg( path + "/.directory", KConfig::OnlyLocal);
++            KConfig versionCfg( path + "/.directory", KConfig::SimpleConfig);
+             KConfigGroup generalGroup( &versionCfg, "General" );
+             int versionNumber = generalGroup.readEntry( key, 1 );
+             kDebug(1201) << "KonqSidebarTree::scanDir found version " << versionNumber;
+@@ -786,7 +786,7 @@
+ 
+     // Here's where we need to create the right module...
+     // ### TODO: make this KTrader/KLibrary based.
+-    QString moduleName = desktopGroup.readPathEntry( "X-KDE-TreeModule" );
++    QString moduleName = desktopGroup.readPathEntry( "X-KDE-TreeModule", QString() );
+     QString showHidden = desktopGroup.readEntry("X-KDE-TreeModule-ShowHidden");
+ 
+     if (moduleName.isEmpty()) moduleName="Directory";
+--- a/apps/konqueror/sidebar/trees/konqsidebar_tree.cpp
++++ b/apps/konqueror/sidebar/trees/konqsidebar_tree.cpp
+@@ -16,7 +16,7 @@
+ KonqSidebar_Tree::KonqSidebar_Tree(const KComponentData &componentData,QObject *parent,QWidget *widgetParent, QString &desktopName_, const char* name):
+                    KonqSidebarPlugin(componentData,parent,widgetParent,desktopName_,name)
+ {
+-	KConfig _ksc( desktopName_, KConfig::OnlyLocal );
++	KConfig _ksc( desktopName_, KConfig::SimpleConfig );
+ 	KConfigGroup ksc(&_ksc, "Desktop Entry");
+ 	int virt= ( (ksc.readEntry("X-KDE-TreeModule","")=="Virtual") ?VIRT_Folder:VIRT_Link);
+ 	if (virt==1) desktopName_=ksc.readEntry("X-KDE-RelURL","");
+@@ -130,7 +130,7 @@
+ 	  QStringList names;
+ 	  for (QStringList::ConstIterator it=list.begin();it!=list.end();++it)
+ 	  {
+-		KConfig _sc( *it, KConfig::OnlyLocal );
++		KConfig _sc( *it, KConfig::SimpleConfig );
+ 		KConfigGroup sc(&_sc, "Desktop Entry");
+ 		names<<sc.readEntry("Name");
+ 	  }
+@@ -141,7 +141,7 @@
+ 		{
+ 			int id=names.indexOf( item );
+ 			if (id==-1) return false;
+-			KConfig ksc2(QString(list.at(id)), KConfig::OnlyLocal);
++			KConfig ksc2(QString(list.at(id)), KConfig::SimpleConfig);
+ 			KConfigGroup desktopGroup(&ksc2, "Desktop Entry");
+ 		        map->insert("Type","Link");
+ 			map->insert("Icon",desktopGroup.readEntry("Icon"));
+--- a/apps/konqueror/sidebar/trees/dirtree_module/dirtree_module.cpp
++++ b/apps/konqueror/sidebar/trees/dirtree_module/dirtree_module.cpp
+@@ -86,7 +86,7 @@
+     {
+         targetURL = cfg.readUrl();
+         // some services might want to make their URL configurable in kcontrol
+-        QString configured = desktopGroup.readPathEntry("X-KDE-ConfiguredURL");
++        QString configured = desktopGroup.readPathEntry("X-KDE-ConfiguredURL", QString());
+         if (!configured.isEmpty()) {
+             QStringList list = configured.split( ':');
+             KConfig config(list[0]);
+@@ -100,7 +100,7 @@
+     else if ( cfg.hasDeviceType() )
+     {
+         // Determine the mountpoint
+-        QString mp = desktopGroup.readPathEntry("MountPoint");
++        QString mp = desktopGroup.readPathEntry("MountPoint", QString());
+         if ( mp.isEmpty() )
+             return;
+ 
+--- a/apps/konqueror/sidebar/trees/init/system.desktop
++++ /dev/null
+@@ -1,98 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Type=Link
+-URL=system:/
+-Icon=system
+-Name=System
+-Name[af]=Stelsel
+-Name[ar]=النظام
+-Name[be]=Сістэма
+-Name[bg]=Система
+-Name[br]=Reizhiad
+-Name[ca]=Sistema
+-Name[cs]=Systém
+-Name[csb]=Systema
+-Name[cy]=Cysawd
+-Name[el]=Σύστημα
+-Name[eo]=Sistemo
+-Name[es]=Sistema
+-Name[et]=Süsteem
+-Name[eu]=Sistema
+-Name[fa]=سیستم
+-Name[fi]=Järjestelmä
+-Name[fr]=Système
+-Name[fy]=Systeem
+-Name[ga]=Córas
+-Name[gl]=Sistema
+-Name[he]=מערכת
+-Name[hr]=Sustav
+-Name[hu]=Rendszer
+-Name[is]=Kerfi
+-Name[it]=Sistema
+-Name[ja]=システム
+-Name[ka]=სისტემა
+-Name[kk]=Жүйелік
+-Name[km]=ប្រព័ន្ធ
+-Name[ko]=시스템
+-Name[lt]=Sistema
+-Name[lv]=Sistēma
+-Name[mk]=Систем
+-Name[ms]=Sistem
+-Name[nds]=Systeem
+-Name[ne]=प्रणाली
+-Name[nl]=Systeem
+-Name[pa]=ਸਿਸਟਮ
+-Name[pt]=Sistema
+-Name[pt_BR]=Sistema
+-Name[ro]=Sistem
+-Name[ru]=Система
+-Name[se]=Vuogádat
+-Name[sl]=Sistem
+-Name[sr]=Систем
+-Name[sr at latin]=Sistem
+-Name[ta]=அமைப்பு
+-Name[te]=వ్యవస్థ
+-Name[tg]=Система
+-Name[th]=ระบบ
+-Name[tr]=Sistem
+-Name[uk]=Система
+-Name[uz]=Тизим
+-Name[vi]=Hệ thống
+-Name[wa]=Sistinme
+-Name[x-test]=xxSystemxx
+-Name[xh]=Indlela esestyenziswayo
+-Name[zh_CN]=系统
+-Name[zh_TW]=系統
+-Comment=This folder allows to access common places in your computer
+-Comment[be]=Гэтая тэчка дазваляе атрымаць хуткі доступ да розных важных месцаў на вашым камп'ютэры
+-Comment[bg]=Директория за достъп до често използваните места в компютъра
+-Comment[csb]=Nen katalog dôwô mòżnotã przëstãpù do nôczãsczi brëkòwónëch placów w twòjim kòmpùtrze
+-Comment[de]=Dieser Ordner ermöglicht den Zugriff auf gebräuchliche Systembereiche Ihres Rechners
+-Comment[el]=Αυτός ο φάκελος σας επιτρέπει την πρόσβαση σε τυπικές τοποθεσίες του συστήματός σας
+-Comment[es]=Esta carpeta permite acceder a lugares usuales en su equipo
+-Comment[fa]=این پوشه اجازۀ دستیابی به جاهای مشترک در رایانۀ شما را می‌دهد
+-Comment[ga]=Ceadaíonn an fillteán seo duit áiteanna coitianta a rochtain ar do ríomhaire
+-Comment[he]=תיקייה זו מאפשרת לך לגשת למקומות נפוצים במחשב שלך
+-Comment[it]=Questa cartella permette di accedere ai percorsi comuni del tuo computer
+-Comment[ja]=このフォルダからコンピュータのよく使われる場所にアクセスできます
+-Comment[kk]=Бұл қапшық компьютердегі ортақ орындарға қатынауға мүмкіндік береді
+-Comment[km]=ថត​នេះ​អនុញ្ញាត​ឲ្យ​ចូល​ដំណើរការ​កន្លែង​​​ទូទៅ​នៅ​ក្នុង​កុំព្យូទ័រ​របស់​អ្នក
+-Comment[ko]=컴퓨터에서 자주 사용되는 장소에 접근하게 해 줍니다
+-Comment[nb]=Denne mappa gir deg tilgang til vanlige steder på din datamaskin
+-Comment[nds]=Mit dissen Orner kannst Du op en Reeg faken bruukte Öörd togriepen
+-Comment[ne]=यो फोल्डरले तपाईँलाई कम्प्युटरको साझा स्थानहरूमा पहुँच अनुमति दिन्छ
+-Comment[nl]=Deze map geeft toegang tot algemene plekken op uw computer
+-Comment[nn]=Denne mappa gir deg tilgang til nokre vanlege stader på datamaskina
+-Comment[pa]=ਇਹ ਫੋਲਡਰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਚ ਆਮ ਥਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਸਹਾਇਕ ਹੈ
+-Comment[pt]=Esta pasta permite aceder a alguns locais comuns no seu computador
+-Comment[pt_BR]=Esta pasta permite acessar lugares comuns em seu computador
+-Comment[sv]=Den här katalogen gör det möjligt att komma åt vanliga platser på din dator
+-Comment[th]=โฟลเดอร์นี้อนุญาตให้คุณเข้าถึงสถานที่ทั่วๆ ไปในเครื่องคอมพิวเตอร์ของคุณ
+-Comment[vi]=Thư mục này cho bạn có khả năng truy cập vào các nơi thông dụng của máy tính
+-Comment[wa]=Ci ridant chal dene èn accès a sacwantès cmonès plaeces di vosse copiutrece
+-Comment[x-test]=xxThis folder allows to access common places in your computerxx
+-Comment[zh_CN]=这个文件夹允许您访问计算机中的公共位置
+-Comment[zh_TW]=這個資料夾允許存取您電腦上的共同空間
+-Open=true
+-X-KDE-TreeModule=Directory
+-X-KDE-KonqSidebarModule=konqsidebar_tree
+--- a/apps/konqueror/sidebar/trees/init/home.desktop
++++ b/apps/konqueror/sidebar/trees/init/home.desktop
+@@ -2,7 +2,7 @@
+ Encoding=UTF-8
+ Type=Link
+ URL=file:$HOME
+-Icon=folder_home
++Icon=go-home
+ Name=Home Folder
+ Name[af]=Tuis Gids
+ Name[ar]=المجلد المنزلي
+@@ -100,7 +100,7 @@
+ Comment[kk]=Бұл қапшықта Сіздің дербес файлдарыңыз сақталады
+ Comment[km]=ថត​នេះ​មាន​ឯកសារ​ផ្ទាល់​ខ្លួន​របស់​អ្នក
+ Comment[ko]=이 폴더는 개인 파일을 포함합니다
+-Comment[lt]=Šiame aplanke yra Jūsų asmeninės bylos
++Comment[lt]=Šiame aplanke yra Jūsų asmeniniai failai
+ Comment[lv]=Šī mape satur jūsu personālos failus
+ Comment[mk]=Оваа папка ги содржи вашите лични датотеки
+ Comment[ms]=Folder ini mengandungi fail peribadi anda
+--- a/apps/konqueror/sidebar/trees/init/services/media.desktop
++++ /dev/null
+@@ -1,69 +0,0 @@
+-[Desktop Entry]
+-Encoding=UTF-8
+-Type=Link
+-URL=media:/
+-Icon=system
+-Name=Storage Media
+-Name[af]=Stoor Media
+-Name[ar]=وسائط التخزين
+-Name[be]=Носьбіт
+-Name[bg]=Съхраняващи устройства
+-Name[ca]=Suports d'emmagatzematge
+-Name[cs]=Úložná zařízení
+-Name[csb]=Zôpisowné media
+-Name[da]=Opbevaringsmedie
+-Name[de]=Speichermedien
+-Name[el]=Συσκευές αποθήκευσης
+-Name[eo]=Konservejo
+-Name[es]=Dispositivos de almacenamiento
+-Name[et]=Andmekandjad
+-Name[eu]=Biltegiratze-euskarria
+-Name[fa]=رسانۀ ذخیره‌گاه
+-Name[fi]=Tallennusmedia
+-Name[fr]=Support de stockage
+-Name[fy]=Opslachapparaten
+-Name[ga]=Meán Stórais
+-Name[gl]=Medios de armacenaxe
+-Name[he]=התקני אחסון
+-Name[hr]=Mediji za pohranjivanje
+-Name[hu]=Tárolóeszközök
+-Name[is]=Geymslumiðlar
+-Name[it]=Dispositivi di archiviazione
+-Name[ja]=記憶メディア
+-Name[ka]=მონაცემთა შენახვის მოწყობილობები
+-Name[kk]=Жинақтаушы құрылғылар
+-Name[km]=ឧបករណ៍​ផ្ទុក
+-Name[ko]=저장소 미디어
+-Name[lt]=Saugojimo įrenginiai
+-Name[lv]=Datu nesējs
+-Name[mk]=Медиуми за податоци
+-Name[ms]=Media Storan
+-Name[nb]=Lagringsenheter
+-Name[nds]=Spiekermedien
+-Name[ne]=भण्डारण मिडिया
+-Name[nl]=Opslagapparaten
+-Name[nn]=Lagringsmedium
+-Name[pa]=ਸਟੋਰੇਜ਼ ਮੀਡਿਆ
+-Name[pl]=Urządzenia przechowywania danych
+-Name[pt]=Dispositivos de Armazenamento
+-Name[pt_BR]=Mídia de Armazenamento
+-Name[ro]=Mediu de stocare
+-Name[ru]=Устройства хранения данных
+-Name[se]=Vurkenmedia
+-Name[sl]=Nosilci za shranjevanje
+-Name[sr]=Складишни медијуми
+-Name[sr at latin]=Skladišni medijumi
+-Name[sv]=Lagringsmedia
+-Name[ta]=சேகரிப்பு ஊடகம்
+-Name[th]=สื่อเก็บข้อมูล
+-Name[tr]=Depolama Ortamı
+-Name[uk]=Пристрої зберігання інформації
+-Name[uz]=Сақлаш ускуналари
+-Name[vi]=Vật chứa
+-Name[wa]=Sopoirts di wårdaedje
+-Name[x-test]=xxStorage Mediaxx
+-Name[zh_CN]=存储介质
+-Name[zh_TW]=儲存媒體
+-Open=false
+-X-KDE-TreeModule=Directory
+-X-KDE-KonqSidebarModule=konqsidebar_tree
+--- a/apps/konqueror/sidebar/trees/init/services/audiocd.desktop
++++ b/apps/konqueror/sidebar/trees/init/services/audiocd.desktop
+@@ -18,7 +18,7 @@
+ Name[el]=Περιηγητής CD ήχου
+ Name[eo]=Rigardilo por muzikaj lumdiskoj
+ Name[es]=Navegador de CD-Audio
+-Name[et]=Audio CD sirvija
++Name[et]=Audio-CD sirvija
+ Name[eu]=Audio CD arakatzailea
+ Name[fa]=مرورگر دیسک‌ فشردۀ صوتی
+ Name[fi]=Audio CD:n selain
+--- a/apps/konqueror/sidebar/trees/init/services/CMakeLists.txt
++++ b/apps/konqueror/sidebar/trees/init/services/CMakeLists.txt
+@@ -1,3 +1,3 @@
+ 
+-install( FILES .directory audiocd.desktop printsystem.desktop media.desktop settings.desktop applications.desktop  DESTINATION  ${DATA_INSTALL_DIR}/konqsidebartng/virtual_folders/services )
++install( FILES .directory audiocd.desktop printsystem.desktop settings.desktop applications.desktop  DESTINATION  ${DATA_INSTALL_DIR}/konqsidebartng/virtual_folders/services )
+ 
+--- a/apps/konqueror/sidebar/trees/init/remote/ftp/.directory
++++ b/apps/konqueror/sidebar/trees/init/remote/ftp/.directory
+@@ -7,6 +7,7 @@
+ Name[de]=FTP-Archive
+ Name[el]=Αρχειοθήκες FTP
+ Name[es]=Archivos FTP
++Name[et]=FTP arhiivid
+ Name[fa]=بایگانیهای FTP
+ Name[ga]=Cartlanna FTP
+ Name[he]=ארכיוני FTP
+--- a/apps/konqueror/sidebar/trees/init/remote/ftp/kde_ftp.desktop
++++ b/apps/konqueror/sidebar/trees/init/remote/ftp/kde_ftp.desktop
+@@ -34,7 +34,7 @@
+ Name[ja]=KDE 公式 FTP
+ Name[ka]=KDE-ს ძირითადი FTP სერვერი
+ Name[kk]=Негізгі KDE FTP сервері
+-Name[km]=KDE មាន FTP ជា​ផ្លូវ​ការ
++Name[km]=FTP ជា​ផ្លូវការ​របស់ KDE
+ Name[ko]=KDE 공식 FTP
+ Name[lt]=KDE oficialus FTP
+ Name[lv]=KDE Oficiālais FTP
+--- a/apps/konqueror/sidebar/trees/init/remote/web/.directory
++++ b/apps/konqueror/sidebar/trees/init/remote/web/.directory
+@@ -7,6 +7,7 @@
+ Name[de]=Webseiten
+ Name[el]=Ιστοσελίδες
+ Name[es]=Sitios web
++Name[et]=Veebileheküljed
+ Name[fa]=پایگاههای وب
+ Name[ga]=Suímh Ghréasáin
+ Name[he]=אתרי אינטרנט
+--- a/apps/konqueror/sidebar/trees/init/remote/web/kde_web.desktop
++++ b/apps/konqueror/sidebar/trees/init/remote/web/kde_web.desktop
+@@ -33,7 +33,7 @@
+ Name[ja]=KDE ホームページ
+ Name[ka]=KDE-ს ვებ გვერდი
+ Name[kk]=KDE веб-сайты
+-Name[km]=គេហ​ទំព័រ KDE
++Name[km]=គេហ​ទំព័រ​របស់ KDE
+ Name[ko]=KDE 홈페이지
+ Name[lt]=KDE namų puslapis
+ Name[lv]=KDE Mājas Lapa
+--- a/apps/konqueror/sidebar/trees/init/root.desktop
++++ b/apps/konqueror/sidebar/trees/init/root.desktop
+@@ -2,7 +2,7 @@
+ Encoding=UTF-8
+ Type=Link
+ URL=file:/
+-Icon=folder_red
++Icon=folder
+ Name=Root Folder
+ Name[af]=Basis Gids
+ Name[ar]=مجلد الجذر
+@@ -100,7 +100,7 @@
+ Comment[kk]=Файл жүйесінің түбірі
+ Comment[km]=នេះ​ជា​ Root របស់​ប្រព័ន្ធ​ឯកសារ
+ Comment[ko]=파일 시스템의 루트입니다
+-Comment[lt]=Tai yra bylų sistemos pradžia
++Comment[lt]=Tai yra failų sistemos root
+ Comment[lv]=Šī ir failusistēmas sakne
+ Comment[mk]=Ова е коренот на датотечниот системот
+ Comment[ms]=Ini ialah root bagi sistem fail
+--- a/apps/konqueror/sidebar/trees/init/CMakeLists.txt
++++ b/apps/konqueror/sidebar/trees/init/CMakeLists.txt
+@@ -6,5 +6,5 @@
+ install( FILES home.desktop root.desktop history.desktop bookmarks.desktop                   services.desktop remote.desktop  DESTINATION  ${DATA_INSTALL_DIR}/konqsidebartng/kicker_entries )
+ install( FILES history_module.desktop dirtree_module.desktop bookmarks_module.desktop  DESTINATION  ${DATA_INSTALL_DIR}/konqsidebartng/dirtree )
+ install( FILES virtualfolderadd.desktop   DESTINATION  ${DATA_INSTALL_DIR}/konqsidebartng/add )
+-install( FILES home.desktop root.desktop history.desktop bookmarks.desktop                   services.desktop remote.desktop system.desktop  DESTINATION  ${DATA_INSTALL_DIR}/konqsidebartng/entries )
++install( FILES home.desktop root.desktop history.desktop bookmarks.desktop                   services.desktop remote.desktop DESTINATION  ${DATA_INSTALL_DIR}/konqsidebartng/entries )
+ 
+--- a/apps/konqueror/sidebar/trees/history_module/kcmhistory.desktop
++++ b/apps/konqueror/sidebar/trees/history_module/kcmhistory.desktop
+@@ -3,7 +3,7 @@
+ Icon=history
+ Type=Service
+ ServiceTypes=KCModule
+-Exec=kcmshell kcmhistory
++Exec=kcmshell4 kcmhistory
+ 
+ X-KDE-Library=kcm_history
+ X-KDE-ParentApp=kcontrol
+--- a/apps/konqueror/sidebar/trees/history_module/history_module.cpp
++++ b/apps/konqueror/sidebar/trees/history_module/history_module.cpp
+@@ -299,7 +299,7 @@
+ void KonqSidebarHistoryModule::slotPreferences()
+ {
+     // Run the history sidebar settings.
+-    KRun::run( "kcmshell kcmhistory", KUrl::List(), tree());
++    KRun::run( "kcmshell4 kcmhistory", KUrl::List(), tree());
+ }
+ 
+ void KonqSidebarHistoryModule::slotSortByName()
+--- a/apps/konqueror/sidebar/konq_sidebartng.desktop
++++ b/apps/konqueror/sidebar/konq_sidebartng.desktop
+@@ -17,7 +17,7 @@
+ Name[el]=Πλαίσιο πλοήγησης
+ Name[eo]=Navigila panelo
+ Name[es]=Panel de navegación
+-Name[et]=Liikumise paneel
++Name[et]=Liikumispaneel
+ Name[eu]=Arakaketa panela
+ Name[fa]=تابلوی ناوش
+ Name[fi]=Navigointipaneeli
+--- a/apps/konqueror/sidebar/sidebar_widget.cpp
++++ b/apps/konqueror/sidebar/sidebar_widget.cpp
+@@ -196,7 +196,7 @@
+ 				if (!myFile.isEmpty())
+ 				{
+ 					kDebug() <<"trying to save to file: "<<myFile;
+-					KConfig _scf( myFile, KConfig::OnlyLocal );
++					KConfig _scf( myFile, KConfig::SimpleConfig );
+ 					KConfigGroup scf(&_scf, "Desktop Entry");
+ 					for (QMap<QString,QString>::ConstIterator it = map.begin(); it != map.end(); ++it) {
+ 						kDebug() <<"writing:"<<it.key()<<" / "<<it.value();
+@@ -332,7 +332,7 @@
+ 	// Go through list to see which ones exist.  Check them for the URL
+ 	QStringList files = QDir(list).entryList("websidebarplugin*.desktop");
+ 	for (QStringList::Iterator it = files.begin(); it != files.end(); ++it){
+-		KConfig _scf( list + *it, KConfig::OnlyLocal );
++		KConfig _scf( list + *it, KConfig::SimpleConfig );
+ 		KConfigGroup scf(&_scf, "Desktop Entry");
+ 		if (scf.readPathEntry("URL", QString()) == url.url()) {
+ 			// We already have this one!
+@@ -346,7 +346,7 @@
+ 	QString myFile = findFileName(&tmpl,m_universalMode,m_currentProfile);
+ 
+ 	if (!myFile.isEmpty()) {
+-		KConfig _scf( myFile, KConfig::OnlyLocal );
++		KConfig _scf( myFile, KConfig::SimpleConfig );
+ 		KConfigGroup scf(&_scf, "Desktop Entry");
+ 		scf.writeEntry("Type", "Link");
+ 		scf.writePathEntry("URL", url.url());
+@@ -423,7 +423,7 @@
+ 		return; //oups;
+ 
+ 	int nVersion=-1;
+-	KConfig lcfg(m_path+".version", KConfig::OnlyLocal);
++	KConfig lcfg(m_path+".version", KConfig::SimpleConfig);
+ 	KConfigGroup generalGroup( &lcfg, "General" );
+ 	int lVersion = generalGroup.readEntry("Version",0);
+ 
+@@ -437,7 +437,7 @@
+ 
+ 	        if ( !dirtree_dir.isEmpty() && dirtree_dir != m_path )
+         	{
+-			KConfig gcfg(dirtree_dir+".version", KConfig::OnlyLocal);
++			KConfig gcfg(dirtree_dir+".version", KConfig::SimpleConfig);
+ 			KConfigGroup dirGeneralGroup( &gcfg, "General" );
+ 			int gversion = dirGeneralGroup.readEntry("Version", 1);
+ 			nVersion=(nVersion>gversion)?nVersion:gversion;
+@@ -491,9 +491,9 @@
+ 	if(ok)
+ 	{
+ 		// Write the name in the .desktop file of this side button.
+-		KConfig _ksc( m_path+m_currentButton->file, KConfig::OnlyLocal );
++		KConfig _ksc( m_path+m_currentButton->file, KConfig::SimpleConfig );
+ 		KConfigGroup ksc(&_ksc, "Desktop Entry");
+-		ksc.writeEntry("Name", name, KConfigBase::NLS /*localized*/ );
++		ksc.writeEntry("Name", name, KConfigBase::Localized);
+ 		ksc.sync();
+ 
+ 		// Update the buttons with a QTimer (why?)
+@@ -507,7 +507,7 @@
+ 	dlg.fileDialog()->setMode( KFile::Directory );
+ 	if (dlg.exec())
+ 	{
+-		KConfig _ksc( m_path+m_currentButton->file, KConfig::OnlyLocal );
++		KConfig _ksc( m_path+m_currentButton->file, KConfig::SimpleConfig );
+ 		KConfigGroup ksc(&_ksc, "Desktop Entry");
+ 		if ( !dlg.selectedUrl().isValid())
+ 		{
+@@ -532,7 +532,7 @@
+ 	kDebug()<<"New Icon Name:"<<iconname;
+ 	if (!iconname.isEmpty())
+ 	{
+-		KConfig _ksc( m_path+m_currentButton->file, KConfig::OnlyLocal );
++		KConfig _ksc( m_path+m_currentButton->file, KConfig::SimpleConfig );
+ 		KConfigGroup ksc(&_ksc, "Desktop Entry");
+ 		ksc.writeEntry("Icon",iconname);
+ 		ksc.sync();
+@@ -773,7 +773,7 @@
+ 	kDebug() << "addButton:" << (m_path+desktoppath);
+ 
+ 	confFile = new KConfigGroup(
+-	    KSharedConfig::openConfig(m_path+desktoppath, KConfig::OnlyLocal),
++	    KSharedConfig::openConfig(m_path+desktoppath, KConfig::SimpleConfig),
+ 	    "Desktop Entry");
+ 
+     	QString icon = confFile->readEntry("Icon");
+@@ -892,7 +892,7 @@
+ 	bool ret = true;
+ 	KConfigGroup *confFile;
+ 	confFile = new KConfigGroup(
+-	    KSharedConfig::openConfig(data->file, KConfig::OnlyLocal),
++	    KSharedConfig::openConfig(data->file, KConfig::SimpleConfig),
+ 	    "Desktop Entry");
+ 
+ 	data->dock = m_area->createDockWidget(confFile->readEntry("Name",i18n("Unknown")),QString());
+@@ -1142,8 +1142,8 @@
+     if (doEnableActions()) {
+         KParts::OpenUrlArguments args;
+         args.setMimeType(mimeType);
+-		getExtension()->popupMenu(global,url,mode, args);
+-        }
++        getExtension()->popupMenu(global,url,mode, args);
++    }
+ }
+ 
+ void Sidebar_Widget::connectModule(QObject *mod)
+@@ -1165,7 +1165,7 @@
+ 	if (mod->metaObject()->indexOfSignal("popupMenu(QPoint,KUrl,QString,mode_t)") != -1) {
+ 		connect(mod,SIGNAL(popupMenu( const QPoint &,
+ 			const KUrl &,const QString &, mode_t)),this,
+-			SLOT(popupMenu( KXMLGUIClient *, const QPoint &,
++			SLOT(popupMenu( const QPoint &,
+ 			const KUrl &,const QString &, mode_t)));
+ 	}
+ 
+--- a/apps/konqueror/sidebar/konqsidebarplugin.h
++++ b/apps/konqueror/sidebar/konqsidebarplugin.h
+@@ -90,13 +90,7 @@
+ 
+ 		void enableAction( const char * name, bool enabled );
+ 
+-		void popupMenu( const QPoint &global, const KFileItemList &items );
+-  		void popupMenu( KXMLGUIClient *client, const QPoint &global, const KFileItemList &items );
+-		void popupMenu( const QPoint &global, const KUrl &url,
+-			const QString &mimeType, mode_t mode = (mode_t)-1 );
+-		void popupMenu( KXMLGUIClient *client,
+-			const QPoint &global, const KUrl &url,
+-			const QString &mimeType, mode_t mode = (mode_t)-1 );
++		void popupMenu( ... );
+ 
+ 		void showError(QString &);	//for later extension
+ 		void showMessage(QString &);	//for later extension
+--- a/apps/konqueror/about/tips.html
++++ b/apps/konqueror/about/tips.html
+@@ -108,11 +108,9 @@
+             <!--Advanced users will appreciate the konsole which you can embed into
+                                  konqueror (Window -> Show Terminal Emulator).--></li>
+ 
+-            <li>%22
+-            <!--Thanks to DCOP you can have full control over Konqueror using a script.--></li>
+           </ul>
+ 
+-          <p id="nextlink"><a href="specs.html">%23&nbsp;%24
++          <p id="nextlink"><a href="specs.html">%22&nbsp;%23
+           <!-- Continue --></a></p>
+         </div>
+       </div>
+--- a/apps/konqueror/about/konq_aboutpage.cc
++++ b/apps/konqueror/about/konq_aboutpage.cc
+@@ -256,12 +256,12 @@
+           .arg( i18n("<A HREF=\"%1\">Cascading Style Sheets</A> (CSS 1, partially CSS 2)", QString("http://www.w3.org/Style/CSS/")) )
+           .arg( i18n("built-in") )
+           .arg( i18n("<A HREF=\"%1\">ECMA-262</A> Edition 3 (roughly equals JavaScript 1.5)", QString("http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM")) )
+-          .arg( i18n("JavaScript disabled (globally). Enable JavaScript <A HREF=\"%1\">here</A>.", QString("exec:/kcmshell khtml_java_js")) )
+-          .arg( i18n("JavaScript enabled (globally). Configure JavaScript <A HREF=\\\"%1\\\">here</A>.", QString("exec:/kcmshell khtml_java_js")) ) // leave the double backslashes here, they are necessary for javascript !
++          .arg( i18n("JavaScript disabled (globally). Enable JavaScript <A HREF=\"%1\">here</A>.", QString("exec:/kcmshell4 khtml_java_js")) )
++          .arg( i18n("JavaScript enabled (globally). Configure JavaScript <A HREF=\\\"%1\\\">here</A>.", QString("exec:/kcmshell4 khtml_java_js")) ) // leave the double backslashes here, they are necessary for javascript !
+           .arg( i18n("Secure <A HREF=\"%1\">Java</A><SUP>&reg;</SUP> support", QString("http://java.sun.com")) )
+           .arg( i18n("JDK 1.2.0 (Java 2) compatible VM (<A HREF=\"%1\">Blackdown</A>, <A HREF=\"%2\">IBM</A> or <A HREF=\"%3\">Sun</A>)",
+                        QString("http://www.blackdown.org"), QString("http://www.ibm.com"), QString("http://java.sun.com")) )
+-          .arg( i18n("Enable Java (globally) <A HREF=\"%1\">here</A>.", QString("exec:/kcmshell khtml_java_js")) ) // TODO Maybe test if Java is enabled ?
++          .arg( i18n("Enable Java (globally) <A HREF=\"%1\">here</A>.", QString("exec:/kcmshell4 khtml_java_js")) ) // TODO Maybe test if Java is enabled ?
+           .arg( i18n("Netscape Communicator<SUP>&reg;</SUP> <A HREF=\"%4\">plugins</A> (for viewing <A HREF=\"%1\">Flash<SUP>&reg;</SUP></A>, <A HREF=\"%2\">Real<SUP>&reg;</SUP></A>Audio, <A HREF=\"%3\">Real<SUP>&reg;</SUP></A>Video, etc.)",
+                        QString("http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"),
+                        QString("http://www.real.com"), QString("http://www.real.com"),
+@@ -281,7 +281,7 @@
+           .arg( i18n("Transfer protocols") )
+           .arg( i18n("HTTP 1.1 (including gzip/bzip2 compression)") )
+           .arg( i18n("FTP") )
+-          .arg( i18n("and <A HREF=\"%1\">many more...</A>", QString("exec:/kcmshell ioslaveinfo")) )
++          .arg( i18n("and <A HREF=\"%1\">many more...</A>", QString("exec:/kcmshell4 ioslaveinfo")) )
+           .arg( i18n("URL-Completion") )
+           .arg( i18n("Manual"))
+ 	  .arg( i18n("Popup"))
+@@ -313,9 +313,9 @@
+     QString openterm_icon_path =
+ 	    iconloader->iconPath("openterm", KIconLoader::Small );
+     QString locationbar_erase_rtl_icon_path =
+-	    iconloader->iconPath("clear-left", KIconLoader::Small );
++	    iconloader->iconPath("edit-clear-locationbar-rtl", KIconLoader::Small );
+     QString locationbar_erase_icon_path =
+-	    iconloader->iconPath("locationbar-erase", KIconLoader::Small );
++	    iconloader->iconPath("edit-clear-locationbar", KIconLoader::Small );
+     QString window_fullscreen_icon_path =
+ 	    iconloader->iconPath("view-fullscreen", KIconLoader::Small );
+     QString view_left_right_icon_path =
+@@ -341,7 +341,7 @@
+ 		      "using Google, for the search phrase \"KDE\". There are a lot of "
+ 		      "Web-Shortcuts predefined to make searching for software or looking "
+ 		      "up certain words in an encyclopedia a breeze. You can even "
+-                      "<a href=\"%1\">create your own</a> Web-Shortcuts." , QString("exec:/kcmshell ebrowsing")) )
++                      "<a href=\"%1\">create your own</a> Web-Shortcuts." , QString("exec:/kcmshell4 ebrowsing")) )
+ 	  .arg( i18n( "Use the magnifier button <img width='16' height='16' src=\"%1\"></img> in the"
+ 		      " toolbar to increase the font size on your web page.", viewmag_icon_path) )
+ 	  .arg( i18n( "When you want to paste a new address into the Location toolbar you might want to "
+@@ -361,16 +361,14 @@
+ 		      ", or create your own ones." , view_left_right_icon_path))
+ 	  .arg( i18n( "Use the <a href=\"%1\">user-agent</a> feature if the website you are visiting "
+                       "asks you to use a different browser "
+-		      "(and do not forget to send a complaint to the webmaster!)" , QString("exec:/kcmshell useragent")) )
++		      "(and do not forget to send a complaint to the webmaster!)" , QString("exec:/kcmshell4 useragent")) )
+ 	  .arg( i18n( "The <img width='16' height='16' src=\"%1\"></img> History in your SideBar ensures "
+ 		      "that you can keep track of the pages you have visited recently.", history_icon_path) )
+ 	  .arg( i18n( "Use a caching <a href=\"%1\">proxy</a> to speed up your"
+-		      " Internet connection.", QString("exec:/kcmshell proxy")) )
++		      " Internet connection.", QString("exec:/kcmshell4 proxy")) )
+ 	  .arg( i18n( "Advanced users will appreciate the Konsole which you can embed into "
+ 		      "Konqueror (Window -> <img width='16' height='16' SRC=\"%1\"></img> Show "
+  		      "Terminal Emulator).", openterm_icon_path))
+-	  .arg( i18n( "Thanks to <a href=\"%1\">DCOP</a> you can have full control over Konqueror using a script."
+-, QString("exec:/kdcop")) )
+ 	  .arg( i18n( "<img width='16' height='16' src=\"%1\"></img>" ,  continue_icon_path ) )
+ 	  .arg( i18n( "Next: Specifications" ) )
+           ;
+--- a/apps/konqueror/shellcmdplugin/CMakeLists.txt
++++ b/apps/konqueror/shellcmdplugin/CMakeLists.txt
+@@ -7,7 +7,7 @@
+ kde4_add_plugin(konq_shellcmdplugin ${konq_shellcmdplugin_PART_SRCS})
+ 
+ 
+-target_link_libraries(konq_shellcmdplugin  konq ${KDE4_KDE3SUPPORT_LIBS} ${KDE4_KDESU_LIBS})
++target_link_libraries(konq_shellcmdplugin  konq ${KDE4_KDEUI_LIBS} ${KDE4_KDESU_LIBS} ${QT_QT3SUPPORT_LIBRARY})
+ 
+ install(TARGETS konq_shellcmdplugin  DESTINATION ${PLUGIN_INSTALL_DIR} )
+ 
+--- a/apps/konqueror/client/CMakeLists.txt
++++ b/apps/konqueror/client/CMakeLists.txt
+@@ -10,7 +10,7 @@
+ 
+ kde4_add_kdeinit_executable( kfmclient NOGUI ${kfmclient_SRCS})
+ 
+-target_link_libraries(kdeinit_kfmclient  ${KDE4_KDE3SUPPORT_LIBS} )
++target_link_libraries(kdeinit_kfmclient  ${KDE4_KIO_LIBS} )
+ 
+ install(TARGETS kdeinit_kfmclient  DESTINATION ${LIB_INSTALL_DIR} )
+ 
+--- a/apps/kdepasswd/kcm/kcm_useraccount.desktop
++++ b/apps/kdepasswd/kcm/kcm_useraccount.desktop
+@@ -9,7 +9,7 @@
+ Type=Service
+ ServiceTypes=KCModule
+ 
+-Exec=kcmshell kcm_useraccount
++Exec=kcmshell4 kcm_useraccount
+ Name=Password & User Account
+ Name[af]=Gebruiker rekening en Wagwoord
+ Name[ar]=كلمة السر و حساب المستخدم
+@@ -83,6 +83,7 @@
+ Keywords[de]=Passwort,E-Mail,Name,Organisation,Tatsächlicher Name,Login,Anmeldebild,Bild,Echomodus
+ Keywords[el]=κωδικός πρόσβασης;email;όνομα;οργανισμός;πραγματικό όνομα;εικόνα σύνδεσης;πρόσωπο; τρόπος εμφάνισης
+ Keywords[es]=contraseña;correo electrónico;nombre;organización;nombre real;imagen de acceso;cara;modo de eco;
++Keywords[et]=parool;email;e-kiri;nimi;organisatsioon;pärisnimi;kasutaja pilt;nägu; echo režiim;
+ Keywords[fa]=اسم رمز؛ رایانامه؛ نام؛ سازمان؛ نام واقعی؛ تصویر ورود؛ چهره؛ حالت پژواک؛
+ Keywords[ga]=focal faire;ríomhphost;ainm;eagras;fíorainm;íomhá logála isteach;aghaidh;mód macalla;
+ Keywords[he]=סיסמה;דוא"ל;שם;אירגון;שם משתמש;תמונה;פרצוף;password;email;name;organization;realname;login image;face; echo mode;
+--- a/apps/kfind/kftabdlg.cpp
++++ b/apps/kfind/kftabdlg.cpp
+@@ -417,7 +417,7 @@
+ {
+   KConfigGroup conf(KGlobal::config(), "History");
+   m_url = url;
+-  QStringList sl = conf.readPathListEntry("Directories");
++  QStringList sl = conf.readPathEntry("Directories", QStringList());
+   dirBox->clear(); // make sure there is no old Stuff in there
+ 
+   if(!sl.isEmpty()) {
+@@ -497,7 +497,7 @@
+   else
+     nameBox->addItem("*");
+ 
+-  sl = conf.readPathListEntry("Directories");
++  sl = conf.readPathEntry("Directories", QStringList());
+   if(!sl.isEmpty()) {
+     dirBox->addItems(sl);
+     // If the _searchPath already exists in the list we do not
+--- a/apps/kfind/kfind.desktop
++++ b/apps/kfind/kfind.desktop
+@@ -38,7 +38,7 @@
+ Name[kk]=Файлды не қапшықты табу
+ Name[km]=រក​ឯកសារ/ថត
+ Name[ko]=파일/폴더 찾기
+-Name[lt]=Rasti bylas/aplankus
++Name[lt]=Rasti failus/aplankus
+ Name[lv]=Meklēt Failus/Mapes
+ Name[mk]=Пронајди датотеки/папки
+ Name[ms]=Cari Fail/Folder
+--- a/apps/dolphin/src/statusbarspaceinfo.h
++++ b/apps/dolphin/src/statusbarspaceinfo.h
+@@ -22,9 +22,10 @@
+ 
+ #include <kurl.h>
+ 
+-#include <QtGui/QColor>
+-#include <QtGui/QKeyEvent>
+-#include <QtGui/QWidget>
++#include <QColor>
++#include <QKeyEvent>
++#include <QProgressBar>
++#include <QString>
+ 
+ class KDiskFreeSp;
+ 
+@@ -32,7 +33,7 @@
+  * @short Shows the available space for the volume represented
+  *        by the given URL as part of the status bar.
+  */
+-class StatusBarSpaceInfo : public QWidget
++class StatusBarSpaceInfo : public QProgressBar
+ {
+     Q_OBJECT
+ 
+@@ -41,38 +42,31 @@
+     virtual ~StatusBarSpaceInfo();
+ 
+     void setUrl(const KUrl& url);
+-    const KUrl& url() const
+-    {
+-        return m_url;
+-    }
+-
+-protected:
+-    /** @see QWidget::paintEvent() */
+-    virtual void paintEvent(QPaintEvent* event);
++    const KUrl& url() const;
++
++    /** @see QProgressBar::text() */
++    virtual QString text() const;
+ 
+ private slots:
+     void slotFoundMountPoint(const QString& mountPoint,
+                              quint64 kBSize,
+                              quint64 kBUsed,
+                              quint64 kBAvailable);
+-    void showResult();
+ 
+     /** Refreshes the space information for the current set URL. */
+     void refresh();
+ 
+-private:
+-    /**
+-     * Returns a color for the progress bar by respecting
+-     * the given background color \a bgColor. It is assured
+-     * that enough contrast is given to have a visual indication.
+-     */
+-    QColor progressColor(const QColor& bgColor) const;
++    void showGettingSizeInfo();
+ 
+ private:
+-    KUrl m_url;
+     bool m_gettingSize;
+-    quint64 m_kBSize;
+-    quint64 m_kBAvailable;
++    KUrl m_url;
++    QString m_text;
+ };
+ 
++inline const KUrl& StatusBarSpaceInfo::url() const
++{
++    return m_url;
++}
++
+ #endif
+--- a/apps/dolphin/src/dolphincontroller.h
++++ b/apps/dolphin/src/dolphincontroller.h
+@@ -49,6 +49,7 @@
+  * The communication of the view implementations to the abstract view is done by:
+  * - triggerContextMenuRequest()
+  * - requestActivation()
++ * - triggerUrlChangeRequest()
+  * - indicateDroppedUrls()
+  * - indicateSortingChange()
+  * - indicateSortOrderChanged()
+@@ -59,6 +60,7 @@
+  * - emitViewportEntered()
+  *
+  * The communication of the abstract view to the view implementations is done by:
++ * - setUrl()
+  * - setShowHiddenFiles()
+  * - setShowPreview()
+  * - setAdditionalInfoCount()
+@@ -74,11 +76,26 @@
+     explicit DolphinController(QObject* parent);
+     virtual ~DolphinController();
+ 
+-    /** Sets the URL to \a url and emits the signal urlChanged(). */
++    /**
++     * Sets the URL to \a url and emits the signal urlChanged() if
++     * \a url is different for the current URL. This method should
++     * be invoked by the abstract Dolphin view whenever the current
++     * URL has been changed.
++     */
+     void setUrl(const KUrl& url);
+     const KUrl& url() const;
+ 
+     /**
++     * Allows a view implementation to request an URL change to \a url.
++     * The signal requestUrlChange() is emitted and the abstract Dolphin view
++     * will assure that the URL of the Dolphin Controller will be updated
++     * later. Invoking this method makes only sense if the view implementation
++     * shows a hierarchy of URLs and allows to change the URL within
++     * the view (e. g. this is the case in the column view).
++     */
++    void triggerUrlChangeRequest(const KUrl& url);
++
++    /**
+      * Requests a context menu for the position \a pos. This method
+      * should be invoked by the view implementation when a context
+      * menu should be opened. The abstract Dolphin view itself
+@@ -216,6 +233,12 @@
+     void urlChanged(const KUrl& url);
+ 
+     /**
++     * Is emitted if the view implementation requests a changing of the current
++     * URL to \a url (see triggerUrlChangeRequest()).
++     */
++    void requestUrlChange(const KUrl& url);
++
++    /**
+      * Is emitted if a context menu should be opened (see triggerContextMenuRequest()).
+      * The abstract Dolphin view connects to this signal and will open the context menu.
+      * @param pos       Position relative to the view widget where the
+--- a/apps/dolphin/src/dolphincolumnview.cpp
++++ b/apps/dolphin/src/dolphincolumnview.cpp
+@@ -47,6 +47,7 @@
+     m_index(-1),
+     m_contentX(0),
+     m_columns(),
++    m_emptyViewport(0),
+     m_animation(0)
+ {
+     Q_ASSERT(controller != 0);
+@@ -55,9 +56,9 @@
+     setDragDropMode(QAbstractItemView::DragDrop);
+     setDropIndicatorShown(false);
+     setSelectionMode(ExtendedSelection);
++    setFocusPolicy(Qt::NoFocus);
++    setFrameShape(QFrame::NoFrame);
+ 
+-    connect(this, SIGNAL(entered(const QModelIndex&)),
+-            controller, SLOT(emitItemEntered(const QModelIndex&)));
+     connect(this, SIGNAL(viewportEntered()),
+             controller, SLOT(emitViewportEntered()));
+     connect(controller, SIGNAL(zoomIn()),
+@@ -81,6 +82,9 @@
+     m_columns.append(column);
+     setActiveColumnIndex(0);
+ 
++    m_emptyViewport = new QFrame(viewport());
++    m_emptyViewport->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
++
+     updateDecorationSize();
+     updateColumnsBackground(true);
+ }
+@@ -139,6 +143,18 @@
+     m_columns[0]->setUrl(url);
+ }
+ 
++void DolphinColumnView::setNameFilter(const QString& nameFilter)
++{
++    foreach (DolphinColumnWidget* column, m_columns) {
++        column->setNameFilter(nameFilter);
++    }
++}
++
++QString DolphinColumnView::nameFilter() const
++{
++    return activeColumn()->nameFilter();
++}
++
+ KUrl DolphinColumnView::rootUrl() const
+ {
+     return m_columns[0]->url();
+@@ -208,6 +224,10 @@
+             columnIndex++;
+ 
+             DolphinColumnWidget* column = new DolphinColumnWidget(viewport(), this, childUrl);
++            const QString filter = nameFilter();
++            if (!filter.isEmpty()) {
++                column->setNameFilter(filter);
++            }
+             column->setActive(false);
+ 
+             m_columns.append(column);
+@@ -263,12 +283,14 @@
+     case MoveLeft:
+         if (m_index > 0) {
+             setActiveColumnIndex(m_index - 1);
++            m_controller->triggerUrlChangeRequest(activeColumn()->url());
+         }
+         break;
+ 
+     case MoveRight:
+         if (m_index < m_columns.count() - 1) {
+             setActiveColumnIndex(m_index + 1);
++            m_controller->triggerUrlChangeRequest(m_columns[m_index]->url());
+         }
+         break;
+ 
+@@ -374,11 +396,8 @@
+     m_active = active;
+ 
+     // dim the background of the viewport
+-    QColor color = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
+-    color.setAlpha(150);
+-
+     QPalette palette;
+-    palette.setColor(viewport()->backgroundRole(), color);
++    palette.setColor(viewport()->backgroundRole(), QColor(0, 0, 0, 0));
+     viewport()->setPalette(palette);
+ 
+     foreach (DolphinColumnWidget* column, m_columns) {
+@@ -426,36 +445,45 @@
+     m_index = index;
+     m_columns[m_index]->setActive(true);
+ 
+-    m_controller->setUrl(m_columns[m_index]->url());
+-
+     assureVisibleActiveColumn();
+ }
+ 
+ void DolphinColumnView::layoutColumns()
+ {
++    const int gap = 4;
++
+     ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
+     const int columnWidth = settings->columnWidth();
++
++    QRect emptyViewportRect;
+     if (isRightToLeft()) {
+         int x = viewport()->width() - columnWidth + m_contentX;
+         foreach (DolphinColumnWidget* column, m_columns) {
+-            column->setGeometry(QRect(x, 0, columnWidth, viewport()->height()));
++            column->setGeometry(QRect(x, 0, columnWidth - gap, viewport()->height()));
+             x -= columnWidth;
+         }
++        emptyViewportRect = QRect(0, 0, x + columnWidth - gap, viewport()->height());
+     } else {
+         int x = m_contentX;
+         foreach (DolphinColumnWidget* column, m_columns) {
+-            column->setGeometry(QRect(x, 0, columnWidth, viewport()->height()));
++            column->setGeometry(QRect(x, 0, columnWidth - gap, viewport()->height()));
+             x += columnWidth;
+         }
++        emptyViewportRect = QRect(x, 0, viewport()->width() - x - gap, viewport()->height());
++    }
++
++    if (emptyViewportRect.isValid()) {
++        m_emptyViewport->show();
++        m_emptyViewport->setGeometry(emptyViewportRect);
++    } else {
++        m_emptyViewport->hide();
+     }
+ }
+ 
+ void DolphinColumnView::updateScrollBar()
+ {
+-    int contentWidth = 0;
+-    foreach (DolphinColumnWidget* column, m_columns) {
+-        contentWidth += column->width();
+-    }
++    ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
++    const int contentWidth = m_columns.count() * settings->columnWidth();
+ 
+     horizontalScrollBar()->setPageStep(contentWidth);
+     horizontalScrollBar()->setRange(0, contentWidth - viewport()->width());
+@@ -465,7 +493,10 @@
+ {
+     const int viewportWidth = viewport()->width();
+     const int x = activeColumn()->x();
+-    const int width = activeColumn()->width();
++
++    ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
++    const int width = settings->columnWidth();
++
+     if (x + width > viewportWidth) {
+         const int newContentX = m_contentX - x - width + viewportWidth;
+         if (isRightToLeft()) {
+--- a/apps/dolphin/src/dolphinpart.cpp
++++ b/apps/dolphin/src/dolphinpart.cpp
+@@ -18,6 +18,9 @@
+ */
+ 
+ #include "dolphinpart.h"
++#include <kactioncollection.h>
++#include <ktoggleaction.h>
++#include <QActionGroup>
+ #include "dolphinsortfilterproxymodel.h"
+ #include "dolphinview.h"
+ #include "dolphinmodel.h"
+@@ -67,6 +70,8 @@
+                              m_proxyModel);
+     setWidget(m_view);
+ 
++    setXMLFile("dolphinpart.rc");
++
+     connect(m_view, SIGNAL(infoMessage(QString)),
+             this, SLOT(slotInfoMessage(QString)));
+     connect(m_view, SIGNAL(errorMessage(QString)),
+@@ -77,11 +82,16 @@
+             this, SLOT(slotOpenContextMenu(KFileItem, const KUrl&)));
+     connect(m_view, SIGNAL(selectionChanged(KFileItemList)),
+             m_extension, SIGNAL(selectionInfo(KFileItemList)));
+-
+     connect(m_view, SIGNAL(requestItemInfo(KFileItem)),
+             this, SLOT(slotRequestItemInfo(KFileItem)));
++    connect(m_view, SIGNAL(urlChanged(const KUrl&)),
++            this, SLOT(slotUrlChanged(const KUrl&)));
++
++    createActions();
++    updateViewActions();
+ 
+-    // TODO provide a way to switch from iconview to listview (and others)
++    // TODO provide these actions in the menu, merged with the existing view-mode-actions somehow
++    // [Q_PROPERTY introspection?]
+ 
+     // TODO connect to urlsDropped
+ 
+@@ -102,6 +112,24 @@
+     delete m_dirLister;
+ }
+ 
++void DolphinPart::createActions()
++{
++    QActionGroup* viewModeActions = new QActionGroup(this);
++    viewModeActions->addAction(DolphinView::iconsModeAction(actionCollection()));
++    viewModeActions->addAction(DolphinView::detailsModeAction(actionCollection()));
++    viewModeActions->addAction(DolphinView::columnsModeAction(actionCollection()));
++    connect(viewModeActions, SIGNAL(triggered(QAction*)), this, SLOT(slotViewModeActionTriggered(QAction*)));
++}
++
++void DolphinPart::updateViewActions()
++{
++    QAction* action = actionCollection()->action(m_view->currentViewModeActionName());
++    if (action != 0) {
++        KToggleAction* toggleAction = static_cast<KToggleAction*>(action);
++        toggleAction->setChecked(true);
++    }
++}
++
+ KAboutData* DolphinPart::createAboutData()
+ {
+     return new KAboutData("dolphinpart", 0, ki18nc("@title", "Dolphin Part"), "0.1");
+@@ -191,4 +219,20 @@
+     emit m_extension->popupMenu( QCursor::pos(), items, KParts::OpenUrlArguments(), KParts::BrowserArguments(), popupFlags );
+ }
+ 
++void DolphinPart::slotViewModeActionTriggered(QAction* action)
++{
++    const DolphinView::Mode mode = action->data().value<DolphinView::Mode>();
++    m_view->setMode(mode);
++}
++
++void DolphinPart::slotUrlChanged(const KUrl& url)
++{
++    if (m_view->url() != url) {
++        // If the view URL is not equal to 'url', then an inner URL change has
++        // been done (e. g. by activating an existing column in the column view).
++        // From the hosts point of view this must be handled like changing the URL.
++        emit m_extension->openUrlRequest(url);
++    }
++}
++
+ #include "dolphinpart.moc"
+--- a/apps/dolphin/src/dolphincontextmenu.cpp
++++ b/apps/dolphin/src/dolphincontextmenu.cpp
+@@ -101,8 +101,8 @@
+ 
+     KMenu* popup = new KMenu(m_mainWindow);
+ 
+-    QAction* emptyTrashAction = new QAction(KIcon("emptytrash"), i18nc("@action:inmenu", "Empty Trash"), popup);
+-    KConfig trashConfig("trashrc", KConfig::OnlyLocal);
++    QAction* emptyTrashAction = new QAction(KIcon("trash-empty"), i18nc("@action:inmenu", "Empty Trash"), popup);
++    KConfig trashConfig("trashrc", KConfig::SimpleConfig);
+     emptyTrashAction->setEnabled(!trashConfig.group("Status").readEntry("Empty", true));
+     popup->addAction(emptyTrashAction);
+ 
+@@ -277,8 +277,7 @@
+     popup->addAction(renameAction);
+ 
+     // insert 'Move to Trash' and (optionally) 'Delete'
+-    const KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals);
+-    const KConfigGroup kdeConfig(globalConfig, "KDE");
++    KConfigGroup kdeConfig(KGlobal::config(), "KDE");
+     bool showDeleteCommand = kdeConfig.readEntry("ShowDeleteCommand", false);
+     const KUrl& url = m_mainWindow->activeViewContainer()->url();
+     if (url.isLocalFile()) {
+--- a/apps/dolphin/src/dolphinmainwindow.cpp
++++ b/apps/dolphin/src/dolphinmainwindow.cpp
+@@ -698,19 +698,11 @@
+     clearStatusBar();
+     m_activeViewContainer->view()->invertSelection();
+ }
+-void DolphinMainWindow::setIconsView()
+-{
+-    m_activeViewContainer->view()->setMode(DolphinView::IconsView);
+-}
+-
+-void DolphinMainWindow::setDetailsView()
+-{
+-    m_activeViewContainer->view()->setMode(DolphinView::DetailsView);
+-}
+ 
+-void DolphinMainWindow::setColumnView()
++void DolphinMainWindow::setViewMode(QAction* action)
+ {
+-    m_activeViewContainer->view()->setMode(DolphinView::ColumnView);
++    const DolphinView::Mode mode = action->data().value<DolphinView::Mode>();
++    m_activeViewContainer->view()->setMode(mode);
+ }
+ 
+ void DolphinMainWindow::sortByName()
+@@ -1104,7 +1096,7 @@
+ 
+     QAction* moveToTrash = actionCollection()->addAction("move_to_trash");
+     moveToTrash->setText(i18nc("@action:inmenu File", "Move to Trash"));
+-    moveToTrash->setIcon(KIcon("edit-trash"));
++    moveToTrash->setIcon(KIcon("user-trash"));
+     moveToTrash->setShortcut(QKeySequence::Delete);
+     connect(moveToTrash, SIGNAL(triggered()), this, SLOT(moveToTrash()));
+ 
+@@ -1149,28 +1141,16 @@
+                              SLOT(zoomOut()),
+                              actionCollection());
+ 
+-    KToggleAction* iconsView = actionCollection()->add<KToggleAction>("icons");
+-    iconsView->setText(i18nc("@action:inmenu View Mode", "Icons"));
+-    iconsView->setShortcut(Qt::CTRL | Qt::Key_1);
+-    iconsView->setIcon(KIcon("fileview-icon"));
+-    connect(iconsView, SIGNAL(triggered()), this, SLOT(setIconsView()));
+-
+-    KToggleAction* detailsView = actionCollection()->add<KToggleAction>("details");
+-    detailsView->setText(i18nc("@action:inmenu View Mode", "Details"));
+-    detailsView->setShortcut(Qt::CTRL | Qt::Key_2);
+-    detailsView->setIcon(KIcon("fileview-detailed"));
+-    connect(detailsView, SIGNAL(triggered()), this, SLOT(setDetailsView()));
+-
+-    KToggleAction* columnView = actionCollection()->add<KToggleAction>("columns");
+-    columnView->setText(i18nc("@action:inmenu View Mode", "Columns"));
+-    columnView->setShortcut(Qt::CTRL | Qt::Key_3);
+-    columnView->setIcon(KIcon("fileview-column"));
+-    connect(columnView, SIGNAL(triggered()), this, SLOT(setColumnView()));
++
++    KToggleAction* iconsView = DolphinView::iconsModeAction(actionCollection());
++    KToggleAction* detailsView = DolphinView::detailsModeAction(actionCollection());
++    KToggleAction* columnView = DolphinView::columnsModeAction(actionCollection());
+ 
+     QActionGroup* viewModeGroup = new QActionGroup(this);
+     viewModeGroup->addAction(iconsView);
+     viewModeGroup->addAction(detailsView);
+     viewModeGroup->addAction(columnView);
++    connect(viewModeGroup, SIGNAL(triggered(QAction*)), this, SLOT(setViewMode(QAction*)));
+ 
+     KToggleAction* sortByName = actionCollection()->add<KToggleAction>("sort_by_name");
+     sortByName->setText(i18nc("@action:inmenu Sort By", "Name"));
+@@ -1390,22 +1370,23 @@
+         terminalDock->hide();
+     }
+ 
+-    QDockWidget *placesDock = new QDockWidget(i18nc("@title:window", "Places"));
++    QDockWidget* placesDock = new QDockWidget(i18nc("@title:window", "Places"));
+     placesDock->setObjectName("placesDock");
+     placesDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
+-    KFilePlacesView *listView = new KFilePlacesView(placesDock);
+-    placesDock->setWidget(listView);
+-    listView->setModel(DolphinSettings::instance().placesModel());
++    KFilePlacesView* placesView = new KFilePlacesView(placesDock);
++    placesDock->setWidget(placesView);
++    placesView->setModel(DolphinSettings::instance().placesModel());
++    placesView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ 
+     placesDock->toggleViewAction()->setText(i18nc("@title:window", "Places"));
+     placesDock->toggleViewAction()->setShortcut(Qt::Key_F9);
+     actionCollection()->addAction("show_places_panel", placesDock->toggleViewAction());
+ 
+     addDockWidget(Qt::LeftDockWidgetArea, placesDock);
+-    connect(listView, SIGNAL(urlChanged(KUrl)),
++    connect(placesView, SIGNAL(urlChanged(KUrl)),
+             this, SLOT(changeUrl(KUrl)));
+     connect(this, SIGNAL(urlChanged(KUrl)),
+-            listView, SLOT(setUrl(KUrl)));
++            placesView, SLOT(setUrl(KUrl)));
+ }
+ 
+ void DolphinMainWindow::updateHistory()
+@@ -1469,21 +1450,7 @@
+         zoomOutAction->setEnabled(view->isZoomOutPossible());
+     }
+ 
+-    QAction* action = 0;
+-    switch (view->mode()) {
+-    case DolphinView::IconsView:
+-        action = actionCollection()->action("icons");
+-        break;
+-    case DolphinView::DetailsView:
+-        action = actionCollection()->action("details");
+-        break;
+-    case DolphinView::ColumnView:
+-        action = actionCollection()->action("columns");
+-        break;
+-    default:
+-        break;
+-    }
+-
++    QAction* action = actionCollection()->action(view->currentViewModeActionName());
+     if (action != 0) {
+         KToggleAction* toggleAction = static_cast<KToggleAction*>(action);
+         toggleAction->setChecked(true);
+--- a/apps/dolphin/src/kcategorizedview_p.h
++++ b/apps/dolphin/src/kcategorizedview_p.h
+@@ -112,6 +112,8 @@
+       */
+     void drawDraggedItems();
+ 
++    void layoutChanged(bool forceItemReload = false);
++
+ 
+     // Attributes
+ 
+@@ -149,6 +151,11 @@
+     QModelIndexList intersectedIndexes;
+     QRect lastDraggedItemsRect;
+     QRect lastSelectionRect;
++    int modelSortRole;
++    int modelSortColumn;
++    int modelLastRowCount;
++    bool modelCategorized;
++    Qt::SortOrder modelSortOrder;
+ 
+     // Attributes for speed reasons
+     KCategorizedSortFilterProxyModel *proxyModel;
+--- a/apps/dolphin/src/dolphindetailsview.cpp
++++ b/apps/dolphin/src/dolphindetailsview.cpp
+@@ -120,6 +120,8 @@
+ #endif
+ 
+     updateDecorationSize();
++
++    setFocus();
+ }
+ 
+ DolphinDetailsView::~DolphinDetailsView()
+--- a/apps/dolphin/src/dolphinviewcontainer.h
++++ b/apps/dolphin/src/dolphinviewcontainer.h
+@@ -145,10 +145,10 @@
+     void updateProgress(int percent);
+ 
+     /**
+-     * Updates the number of items (= number of directories + number of files)
+-     * and shows this information in the statusbar.
++     * Assures that the viewport position is restored and updates the
++     * statusbar to reflect the current content.
+      */
+-    void updateItemCount();
++    void slotDirListerCompleted();
+ 
+     /**
+      * Handles clicking on an item
+@@ -173,7 +173,7 @@
+      * Filters the currently shown items by \a nameFilter. All items
+      * which contain the given filter string will be shown.
+      */
+-    void changeNameFilter(const QString& nameFilter);
++    void setNameFilter(const QString& nameFilter);
+ 
+     /**
+      * Opens the context menu on the current mouse position.
+@@ -229,10 +229,6 @@
+ private:
+     bool m_showProgress;
+ 
+-    int m_iconSize;
+-    int m_folderCount;
+-    int m_fileCount;
+-
+     DolphinMainWindow* m_mainWindow;
+     QVBoxLayout* m_topLayout;
+     KUrlNavigator* m_urlNavigator;
+--- a/apps/dolphin/src/dolphincontroller.cpp
++++ b/apps/dolphin/src/dolphincontroller.cpp
+@@ -44,6 +44,13 @@
+     }
+ }
+ 
++void DolphinController::triggerUrlChangeRequest(const KUrl& url)
++{
++    if (m_url != url) {
++        emit requestUrlChange(url);
++    }
++}
++
+ void DolphinController::triggerContextMenuRequest(const QPoint& pos)
+ {
+     emit activated();
+--- a/apps/dolphin/src/dolphinpart.desktop
++++ b/apps/dolphin/src/dolphinpart.desktop
+@@ -8,6 +8,7 @@
+ Name[de]=Dolphin-Komponente
+ Name[el]=Τμήμα Dolphin
+ Name[es]=Part Dolphin
++Name[et]=Dolphini komponent
+ Name[ga]=Comhpháirt Dolphin
+ Name[he]=רכיב Dolphin
+ Name[it]=Componente Dolphin
+@@ -23,6 +24,7 @@
+ Name[pa]=ਡਾਲਫਿਨ ਭਾਗ
+ Name[pt]=Componente do Dolphin
+ Name[pt_BR]=Componente Dolphin
++Name[ru]=Встраиваемый компонент Dolphin
+ Name[sr]=Делфин део
+ Name[sr at latin]=Delfin deo
+ Name[sv]=Dolphin-delprogram
+--- a/apps/dolphin/src/dolphincolumnview.h
++++ b/apps/dolphin/src/dolphincolumnview.h
+@@ -24,12 +24,14 @@
+ 
+ #include <QAbstractItemView>
+ #include <QList>
++#include <QString>
+ #include <QStyleOption>
+ 
+ class DolphinColumnWidget;
+ class DolphinController;
+ class DolphinModel;
+ class QAbstractProxyModel;
++class QFrame;
+ class QTimeLine;
+ 
+ /**
+@@ -69,6 +71,18 @@
+     /** Returns the URL of the first column. */
+     KUrl rootUrl() const;
+ 
++    /**
++     * Filters the currently shown items by \a nameFilter. All items
++     * which contain the given filter string will be shown.
++     */
++    void setNameFilter(const QString& nameFilter);
++
++    /**
++     * Returns the currently used name filter. All items
++     * which contain the name filter will be shown.
++     */
++    QString nameFilter() const;
++
+ public slots:
+     /**
+      * Shows the column which represents the URL \a url. If the column
+@@ -156,6 +170,7 @@
+     int m_index;
+     int m_contentX;
+     QList<DolphinColumnWidget*> m_columns;
++    QFrame* m_emptyViewport;
+     QTimeLine* m_animation;
+ 
+     friend class DolphinColumnWidget;
+--- a/apps/dolphin/src/dolphinui.rc
++++ b/apps/dolphin/src/dolphinui.rc
+@@ -121,6 +121,6 @@
+   <Action name="split_view" />
+  </ToolBar>
+  <ActionProperties>
+-  <Action shortcut="Backspace;XF86Back" name="go_back" />
++  <Action shortcut="Backspace; XF86Back" name="go_back" />
+  </ActionProperties>
+ </kpartgui>
+--- a/apps/dolphin/src/treeviewsidebarpage.cpp
++++ b/apps/dolphin/src/treeviewsidebarpage.cpp
+@@ -89,8 +89,6 @@
+         m_dirLister->setDelayedMimeTypes(true);
+         m_dirLister->setAutoErrorHandlingEnabled(false, this);
+ 
+-        connect(m_dirLister, SIGNAL(started(const KUrl&)),
+-                this, SLOT(slotDirListerStarted(const KUrl&)));
+         connect(m_dirLister, SIGNAL(completed()),
+                 this, SLOT(triggerLoadSubTree()));
+ 
+--- a/apps/dolphin/src/infosidebarpage.cpp
++++ b/apps/dolphin/src/infosidebarpage.cpp
+@@ -77,8 +77,9 @@
+ 
+     // general information
+     m_infoLabel = new QLabel(this);
+-    m_infoLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
++    m_infoLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
+     m_infoLabel->setTextFormat(Qt::RichText);
++    m_infoLabel->setWordWrap(true);
+ 
+     if (MetaDataWidget::metaDataAvailable()) {
+         m_metadataWidget = new MetaDataWidget(this);
+--- a/apps/dolphin/src/dolphiniconsview.cpp
++++ b/apps/dolphin/src/dolphiniconsview.cpp
+@@ -99,6 +99,8 @@
+ 
+     m_categoryDrawer = new DolphinCategoryDrawer();
+     setCategoryDrawer(m_categoryDrawer);
++
++    setFocus();
+ }
+ 
+ DolphinIconsView::~DolphinIconsView()
+--- a/apps/dolphin/src/treeviewcontextmenu.cpp
++++ b/apps/dolphin/src/treeviewcontextmenu.cpp
+@@ -75,12 +75,11 @@
+     popup->addAction(renameAction);
+ 
+     // insert 'Move to Trash' and (optionally) 'Delete'
+-    const KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals);
+-    const KConfigGroup kdeConfig(globalConfig, "KDE");
++    KConfigGroup kdeConfig(KGlobal::config(), "KDE");
+     bool showDeleteCommand = kdeConfig.readEntry("ShowDeleteCommand", false);
+     const KUrl& url = m_fileInfo.url();
+     if (url.isLocalFile()) {
+-        QAction* moveToTrashAction = new QAction(KIcon("edit-trash"),
++        QAction* moveToTrashAction = new QAction(KIcon("user-trash"),
+                                                  i18nc("@action:inmenu", "Move To Trash"), this);
+         connect(moveToTrashAction, SIGNAL(triggered()), this, SLOT(moveToTrash()));
+         popup->addAction(moveToTrashAction);
+--- a/apps/dolphin/src/dolphinview.cpp
++++ b/apps/dolphin/src/dolphinview.cpp
+@@ -19,6 +19,8 @@
+  ***************************************************************************/
+ 
+ #include "dolphinview.h"
++#include <ktoggleaction.h>
++#include <kactioncollection.h>
+ 
+ #include <QApplication>
+ #include <QClipboard>
+@@ -88,8 +90,16 @@
+ 
+     m_controller = new DolphinController(this);
+     m_controller->setUrl(url);
++
++    // Receiver of the DolphinView signal 'urlChanged()' don't need
++    // to care whether the internal controller changed the URL already or whether
++    // the controller just requested an URL change and will be updated later.
++    // In both cases the URL has been changed:
+     connect(m_controller, SIGNAL(urlChanged(const KUrl&)),
+             this, SIGNAL(urlChanged(const KUrl&)));
++    connect(m_controller, SIGNAL(requestUrlChange(const KUrl&)),
++            this, SIGNAL(urlChanged(const KUrl&)));
++
+     connect(m_controller, SIGNAL(requestContextMenu(const QPoint&)),
+             this, SLOT(openContextMenu(const QPoint&)));
+     connect(m_controller, SIGNAL(urlsDropped(const KUrl::List&, const KUrl&, const QModelIndex&, QWidget*)),
+@@ -194,7 +204,6 @@
+     const bool categorized = m_storedCategorizedSorting && supportsCategorizedSorting();
+     if (categorized != m_proxyModel->isCategorizedModel()) {
+         m_proxyModel->setCategorizedModel(categorized);
+-        m_proxyModel->sort(m_proxyModel->sortColumn(), m_proxyModel->sortOrder());
+         emit categorizedSortingChanged();
+     }
+ 
+@@ -263,7 +272,6 @@
+ 
+     m_storedCategorizedSorting = categorized;
+     m_proxyModel->setCategorizedModel(categorized);
+-    m_proxyModel->sort(m_proxyModel->sortColumn(), m_proxyModel->sortOrder());
+ 
+     emit categorizedSortingChanged();
+ }
+@@ -466,18 +474,11 @@
+         return;
+     }
+ 
+-    const bool restoreColumnView =  !rootUrl.isEmpty()
+-                                    && !rootUrl.equals(url, KUrl::CompareWithoutTrailingSlash)
+-                                    && rootUrl.isParentOf(url);
+-
+     m_controller->setUrl(url); // emits urlChanged, which we forward
+ 
+-    if (restoreColumnView) {
++    if (!rootUrl.isEmpty() && rootUrl.isParentOf(url)) {
+         applyViewProperties(rootUrl);
+         loadDirectory(rootUrl);
+-        // Restoring the column view relies on the URL-history. It might be possible
+-        // that the view properties have been changed or deleted in the meantime, so
+-        // it cannot be asserted that really a column view has been created:
+         if (itemView() == m_columnView) {
+             m_columnView->setRootUrl(rootUrl);
+             m_columnView->showColumn(url);
+@@ -487,11 +488,41 @@
+         loadDirectory(url);
+     }
+ 
+-    itemView()->setFocus();
+-
+     emit startedPathLoading(url);
+ }
+ 
++void DolphinView::setNameFilter(const QString& nameFilter)
++{
++    // The name filter of KDirLister does a 'hard' filtering, which
++    // means that only the items are shown where the names match
++    // exactly the filter. This is non-transparent for the user, which
++    // just wants to have a 'soft' filtering: does the name contain
++    // the filter string?
++    QString adjustedFilter(nameFilter);
++    adjustedFilter.insert(0, '*');
++    adjustedFilter.append('*');
++
++    m_dirLister->setNameFilter(adjustedFilter);
++    m_dirLister->emitChanges();
++
++    if (isColumnViewActive()) {
++        // adjusting the directory lister is not enough in the case of the
++        // column view, as each column has its own directory lister internally...
++        m_columnView->setNameFilter(nameFilter);
++    }
++}
++
++void DolphinView::calculateItemCount(int& fileCount, int& folderCount)
++{
++    foreach (KFileItem item, m_dirLister->items()) {
++        if (item.isDir()) {
++            ++folderCount;
++        } else {
++            ++fileCount;
++        }
++    }
++}
++
+ void DolphinView::setUrl(const KUrl& url)
+ {
+     updateView(url, KUrl());
+@@ -631,7 +662,6 @@
+     const bool categorized = m_storedCategorizedSorting && supportsCategorizedSorting();
+     if (categorized != m_proxyModel->isCategorizedModel()) {
+         m_proxyModel->setCategorizedModel(categorized);
+-        m_proxyModel->sort(m_proxyModel->sortColumn(), m_proxyModel->sortOrder());
+         emit categorizedSortingChanged();
+     }
+ 
+@@ -854,7 +884,6 @@
+             this, SLOT(emitContentsMoved()));
+     connect(view->horizontalScrollBar(), SIGNAL(valueChanged(int)),
+             this, SLOT(emitContentsMoved()));
+-    view->setFocus();
+ }
+ 
+ QAbstractItemView* DolphinView::itemView() const
+@@ -927,4 +956,47 @@
+     }
+ }
+ 
++KToggleAction* DolphinView::iconsModeAction(KActionCollection* actionCollection)
++{
++    KToggleAction* iconsView = actionCollection->add<KToggleAction>("icons");
++    iconsView->setText(i18nc("@action:inmenu View Mode", "Icons"));
++    iconsView->setShortcut(Qt::CTRL | Qt::Key_1);
++    iconsView->setIcon(KIcon("fileview-icon"));
++    iconsView->setData(QVariant::fromValue(IconsView));
++    return iconsView;
++}
++
++KToggleAction* DolphinView::detailsModeAction(KActionCollection* actionCollection)
++{
++    KToggleAction* detailsView = actionCollection->add<KToggleAction>("details");
++    detailsView->setText(i18nc("@action:inmenu View Mode", "Details"));
++    detailsView->setShortcut(Qt::CTRL | Qt::Key_2);
++    detailsView->setIcon(KIcon("fileview-detailed"));
++    detailsView->setData(QVariant::fromValue(DetailsView));
++    return detailsView;
++}
++
++KToggleAction* DolphinView::columnsModeAction(KActionCollection* actionCollection)
++{
++    KToggleAction* columnView = actionCollection->add<KToggleAction>("columns");
++    columnView->setText(i18nc("@action:inmenu View Mode", "Columns"));
++    columnView->setShortcut(Qt::CTRL | Qt::Key_3);
++    columnView->setIcon(KIcon("fileview-column"));
++    columnView->setData(QVariant::fromValue(ColumnView));
++    return columnView;
++}
++
++QString DolphinView::currentViewModeActionName() const
++{
++    switch (m_mode) {
++    case DolphinView::IconsView:
++        return "icons";
++    case DolphinView::DetailsView:
++        return "details";
++    case DolphinView::ColumnView:
++        return "columns";
++    }
++    return QString(); // can't happen
++}
++
+ #include "dolphinview.moc"
+--- a/apps/dolphin/src/dolphinpart.h
++++ b/apps/dolphin/src/dolphinpart.h
+@@ -67,6 +67,20 @@
+      * @url   URL which contains \a item.
+      */
+     void slotOpenContextMenu(const KFileItem& item, const KUrl& url);
++    /**
++     * Emitted when the user requested a change of view mode
++     */
++    void slotViewModeActionTriggered(QAction*);
++
++    /**
++     * Asks the host to open the URL \a url if the current view has
++     * a different URL.
++     */
++    void slotUrlChanged(const KUrl& url);
++
++private:
++    void createActions();
++    void updateViewActions();
+ 
+ private:
+     DolphinView* m_view;
+--- a/apps/dolphin/src/dolphinviewcontainer.cpp
++++ b/apps/dolphin/src/dolphinviewcontainer.cpp
+@@ -62,8 +62,6 @@
+                                            const KUrl& url) :
+     QWidget(parent),
+     m_showProgress(false),
+-    m_folderCount(0),
+-    m_fileCount(0),
+     m_mainWindow(mainWindow),
+     m_topLayout(0),
+     m_urlNavigator(0),
+@@ -108,7 +106,7 @@
+     connect(m_dirLister, SIGNAL(deleteItem(const KFileItem&)),
+             this, SLOT(updateStatusBar()));
+     connect(m_dirLister, SIGNAL(completed()),
+-            this, SLOT(updateItemCount()));
++            this, SLOT(slotDirListerCompleted()));
+     connect(m_dirLister, SIGNAL(infoMessage(const QString&)),
+             this, SLOT(showInfoMessage(const QString&)));
+     connect(m_dirLister, SIGNAL(errorMessage(const QString&)),
+@@ -148,7 +146,7 @@
+     m_filterBar = new FilterBar(this);
+     m_filterBar->setVisible(settings->filterBar());
+     connect(m_filterBar, SIGNAL(filterChanged(const QString&)),
+-            this, SLOT(changeNameFilter(const QString&)));
++            this, SLOT(setNameFilter(const QString&)));
+     connect(m_filterBar, SIGNAL(closeRequest()),
+             this, SLOT(closeFilterBar()));
+ 
+@@ -292,7 +290,7 @@
+     }
+ }
+ 
+-void DolphinViewContainer::updateItemCount()
++void DolphinViewContainer::slotDirListerCompleted()
+ {
+     if (m_showProgress) {
+         m_statusBar->setProgressText(QString());
+@@ -300,23 +298,6 @@
+         m_showProgress = false;
+     }
+ 
+-    KFileItemList items(m_dirLister->items());
+-    KFileItemList::const_iterator it = items.begin();
+-    const KFileItemList::const_iterator end = items.end();
+-
+-    m_fileCount = 0;
+-    m_folderCount = 0;
+-
+-    while (it != end) {
+-        const KFileItem item = *it;
+-        if (item.isDir()) {
+-            ++m_folderCount;
+-        } else {
+-            ++m_fileCount;
+-        }
+-        ++it;
+-    }
+-
+     updateStatusBar();
+ 
+     QTimer::singleShot(100, this, SLOT(restoreContentsPos()));
+@@ -349,24 +330,12 @@
+ 
+ QString DolphinViewContainer::defaultStatusBarText() const
+ {
+-    int m_fileCount = 0;
+-    int m_folderCount = 0;
+-
+-    for (int i = 0; i < m_proxyModel->rowCount(); i++)
+-    {
+-        if (m_dolphinModel->itemForIndex(m_proxyModel->mapToSource(m_proxyModel->index(i, m_proxyModel->sortColumn()))).isDir())
+-        {
+-            m_folderCount++;
+-        }
+-        else
+-        {
+-            m_fileCount++;
+-        }
+-    }
+-
+-    return KIO::itemsSummaryString(m_fileCount + m_folderCount,
+-                                   m_fileCount,
+-                                   m_folderCount,
++    int folderCount = 0;
++    int fileCount = 0;
++    m_view->calculateItemCount(fileCount, folderCount);
++    return KIO::itemsSummaryString(fileCount + folderCount,
++                                   fileCount,
++                                   folderCount,
+                                    0, false);
+ }
+ 
+@@ -440,20 +409,9 @@
+     }
+ }
+ 
+-void DolphinViewContainer::changeNameFilter(const QString& nameFilter)
++void DolphinViewContainer::setNameFilter(const QString& nameFilter)
+ {
+-    // The name filter of KDirLister does a 'hard' filtering, which
+-    // means that only the items are shown where the names match
+-    // exactly the filter. This is non-transparent for the user, which
+-    // just wants to have a 'soft' filtering: does the name contain
+-    // the filter string?
+-    QString adjustedFilter(nameFilter);
+-    adjustedFilter.insert(0, '*');
+-    adjustedFilter.append('*');
+-
+-    m_dirLister->setNameFilter(adjustedFilter);
+-    m_dirLister->emitChanges();
+-
++    m_view->setNameFilter(nameFilter);
+     updateStatusBar();
+ }
+ 
+--- a/apps/dolphin/src/dolphinmainwindow.h
++++ b/apps/dolphin/src/dolphinmainwindow.h
+@@ -251,14 +251,8 @@
+      */
+     void invertSelection();
+ 
+-    /** The current active view is switched to the icons mode. */
+-    void setIconsView();
+-
+-    /** The current active view is switched to the details mode. */
+-    void setDetailsView();
+-
+-    /** The current active view is switched to the column mode. */
+-    void setColumnView();
++    /** The current active view is switched to a new view mode. */
++    void setViewMode(QAction *);
+ 
+     /** The sorting of the current view should be done by the name. */
+     void sortByName();
+--- a/apps/dolphin/src/dolphinpart.rc
++++ b/apps/dolphin/src/dolphinpart.rc
+@@ -1 +1,58 @@
+- 
++<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
++<kpartgui version="2" name="dolphinpart" >
++ <MenuBar>
++   <Menu name="edit">
++   <Action name="select_all" />
++   <Action name="invert_selection" />
++  </Menu>
++  <Menu name="view">
++   <Menu name="sort">
++    <text context="@title:menu">Sort by</text>
++    <Action name="sort_by_name" />
++    <Action name="sort_by_size" />
++    <Action name="sort_by_date" />
++    <Action name="sort_by_permissions" />
++    <Action name="sort_by_owner" />
++    <Action name="sort_by_group" />
++    <Action name="sort_by_type" />
++    <Action name="sort_by_rating" />
++    <Action name="sort_by_tags" />
++    <Separator/>
++    <Action name="descending" />
++   </Menu>
++   <Menu name="additional_info">
++    <text context="@title:menu">Additional Information</text>
++    <Action name="show_mime_info" />
++    <Action name="show_size_info" />
++    <Action name="show_date_info" />
++   </Menu>
++   <Action name="show_preview" />
++   <Action name="show_in_groups" />
++   <Action name="show_hidden_files" />
++   <Menu name="panels">
++    <text context="@title:menu">Panels</text>
++    <Action name="show_places_panel" />
++    <Action name="show_info_panel" />
++    <Action name="show_folders_panel" />
++    <Action name="show_terminal_panel" />
++   </Menu>
++   <Menu name="navigation_bar">
++    <text context="@title:menu">Navigation Bar</text>
++    <Action name="editable_location" />
++    <Action name="edit_location" />
++   </Menu>
++   <Separator/>
++   <Action name="view_properties" />
++  </Menu>
++  <Menu name="tools">
++    <Action name="find_file" />
++    <Action name="show_filter_bar" />
++    <Action name="compare_files" />
++  </Menu>
++</MenuBar>
++<ToolBar name="mainToolBar"><text context="@title:menu">Dolphin Toolbar</text>
++  <Action name="icons" />
++  <Action name="details" />
++  <Action name="columns" />
++</ToolBar>
++</kpartgui>
+--- a/apps/dolphin/src/kcategorizedview.cpp
++++ b/apps/dolphin/src/kcategorizedview.cpp
+@@ -414,6 +414,36 @@
+     }
+ }
+ 
++void KCategorizedView::Private::layoutChanged(bool forceItemReload)
++{
++    if ((listView->viewMode() == KCategorizedView::IconMode) && proxyModel &&
++        categoryDrawer && proxyModel->isCategorizedModel() &&
++        ((forceItemReload ||
++          (modelSortRole != proxyModel->sortRole()) ||
++          (modelSortColumn != proxyModel->sortColumn()) ||
++          (modelSortOrder != proxyModel->sortOrder()) ||
++          (modelLastRowCount != proxyModel->rowCount()) ||
++          (modelCategorized != proxyModel->isCategorizedModel()))))
++    {
++        // Force the view to update all elements
++        listView->rowsInsertedArtifficial(QModelIndex(), 0, proxyModel->rowCount() - 1);
++
++        if (!forceItemReload)
++        {
++            modelSortRole = proxyModel->sortRole();
++            modelSortColumn = proxyModel->sortColumn();
++            modelSortOrder = proxyModel->sortOrder();
++            modelLastRowCount = proxyModel->rowCount();
++            modelCategorized = proxyModel->isCategorizedModel();
++        }
++    }
++    else if ((listView->viewMode() == KCategorizedView::IconMode) && proxyModel &&
++             categoryDrawer && proxyModel->isCategorizedModel())
++    {
++        updateScrollbars();
++    }
++}
++
+ void KCategorizedView::Private::drawDraggedItems()
+ {
+     QRect rectToUpdate;
+@@ -456,7 +486,7 @@
+ {
+     QListView::setGridSize(size);
+ 
+-    slotLayoutChanged();
++    d->layoutChanged(true);
+ }
+ 
+ void KCategorizedView::setModel(QAbstractItemModel *model)
+@@ -483,6 +513,10 @@
+         QObject::disconnect(d->proxyModel,
+                             SIGNAL(dataChanged(QModelIndex,QModelIndex)),
+                             this, SLOT(slotLayoutChanged()));
++
++        QObject::disconnect(d->proxyModel,
++                            SIGNAL(rowsRemoved(QModelIndex,int,int)),
++                            this, SLOT(rowsRemoved(QModelIndex,int,int)));
+     }
+ 
+     QListView::setModel(model);
+@@ -491,6 +525,12 @@
+ 
+     if (d->proxyModel)
+     {
++        d->modelSortRole = d->proxyModel->sortRole();
++        d->modelSortColumn = d->proxyModel->sortColumn();
++        d->modelSortOrder = d->proxyModel->sortOrder();
++        d->modelLastRowCount = d->proxyModel->rowCount();
++        d->modelCategorized = d->proxyModel->isCategorizedModel();
++
+         QObject::connect(d->proxyModel,
+                          SIGNAL(layoutChanged()),
+                          this, SLOT(slotLayoutChanged()));
+@@ -498,6 +538,19 @@
+         QObject::connect(d->proxyModel,
+                          SIGNAL(dataChanged(QModelIndex,QModelIndex)),
+                          this, SLOT(slotLayoutChanged()));
++
++        QObject::connect(d->proxyModel,
++                         SIGNAL(rowsRemoved(QModelIndex,int,int)),
++                         this, SLOT(rowsRemoved(QModelIndex,int,int)));
++
++        if (d->proxyModel->rowCount())
++        {
++            d->layoutChanged(true);
++        }
++    }
++    else
++    {
++        d->modelCategorized = false;
+     }
+ }
+ 
+@@ -546,6 +599,10 @@
+         QObject::disconnect(d->proxyModel,
+                             SIGNAL(dataChanged(QModelIndex,QModelIndex)),
+                             this, SLOT(slotLayoutChanged()));
++
++        QObject::disconnect(d->proxyModel,
++                            SIGNAL(rowsRemoved(QModelIndex,int,int)),
++                            this, SLOT(rowsRemoved(QModelIndex,int,int)));
+     }
+     else if (categoryDrawer && d->proxyModel)
+     {
+@@ -556,6 +613,10 @@
+         QObject::connect(d->proxyModel,
+                          SIGNAL(dataChanged(QModelIndex,QModelIndex)),
+                          this, SLOT(slotLayoutChanged()));
++
++        QObject::connect(d->proxyModel,
++                         SIGNAL(rowsRemoved(QModelIndex,int,int)),
++                         this, SLOT(rowsRemoved(QModelIndex,int,int)));
+     }
+ 
+     d->categoryDrawer = categoryDrawer;
+@@ -564,7 +625,10 @@
+     {
+         if (d->proxyModel)
+         {
+-            rowsInserted(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
++            if (d->proxyModel->rowCount())
++            {
++                d->layoutChanged(true);
++            }
+         }
+     }
+     else
+@@ -682,6 +746,7 @@
+ 
+     // Redraw categories
+     QStyleOptionViewItem otherOption;
++    bool intersectedInThePast = false;
+     foreach (const QString &category, d->categories)
+     {
+         otherOption = option;
+@@ -690,11 +755,18 @@
+ 
+         if (otherOption.rect.intersects(area))
+         {
++            intersectedInThePast = true;
++
+             QModelIndex indexToDraw = d->proxyModel->index(d->categoriesIndexes[category][0].row(), d->proxyModel->sortColumn());
+ 
+             d->drawNewCategory(indexToDraw,
+                                d->proxyModel->sortRole(), otherOption, &painter);
+         }
++        else if (intersectedInThePast)
++        {
++            break; // the visible area has been finished, we don't need to keep asking, the rest won't intersect
++                   // this is doable because we know that categories are correctly ordered on the list
++        }
+     }
+ 
+     if (d->mouseButtonPressed && !d->isDragging)
+@@ -1176,8 +1248,8 @@
+ }
+ 
+ void KCategorizedView::rowsInserted(const QModelIndex &parent,
+-                             int start,
+-                             int end)
++                                    int start,
++                                    int end)
+ {
+     QListView::rowsInserted(parent, start, end);
+ 
+@@ -1205,8 +1277,8 @@
+ }
+ 
+ void KCategorizedView::rowsInsertedArtifficial(const QModelIndex &parent,
+-                                        int start,
+-                                        int end)
++                                               int start,
++                                               int end)
+ {
+     Q_UNUSED(parent);
+ 
+@@ -1229,25 +1301,24 @@
+         return;
+     }
+ 
+-    // Add all elements mapped to the source model
+-    for (int k = 0; k < d->proxyModel->rowCount(); k++)
+-    {
+-        d->biggestItemSize = QSize(qMax(sizeHintForIndex(d->proxyModel->index(k, 0)).width(),
+-                                        d->biggestItemSize.width()),
+-                                   qMax(sizeHintForIndex(d->proxyModel->index(k, 0)).height(),
+-                                        d->biggestItemSize.height()));
+-
+-        d->modelIndexList << d->proxyModel->index(k, d->proxyModel->sortColumn());
+-    }
+-
+-    // Explore categories
+-    QString prevCategory = d->proxyModel->data(d->modelIndexList[0], KCategorizedSortFilterProxyModel::CategoryRole).toString();
++    // Add all elements mapped to the source model and explore categories
++    QString prevCategory = d->proxyModel->data(d->proxyModel->index(0, d->proxyModel->sortColumn()), KCategorizedSortFilterProxyModel::CategoryRole).toString();
+     QString lastCategory = prevCategory;
+     QModelIndexList modelIndexList;
+     struct Private::ElementInfo elementInfo;
+     int offset = -1;
+-    foreach (const QModelIndex &index, d->modelIndexList)
++    for (int k = 0; k < d->proxyModel->rowCount(); ++k)
+     {
++        QModelIndex index = d->proxyModel->index(k, d->proxyModel->sortColumn());
++        QModelIndex indexSize = d->proxyModel->index(k, 0);
++
++        d->biggestItemSize = QSize(qMax(sizeHintForIndex(indexSize).width(),
++                                        d->biggestItemSize.width()),
++                                   qMax(sizeHintForIndex(indexSize).height(),
++                                        d->biggestItemSize.height()));
++
++        d->modelIndexList << index;
++
+         lastCategory = d->proxyModel->data(index, KCategorizedSortFilterProxyModel::CategoryRole).toString();
+ 
+         elementInfo.category = lastCategory;
+@@ -1279,14 +1350,14 @@
+ }
+ 
+ void KCategorizedView::rowsRemoved(const QModelIndex &parent,
+-                            int start,
+-                            int end)
++                                   int start,
++                                   int end)
+ {
+     if ((viewMode() == KCategorizedView::IconMode) && d->proxyModel &&
+         d->categoryDrawer && d->proxyModel->isCategorizedModel())
+     {
+         // Force the view to update all elements
+-        rowsInsertedArtifficial(parent, start, end);
++        rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
+     }
+ }
+ 
+@@ -1306,12 +1377,7 @@
+ 
+ void KCategorizedView::slotLayoutChanged()
+ {
+-    if ((viewMode() == KCategorizedView::IconMode) && d->proxyModel &&
+-        d->categoryDrawer && d->proxyModel->isCategorizedModel())
+-    {
+-        // Force the view to update all elements
+-        rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
+-    }
++    d->layoutChanged();
+ }
+ 
+ #include "kcategorizedview.moc"
+--- a/apps/dolphin/src/pics/16x16/CMakeLists.txt
++++ b/apps/dolphin/src/pics/16x16/CMakeLists.txt
+@@ -1 +1 @@
+-install( FILES  preview.png editurl.png DESTINATION ${DATA_INSTALL_DIR}/dolphin/icons/hicolor/16x16/actions )
++install( FILES  preview.png DESTINATION ${DATA_INSTALL_DIR}/dolphin/icons/hicolor/16x16/actions )
+--- a/apps/dolphin/src/statusbarmessagelabel.h
++++ b/apps/dolphin/src/statusbarmessagelabel.h
+@@ -51,30 +51,16 @@
+ 
+     void setMessage(const QString& text, DolphinStatusBar::Type type);
+ 
+-    DolphinStatusBar::Type type() const
+-    {
+-        return m_type;
+-    }
+-    const QString& text() const
+-    {
+-        return m_text;
+-    }
++    DolphinStatusBar::Type type() const;
+ 
+-    void setDefaultText(const QString& text)
+-    {
+-        m_defaultText = text;
+-    }
+-    const QString& defaultText() const
+-    {
+-        return m_defaultText;
+-    }
++    const QString& text() const;
++
++    void setDefaultText(const QString& text);
++    const QString& defaultText() const;
+ 
+     // TODO: maybe a better approach is possible with the size hint
+     void setMinimumTextHeight(int min);
+-    int minimumTextHeight() const
+-    {
+-        return m_minTextHeight;
+-    }
++    int minimumTextHeight() const;
+ 
+     /**
+      * Returns the gap of the width of the current set text to the
+@@ -139,10 +125,8 @@
+         Desaturate
+     };
+ 
+-    enum
+-    {
+-        GeometryTimeout = 100
+-    };
++    enum { GeometryTimeout = 100 };
++    enum { BorderGap = 2 };
+ 
+     DolphinStatusBar::Type m_type;
+     State m_state;
+@@ -154,11 +138,31 @@
+     QList<QString> m_pendingMessages;
+     QPixmap m_pixmap;
+     QPushButton* m_closeButton;
+-
+-    int borderGap() const
+-    {
+-        return 2;
+-    }
+ };
+ 
++inline DolphinStatusBar::Type StatusBarMessageLabel::type() const
++{
++    return m_type;
++}
++
++inline const QString& StatusBarMessageLabel::text() const
++{
++    return m_text;
++}
++
++inline void StatusBarMessageLabel::setDefaultText(const QString& text)
++{
++    m_defaultText = text;
++}
++
++inline const QString& StatusBarMessageLabel::defaultText() const
++{
++    return m_defaultText;
++}
++
++inline int StatusBarMessageLabel::minimumTextHeight() const
++{
++    return m_minTextHeight;
++}
++
+ #endif
+--- a/apps/dolphin/src/dolphincolumnwidget.h
++++ b/apps/dolphin/src/dolphincolumnwidget.h
+@@ -84,6 +84,19 @@
+      */
+     void updateBackground();
+ 
++    /**
++     * Filters the currently shown items by \a nameFilter. All items
++     * which contain the given filter string will be shown.
++     */
++    void setNameFilter(const QString& nameFilter);
++
++    /**
++     * Returns the currently used name filter. All items
++     * which contain the name filter will be shown.
++     */
++    QString nameFilter() const;
++
++
+ protected:
+     virtual QStyleOptionViewItem viewOptions() const;
+     virtual void dragEnterEvent(QDragEnterEvent* event);
+--- a/apps/dolphin/src/generalviewsettingspage.cpp
++++ b/apps/dolphin/src/generalviewsettingspage.cpp
+@@ -25,8 +25,9 @@
+ 
+ #include "dolphin_generalsettings.h"
+ 
+-#include <QLabel>
++#include <QCheckBox>
+ #include <QGroupBox>
++#include <QLabel>
+ #include <QRadioButton>
+ #include <QSlider>
+ #include <QSpinBox>
+@@ -45,7 +46,8 @@
+     m_localProps(0),
+     m_globalProps(0),
+     m_maxPreviewSize(0),
+-    m_spinBox(0)
++    m_spinBox(0),
++    m_useFileThumbnails(0)
+ {
+     const int spacing = KDialog::spacingHint();
+     const int margin = KDialog::marginHint();
+@@ -66,10 +68,10 @@
+     // create 'File Previews' box
+     QGroupBox* previewBox = new QGroupBox(i18nc("@title:group", "File Previews"), this);
+ 
+-    QLabel* maxFileSize = new QLabel(i18nc("@label:slider", "Maximum file size:"), previewBox);
+-
+     KHBox* vBox = new KHBox(previewBox);
+     vBox->setSpacing(spacing);
++
++    QLabel* maxFileSize = new QLabel(i18nc("@label:slider", "Maximum file size:"), vBox);
+     m_maxPreviewSize = new QSlider(Qt::Horizontal, vBox);
+ 
+     m_spinBox = new QSpinBox(vBox);
+@@ -79,9 +81,11 @@
+     connect(m_spinBox, SIGNAL(valueChanged(int)),
+             m_maxPreviewSize, SLOT(setValue(int)));
+ 
++    m_useFileThumbnails = new QCheckBox(i18n("Use thumbnails embedded in files"), previewBox);
++
+     QVBoxLayout* previewBoxLayout = new QVBoxLayout(previewBox);
+-    previewBoxLayout->addWidget(maxFileSize);
+     previewBoxLayout->addWidget(vBox);
++    previewBoxLayout->addWidget(m_useFileThumbnails);
+ 
+     // Add a dummy widget with no restriction regarding
+     // a vertical resizing. This assures that the dialog layout
+@@ -120,6 +124,9 @@
+     globalConfig.writeEntry("MaximumSize",
+                             byteCount,
+                             KConfigBase::Normal | KConfigBase::Global);
++    globalConfig.writeEntry("UseFileThumbnails",
++                            m_useFileThumbnails->isChecked(),
++                            KConfigBase::Normal | KConfigBase::Global);
+     globalConfig.sync();
+ }
+ 
+@@ -161,6 +168,9 @@
+ 
+     m_maxPreviewSize->setValue(maxMByteSize);
+     m_spinBox->setValue(m_maxPreviewSize->value());
++
++    const bool useFileThumbnails = globalConfig.readEntry("UseFileThumbnails", true);
++    m_useFileThumbnails->setChecked(useFileThumbnails);
+ }
+ 
+ #include "generalviewsettingspage.moc"
+--- a/apps/dolphin/src/CMakeLists.txt
++++ b/apps/dolphin/src/CMakeLists.txt
+@@ -1,6 +1,5 @@
+ 
+ add_subdirectory( pics )
+-add_subdirectory( servicemenus )
+ add_subdirectory( tests )
+ 
+ include_directories( ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${BLITZ_INCLUDES} )
+--- a/apps/dolphin/src/dolphinview.h
++++ b/apps/dolphin/src/dolphinview.h
+@@ -37,6 +37,7 @@
+ #include <QListView>
+ #include <QWidget>
+ 
++class KToggleAction;
+ class DolphinController;
+ class KDirLister;
+ class KFileItemDelegate;
+@@ -304,6 +305,44 @@
+      */
+     void updateView(const KUrl& url, const KUrl& rootUrl);
+ 
++    /**
++     * Filters the currently shown items by \a nameFilter. All items
++     * which contain the given filter string will be shown.
++     */
++    void setNameFilter(const QString& nameFilter);
++
++    /**
++     * Calculates the number of currently shown files into
++     * \a fileCount and the number of folders into \a folderCount.
++     * It is recommend using this method instead of asking the
++     * directory lister or the model directly, as it takes
++     * filtering and hierarchical previews into account.
++     */
++    void calculateItemCount(int& fileCount, int& folderCount);
++
++    /**
++     * Returns the "switch to icons mode" action.
++     * This code is here to share it between the mainwindow and the part
++     */
++    static KToggleAction* iconsModeAction(KActionCollection* collection);
++
++    /**
++     * Returns the "switch to details mode" action.
++     * This code is here to share it between the mainwindow and the part
++     */
++    static KToggleAction* detailsModeAction(KActionCollection* collection);
++
++    /**
++     * Returns the "switch to columns mode" action.
++     * This code is here to share it between the mainwindow and the part
++     */
++    static KToggleAction* columnsModeAction(KActionCollection* collection);
++
++    /**
++     * Returns the action name corresponding to the current view mode
++     */
++    QString currentViewModeActionName() const;
++
+ public slots:
+     /**
+      * Changes the directory to \a url. If the current directory is equal to
+@@ -319,6 +358,7 @@
+      */
+     void changeSelection(const KFileItemList& selection);
+ 
++
+ signals:
+     /**
+      * Is emitted if the view has been activated by e. g. a mouse click.
+@@ -587,4 +627,7 @@
+     KUrl m_rootUrl;
+ };
+ 
++/// Allow using DolphinView::Mode in QVariant
++Q_DECLARE_METATYPE(DolphinView::Mode)
++
+ #endif // DOLPHINVIEW_H
+--- a/apps/dolphin/src/statusbarspaceinfo.cpp
++++ b/apps/dolphin/src/statusbarspaceinfo.cpp
+@@ -20,27 +20,23 @@
+ 
+ #include "statusbarspaceinfo.h"
+ 
+-#include <kcolorscheme.h>
+ #include <kdiskfreespace.h>
+ #include <kmountpoint.h>
+ #include <klocale.h>
+ #include <kio/job.h>
+ 
+ #include <QTimer>
+-#include <QPainter>
+ #include <QKeyEvent>
+ 
+ StatusBarSpaceInfo::StatusBarSpaceInfo(QWidget* parent) :
+-    QWidget(parent),
++    QProgressBar(parent),
+     m_gettingSize(false),
+-    m_kBSize(0),
+-    m_kBAvailable(0)
++    m_text()
+ {
+-    setMinimumWidth(200);
++    setMinimum(0);
++    setMaximum(0);
+ 
+-    QPalette palette;
+-    palette.setColor(QPalette::Background, Qt::transparent);
+-    setPalette(palette);
++    setMaximumWidth(200);
+ 
+     // Update the space information each 10 seconds. Polling is useful
+     // here, as files can be deleted/added outside the scope of Dolphin.
+@@ -57,96 +53,44 @@
+ {
+     m_url = url;
+     refresh();
+-    QTimer::singleShot(300, this, SLOT(update()));
+ }
+ 
+-void StatusBarSpaceInfo::paintEvent(QPaintEvent* /* event */)
++QString StatusBarSpaceInfo::text() const
+ {
+-    QPainter painter(this);
+-    const int barWidth = width();
+-    const int barTop = 1;
+-    const int barHeight = height() - 5;
+-
+-    QString text;
+-
+-    const int widthDec = 3;  // visual decrement for the available width
+-
+-    QColor frameColor = palette().brush(QPalette::Background).color();
+-    frameColor.setAlpha(128);
+-    painter.setPen(frameColor);
+-
+-    const QColor backgrColor = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
+-    painter.setBrush(backgrColor);
+-
+-    painter.drawRect(QRect(0, barTop + 1 , barWidth - widthDec, barHeight));
+-
+-    if ((m_kBSize > 0) && (m_kBAvailable > 0)) {
+-        // draw 'used size' bar
+-        painter.setPen(Qt::NoPen);
+-        painter.setBrush(progressColor(backgrColor));
+-        int usedWidth = barWidth - static_cast<int>((m_kBAvailable *
+-                        static_cast<float>(barWidth)) / m_kBSize);
+-        const int left = 1;
+-        int right = usedWidth - widthDec;
+-        if (right < left) {
+-            right = left;
+-        }
+-        painter.drawRect(QRect(left, barTop + 2, right, barHeight - 1));
+-
+-        text = i18nc("@info:status", "%1 free", KIO::convertSizeFromKiB(m_kBAvailable));
+-    } else {
+-        if (m_gettingSize) {
+-            text = i18nc("@info:status", "Getting size...");
+-        } else {
+-            text = QString();
+-            QMetaObject::invokeMethod(this, "hide", Qt::QueuedConnection);
+-        }
+-    }
+-
+-    // draw text
+-    painter.setPen(KColorScheme(QPalette::Active, KColorScheme::View).foreground().color());
+-    painter.drawText(QRect(1, 1, barWidth - 2, barHeight + 6),
+-                     Qt::AlignCenter | Qt::TextWordWrap,
+-                     text);
++    return m_text;
+ }
+ 
+-
+ void StatusBarSpaceInfo::slotFoundMountPoint(const QString& mountPoint,
+                                              quint64 kBSize,
+                                              quint64 kBUsed,
+                                              quint64 kBAvailable)
+ {
+-    Q_UNUSED(kBUsed);
++    Q_UNUSED(kBSize);
+     Q_UNUSED(mountPoint);
+ 
+     m_gettingSize = false;
+-    m_kBSize = kBSize;
+-    m_kBAvailable = kBAvailable;
+-
+-    update();
+-}
+-
+-void StatusBarSpaceInfo::showResult()
+-{
+-    m_gettingSize = false;
+-    update();
++    const bool valuesChanged = (kBUsed != static_cast<quint64>(value())) ||
++                               (kBAvailable != static_cast<quint64>(maximum()));
++    if (valuesChanged) {
++        setMaximum(kBAvailable);
++        setValue(kBUsed);
++        m_text = i18nc("@info:status", "%1 free", KIO::convertSizeFromKiB(kBAvailable));
++    }
+ }
+ 
+ void StatusBarSpaceInfo::refresh()
+ {
+-    m_kBSize = 0;
+-    m_kBAvailable = 0;
+-
+     // KDiskFreeSpace is for local paths only
+     if (!m_url.isLocalFile()) {
+         return;
+     }
+ 
+-    m_gettingSize = true;
+     KMountPoint::Ptr mp = KMountPoint::currentMountPoints().findByPath(m_url.path());
+-    if (!mp)
++    if (!mp) {
+         return;
++    }
+ 
++    m_gettingSize = true;
+     KDiskFreeSpace* job = new KDiskFreeSpace(this);
+     connect(job, SIGNAL(foundMountPoint(const QString&,
+                                         quint64,
+@@ -156,35 +100,23 @@
+                                            quint64,
+                                            quint64,
+                                            quint64)));
+-    connect(job, SIGNAL(done()),
+-            this, SLOT(showResult()));
+ 
+     job->readDF(mp->mountPoint());
+-}
+ 
+-QColor StatusBarSpaceInfo::progressColor(const QColor& bgColor) const
+-{
+-    QColor color = KColorScheme(QPalette::Active, KColorScheme::Button).background().color();
++    // refresh() is invoked for each directory change. Usually getting
++    // the size information can be done very fast, so to prevent any
++    // flickering the "Getting size..." indication is only shown if
++    // at least 300 ms have been passed.
++    QTimer::singleShot(300, this, SLOT(showGettingSizeInfo()));
++}
+ 
+-    // assure that enough contrast is given between the background color
+-    // and the progressbar color
+-    int bgRed   = bgColor.red();
+-    int bgGreen = bgColor.green();
+-    int bgBlue  = bgColor.blue();
+-
+-    const int backgrBrightness = qGray(bgRed, bgGreen, bgBlue);
+-    const int progressBrightness = qGray(color.red(), color.green(), color.blue());
+-
+-    const int limit = 32;
+-    const int diff = backgrBrightness - progressBrightness;
+-    bool adjustColor = ((diff >= 0) && (diff <  limit)) ||
+-                       ((diff  < 0) && (diff > -limit));
+-    if (adjustColor) {
+-        const int inc = (backgrBrightness < 2 * limit) ? (2 * limit) : -limit;
+-        color = QColor(bgRed + inc, bgGreen + inc, bgBlue + inc);
++void StatusBarSpaceInfo::showGettingSizeInfo()
++{
++    if (m_gettingSize) {
++        m_text = i18nc("@info:status", "Getting size...");
++        setMinimum(0);
++        setMaximum(0);
+     }
+-
+-    return color;
+ }
+ 
+ #include "statusbarspaceinfo.moc"
+--- a/apps/dolphin/src/statusbarmessagelabel.cpp
++++ b/apps/dolphin/src/statusbarmessagelabel.cpp
+@@ -21,7 +21,6 @@
+ #include "statusbarmessagelabel.h"
+ 
+ #include <kcolorscheme.h>
+-#include <kcolorutils.h>
+ #include <kiconloader.h>
+ #include <kicon.h>
+ #include <klocale.h>
+@@ -59,7 +58,8 @@
+ }
+ 
+ StatusBarMessageLabel::~StatusBarMessageLabel()
+-{}
++{
++}
+ 
+ void StatusBarMessageLabel::setMessage(const QString& text,
+                                        DolphinStatusBar::Type type)
+@@ -122,7 +122,9 @@
+     if (min != m_minTextHeight) {
+         m_minTextHeight = min;
+         setMinimumHeight(min);
+-        m_closeButton->setFixedHeight(min - borderGap() * 2);
++        if (m_closeButton->height() > min) {
++            m_closeButton->setFixedHeight(min);
++        }
+     }
+ }
+ 
+@@ -138,30 +140,30 @@
+     QPainter painter(this);
+ 
+     // draw background
+-    QColor backgroundColor = palette().brush(QPalette::Background).color();
+-    QColor foregroundColor = KColorScheme(QPalette::Active, KColorScheme::View).foreground().color();
++    QColor backgroundColor = palette().window().color();
+     if (m_illumination > 0) {
+-        // TODO: are there foreground and background colors available for
+-        // "error messages"?
+-        backgroundColor.setRgb(255, 255, 0, m_illumination);
+-        QColor mixColor(0, 0, 0, m_illumination);
+-        foregroundColor = KColorUtils::overlayColors(foregroundColor, mixColor);
++        // at this point, a: we are a second label being drawn over the already
++        // painted status area, so we can be translucent, and b: our palette's
++        // window color (bg only) seems to be wrong (always black)
++        KColorScheme scheme(palette().currentColorGroup(), KColorScheme::Window);
++        backgroundColor = scheme.background(KColorScheme::NegativeBackground).color();
++        backgroundColor.setAlpha(qMin(255, m_illumination*2));
+     }
+     painter.setBrush(backgroundColor);
+-    painter.setPen(backgroundColor);
++    painter.setPen(Qt::NoPen);
+     painter.drawRect(QRect(0, 0, width(), height()));
+ 
+     // draw pixmap
+-    int x = borderGap();
++    int x = BorderGap;
+     int y = (m_minTextHeight - m_pixmap.height()) / 2;
+ 
+     if (!m_pixmap.isNull()) {
+         painter.drawPixmap(x, y, m_pixmap);
+-        x += m_pixmap.width() + borderGap();
++        x += m_pixmap.width() + BorderGap;
+     }
+ 
+     // draw text
+-    painter.setPen(foregroundColor);
++    painter.setPen(palette().windowText().color());
+     int flags = Qt::AlignVCenter;
+     if (height() > m_minTextHeight) {
+         flags = flags | Qt::TextWordWrap;
+@@ -265,14 +267,14 @@
+ int StatusBarMessageLabel::availableTextWidth() const
+ {
+     const int buttonWidth = (m_type == DolphinStatusBar::Error) ?
+-                            m_closeButton->width() + borderGap() : 0;
+-    return width() - m_pixmap.width() - (borderGap() * 4) - buttonWidth;
++                            m_closeButton->width() + BorderGap : 0;
++    return width() - m_pixmap.width() - (BorderGap * 4) - buttonWidth;
+ }
+ 
+ void StatusBarMessageLabel::updateCloseButtonPosition()
+ {
+-    const int x = width() - m_closeButton->width() - borderGap();
+-    const int y = height() - m_closeButton->height() - borderGap();
++    const int x = width() - m_closeButton->width() - BorderGap;
++    const int y = (height() - m_closeButton->height()) / 2;
+     m_closeButton->move(x, y);
+ }
+ 
+--- a/apps/dolphin/src/dolphincolumnwidget.cpp
++++ b/apps/dolphin/src/dolphincolumnwidget.cpp
+@@ -69,7 +69,6 @@
+     setSelectionMode(QAbstractItemView::ExtendedSelection);
+     setDragDropMode(QAbstractItemView::DragDrop);
+     setDropIndicatorShown(false);
+-    setFocusPolicy(Qt::NoFocus);
+ 
+ // TODO: Remove this check when 4.3.2 is released and KDE requires it... this
+ //       check avoids a division by zero happening on versions before 4.3.1.
+@@ -181,7 +180,7 @@
+ {
+     QColor color = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
+     if (!m_active || !m_view->m_active) {
+-        color.setAlpha(0);
++        color.setAlpha(150);
+     }
+     QPalette palette = viewport()->palette();
+     palette.setColor(viewport()->backgroundRole(), color);
+@@ -190,6 +189,26 @@
+     update();
+ }
+ 
++void DolphinColumnWidget::setNameFilter(const QString& nameFilter)
++{
++    // The name filter of KDirLister does a 'hard' filtering, which
++    // means that only the items are shown where the names match
++    // exactly the filter. This is non-transparent for the user, which
++    // just wants to have a 'soft' filtering: does the name contain
++    // the filter string?
++    QString adjustedFilter(nameFilter);
++    adjustedFilter.insert(0, '*');
++    adjustedFilter.append('*');
++
++    m_dirLister->setNameFilter(adjustedFilter);
++    m_dirLister->emitChanges();
++}
++
++QString DolphinColumnWidget::nameFilter() const
++{
++    return m_dirLister->nameFilter();
++}
++
+ void DolphinColumnWidget::dragEnterEvent(QDragEnterEvent* event)
+ {
+     if (event->mimeData()->hasUrls()) {
+@@ -268,6 +287,7 @@
+     m_view->m_controller->requestActivation();
+     if (!m_active) {
+         m_view->requestActivation(this);
++        m_view->m_controller->triggerUrlChangeRequest(m_url);
+     }
+ 
+     QListView::mousePressEvent(event);
+@@ -291,6 +311,7 @@
+ {
+     if (!m_active) {
+         m_view->requestActivation(this);
++        m_view->m_controller->triggerUrlChangeRequest(m_url);
+     }
+ 
+     QListView::contextMenuEvent(event);
+@@ -364,10 +385,7 @@
+ 
+ void DolphinColumnWidget::activate()
+ {
+-    if (m_view->hasFocus()) {
+-        setFocus(Qt::OtherFocusReason);
+-    }
+-    m_view->setFocusProxy(this);
++    setFocus(Qt::OtherFocusReason);
+ 
+     // TODO: Connecting to the signal 'activated()' is not possible, as kstyle
+     // does not forward the single vs. doubleclick to it yet (KDE 4.1?). Hence it is
+@@ -393,6 +411,8 @@
+ 
+ void DolphinColumnWidget::deactivate()
+ {
++    clearFocus();
++
+     // TODO: Connecting to the signal 'activated()' is not possible, as kstyle
+     // does not forward the single vs. doubleclick to it yet (KDE 4.1?). Hence it is
+     // necessary connecting the signal 'singleClick()' or 'doubleClick'.
+--- a/apps/dolphin/src/dolphin.desktop
++++ b/apps/dolphin/src/dolphin.desktop
+@@ -22,6 +22,7 @@
+ GenericName[de]=Dateimanager
+ GenericName[el]=Διαχειριστής αρχείων
+ GenericName[es]=Gestor de ficheros
++GenericName[et]=Failihaldur
+ GenericName[fa]=مدیر پرونده
+ GenericName[ga]=Bainisteoir Comhad
+ GenericName[he]=מנהל קבצים
+@@ -35,9 +36,11 @@
+ GenericName[ne]=फाइल प्रबन्धक
+ GenericName[nl]=Bestandsbeheerder
+ GenericName[nn]=Filhandsamar
++GenericName[oc]=Gestionari de fichièrs
+ GenericName[pa]=ਫਾਇਲ ਮੈਨੇਜਰ
+ GenericName[pt]=Gestor de Ficheiros
+ GenericName[pt_BR]=Gerenciador de Arquivos
++GenericName[ru]=Файловый менеджер
+ GenericName[sl]=Upravitelj datotek
+ GenericName[sr]=Менаџер фајлова
+ GenericName[sr at latin]=Menadžer fajlova
+--- a/apps/dolphin/src/dolphinstatusbar.cpp
++++ b/apps/dolphin/src/dolphinstatusbar.cpp
+@@ -51,18 +51,20 @@
+     m_progressBar = new QProgressBar(this);
+     m_progressBar->hide();
+ 
+-    const QSize size(m_progressBar->sizeHint());
+-    const int barHeight = size.height();
++    const int contentHeight = QFontMetrics(m_messageLabel->font()).height();
++    const int barHeight = contentHeight + 8;
+ 
+-    m_progressBar->setMaximumWidth(200);
+     setMinimumHeight(barHeight);
+     m_messageLabel->setMinimumTextHeight(barHeight);
+-    m_spaceInfo->setFixedHeight(barHeight);
++    m_spaceInfo->setFixedHeight(contentHeight);
++    m_progressBar->setFixedHeight(contentHeight);
++    m_progressBar->setMaximumWidth(200);
+ }
+ 
+ 
+ DolphinStatusBar::~DolphinStatusBar()
+-{}
++{
++}
+ 
+ void DolphinStatusBar::setMessage(const QString& msg,
+                                   Type type)
+@@ -180,7 +182,6 @@
+         // The space information is shown currently. Hide it
+         // if the progress bar is visible or if the status bar
+         // text does not fit into the available width.
+-        const QSize size(m_progressBar->sizeHint());
+         if (isProgressBarVisible || (widthGap > 0)) {
+             m_spaceInfo->hide();
+         }
+--- a/apps/dolphin/src/generalsettingspage.cpp
++++ b/apps/dolphin/src/generalsettingspage.cpp
+@@ -96,18 +96,11 @@
+     startBoxLayout->addWidget(m_filterBar);
+ 
+     // create 'Ask Confirmation For' group
+-    KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals);
+-    const KConfigGroup trashConfig(konqConfig, "Trash");
+-
+     QGroupBox* confirmBox = new QGroupBox(i18nc("@title:group", "Ask For Confirmation When"), vBox);
+-
+     m_confirmMoveToTrash = new QCheckBox(i18nc("@option:check Ask for Confirmation When",
+                                                "Moving files or folders to trash"), confirmBox);
+-    m_confirmMoveToTrash->setChecked(trashConfig.readEntry("ConfirmTrash", false));
+-
+     m_confirmDelete = new QCheckBox(i18nc("@option:check Ask for Confirmation When",
+                                           "Deleting files or folders"), confirmBox);
+-    m_confirmDelete->setChecked(trashConfig.readEntry("ConfirmDelete", true));
+ 
+     QVBoxLayout* confirmBoxLayout = new QVBoxLayout(confirmBox);
+     confirmBoxLayout->addWidget(m_confirmMoveToTrash);
+@@ -115,9 +108,6 @@
+ 
+     // create 'Show the command 'Delete' in context menu' checkbox
+     m_showDeleteCommand = new QCheckBox(i18nc("@option:check", "Show 'Delete' command in context menu"), vBox);
+-    const KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals);
+-    const KConfigGroup kdeConfig(globalConfig, "KDE");
+-    m_showDeleteCommand->setChecked(kdeConfig.readEntry("ShowDeleteCommand", false));
+ 
+     // Add a dummy widget with no restriction regarding
+     // a vertical resizing. This assures that the dialog layout
+@@ -147,13 +137,12 @@
+     settings->setEditableUrl(m_editableUrl->isChecked());
+     settings->setFilterBar(m_filterBar->isChecked());
+ 
+-    KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals);
+-    KConfigGroup trashConfig(konqConfig, "Trash");
++    KConfigGroup trashConfig(KGlobal::config(), "Trash");
+     trashConfig.writeEntry("ConfirmTrash", m_confirmMoveToTrash->isChecked());
+     trashConfig.writeEntry("ConfirmDelete", m_confirmDelete->isChecked());
++    trashConfig.sync();
+ 
+-    KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals);
+-    KConfigGroup kdeConfig(globalConfig, "KDE");
++    KConfigGroup kdeConfig(KGlobal::config(), "KDE");
+     kdeConfig.writeEntry("ShowDeleteCommand", m_showDeleteCommand->isChecked());
+     kdeConfig.sync();
+ }
+@@ -164,10 +153,6 @@
+     settings->setDefaults();
+ 
+     // TODO: reset default settings for trash and show delete command...
+-    //KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals);
+-    //KConfigGroup trashConfig(konqConfig, "Trash");
+-    //KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals);
+-    //KConfigGroup kdeConfig(globalConfig, "KDE");
+ 
+     loadSettings();
+ }
+@@ -199,6 +184,13 @@
+     m_splitView->setChecked(settings->splitView());
+     m_editableUrl->setChecked(settings->editableUrl());
+     m_filterBar->setChecked(settings->filterBar());
++
++    const KConfigGroup trashConfig(KGlobal::config(), "Trash");
++    m_confirmMoveToTrash->setChecked(trashConfig.readEntry("ConfirmTrash", false));
++    m_confirmDelete->setChecked(trashConfig.readEntry("ConfirmDelete", true));
++
++    const KConfigGroup kdeConfig(KGlobal::config(), "KDE");
++    m_showDeleteCommand->setChecked(kdeConfig.readEntry("ShowDeleteCommand", false));
+ }
+ 
+ #include "generalsettingspage.moc"
+--- a/apps/dolphin/src/generalviewsettingspage.h
++++ b/apps/dolphin/src/generalviewsettingspage.h
+@@ -23,6 +23,7 @@
+ #include <kvbox.h>
+ 
+ class DolphinMainWindow;
++class QCheckBox;
+ class QRadioButton;
+ class QSlider;
+ class QSpinBox;
+@@ -58,6 +59,7 @@
+     QRadioButton* m_globalProps;
+     QSlider* m_maxPreviewSize;
+     QSpinBox* m_spinBox;
++    QCheckBox* m_useFileThumbnails;
+ };
+ 
+ #endif
+--- a/apps/kwrite/kwritemain.cpp
++++ b/apps/kwrite/kwritemain.cpp
+@@ -182,7 +182,7 @@
+   a= actionCollection()->addAction( KStandardAction::KeyBindings, this, SLOT(editKeys()) );
+   a->setWhatsThis(i18n("Configure the application's keyboard shortcut assignments."));
+ 
+-  a = actionCollection()->addAction( KStandardAction::ConfigureToolbars, "set_configure_toolbars",
++  a = actionCollection()->addAction( KStandardAction::ConfigureToolbars, "options_configure_toolbars",
+                                      this, SLOT(editToolbars()) );
+   a->setWhatsThis(i18n("Configure which items should appear in the toolbar(s)."));
+ 
+@@ -210,7 +210,7 @@
+   m_selectModeLabel = new QLabel( i18n(" LINE "), statusBar() );
+   statusBar()->addWidget( m_selectModeLabel, 0 );
+   m_selectModeLabel->setAlignment( Qt::AlignCenter );
+-  
++
+   m_modeLabel = new QLabel( QString(), statusBar() );
+   statusBar()->addWidget( m_modeLabel, 0 );
+   m_modeLabel->setAlignment( Qt::AlignCenter );
+--- a/apps/doc/dolphin/index.docbook
++++ b/apps/doc/dolphin/index.docbook
+@@ -229,7 +229,7 @@
+ </para>
+ 
+ <para>
+-If this option is enabled then the workspace will split apart. Two seperate workspace areas will be available for use, along with two seperate location bars.  Clicking on either workspace will make it the active workspace.  If the user toggles the split workspace mode off, then the currently active workspace will remain, while the inactive workspace will close.
++If this option is enabled then the workspace will split apart. Two separate workspace areas will be available for use, along with two separate location bars.  Clicking on either workspace will make it the active workspace.  If the user toggles the split workspace mode off, then the currently active workspace will remain, while the inactive workspace will close.
+ </para>
+ 
+ <para>
+--- a/apps/lib/konq/konq_menuactions_p.h
++++ b/apps/lib/konq/konq_menuactions_p.h
+@@ -24,9 +24,9 @@
+ #include <kactioncollection.h>
+ #include <QActionGroup>
+ #include <QObject>
+-#include <kdesktopfileactions.h>
++#include <kserviceaction.h>
+ 
+-typedef QList<KDesktopFileActions::Service> ServiceList;
++typedef QList<KServiceAction> ServiceList;
+ 
+ class KonqMenuActionsPrivate : public QObject
+ {
+@@ -50,7 +50,7 @@
+     bool m_readOnly;
+ 
+     // TODO try action->setData(QVariant::fromValue(service))
+-    QMap<QAction *, KDesktopFileActions::Service> m_mapPopupServices;
++    QMap<QAction *, KServiceAction> m_mapPopupServices;
+     QActionGroup m_executeServiceActionGroup;
+     KActionCollection m_ownActions; // TODO connect to statusbar for help on actions
+ };
+--- a/apps/lib/konq/konq_historymgr.cc
++++ b/apps/lib/konq/konq_historymgr.cc
+@@ -600,7 +600,7 @@
+     if ( file.isEmpty() )
+ 	return false;
+ 
+-    KConfig config(  file, KConfig::OnlyLocal);
++    KConfig config(  file, KConfig::SimpleConfig);
+     const KConfigGroup group = config.group("History");
+     const QStringList items = group.readEntry( "CompletionItems", QStringList() );
+     QStringList::const_iterator it = items.begin();
+--- a/apps/lib/konq/konq_operations.cpp
++++ b/apps/lib/konq/konq_operations.cpp
+@@ -282,7 +282,7 @@
+                 i18np( "Do you really want to move this item to the trash?", "Do you really want to move these %1 items to the trash?", prettyList.count()),
+                 prettyList,
+ 		i18n( "Move to Trash" ),
+-		KGuiItem( i18nc( "Verb", "&Trash" ), "edit-trash"),
++		KGuiItem( i18nc( "Verb", "&Trash" ), "user-trash"),
+ 		KStandardGuiItem::cancel(),
+ 		keyName, KMessageBox::Notify | KMessageBox::Dangerous);
+         }
+@@ -436,7 +436,7 @@
+                 return;
+             }
+             else if ( desktopFile.hasLinkType() && desktopGroup.hasKey("URL") ) {
+-                m_destUrl = desktopGroup.readPathEntry("URL");
++                m_destUrl = desktopGroup.readPathEntry("URL", QString());
+                 doDropFileCopy();
+                 return;
+             }
+--- a/apps/lib/konq/konq_popupmenu.cpp
++++ b/apps/lib/konq/konq_popupmenu.cpp
+@@ -377,9 +377,9 @@
+     if (m_itemFlags & KParts::BrowserExtension::ShowNavigationItems)
+     {
+         if (m_itemFlags & KParts::BrowserExtension::ShowUp)
+-            addNamedAction( "up" );
+-        addNamedAction( "back" );
+-        addNamedAction( "forward" );
++            addNamedAction( "go_up" );
++        addNamedAction( "go_back" );
++        addNamedAction( "go_forward" );
+         if (m_itemFlags & KParts::BrowserExtension::ShowReload)
+             addNamedAction( "reload" );
+         q->addSeparator();
+@@ -440,9 +440,9 @@
+     if ( isCurrentTrash )
+     {
+         act = m_ownActions.addAction( "emptytrash" );
+-        act->setIcon( KIcon("emptytrash") );
++        act->setIcon( KIcon("trash-empty") );
+         act->setText( i18n( "&Empty Trash Bin" ) );
+-        KConfig trashConfig( "trashrc", KConfig::OnlyLocal);
++        KConfig trashConfig( "trashrc", KConfig::SimpleConfig);
+         act->setEnabled( !trashConfig.group("Status").readEntry( "Empty", true ) );
+         QObject::connect(act, SIGNAL(triggered()), q, SLOT(slotPopupEmptyTrashBin()));
+         q->addAction(act);
+--- a/apps/lib/konq/tests/konqpopupmenutest.cpp
++++ b/apps/lib/konq/tests/konqpopupmenutest.cpp
+@@ -41,6 +41,7 @@
+         if (action->isSeparator()) {
+             ret.append("separator");
+         } else if (action->objectName().isEmpty()) {
++            //qDebug() << action->metaObject()->className();
+             Q_ASSERT(action->menu());
+             ret.append("submenu");
+         } else {
+@@ -66,11 +67,11 @@
+     m_pasteTo = KStandardAction::paste(0, 0, this);
+     m_actionCollection.addAction("pasteto", m_pasteTo);
+     m_back = new QAction(this);
+-    m_actionCollection.addAction("back", m_back);
++    m_actionCollection.addAction("go_back", m_back);
+     m_forward = new QAction(this);
+-    m_actionCollection.addAction("forward", m_forward);
++    m_actionCollection.addAction("go_forward", m_forward);
+     m_up = new QAction(this);
+-    m_actionCollection.addAction("up", m_up);
++    m_actionCollection.addAction("go_up", m_up);
+     m_reload = new QAction(this);
+     m_actionCollection.addAction("reload", m_reload);
+     m_properties = new QAction(this);
+@@ -122,7 +123,7 @@
+     subMenu->addAction(m_up);
+     QStringList actions = extractActionNames(popup);
+     kDebug() << actions;
+-    QCOMPARE(actions, QStringList() << "back" << "submenu");
++    QCOMPARE(actions, QStringList() << "go_back" << "submenu");
+ }
+ 
+ void KonqPopupMenuTest::testFile()
+@@ -237,7 +238,7 @@
+     actions.replaceInStrings("openwith", "openWith_submenu");
+     QCOMPARE(actions, QStringList()
+              << "newmenu" << "separator"
+-             << "up" << "back" << "forward" << "separator"
++             << "go_up" << "go_back" << "go_forward" << "separator"
+              << "paste" << "separator"
+              << "openWith_submenu"
+              << "preview_submenu"
+@@ -307,7 +308,7 @@
+     QStringList actions = extractActionNames(popup);
+     kDebug() << actions;
+     QCOMPARE(actions, QStringList()
+-             << "back" << "forward" << "reload" << "separator"
++             << "go_back" << "go_forward" << "reload" << "separator"
+              << "bookmark_add"
+              << "separator"
+              << "openWith_submenu"
+--- a/apps/lib/konq/tests/konqundomanagertest.cpp
++++ b/apps/lib/konq/tests/konqundomanagertest.cpp
+@@ -412,7 +412,7 @@
+ 
+     // check trash?
+     // Let's just check that it's not empty. kio_trash has its own unit tests anyway.
+-    KConfig cfg( "trashrc", KConfig::OnlyLocal );
++    KConfig cfg( "trashrc", KConfig::SimpleConfig );
+     QVERIFY( cfg.hasGroup( "Status" ) );
+     QCOMPARE( cfg.group("Status").readEntry( "Empty", true ), false );
+ 
+--- a/apps/lib/konq/konqpopupmenuplugin.desktop
++++ b/apps/lib/konq/konqpopupmenuplugin.desktop
+@@ -37,11 +37,11 @@
+ Comment[lv]=Iekarotāja Uzlēcošās Izvēlnes spraudnis
+ Comment[mk]=Приклучок за контекстното мени на Konqueror
+ Comment[ms]=Plugin untuk Menu Popuo Konqueror
+-Comment[nb]=Programtillegg for oppsprettsmenyen i Konqueror
++Comment[nb]=Programtillegg for sprettoppmenyen i Konqueror
+ Comment[nds]=Plugin för dat Konqueror-Opdukmenü
+ Comment[ne]=कन्क्वेरर पपअप मेनुका लागि प्लगइन
+ Comment[nl]=Plugin voor Konqueror's contextmenu
+-Comment[nn]=Tillegg til oppsprettmenyen i Konqueror
++Comment[nn]=Tillegg til sprettoppmenyen i Konqueror
+ Comment[pa]=ਕੋਨਕਿਉਰੋਰ ਪਾਪਅੱਪ ਮੇਨੂ ਲਈ ਪਲੱਗਇਨ
+ Comment[pl]=Wtyczka do menu (otwieranego przyciskiem myszy) Konquerora
+ Comment[pt]='Plugin' para o Menu do Konqueror
+--- a/apps/lib/konq/konq_pixmapprovider.cc
++++ b/apps/lib/konq/konq_pixmapprovider.cc
+@@ -93,7 +93,7 @@
+ {
+     iconMap.clear();
+     QStringList list;
+-    list = kc.readPathListEntry( key );
++    list = kc.readPathEntry( key, QStringList() );
+     QStringList::Iterator it = list.begin();
+     QString url, icon;
+     while ( it != list.end() ) {
+--- a/apps/lib/konq/konq_menuactions.cpp
++++ b/apps/lib/konq/konq_menuactions.cpp
+@@ -19,6 +19,7 @@
+ 
+ #include "konq_menuactions.h"
+ #include "konq_menuactions_p.h"
++#include <kdesktopfileactions.h>
+ #include <kmenu.h>
+ #include <klocale.h>
+ #include <kauthorized.h>
+@@ -118,7 +119,7 @@
+     int count = 0;
+     ServiceList::const_iterator it = list.begin();
+     for( ; it != list.end(); ++it ) {
+-        if ((*it).isEmpty()) {
++        if ((*it).isSeparator()) {
+             const QList<QAction*> actions = menu->actions();
+             if (!actions.isEmpty() && !actions.last()->isSeparator()) {
+                 menu->addSeparator();
+@@ -126,13 +127,13 @@
+             continue;
+         }
+ 
+-        if (isBuiltin || (*it).m_display == true) {
++        if (isBuiltin || !(*it).noDisplay()) {
+             QAction* act = new QAction(&m_ownActions);
+-            QString text = (*it).m_strName;
++            QString text = (*it).text();
+             text.replace('&',"&&");
+             act->setText( text );
+-            if ( !(*it).m_strIcon.isEmpty() ) {
+-                act->setIcon( KIcon((*it).m_strIcon) );
++            if ( !(*it).icon().isEmpty() ) {
++                act->setIcon( KIcon((*it).icon()) );
+             }
+             // act->setData(...);
+             m_executeServiceActionGroup.addAction(act);
+@@ -149,7 +150,7 @@
+ 
+ void KonqMenuActionsPrivate::slotExecuteService(QAction* act)
+ {
+-    QMap<QAction *,KDesktopFileActions::Service>::Iterator it = m_mapPopupServices.find(act);
++    QMap<QAction *,KServiceAction>::Iterator it = m_mapPopupServices.find(act);
+     Q_ASSERT(it != m_mapPopupServices.end());
+     if (it != m_mapPopupServices.end()) {
+         KDesktopFileActions::executeService(m_urlList, it.value());
+@@ -293,7 +294,7 @@
+                 continue;
+         }
+         else if ( cfg.hasKey( "X-KDE-Protocols" ) ) {
+-            const QStringList protocols = cfg.readEntry( "X-KDE-Protocols" ).split( ',' );
++            const QStringList protocols = cfg.readEntry( "X-KDE-Protocols", QStringList() );
+             if ( !protocols.contains( d->m_url.protocol() ) )
+                 continue;
+         }
+--- a/apps/lib/konq/konq_popupmenu.h
++++ b/apps/lib/konq/konq_popupmenu.h
+@@ -75,7 +75,7 @@
+    * @param partFlags flags from the BrowserExtension enum, set by the calling part
+    *
+    * The actions to pass in include :
+-   * showmenubar, back, forward, up, cut, copy, paste, pasteto, trash, rename, del
++   * showmenubar, go_back, go_forward, go_up, cut, copy, paste, pasteto, trash, rename, del
+    * The others items are automatically inserted.
+    *
+    * @todo that list is probably not be up-to-date
+--- a/apps/lib/konq/favicons/favicons.desktop
++++ b/apps/lib/konq/favicons/favicons.desktop
+@@ -90,7 +90,7 @@
+ Comment[ja]=ショートカットアイコンサポート
+ Comment[ka]=მალმხმობი ხატულების მხარდაჭერა
+ Comment[kk]=Жарлықтарды қолдау
+-Comment[km]=​គាំទ្រ​រូប​តំណាង​ផ្លូវកាត់
++Comment[km]=ការ​​គាំទ្រ​រូប​តំណាង​ផ្លូវកាត់
+ Comment[ko]=단축 아이콘 지원
+ Comment[lt]=Nuorodų ženkliukų palaikymas
+ Comment[lv]=Īsinājumikonu atbalsts
+--- a/apps/lib/konq/knewmenu.cpp
++++ b/apps/lib/konq/knewmenu.cpp
+@@ -217,7 +217,7 @@
+                 QString type = config.readEntry( "Type" );
+                 if ( type == "Link" )
+                 {
+-                    templatePath = config.readPathEntry("URL");
++                    templatePath = config.readPathEntry("URL", QString());
+                     if ( templatePath[0] != '/' )
+                     {
+                         if ( templatePath.startsWith("file:/") )
+--- a/apps/konsole/src/Part.cpp
++++ b/apps/konsole/src/Part.cpp
+@@ -84,6 +84,7 @@
+     _viewManager->widget()->setParent(parentWidget);
+ 
+     setWidget(_viewManager->widget());
++    actionCollection()->setAssociatedWidget(_viewManager->widget());
+     
+     // create basic session
+     createSession(QString());
+--- a/apps/konsole/src/IncrementalSearchBar.cpp
++++ b/apps/konsole/src/IncrementalSearchBar.cpp
+@@ -78,7 +78,7 @@
+     findNext->setObjectName("find-next-button");
+     findNext->setText(i18n("Next"));
+     findNext->setAutoRaise(true);
+-    findNext->setIcon( KIcon("find-next") );
++    findNext->setIcon( KIcon("edit-find-next") );
+     findNext->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+     findNext->setToolTip( i18n("Find the next match for the current search phrase") );
+     connect( findNext , SIGNAL(clicked()) , this , SIGNAL(findNextClicked()) );
+@@ -87,7 +87,7 @@
+     findPrev->setObjectName("find-previous-button");
+     findPrev->setText(i18n("Previous"));
+     findPrev->setAutoRaise(true);
+-    findPrev->setIcon( KIcon("find-previous") );
++    findPrev->setIcon( KIcon("edit-find-previous") );
+     findPrev->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+     findPrev->setToolTip( i18n("Find the previous match for the current search phrase") );
+     connect( findPrev , SIGNAL(clicked()) , this , SIGNAL(findPreviousClicked()) );
+--- a/apps/konsole/src/EditProfileDialog.cpp
++++ b/apps/konsole/src/EditProfileDialog.cpp
+@@ -402,6 +402,7 @@
+     const QFont& font = info->font();
+     updateFontPreviewLabel(font);
+     _ui->fontSizeSlider->setValue( font.pointSize() );
++    _ui->fontSizeSlider->setMinimum( KGlobalSettings::smallestReadableFont().pointSize() );
+ 
+     connect( _ui->fontSizeSlider , SIGNAL(valueChanged(int)) , this ,
+              SLOT(setFontSize(int)) );
+--- a/apps/konsole/src/SessionController.cpp
++++ b/apps/konsole/src/SessionController.cpp
+@@ -488,14 +488,14 @@
+     connect( action , SIGNAL(toggled(bool)) , this , SLOT(searchHistory(bool)) );
+ 
+     _findNextAction = collection->addAction("find-next");
+-    _findNextAction->setIcon( KIcon("find-next") );
++    _findNextAction->setIcon( KIcon("edit-find-next") );
+     _findNextAction->setText( i18n("Find Next") );
+     _findNextAction->setShortcut( QKeySequence(Qt::Key_F3) );
+     _findNextAction->setEnabled(false);
+     connect( _findNextAction , SIGNAL(triggered()) , this , SLOT(findNextInHistory()) );
+ 
+     _findPreviousAction = collection->addAction("find-previous");
+-    _findPreviousAction->setIcon( KIcon("find-previous") );
++    _findPreviousAction->setIcon( KIcon("edit-find-previous") );
+     _findPreviousAction->setText( i18n("Find Previous") );
+     _findPreviousAction->setShortcut( QKeySequence(Qt::SHIFT + Qt::Key_F3) );
+     _findPreviousAction->setEnabled(false);
+@@ -889,15 +889,13 @@
+ 
+ void SessionController::showDisplayContextMenu(TerminalDisplay* /*display*/ , int /*state*/, const QPoint& position)
+ {
++    QMenu* popup = 0;
++
+     if ( factory() )
+-    {
+-        QMenu* popup = dynamic_cast<QMenu*>(factory()->container("session-popup-menu",this));
+-    
+-        
+-        Q_ASSERT( popup );
++        popup = qobject_cast<QMenu*>(factory()->container("session-popup-menu",this));
+ 
++    if (popup)
+         popup->exec( _view->mapToGlobal(position) );
+-    }
+     else
+     {
+         qWarning() << "Unable to display popup menu for session" 
+--- a/apps/konsole/src/ViewManager.cpp
++++ b/apps/konsole/src/ViewManager.cpp
+@@ -121,19 +121,19 @@
+     if ( collection )
+     {
+         KAction* splitLeftRightAction = new KAction( KIcon("view-left-right"),
+-                                                      i18n("Split View Left/Right"),
++                                                      i18nc("@action:inmenu", "Split View Left/Right"),
+                                                       this );
+         splitLeftRightAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_L) );
+         collection->addAction("split-view-left-right",splitLeftRightAction);
+         connect( splitLeftRightAction , SIGNAL(triggered()) , this , SLOT(splitLeftRight()) );
+ 
+         KAction* splitTopBottomAction = new KAction( KIcon("view-top-bottom") , 
+-                                             i18n("Split View Top/Bottom"),this);
++                                             i18nc("@action:inmenu", "Split View Top/Bottom"),this);
+         splitTopBottomAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_T) );
+         collection->addAction("split-view-top-bottom",splitTopBottomAction);
+         connect( splitTopBottomAction , SIGNAL(triggered()) , this , SLOT(splitTopBottom()));
+ 
+-        KAction* closeActiveAction = new KAction( i18n("Close Active") , this );
++        KAction* closeActiveAction = new KAction( i18nc("@action:inmenu Close Active View", "Close Active") , this );
+         closeActiveAction->setIcon(KIcon("view-remove"));
+         closeActiveAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_S) );
+         closeActiveAction->setEnabled(false);
+@@ -142,7 +142,7 @@
+       
+         multiViewOnlyActions << closeActiveAction; 
+ 
+-        KAction* closeOtherAction = new KAction( i18n("Close Others") , this );
++        KAction* closeOtherAction = new KAction( i18nc("@action:inmenu Close Other Views", "Close Others") , this );
+         closeOtherAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_O) );
+         closeOtherAction->setEnabled(false);
+         collection->addAction("close-other-views",closeOtherAction);
+@@ -151,7 +151,7 @@
+         multiViewOnlyActions << closeOtherAction;
+ 
+         QAction* detachViewAction = collection->addAction("detach-view");
+-        detachViewAction->setIcon( KIcon("tab-breakoff") );
++        detachViewAction->setIcon( KIcon("tab-detach") );
+         detachViewAction->setText( i18n("&Detach View") );
+         // Ctrl+Shift+D is not used as a shortcut by default because it is too close
+         // to Ctrl+D - which will terminate the session in many cases
+@@ -162,14 +162,14 @@
+         connect( detachViewAction , SIGNAL(triggered()) , this , SLOT(detachActiveView()) );
+    
+         // Expand & Shrink Active View
+-        KAction* expandActiveAction = new KAction( i18n("Expand View") , this );
++        KAction* expandActiveAction = new KAction( i18nc("@action:inmenu", "Expand View") , this );
+         expandActiveAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_BracketRight) );
+         collection->addAction("expand-active-view",expandActiveAction);
+         connect( expandActiveAction , SIGNAL(triggered()) , this , SLOT(expandActiveView()) );
+ 
+         multiViewOnlyActions << expandActiveAction;
+ 
+-        KAction* shrinkActiveAction = new KAction( i18n("Shrink View") , this );
++        KAction* shrinkActiveAction = new KAction( i18nc("@action:inmenu", "Shrink View") , this );
+         shrinkActiveAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_BracketLeft) );
+         collection->addAction("shrink-active-view",shrinkActiveAction);
+         connect( shrinkActiveAction , SIGNAL(triggered()) , this , SLOT(shrinkActiveView()) );
+--- a/apps/konsole/src/Filter.cpp
++++ b/apps/konsole/src/Filter.cpp
+@@ -487,8 +487,8 @@
+ 
+ //regexp matches:
+ // full url:  
+-// protocolname:// or www. followed by numbers, letters dots and dashes or the '@' character. 
+-const QRegExp UrlFilter::FullUrlRegExp("([a-z]+://|www\\.)[^\\s]+");
++// protocolname:// or www. followed by anything other than whitespaces, >, ' or ", and ends before whitespaces, >, ), ', ", ] and . (dot)
++const QRegExp UrlFilter::FullUrlRegExp("(www\\.(?!\\.)|[a-z][a-z0-9+.-]*://)[^\\s>'\"]+[^\\.\\s>\\)'\"\\]]");
+ // email address:
+ // [word chars, dots or dashes]@[word chars, dots or dashes].[word chars]
+ const QRegExp UrlFilter::EmailAddressRegExp("(\\w|\\.|-)+@(\\w|\\.|-)+\\.\\w+");
+--- a/apps/konsole/src/ViewContainer.cpp
++++ b/apps/konsole/src/ViewContainer.cpp
+@@ -250,7 +250,7 @@
+     _newSessionButton->setPopupMode(QToolButton::MenuButtonPopup);
+ 
+     QToolButton* closeButton = new QToolButton(_tabWidget);
+-    closeButton->setIcon( KIcon("tab-remove") );
++    closeButton->setIcon( KIcon("tab-close") );
+     closeButton->setAutoRaise(true);
+     connect( closeButton , SIGNAL(clicked()) , this , SLOT(closeTabClicked()) );
+ 
+--- a/apps/konsole/src/CMakeLists.txt
++++ b/apps/konsole/src/CMakeLists.txt
+@@ -75,7 +75,7 @@
+ 
+ kde4_add_kdeinit_executable( konsole ${konsole_KDEINIT_SRCS})
+ 
+-target_link_libraries(kdeinit_konsole  ${KDE4_KDEPRINT_LIBS} ${QT_QTXML_LIBRARY} ${KDE4_KNOTIFYCONFIG_LIBS} ${KDE4_KFILE_LIBS} )
++target_link_libraries(kdeinit_konsole ${KDE4_KPTY_LIBRARY} ${KDE4_KDE3SUPPORT_LIBS} ${KDE4_KFILE_LIBS} ${QT_QTXML_LIBRARY} ${KDE4_KNOTIFYCONFIG_LIBS} )
+ 
+ # XRender library for true transparency support    
+ if(X11_Xrender_FOUND)
+--- a/apps/konsole/src/Character.h
++++ b/apps/konsole/src/Character.h
+@@ -142,10 +142,10 @@
+ 
+ inline bool Character::isBold(const ColorEntry* base) const
+ {
+-  return (backgroundColor._colorSpace == COLOR_SPACE_DEFAULT) && 
+-            base[backgroundColor._u+0+(backgroundColor._v?BASE_COLORS:0)].bold
+-      || (backgroundColor._colorSpace == COLOR_SPACE_SYSTEM) && 
+-            base[backgroundColor._u+2+(backgroundColor._v?BASE_COLORS:0)].bold;
++  return ((backgroundColor._colorSpace == COLOR_SPACE_DEFAULT) &&
++            base[backgroundColor._u+0+(backgroundColor._v?BASE_COLORS:0)].bold)
++      || ((backgroundColor._colorSpace == COLOR_SPACE_SYSTEM) &&
++            base[backgroundColor._u+2+(backgroundColor._v?BASE_COLORS:0)].bold);
+ }
+ 
+ extern unsigned short vt100_graphics[32];
+--- a/apps/konsole/desktop/kwrited.desktop
++++ b/apps/konsole/desktop/kwrited.desktop
+@@ -30,7 +30,7 @@
+ Name[ja]=KDE Write デーモン
+ Name[ka]=KDE Writed გუშაგი
+ Name[kk]=KDE Write қызметі
+-Name[km]=KDE សរសេរ​ដេមិន
++Name[km]=ដេមិន​សរសេរ​របស់ KDE
+ Name[ko]=KDE Write 데몬
+ Name[lt]=KDE Write tarnyba
+ Name[lv]=KDE Write Dēmons
+@@ -89,8 +89,8 @@
+ Comment[ja]= write(1) か wall(1) でローカルユーザから送信されたメッセージを監視
+ Comment[ka]=ბრძანება write(1) ან wall(1)-ით ლოკალური მომხმარებლებისგან გაგზავნილ შეტყობინებებს იღებს
+ Comment[kk]=Жергілікті пайдаланушылардан write(1) және wall(1) командалармен жіберілген хабарларды қабылдайды
+-Comment[km]=មើល​​សារ​ពី​អ្នក​ប្រើ​ក្នុង​មូលដ្ឋាន​ដែល​​បាន​ផ្ញើ​ដោយ​ប្រើ write(1) ឬ wall(1)
+-Comment[ko]=write(1)이나 wall(1)을 통해 사용자가 보낸 메시지 감시
++Comment[km]=មើល​​សារ​ពី​អ្នក​ប្រើ​​មូលដ្ឋាន​ដែល​​បាន​ផ្ញើ​ដោយ​ប្រើ write(1) ឬ wall(1)
++Comment[ko]=write(1)이나 wall(1)을 통해 사용자가 보낸 메시지 감시하기
+ Comment[lt]=Stebėti vietinių naudotojų išsiųstus laiškus su write(1) arba wall(1)
+ Comment[lv]=Novēro ziņojumus no lokālajiem lietotājiem, kuri sūtīti izmantojot write(1) vai wall(1)
+ Comment[mk]=Следи за пораки од локалните корисници пратени со write(1) или wall(1)
+--- a/apps/konsole/desktop/konsole.notifyrc
++++ b/apps/konsole/desktop/konsole.notifyrc
+@@ -6,6 +6,7 @@
+ Comment[et]=Konsool
+ Comment[hr]=Konzola
+ Comment[ka]=კონსოლი
++Comment[kk]=Терминал
+ Comment[km]=កុងសូល
+ Comment[lt]=Konsolė
+ Comment[mk]=Конзола
+@@ -23,6 +24,7 @@
+ Name[af]=Klokkie in die sigbare sessie
+ Name[cy]=Cloch yn y sesiwn gweladwy
+ Name[da]=Klokke i synlig session
++Name[de]=Signalton in sichtbarer Sitzung
+ Name[el]=Ηχητική σήμανση στην ορατή συνεδρία
+ Name[eo]=Sono en videbla seanco
+ Name[et]=Heli nähtavas seansis
+@@ -38,7 +40,8 @@
+ Name[it]=Campanella in sessione visibile
+ Name[ja]=可視セッションのベル
+ Name[ka]=ხილული სესიისას ხმოვანი სიგნალი
+-Name[km]=កណ្ដឹង​ក្នុង​សម័យ​ដែល​មើល​ឃើញ
++Name[km]=កណ្ដឹង​នៅ​​ក្នុង​សម័យ​ដែល​មើល​ឃើញ
++Name[ko]=보이는 세션에서 알림 발생
+ Name[lt]=Skambutis matomose sesijose
+ Name[lv]=Zvans redzamā sesijā
+ Name[mk]=Ѕвонче во видлива сесија
+@@ -52,6 +55,7 @@
+ Name[pt_BR]=Campainha na sessão visível
+ Name[ro]=Sunet în sesiunea vizibilă
+ Name[ru]=Звуковой сигнал в видимом сеансе
++Name[sr]=Zvono u vidljivoj sesiji
+ Name[sr at latin]=Zvono u vidljivoj sesiji
+ Name[sv]=Ljudsignal i synlig session
+ Name[ta]=பார்வை கால நேரத்தில் மணி
+@@ -64,6 +68,7 @@
+ Comment[af]=Klokkie word gelui in die sigbare sessie
+ Comment[cy]=Gollyngwyd cloch mewn sesiwn gweledig
+ Comment[da]=Klokke brugt indenfor en synlig session
++Comment[de]=Signalton, der in einer sichtbaren Sitzung ertönt
+ Comment[el]=Ηχητική σήμανση μέσα στην ορατή συνεδρία
+ Comment[eo]=Sono ekiĝis en videbla seanco
+ Comment[et]=Heli nähtavas seansis
+@@ -79,6 +84,7 @@
+ Comment[it]=Campanella suonata all'interno di una sessione visibile
+ Comment[ja]=可視セッションでベルが鳴りました
+ Comment[ka]=ხილულმა სესიისამ ხმოვანი სიგნალი გამოსცა
++Comment[km]=កណ្ដឹង​ដែល​បាន​លុប​នៅ​ក្នុង​សម័យ​ដែល​មើល​ឃើញ
+ Comment[lt]=Matomos sesijos metu skambutis neveiks
+ Comment[lv]=Zvans, kas zvanīts redzamā sesijā
+ Comment[mk]=Емитувано е ѕвонче внатре во видливата сесија
+@@ -92,6 +98,7 @@
+ Comment[pt_BR]=Campainha emitida dentro de uma sessão visível
+ Comment[ro]=Sunet emis în sesiunea vizibilă
+ Comment[ru]=Видимый сеанс подал звуковой сигнал
++Comment[sr]=Zvono je emitovano unutar vidljive sesije
+ Comment[sr at latin]=Zvono je emitovano unutar vidljive sesije
+ Comment[sv]=Ljudsignal inne i en synlig session
+ Comment[ta]=பார்க்கும் காலநேர அளவுக்குள் மணி வெளித்தள்ளப்பட்டது.
+@@ -107,6 +114,7 @@
+ Name[af]=Klokkie in nie-sigbare sessie
+ Name[cy]=Cloch mewn sesiwn anweledig
+ Name[da]=Klokke i ikke-synlig session
++Name[de]=Signalton in sichtbarer Sitzung
+ Name[el]=Ηχητική σήμανση σε μη ορατή συνεδρία
+ Name[eo]=Sono en nevidebla senaco
+ Name[et]=Heli nähtamatus seansis
+@@ -123,6 +131,7 @@
+ Name[ja]=不可視セッションのベル
+ Name[ka]=უხილავი სესიისას ხმოვანი სიგნალი
+ Name[km]=កណ្ដឹង​ក្នុង​សម័យ​ដែល​មើល​មិន​ឃើញ
++Name[ko]=보이지 않는 세션에서 알림 발생
+ Name[lt]=Skambutis nematomose sesijose
+ Name[lv]=Zvans neredzamā sesijā
+ Name[mk]=Ѕвонче во невидлива сесија
+@@ -136,6 +145,7 @@
+ Name[pt_BR]=Campainha na sessão não-visível
+ Name[ro]=Sunet în sesiunea nevizibilă
+ Name[ru]=Звуковой сигнал в невидимых сеансах
++Name[sr]=Zvono u nevidljivoj sesije
+ Name[sr at latin]=Zvono u nevidljivoj sesije
+ Name[sv]=Ljudsignal i osynlig session
+ Name[ta]=பார்க்கமுடியாத காலநேரத்தில் மணி
+@@ -148,6 +158,7 @@
+ Comment[af]=Klokkie word gelui in die nie-sigbare sessie
+ Comment[cy]=Gollyngwyd cloch mewn sesiwn anweledig
+ Comment[da]=Klokke brugt indenfor en ikke-synlig session
++Comment[de]=Signalton, der in einer nicht sichtbaren Sitzung ertönt
+ Comment[el]=Ηχητική σήμανση μέση σε μια μη ορατή συνεδρία
+ Comment[eo]=Sono ekiĝis en ne videbla seanco
+ Comment[et]=Heli nähtamatus seansis
+@@ -163,6 +174,7 @@
+ Comment[it]=Campanella emessa all'interno di una sessione non visibile
+ Comment[ja]=不可視セッションでベルが鳴りました
+ Comment[ka]=უხილავმა სესიისამ ხმოვანი სიგნალი გამოსცა
++Comment[km]=កណ្ដឹង​ដែល​បានលុប​ក្នុង​សម័យ​ដែល​មើល​មិន​ឃើញ
+ Comment[lt]=Nematomos sesijos metu skambutis neveiks
+ Comment[lv]=Zvans, kas zvanīts neredzamā sesijā
+ Comment[mk]=Емитувано е ѕвонче внатре во невидливата сесија
+@@ -176,6 +188,7 @@
+ Comment[pt_BR]=Campainha emitida dentro de uma sessão não-visível
+ Comment[ro]=Sunet emis într-o sesiune nevizibilă
+ Comment[ru]=Невидимый сеанс подал звуковой сигнал
++Comment[sr]=Zvono je emitovano unutar nevidljive sesije
+ Comment[sr at latin]=Zvono je emitovano unutar nevidljive sesije
+ Comment[sv]=Ljudsignal inne i en osynlig session
+ Comment[ta]=பார்க்க முடியாத காலநேர அளவுக்குள் மணி வெளித்தள்ளப்பட்டது.
+@@ -191,6 +204,7 @@
+ Name[af]=Aktiveer in gemonitorde sessie
+ Name[cy]=Gweithgarwch mewn sesiwn wedi'i fonitro
+ Name[da]=Aktivitet i overvåget session
++Name[de]=Aktivität in überwachter Sitzung
+ Name[el]=Δραστηριότητα σε συνεδρία υπό εποπτεία
+ Name[eo]=Maltrankvilo en rigardata seanco
+ Name[et]=Aktiivsus jälgitavas seansis
+@@ -205,7 +219,8 @@
+ Name[is]=Virkni í setunni sem fylgst er með
+ Name[it]=Attività in sessione sorvegliata
+ Name[ja]=監視中のセッションの活動
+-Name[km]=សកម្មភាព​ក្នុង​សម័យ​ដែម​បាន​ត្រួត​ពិនិត្យ
++Name[km]=សកម្មភាព​ក្នុង​សម័យ​ដែល​បាន​ត្រួត​ពិនិត្យ
++Name[ko]=보이는 세션에서 활동 발생
+ Name[lt]=Stebimos sesijos veikla
+ Name[lv]=Aktivitāte monitorētā sesijā
+ Name[mk]=Активност во следената сесија
+@@ -219,6 +234,7 @@
+ Name[pt_BR]=Atividade na sessão monitorada
+ Name[ro]=Activitate în sesiunea monitorizată
+ Name[ru]=Активность в отслеживаемом сеансе
++Name[sr]=Aktivnost u nadziranoj sesiji
+ Name[sr at latin]=Aktivnost u nadziranoj sesiji
+ Name[sv]=Aktivitet i bevakad session
+ Name[ta]=கண்காணிக்கப்பட்ட கால நேரத்தில் செயல்.
+@@ -231,6 +247,7 @@
+ Comment[af]=Aktiwiteit bespeur in 'n sessie wat gemonitor word
+ Comment[cy]=Datgelwyd gweithgaredd mewn seswin wedi'i fonitro
+ Comment[da]=Aktivitet detekteret i en overvåget session
++Comment[de]=In einer überwachten Sitzung wird Aktivität festgestellt
+ Comment[el]=Εντοπίστηκε δραστηριότητα σε μια συνεδρία υπό εποπτεία
+ Comment[eo]=Maltrankvilo trovita en rigardata seanco
+ Comment[et]=Tuvastati aktiivsus jälgitavas seansis
+@@ -259,6 +276,7 @@
+ Comment[pt_BR]=Atividade detectada em uma sessão monitorada
+ Comment[ro]=Activitate detectată într-o sesiune monitorizată
+ Comment[ru]=В отслеживаемом сеансе обнаружена активность
++Comment[sr]=Otkrivena je aktivnost u nadziranoj sesiji
+ Comment[sr at latin]=Otkrivena je aktivnost u nadziranoj sesiji
+ Comment[sv]=Aktivitet funnen i en bevakad session
+ Comment[ta]=கண்காணிக்கப்பட்ட அமர்வில் செயல் கண்டுபிடிக்கப்பட்டது
+@@ -275,6 +293,7 @@
+ Name[af]=Stilte in gemonitorde sessie
+ Name[cy]=Distawrwydd mewn sesiwn wedi'i fonitro
+ Name[da]=Stilhed i overvåget session
++Name[de]=Keine Aktivität in überwachter Sitzung
+ Name[el]=Ησυχία σε συνεδρία υπό εποπτεία
+ Name[eo]=Trankvilo en rigardata seanco
+ Name[et]=Vaikus jälgitavas seansis
+@@ -303,6 +322,7 @@
+ Name[pt_BR]=Silêncio na sessão monitorada
+ Name[ro]=Linişte în sesiunea monitorizată
+ Name[ru]=Молчание в отслеживаемом сеансе
++Name[sr]=Tišina u nadziranoj sesiji
+ Name[sr at latin]=Tišina u nadziranoj sesiji
+ Name[sv]=Tystnad i bevakad session
+ Name[ta]=கண்காணிக்கப்பட்ட கால நேரத்தில் அமைதி
+@@ -314,6 +334,7 @@
+ Comment[af]=Stilte bespeur in 'n sessie wat gemonitor word
+ Comment[cy]=Datgelwyd distawrwydd mewn sesiwn wedi'i fonitro
+ Comment[da]=Stilhed detekteret i en overvåget session
++Comment[de]=In einer überwachten Sitzung wird keine Aktivität festgestellt
+ Comment[el]=Επικρατεί ησυχία σε μια συνεδρία υπό εποπτεία
+ Comment[eo]=Trankvilo trovita en rigardata seanco
+ Comment[et]=Tuvastati vaikus jälgitavas seansis
+@@ -342,6 +363,7 @@
+ Comment[pt_BR]=Silêncio detectado em uma sessão monitorada
+ Comment[ro]=Linişte detectată într-o sesiune monitorizată
+ Comment[ru]=Обнаружение молчания в отслеживаемом сеансе
++Comment[sr]=Otkrivena je tišina u nadziranoj sesiji
+ Comment[sr at latin]=Otkrivena je tišina u nadziranoj sesiji
+ Comment[sv]=Tystnad funnen i en bevakad session
+ Comment[ta]=கண்கானிக்கப்பட்ட அமர்வில் அமைதி கண்டுபிடிக்கப்பட்டது
+@@ -356,6 +378,7 @@
+ Name[af]=Sessie het geëindig met nie-zero status
+ Name[cy]=Gorffenodd y sesiwn efo cyflwr di-sero
+ Name[da]=Session afsluttet med ikke-nul status
++Name[de]=Sitzung mit nicht-Null-Status beendet
+ Name[el]=Η συνεδρία τερμάτισε με μη μηδενική κατάσταση
+ Name[eo]=Seanco finigita kun eraro
+ Name[et]=Seanss lõpetas nullist erineva staatusega
+@@ -370,7 +393,7 @@
+ Name[it]=Sessione completata con stato diverso da zero
+ Name[ja]=ゼロでないステータスでセッションが終了
+ Name[ka]=სეანსი დასრულდა ნულოვანი რეზულტატით
+-Name[km]=សម័យ​ដែល​បាន​បញ្ចប់​ជាមួយ​ស្ថានភាព​មិន​សូន្យ
++Name[km]=សម័យ​ដែល​បាន​បញ្ចប់​ដោយ​ស្ថានភាព​មិន​សូន្យ
+ Name[lt]=Sesija baigta ne nuliniu statusu
+ Name[lv]=Sesija beidzās ar nenulles statusu
+ Name[mk]=Сесијата заврши со ненулти статус
+@@ -384,6 +407,7 @@
+ Name[pt_BR]=Sessão finalizada com um status não-zero
+ Name[ro]=Sesiunea s-a terminat cu rezultat diferit de zero
+ Name[ru]=Сеанс завершился с ненулевым состоянием
++Name[sr]=Sesija je završena sa ne-nula statusom
+ Name[sr at latin]=Sesija je završena sa ne-nula statusom
+ Name[sv]=Sessionen klar med status skild från noll
+ Name[ta]=கால நேரம் பூஜ்யம் இல்லாமல் முடிந்தது.
+@@ -396,6 +420,7 @@
+ Comment[af]='n Sessie het met 'n nie-zero status geëindig
+ Comment[cy]=Terfynnodd sesiwn efo cyflwr di-sero
+ Comment[da]=En session er afsluttet med ikke-nul status
++Comment[de]=Eine Sitzung wurde mit einem Status ungleich Null beendet.
+ Comment[el]=Μια συνεδρία τερμάτισε με μη μηδενική κατάσταση
+ Comment[eo]=Seanco finiĝis kun eraro
+ Comment[et]=Seanss väljus nullist erineva staatusega
+@@ -410,7 +435,8 @@
+ Comment[it]=È terminata una sessione con un valore di stato diverso da zero
+ Comment[ja]=ゼロでないステータスでセッションが終了しました
+ Comment[ka]=სეანსი დასრულდა არანულოვანი რეზულტატით
+-Comment[km]=សម័យ​បាន​បិទ​ជាមួយ​ស្ថានភាព​មិន​សូន្យ
++Comment[km]=សម័យ​បាន​បិទ​ដោយ​​ស្ថានភាព​មិន​សូន្យ
++Comment[ko]=세션이 0이 아닌 상태로 끝났음
+ Comment[lt]=Sesija baigė darbą su nenuliniu rėžimu
+ Comment[lv]=Sesija beidzās ar nenulles statusu
+ Comment[mk]=Сесијата излезе со ненулти статус
+@@ -424,6 +450,7 @@
+ Comment[pt_BR]=Uma sessão foi fechada com um status não-zero
+ Comment[ro]=O sesiune s-a terminat cu rezultat diferit de zero
+ Comment[ru]=Сеанс завершился с ненулевым состоянием
++Comment[sr]=Sesija je izašla sa ne-nula statusom
+ Comment[sr at latin]=Sesija je izašla sa ne-nula statusom
+ Comment[sv]=En session har avslutats med status skild från noll
+ Comment[ta]=ஒரு கூட்டம் ஒன்றுமில்லாமல் முடிந்தது/
+--- a/apps/konsole/desktop/konsolehere.desktop
++++ b/apps/konsole/desktop/konsolehere.desktop
+@@ -1,37 +1,10 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Type=Application
++Type=Service
+ ServiceTypes=inode/directory
+ Actions=openTerminalHere;
+ X-KDE-AuthorizeAction=shell_access
+ 
+-Name=Konsole
+-Name[bg]=Конзола
+-Name[ca]=Consola
+-Name[csb]=Kònsola
+-Name[el]=Κονσόλα
+-Name[eo]=Konzolo
+-Name[et]=Konsool
+-Name[eu]=Kontsola
+-Name[hr]=Konzola
+-Name[is]=Skjáhermir
+-Name[ka]=კონსოლი
+-Name[km]=កុងសូល
+-Name[mk]=Конзола
+-Name[nb]=Konsoll
+-Name[ne]=कन्सोल
+-Name[nn]=Konsoll
+-Name[pa]=ਕੰਨਸੋਲ
+-Name[pl]=Konsola
+-Name[ro]=Consolă
+-Name[ru]=Консоль
+-Name[se]=Konsolla
+-Name[sl]=Konzola
+-Name[ta]=கான்சோல்
+-Name[te]=కాన్సోల్
+-Name[tg]=Консол
+-Name[x-test]=xxKonsolexx
+-
+ [Desktop Action openTerminalHere]
+ Name=Open Terminal Here
+ Name[af]=Maak Terminaal Hier Oop
+@@ -44,7 +17,7 @@
+ Name[csb]=Òtemkni tuwò terminal
+ Name[cy]=Agor Terfynell Yma
+ Name[da]=Åbn terminal her
+-Name[de]=Terminal öffnen
++Name[de]=Terminal hier öffnen
+ Name[el]=Άνοιγμα τερματικού εδώ
+ Name[eo]=Startu terminalon ĉi tie
+ Name[es]=Abrir terminal aquí
+--- a/apps/konsole/desktop/quick-access-konsole.desktop
++++ b/apps/konsole/desktop/quick-access-konsole.desktop
+@@ -16,6 +16,7 @@
+ Name[de]=Schnellzugrif auf Terminal
+ Name[el]=Τερματικό γρήγορης πρόσβασης
+ Name[es]=Terminal de acceso rápido
++Name[et]=Terminali kiirkasutamine
+ Name[fa]=پایانه دستیابی سریع
+ Name[he]=מסוף לגישה מהירה
+ Name[it]=Terminale ad accesso rapido
+--- a/apps/config-apps.h.cmake
++++ b/apps/config-apps.h.cmake
+@@ -70,13 +70,13 @@
+ #cmakedefine HAVE_VSNPRINTF 1
+ 
+ /* KDE's binaries directory */
+-#define KDE_BINDIR "${CMAKE_INSTALL_PREFIX}/bin"
++#define KDE_BINDIR "${BIN_INSTALL_DIR}"
+ 
+ /* KDE's configuration directory */
+-#define KDE_CONFDIR "${CMAKE_INSTALL_PREFIX}/share/config"
++#define KDE_CONFDIR "${CONFIG_INSTALL_DIR}"
+ 
+ /* KDE's static data directory */
+-#define KDE_DATADIR "${CMAKE_INSTALL_PREFIX}/share/apps"
++#define KDE_DATADIR "${DATA_INSTALL_DIR}"
+ 
+ /* Define where your java executable is */
+ #undef PATH_JAVA
+--- a/runtime/kuiserver/kuiserver.desktop
++++ b/runtime/kuiserver/kuiserver.desktop
+@@ -11,6 +11,7 @@
+ Comment[bg]=Сървър за интерфейса на KDE
+ Comment[de]=KDE-Dienst zur Fortschrittsanzeige
+ Comment[el]=Εξυπηρετητής πληροφοριών διεργασιών του KDE
++Comment[et]=KDE edenemisinfo graafiline server
+ Comment[fa]=کارساز واسط کاربر اطلاعات پیشرفت KDE
+ Comment[he]=שרת ממשק משתמש של KDE למידע לגבי התקדמות
+ Comment[ja]=KDE 進捗情報 UI サーバ
+--- a/runtime/kdebugdialog/main.cpp
++++ b/runtime/kdebugdialog/main.cpp
+@@ -116,7 +116,7 @@
+       dialog->config()->sync();
+   }
+   else
+-    dialog->config()->clean();
++    dialog->config()->markAsClean();
+ 
+   return 0;
+ }
+--- a/runtime/kdebugdialog/kabstractdebugdialog.cpp
++++ b/runtime/kdebugdialog/kabstractdebugdialog.cpp
+@@ -31,7 +31,7 @@
+ {
+ 	setObjectName(name);
+ 	setModal(modal);
+-    pConfig = new KConfig( "kdebugrc", KConfig::CascadeConfig );
++    pConfig = new KConfig( "kdebugrc", KConfig::NoGlobals );
+ }
+ 
+ KAbstractDebugDialog::~KAbstractDebugDialog()
+--- a/runtime/knotify/knotify4.desktop
++++ b/runtime/knotify/knotify4.desktop
+@@ -16,13 +16,14 @@
+ Comment[de]=KDE Benachrichtigungsdienst
+ Comment[el]=Δαίμονας ειδοποιήσεων του KDE
+ Comment[es]=Servicio de notificaciones de KDE
++Comment[et]=KDE märguannete deemon
+ Comment[fa]=شبح اخطار KDE
+ Comment[ga]=Deamhan Fógartha KDE
+ Comment[he]=שירות ההודעות של KDE
+ Comment[it]=Demone delle notifiche di KDE
+ Comment[ja]=KDE 通知デーモン
+ Comment[kk]=KDE құлақтандыру қызметі
+-Comment[km]=ដេមិន​ការ​ជូន​ដំណឹង​របស់ KDE
++Comment[km]=ដេមិន​​ជូន​ដំណឹង​របស់ KDE
+ Comment[ko]=KDE 알림 데몬
+ Comment[nb]=KDEs varslingsnisse
+ Comment[nds]=KDE-Dämoon för Bescheden
+--- a/runtime/knotify/knotifyconfig.cpp
++++ b/runtime/knotify/knotifyconfig.cpp
+@@ -26,8 +26,8 @@
+ 
+ KNotifyConfig::KNotifyConfig( const QString & _appname, const ContextList & _contexts, const QString & _eventid )
+ 	: appname (_appname),
+-	eventsfile(KSharedConfig::openConfig (_appname+'/'+_appname + ".notifyrc" , KConfig::CascadeConfig, "data" )),
+-	configfile(KSharedConfig::openConfig (_appname+QString::fromAscii( ".notifyrc" ), KConfig::CascadeConfig)),
++	eventsfile(KSharedConfig::openConfig (_appname+'/'+_appname + ".notifyrc" , KConfig::NoGlobals, "data" )),
++	configfile(KSharedConfig::openConfig (_appname+QString::fromAscii( ".notifyrc" ), KConfig::NoGlobals)),
+ 	contexts(_contexts) , eventid(_eventid)
+ {
+ //	kDebug(300) << appname << " , " << eventid;
+@@ -46,7 +46,7 @@
+ 		if( configfile->hasGroup( group ) )
+ 		{
+ 			KConfigGroup cg(configfile, group);
+-			QString p=path ?  cg.readPathEntry(entry) : cg.readEntry(entry,QString());
++			QString p=path ?  cg.readPathEntry(entry, QString()) : cg.readEntry(entry,QString());
+ 			if(!p.isNull())
+ 				return p;
+ 		}
+@@ -56,7 +56,7 @@
+ 	if(configfile->hasGroup( group ) )
+ 	{
+ 		KConfigGroup cg(configfile, group);
+-		QString p=path ?  cg.readPathEntry(entry) : cg.readEntry(entry,QString());
++		QString p=path ?  cg.readPathEntry(entry, QString()) : cg.readEntry(entry,QString());
+ 		if(!p.isNull())
+ 			return p;
+ 	}
+@@ -64,7 +64,7 @@
+ 	if(eventsfile->hasGroup( group ) )
+ 	{
+             KConfigGroup cg( eventsfile, group);
+-		QString p=path ?  cg.readPathEntry(entry) : cg.readEntry(entry, QString());
++		QString p=path ?  cg.readPathEntry(entry, QString()) : cg.readEntry(entry, QString());
+ 		if(!p.isNull())
+ 			return p;
+ 	}
+--- a/runtime/knotify/notifybysound.cpp
++++ b/runtime/knotify/notifybysound.cpp
+@@ -92,7 +92,7 @@
+ 	if(cg.readEntry( "Use external player", false ))
+ 	{
+ 		d->playerMode = Private::ExternalPlayer;
+-		d->externalPlayer = cg.readPathEntry("External player");
++		d->externalPlayer = cg.readPathEntry("External player", QString());
+ 		// try to locate a suitable player if none is configured
+ 		if ( d->externalPlayer.isEmpty() ) {
+ 			QStringList players;
+--- a/runtime/knotify/kde.notifyrc
++++ b/runtime/knotify/kde.notifyrc
+@@ -2,17 +2,22 @@
+ IconName=kmenu
+ Comment=KDE System Notifications
+ Comment[be]=Сістэмныя абвяшчэнні KDE
++Comment[de]=KDE-Systemnachrichten
+ Comment[el]=Ειδοποιήσεις συστήματος KDE
++Comment[et]=KDE süsteemsed märguanded
+ Comment[ga]=Fógairt an Chórais KDE
+ Comment[it]=Avvisi di sistema di KDE
+ Comment[ja]=KDE システム通知
+-Comment[km]=ការ​ជូន​ដំណឹង​ប្រព័ន្ធ KDE
++Comment[kk]=KDE жүйелік құлақтандырулар
++Comment[km]=ការ​ជូន​ដំណឹង​ប្រព័ន្ធ​របស់ KDE
++Comment[ko]=KDE 시스템 알림
+ Comment[nb]=KDE systemvarsler
+ Comment[nds]=KDE-Systeembescheden
+ Comment[nl]=Systeemnotificaties (KDE)
+ Comment[nn]=KDE systempåminningar
+ Comment[pt]=Notificações do Sistema KDE
+ Comment[pt_BR]=Notificações de Sistema do KDE
++Comment[ru]=Системные уведомления
+ Comment[sv]=KDE:s systemunderrättelser
+ Comment[th]=การแจ้งเตือนระบบ KDE
+ Comment[x-test]=xxKDE System Notificationsxx
+@@ -21,11 +26,14 @@
+ 
+ [Event/Trash: emptied]
+ Name=Trash: emptied
++Name[de]=Mülleimer: geleert
+ Name[el]=Απορρίμματα: άδειασαν
++Name[et]=Prügikast: tühjendatud
+ Name[ga]=Bruscar: folamh
+ Name[it]=Cestino: svuotato
+ Name[ja]=ごみ箱: 空
+-Name[km]=ធុង​សំរាម ៖ សម្អាត
++Name[km]=ធុង​សំរាម ៖ បាន​សម្អាត
++Name[ko]=휴지통: 비워짐
+ Name[lt]=Šiukšliadėžė: ištuštinta
+ Name[nb]=Papirkurven tømt
+ Name[nds]=Affalltünn leddig maakt
+@@ -39,11 +47,14 @@
+ Name[zh_CN]=回收站:空的
+ Name[zh_TW]=資源回收筒:已清空
+ Comment=The trash has been emptied
++Comment[de]=Der Mülleimer wurde geleert
+ Comment[el]=Τα απορρίμματα άδειασαν
++Comment[et]=Prügikast on tühjendatud
+ Comment[ga]=Folmhaíodh an bruscar
+ Comment[it]=Il cestino è stato svuotato
+ Comment[ja]=ごみ箱を空にしました
+ Comment[km]=ធុង​សំរាម​ត្រូវ​បាន​សម្អាត
++Comment[ko]=휴지통이 비워짐
+ Comment[lt]=Šiukšliadėžė buvo ištuštinta
+ Comment[nb]=Papirkurven er blitt tømt
+ Comment[nds]=De Affalltünn wöör leddig maakt
+@@ -61,10 +72,13 @@
+ 
+ [Event/Textcompletion: rotation]
+ Name=Textcompletion: rotation
++Name[de]=Textvervollständigung: Rotation
+ Name[el]=Συμπλήρωση κειμένου: περιστροφή
++Name[et]=Tekstilõpetus: rotatsioon
+ Name[it]=Completamento del testo: rotazione
+ Name[ja]=テキスト補完: 繰り返し
+ Name[km]=ការ​បំពេញ​អត្ថបទ ៖ ការ​បង្វិល
++Name[ko]=텍스트 완성: 회전
+ Name[lt]=Textcompletion: sukimas
+ Name[nb]=Tekstfullføring: ruller over
+ Name[nds]=Textkompletteren: Dreihen
+@@ -78,10 +92,13 @@
+ Name[zh_CN]=文本补全:旋转
+ Name[zh_TW]=文字補完:循環
+ Comment=The end of the list of matches has been reached
++Comment[de]=Das Ende der Trefferliste wurde erreicht
+ Comment[el]=Άφιξη στο τέλος της λίστας των ταιριασμάτων
++Comment[et]=Jõuti sobivuste nimekirja lõppu
+ Comment[it]=La fine della lista delle corrispondenze è stata raggiunta
+ Comment[ja]=マッチリストの終端に達しました
+-Comment[km]=បាន​ទៅ​ដល់​ចុង​បញ្ចប់​នៃ​បញ្ជី​នៃ​ដំណូច
++Comment[km]=បាន​ទៅ​ដល់​ចុង​​បញ្ជី​​នៃ​ដំណូច
++Comment[ko]=일치하는 항목 목록의 끝에 도달함
+ Comment[lt]=Pasiektas atitikmenų sąrašo galas
+ Comment[nb]=Kom til slutten av lista over treff
+ Comment[nds]=Bi't Enn vun list mit Drepers anlangt
+@@ -99,10 +116,13 @@
+ 
+ [Event/Textcompletion: no match]
+ Name=Textcompletion: no match
++Name[de]=Textvervollständigung: kein Treffer
+ Name[el]=Συμπλήρωση κειμένου: κανένα ταίριασμα
++Name[et]=Tekstilõpetus: sobivused puuduvad
+ Name[it]=Completamento del testo: nessuna corrispondenza
+ Name[ja]=テキスト補完: マッチなし
+ Name[km]=ការ​បំពេញ​អត្ថបទ ៖ គ្មាន​ដំណូច
++Name[ko]=텍스트 완성: 일치하는 것 없음
+ Name[lt]=Textcompletion: netinka
+ Name[nb]=Tekstfullføring: ingen treff
+ Name[nds]=Textkompletteren: keen Dreper
+@@ -116,10 +136,13 @@
+ Name[zh_CN]=文本补全:没有匹配
+ Name[zh_TW]=文字補完:沒有符合
+ Comment=No matching completion was found
++Comment[de]=Es wurde keine mögliche Vervollständigung gefunden
+ Comment[el]=Δε βρέθηκε ταίριασμα για τη συμπλήρωση
++Comment[et]=Ühtegi sobivat lõpetust ei leitud
+ Comment[it]=Non è stata trovato nessun completamento corrispondente
+ Comment[ja]=マッチする補完は見つかりませんでした
+ Comment[km]=រក​មិន​ឃើញ​ការ​បំពេញ​ដែល​ផ្គូផ្គង
++Comment[ko]=일치하는 항목을 찾을 수 없음
+ Comment[lt]=Nerasta atitinkanti pabaiga
+ Comment[nb]=Fant ingen tekstfullføring som passet
+ Comment[nds]=Dor findt sik keen passen Kompletteren
+@@ -137,10 +160,13 @@
+ 
+ [Event/Textcompletion: partial match]
+ Name=Textcompletion: partial match
++Name[de]=Textvervollständigung: teilweiser Treffer
+ Name[el]=Συμπλήρωση κειμένου: μερικό ταίριασμα
++Name[et]=Tekstilõpetus: osaline sobivus
+ Name[it]=Completamento del testo: corrispondenza parziale
+ Name[ja]=テキスト補完: 部分的にマッチ
+-Name[km]=ការ​បំពេញ​អត្ថបទ ៖ ដំណូច​ផ្នែក​ខ្លះ
++Name[km]=ការ​បំពេញ​អត្ថបទ ៖ ដំណូច​​ដោយ​ផ្នែក
++Name[ko]=텍스트 완성: 부분적 일치
+ Name[lt]=Textcompletion: tinka dalinai
+ Name[nb]=Tekstfullføring:delvis treff
+ Name[nds]=Textkompletteren: Deeldreper
+@@ -153,10 +179,13 @@
+ Name[zh_CN]=文本补全:部分匹配
+ Name[zh_TW]=文字補完:部份符合
+ Comment=There is more than one possible match
++Comment[de]=Es gibt mehr als einen möglichen Treffer
+ Comment[el]=Υπάρχει παραπάνω από ένα πιθανό ταίριασμα
++Comment[et]=Võimalikke sobivusi on enam kui üks
+ Comment[it]=C'è più di una corrispondenza possibile
+ Comment[ja]=マッチするものが複数あります
+-Comment[km]=មាន​ដំណូច​ច្រើន​ជាង​មួយ​ដែល​អាច
++Comment[km]=មាន​ដំណូច​ច្រើន​ជាង​មួយ​ដែល​អាច​​ប្រើ​បាន
++Comment[ko]=하나 이상의 일치하는 항목이 있음
+ Comment[lt]=Yra daugiau negu vienas galimas atitikmuo
+ Comment[nb]=Det er mer enn ett mulig treff
+ Comment[nds]=Dat gifft mehr as een mööglichen Dreper
+@@ -174,10 +203,14 @@
+ [Event/fatalerror]
+ Name=Fatal Error
+ Name[be]=Зруйнавальная памылка
++Name[de]=Schwerer Fehler
+ Name[el]=Κρίσιμο σφάλμα
++Name[et]=Saatuslik viga
+ Name[it]=Errore fatale
+ Name[ja]=致命的なエラー
++Name[kk]=Түзелмейтін қате
+ Name[km]=កំហុស​ធ្ងន់ធ្ងរ
++Name[ko]=치명적 오류
+ Name[lt]=Lemtinga klaida
+ Name[nb]=Kritisk feil
+ Name[nds]=Swoor Fehler
+@@ -191,10 +224,13 @@
+ Name[zh_CN]=致命错误
+ Name[zh_TW]=嚴重錯誤
+ Comment=There was a serious error causing the program to exit
++Comment[de]=Es ist ein schwerer Fehler aufgetreten, woraufhin das Programm beendet wurde.
+ Comment[el]=Υπήρξε ένα σοβαρό σφάλμα που είχε σαν αποτέλεσμα τον τερματισμό του προγράμματος
++Comment[et]=Tekkis tõsine viga, mis sundis programmi tööd lõpetama
+ Comment[it]=C'è stato un errore serio che ha fatto terminare il programma
+ Comment[ja]=プログラムを終了させる深刻なエラーが発生しました
+-Comment[km]=មាន​កំហុស​ធ្ងន់ធ្ងរ​ដែល​បង្ក​ឲ្យ​កម្មវិធី​បិទ
++Comment[km]=មាន​កំហុស​ធ្ងន់ធ្ងរ​មួយ​​ដែល​បង្ក​ឲ្យ​កម្មវិធី​បិទ
++Comment[ko]=프로그램이 종료될 정도의 큰 오류가 발생함
+ Comment[lt]=Įvyko rimta klaida, privertusi programą užbaigti darbą
+ Comment[nb]=Det oppsto em alvorlig feil som gjorde at programmet avsluttet
+ Comment[nds]=Dat geev en swoor Fehler, dat Programm is utstegen
+@@ -214,27 +250,35 @@
+ [Event/notification]
+ Name=Notification
+ Name[be]=Абвяшчэнні
++Name[de]=Benachrichtigung
+ Name[el]=Ειδοποίηση
++Name[et]=Märguanne
+ Name[ga]=Fógairt
+ Name[it]=Avvisi
+ Name[ja]=通知
++Name[kk]=Құлақтандыру
+ Name[km]=សេចក្តី​ជូន​ដំណឹង​
++Name[ko]=알림
+ Name[nb]=Varsling
+ Name[nds]=Bescheed
+ Name[nl]=Melding
+ Name[nn]=Varsling
+ Name[pt]=Notificação
+ Name[pt_BR]=Notificação
++Name[ru]=Уведомления
+ Name[sv]=Underrättelse
+ Name[th]=การแจ้งเตือน
+ Name[x-test]=xxNotificationxx
+ Name[zh_CN]=通知
+ Name[zh_TW]=通知
+ Comment=Something special happened in the program
++Comment[de]=Im Programm ist ein besonderes Ereignis eingetreten
+ Comment[el]=Εμφάνιση κάποιου ειδικού γεγονότος στο πρόγραμμα
++Comment[et]=Programmis juhtus midagi erilist
+ Comment[it]=È successo qualcosa di particolare nel programma
+ Comment[ja]=何か特別なことがプログラムに起こりました
+-Comment[km]=អ្វី​ពិសេស​បាន​កើត​ឡើង​ក្នុង​កម្មវិធី
++Comment[km]=មាន​អ្វី​ពិសេស​បាន​កើត​ឡើង​ក្នុង​កម្មវិធី
++Comment[ko]=프로그램에서 특별한 일이 발생함
+ Comment[lt]=Kažkoks specialus įvykis programoje
+ Comment[nb]=Det hendte noe spesielt i programmet
+ Comment[nds]=Dat geev en afsünnerlich Begeefnis binnen dat Programm
+@@ -253,11 +297,15 @@
+ [Event/warning]
+ Name=Warning
+ Name[be]=Папярэджанне
++Name[de]=Warnung
+ Name[el]=Προειδοποίηση
++Name[et]=Hoiatus
+ Name[ga]=Rabhadh
+ Name[it]=Attenzione
+ Name[ja]=警告
++Name[kk]=Ескерту
+ Name[km]=ការ​ព្រមាន
++Name[ko]=경고
+ Name[lt]=Dėmesio
+ Name[nb]=Advarsel
+ Name[nds]=Wohrschoen
+@@ -271,10 +319,13 @@
+ Name[zh_CN]=警告
+ Name[zh_TW]=警告
+ Comment=There was an error in the program which may cause problems
++Comment[de]=Im Programm ist ein Fehler aufgetreten, der Probleme verursachen könnte
+ Comment[el]=Υπήρξε ένα σφάλμα στο πρόγραμμα το οποίο μπορεί να προκαλέσει προβλήματα
++Comment[et]=Programmis tekkis viga, mis võib tekitada probleeme
+ Comment[it]=C'è stato un errore nel programma che potrebbe causare problemi
+ Comment[ja]=問題を引き起こす可能性のあるエラーがプログラムに発生しました
+ Comment[km]=មាន​កំហុស​ក្នុង​កម្មវិធី​ដែល​អាច​បង្ក​បញ្ហា
++Comment[ko]=프로그램에 문제를 가져올 수 있는 오류가 발생함
+ Comment[lt]=Įvyko programos klaida, galinti sukelti problemų
+ Comment[nb]=Det oppsto feil i programmet, som kan gi vanskeligheter
+ Comment[nds]=Dat geev en Fehler binnen dat Programm, villicht suert dor Problemen bi rut
+@@ -293,10 +344,13 @@
+ [Event/catastrophe]
+ Name=Catastrophe
+ Name[be]=Катастрофа
++Name[de]=Katastrophe
+ Name[el]=Καταστροφή
++Name[et]=Katastroof
+ Name[ga]=Tubaiste
+ Name[it]=Catastrofe
+ Name[ja]=大惨事
++Name[ko]=중대한 오류
+ Name[lt]=Katastrofa
+ Name[nb]=Katastrofe
+ Name[nds]=Groot Malöör
+@@ -310,10 +364,13 @@
+ Name[zh_CN]=重大灾难
+ Name[zh_TW]=發生大災難
+ Comment=A very serious error occurred, at least causing the program to exit
++Comment[de]=Ein sehr schwerer Fehler ist aufgetreten, der wenigstens das Programm zum Beenden bringt
+ Comment[el]=Συνέβη ένα πολύ σοβαρό σφάλμα, με αρχικό αποτέλεσμα την κατάρρευση του προγράμματος
++Comment[et]=Tekkis väga tõsine viga, mis sundis programmi tööd lõpetama
+ Comment[it]=Si è verificato un errore molto serio, che ha causato almeno l'uscita del programma
+ Comment[ja]=少なくともプログラムを終了させる非常に重大なエラーが発生しました
+-Comment[km]=កំហុស​ធ្ងន់ធ្ងរ​បំផុត​បាន​កើត​ឡើង យ៉ាង​ហោច​ណាស់ វា​បង្ក​ឲ្យ​កម្មវិធី​បិទ
++Comment[km]=កំហុស​ធ្ងន់ធ្ងរ​បំផុត​បាន​កើត​ឡើង យ៉ាង​ហោច​ណាស់​វា​បង្ក​ឲ្យ​កម្មវិធី​បិទ
++Comment[ko]=프로그램이 종료될 정도의 매우 큰 오류가 발생함
+ Comment[lt]=Įvyko labai rimta klaida, privertusi programą bent jau baigti darbą.
+ Comment[nb]=Det oppsto en meget alvorlig feil, som minst gjorde at programmet stoppet
+ Comment[nds]=Dat geev en groot Malöör, tominnst dat Programm is utstegen
+@@ -333,10 +390,13 @@
+ [Event/startkde]
+ Name=Login
+ Name[be]=Уваход
++Name[de]=Anmeldung
+ Name[el]=Σύνδεση
++Name[et]=Sisselogimine
+ Name[ga]=Logáil Isteach
+ Name[ja]=ログイン
+ Name[km]=ចូល
++Name[ko]=로그인
+ Name[nb]=Logg inn
+ Name[nds]=Anmellen
+ Name[nl]=Aanmelden
+@@ -349,10 +409,13 @@
+ Name[zh_TW]=登入
+ Comment=KDE is starting up
+ Comment[be]=KDE запускаецца
++Comment[de]=KDE wird gestartet
+ Comment[el]=Το KDE εκκινεί
++Comment[et]=KDE käivitumine
+ Comment[it]=KDE sta partendo
+ Comment[ja]=KDE 起動中
+ Comment[km]=KDE កំពុង​ចាប់ផ្ដើម
++Comment[ko]=KDE가 시작되는 중
+ Comment[nb]=KDE starter
+ Comment[nds]=KDE fohrt hooch
+ Comment[nl]=KDE start op
+@@ -370,10 +433,13 @@
+ [Event/exitkde]
+ Name=Logout
+ Name[be]=Выйсці
++Name[de]=Abmeldung
+ Name[el]=Αποσύνδεση
++Name[et]=Väljalogimine
+ Name[ga]=Logáil Amach
+ Name[ja]=ログアウト
+ Name[km]=ចេញ
++Name[ko]=로그아웃
+ Name[nb]=Logg ut
+ Name[nds]=Afmellen
+ Name[nl]=Afmelden
+@@ -386,10 +452,13 @@
+ Name[zh_TW]=登出
+ Comment=KDE is exiting
+ Comment[be]=Выхад з KDE
++Comment[de]=KDE wird beendet
+ Comment[el]=Έξοδος από το KDE
++Comment[et]=KDE sulgemine
+ Comment[it]=KDE sta terminando
+ Comment[ja]=KDE 終了中
+ Comment[km]=KDE កំពុង​បិទ
++Comment[ko]=KDE가 종료되는 중
+ Comment[nb]=KDE avslutter
+ Comment[nds]=KDE stiegt ut
+ Comment[nl]=KDE sluit af
+@@ -406,9 +475,12 @@
+ 
+ [Event/cancellogout]
+ Name=Logout Canceled
++Name[de]=Abmeldung abgebrochen
+ Name[el]=Ακύρωση αποσύνδεσης
++Name[et]=Väljalogimine katkestatud
+ Name[ja]=ログアウトのキャンセル
+ Name[km]=បោះបង់​ការ​ចេញ
++Name[ko]=로그아웃 취소됨
+ Name[nb]=Utlogging avbrutt
+ Name[nds]=Afmellen afbraken
+ Name[nl]=Afmelden geannuleerd
+@@ -421,9 +493,12 @@
+ Name[zh_CN]=注销取消了
+ Name[zh_TW]=登出已取消
+ Comment=KDE logout was canceled
++Comment[de]=Der Abmeldevorgang aus KDE wurde abgebrochen
+ Comment[el]=Η αποσύνδεση από το KDE ακυρώθηκε
++Comment[et]=KDEst väljalogimine katkestati
+ Comment[ja]=KDE からのログアウトがキャンセルされました
+ Comment[km]=ការ​ចេញ​ពី KDE ត្រូវ​បាន​បោះបង់
++Comment[ko]=KDE 로그아웃이 취소됨
+ Comment[lt]=Išsiregistravimas iš KDE buvo nutrauktas
+ Comment[nb]=KDE utlogging ble avbrutt
+ Comment[nds]=Afmellen ut KDE wöör afbraken
+@@ -441,11 +516,14 @@
+ [Event/printerror]
+ Name=Print Error
+ Name[be]=Памылка друку
++Name[de]=Druckfehler
+ Name[el]=Σφάλμα εκτύπωσης
++Name[et]=Trükkimise viga
+ Name[ga]=Earráid Priontála
+ Name[it]=Errore di stampa
+ Name[ja]=印刷エラー
+ Name[km]=កំហុស​បោះពុម្ព
++Name[ko]=인쇄 오류
+ Name[nb]=Utskriftsfeil
+ Name[nds]=Druckfehler
+ Name[nl]=Printerfout
+@@ -458,11 +536,14 @@
+ Name[zh_CN]=打印错误
+ Name[zh_TW]=列印錯誤
+ Comment=A print error has occurred
++Comment[de]=Ein Fehler beim Drucken ist aufgetreten
+ Comment[el]=Συνέβη ένα σφάλμα κατά την εκτύπωση
++Comment[et]=Trükkimisel tekkis viga
+ Comment[ga]=Tharla earráid priontála
+ Comment[it]=È capitato un errore di stampa
+ Comment[ja]=印刷エラーが発生しました
+ Comment[km]=កំហុស​បោះពុម្ព​បាន​កើត​ឡើង
++Comment[ko]=인쇄 오류가 발생함
+ Comment[lt]=Įvyko spausdinimo klaida
+ Comment[nb]=Det oppsto en utskriftsfeil
+ Comment[nds]=Dat geev en Fehler bi't Drucken
+@@ -481,7 +562,9 @@
+ [Event/messageInformation]
+ Name=Information Message
+ Name[be]=Інфармацыйнае паведамленне
++Name[de]=Informations-Meldung
+ Name[el]=Μήνυμα πληροφοριών
++Name[et]=Info
+ Name[ga]=Teachtaireacht
+ Name[it]=Messaggio informativo
+ Name[ja]=情報メッセージ
+@@ -499,12 +582,14 @@
+ Name[zh_CN]=信息消息
+ Name[zh_TW]=資訊訊息
+ Comment=An information message is being shown
++Comment[de]=Eine Informations-Meldung wird angezeigt
+ Comment[el]=Εμφάνιση ενός μηνύματος πληροφοριών
++Comment[et]=Näidatakse infot
+ Comment[ga]=Teachtaireacht á taispeáint
+ Comment[it]=È stato mostrato un messaggio informativo
+ Comment[ja]=情報メッセージが表示されています
+ Comment[km]=សារ​ព័ត៌មាន​កំពុង​ត្រូវ​បាន​បង្ហាញ
+-Comment[ko]=정보 메시지가 표시되었습니다
++Comment[ko]=정보 메시지가 표시됨
+ Comment[lt]=Rodomas informacinis pranešimas
+ Comment[nb]=En informasjonsmelding blir vist
+ Comment[nds]=En Informatschoon warrt wiest
+@@ -523,7 +608,9 @@
+ [Event/messageWarning]
+ Name=Warning Message
+ Name[be]=Паведамленне папярэджэння
++Name[de]=Warnungs-Meldung
+ Name[el]=Μήνυμα προειδοποίησης
++Name[et]=Hoiatus
+ Name[ga]=Rabhadh
+ Name[it]=Messaggio di attenzione
+ Name[ja]=警告メッセージ
+@@ -541,12 +628,14 @@
+ Name[zh_CN]=警告消息
+ Name[zh_TW]=警告訊息
+ Comment=A warning message is being shown
++Comment[de]=Eine Warnungs-Meldung wird angezeigt
+ Comment[el]=Εμφάνιση ενός μηνύματος προειδοποίησης
++Comment[et]=Näidatakse hoiatus
+ Comment[ga]=Rabhadh á thaispeáint
+ Comment[it]=È stato mostrato un messaggio di attenzione
+ Comment[ja]=警告メッセージが表示されています
+ Comment[km]=សារ​ព្រមាន​កំពុង​ត្រូវ​បាន​បង្ហាញ
+-Comment[ko]=경고 메시지가 표시되었습니다
++Comment[ko]=경고 메시지가 표시됨
+ Comment[lt]=Rodomas perspėjantis pranešimas
+ Comment[nb]=Det vises en advarselsmelding
+ Comment[nds]=En Wohrschoen warrt wiest
+@@ -564,7 +653,9 @@
+ 
+ [Event/messageCritical]
+ Name=Critical Message
++Name[de]=Fehler-Meldung
+ Name[el]=Κρίσιμο μήνυμα
++Name[et]=Kriitiline
+ Name[it]=Messaggio critico
+ Name[ja]=重大なメッセージ
+ Name[km]=សារ​សំខាន់​បំផុត
+@@ -581,11 +672,13 @@
+ Name[zh_CN]=严重消息
+ Name[zh_TW]=嚴重訊息
+ Comment=A critical message is being shown
++Comment[de]=Eine kritische Fehlermeldung wird angezeigt
+ Comment[el]=Εμφάνιση ενός κρίσιμου μηνύματος
++Comment[et]=Näidatakse kriitilist teadet
+ Comment[it]=È stato mostrato un messaggio critico
+ Comment[ja]=重大なメッセージが表示されています
+ Comment[km]=សារ​សំខាន់​បំផុត​កំពុង​ត្រូវ​បាន​បង្ហាញ
+-Comment[ko]=치명적 오류 메시지가 표시되었습니다
++Comment[ko]=치명적 오류 메시지가 표시됨
+ Comment[lt]=Rodomas kritinis pranešimas
+ Comment[nb]=Det vises en kritisk melding
+ Comment[nds]=En eernst Mellen warrt wiest
+@@ -604,7 +697,9 @@
+ [Event/messageboxQuestion]
+ Name=Question
+ Name[be]=Пытанне
++Name[de]=Frage
+ Name[el]=Ερώτηση
++Name[et]=Küsimus
+ Name[ga]=Ceist
+ Name[it]=Domanda
+ Name[ja]=質問
+@@ -622,7 +717,9 @@
+ Name[zh_CN]=问题
+ Name[zh_TW]=詢問
+ Comment=A question is being asked
++Comment[de]=Eine Frage wird gestellt
+ Comment[el]=Γίνεται κάποια ερώτηση
++Comment[et]=Esitatakse küsimus
+ Comment[it]=È stata posta una domanda
+ Comment[ja]=質問が出されています
+ Comment[km]=សំណួរ​កំពុង​ត្រូវ​បាន​សួរ
+@@ -645,12 +742,14 @@
+ [Event/beep]
+ Name=Beep
+ Name[be]=Гукавы сігнал
++Name[de]=Signalton
+ Name[el]=Ηχητικό σήμα
++Name[et]=Piiks
+ Name[ga]=Bíp
+ Name[it]=Bip
+ Name[ja]=ビープ
+ Name[km]=ប៊ីប
+-Name[ko]=삑소리
++Name[ko]=삑 소리
+ Name[nb]=Pip
+ Name[nds]=Tüüt
+ Name[nl]=Geluidssignaal
+@@ -663,10 +762,13 @@
+ Name[zh_TW]=嗶聲
+ Comment=Sound bell
+ Comment[be]=Гукавы званок
++Comment[de]=Signalton
+ Comment[el]=Κουδούνισμα
++Comment[et]=Kellaheli
+ Comment[it]=Campanella udibile
+ Comment[ja]=サウンドベル
+-Comment[km]=សំលេង​កណ្ដឹង
++Comment[km]=សំឡេង​​កណ្ដឹង
++Comment[ko]=소리 벨
+ Comment[nb]=Lydsignal
+ Comment[nds]=Klangpingel
+ Comment[nl]=Geluidssignaal
+--- a/runtime/kfile/CMakeLists.txt
++++ b/runtime/kfile/CMakeLists.txt
+@@ -1,19 +1,11 @@
+-
+-########### next target ###############
++########### kfile4 ###############
++# Named this way to fix conflict with kdelibs3.
++# Distros can add a kfile symlink if kdelibs3 isn't installed.
+ 
+ set(kfile_SRCS fileprops.cpp )
+ 
++kde4_add_executable(kfile4 NOGUI ${kfile_SRCS})
+ 
+-kde4_add_executable(kfile NOGUI ${kfile_SRCS})
+-
+-target_link_libraries(kfile ${KDE4_KIO_LIBS} )
+-
+-install(TARGETS kfile DESTINATION ${BIN_INSTALL_DIR} )
+-
+-
+-########### install files ###############
+-
+-
+-
+-
++target_link_libraries(kfile4 ${KDE4_KIO_LIBS} )
+ 
++install(TARGETS kfile4 DESTINATION ${BIN_INSTALL_DIR} )
+--- a/runtime/kcontrol/locale/language.desktop
++++ b/runtime/kcontrol/locale/language.desktop
+@@ -1,6 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Exec=kcmshell language
++Exec=kcmshell4 language
+ Icon=preferences-desktop-locale
+ Type=Service
+ ServiceTypes=KCModule
+@@ -107,7 +107,7 @@
+ Comment[ja]=地域特有の言語と数値や日付書式を設定
+ Comment[ka]=თქვენი რეგიონისთვის ენის, თარიღის და ციფრული ფორმატის კონფიგურაცია
+ Comment[kk]=Өлкеңіздің тіл, сан және уақыт пішімін орнату
+-Comment[km]=​ការ​កំណត់​ភាសា, លេខ, និង​ពេលវេលា​សម្រាប់​តំបន់​ពិសេស​របស់​អ្នក
++Comment[km]=​ការ​កំណត់​ភាសា លេខ និង​​ពេលវេលា​សម្រាប់​តំបន់​ពិសេស​របស់​អ្នក
+ Comment[ko]=살고 있는 지역의 언어, 수, 시간 설정
+ Comment[lt]=Kalba, skaitiniai ir laiko nustatymai Jūsų individualiam regionui
+ Comment[lv]=Valodas, numuru, un laika uzstādījumi jūsu konkrētajam reģionam
+@@ -167,7 +167,7 @@
+ Keywords[is]=tungumál,þýðing,númer,gjaldeyrir,klukka,tími,dagsetning,staðværar stillingar,locale,land,stafatöflur,stafróf,jákvætt,neikvætt, jákvæð,neiðkvæð,brot,tugabrot,vika,helgi,vikudagur,vikudagar
+ Keywords[it]=lingua,traduzione,formato numeri,moneta,valuta,ora,data,formati,impostazioni nazionali,paese,charset,insieme di caratteri,virgola,separatore migliaia,simbolo,separatore,segno,più,meno,cifre decimali,settimana,inizio settimana
+ Keywords[ja]=言語,翻訳,数値の書式,通貨,時刻,日付,フォーマット,地域,国,文字コード,文字セット,小数点,1000での区切り,記号,区切り文字,符号,正数,負数,小数桁数,週,週初
+-Keywords[km]=ភាសា,ការ​បកប្រែ,ទ្រង់ទ្រាយ​លេខ,រូបិយប័ណ្ណ,ពេល​វេលា,កាលបរិច្ឆេទ,ទ្រង់ទ្រាយ,មូលដ្ឋាន,ប្រទេស,សំណុំ​តួអក្សរ,សំណុំ​តួអក្សរ,និមិត្ត​សញ្ញា​គោលដប់,ឧបករណ៍​បំបែក​ខ្ទង់​ពាន់,និមិត្ត​សញ្ញា,ឧបករណ៍​បំបែក,សញ្ញា,វិជ្ជមាន,អវិជ្ជមាន,តួលេខ​ប្រភាគ,សប្ដាហ៍,សប្ដាហ៍​ចាប់ផ្ដើម
++Keywords[km]=ភាសា ការ​បកប្រែ ទ្រង់ទ្រាយ​លេខ រូបិយប័ណ្ណ ពេល​វេលា កាលបរិច្ឆេទ ទ្រង់ទ្រាយ មូលដ្ឋាន ប្រទេស ​តួអក្សរ សំណុំ​តួអ​តួអក្ស និមិត្ត​សញ្ញា​គ លដប់,ឧបករណ៍​បំបែក​ខ្ទង់ ពាន់,និមិត្ត​ ញ្ញា,ឧបករណ៍​ ំបែក, ញ្ញា,វិជ មាន,អវិជ ជមាន,តួលេខ​ប រភាគ,សប ដាហ៍,សប្ដាហ៍​ចាប់ផ្ដើម
+ Keywords[ko]=언어,번역,숫자 형식,통화,돈,시간,날짜,로케일,국가,문자, 천 단위 구분자, 소수점 기호,구분자,부호,주,주 시작
+ Keywords[lt]=language,translation,number format,currency,time,date,formats,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,fractional digits,week,week start,kalba,vertimas,skaičių formatas,valiuta,laikas,data,formatai,lokalė,Šalis,koduotės,kodavimai,Dešimtainis simbolis,Tūkstančių skirtukas,simbolis,skirtukas,požymis,teigiamas,neigiamas,trupmenų skaitmenys,savaitė,savaitės pradžia
+ Keywords[lv]=valoda,tulkojums,numuru formāts,valūta,laiks,datums,formāts,lokāle,Valsts,čārsets,simbolu komplekts,Decimāl simbols,Tūkstošu atdalītājs,simbols,atdalītājs,zīme,pozitīvs,negatīvs,frakciju cipari,nedēļa,nedēļa sākas
+--- a/runtime/kcontrol/locale/toplevel.cpp
++++ b/runtime/kcontrol/locale/toplevel.cpp
+@@ -68,7 +68,7 @@
+         KLocalizedString(), 0, "bieker at kde.org");
+   setAboutData( aboutData );
+ 
+-  m_nullConfig = KSharedConfig::openConfig(QString(), KConfig::CascadeConfig );
++  m_nullConfig = KSharedConfig::openConfig(QString(), KConfig::NoGlobals );
+   m_globalConfig = KSharedConfig::openConfig(QString(), KConfig::IncludeGlobals );
+ 
+   m_locale = new KControlLocale(QLatin1String("kcmlocale"), m_nullConfig);
+--- a/runtime/kcontrol/locale/kcmlocale.cpp
++++ b/runtime/kcontrol/locale/kcmlocale.cpp
+@@ -185,11 +185,8 @@
+   KConfigGroup configGroup = config->group("Locale");
+ 
+   configGroup.writeEntry("Country", m_locale->country(), KConfig::Persistent|KConfig::Global);
+-  if ( m_locale->languageList().isEmpty() )
+-    configGroup.writeEntry("Language", QString::fromLatin1(""), KConfig::Persistent|KConfig::Global);
+-  else
+-    configGroup.writeEntry("Language",
+-                       m_locale->languageList(), ':', KConfig::Persistent|KConfig::Global);
++  configGroup.writeEntry("Language",
++                         m_locale->languageList().join(":"), KConfig::Persistent|KConfig::Global);
+ 
+   config->sync();
+ }
+--- a/runtime/kcontrol/knotify/knotify.cpp
++++ b/runtime/kcontrol/knotify/knotify.cpp
+@@ -79,6 +79,7 @@
+ 	m_appCombo = new KComboBox( false, app_tab );
+ 	m_appCombo->setObjectName( "app combo" );
+ 	QHBoxLayout *hbox = new QHBoxLayout();
++	hbox->setSpacing( KDialog::spacingHint() );
+ 	app_layout->addItem( hbox );
+ 	hbox->addWidget( label );
+ 	hbox->addWidget( m_appCombo, 10 );
+@@ -113,12 +114,12 @@
+ 
+     load();
+ 
+-
++    m_notifyWidget->setApplication( m_appCombo->currentText() );
+ }
+ 
+ KCMKNotify::~KCMKNotify()
+ {
+-    KConfig _config("knotifyrc", KConfig::CascadeConfig);
++    KConfig _config("knotifyrc", KConfig::NoGlobals);
+     KConfigGroup config(&_config, "Misc" );
+     config.writeEntry( "LastConfiguredApp", m_appCombo->currentText() );
+     config.sync();
+@@ -217,11 +218,11 @@
+ 
+ void PlayerSettingsDialog::load()
+ {
+-    KConfig _config( "knotifyrc", KConfig::CascadeConfig  );
++    KConfig _config( "knotifyrc", KConfig::NoGlobals  );
+     KConfigGroup config(&_config, "Sounds" );
+     bool useExternal = config.readEntry( "Use external player", false );
+     m_ui->cbExternal->setChecked( useExternal );
+-    m_ui->reqExternal->setPath( config.readPathEntry( "External player" ) );
++    m_ui->reqExternal->setPath( config.readPathEntry( "External player", QString() ) );
+     m_ui->volumeSlider->setValue( config.readEntry( "Volume", 100 ) );
+ 
+     if ( !m_ui->cbExternal->isChecked() )
+@@ -237,7 +238,7 @@
+         return;
+     
+     // see kdebase/runtime/knotify/notifybysound.h
+-    KConfig _config("knotifyrc", KConfig::CascadeConfig);
++    KConfig _config("knotifyrc", KConfig::NoGlobals);
+     KConfigGroup config(&_config, "Sounds" );
+ 
+     config.writePathEntry( "External player", m_ui->reqExternal->url().path() );
+--- a/runtime/kcontrol/knotify/kcmnotify.desktop
++++ b/runtime/kcontrol/knotify/kcmnotify.desktop
+@@ -1,6 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Exec=kcmshell kcmnotify
++Exec=kcmshell4 kcmnotify
+ Icon=preferences-desktop-notification
+ Type=Service
+ ServiceTypes=KCModule
+@@ -170,7 +170,7 @@
+ Keywords[it]=Suoni di sistema,Audio,Suono,Notifica,Avvisi,Messaggi
+ Keywords[ja]=システムサウンド,オーディオ,サウンド,通知, アラート,通知
+ Keywords[ka]=სისტემის ხმები,აუდიო,ხმა,შეტყობინება,განგაში,შეტყობინება
+-Keywords[km]=សំឡេង​ប្រព័ន្ធ,អូឌីយ៉ូ,សំឡេង,ជូន​ដំណឹង,ជូន​ដំណឹង,ការ​ជូន​ដំណឹង
++Keywords[km]=សំឡេង​ប្រព័ន្ធ អូឌីយ៉ូ សំឡេង ជូន​ដំណឹង ជូន​ដំណឹង ការ​ជូន​ដំណឹង
+ Keywords[ko]=시스템 소리,오디오,알림,경고
+ Keywords[lt]=Sistemos garsai,Audio,Garsas,Pranešimas,Perspėjimai
+ Keywords[lv]=Sistēmas skaņas,Audio,Skaņa,Paziņo,Brīdinājumi,Paziņošana
+--- a/runtime/kcontrol/samba/smbstatus.desktop
++++ b/runtime/kcontrol/samba/smbstatus.desktop
+@@ -1,6 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Exec=kcmshell smbstatus
++Exec=kcmshell4 smbstatus
+ Icon=preferences-system-network-share-windows-status
+ Type=Service
+ ServiceTypes=KCModule
+@@ -166,7 +166,7 @@
+ Keywords[is]=Netdrif,windows net,kerfi,upplýsingar
+ Keywords[it]=SMB,SAMBA,Rete Windows,LAN,Rete locale,Informazioni sul sistema
+ Keywords[ja]=SMB,SAMBA,Windowsネットワーク,LAN,システムの情報
+-Keywords[km]=SMB,SAMBA,បណ្ដាញ​វីនដូ,LAN,ព័ត៌មាន​ប្រព័ន្ធ
++Keywords[km]=SMB SAMBA បណ្ដាញ​វីនដូ LAN ព័ត៌មាន​ប្រព័ន្ធ
+ Keywords[ko]=SMB,윈도 네트워크,LAN,시스템 정보
+ Keywords[lt]=SMB,SAMBA,Windows tinklas,LAN,Sistemos Informacija
+ Keywords[lv]=SMB,SAMBA,Windows tīkls,LAN,Sistēmas Informācija
+--- a/runtime/kcontrol/componentchooser/componentchooser.desktop
++++ b/runtime/kcontrol/componentchooser/componentchooser.desktop
+@@ -1,6 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Exec=kcmshell componentchooser
++Exec=kcmshell4 componentchooser
+ Icon=preferences-desktop-default-applications
+ Type=Service
+ ServiceTypes=KCModule
+@@ -17,6 +17,7 @@
+ Name[de]=Standard-Komponenten
+ Name[el]=Προκαθορισμένες εφαρμογές
+ Name[es]=Aplicaciones predefinidas
++Name[et]=Vaikimisi rakendused
+ Name[fa]=کاربردهای پیش‌فرض
+ Name[ga]=Feidhmchláir Réamhshocraithe
+ Name[he]=תוכניות ברירת מחדל
+@@ -24,7 +25,7 @@
+ Name[ja]=標準アプリケーション
+ Name[kk]=Әдетті қолданбалары
+ Name[km]=កម្មវិធី​លំនាំដើម​
+-Name[ko]=기본 응용 프로그램
++Name[ko]=기본 프로그램
+ Name[nb]=Standardprogrammer
+ Name[nds]=Standardprogrammen
+ Name[ne]=पूर्वनिर्धारित अनुप्रयोग
+@@ -111,13 +112,14 @@
+ Keywords[de]=Komponenten,Ressourcen,E-Mail,E-Mail-Programm,Terminal-Emulation,Programme,Anwendungen
+ Keywords[el]=συστατικά,επιλογέας συστατικών,πόροι, πελάτης email, email,προσομοιωτής τερματικού,εφαρμογές
+ Keywords[es]=componentes,selector de componentes,recursos,correo electrónico,cliente de correo,emulador de terminal,aplicaciones
++Keywords[et]=komponendid,komponentide valija,ressursid,e-post,e-posti klient,terminaliemulaator,rakendused
+ Keywords[fa]=مؤلفه‌ها، انتخابگر مؤلفه، منابع، رایانامه، کارخواه رایانامه، مقلد رایانه، کاربردها
+ Keywords[ga]=comhpháirteanna,roghnóir comhpháirte,acmhainní,ríomhphost,cliant ríomhphoist,aithriseoir teirminéil
+ Keywords[he]=רכיבים,בוחר הרכיבים,משאבים,תוכנית דוא"ל ,הדמיית מסוף,components,component chooser, resources, email client, terminal emulator
+ Keywords[it]=componenti,scelta componenti,risorse,email,client di posta,posta elettronica,terminale,emulatore di terminale,applicazioni
+ Keywords[ja]=コンポーネント,選択,リソース,Eメール,クライアント,ターミナルエミュレータ,アプリケーション
+-Keywords[km]=សមាសភាគ,កម្មវិធី​ជ្រើស​សមាសភាគ,ធនធាន,អ៊ីមែល,កម្មវិធី​អ៊ីមែល,កម្មវិធី​ត្រាប់​តាម​ស្ថានីយ,កម្មវិធី
+-Keywords[ko]=컴포넌트,구성 요소,리소스,전자우편,터미널 에뮬레이터,프로그램
++Keywords[km]=សមាសភាគ កម្មវិធី​ជ្រើស​សមាសភាគ ធនធាន អ៊ីមែល កម្មវិធី​អ៊ីមែល កម្មវិធី​ត្រាប់​តាម​ស្ថានីយ កម្មវិធី
++Keywords[ko]=컴포넌트,구성 요소,자원,전자우편,터미널 에뮬레이터,프로그램
+ Keywords[nb]=komponenter,komponentvelger,ressurser,e-post,e-postprogram,terminalemulator, programmer
+ Keywords[nds]=Komponenten,Komponenten utsöken,Ressourcen,E-Mail-Client,Nettpost-Programm,Terminalemulater,Programmen
+ Keywords[ne]=अवयव, अवयव छनौटकर्ता, संसाधन, इमेल, इमेल क्लाइन्ट, टर्मिनल इमुलेटेर, अनुप्रयोग
+--- a/runtime/kcontrol/componentchooser/EXAMPLE.desktop
++++ b/runtime/kcontrol/componentchooser/EXAMPLE.desktop
+@@ -27,7 +27,7 @@
+ Name[ja]=あなたのインターフェースに素敵な名前を付けてください
+ Name[ka]=მშვენიერი სახელია ინტერფეისისთვის
+ Name[kk]=Интерфейсіңізге таңдаған атауыңыз
+-Name[km]=ឈ្មោះ​ដ៏​ល្អ​មួយ ដែល​អ្នក​បាន​ជ្រើស​សម្រាប់​ចំណុច​ប្រទាក់​របស់​អ្នក
++Name[km]=ឈ្មោះ​ដ៏​ល្អ​មួយ​ដែល​អ្នក​បាន​ជ្រើស​សម្រាប់​ចំណុច​ប្រទាក់​របស់​អ្នក
+ Name[ko]=인터페이스에 지정할 이름
+ Name[lt]=Gražus vardas, kurį Jūs pasirinkote savo sąsajai
+ Name[lv]=Jauks nosaukums, ko Jūs izvelējāties savam interfeisam
+--- a/runtime/kcontrol/componentchooser/componentservices/kcm_kemail.desktop
++++ b/runtime/kcontrol/componentchooser/componentservices/kcm_kemail.desktop
+@@ -93,7 +93,8 @@
+ Comment[ja]=ここで標準のメールクライアントを設定します。メールクライアントを必要とするすべての KDE アプリケーションは、この設定に従います。
+ Comment[ka]=აქ შეიძლება სტანდარტული საფოსტო კლიენტის დაკონფიგურირება. KDE-ს ყველა პროგრამა, ვისაც სჭირდება ფოსტა, გაითვალისწინებენ ამ პარამეტრს
+ Comment[kk]=Мұнда Сіз әдетті эл.пошта клиентін таңдай аласыз. Бүкіл KDE қолданбаларда эл.пошта керек болғанда осы таңдау қолданылады.
+-Comment[km]=សេវា​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​កំណត់​រចនាសម្ព័ន្ធ​កម្មវិធី​អ៊ីមែល​លំនាំដើម​របស់​អ្នក ។ កម្មវិធី KDE ទាំង​អស់​ដែល​តម្រូវ​ឲ្យ​ចូល​ដំណើរការ​ទៅ​កាន់​កម្មវិធី​អ៊ីមែល​គួរ​គោរព​តាម​ការ​កំណត់​នេះ ។
++Comment[km]=សេវា​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​កំណត់​រចនាសម្ព័ន្ធ​កម្មវិធី​អ៊ីមែល​លំនាំដើម​របស់​អ្នក ។ កម្មវិធី KDE ទាំង​អស់​ដែល​តម្រូវ​​ឲ្យ​ចូល​ដំណើរការ​ទៅ​កាន់​កម្មវិធី​អ៊ីមែល​គួរ​គោរព​តាម​ការ​កំណត់​នេះ ។
++Comment[ko]=이 서비스에서는 기본 전자 우편 클라이언트를 설정할 수 있습니다. 전자 우편 클라이언트에 접근하려고 하는 모든 KDE 프로그램에서는 이 설정을 따라야 합니다.
+ Comment[lt]=Ši tarnyba leidžia jums nustatyti Jūsų numatytą pašto klientą. Visos KDE programos, kurioms reikia e. pašto kliento programos, turėtų atsižvelgti į šį nustatymą.
+ Comment[lv]=Šis servis ļauj Jums konfigurēt noklusējuma epasta klientu. Visas KDE aplikācijas, kurām ir nepieciešams epasts, izmantos šo parametru.
+ Comment[mk]=Овој сервис ви овозможува да го конфигурирате вашиот стандарден клиент за електронска пошта. Сите KDE-апликации на кои им е потребен пристап до електронска пошта ќе ги почитуваат овие поставувања.
+--- a/runtime/kcontrol/componentchooser/componentservices/kcm_browser.desktop
++++ b/runtime/kcontrol/componentchooser/componentservices/kcm_browser.desktop
+@@ -13,7 +13,7 @@
+ Name[el]=Περιηγητής ιστού
+ Name[eo]=TTT-legilo
+ Name[es]=Navegador Web
+-Name[et]=Veebilehitseja
++Name[et]=Veebibrauser
+ Name[eu]=Web arakatzailea
+ Name[fa]=مرورگر وب‌‌
+ Name[fi]=WWW-selain
+@@ -78,7 +78,7 @@
+ Comment[en_GB]=Here you can configure your default web browser. All KDE applications in which you can select hyperlinks should honour this setting.
+ Comment[eo]=Tiu servo ebligas, ke vi elektas vian norman vidigilon. Ĉiuj KDEa aplikaĵoj, kiuj necesas vidigilon, uzos tiun agordon.
+ Comment[es]=Este servicio le permite configurar su navegador de Internet predeterminado. Todas las aplicaciones KDE que precisan acceso a hiperenlaces deberían reconocer esta opción.
+-Comment[et]=Siin saab seadistada vaikimisi kasutatavat veebilehitsejat. Kõik KDE rakendused, kus saab valida hüperlinke, peaksid siinsete seadistustega arvestama.
++Comment[et]=Siin saab seadistada vaikimisi kasutatavat brauserit. Kõik KDE rakendused, kus saab valida hüperlinke, peaksid siinsete seadistustega arvestama.
+ Comment[eu]=Hemen zure web arakatzaile lehenetsia konfigura dezakezu. Aukera honek estekak darabiltzaten KDEren aplikazio guztiei eragin behar die.
+ Comment[fa]=در اینجا می‌توانید مرورگر وب پیش‌فرض خود را پیکربندی کنید. همۀ کاربردهای KDE که می‌توانید ابرپیوندها را در آن گزینش کنید، باید این تنظیمات را قبول کنند.
+ Comment[fi]=Tämän palvelun avulla voit määritellä oletusselaimen. Kaikki selainta käyttävät KDE-sovellukset huomioivat tämän asetuksen.
+@@ -93,7 +93,7 @@
+ Comment[ja]=ここで標準のウェブブラウザを設定します。ハイパーリンクの選択が可能なすべての KDE アプリケーションは、この設定に従います。
+ Comment[ka]=აქ შეიძლება სტანდარტული ვებ ბრაუზერის დაკონფიგურირება. KDE-ს ყველა პროგრამა, ვისაც შეუძლია ბმულების გამოძახება, გაითვალისწინებენ ამ პარამეტრს
+ Comment[kk]=Мұнда Сіз әдетті веб-шолғышыңызды таңдай аласыз. Бүкіл KDE қолданбаларда гиперсілтемелерді түрткенде осы таңдау қолданылады.
+-Comment[km]=នៅ​ទីនេះ អ្នក​អាច​កំណត់​រចនាសម្ព័ន្ធ​កម្មវិធី​រុករក​បណ្ដាញ​លំនាំដើម​របស់​អ្នក ។ កម្មវិធី KDE ទាំងអស់​ដែល​អ្នក​អាច​ជ្រើស​តំណ​ខ្ពស់​ គួរ​តែ​គោរព​តាម​ការ​កំណត់​នេះ ។
++Comment[km]=នៅ​ទីនេះ អ្នក​អាច​កំណត់​រចនាសម្ព័ន្ធ​កម្មវិធី​រុករក​បណ្ដាញ​លំនាំដើម​របស់​អ្នក ។ កម្មវិធី KDE ទាំងអស់​ដែល​អ្នក​​អាច​ជ្រើស​តំណ​ខ្ពស់​ គួរ​តែ​គោរព​តាម​ការ​កំណត់​នេះ ។
+ Comment[ko]=여기에서 기본 웹 브라우저를 설정할 수 있습니다. 모든 KDE 프로그램에서 하이퍼링크를 처리하려면 이 설정을 따라야 합니다.
+ Comment[lt]=Ši tarnyba leidžia jums nustatyti Jūsų numatytą žiniatinklio naršyklę. Visos KDE programos, kuriose galima spragtelėti hipersaitus, turi atsižvelgti į šį nustatymą.
+ Comment[lv]=Šeit Jūs varat konfigurēt noklusējuma tīmekļa pārlūkprogrammu. Visas KDE aplikācijas, kurās Jūs varat klikšķināt uz hipersaitēm, izmantos šo parametru.
+--- a/runtime/kcontrol/componentchooser/componentservices/kcm_terminal.desktop
++++ b/runtime/kcontrol/componentchooser/componentservices/kcm_terminal.desktop
+@@ -94,6 +94,7 @@
+ Comment[ka]=Comment=აქ შეიძლება სტანდარტული ტერმინალის ემულატორის დაკონფიგურირება. KDE-ს ყველა პროგრამა, ვისაც სჭირდება ფოსტა, გაითვალისწინებენ ამ პარამეტრს
+ Comment[kk]=Мұнда Сіз әдетті терминал эмуляторын таңдай аласыз. Бүкіл KDE қолданбаларда терминал эмуляторы керек болғанда осы таңдау қолданылады.
+ Comment[km]=សេវា​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​កំណត់​រចនាសម្ព័ន្ធ​កម្មវិធី​ត្រាប់តាម​ស្ថានីយ​លំនាំដើម​របស់​អ្នក ។ កម្មវិធី KDE ទាំង​អស់​ដែល​ហៅ​កម្មវិធី​ត្រាប់​តាម​ស្ថានីយ​គួរ​គោរព​តាម​ការ​កំណត់​នេះ ។
++Comment[ko]=이 서비스에서는 기본 터미널 에뮬레이터를 설정할 수 있습니다. 터미널 에뮬레이터에 접근하려고 하는 모든 KDE 프로그램에서는 이 설정을 따라야 합니다.
+ Comment[lt]=Ši tarnyba leidžia jumos nustatyti Jūsų numatytą pašto klientą. Visos KDE programos, kurios iškviečia terminalo emuliatoriaus programa, turėtų atsižvelgti į šį nustatymą.
+ Comment[lv]=Šis serviss Jums ļauj uzstādīt noklusējuma termināla emulātoru. Visas KDE aplikācijas, kurām vajag termināla emulātoru, izmantos šo parametru.
+ Comment[mk]=Овој сервис ви овозможува да го конфигурирате вашиот стандарден терминалски емулатор. Сите KDE-апликации кои стартуваат апликација во терминалски емулатор ќе ги почитуваат овие поставувања.
+--- a/runtime/kcontrol/kded/kcmkded.cpp
++++ b/runtime/kcontrol/kded/kcmkded.cpp
+@@ -17,28 +17,26 @@
+    Boston, MA 02110-1301, USA.
+ */
+ 
+-#include <Qt3Support/Q3GroupBox>
+-#include <Qt3Support/Q3Header>
++#include "kcmkded.h"
+ 
+ #include <QByteArray>
+ #include <QtDBus/QtDBus>
+-#include <QLayout>
++#include <QGroupBox>
++#include <QHeaderView>
+ #include <QPushButton>
+ #include <QTimer>
++#include <QTreeWidget>
+ #include <QVBoxLayout>
+ 
+ #include <kaboutdata.h>
+-#include <kapplication.h>
+ #include <kdialogbuttonbox.h>
+ #include <kdebug.h>
+ #include <kdesktopfile.h>
+ #include <kdialog.h>
+-#include <k3listview.h>
+ #include <kmessagebox.h>
+ #include <kservice.h>
+ #include <kstandarddirs.h>
+ 
+-#include "kcmkded.h"
+ #include <KPluginFactory>
+ #include <KPluginLoader>
+ #include "kcmkded.moc"
+@@ -48,6 +46,7 @@
+         )
+ K_EXPORT_PLUGIN(KDEDFactory("kcmkded"))
+ 
++static const int LibraryRole = Qt::UserRole + 1;
+ 
+ KDEDConfig::KDEDConfig(QWidget* parent, const QVariantList &) :
+ 	KCModule( KDEDFactory::componentData(), parent )
+@@ -74,43 +73,57 @@
+ 	lay->setMargin( 0 );
+ 	lay->setSpacing( KDialog::spacingHint() );
+ 
+-	Q3GroupBox *gb = new Q3GroupBox(1, Qt::Vertical, i18n("Load-on-Demand Services"), this );
++	QGroupBox *gb = new QGroupBox( i18n("Load-on-Demand Services"), this );
+ 	gb->setWhatsThis( i18n("This is a list of available KDE services which will "
+ 			"be started on demand. They are only listed for convenience, as you "
+ 			"cannot manipulate these services."));
+ 	lay->addWidget( gb );
+ 
+-	_lvLoD = new K3ListView( gb );
+-	_lvLoD->addColumn(i18n("Service"));
+-	_lvLoD->addColumn(i18n("Description"));
+-	_lvLoD->addColumn(i18n("Status"));
++	QVBoxLayout *gblay = new QVBoxLayout( gb );
++
++	_lvLoD = new QTreeWidget( gb );
++	QStringList cols;
++	cols.append( i18n("Service") );
++	cols.append( i18n("Description") );
++	cols.append( i18n("Status") );
++	_lvLoD->setHeaderLabels( cols );
+ 	_lvLoD->setAllColumnsShowFocus(true);
+-	_lvLoD->header()->setStretchEnabled(true, 1);
++	_lvLoD->setRootIsDecorated( false );
++	//_lvLoD->header()->setStretchEnabled(true, 1);
++	gblay->addWidget( _lvLoD );
+ 
+- 	gb = new Q3GroupBox(1, Qt::Horizontal, i18n("Startup Services"), this );
++ 	gb = new QGroupBox( i18n("Startup Services"), this );
+ 	gb->setWhatsThis( i18n("This shows all KDE services that can be loaded "
+ 				"on KDE startup. Checked services will be invoked on next startup. "
+ 				"Be careful with deactivation of unknown services."));
+ 	lay->addWidget( gb );
+ 
+-	_lvStartup = new K3ListView( gb );
+-	_lvStartup->addColumn(i18n("Use"));
+-	_lvStartup->addColumn(i18n("Service"));
+-	_lvStartup->addColumn(i18n("Description"));
+-	_lvStartup->addColumn(i18n("Status"));
++	gblay = new QVBoxLayout( gb );
++
++	_lvStartup = new QTreeWidget( gb );
++	cols.clear();
++	cols.append( i18n("Use") );
++	cols.append( i18n("Service") );
++	cols.append( i18n("Description") );
++	cols.append( i18n("Status") );
++	_lvStartup->setHeaderLabels( cols );
+ 	_lvStartup->setAllColumnsShowFocus(true);
+-	_lvStartup->header()->setStretchEnabled(true, 2);
++	_lvStartup->setRootIsDecorated( false );
++	//_lvStartup->header()->setStretchEnabled(true, 2);
++	gblay->addWidget( _lvStartup );
+ 
+ 	KDialogButtonBox *buttonBox = new KDialogButtonBox( gb, Qt::Horizontal);
+ 	_pbStart = buttonBox->addButton( i18n("Start") , QDialogButtonBox::ActionRole  );
+ 	_pbStop = buttonBox->addButton( i18n("Stop") , QDialogButtonBox::ActionRole );
++	gblay->addWidget( buttonBox );
+ 
+ 	_pbStart->setEnabled( false );
+ 	_pbStop->setEnabled( false );
+ 
+ 	connect(_pbStart, SIGNAL(clicked()), SLOT(slotStartService()));
+ 	connect(_pbStop, SIGNAL(clicked()), SLOT(slotStopService()));
+-	connect(_lvStartup, SIGNAL(selectionChanged(Q3ListViewItem*)), SLOT(slotEvalItem(Q3ListViewItem*)) );
++	connect(_lvStartup, SIGNAL(itemClicked(QTreeWidgetItem*, int)), SLOT(slotEvalItem(QTreeWidgetItem*)) );
++	connect(_lvStartup, SIGNAL(itemChanged(QTreeWidgetItem*, int)), SLOT(slotItemChecked(QTreeWidgetItem*)) );
+ 
+ 	load();
+ }
+@@ -141,7 +154,7 @@
+ }
+ 
+ void KDEDConfig::load() {
+-	KConfig kdedrc( "kdedrc", KConfig::CascadeConfig );
++	KConfig kdedrc( "kdedrc", KConfig::NoGlobals );
+ 
+ 	_lvStartup->clear();
+ 	_lvLoD->clear();
+@@ -152,59 +165,67 @@
+ 			KStandardDirs::Recursive | KStandardDirs::NoDuplicates,
+ 			files );
+ 
+-	Q3ListViewItem* item = 0L;
+-	CheckListItem* clitem;
++	QTreeWidgetItem* treeitem = 0L;
+ 	for ( QStringList::ConstIterator it = files.begin(); it != files.end(); ++it ) {
+ 
+ 		if ( KDesktopFile::isDesktopFile( *it ) ) {
+ 			KDesktopFile file( "services", *it );
+ 
+ 			if ( file.desktopGroup().readEntry("X-KDE-Kded-autoload", false) ) {
+-				clitem = new CheckListItem(_lvStartup, QString());
+-				connect(clitem, SIGNAL(changed(Q3CheckListItem*)), SLOT(slotItemChecked(Q3CheckListItem*)));
+-				clitem->setOn(autoloadEnabled(&kdedrc, *it));
+-				item = clitem;
+-				item->setText(1, file.readName());
+-				item->setText(2, file.readComment());
+-				item->setText(3, NOT_RUNNING);
+-				item->setText(4, file.desktopGroup().readEntry("X-KDE-Library"));
++				treeitem = new QTreeWidgetItem();
++				treeitem->setCheckState( 0, autoloadEnabled(&kdedrc, *it) ? Qt::Checked : Qt::Unchecked );
++				treeitem->setText( 1, file.readName() );
++				treeitem->setText( 2, file.readComment() );
++				treeitem->setText( 3, NOT_RUNNING );
++				treeitem->setData( 1, LibraryRole, file.desktopGroup().readEntry("X-KDE-Library") );
++				_lvStartup->addTopLevelItem( treeitem );
+ 			}
+ 			else if ( file.desktopGroup().readEntry("X-KDE-Kded-load-on-demand", false) ) {
+-				item = new Q3ListViewItem(_lvLoD, file.readName());
+-				item->setText(1, file.readComment());
+-				item->setText(2, NOT_RUNNING);
+-				item->setText(4, file.desktopGroup().readEntry("X-KDE-Library"));
++				treeitem = new QTreeWidgetItem();
++				treeitem->setText( 0, file.readName() );
++				treeitem->setText( 1, file.readComment() );
++				treeitem->setText( 2, NOT_RUNNING );
++				treeitem->setData( 0, LibraryRole, file.desktopGroup().readEntry( "X-KDE-Library" ) );
++				_lvLoD->addTopLevelItem( treeitem );
+ 			}
+ 		}
+ 	}
++	_lvStartup->resizeColumnToContents( 0 );
++	_lvStartup->resizeColumnToContents( 1 );
++	_lvLoD->resizeColumnToContents( 0 );
+ 
+ 	getServiceStatus();
+ }
+ 
+ void KDEDConfig::save() {
+-	Q3CheckListItem* item = 0L;
+-
+ 	QStringList files;
+ 	KGlobal::dirs()->findAllResources( "services",
+ 			QLatin1String( "kded/*.desktop" ),
+ 			KStandardDirs::Recursive | KStandardDirs::NoDuplicates,
+ 			files );
+ 
+-	KConfig kdedrc("kdedrc", KConfig::CascadeConfig);
++	KConfig kdedrc("kdedrc", KConfig::NoGlobals);
+ 
+ 	for ( QStringList::ConstIterator it = files.begin(); it != files.end(); ++it ) {
+ 
+ 		if ( KDesktopFile::isDesktopFile( *it ) ) {
+ 
+-                        KConfig _file( *it, KConfig::CascadeConfig, "services"  );
++                        KConfig _file( *it, KConfig::NoGlobals, "services"  );
+                         KConfigGroup file(&_file, "Desktop Entry");
+ 
+ 			if (file.readEntry("X-KDE-Kded-autoload", false)){
+ 
+-				item = static_cast<Q3CheckListItem *>(_lvStartup->findItem(file.readEntry("X-KDE-Library"),4));
+-				if (item) {
+-					// we found a match, now compare and see what changed
+-					setAutoloadEnabled(&kdedrc, *it, item->isOn());
++				QString libraryName = file.readEntry( "X-KDE-Library" );
++				int count = _lvStartup->topLevelItemCount();
++				for( int i = 0; i < count; ++i )
++				{
++					QTreeWidgetItem *treeitem = _lvStartup->topLevelItem( i );
++                			if ( treeitem->data( 1, LibraryRole ).toString() == libraryName )
++					{
++						// we found a match, now compare and see what changed
++						setAutoloadEnabled( &kdedrc, *it, treeitem->checkState( 0 ) == Qt::Checked);
++						break;
++					}
+ 				}
+ 			}
+ 		}
+@@ -219,13 +240,10 @@
+ 
+ void KDEDConfig::defaults()
+ {
+-	Q3ListViewItemIterator it( _lvStartup);
+-	while ( it.current() != 0 ) {
+-		if (it.current()->rtti()==1) {
+-			Q3CheckListItem *item = static_cast<Q3CheckListItem *>(it.current());
+-			item->setOn(false);
+-		}
+-		++it;
++	int count = _lvStartup->topLevelItemCount();
++	for( int i = 0; i < count; ++i )
++	{
++		_lvStartup->topLevelItem( i )->setCheckState( 0, Qt::Unchecked );
+ 	}
+ 
+ 	getServiceStatus();
+@@ -248,36 +266,60 @@
+ 		return;
+ 	}
+ 
+-	for( Q3ListViewItemIterator it( _lvLoD); it.current() != 0; ++it )
+-                it.current()->setText(2, NOT_RUNNING);
+-	for( Q3ListViewItemIterator it( _lvStartup); it.current() != 0; ++it )
+-                it.current()->setText(3, NOT_RUNNING);
++	int count = _lvLoD->topLevelItemCount();
++	for( int i = 0; i < count; ++i )
++                _lvLoD->topLevelItem( i )->setText( 2, NOT_RUNNING );
++	count = _lvStartup->topLevelItemCount();
++	for( int i = 0; i < count; ++i )
++                _lvStartup->topLevelItem( i )->setText( 3, NOT_RUNNING );
+ 	foreach( const QString& module, modules )
+ 	{
+-		Q3ListViewItem *item = _lvLoD->findItem(module, 4);
+-		if ( item )
++		count = _lvLoD->topLevelItemCount();
++		for( int i = 0; i < count; ++i )
+ 		{
+-			item->setText(2, RUNNING);
++			QTreeWidgetItem *treeitem = _lvLoD->topLevelItem( i );
++                	if ( treeitem->data( 0, LibraryRole ).toString() == module )
++			{
++				treeitem->setText( 2, RUNNING );
++				break;
++			}
+ 		}
+ 
+-		item = _lvStartup->findItem(module, 4);
+-		if ( item )
++		count = _lvStartup->topLevelItemCount();
++		for( int i = 0; i < count; ++i )
+ 		{
+-			item->setText(3, RUNNING);
++			QTreeWidgetItem *treeitem = _lvStartup->topLevelItem( i );
++                	if ( treeitem->data( 1, LibraryRole ).toString() == module )
++			{
++				treeitem->setText( 3, RUNNING );
++				break;
++			}
+ 		}
+ 	}
+ }
+ 
+ void KDEDConfig::slotReload()
+ {
+-	QString current = _lvStartup->currentItem()->text(4);
++	QString current;
++	if ( _lvStartup->currentItem() )
++		current = _lvStartup->currentItem()->data( 1, LibraryRole ).toString();
+ 	load();
+-	Q3ListViewItem *item = _lvStartup->findItem(current, 4);
+-	if (item)
+-		_lvStartup->setCurrentItem(item);
++	if ( !current.isEmpty() )
++	{
++		int count = _lvStartup->topLevelItemCount();
++		for( int i = 0; !i < count; ++i )
++		{
++			QTreeWidgetItem *treeitem = _lvStartup->topLevelItem( i );
++                	if ( treeitem->data( 1, LibraryRole ).toString() == current )
++			{
++				_lvStartup->setCurrentItem( treeitem );
++				break;
++			}
++		}
++	}
+ }
+ 
+-void KDEDConfig::slotEvalItem(Q3ListViewItem * item)
++void KDEDConfig::slotEvalItem(QTreeWidgetItem * item)
+ {
+ 	if (!item)
+ 		return;
+@@ -307,7 +349,7 @@
+ 
+ void KDEDConfig::slotStartService()
+ {
+-	QString service = _lvStartup->currentItem()->text(4);
++	QString service = _lvStartup->currentItem()->data( 1, LibraryRole ).toString();
+ 
+ 	QDBusInterface kdedInterface( "org.kde.kded", "/kded","org.kde.kded" );
+ 	QDBusReply<bool> reply = kdedInterface.call( "loadModule", service  );
+@@ -326,7 +368,7 @@
+ 
+ void KDEDConfig::slotStopService()
+ {
+-	QString service = _lvStartup->currentItem()->text(4);
++	QString service = _lvStartup->currentItem()->data( 1, LibraryRole ).toString();
+ 	kDebug() << "Stopping: " << service;
+ 
+ 	QDBusInterface kdedInterface( "org.kde.kded", "/kded", "org.kde.kded" );
+@@ -344,18 +386,8 @@
+ 	}
+ }
+ 
+-void KDEDConfig::slotItemChecked(Q3CheckListItem*)
++void KDEDConfig::slotItemChecked(QTreeWidgetItem*)
+ {
+ 	emit changed(true);
+ }
+ 
+-CheckListItem::CheckListItem(Q3ListView *parent, const QString &text)
+-	: QObject(parent),
+-	  Q3CheckListItem(parent, text, CheckBox)
+-{ }
+-
+-void CheckListItem::stateChange(bool on)
+-{
+-	Q3CheckListItem::stateChange(on);
+-	emit changed(this);
+-}
+--- a/runtime/kcontrol/kded/kcmkded.h
++++ b/runtime/kcontrol/kded/kcmkded.h
+@@ -19,14 +19,12 @@
+ #ifndef KCMKDED_H
+ #define KCMKDED_H
+ 
+-#include <QListView>
+-
+-#define KDE3_SUPPORT
+ #include <kcmodule.h>
+-#undef KDE3_SUPPORT
+ 
+-class K3ListView;
+ class QPushButton;
++class QTreeWidget;
++class QTreeWidgetItem;
++class KConfig;
+ 
+ class KDEDConfig : public KCModule
+ {
+@@ -44,16 +42,16 @@
+ 	void slotStartService();
+ 	void slotStopService();
+ 	void slotServiceRunningToggled();
+-	void slotEvalItem(Q3ListViewItem *item);
+-	void slotItemChecked(Q3CheckListItem *item);
++	void slotEvalItem(QTreeWidgetItem *item);
++	void slotItemChecked(QTreeWidgetItem *item);
+ 	void getServiceStatus();
+ 
+         bool autoloadEnabled(KConfig *config, const QString &filename);
+         void setAutoloadEnabled(KConfig *config, const QString &filename, bool b);
+ 
+ private:
+-	K3ListView *_lvLoD;
+-	K3ListView *_lvStartup;
++	QTreeWidget *_lvLoD;
++	QTreeWidget *_lvStartup;
+ 	QPushButton *_pbStart;
+ 	QPushButton *_pbStop;
+ 	
+@@ -61,17 +59,5 @@
+ 	QString NOT_RUNNING;
+ };
+ 
+-class CheckListItem : public QObject, public Q3CheckListItem
+-{
+-	Q_OBJECT
+-public:
+-	CheckListItem(Q3ListView* parent, const QString &text);
+-	~CheckListItem() { }
+-Q_SIGNALS:
+-	void changed(Q3CheckListItem*);
+-protected:
+-	virtual void stateChange(bool);
+-};
+-
+ #endif // KCMKDED_H
+ 
+--- a/runtime/kcontrol/kded/kcmkded.desktop
++++ b/runtime/kcontrol/kded/kcmkded.desktop
+@@ -1,6 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Exec=kcmshell kcmkded
++Exec=kcmshell4 kcmkded
+ Icon=preferences-system-session-services
+ Type=Service
+ ServiceTypes=KCModule
+@@ -83,13 +83,14 @@
+ Comment[de]=Einrichtung von KDE-Systemdiensten
+ Comment[el]=Ρύθμιση των υπηρεσιών συστήματος
+ Comment[es]=Configuración de los servicios de KDE
++Comment[et]=KDE teenuste seadistamine
+ Comment[fa]=پیکربندی خدمات KDE
+ Comment[ga]=Cumraíocht Seirbhísí KDE
+ Comment[he]=שינוי הגדרות שירותי המערכת
+ Comment[it]=Configurazione dei servizi di KDE
+ Comment[ja]=KDE サービスの設定
+ Comment[kk]=KDE қызметтерін баптау
+-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​សេវា KDE
++Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​សេវា​របស់ KDE
+ Comment[ko]=KDE 서비스 설정
+ Comment[nb]=KDEs tjenesteinstillinger
+ Comment[nds]=KDE-Systeemdeensten instellen
+@@ -99,6 +100,7 @@
+ Comment[pa]=KDE ਸਰਵਿਸ ਸੰਰਚਨਾ
+ Comment[pt]=Configuração dos Serviços do KDE
+ Comment[pt_BR]=Configuração dos Serviços do KDE
++Comment[ru]=Настройка системных служб
+ Comment[sv]=Anpassa KDE:s tjänster
+ Comment[th]=ปรับแต่งบริการของ KDE
+ Comment[vi]=Cấu hình Dịch vụ KDE
+@@ -133,7 +135,7 @@
+ Keywords[is]=KDED,þjónn,Þjónustur,púki,þræll
+ Keywords[it]=KDED,demone,servizi
+ Keywords[ja]=KDED,デーモン,サービス
+-Keywords[km]=KDED,ដេមិន,សេវា
++Keywords[km]=KDED ដេមិន សេវា
+ Keywords[ko]=KDED,데몬,서비스
+ Keywords[lt]=KDED,Daemon,Services, demonas,tarnybos
+ Keywords[lv]=KDED,Dēmoni,Servisi
+--- a/runtime/kcontrol/kded/CMakeLists.txt
++++ b/runtime/kcontrol/kded/CMakeLists.txt
+@@ -9,7 +9,7 @@
+ kde4_add_plugin(kcm_kded ${kcm_kded_PART_SRCS})
+ 
+ 
+-target_link_libraries(kcm_kded   ${KDE4_KDE3SUPPORT_LIBS} ${QT_QT3SUPPORT_LIBRARY} ${QT_QTGUI_LIBRARY} )
++target_link_libraries(kcm_kded ${KDE4_KDEUI_LIBS})
+ 
+ install(TARGETS kcm_kded  DESTINATION ${PLUGIN_INSTALL_DIR} )
+ 
+--- a/runtime/kcontrol/menus/kde-settings-system.directory
++++ b/runtime/kcontrol/menus/kde-settings-system.directory
+@@ -16,7 +16,7 @@
+ Name[el]=Διαχείριση συστήματος
+ Name[eo]=Sistemadministrado
+ Name[es]=Administración del sistema
+-Name[et]=Süsteemi administreerimine
++Name[et]=Süsteemi haldamine
+ Name[eu]=Sistemaren kudeaketa
+ Name[fa]=سرپرستی سیستم
+ Name[fi]=Järjestelmänhallinta
+--- a/runtime/kcontrol/menus/kde-settings-webbrowsing.directory
++++ b/runtime/kcontrol/menus/kde-settings-webbrowsing.directory
+@@ -16,7 +16,7 @@
+ Name[el]=Περιηγητής ιστού
+ Name[eo]=TTT-legilo
+ Name[es]=Navegador Web
+-Name[et]=Veebilehitseja
++Name[et]=Veebibrauser
+ Name[eu]=Web arakatzailea
+ Name[fa]=مرورگر وب‌‌
+ Name[fi]=WWW-selain
+--- a/runtime/kcontrol/menus/kde-settings.directory
++++ b/runtime/kcontrol/menus/kde-settings.directory
+@@ -32,7 +32,7 @@
+ Name[ja]=設定モジュール
+ Name[ka]=მოდულები
+ Name[kk]=Модульдер
+-Name[km]=ការ​កំណត់​ម៉ូឌុល
++Name[km]=ការ​កំណត់-ម៉ូឌុល
+ Name[ko]=설정-모듈
+ Name[lt]=Parinkčių moduliai
+ Name[lv]=Parametru moduļi
+--- a/runtime/kcontrol/menus/CMakeLists.txt
++++ b/runtime/kcontrol/menus/CMakeLists.txt
+@@ -3,7 +3,6 @@
+ 
+ ########### install files ###############
+ 
+-install( FILES kde-settings.menu kde-information.menu kde-kcontrol.menu
++install( FILES kde-information.menu
+     DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus/)
+-install( FILES kde-information.directory  kde-settings-accessibility.directory  kde-settings-components.directory  kde-settings-desktop.directory  kde-settings.directory  kde-settings-hardware.directory  kde-settings-looknfeel.directory  kde-settings-network.directory  kde-settings-power.directory  kde-settings-security.directory  kde-settings-sound.directory  kde-settings-system.directory  kde-settings-webbrowsing.directory  DESTINATION  ${XDG_DIRECTORY_INSTALL_DIR} )
+-
++install( FILES kde-information.directory  DESTINATION  ${XDG_DIRECTORY_INSTALL_DIR} )
+--- a/runtime/kcontrol/dnssd/kcm_kdnssd.desktop
++++ b/runtime/kcontrol/dnssd/kcm_kdnssd.desktop
+@@ -1,6 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Exec=kcmshell kcm_kdnssd
++Exec=kcmshell4 kcm_kdnssd
+ GenericName=
+ Icon=preferences-system-network-discovery
+ MimeType=
+@@ -96,7 +96,7 @@
+ Comment[ja]=サービスディスカバリの設定
+ Comment[ka]=სერვისის არმოჩენის კონფიგურირება
+ Comment[kk]=Қызыметтерді байқауды баптау
+-Comment[km]=កំណត់​រចនាសម្ព័ន្ធ​ការ​រក​ឃើញសេវា
++Comment[km]=កំណត់​រចនាសម្ព័ន្ធ​ការ​រក​ឃើញ​សេវា
+ Comment[ko]=서비스 발견 설정
+ Comment[lt]=Konfigūruoti tarnybų radimą
+ Comment[lv]=Konfigurē servisu atrašanu
+--- a/runtime/kcontrol/icons/icons.desktop
++++ b/runtime/kcontrol/icons/icons.desktop
+@@ -1,6 +1,6 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Exec=kcmshell icons
++Exec=kcmshell4 icons
+ Icon=preferences-desktop-icons
+ Type=Service
+ ServiceTypes=KCModule
+@@ -109,7 +109,7 @@
+ Comment[ja]=KDE アイコンをカスタマイズ
+ Comment[ka]=KDE–ს ხატულების კონფიგურაცია
+ Comment[kk]=KDE таңбашаларын баптау
+-Comment[km]=ប្ដូរ​រូប​តំណាង KDE តាម​បំណង
++Comment[km]=ប្ដូរ​រូប​តំណាងរបស់ KDE តាម​បំណង
+ Comment[ko]=KDE 아이콘 사용자 정의
+ Comment[lt]=KDE ženkliukų derinimas
+ Comment[lv]=Pielāgot KDE Ikonas
+@@ -173,8 +173,8 @@
+ Keywords[it]=icone,effetti,dimensione,molti colori,pochi colori
+ Keywords[ja]=アイコン,効果,サイズ,ハイカラー,ローカラー
+ Keywords[ka]=ხატულები,ეფექტები,ზომა,მაღალი გარჩევადობა,დაბალი გარჩევადობა
+-Keywords[km]=រូប​តំណាង,បែបផែន,ទំហំ,ពណ៌​ខ្ពស់,ពណ៌​ទាប
+-Keywords[ko]=icons,effects,size,hicolor,locolor,아이콘,쪽그림,효과,크기,많은 색깔,적은 색깔,하이 컬러,로우 컬러
++Keywords[km]=រូប​តំណាង បែបផែន ទំហំ ពណ៌​ខ្ពស់ ពណ៌​ទាប
++Keywords[ko]=아이콘,효과,크기
+ Keywords[lt]=ženkliukai,piktogramos,efektai,dydis,hispalva,lospalva
+ Keywords[lv]=ikonas,efekti,lielums,hicolor,locolor
+ Keywords[mk]=icons,effects,size,hicolor,locolor,икони,ефекти,големина,високи бои,ниски бои
+--- a/runtime/kcontrol/kcontrol/kinfocenter.desktop
++++ b/runtime/kcontrol/kcontrol/kinfocenter.desktop
+@@ -63,7 +63,7 @@
+ GenericName[ja]=インフォセンター
+ GenericName[ka]=საინფორმაციო ცენტრი
+ GenericName[kk]=Мәлімет орталығы
+-GenericName[km]=មជ្ឈ​មណ្ឌល​ព័ត៌មាន
++GenericName[km]=មជ្ឈមណ្ឌល​ព័ត៌មាន
+ GenericName[ko]=정보 센터
+ GenericName[lt]=Info centras
+ GenericName[mk]=Информативен центар
+--- a/runtime/kcontrol/kcontrol/KControl_NoDisplay.desktop
++++ b/runtime/kcontrol/kcontrol/KControl_NoDisplay.desktop
+@@ -38,7 +38,7 @@
+ Name[ja]=コントロールセンター
+ Name[ka]=საკონტროლო ცენტრი
+ Name[kk]=Басқару орталығы
+-Name[km]=មជ្ឈ​មណ្ឌល​បញ្ជា
++Name[km]=មជ្ឈមណ្ឌល​បញ្ជា
+ Name[ko]=KDE 제어판
+ Name[lt]=Valdymo centras
+ Name[lv]=Vadības Centrs
+--- a/runtime/kcontrol/kcontrol/modules.cpp
++++ b/runtime/kcontrol/kcontrol/modules.cpp
+@@ -144,7 +144,7 @@
+   delete _embedLayout;
+ 
+   // create an embed widget that will embed the
+-  // kcmshell running as root
++  // kcmshell4 running as root
+   _embedLayout = new QVBoxLayout(_module->parentWidget());
+   _embedFrame = new KVBox( _module->parentWidget() );
+ #ifdef __GNUC__
+@@ -171,7 +171,7 @@
+   _busy->setGeometry(0,0, _module->width(), _module->height());
+   _busy->show();
+ 
+-  // prepare the process to run the kcmshell
++  // prepare the process to run the kcmshell4
+   QString cmd = service()->exec().trimmed();
+   bool kdeshell = false;
+   if (cmd.left(5) == "kdesu")
+@@ -185,7 +185,7 @@
+         }
+     }
+ 
+-  if (cmd.left(8) == "kcmshell")
++  if (cmd.left(8) == "kcmshell4")
+     {
+       cmd = cmd.remove(0,8).trimmed();
+       kdeshell = true;
+@@ -207,7 +207,7 @@
+       // We also don't have a way to close the module in that case.
+       *_rootProcess << "--n"; // Don't keep password.
+       if (kdeshell) {
+-         *_rootProcess << QString("kcmshell %1 --embed %2 --lang %3").arg(cmd).arg(_embedWidget->winId()).arg(KGlobal::locale()->language());
++         *_rootProcess << QString("kcmshell4 %1 --embed %2 --lang %3").arg(cmd).arg(_embedWidget->winId()).arg(KGlobal::locale()->language());
+       }
+       else {
+          *_rootProcess << QString("%1 --embed %2 --lang %3").arg(cmd).arg(_embedWidget->winId()).arg( KGlobal::locale()->language() );
+--- a/runtime/kcontrol/kcontrol/toplevel.cpp
++++ b/runtime/kcontrol/kcontrol/toplevel.cpp
+@@ -116,7 +116,7 @@
+   _tab->setSizePolicy( QSizePolicy( QSizePolicy::Maximum, QSizePolicy::Preferred ) );
+ 
+  // Restore sizes
+-  config.changeGroup("General");
++  config = KConfigGroup(KGlobal::config(),"General");
+   QList<int> sizes = config.readEntry(  "SplitterSizes",QList<int>() );
+   if (!sizes.isEmpty())
+      _splitter->setSizes(sizes);
+@@ -192,7 +192,7 @@
+       break;
+     }
+ 
+-  config.changeGroup("General");
++  config = KConfigGroup(KGlobal::config(),"General");
+   config.writeEntry("SplitterSizes", _splitter->sizes());
+ 
+   config.sync();
+--- a/runtime/kcontrol/infocenter/ioslaveinfo/kcmioslaveinfo.h
++++ b/runtime/kcontrol/infocenter/ioslaveinfo/kcmioslaveinfo.h
+@@ -24,8 +24,6 @@
+ #ifndef kcmioslaveinfo_h_included
+ #define kcmioslaveinfo_h_included
+ 
+-#include <Qt3Support/Q3ListBox>
+-
+ //Added by qt3to4:
+ #include <QByteArray>
+ 
+@@ -51,7 +49,7 @@
+ protected Q_SLOTS:
+ 
+     void showInfo(const QString& protocol);
+-    void showInfo(QListWidgetItem *item);
++    void showInfo();
+     void slaveHelp( KIO::Job *, const QByteArray &data);
+     void slotResult( KJob * );
+ 
+--- a/runtime/kcontrol/infocenter/ioslaveinfo/ioslaveinfo.desktop
++++ b/runtime/kcontrol/infocenter/ioslaveinfo/ioslaveinfo.desktop
+@@ -14,7 +14,7 @@
+ Comment[el]=Πληροφορίες για τα διαθέσιμα πρωτόκολλα
+ Comment[eo]=Informo pri la uzeblaj protokoloj
+ Comment[es]=Información sobre los protocolos disponibles
+-Comment[et]=Olemasolevate IO moodulite (ioslave) info
++Comment[et]=Olemasolevate IO-moodulite (ioslave) info
+ Comment[eu]=Produktu eskuragarriei buruzko informazioa
+ Comment[fa]=اطلاعاتی دربارۀ قراردادهای قابل دسترس
+ Comment[fi]=Tietoja saatavilla olevista yhteyskäytännöistä
+@@ -31,7 +31,7 @@
+ Comment[ka]=ინფორმაცია ხელმისაწვდომი პროტოკოების შესახებ
+ Comment[kk]=Бар протоколдар туралы мәлімет
+ Comment[km]=ព័ត៌មាន​អំពី​ពិធីការ​ដែល​មាន
+-Comment[ko]=쓸 수 있는 프로토콜 정보
++Comment[ko]=사용 가능한 프로토콜 정보
+ Comment[lt]=Informacija apie esamus protokolus
+ Comment[lv]=Informācija par pieejamajiem protokoliem
+ Comment[mk]=Информации за достапните протоколи
+@@ -65,7 +65,7 @@
+ Comment[zh_CN]=可用协议的信息
+ Comment[zh_TW]=可用協定的資訊
+ DocPath=kinfocenter/protocols/index.html
+-Exec=kcmshell ioslaveinfo
++Exec=kcmshell4 ioslaveinfo
+ Icon=history
+ Keywords=Protocol,IO slaves,Slaves,Network,Information,Timeout
+ Keywords[be]=Пратакол,Сетка,Звесткі,Тэрмін чакання,Protocol,IO slaves,Slaves,Network,Information,Timeout
+@@ -79,7 +79,7 @@
+ Keywords[el]=Πρωτόκολλο,slaves ΕΕ,Slaves,Δίκτυο,Πληροφορίες,Χρονικό όριο
+ Keywords[eo]=Protokolo,Enel-sklavoj,sklavoj,reto,informo,tempolimo
+ Keywords[es]=Protocolo,Slaves de E/S,Slaves,Red,Información,Tiempo límite
+-Keywords[et]=protokoll,IO moodulid,moodulid,võrk,info,taimaut,aegumine
++Keywords[et]=protokoll,IO-moodulid,moodulid,võrk,info,taimaut,aegumine
+ Keywords[eu]=Protocol,IO morroiak,Morroiak,Sarea,Informazioa,Denbora-muga
+ Keywords[fa]=قرارداد، IO slaves، Slaves، شبکه، اطلاعات، اتمام وقت
+ Keywords[fi]=Protokolla,Yhteyskäytäntö,KIO,KIO-palvelu,Verkko,Aikavalvonta,aikakatkaisu
+@@ -92,8 +92,8 @@
+ Keywords[is]=Samskiptareglur,IO þrælar,þrælar,staðarnet,net,upplýsingar,útrunninn tími
+ Keywords[it]=protocollo,IO slave,slave,rete,informazioni,tempo massimo
+ Keywords[ja]=プロトコル,IO,スレイブ,スレーブ,ネットワーク,情報,タイムアウト
+-Keywords[km]=ពិធីការ,IO slaves,Slaves,បណ្ដាញ,ព័ត៌មាន,អស់ពេល
+-Keywords[ko]=Protocol,IO slaves,Slaves,Network,Information,Timeout,프로토콜,슬레이브,입출력,네트워크,네트웍,정보,시간초과
++Keywords[km]=ពិធីការ IO slaves Slaves បណ្ដាញ ព័ត៌មាន អស់ពេល
++Keywords[ko]=프로토콜, IO 슬레이브,네트워크,정보,시간 제한
+ Keywords[lt]=Protocol,IO slaves,Slaves,Network,Information,Timeout,protokolas,tinklas,informacija,laiko pasibaigimas
+ Keywords[lv]=Protokols,IO vergi,Vergi,Tīkls,Informācija,Noildze
+ Keywords[mk]=Protocol,IO slaves,Slaves,Network,Information,Timeout,Протокол,Мрежа,Информации,Истек на време
+@@ -137,7 +137,7 @@
+ Name[el]=Πρωτόκολλα
+ Name[eo]=Protokoloj
+ Name[es]=Protocolos
+-Name[et]=IO moodulid
++Name[et]=IO-moodulid
+ Name[eu]=Protokoloak
+ Name[fa]=قراردادها
+ Name[fi]=Yhteyskäytännöt
+--- a/runtime/kcontrol/infocenter/ioslaveinfo/kcmioslaveinfo.cpp
++++ b/runtime/kcontrol/infocenter/ioslaveinfo/kcmioslaveinfo.cpp
+@@ -66,7 +66,7 @@
+    m_ioslavesLb=new KListWidget(hbox);
+    m_ioslavesLb->setMinimumSize(fontMetrics().width("blahfaselwhatever----"),10);
+    hboxLayout1->addWidget( m_ioslavesLb );
+-   connect( m_ioslavesLb, SIGNAL( selectionChanged( QListWidgetItem * ) ), SLOT( showInfo( QListWidgetItem * ) ) );
++   connect( m_ioslavesLb, SIGNAL(itemSelectionChanged() ), SLOT( showInfo() ) );
+    //TODO make something useful after 2.1 is released
+    m_info=new KTextBrowser(hbox);
+    hboxLayout1->setSpacing(KDialog::spacingHint());
+@@ -81,11 +81,10 @@
+    for (QStringList::Iterator it=protocols.begin(); it!=protocols.end(); ++it)
+    {
+       QString proto = *it;
+-      m_ioslavesLb->insertItem( SmallIcon( KProtocolInfo::icon( proto )),
+-                                proto );
++      m_ioslavesLb->addItem( new QListWidgetItem ( SmallIcon( KProtocolInfo::icon( proto )), proto, m_ioslavesLb));
+    };
+-   m_ioslavesLb->sort();
+-   m_ioslavesLb->setSelected(0, true);
++   //m_ioslavesLb->sort();
++   //m_ioslavesLb->setSelected(0, true);
+ 
+    setButtons(KCModule::Help);
+ 
+@@ -144,8 +143,9 @@
+    m_info->setPlainText(i18n("Some info about protocol %1:/ ...", protocol));
+ }
+ 
+-void KCMIOSlaveInfo::showInfo(QListWidgetItem *item)
++void KCMIOSlaveInfo::showInfo()
+ {
++   QListWidgetItem *item = m_ioslavesLb->currentItem();   
+    if (item==0)
+       return;
+    showInfo( item->text() );
+--- a/runtime/kcontrol/infocenter/ioslaveinfo/CMakeLists.txt
++++ b/runtime/kcontrol/infocenter/ioslaveinfo/CMakeLists.txt
+@@ -9,7 +9,7 @@
+ kde4_add_plugin(kcm_ioslaveinfo ${kcm_ioslaveinfo_PART_SRCS})
+ 
+ 
+-target_link_libraries(kcm_ioslaveinfo  ${KDE4_KIO_LIBS} ${QT_QTGUI_LIBRARY} ${QT_QT3SUPPORT_LIBRARY})
++target_link_libraries(kcm_ioslaveinfo  ${KDE4_KIO_LIBS} ${QT_QTGUI_LIBRARY})
+ 
+ install(TARGETS kcm_ioslaveinfo  DESTINATION ${PLUGIN_INSTALL_DIR} )
+ 
+--- a/runtime/kcontrol/CMakeLists.txt
++++ b/runtime/kcontrol/CMakeLists.txt
+@@ -9,6 +9,7 @@
+ add_subdirectory( componentchooser )
+ add_subdirectory( menus )
+ add_subdirectory( dnssd )
++add_subdirectory(infocenter)
+ if(NOT WIN32)
+   add_subdirectory( samba )
+ endif(NOT WIN32)
+--- a/runtime/pics/hicolor/index.theme
++++ b/runtime/pics/hicolor/index.theme
+@@ -18,6 +18,7 @@
+ Comment[bg]=Тема по подразбиране
+ Comment[de]=Ausweich-Symbolset
+ Comment[el]=Αναπληρωματικό θέμα εικονιδίων
++Comment[et]=Ikooniteema varuvariant
+ Comment[he]=ערכת סמלים לגיבוי
+ Comment[it]=Tema di icone di ripiego
+ Comment[ja]=フォールバック用のアイコンテーマ
+--- a/runtime/pics/emoticons/CMakeLists.txt
++++ b/runtime/pics/emoticons/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ 
+ ########### install files ###############
+ 
+-install( FILES angry.png bat.png beer.png biggrin.png cake.png camera.png cat.png clock.png cocktail.png confused.png cry.png cup.png dog.png email.png embarassed.png emoticons.xml film.png kiss.png lightbulb.png love.png note.png oh.png omg.png phone.png present.png rose.png sad.png shade.png sleep.png smile.png star.png teeth.png thumbs_down.png thumbs_up.png tongue.png unhappy.png unlove.png wilted_rose.png wink.png foot_in_mouth.png innocent.png undecided.png DESTINATION ${SHARE_INSTALL_PREFIX}/emoticons/Default)
++install( FILES angry.png bat.png beer.png biggrin.png cake.png camera.png cat.png clock.png cocktail.png confused.png cry.png cup.png dog.png email.png embarassed.png emoticons.xml film.png kiss.png lightbulb.png love.png note.png oh.png omg.png phone.png present.png rose.png sad.png shade.png sleep.png smile.png star.png teeth.png thumbs_down.png thumbs_up.png tongue.png unhappy.png unlove.png wilted_rose.png wink.png foot_in_mouth.png innocent.png undecided.png DESTINATION ${SHARE_INSTALL_PREFIX}/emoticons/kde4)
+ 
+ 
+ 
+--- a/runtime/pics/oxygen/AUTHORS
++++ b/runtime/pics/oxygen/AUTHORS
+@@ -11,7 +11,8 @@
+ Nuno F. Pinheiro <nuno at oxygen-icons.org>
+ Riccardo Iaconelli <riccardo at oxygen-icons.org>
+ 
+-Contributors:
++Thanks to:
+ Lee Olson: Contributed drawing used in application-x-bittorent icon.
+ Marco Aurélio "Coré": Improved audio-input-microphone icon.
+-Matthias Kretz: Contributed "audio-input-line" device icon.
+\ No newline at end of file
++Matthias Kretz: Contributed "audio-input-line" device icon.
++Mauricio Piacentini <piacentini at kde.org> : game icons mashup

Modified: branches/kde4/packages/kdebase/debian/patches/series
===================================================================
--- branches/kde4/packages/kdebase/debian/patches/series	2007-10-25 13:37:24 UTC (rev 7647)
+++ branches/kde4/packages/kdebase/debian/patches/series	2007-10-25 13:52:27 UTC (rev 7648)
@@ -1,2 +1 @@
-01_kdebase_branch_r726783.diff
-
+01_kdebase_branch_r729276.diff




More information about the pkg-kde-commits mailing list