#include "dolphinviewactionhandler.h"
+#include "additionalinfoaccessor.h"
#include "settings/viewpropertiesdialog.h"
#include "dolphinview.h"
#include "zoomlevelinfo.h"
#include <kaction.h>
#include <kactioncollection.h>
#include <kactionmenu.h>
-#include <kselectaction.h>
+#include <kfileitemdelegate.h>
#include <klocale.h>
#include <knewmenu.h>
+#include <kselectaction.h>
#include <ktoggleaction.h>
#include <krun.h>
#include <kpropertiesdialog.h>
connect(adjustViewProps, SIGNAL(triggered()), this, SLOT(slotAdjustViewProperties()));
// Tools menu
-
KAction* findFile = m_actionCollection->addAction("find_file");
findFile->setText(i18nc("@action:inmenu Tools", "Find File..."));
findFile->setShortcut(Qt::CTRL | Qt::Key_F);
showInformationMenu->setText(i18nc("@action:inmenu View", "Additional Information"));
showInformationMenu->setDelayed(false);
- KToggleAction* showSizeInfo = m_actionCollection->add<KToggleAction>("show_size_info");
- showSizeInfo->setText(i18nc("@action:inmenu Additional information", "Size"));
- showSizeInfo->setData(KFileItemDelegate::Size);
- showSizeInfo->setActionGroup(additionalInfoGroup);
-
- KToggleAction* showDateInfo = m_actionCollection->add<KToggleAction>("show_date_info");
- showDateInfo->setText(i18nc("@action:inmenu Additional information", "Date"));
- showDateInfo->setData(KFileItemDelegate::ModificationTime);
- showDateInfo->setActionGroup(additionalInfoGroup);
-
- KToggleAction* showPermissionsInfo = m_actionCollection->add<KToggleAction>("show_permissions_info");
- showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions"));
- showPermissionsInfo->setData(KFileItemDelegate::Permissions);
- showPermissionsInfo->setActionGroup(additionalInfoGroup);
+ const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
- KToggleAction* showOwnerInfo = m_actionCollection->add<KToggleAction>("show_owner_info");
- showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner"));
- showOwnerInfo->setData(KFileItemDelegate::Owner);
- showOwnerInfo->setActionGroup(additionalInfoGroup);
-
- KToggleAction* showGroupInfo = m_actionCollection->add<KToggleAction>("show_group_info");
- showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group"));
- showGroupInfo->setData(KFileItemDelegate::OwnerAndGroup);
- showGroupInfo->setActionGroup(additionalInfoGroup);
-
- KToggleAction* showMimeInfo = m_actionCollection->add<KToggleAction>("show_mime_info");
- showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type"));
- showMimeInfo->setData(KFileItemDelegate::FriendlyMimeType);
- showMimeInfo->setActionGroup(additionalInfoGroup);
+ const KFileItemDelegate::InformationList infos = infoAccessor.keys();
+ foreach (KFileItemDelegate::Information info, infos) {
+ const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::AdditionalInfoType);
+ KToggleAction* action = m_actionCollection->add<KToggleAction>(name);
+ action->setText(infoAccessor.translation(info));
+ action->setData(info);
+ action->setActionGroup(additionalInfoGroup);
+ }
return additionalInfoGroup;
}
sortByName->setData(QVariant::fromValue(DolphinView::SortByName));
sortByActionGroup->addAction(sortByName);
- KToggleAction* sortBySize = m_actionCollection->add<KToggleAction>("sort_by_size");
- sortBySize->setText(i18nc("@action:inmenu Sort By", "Size"));
- sortBySize->setData(QVariant::fromValue(DolphinView::SortBySize));
- sortByActionGroup->addAction(sortBySize);
-
- KToggleAction* sortByDate = m_actionCollection->add<KToggleAction>("sort_by_date");
- sortByDate->setText(i18nc("@action:inmenu Sort By", "Date"));
- sortByDate->setData(QVariant::fromValue(DolphinView::SortByDate));
- sortByActionGroup->addAction(sortByDate);
-
- KToggleAction* sortByPermissions = m_actionCollection->add<KToggleAction>("sort_by_permissions");
- sortByPermissions->setText(i18nc("@action:inmenu Sort By", "Permissions"));
- sortByPermissions->setData(QVariant::fromValue(DolphinView::SortByPermissions));
- sortByActionGroup->addAction(sortByPermissions);
-
- KToggleAction* sortByOwner = m_actionCollection->add<KToggleAction>("sort_by_owner");
- sortByOwner->setText(i18nc("@action:inmenu Sort By", "Owner"));
- sortByOwner->setData(QVariant::fromValue(DolphinView::SortByOwner));
- sortByActionGroup->addAction(sortByOwner);
-
- KToggleAction* sortByGroup = m_actionCollection->add<KToggleAction>("sort_by_group");
- sortByGroup->setText(i18nc("@action:inmenu Sort By", "Group"));
- sortByGroup->setData(QVariant::fromValue(DolphinView::SortByGroup));
- sortByActionGroup->addAction(sortByGroup);
-
- KToggleAction* sortByType = m_actionCollection->add<KToggleAction>("sort_by_type");
- sortByType->setText(i18nc("@action:inmenu Sort By", "Type"));
- sortByType->setData(QVariant::fromValue(DolphinView::SortByType));
- sortByActionGroup->addAction(sortByType);
+ const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
+ const KFileItemDelegate::InformationList infos = infoAccessor.keys();
+ foreach (KFileItemDelegate::Information info, infos) {
+ const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::SortByType);
+ KToggleAction* action = m_actionCollection->add<KToggleAction>(name);
+ action->setText(infoAccessor.translation(info));
+ const DolphinView::Sorting sorting = infoAccessor.sorting(info);
+ action->setData(QVariant::fromValue(sorting));
+ sortByActionGroup->addAction(action);
+ }
return sortByActionGroup;
}
// Note: kde3's konq_mainwindow.cpp used to check
// reason == KAction::PopupMenuActivation && ...
// but this isn't supported anymore
- if (modifiers & Qt::ShiftModifier)
+ if (modifiers & Qt::ShiftModifier) {
m_currentView->deleteSelectedItems();
- else
+ } else {
m_currentView->trashSelectedItems();
+ }
}
void DolphinViewActionHandler::slotDeleteItems()
void DolphinViewActionHandler::slotSortingChanged(DolphinView::Sorting sorting)
{
+ const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
+ const KFileItemDelegate::InformationList infos = infoAccessor.keys();
+
QAction* action = 0;
- switch (sorting) {
- case DolphinView::SortByName:
+ if (sorting == DolphinView::SortByName) {
action = m_actionCollection->action("sort_by_name");
- break;
- case DolphinView::SortBySize:
- action = m_actionCollection->action("sort_by_size");
- break;
- case DolphinView::SortByDate:
- action = m_actionCollection->action("sort_by_date");
- break;
- case DolphinView::SortByPermissions:
- action = m_actionCollection->action("sort_by_permissions");
- break;
- case DolphinView::SortByOwner:
- action = m_actionCollection->action("sort_by_owner");
- break;
- case DolphinView::SortByGroup:
- action = m_actionCollection->action("sort_by_group");
- break;
- case DolphinView::SortByType:
- action = m_actionCollection->action("sort_by_type");
- break;
- default:
- break;
+ } else {
+ foreach (const KFileItemDelegate::Information info, infos) {
+ if (sorting == infoAccessor.sorting(info)) {
+ const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::SortByType);
+ action = m_actionCollection->action(name);
+ break;
+ }
+ }
}
if (action != 0) {