summaryrefslogtreecommitdiff
path: root/extra/kdesdk-kate/fix-highlight-selection.patch
blob: 26accafc70275c1e8676416ac8fb62839faf99d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
commit f934575613d7efc60b9b6be6203c777d42ab7ffc
Author: Dominik Haumann <dhaumann@kde.org>
Date:   Sun Feb 10 22:18:38 2013 +0100

    fix plugin loading in KDE SC 4.10.0
    
    Thanks to Dorian and Loïc for finding the root of this issue.
    
    BUG: 314530
    FIXED-IN: 4.10.1

diff --git a/part/utils/katepartpluginmanager.cpp b/part/utils/katepartpluginmanager.cpp
index e9cb258..18fe6f0 100644
--- a/part/utils/katepartpluginmanager.cpp
+++ b/part/utils/katepartpluginmanager.cpp
@@ -75,17 +75,25 @@ KatePartPluginManager *KatePartPluginManager::self()
 void KatePartPluginManager::setupPluginList ()
 {
   KService::List traderList = KServiceTypeTrader::self()->
-      query("KTextEditor/Plugin",
-            "([X-KDE-Version] >= 4.0) and ([X-KDE-Version] <= " + QString("%1.%2").arg(KDE::versionMajor()).arg(KDE::versionMinor()) + ')');
+      query("KTextEditor/Plugin");
 
   foreach(const KService::Ptr &ptr, traderList)
   {
-    KatePartPluginInfo info(ptr);
+    QVariant version = ptr->property("X-KDE-Version", QVariant::String);
+    QStringList numbers = qvariant_cast<QString>(version).split('.');
+    unsigned int kdeVersion = KDE_MAKE_VERSION(numbers.value(0).toUInt(),
+                                               numbers.value(1).toUInt(),
+                                               numbers.value(2).toUInt());
 
-    info.load = false;
-    info.plugin = 0L;
+    if (KDE_MAKE_VERSION(4,0,0) <= kdeVersion && kdeVersion <= KDE::version())
+    {
+      KatePartPluginInfo info(ptr);
+
+      info.load = false;
+      info.plugin = 0L;
 
-    m_pluginList.push_back (info);
+      m_pluginList.push_back (info);
+    }
   }
 }