]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/places/placesitemmodel.cpp
Prevent multiple connections between sender and receiver
[dolphin.git] / src / panels / places / placesitemmodel.cpp
index baa770dfdb8d1b2fc79ec313c10fbb5bc38fbd79..dc2b95c36bf4ae1fb54e2131d64fc5aa2def784c 100644 (file)
@@ -313,7 +313,8 @@ void PlacesItemModel::requestEject(int index)
         Solid::OpticalDrive* drive = item->device().parent().as<Solid::OpticalDrive>();
         if (drive) {
             connect(drive, SIGNAL(ejectDone(Solid::ErrorType,QVariant,QString)),
-                    this, SLOT(slotStorageTeardownDone(Solid::ErrorType,QVariant)));
+                    this, SLOT(slotStorageTeardownDone(Solid::ErrorType,QVariant)),
+                    Qt::UniqueConnection);
             drive->eject();
         } else {
             const QString label = item->text();
@@ -330,7 +331,8 @@ void PlacesItemModel::requestTeardown(int index)
         Solid::StorageAccess* access = item->device().as<Solid::StorageAccess>();
         if (access) {
             connect(access, SIGNAL(teardownDone(Solid::ErrorType,QVariant,QString)),
-                    this, SLOT(slotStorageTeardownDone(Solid::ErrorType,QVariant)));
+                    this, SLOT(slotStorageTeardownDone(Solid::ErrorType,QVariant)),
+                    Qt::UniqueConnection);
             access->teardown();
         }
     }
@@ -359,7 +361,8 @@ void PlacesItemModel::requestStorageSetup(int index)
         m_storageSetupInProgress[access] = index;
 
         connect(access, SIGNAL(setupDone(Solid::ErrorType,QVariant,QString)),
-                this, SLOT(slotStorageSetupDone(Solid::ErrorType,QVariant,QString)));
+                this, SLOT(slotStorageSetupDone(Solid::ErrorType,QVariant,QString)),
+                Qt::UniqueConnection);
 
         access->setup();
     }
@@ -598,6 +601,7 @@ void PlacesItemModel::slotStorageSetupDone(Solid::ErrorType error,
 {
     Q_UNUSED(udi);
 
+    Q_ASSERT(!m_storageSetupInProgress.isEmpty());
     const int index = m_storageSetupInProgress.take(sender());
     const PlacesItem*  item = placesItem(index);
     if (!item) {
@@ -650,6 +654,7 @@ void PlacesItemModel::updateBookmarks()
                     found = true;
                     if (newBookmark.metaDataItem("UDI").isEmpty()) {
                         item->setBookmark(newBookmark);
+                        item->setText(i18nc("KFile System Bookmarks", newBookmark.text().toUtf8().data()));
                     }
                     break;
                 }