Hello community,

here is the log from the commit of package kcoreaddons for openSUSE:Factory 
checked in at 2015-10-19 22:23:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcoreaddons (Old)
 and      /work/SRC/openSUSE:Factory/.kcoreaddons.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kcoreaddons"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kcoreaddons/kcoreaddons.changes  2015-09-24 
07:10:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kcoreaddons.new/kcoreaddons.changes     
2015-10-19 22:23:19.000000000 +0200
@@ -1,0 +2,14 @@
+Mon Oct  5 17:37:06 UTC 2015 - hrvoje.sen...@gmail.com
+
+- Update to 5.15.0
+  * KShell::splitArgs: only ASCII space is a separator, not unicode
+    space U+3000 (kde#345140)
+  * KDirWatch: fix crash when a global static destructor uses
+    KDirWatch::self() (kde#353080)
+  * Fix crash when KDirWatch is used in Q_GLOBAL_STATIC.
+  * KDirWatch: fix thread safety
+  * Clarify how to set KAboutData constructor arguments.
+  * For more details please see:
+    https://www.kde.org/announcements/kde-frameworks-5.15.0.php
+
+-------------------------------------------------------------------

Old:
----
  kcoreaddons-5.14.0.tar.xz

New:
----
  kcoreaddons-5.15.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kcoreaddons.spec ++++++
--- /var/tmp/diff_new_pack.eCCiwX/_old  2015-10-19 22:23:19.000000000 +0200
+++ /var/tmp/diff_new_pack.eCCiwX/_new  2015-10-19 22:23:19.000000000 +0200
@@ -18,9 +18,9 @@
 
 %bcond_without lang
 %define lname   libKF5CoreAddons5
-%define _tar_path 5.14
+%define _tar_path 5.15
 Name:           kcoreaddons
-Version:        5.14.0
+Version:        5.15.0
 Release:        0
 BuildRequires:  cmake >= 2.8.12
 BuildRequires:  extra-cmake-modules >= %{_tar_path}

++++++ kcoreaddons-5.14.0.tar.xz -> kcoreaddons-5.15.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/CMakeLists.txt 
new/kcoreaddons-5.15.0/CMakeLists.txt
--- old/kcoreaddons-5.14.0/CMakeLists.txt       2015-09-05 10:54:16.000000000 
+0200
+++ new/kcoreaddons-5.15.0/CMakeLists.txt       2015-10-05 09:56:42.000000000 
+0200
@@ -3,7 +3,7 @@
 project(KCoreAddons)
 
 include(FeatureSummary)
-find_package(ECM 5.14.0  NO_MODULE)
+find_package(ECM 5.15.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL 
"https://projects.kde.org/projects/kdesupport/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -41,7 +41,7 @@
 
 include(ECMPoQmTools)
 
-set(KF5_VERSION "5.14.0") # handled by release scripts
+set(KF5_VERSION "5.15.0") # handled by release scripts
 
 ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX KCOREADDONS
                         VERSION_HEADER 
"${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/autotests/data/fakeplugin.desktop 
new/kcoreaddons-5.15.0/autotests/data/fakeplugin.desktop
--- old/kcoreaddons-5.14.0/autotests/data/fakeplugin.desktop    2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/autotests/data/fakeplugin.desktop    2015-10-05 
09:56:42.000000000 +0200
@@ -5,6 +5,7 @@
 Name[ca]=Connector de la NSA
 Name[cs]=Modul NSA
 Name[de]=NSA-Modul
+Name[el]=NSA Plugin
 Name[en_GB]=NSA Plugin
 Name[es]=Complemento NSA
 Name[fi]=NSA-liitännäinen
@@ -38,6 +39,7 @@
 Comment[ca]=Connector de proves espia
 Comment[cs]=Testovací modul Spy
 Comment[de]=Spionage-Testmodul
+Comment[el]=Test Plugin Spy
 Comment[en_GB]=Test Plugin Spy
 Comment[es]=Probar espía de complementos
 Comment[fi]=Testivakoiluliitännäinen
@@ -48,6 +50,7 @@
 Comment[ko]=테스트 플러그인 첩자
 Comment[nb]=Test tilleggsspion
 Comment[nl]=Plug-in Spy testen
+Comment[nn]=Spion for test-tillegg
 Comment[pl]=Wypróbuj szpiega wtyczki
 Comment[pt]=Espião dos 'Plugins' de Testes
 Comment[pt_BR]=Plugin de teste de espionagem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kcoreaddons-5.14.0/autotests/data/hiddenplugin.desktop 
new/kcoreaddons-5.15.0/autotests/data/hiddenplugin.desktop
--- old/kcoreaddons-5.14.0/autotests/data/hiddenplugin.desktop  2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/autotests/data/hiddenplugin.desktop  2015-10-05 
09:56:42.000000000 +0200
@@ -5,6 +5,7 @@
 Name[ca]=Connector de la NSA
 Name[cs]=Modul NSA
 Name[de]=NSA-Modul
+Name[el]=NSA Plugin
 Name[en_GB]=NSA Plugin
 Name[es]=Complemento NSA
 Name[fi]=NSA-liitännäinen
@@ -38,6 +39,7 @@
 Comment[ca]=Connector de proves espia
 Comment[cs]=Testovací modul Spy
 Comment[de]=Spionage-Testmodul
+Comment[el]=Test Plugin Spy
 Comment[en_GB]=Test Plugin Spy
 Comment[es]=Probar espía de complementos
 Comment[fi]=Testivakoiluliitännäinen
@@ -48,6 +50,7 @@
 Comment[ko]=테스트 플러그인 첩자
 Comment[nb]=Test tilleggsspion
 Comment[nl]=Plug-in Spy testen
+Comment[nn]=Spion for test-tillegg
 Comment[pl]=Wypróbuj szpiega wtyczki
 Comment[pt]=Espião dos 'Plugins' de Testes
 Comment[pt_BR]=Plugin de teste de espionagem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/autotests/kdirwatch_unittest.cpp 
new/kcoreaddons-5.15.0/autotests/kdirwatch_unittest.cpp
--- old/kcoreaddons-5.14.0/autotests/kdirwatch_unittest.cpp     2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/autotests/kdirwatch_unittest.cpp     2015-10-05 
09:56:42.000000000 +0200
@@ -46,24 +46,46 @@
         return "Stat";
     case KDirWatch::QFSWatch:
         return "QFSWatch";
-    default:
-        return "ERROR!";
     }
+    return "ERROR!";
 }
 
+class StaticObject
+{
+public:
+    KDirWatch m_dirWatch;
+};
+Q_GLOBAL_STATIC(StaticObject, s_staticObject)
+
+class StaticObjectUsingSelf // like KSambaShare does, bug 353080
+{
+public:
+    StaticObjectUsingSelf() {
+        KDirWatch::self();
+    }
+    ~StaticObjectUsingSelf() {
+        if (KDirWatch::exists() && 
KDirWatch::self()->contains(QDir::homePath())) {
+            KDirWatch::self()->removeDir(QDir::homePath());
+        }
+    }
+};
+Q_GLOBAL_STATIC(StaticObjectUsingSelf, s_staticObjectUsingSelf)
+
 class KDirWatch_UnitTest : public QObject
 {
     Q_OBJECT
 public:
     KDirWatch_UnitTest()
     {
+        s_staticObjectUsingSelf();
+
         m_path = m_tempDir.path() + QLatin1Char('/');
         // Speed up the test by making the kdirwatch timer (to compress 
changes) faster
         qputenv("KDIRWATCH_POLLINTERVAL", "50");
         qputenv("KDIRWATCH_METHOD", KDIRWATCH_TEST_METHOD);
-        KDirWatch foo;
-        m_slow = (foo.internalMethod() == KDirWatch::FAM || 
foo.internalMethod() == KDirWatch::Stat);
-        qDebug() << "Using method" << methodToString(foo.internalMethod());
+        KDirWatch *dirW = &s_staticObject()->m_dirWatch;
+        m_slow = (dirW->internalMethod() == KDirWatch::FAM || 
dirW->internalMethod() == KDirWatch::Stat);
+        qDebug() << "Using method" << methodToString(dirW->internalMethod());
     }
 
 private Q_SLOTS: // test methods
@@ -74,6 +96,8 @@
         createFile(m_path + QLatin1String("TestFile"));
         createFile(m_path + QLatin1String("nested_0"));
         createFile(m_path + QLatin1String("nested_1"));
+
+        s_staticObject()->m_dirWatch.addFile(m_path + 
QLatin1String("ExistingFile"));
     }
     void touchOneFile();
     void touch1000Files();
@@ -196,13 +220,13 @@
     QVERIFY(file.open(QIODevice::Append | QIODevice::WriteOnly));
     file.write(QByteArray("foobar"));
     file.close();
-    if (0) {
+#if 0
         QFileInfo fi(path);
         QVERIFY(fi.exists());
         qDebug() << "After append: file ctime=" << 
fi.lastModified().toString(Qt::ISODate);
         QVERIFY(fi.exists());
         qDebug() << "After append: directory mtime=" << 
fi.created().toString(Qt::ISODate);
-    }
+#endif
 }
 
 // helper method: modifies a file (identified by number)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/autotests/kshelltest.cpp 
new/kcoreaddons-5.15.0/autotests/kshelltest.cpp
--- old/kcoreaddons-5.14.0/autotests/kshelltest.cpp     2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/autotests/kshelltest.cpp     2015-10-05 
09:56:42.000000000 +0200
@@ -153,6 +153,11 @@
     QCOMPARE(sj("~qU4rK ~" + KUser().loginName(), KShell::TildeExpand, &err),
              QString("'~qU4rK' " + QDir::homePath()));
     QVERIFY(err == KShell::NoError);
+
+    const QString unicodeSpaceFileName = "test テスト.txt"; // #345140
+    QCOMPARE(sj(unicodeSpaceFileName, KShell::AbortOnMeta | 
KShell::TildeExpand, &err),
+              unicodeSpaceFileName);
+    QVERIFY(err == KShell::NoError);
 #endif
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/po/eo/kcoreaddons5_qt.po 
new/kcoreaddons-5.15.0/po/eo/kcoreaddons5_qt.po
--- old/kcoreaddons-5.14.0/po/eo/kcoreaddons5_qt.po     2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/po/eo/kcoreaddons5_qt.po     2015-10-05 
09:56:42.000000000 +0200
@@ -28,164 +28,103 @@
 "X-Qt-Contexts: true\n"
 
 #: lib/kaboutdata.cpp:226
-#, fuzzy
-#| msgid ""
-#| "No licensing terms for this program have been specified.\n"
-#| "Please check the documentation or the source for any\n"
-#| "licensing terms.\n"
 msgctxt "KAboutLicense|"
 msgid ""
 "No licensing terms for this program have been specified.\n"
 "Please check the documentation or the source for any\n"
 "licensing terms.\n"
 msgstr ""
-"Ne estas donitaj licencinformoj por tiu programo.\n"
+"Ne estas donitaj informoj pri permesilo por tiu programo.\n"
 "Bonvolu trarigardi la dokumentaron aŭ la fonttekstojn\n"
-"de la programo pri licenco.\n"
+"de la programo pri permesilo.\n"
 
 #: lib/kaboutdata.cpp:234
-#, fuzzy, qt-format
-#| msgid "This program is distributed under the terms of the %1."
+#, qt-format
 msgctxt "KAboutLicense|"
 msgid "This program is distributed under the terms of the %1."
-msgstr "Tiu programo estas distribuata laŭ la %1."
+msgstr "Tiu programo estas distribuata laŭ kondiĉoj de la %1."
 
 #: lib/kaboutdata.cpp:260
-#, fuzzy
-#| msgctxt "@item license (short name)"
-#| msgid "GPL v2"
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "GPL v2"
 msgstr "GPL v2"
 
 #: lib/kaboutdata.cpp:261
-#, fuzzy
-#| msgctxt "@item license"
-#| msgid "GNU General Public License Version 2"
 msgctxt "KAboutLicense|@item license"
 msgid "GNU General Public License Version 2"
 msgstr "GNU Ĝenerala Publika Permesilo Versio 2"
 
 #: lib/kaboutdata.cpp:264
-#, fuzzy
-#| msgctxt "@item license (short name)"
-#| msgid "LGPL v2"
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "LGPL v2"
 msgstr "LGPL v2"
 
 #: lib/kaboutdata.cpp:265
-#, fuzzy
-#| msgctxt "@item license"
-#| msgid "GNU Lesser General Public License Version 2"
 msgctxt "KAboutLicense|@item license"
 msgid "GNU Lesser General Public License Version 2"
 msgstr "GNU Ĝenerala Publika Permesilo Versio 2"
 
 #: lib/kaboutdata.cpp:268
-#, fuzzy
-#| msgctxt "@item license (short name)"
-#| msgid "BSD License"
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "BSD License"
 msgstr "BSD-Permesilo"
 
 #: lib/kaboutdata.cpp:269
-#, fuzzy
-#| msgctxt "@item license (short name)"
-#| msgid "BSD License"
 msgctxt "KAboutLicense|@item license"
 msgid "BSD License"
 msgstr "BSD-Permesilo"
 
 #: lib/kaboutdata.cpp:272
-#, fuzzy
-#| msgctxt "@item license"
-#| msgid "Artistic License"
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "Artistic License"
 msgstr "Artista Permesilo"
 
 #: lib/kaboutdata.cpp:273
-#, fuzzy
-#| msgctxt "@item license"
-#| msgid "Artistic License"
 msgctxt "KAboutLicense|@item license"
 msgid "Artistic License"
 msgstr "Artista Permesilo"
 
 #: lib/kaboutdata.cpp:276
-#, fuzzy
-#| msgctxt "@item license (short name)"
-#| msgid "QPL v1.0"
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "QPL v1.0"
 msgstr "QPL v1.0"
 
 #: lib/kaboutdata.cpp:277
-#, fuzzy
-#| msgctxt "@item license"
-#| msgid "Q Public License"
 msgctxt "KAboutLicense|@item license"
 msgid "Q Public License"
 msgstr "Q Publika Permesilo"
 
 #: lib/kaboutdata.cpp:280
-#, fuzzy
-#| msgctxt "@item license (short name)"
-#| msgid "GPL v3"
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "GPL v3"
 msgstr "GPL v3"
 
 #: lib/kaboutdata.cpp:281
-#, fuzzy
-#| msgctxt "@item license"
-#| msgid "GNU General Public License Version 3"
 msgctxt "KAboutLicense|@item license"
 msgid "GNU General Public License Version 3"
 msgstr "GNU Ĝenerala Publika Permesilo Versio 3"
 
 #: lib/kaboutdata.cpp:284
-#, fuzzy
-#| msgctxt "@item license (short name)"
-#| msgid "LGPL v3"
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "LGPL v3"
 msgstr "LGPL v3"
 
 #: lib/kaboutdata.cpp:285
-#, fuzzy
-#| msgctxt "@item license"
-#| msgid "GNU Lesser General Public License Version 3"
 msgctxt "KAboutLicense|@item license"
 msgid "GNU Lesser General Public License Version 3"
 msgstr "GNU Ĝenerala Publika Permesilo Versio 3"
 
 #: lib/kaboutdata.cpp:289
-#, fuzzy
-#| msgctxt "@item license"
-#| msgid "Custom"
 msgctxt "KAboutLicense|@item license"
 msgid "Custom"
 msgstr "Propra"
 
 #: lib/kaboutdata.cpp:292
-#, fuzzy
-#| msgctxt "@item license"
-#| msgid "Not specified"
 msgctxt "KAboutLicense|@item license"
 msgid "Not specified"
 msgstr "Ne specifita"
 
 #: lib/kaboutdata.cpp:809
-#, fuzzy
-#| msgctxt "replace this with information about your translation team"
-#| msgid ""
-#| "<p>KDE is translated into many languages thanks to the work of the "
-#| "translation teams all over the world.</p><p>For more information on KDE "
-#| "internationalization visit <a href=\"http://l10n.kde.org\";>http://l10n.";
-#| "kde.org</a></p>"
 msgctxt "KAboutData|replace this with information about your translation team"
 msgid ""
 "<p>KDE is translated into many languages thanks to the work of the "
@@ -198,299 +137,226 @@
 "<a href=\"http://l10n.kde.org\";>http://l10n.kde.org</a></p>"
 
 #: lib/kaboutdata.cpp:949
-#, fuzzy
-#| msgid "Show author information"
 msgctxt "KAboutData CLI|"
 msgid "Show author information."
 msgstr "Montri aŭtorinformon"
 
 #: lib/kaboutdata.cpp:950
-#, fuzzy
-#| msgid "Show license information"
 msgctxt "KAboutData CLI|"
 msgid "Show license information."
-msgstr "Montri licenco-informon"
+msgstr "Montri permesilo-informon"
 
 #: lib/kaboutdata.cpp:959
-#, fuzzy
-#| msgid ""
-#| "This application was written by somebody who wants to remain anonymous."
 msgctxt "KAboutData CLI|"
 msgid "This application was written by somebody who wants to remain anonymous."
 msgstr "Tiu aplikaĵo estis skribita de iu, kiu volas resti anonima."
 
 #: lib/kaboutdata.cpp:961
-#, fuzzy
-#| msgctxt "the 2nd argument is a list of name+address, one on each line"
-#| msgid ""
-#| "%1 was written by\n"
-#| "%2"
 msgctxt "KAboutData CLI|"
 msgid "%s was written by:\n"
-msgstr ""
-"%1 estas skribita de\n"
-"%2"
+msgstr "%s estas skribita de:\n"
 
 #: lib/kaboutdata.cpp:972
-#, fuzzy
-#| msgid "Please use http://bugs.kde.org to report bugs.\n"
 msgctxt "KAboutData CLI|"
 msgid "Please use http://bugs.kde.org to report bugs."
-msgstr "Bonvole uzu http://bugs.kde.org por la raporto de cimoj.\n"
+msgstr "Bonvole uzu http://bugs.kde.org por la raporto de cimoj."
 
 #: lib/kaboutdata.cpp:974
-#, fuzzy
-#| msgid "Please report bugs to %1.\n"
 msgctxt "KAboutData CLI|"
 msgid "Please report bugs to %s.\n"
-msgstr "Bonvole uzu %1 por la raporto de cimoj.\n"
+msgstr "Bonvole uzu %s por la raporto de cimoj.\n"
 
 #: lib/plugin/kpluginloader.cpp:122
-#, fuzzy, qt-format
-#| msgid "The library %1 does not offer a KDE 4 compatible factory."
+#, qt-format
 msgctxt "KPluginLoader|"
 msgid "The library %1 does not offer a KPluginFactory."
-msgstr "La biblioteko %1 ne provizas KDE4-kongruan fabrikon."
+msgstr "La biblioteko %1 ne provizas KPluginFactory."
 
 #. MetricBinaryDialect size in bytes
 #: lib/util/kformatprivate.cpp:88
-#, fuzzy, qt-format
-#| msgctxt "size in bytes"
-#| msgid "%1 B"
+#, qt-format
 msgctxt "KFormat|MetricBinaryDialect"
 msgid "%1 B"
 msgstr "%1 B"
 
 #. MetricBinaryDialect size in 1000 bytes
 #: lib/util/kformatprivate.cpp:91
-#, fuzzy, qt-format
-#| msgctxt "size in 1000 bytes"
-#| msgid "%1 kB"
+#, qt-format
 msgctxt "KFormat|MetricBinaryDialect"
 msgid "%1 kB"
 msgstr "%1 kB"
 
 #. MetricBinaryDialect size in 10^6 bytes
 #: lib/util/kformatprivate.cpp:94
-#, fuzzy, qt-format
-#| msgctxt "size in 10^6 bytes"
-#| msgid "%1 MB"
+#, qt-format
 msgctxt "KFormat|MetricBinaryDialect"
 msgid "%1 MB"
 msgstr "%1 MB"
 
 #. MetricBinaryDialect size in 10^9 bytes
 #: lib/util/kformatprivate.cpp:97
-#, fuzzy, qt-format
-#| msgctxt "size in 10^9 bytes"
-#| msgid "%1 GB"
+#, qt-format
 msgctxt "KFormat|MetricBinaryDialect"
 msgid "%1 GB"
 msgstr "%1 GB"
 
 #. MetricBinaryDialect size in 10^12 bytes
 #: lib/util/kformatprivate.cpp:100
-#, fuzzy, qt-format
-#| msgctxt "size in 10^12 bytes"
-#| msgid "%1 TB"
+#, qt-format
 msgctxt "KFormat|MetricBinaryDialect"
 msgid "%1 TB"
 msgstr "%1 TB"
 
 #. MetricBinaryDialect size in 10^15 bytes
 #: lib/util/kformatprivate.cpp:103
-#, fuzzy, qt-format
-#| msgctxt "size in 10^15 bytes"
-#| msgid "%1 PB"
+#, qt-format
 msgctxt "KFormat|MetricBinaryDialect"
 msgid "%1 PB"
 msgstr "%1 PB"
 
 #. MetricBinaryDialect size in 10^18 byte
 #: lib/util/kformatprivate.cpp:106
-#, fuzzy, qt-format
-#| msgctxt "size in 10^18 bytes"
-#| msgid "%1 EB"
+#, qt-format
 msgctxt "KFormat|MetricBinaryDialect"
 msgid "%1 EB"
 msgstr "%1 EB"
 
 #. MetricBinaryDialect size in 10^21 bytes
 #: lib/util/kformatprivate.cpp:109
-#, fuzzy, qt-format
-#| msgctxt "size in 10^21 bytes"
-#| msgid "%1 ZB"
+#, qt-format
 msgctxt "KFormat|MetricBinaryDialect"
 msgid "%1 ZB"
 msgstr "%1 ZB"
 
 #. MetricBinaryDialect size in 10^24 bytes
 #: lib/util/kformatprivate.cpp:112
-#, fuzzy, qt-format
-#| msgctxt "size in 10^24 bytes"
-#| msgid "%1 YB"
+#, qt-format
 msgctxt "KFormat|MetricBinaryDialect"
 msgid "%1 YB"
 msgstr "%1 YB"
 
 #. JEDECBinaryDialect memory size in bytes
 #: lib/util/kformatprivate.cpp:118
-#, fuzzy, qt-format
-#| msgctxt "size in bytes"
-#| msgid "%1 B"
+#, qt-format
 msgctxt "KFormat|JEDECBinaryDialect"
 msgid "%1 B"
 msgstr "%1 B"
 
 #. JEDECBinaryDialect memory size in 1024 bytes
 #: lib/util/kformatprivate.cpp:121
-#, fuzzy, qt-format
-#| msgctxt "memory size in 1024 bytes"
-#| msgid "%1 KB"
+#, qt-format
 msgctxt "KFormat|JEDECBinaryDialect"
 msgid "%1 KB"
 msgstr "%1 KB"
 
 #. JEDECBinaryDialect memory size in 10^20 bytes
 #: lib/util/kformatprivate.cpp:124
-#, fuzzy, qt-format
-#| msgctxt "size in 10^6 bytes"
-#| msgid "%1 MB"
+#, qt-format
 msgctxt "KFormat|JEDECBinaryDialect"
 msgid "%1 MB"
 msgstr "%1 MB"
 
 #. JEDECBinaryDialect memory size in 10^30 bytes
 #: lib/util/kformatprivate.cpp:127
-#, fuzzy, qt-format
-#| msgctxt "size in 10^9 bytes"
-#| msgid "%1 GB"
+#, qt-format
 msgctxt "KFormat|JEDECBinaryDialect"
 msgid "%1 GB"
 msgstr "%1 GB"
 
 #. JEDECBinaryDialect memory size in 10^40 bytes
 #: lib/util/kformatprivate.cpp:130
-#, fuzzy, qt-format
-#| msgctxt "size in 10^12 bytes"
-#| msgid "%1 TB"
+#, qt-format
 msgctxt "KFormat|JEDECBinaryDialect"
 msgid "%1 TB"
 msgstr "%1 TB"
 
 #. JEDECBinaryDialect memory size in 10^50 bytes
 #: lib/util/kformatprivate.cpp:133
-#, fuzzy, qt-format
-#| msgctxt "size in 10^15 bytes"
-#| msgid "%1 PB"
+#, qt-format
 msgctxt "KFormat|JEDECBinaryDialect"
 msgid "%1 PB"
 msgstr "%1 PB"
 
 #. JEDECBinaryDialect memory size in 10^60 bytes
 #: lib/util/kformatprivate.cpp:136
-#, fuzzy, qt-format
-#| msgctxt "size in 10^18 bytes"
-#| msgid "%1 EB"
+#, qt-format
 msgctxt "KFormat|JEDECBinaryDialect"
 msgid "%1 EB"
 msgstr "%1 EB"
 
 #. JEDECBinaryDialect memory size in 10^70 bytes
 #: lib/util/kformatprivate.cpp:139
-#, fuzzy, qt-format
-#| msgctxt "size in 10^21 bytes"
-#| msgid "%1 ZB"
+#, qt-format
 msgctxt "KFormat|JEDECBinaryDialect"
 msgid "%1 ZB"
 msgstr "%1 ZB"
 
 #. JEDECBinaryDialect memory size in 10^80 bytes
 #: lib/util/kformatprivate.cpp:142
-#, fuzzy, qt-format
-#| msgctxt "size in 10^24 bytes"
-#| msgid "%1 YB"
+#, qt-format
 msgctxt "KFormat|JEDECBinaryDialect"
 msgid "%1 YB"
 msgstr "%1 YB"
 
 #. IECBinaryDialect size in bytes
 #: lib/util/kformatprivate.cpp:148
-#, fuzzy, qt-format
-#| msgctxt "size in bytes"
-#| msgid "%1 B"
+#, qt-format
 msgctxt "KFormat|IECBinaryDialect"
 msgid "%1 B"
 msgstr "%1 B"
 
 #. IECBinaryDialect size in 1024 bytes
 #: lib/util/kformatprivate.cpp:151
-#, fuzzy, qt-format
-#| msgctxt "size in 1024 bytes"
-#| msgid "%1 KiB"
+#, qt-format
 msgctxt "KFormat|IECBinaryDialect"
 msgid "%1 KiB"
 msgstr "%1 KiB"
 
 #. IECBinaryDialect size in 10^20 bytes
 #: lib/util/kformatprivate.cpp:154
-#, fuzzy, qt-format
-#| msgctxt "size in 2^20 bytes"
-#| msgid "%1 MiB"
+#, qt-format
 msgctxt "KFormat|IECBinaryDialect"
 msgid "%1 MiB"
 msgstr "%1 MiB"
 
 #. IECBinaryDialect size in 10^30 bytes
 #: lib/util/kformatprivate.cpp:157
-#, fuzzy, qt-format
-#| msgctxt "size in 2^30 bytes"
-#| msgid "%1 GiB"
+#, qt-format
 msgctxt "KFormat|IECBinaryDialect"
 msgid "%1 GiB"
 msgstr "%1 GiB"
 
 #. IECBinaryDialect size in 10^40 bytes
 #: lib/util/kformatprivate.cpp:160
-#, fuzzy, qt-format
-#| msgctxt "size in 2^40 bytes"
-#| msgid "%1 TiB"
+#, qt-format
 msgctxt "KFormat|IECBinaryDialect"
 msgid "%1 TiB"
 msgstr "%1 TiB"
 
 #. IECBinaryDialect size in 10^50 bytes
 #: lib/util/kformatprivate.cpp:163
-#, fuzzy, qt-format
-#| msgctxt "size in 2^50 bytes"
-#| msgid "%1 PiB"
+#, qt-format
 msgctxt "KFormat|IECBinaryDialect"
 msgid "%1 PiB"
 msgstr "%1 PiB"
 
 #. IECBinaryDialect size in 10^60 bytes
 #: lib/util/kformatprivate.cpp:166
-#, fuzzy, qt-format
-#| msgctxt "size in 2^60 bytes"
-#| msgid "%1 EiB"
+#, qt-format
 msgctxt "KFormat|IECBinaryDialect"
 msgid "%1 EiB"
 msgstr "%1 EiB"
 
 #. IECBinaryDialect size in 10^70 bytes
 #: lib/util/kformatprivate.cpp:169
-#, fuzzy, qt-format
-#| msgctxt "size in 2^70 bytes"
-#| msgid "%1 ZiB"
+#, qt-format
 msgctxt "KFormat|IECBinaryDialect"
 msgid "%1 ZiB"
 msgstr "%1 ZiB"
 
 #. IECBinaryDialect size in 10^80 bytes
 #: lib/util/kformatprivate.cpp:172
-#, fuzzy, qt-format
-#| msgctxt "size in 2^80 bytes"
-#| msgid "%1 YiB"
+#, qt-format
 msgctxt "KFormat|IECBinaryDialect"
 msgid "%1 YiB"
 msgstr "%1 YiB"
@@ -514,28 +380,28 @@
 #, qt-format
 msgctxt "KFormat|"
 msgid "%1h%2m"
-msgstr ""
+msgstr "%1m%2s"
 
 #. @item:intext Duration format hours, minutes, seconds, milliseconds
 #: lib/util/kformatprivate.cpp:218
 #, qt-format
 msgctxt "KFormat|"
 msgid "%1h%2m%3.%4s"
-msgstr ""
+msgstr "%1h%2m%3.%4s"
 
 #. @item:intext Duration format hours, minutes, seconds
 #: lib/util/kformatprivate.cpp:224
 #, qt-format
 msgctxt "KFormat|"
 msgid "%1h%2m%3s"
-msgstr ""
+msgstr "%1h%2m%3s"
 
 #. @item:intext Duration format minutes, seconds and milliseconds
 #: lib/util/kformatprivate.cpp:234
 #, qt-format
 msgctxt "KFormat|"
 msgid "%1:%2.%3"
-msgstr ""
+msgstr "%1:%2.%3"
 
 #. @item:intext Duration format minutes and seconds
 #. ----------
@@ -544,113 +410,94 @@
 #, qt-format
 msgctxt "KFormat|"
 msgid "%1:%2"
-msgstr ""
+msgstr "%1:%2"
 
 #. @item:intext Duration format hours, minutes, seconds, milliseconds
 #: lib/util/kformatprivate.cpp:247
 #, qt-format
 msgctxt "KFormat|"
 msgid "%1:%2:%3.%4"
-msgstr ""
+msgstr "%1:%2:%3.%4"
 
 #. @item:intext Duration format hours, minutes, seconds
 #: lib/util/kformatprivate.cpp:253
 #, qt-format
 msgctxt "KFormat|"
 msgid "%1:%2:%3"
-msgstr ""
+msgstr "%1:%2:%3"
 
 #. @item:intext %1 is a real number, e.g. 1.23 days
 #: lib/util/kformatprivate.cpp:269
-#, fuzzy, qt-format
-#| msgctxt "@item:intext %1 is a real number, e.g. 1.23 days"
-#| msgid "%1 days"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%1 days"
 msgstr "%1 tagoj"
 
 #. @item:intext %1 is a real number, e.g. 1.23 hours
 #: lib/util/kformatprivate.cpp:272
-#, fuzzy, qt-format
-#| msgctxt "@item:intext %1 is a real number, e.g. 1.23 hours"
-#| msgid "%1 hours"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%1 hours"
 msgstr "%1 horoj"
 
 #. @item:intext %1 is a real number, e.g. 1.23 minutes
 #: lib/util/kformatprivate.cpp:275
-#, fuzzy, qt-format
-#| msgctxt "@item:intext %1 is a real number, e.g. 1.23 minutes"
-#| msgid "%1 minutes"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%1 minutes"
 msgstr "%1 minutoj"
 
 #. @item:intext %1 is a real number, e.g. 1.23 seconds
 #: lib/util/kformatprivate.cpp:278
-#, fuzzy, qt-format
-#| msgctxt "@item:intext %1 is a real number, e.g. 1.23 seconds"
-#| msgid "%1 seconds"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%1 seconds"
 msgstr "%1 sekundoj"
 
 #. @item:intext %1 is a whole number
 #: lib/util/kformatprivate.cpp:283
-#, fuzzy, qt-format
-#| msgctxt "@item:intext"
-#| msgid "%1 millisecond"
-#| msgid_plural "%1 milliseconds"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n millisecond(s)"
 msgid_plural "%n millisecond(s)"
-msgstr[0] "%1 milisekundo"
-msgstr[1] "%1 milisekundoj"
+msgstr[0] "%n milisekundo"
+msgstr[1] "%n milisekundoj"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:301
-#, fuzzy, qt-format
-#| msgctxt "@item:intext %1 is a real number, e.g. 1.23 days"
-#| msgid "%1 days"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n day(s)"
 msgid_plural "%n day(s)"
-msgstr[0] "%1 tagoj"
-msgstr[1] "%1 tagoj"
+msgstr[0] "%n tago"
+msgstr[1] "%n tagoj"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:306
-#, fuzzy, qt-format
-#| msgctxt "@item:intext %1 is a real number, e.g. 1.23 hours"
-#| msgid "%1 hours"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n hour(s)"
 msgid_plural "%n hour(s)"
-msgstr[0] "%1 horoj"
-msgstr[1] "%1 horoj"
+msgstr[0] "%n horo"
+msgstr[1] "%n horoj"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:311
-#, fuzzy, qt-format
-#| msgctxt "@item:intext %1 is a real number, e.g. 1.23 minutes"
-#| msgid "%1 minutes"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n minute(s)"
 msgid_plural "%n minute(s)"
-msgstr[0] "%1 minutoj"
-msgstr[1] "%1 minutoj"
+msgstr[0] "%n minuto"
+msgstr[1] "%n minutoj"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:316
-#, fuzzy, qt-format
-#| msgctxt "@item:intext %1 is a real number, e.g. 1.23 seconds"
-#| msgid "%1 seconds"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n second(s)"
 msgid_plural "%n second(s)"
-msgstr[0] "%1 sekundoj"
-msgstr[1] "%1 sekundoj"
+msgstr[0] "%n sekundo"
+msgstr[1] "%n sekundoj"
 
 #. @item:intext days and hours. This uses the previous item:intext messages. 
If this does not fit the grammar of your language please contact the i18n team 
to solve the problem
 #. ----------
@@ -659,59 +506,41 @@
 #. @item:intext minutes and seconds. This uses the previous item:intext 
messages. If this does not fit the grammar of your language please contact the 
i18n team to solve the problem
 #: lib/util/kformatprivate.cpp:341 lib/util/kformatprivate.cpp:348
 #: lib/util/kformatprivate.cpp:355
-#, fuzzy, qt-format
-#| msgctxt ""
-#| "@item:intext days and hours. This uses the previous item:intext messages. "
-#| "If this does not fit the grammar of your language please contact the i18n "
-#| "team to solve the problem"
-#| msgid "%1 and %2"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%1 and %2"
 msgstr "%1 kaj %2"
 
 #: lib/util/kformatprivate.cpp:373
-#, fuzzy
-#| msgctxt "@option tomorrow"
-#| msgid "Tomorrow"
 msgctxt "KFormat|"
 msgid "Tomorrow"
 msgstr "Morgaŭ"
 
 #: lib/util/kformatprivate.cpp:375
-#, fuzzy
-#| msgid "Today"
 msgctxt "KFormat|"
 msgid "Today"
 msgstr "Hodiaŭ"
 
 #: lib/util/kformatprivate.cpp:377
-#, fuzzy
-#| msgid "Yesterday"
 msgctxt "KFormat|"
 msgid "Yesterday"
 msgstr "Hieraŭ"
 
 #: lib/util/kformatprivate.cpp:384
-#, fuzzy, qt-format
-#| msgctxt "@option last week"
-#| msgid "Last Week"
+#, qt-format
 msgctxt "KFormat|"
 msgid "Last %1"
-msgstr "Lasta semajno"
+msgstr "Lasta %1"
 
 #: lib/util/kformatprivate.cpp:389
-#, fuzzy, qt-format
-#| msgctxt "Opposite to Back"
-#| msgid "Next"
+#, qt-format
 msgctxt "KFormat|"
 msgid "Next %1"
-msgstr "Antaŭen"
+msgstr "Antaŭea %1"
 
 #. relative datetime with %1 result of formatReleativeDate() and %2 the 
formatted time If this does not fit the grammar of your language please contact 
the i18n team to solve the problem
 #: lib/util/kformatprivate.cpp:404
-#, fuzzy, qt-format
-#| msgctxt "City, Country"
-#| msgid "%1, %2"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%1, %2"
 msgstr "%1, %2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/po/fr/kcoreaddons5_qt.po 
new/kcoreaddons-5.15.0/po/fr/kcoreaddons5_qt.po
--- old/kcoreaddons-5.14.0/po/fr/kcoreaddons5_qt.po     2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/po/fr/kcoreaddons5_qt.po     2015-10-05 
09:56:42.000000000 +0200
@@ -24,10 +24,10 @@
 "PO-Revision-Date: 2014-07-02 13:50+0200\n"
 "Last-Translator: Sebastien Renard <ren...@kde.org>\n"
 "Language-Team: French <kde-francoph...@kde.org>\n"
-"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Lokalize 1.5\n"
 "X-Environment: kde\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/po/nb/kcoreaddons5_qt.po 
new/kcoreaddons-5.15.0/po/nb/kcoreaddons5_qt.po
--- old/kcoreaddons-5.14.0/po/nb/kcoreaddons5_qt.po     2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/po/nb/kcoreaddons5_qt.po     2015-10-05 
09:56:42.000000000 +0200
@@ -1,5 +1,3 @@
-# Translation of kcoreaddons5_qt to Norwegian Bokmål
-#
 # Knut Yrvin <knut.yr...@gmail.com>, 2002, 2003, 2004, 2005.
 # Bjørn Steensrud <bjor...@skogkatt.homelinux.org>, 2002, 2003, 2004, 2005, 
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015.
 # Eskild Hustvedt <zerod...@skolelinux.no>, 2004, 2005.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/po/pl/kcoreaddons5_qt.po 
new/kcoreaddons-5.15.0/po/pl/kcoreaddons5_qt.po
--- old/kcoreaddons-5.14.0/po/pl/kcoreaddons5_qt.po     2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/po/pl/kcoreaddons5_qt.po     2015-10-05 
09:56:42.000000000 +0200
@@ -17,14 +17,14 @@
 "Project-Id-Version: kdelibs4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2015-01-05 11:49+0100\n"
+"PO-Revision-Date: 2015-10-04 08:51+0100\n"
 "Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilow...@gmail.com>\n"
 "Language-Team: Polish <kde-i18n-...@kde.org>\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 2.0\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2);\n"
 "X-Qt-Contexts: true\n"
@@ -142,7 +142,7 @@
 "kdei18n-pl-uw...@lists.sourceforge.net\"> kdei18n-pl-uwagi@lists.sourceforge."
 "net</a> (nie ma potrzeby zapisywania na listę dyskusyjną, możesz tylko "
 "zgłosić błąd, my się nim zajmiemy).</p><p>Zapraszamy również do współudziału "
-"w tłumaczeniach! Informację, jak można pomóc w tłumaczeniu (niekoniecznie "
+"w tłumaczeniu! Informację, jak można pomóc w tłumaczeniu (niekoniecznie "
 "tłumacząc) znajdziesz na naszej stronie.</p>"
 
 #: lib/kaboutdata.cpp:949
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/po/se/kcoreaddons5_qt.po 
new/kcoreaddons-5.15.0/po/se/kcoreaddons5_qt.po
--- old/kcoreaddons-5.14.0/po/se/kcoreaddons5_qt.po     2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/po/se/kcoreaddons5_qt.po     2015-10-05 
09:56:42.000000000 +0200
@@ -1,5 +1,3 @@
-# Translation of kcoreaddons5_qt to Northern Sami
-#
 # Børre Gaup <boe...@skolelinux.no>, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 
2009, 2010, 2011, 2012.
 msgid ""
 msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/src/lib/io/kdirwatch.cpp 
new/kcoreaddons-5.15.0/src/lib/io/kdirwatch.cpp
--- old/kcoreaddons-5.14.0/src/lib/io/kdirwatch.cpp     2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/src/lib/io/kdirwatch.cpp     2015-10-05 
09:56:42.000000000 +0200
@@ -55,6 +55,7 @@
 #include <QtCore/QSocketNotifier>
 #include <QtCore/QTimer>
 #include <QtCore/QThread>
+#include <QtCore/QThreadStorage>
 #include <QtCore/QCoreApplication>
 
 #include <qplatformdefs.h> // QT_LSTAT, QT_STAT, QT_STATBUF
@@ -92,14 +93,13 @@
 // set this to true for much more verbose debug output
 static const bool s_verboseDebug = false;
 
-// The KDirWatchPrivate instance is refcounted, and deleted by the last 
KDirWatch instance
-static KDirWatchPrivate *dwp_self = 0;
+static QThreadStorage<KDirWatchPrivate *> dwp_self;
 static KDirWatchPrivate *createPrivate()
 {
-    if (!dwp_self) {
-        dwp_self = new KDirWatchPrivate;
+    if (!dwp_self.hasLocalData()) {
+        dwp_self.setLocalData(new KDirWatchPrivate);
     }
-    return dwp_self;
+    return dwp_self.localData();
 }
 
 // Convert a string into a watch Method
@@ -174,7 +174,6 @@
     : timer(),
       freq(3600000), // 1 hour as upper bound
       statEntries(0),
-      m_ref(0),
       delayRemove(false),
       rescan_all(false),
       rescan_timer()
@@ -234,7 +233,7 @@
     }
 }
 
-// This is called on app exit (when K_GLOBAL_STATIC deletes KDirWatch::self)
+// This is called on app exit (deleted by QThreadStorage)
 KDirWatchPrivate::~KDirWatchPrivate()
 {
     timer.stop();
@@ -1865,41 +1864,35 @@
 // <dfaure> yes, see kio/src/core/kcoredirlister_p.h:328
 bool KDirWatch::exists()
 {
-    return s_pKDirWatchSelf.exists();
+    return s_pKDirWatchSelf.exists() && dwp_self.hasLocalData();
 }
 
-static void cleanupQFSWatcher()
+static void postRoutine_KDirWatch()
 {
-    s_pKDirWatchSelf()->deleteQFSWatcher();
+    if (s_pKDirWatchSelf.exists()) {
+        s_pKDirWatchSelf()->deleteQFSWatcher();
+    }
 }
 
 KDirWatch::KDirWatch(QObject *parent)
     : QObject(parent), d(createPrivate())
 {
-    static int nameCounter = 0;
-
-    nameCounter++;
-    setObjectName(QString::fromLatin1("KDirWatch-%1").arg(nameCounter));
-
-    d->ref();
+    static QBasicAtomicInt nameCounter = Q_BASIC_ATOMIC_INITIALIZER(1);
+    const int counter = nameCounter.fetchAndAddRelaxed(1); // returns the old 
value
+    setObjectName(QString::fromLatin1("KDirWatch-%1").arg(counter));
 
     d->_isStopped = false;
 
-    static bool cleanupRegistered = false;
-    if (!cleanupRegistered) {
-        cleanupRegistered = true;
+    if (counter == 1) { // very first KDirWatch instance
         // Must delete QFileSystemWatcher before qApp is gone - bug 261541
-        qAddPostRoutine(cleanupQFSWatcher);
+        qAddPostRoutine(postRoutine_KDirWatch);
     }
 }
 
 KDirWatch::~KDirWatch()
 {
-    d->removeEntries(this);
-    if (d->deref()) {
-        // delete it if it's the last one
-        delete d;
-        dwp_self = 0;
+    if (dwp_self.hasLocalData()) { // skip this after app destruction
+        d->removeEntries(this);
     }
 }
 
@@ -2013,15 +2006,16 @@
 {
     delete d->fsWatcher;
     d->fsWatcher = 0;
+    d = 0;
 }
 
 void KDirWatch::statistics()
 {
-    if (!dwp_self) {
+    if (!dwp_self.hasLocalData()) {
         qCDebug(KDIRWATCH) << "KDirWatch not used";
         return;
     }
-    dwp_self->statistics();
+    dwp_self.localData()->statistics();
 }
 
 void KDirWatch::setCreated(const QString &_file)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/src/lib/io/kdirwatch.h 
new/kcoreaddons-5.15.0/src/lib/io/kdirwatch.h
--- old/kcoreaddons-5.14.0/src/lib/io/kdirwatch.h       2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/src/lib/io/kdirwatch.h       2015-10-05 
09:56:42.000000000 +0200
@@ -300,7 +300,7 @@
     void deleted(const QString &path);
 
 private:
-    KDirWatchPrivate *const d;
+    KDirWatchPrivate *d;
 };
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(KDirWatch::WatchModes)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/src/lib/io/kdirwatch_p.h 
new/kcoreaddons-5.15.0/src/lib/io/kdirwatch_p.h
--- old/kcoreaddons-5.14.0/src/lib/io/kdirwatch_p.h     2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/src/lib/io/kdirwatch_p.h     2015-10-05 
09:56:42.000000000 +0200
@@ -166,16 +166,6 @@
     int scanEntry(Entry *e);
     void emitEvent(const Entry *e, int event, const QString &fileName = 
QString());
 
-    // Memory management - delete when last KDirWatch gets deleted
-    void ref()
-    {
-        m_ref++;
-    }
-    bool deref()
-    {
-        return (--m_ref == 0);
-    }
-
     static bool isNoisyFile(const char *filename);
 
 public Q_SLOTS:
@@ -193,7 +183,6 @@
     int freq;
     int statEntries;
     int m_nfsPollInterval, m_PollInterval;
-    int m_ref;
     bool useStat(Entry *e);
 
     // removeList is allowed to contain any entry at most once
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/src/lib/kaboutdata.h 
new/kcoreaddons-5.15.0/src/lib/kaboutdata.h
--- old/kcoreaddons-5.14.0/src/lib/kaboutdata.h 2015-09-05 10:54:16.000000000 
+0200
+++ new/kcoreaddons-5.15.0/src/lib/kaboutdata.h 2015-10-05 09:56:42.000000000 
+0200
@@ -331,12 +331,12 @@
      * consider using componentName() instead.
      *
      * @param componentName The program name or plugin name used internally.
-     * Example: "kwrite".
+     * Example: QStringLiteral("kwrite"). This should never be translated.
      *
      * @param displayName A displayable name for the program or plugin. This 
string
      *        should be translated. Example: i18n("KWrite")
      *
-     * @param version The component version string.
+     * @param version The component version string. Example: 
QStringLiteral("1.0").
      *
      * @param shortDescription A short description of what the component does.
      *        This string should be translated.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/src/lib/text/kstringhandler.cpp 
new/kcoreaddons-5.15.0/src/lib/text/kstringhandler.cpp
--- old/kcoreaddons-5.14.0/src/lib/text/kstringhandler.cpp      2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/src/lib/text/kstringhandler.cpp      2015-10-05 
09:56:42.000000000 +0200
@@ -202,7 +202,7 @@
 bool KStringHandler::isUtf8(const char *buf)
 {
     int i, n;
-    register unsigned char c;
+    unsigned char c;
     bool gotone = false;
 
     if (!buf) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kcoreaddons-5.14.0/src/lib/text/ktexttohtmlemoticonsinterface.h 
new/kcoreaddons-5.15.0/src/lib/text/ktexttohtmlemoticonsinterface.h
--- old/kcoreaddons-5.14.0/src/lib/text/ktexttohtmlemoticonsinterface.h 
2015-09-05 10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/src/lib/text/ktexttohtmlemoticonsinterface.h 
2015-10-05 09:56:42.000000000 +0200
@@ -29,8 +29,8 @@
 class KTextToHTMLEmoticonsInterface
 {
 public:
-    KTextToHTMLEmoticonsInterface() {};
-    virtual ~KTextToHTMLEmoticonsInterface() {};
+    KTextToHTMLEmoticonsInterface() {}
+    virtual ~KTextToHTMLEmoticonsInterface() {}
 
     virtual QString parseEmoticons(const QString &text,
                                    bool strictParse = false,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/src/lib/util/kshell_unix.cpp 
new/kcoreaddons-5.15.0/src/lib/util/kshell_unix.cpp
--- old/kcoreaddons-5.14.0/src/lib/util/kshell_unix.cpp 2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/src/lib/util/kshell_unix.cpp 2015-10-05 
09:56:42.000000000 +0200
@@ -80,7 +80,7 @@
                 goto okret;
             }
             c = args.unicode()[pos++];
-        } while (c.isSpace());
+        } while (c == QLatin1Char(' '));
         QString cret;
         if ((flags & TildeExpand) && c == QLatin1Char('~')) {
             int opos = pos;
@@ -89,7 +89,7 @@
                     break;
                 }
                 c = args.unicode()[pos];
-                if (c == QLatin1Char('/') || c.isSpace()) {
+                if (c == QLatin1Char('/') || c == QLatin1Char(' ')) {
                     break;
                 }
                 if (isQuoteMeta(c)) {
@@ -112,7 +112,7 @@
                 goto okret;
             }
             pos++;
-            if (c.isSpace()) {
+            if (c == QLatin1Char(' ')) {
                 ret += ccret;
                 firstword = false;
                 continue;
@@ -272,7 +272,7 @@
                 break;
             }
             c = args.unicode()[pos++];
-        } while (!c.isSpace());
+        } while (c != QLatin1Char(' '));
         ret += cret;
         firstword = false;
     }
@@ -304,7 +304,7 @@
     }; // 0-32 \'"$`<>|;&(){}*?#!~[]
 
     uint c = cUnicode.unicode();
-    return ((c < sizeof(iqm) * 8) && (iqm[c / 8] & (1 << (c & 7)))) || 
cUnicode.isSpace();
+    return ((c < sizeof(iqm) * 8) && (iqm[c / 8] & (1 << (c & 7))));
 }
 
 QString KShell::quoteArg(const QString &arg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/src/lib/util/kuser.h 
new/kcoreaddons-5.15.0/src/lib/util/kuser.h
--- old/kcoreaddons-5.14.0/src/lib/util/kuser.h 2015-09-05 10:54:16.000000000 
+0200
+++ new/kcoreaddons-5.15.0/src/lib/util/kuser.h 2015-10-05 09:56:42.000000000 
+0200
@@ -129,7 +129,7 @@
     /** Creates an KUserId from the native user ID type */
     explicit KUserId(K_UID uid) : KUserOrGroupId(uid) {}
     KUserId(const KUserId &other) : KUserOrGroupId(other) {}
-    ~KUserId() {};
+    ~KUserId() {}
     /** @return a KUserId for the user with name @p name, or an invalid 
KUserId if no
      * user with this name was found on the system
      */
@@ -154,7 +154,7 @@
     /** Creates an KGroupId from the native group ID type */
     explicit KGroupId(K_GID gid) : KUserOrGroupId(gid) {}
     KGroupId(const KGroupId &other) : KUserOrGroupId(other) {}
-    ~KGroupId() {};
+    ~KGroupId() {}
     /** @return A KGroupId for the user with name @p name, or an invalid 
KGroupId if no
      * user with this name was found on the system
      */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.14.0/src/mimetypes/kde5.xml 
new/kcoreaddons-5.15.0/src/mimetypes/kde5.xml
--- old/kcoreaddons-5.14.0/src/mimetypes/kde5.xml       2015-09-05 
10:54:16.000000000 +0200
+++ new/kcoreaddons-5.15.0/src/mimetypes/kde5.xml       2015-10-05 
09:56:42.000000000 +0200
@@ -1493,7 +1493,7 @@
     <comment xml:lang="ar">تنسيقات صور خام لكدي</comment>
     <comment xml:lang="ast">Formatos d'imaxe en brutu de KDE</comment>
     <comment xml:lang="bs">KDE formati sirovih slika</comment>
-    <comment xml:lang="ca">formats d'imatge en brut del KDE</comment>
+    <comment xml:lang="ca">formats d'imatge RAW del KDE</comment>
     <comment xml:lang="ca@valencia">formats d'imatge en brut del KDE</comment>
     <comment xml:lang="cs">Formáty obrázků raw v KDE</comment>
     <comment xml:lang="da">KDE raw-billedformater</comment>


Reply via email to