]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/admin/workerintegration.cpp
Fix display of filename ampersands in actions
[dolphin.git] / src / admin / workerintegration.cpp
index 038c5209435f45d9c2fb9cd980399b2b9b70a2db..80d8fda1b15e72f5865b7df3ed352698398fd44e 100644 (file)
@@ -134,43 +134,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);
 }