]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.cpp
prevent that the user can open more than one instance of the settings dialog
[dolphin.git] / src / dolphinmainwindow.cpp
index 22d2f09fc338fa7ea691c054f2f62f226e0dff1b..9c55a40f4f82ca7547cb3bc1b6ca44b8dde5a1dd 100644 (file)
@@ -93,7 +93,8 @@ DolphinMainWindow::DolphinMainWindow(int id) :
     m_id(id),
     m_tabIndex(0),
     m_viewTab(),
-    m_actionHandler(0)
+    m_actionHandler(0),
+    m_settingsDialog(0)
 {
     setObjectName("Dolphin#");
 
@@ -701,8 +702,13 @@ void DolphinMainWindow::toggleShowMenuBar()
 
 void DolphinMainWindow::editSettings()
 {
-    DolphinSettingsDialog dialog(this);
-    dialog.exec();
+    if (m_settingsDialog == 0) {
+        m_settingsDialog = new DolphinSettingsDialog(this);
+        m_settingsDialog->setAttribute(Qt::WA_DeleteOnClose);
+        m_settingsDialog->show();
+    } else {
+        m_settingsDialog->raise();
+    }
 }
 
 void DolphinMainWindow::setActiveTab(int index)
@@ -975,11 +981,12 @@ void DolphinMainWindow::setupActions()
     newTab->setShortcut(KShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_N, Qt::CTRL | Qt::Key_T));
     connect(newTab, SIGNAL(triggered()), this, SLOT(openNewTab()));
 
-    QAction* closeTab = new QAction(KIcon("tab-close"), i18nc("@action:inmenu File", "Close Tab"), this);
+    QAction* closeTab = actionCollection()->addAction("close_tab");
+    closeTab->setIcon(KIcon("tab-close"));
+    closeTab->setText(i18nc("@action:inmenu File", "Close Tab"));
     closeTab->setShortcut(Qt::CTRL | Qt::Key_W);
     closeTab->setEnabled(false);
     connect(closeTab, SIGNAL(triggered()), this, SLOT(closeTab()));
-    actionCollection()->addAction("close_tab", closeTab);
 
     KStandardAction::quit(this, SLOT(quit()), actionCollection());
 
@@ -1073,13 +1080,13 @@ void DolphinMainWindow::setupActions()
     KStandardAction::preferences(this, SLOT(editSettings()), actionCollection());
 
     // not in menu actions
-    KAction* activateNextTab = actionCollection()->addAction("activatenexttab");
+    KAction* activateNextTab = actionCollection()->addAction("activate_next_tab");
     activateNextTab->setText(i18nc("@action:inmenu", "Activate Next Tab"));
     connect(activateNextTab, SIGNAL(triggered()), SLOT(activateNextTab()));
     activateNextTab->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabPrev() :
                                                                   KStandardShortcut::tabNext());
 
-    KAction* activatePrevTab = actionCollection()->addAction("activateprevtab");
+    KAction* activatePrevTab = actionCollection()->addAction("activate_prev_tab");
     activatePrevTab->setText(i18nc("@action:inmenu", "Activate Previous Tab"));
     connect(activatePrevTab, SIGNAL(triggered()), SLOT(activatePrevTab()));
     activatePrevTab->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabNext() :