]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/admin/workerintegration.cpp
Check if the item supports sequencing before looking for sequence pixmaps
[dolphin.git] / src / admin / workerintegration.cpp
index 038c5209435f45d9c2fb9cd980399b2b9b70a2db..0bf6b2890ed4a4523fbcd742824132247caf3797 100644 (file)
@@ -122,7 +122,9 @@ WorkerIntegration::WorkerIntegration(DolphinMainWindow *parent, QAction *actAsAd
 
 void WorkerIntegration::createActAsAdminAction(KActionCollection *actionCollection, DolphinMainWindow *dolphinMainWindow)
 {
-    Q_ASSERT(!instance);
+    Q_ASSERT(!instance /* We never want to construct more than one instance,
+    however in automatic testing sometimes multiple DolphinMainWindows are created, so this assert is diluted to accommodate for that: */
+             || instance->parent() != dolphinMainWindow);
     if (isWorkerInstalled()) {
         QAction *actAsAdminAction = actionCollection->addAction(QStringLiteral("act_as_admin"));
         actAsAdminAction->setText(actionName());
@@ -134,43 +136,46 @@ void WorkerIntegration::createActAsAdminAction(KActionCollection *actionCollecti
     }
 }
 
-void WorkerIntegration::exitAdminMode()
+QAction *WorkerIntegration::FriendAccess::actAsAdminAction()
 {
-    if (instance->m_actAsAdminAction->isChecked()) {
-        instance->m_actAsAdminAction->trigger();
-    }
+    return instance->m_actAsAdminAction;
 }
 
 void WorkerIntegration::toggleActAsAdmin()
 {
     auto dolphinMainWindow = static_cast<DolphinMainWindow *>(parent());
     QUrl url = dolphinMainWindow->activeViewContainer()->urlNavigator()->locationUrl();
-    if (url.scheme() == QStringLiteral("file")) {
-        bool risksAccepted = !KMessageBox::shouldBeShownContinue(warningDontShowAgainName);
 
-        if (!risksAccepted) {
-            KMessageDialog warningDialog{KMessageDialog::QuestionTwoActions, warningMessage(), dolphinMainWindow};
-            warningDialog.setCaption(i18nc("@title:window", "Risks of Acting as an Administrator"));
-            warningDialog.setIcon(QIcon::fromTheme(QStringLiteral("security-low")));
-            warningDialog.setButtons(KGuiItem{i18nc("@action:button", "I Understand and Accept These Risks"), QStringLiteral("data-warning")},
-                                     KStandardGuiItem::cancel());
-            warningDialog.setDontAskAgainText(i18nc("@option:check", "Do not warn me about these risks again"));
-
-            risksAccepted = warningDialog.exec() != 4 /* Cancel */;
-            if (warningDialog.isDontAskAgainChecked()) {
-                KMessageBox::saveDontShowAgainContinue(warningDontShowAgainName);
-            }
+    if (url.scheme() == QStringLiteral("admin")) {
+        url.setScheme(QStringLiteral("file"));
+        dolphinMainWindow->changeUrl(url);
+        return;
+    } else if (url.scheme() != QStringLiteral("file")) {
+        return;
+    }
 
-            if (!risksAccepted) {
-                updateActAsAdminAction(); // Uncheck the action
-                return;
-            }
+    bool risksAccepted = !KMessageBox::shouldBeShownContinue(warningDontShowAgainName);
+
+    if (!risksAccepted) {
+        KMessageDialog warningDialog{KMessageDialog::QuestionTwoActions, warningMessage(), dolphinMainWindow};
+        warningDialog.setCaption(i18nc("@title:window", "Risks of Acting as an Administrator"));
+        warningDialog.setIcon(QIcon::fromTheme(QStringLiteral("security-low")));
+        warningDialog.setButtons(KGuiItem{i18nc("@action:button", "I Understand and Accept These Risks"), QStringLiteral("data-warning")},
+                                 KStandardGuiItem::cancel());
+        warningDialog.setDontAskAgainText(i18nc("@option:check", "Do not warn me about these risks again"));
+
+        risksAccepted = warningDialog.exec() != 4 /* Cancel */;
+        if (warningDialog.isDontAskAgainChecked()) {
+            KMessageBox::saveDontShowAgainContinue(warningDontShowAgainName);
         }
 
-        url.setScheme(QStringLiteral("admin"));
-    } else if (url.scheme() == QStringLiteral("admin")) {
-        url.setScheme(QStringLiteral("file"));
+        if (!risksAccepted) {
+            updateActAsAdminAction(); // Uncheck the action
+            return;
+        }
     }
+
+    url.setScheme(QStringLiteral("admin"));
     dolphinMainWindow->changeUrl(url);
 }
 
@@ -189,3 +194,5 @@ void WorkerIntegration::updateActAsAdminAction()
         }
     }
 }
+
+#include "moc_workerintegration.cpp"