File r1050784-activatable-sorting.diff of Package NetworkManager-kde4

Index: libs/service/activatablelist.cpp
===================================================================
--- libs/service/activatablelist.cpp	(revision 1050783)
+++ libs/service/activatablelist.cpp	(revision 1050784)
@@ -80,16 +80,21 @@
     Q_D(ActivatableList);
     if (!d->activatables.contains(activatable)) {
         addActivatableInternal(activatable);
+        notifyOnAddActivatable(activatable);
     }
 }
 
-
 void ActivatableList::addActivatableInternal(Knm::Activatable * activatable)
 {
     Q_D(ActivatableList);
     d->activatables.append(activatable);
+    connect(activatable, SIGNAL(changed()), this, SLOT(activatableChanged()));
+}
 
-    connect(activatable, SIGNAL(changed()), this, SLOT(activatableChanged()));
+void ActivatableList::notifyOnAddActivatable(Knm::Activatable * activatable)
+{
+    Q_D(ActivatableList);
+
     foreach (ActivatableObserver * observer, d->observers) {
         observer->handleAdd(activatable);
     }
Index: libs/service/activatablelist.h
===================================================================
--- libs/service/activatablelist.h	(revision 1050783)
+++ libs/service/activatablelist.h	(revision 1050784)
@@ -61,6 +61,7 @@
     void activatableChanged();
 protected:
     void addActivatableInternal(Knm::Activatable * activatable);
+    void notifyOnAddActivatable(Knm::Activatable * activatable);
     ActivatableListPrivate * d_ptr;
 };
 
Index: libs/service/sortedactivatablelist.cpp
===================================================================
--- libs/service/sortedactivatablelist.cpp	(revision 1050783)
+++ libs/service/sortedactivatablelist.cpp	(revision 1050784)
@@ -92,12 +92,11 @@
         // add all vpn connections
         if ((iface && (d->types.testFlag(iface->type())))
                 || (activatable->activatableType() == Knm::Activatable::VpnInterfaceConnection)) {
-
             addActivatableInternal(activatable);
-
+            qSort(d->activatables.begin(), d->activatables.end(), activatableLessThan);
+            notifyOnAddActivatable(activatable);
         }
     }
-    qSort(d->activatables.begin(), d->activatables.end(), activatableLessThan);
 }
 
 void SortedActivatableList::handleUpdate(Knm::Activatable *)
openSUSE Build Service is sponsored by