┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Faure <[email protected]>2008-01-22 00:39:52 +0000
committerDavid Faure <[email protected]>2008-01-22 00:39:52 +0000
commitd34f1d1b466a8163a2274fa6763e1049233f00bb (patch)
tree7d1eb3d337dfbd6de77dc85ab2aea692b53594a4 /src
parentaf333d9c7a8f344ed7f2a5cae02b383a5d0ee792 (diff)
Use a QActionGroup and save 6 slots (and the duplication of the action names in the code).
svn path=/branches/KDE/4.0/kdebase/apps/; revision=764537
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp63
-rw-r--r--src/dolphinmainwindow.h30
-rw-r--r--src/dolphinview.cpp37
-rw-r--r--src/dolphinview.h7
4 files changed, 56 insertions, 81 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 407ec16b4..ce13796ac 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -660,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) {
@@ -1129,29 +1099,8 @@ void DolphinMainWindow::setupActions()
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"));
@@ -1472,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);
diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h
index e99add896..ab96cd155 100644
--- a/src/dolphinmainwindow.h
+++ b/src/dolphinmainwindow.h
@@ -273,23 +273,11 @@ private slots:
/** Switches between sorting by categories or not. */
void toggleSortCategorization();
- /** Switches between showing the size as additional information for the item or not. */
- void toggleSizeInfo();
-
- /** Switchtes between showing the date as additional information for the item or not. */
- void toggleDateInfo();
-
- /** Switchtes between showing the permissions as additional information for the item or not. */
- void togglePermissionsInfo();
-
- /** Switchtes between showing the owner as additional information for the item or not. */
- void toggleOwnerInfo();
-
- /** Switchtes between showing the group as additional information for the item or not. */
- void toggleGroupInfo();
-
- /** Switches between showing the MIME type as additional information for the item or not. */
- void toggleMimeInfo();
+ /**
+ * Applies \a info dependent from the current checked state of the action
+ * \a actionName to the file item delegate.
+ */
+ void toggleAdditionalInfo(QAction* action);
/**
* Switches between one and two views:
@@ -453,14 +441,6 @@ private:
*/
void updateSplitAction();
- /**
- * Helper method for the slots toggleDateInfo(), toggleSizeInfo()
- * and toggleMimeInfo(). Applies \a info dependent from the current
- * checked state of the action \a actionName to the file item delegate.
- */
- void toggleAdditionalInfo(const char* actionName,
- KFileItemDelegate::Information info);
-
private:
/**
* DolphinMainWindow supports up to two views beside each other.
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp
index cccbd36b9..de57aa00d 100644
--- a/src/dolphinview.cpp
+++ b/src/dolphinview.cpp
@@ -1272,4 +1272,41 @@ KAction* DolphinView::createSortDescendingAction(KActionCollection* collection)
return sortDescending;
}
+QActionGroup* DolphinView::createAdditionalInformationActionGroup(KActionCollection* collection)
+{
+ QActionGroup* showInformationGroup = new QActionGroup(collection);
+
+ KToggleAction* showSizeInfo = collection->add<KToggleAction>("show_size_info");
+ showSizeInfo->setText(i18nc("@action:inmenu Additional information", "Size"));
+ showSizeInfo->setData(KFileItemDelegate::Size);
+ showSizeInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showDateInfo = collection->add<KToggleAction>("show_date_info");
+ showDateInfo->setText(i18nc("@action:inmenu Additional information", "Date"));
+ showDateInfo->setData(KFileItemDelegate::ModificationTime);
+ showDateInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showPermissionsInfo = collection->add<KToggleAction>("show_permissions_info");
+ showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions"));
+ showPermissionsInfo->setData(KFileItemDelegate::Permissions);
+ showPermissionsInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showOwnerInfo = collection->add<KToggleAction>("show_owner_info");
+ showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner"));
+ showOwnerInfo->setData(KFileItemDelegate::Owner);
+ showOwnerInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showGroupInfo = collection->add<KToggleAction>("show_group_info");
+ showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group"));
+ showGroupInfo->setData(KFileItemDelegate::OwnerAndGroup);
+ showGroupInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showMimeInfo = collection->add<KToggleAction>("show_mime_info");
+ showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type"));
+ showMimeInfo->setData(KFileItemDelegate::FriendlyMimeType);
+ showMimeInfo->setActionGroup(showInformationGroup);
+
+ return showInformationGroup;
+}
+
#include "dolphinview.moc"
diff --git a/src/dolphinview.h b/src/dolphinview.h
index 80430ca77..e69f0bbc6 100644
--- a/src/dolphinview.h
+++ b/src/dolphinview.h
@@ -38,6 +38,7 @@
#include <QListView>
#include <QWidget>
+class QActionGroup;
class KAction;
class KToggleAction;
class DolphinController;
@@ -375,6 +376,12 @@ public:
static KAction* createSortDescendingAction(KActionCollection* collection);
/**
+ * Creates an action group with all the "show additional information" actions in it.
+ * This code is here to share it between the mainwindow and the part
+ */
+ static QActionGroup* createAdditionalInformationActionGroup(KActionCollection* collection);
+
+ /**
* Returns the action name corresponding to the current view mode
*/
QString currentViewModeActionName() const;