]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.cpp
Use a QActionGroup and save 6 slots (and the duplication of the action names in the...
[dolphin.git] / src / dolphinmainwindow.cpp
index 2048de1a5618aee14bf80411ae4ad917624ca6d4..ce13796ac3fca63838cf1a8b83ce243823eeff74 100644 (file)
@@ -60,6 +60,7 @@
 #include <kmenubar.h>
 #include <kmessagebox.h>
 #include <konqmimedata.h>
+#include <konq_operations.h>
 #include <kpropertiesdialog.h>
 #include <kprotocolinfo.h>
 #include <ktoggleaction.h>
@@ -422,6 +423,12 @@ void DolphinMainWindow::readProperties(const KConfigGroup& group)
     }
 }
 
+void DolphinMainWindow::createDir()
+{
+    const KUrl& url = m_activeViewContainer->view()->url();
+    KonqOperations::newDir(this, url);
+}
+
 void DolphinMainWindow::updateNewMenu()
 {
     m_newMenu->slotCheckUpToDate();
@@ -643,11 +650,7 @@ void DolphinMainWindow::sortByTags()
 
 void DolphinMainWindow::toggleSortOrder()
 {
-    DolphinView* view = m_activeViewContainer->view();
-    const Qt::SortOrder order = (view->sortOrder() == Qt::AscendingOrder) ?
-                                Qt::DescendingOrder :
-                                Qt::AscendingOrder;
-    view->setSortOrder(order);
+    m_activeViewContainer->view()->toggleSortOrder();
 }
 
 void DolphinMainWindow::toggleSortCategorization()
@@ -657,36 +660,6 @@ void DolphinMainWindow::toggleSortCategorization()
     view->setCategorizedSorting(!categorizedSorting);
 }
 
-void DolphinMainWindow::toggleSizeInfo()
-{
-    toggleAdditionalInfo("show_size_info", KFileItemDelegate::Size);
-}
-
-void DolphinMainWindow::toggleDateInfo()
-{
-    toggleAdditionalInfo("show_date_info", KFileItemDelegate::ModificationTime);
-}
-
-void DolphinMainWindow::togglePermissionsInfo()
-{
-    toggleAdditionalInfo("show_permissions_info", KFileItemDelegate::Permissions);
-}
-
-void DolphinMainWindow::toggleOwnerInfo()
-{
-    toggleAdditionalInfo("show_owner_info", KFileItemDelegate::Owner);
-}
-
-void DolphinMainWindow::toggleGroupInfo()
-{
-    toggleAdditionalInfo("show_group_info", KFileItemDelegate::OwnerAndGroup);
-}
-
-void DolphinMainWindow::toggleMimeInfo()
-{
-    toggleAdditionalInfo("show_mime_info", KFileItemDelegate::FriendlyMimeType);
-}
-
 void DolphinMainWindow::toggleSplitView()
 {
     if (m_viewContainer[SecondaryView] == 0) {
@@ -985,6 +958,9 @@ void DolphinMainWindow::setupActions()
     connect(menu, SIGNAL(aboutToShow()),
             this, SLOT(updateNewMenu()));
 
+    KAction* newDirAction = DolphinView::createNewDirAction(actionCollection());
+    connect(newDirAction, SIGNAL(triggered()), SLOT(createDir()));
+
     KAction* newWindow = actionCollection()->addAction("new_window");
     newWindow->setIcon(KIcon("window-new"));
     newWindow->setText(i18nc("@action:inmenu File", "New &Window"));
@@ -1116,37 +1092,15 @@ void DolphinMainWindow::setupActions()
     //sortGroup->addAction(sortByRating);
     //sortGroup->addAction(sortByTags);
 
-    KToggleAction* sortDescending = actionCollection()->add<KToggleAction>("descending");
-    sortDescending->setText(i18nc("@action:inmenu Sort", "Descending"));
+    KAction* sortDescending = DolphinView::createSortDescendingAction(actionCollection());
     connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder()));
 
     KToggleAction* showInGroups = actionCollection()->add<KToggleAction>("show_in_groups");
     showInGroups->setText(i18nc("@action:inmenu View", "Show in Groups"));
     connect(showInGroups, SIGNAL(triggered()), this, SLOT(toggleSortCategorization()));
 
-    KToggleAction* showSizeInfo = actionCollection()->add<KToggleAction>("show_size_info");
-    showSizeInfo->setText(i18nc("@action:inmenu Additional information", "Size"));
-    connect(showSizeInfo, SIGNAL(triggered()), this, SLOT(toggleSizeInfo()));
-
-    KToggleAction* showDateInfo = actionCollection()->add<KToggleAction>("show_date_info");
-    showDateInfo->setText(i18nc("@action:inmenu Additional information", "Date"));
-    connect(showDateInfo, SIGNAL(triggered()), this, SLOT(toggleDateInfo()));
-
-    KToggleAction* showPermissionsInfo = actionCollection()->add<KToggleAction>("show_permissions_info");
-    showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions"));
-    connect(showPermissionsInfo, SIGNAL(triggered()), this, SLOT(togglePermissionsInfo()));
-
-    KToggleAction* showOwnerInfo = actionCollection()->add<KToggleAction>("show_owner_info");
-    showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner"));
-    connect(showOwnerInfo, SIGNAL(triggered()), this, SLOT(toggleOwnerInfo()));
-
-    KToggleAction* showGroupInfo = actionCollection()->add<KToggleAction>("show_group_info");
-    showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group"));
-    connect(showGroupInfo, SIGNAL(triggered()), this, SLOT(toggleGroupInfo()));
-
-    KToggleAction* showMimeInfo = actionCollection()->add<KToggleAction>("show_mime_info");
-    showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type"));
-    connect(showMimeInfo, SIGNAL(triggered()), this, SLOT(toggleMimeInfo()));
+    QActionGroup* showInformationActionGroup = DolphinView::createAdditionalInformationActionGroup(actionCollection());
+    connect(showInformationActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(toggleAdditionalInfo(QAction*)));
 
     KToggleAction* showPreview = actionCollection()->add<KToggleAction>("show_preview");
     showPreview->setText(i18nc("@action:intoolbar", "Preview"));
@@ -1467,15 +1421,17 @@ void DolphinMainWindow::updateSplitAction()
     }
 }
 
-void DolphinMainWindow::toggleAdditionalInfo(const char* actionName,
-                                             KFileItemDelegate::Information info)
+void DolphinMainWindow::toggleAdditionalInfo(QAction* action)
 {
     clearStatusBar();
 
+    const KFileItemDelegate::Information info =
+        static_cast<KFileItemDelegate::Information>(action->data().toInt());
+
     DolphinView* view = m_activeViewContainer->view();
     KFileItemDelegate::InformationList list = view->additionalInfo();
 
-    const bool show = actionCollection()->action(actionName)->isChecked();
+    const bool show = action->isChecked();
 
     const int index = list.indexOf(info);
     const bool containsInfo = (index >= 0);