X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fb00dfe15f2beb5f28d85ec56b49ba00a54ec126..a3003c2c94e34abefe1974633aa7c22734202cf6:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 2048de1a5..4c32e623e 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -25,6 +25,7 @@ #include #include "dolphinapplication.h" +#include "dolphinfileplacesview.h" #include "dolphinnewmenu.h" #include "dolphinsettings.h" #include "dolphinsettingsdialog.h" @@ -35,11 +36,8 @@ #include "mainwindowadaptor.h" #include "terminalsidebarpage.h" #include "treeviewsidebarpage.h" -#include "kurlnavigator.h" #include "viewpropertiesdialog.h" #include "viewproperties.h" -#include "kfileplacesmodel.h" -#include "kfileplacesview.h" #include "dolphin_generalsettings.h" #include "dolphin_iconsmodesettings.h" @@ -50,6 +48,7 @@ #include #include #include +#include #include #include #include @@ -59,7 +58,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -190,16 +191,14 @@ void DolphinMainWindow::slotShowPreviewChanged() void DolphinMainWindow::slotShowHiddenFilesChanged() { - KToggleAction* showHiddenFilesAction = - static_cast(actionCollection()->action("show_hidden_files")); + QAction* showHiddenFilesAction = actionCollection()->action("show_hidden_files"); const DolphinView* view = m_activeViewContainer->view(); showHiddenFilesAction->setChecked(view->showHiddenFiles()); } void DolphinMainWindow::slotCategorizedSortingChanged() { - KToggleAction* showInGroupsAction = - static_cast(actionCollection()->action("show_in_groups")); + QAction* showInGroupsAction = actionCollection()->action("show_in_groups"); const DolphinView* view = m_activeViewContainer->view(); showInGroupsAction->setChecked(view->categorizedSorting()); showInGroupsAction->setEnabled(view->supportsCategorizedSorting()); @@ -243,70 +242,21 @@ void DolphinMainWindow::slotSortingChanged(DolphinView::Sorting sorting) } if (action != 0) { - KToggleAction* toggleAction = static_cast(action); - toggleAction->setChecked(true); + action->setChecked(true); } } void DolphinMainWindow::slotSortOrderChanged(Qt::SortOrder order) { - KToggleAction* descending = static_cast(actionCollection()->action("descending")); + QAction* descending = actionCollection()->action("descending"); const bool sortDescending = (order == Qt::DescendingOrder); descending->setChecked(sortDescending); } -void DolphinMainWindow::slotAdditionalInfoChanged(KFileItemDelegate::InformationList list) +void DolphinMainWindow::slotAdditionalInfoChanged() { - QAction* showSizeInfo = actionCollection()->action("show_size_info"); - QAction* showDateInfo = actionCollection()->action("show_date_info"); - QAction* showPermissionsInfo = actionCollection()->action("show_permissions_info"); - QAction* showOwnerInfo = actionCollection()->action("show_owner_info"); - QAction* showGroupInfo = actionCollection()->action("show_group_info"); - QAction* showMimeInfo = actionCollection()->action("show_mime_info"); - - showSizeInfo->setChecked(false); - showDateInfo->setChecked(false); - showPermissionsInfo->setChecked(false); - showOwnerInfo->setChecked(false); - showGroupInfo->setChecked(false); - showMimeInfo->setChecked(false); - - const DolphinView* view = m_activeViewContainer->view(); - - const bool enable = (view->mode() == DolphinView::DetailsView) || - (view->mode() == DolphinView::IconsView); - - showSizeInfo->setEnabled(enable); - showDateInfo->setEnabled(enable); - showPermissionsInfo->setEnabled(enable); - showOwnerInfo->setEnabled(enable); - showGroupInfo->setEnabled(enable); - showMimeInfo->setEnabled(enable); - - foreach (KFileItemDelegate::Information info, list) { - switch (info) { - case KFileItemDelegate::Size: - showSizeInfo->setChecked(true); - break; - case KFileItemDelegate::ModificationTime: - showDateInfo->setChecked(true); - break; - case KFileItemDelegate::Permissions: - showPermissionsInfo->setChecked(true); - break; - case KFileItemDelegate::Owner: - showOwnerInfo->setChecked(true); - break; - case KFileItemDelegate::OwnerAndGroup: - showGroupInfo->setChecked(true); - break; - case KFileItemDelegate::FriendlyMimeType: - showMimeInfo->setChecked(true); - break; - default: - break; - } - } + DolphinView* view = m_activeViewContainer->view(); + view->updateAdditionalInfoActions(actionCollection()); } void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection) @@ -344,8 +294,7 @@ void DolphinMainWindow::slotHistoryChanged() void DolphinMainWindow::updateFilterBarAction(bool show) { - KToggleAction* showFilterBarAction = - static_cast(actionCollection()->action("show_filter_bar")); + QAction* showFilterBarAction = actionCollection()->action("show_filter_bar"); showFilterBarAction->setChecked(show); } @@ -422,6 +371,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(); @@ -479,7 +434,7 @@ void DolphinMainWindow::slotHandlePlacesError(const QString &message) void DolphinMainWindow::slotUndoAvailable(bool available) { - QAction* undoAction = actionCollection()->action(KStandardAction::stdName(KStandardAction::Undo)); + QAction* undoAction = actionCollection()->action(KStandardAction::name(KStandardAction::Undo)); if (undoAction != 0) { undoAction->setEnabled(available); } @@ -523,7 +478,7 @@ void DolphinMainWindow::slotUndoAvailable(bool available) void DolphinMainWindow::slotUndoTextChanged(const QString& text) { - QAction* undoAction = actionCollection()->action(KStandardAction::stdName(KStandardAction::Undo)); + QAction* undoAction = actionCollection()->action(KStandardAction::name(KStandardAction::Undo)); if (undoAction != 0) { undoAction->setText(text); } @@ -552,7 +507,7 @@ void DolphinMainWindow::paste() void DolphinMainWindow::updatePasteAction() { - QAction* pasteAction = actionCollection()->action(KStandardAction::stdName(KStandardAction::Paste)); + QAction* pasteAction = actionCollection()->action(KStandardAction::name(KStandardAction::Paste)); if (pasteAction == 0) { return; } @@ -643,48 +598,13 @@ 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() +void DolphinMainWindow::toggleSortCategorization(bool categorizedSorting) { DolphinView* view = m_activeViewContainer->view(); - const bool categorizedSorting = view->categorizedSorting(); - 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); + view->setCategorizedSorting(categorizedSorting); } void DolphinMainWindow::toggleSplitView() @@ -732,31 +652,20 @@ void DolphinMainWindow::stopLoading() { } -void DolphinMainWindow::togglePreview() +void DolphinMainWindow::togglePreview(bool show) { clearStatusBar(); - - const KToggleAction* showPreviewAction = - static_cast(actionCollection()->action("show_preview")); - const bool show = showPreviewAction->isChecked(); m_activeViewContainer->view()->setShowPreview(show); } -void DolphinMainWindow::toggleShowHiddenFiles() +void DolphinMainWindow::toggleShowHiddenFiles(bool show) { clearStatusBar(); - - const KToggleAction* showHiddenFilesAction = - static_cast(actionCollection()->action("show_hidden_files")); - const bool show = showHiddenFilesAction->isChecked(); m_activeViewContainer->view()->setShowHiddenFiles(show); } -void DolphinMainWindow::toggleFilterBarVisibility() +void DolphinMainWindow::toggleFilterBarVisibility(bool show) { - const KToggleAction* showFilterBarAction = - static_cast(actionCollection()->action("show_filter_bar")); - const bool show = showFilterBarAction->isChecked(); m_activeViewContainer->showFilterBar(show); } @@ -776,11 +685,9 @@ void DolphinMainWindow::toggleEditLocation() { clearStatusBar(); - KToggleAction* action = static_cast(actionCollection()->action("editable_location")); - - bool editOrBrowse = action->isChecked(); + QAction* action = actionCollection()->action("editable_location"); KUrlNavigator* urlNavigator = m_activeViewContainer->urlNavigator(); - urlNavigator->setUrlEditable(editOrBrowse); + urlNavigator->setUrlEditable(action->isChecked()); } void DolphinMainWindow::editLocation() @@ -985,6 +892,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")); @@ -1012,8 +922,8 @@ void DolphinMainWindow::setupActions() SLOT(undo()), actionCollection()); - //Need to remove shift+del from cut action, else the shortcut for deletejob - //doesn't work + // need to remove shift+del from cut action, else the shortcut for deletejob + // doesn't work KAction* cut = KStandardAction::cut(this, SLOT(cut()), actionCollection()); KShortcut cutShortcut = cut->shortcut(); cutShortcut.remove(Qt::SHIFT + Qt::Key_Delete, KShortcut::KeepEmpty); @@ -1040,7 +950,6 @@ void DolphinMainWindow::setupActions() SLOT(zoomOut()), actionCollection()); - KToggleAction* iconsView = DolphinView::iconsModeAction(actionCollection()); KToggleAction* detailsView = DolphinView::detailsModeAction(actionCollection()); KToggleAction* columnView = DolphinView::columnsModeAction(actionCollection()); @@ -1051,6 +960,8 @@ void DolphinMainWindow::setupActions() viewModeGroup->addAction(columnView); connect(viewModeGroup, SIGNAL(triggered(QAction*)), this, SLOT(setViewMode(QAction*))); + // TODO use a QActionGroup + KToggleAction* sortByName = actionCollection()->add("sort_by_name"); sortByName->setText(i18nc("@action:inmenu Sort By", "Name")); connect(sortByName, SIGNAL(triggered()), this, SLOT(sortByName())); @@ -1116,47 +1027,20 @@ void DolphinMainWindow::setupActions() //sortGroup->addAction(sortByRating); //sortGroup->addAction(sortByTags); - KToggleAction* sortDescending = actionCollection()->add("descending"); - sortDescending->setText(i18nc("@action:inmenu Sort", "Descending")); + KAction* sortDescending = DolphinView::createSortDescendingAction(actionCollection()); connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder())); - KToggleAction* showInGroups = actionCollection()->add("show_in_groups"); - showInGroups->setText(i18nc("@action:inmenu View", "Show in Groups")); - connect(showInGroups, SIGNAL(triggered()), this, SLOT(toggleSortCategorization())); - - KToggleAction* showSizeInfo = actionCollection()->add("show_size_info"); - showSizeInfo->setText(i18nc("@action:inmenu Additional information", "Size")); - connect(showSizeInfo, SIGNAL(triggered()), this, SLOT(toggleSizeInfo())); - - KToggleAction* showDateInfo = actionCollection()->add("show_date_info"); - showDateInfo->setText(i18nc("@action:inmenu Additional information", "Date")); - connect(showDateInfo, SIGNAL(triggered()), this, SLOT(toggleDateInfo())); - - KToggleAction* showPermissionsInfo = actionCollection()->add("show_permissions_info"); - showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions")); - connect(showPermissionsInfo, SIGNAL(triggered()), this, SLOT(togglePermissionsInfo())); + KAction* showInGroups = DolphinView::createShowInGroupsAction(actionCollection()); + connect(showInGroups, SIGNAL(triggered(bool)), this, SLOT(toggleSortCategorization(bool))); - KToggleAction* showOwnerInfo = actionCollection()->add("show_owner_info"); - showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner")); - connect(showOwnerInfo, SIGNAL(triggered()), this, SLOT(toggleOwnerInfo())); + QActionGroup* showInformationActionGroup = DolphinView::createAdditionalInformationActionGroup(actionCollection()); + connect(showInformationActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(toggleAdditionalInfo(QAction*))); - KToggleAction* showGroupInfo = actionCollection()->add("show_group_info"); - showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group")); - connect(showGroupInfo, SIGNAL(triggered()), this, SLOT(toggleGroupInfo())); + KAction* showPreview = DolphinView::createShowPreviewAction(actionCollection()); + connect(showPreview, SIGNAL(triggered(bool)), this, SLOT(togglePreview(bool))); - KToggleAction* showMimeInfo = actionCollection()->add("show_mime_info"); - showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type")); - connect(showMimeInfo, SIGNAL(triggered()), this, SLOT(toggleMimeInfo())); - - KToggleAction* showPreview = actionCollection()->add("show_preview"); - showPreview->setText(i18nc("@action:intoolbar", "Preview")); - showPreview->setIcon(KIcon("view-preview")); - connect(showPreview, SIGNAL(triggered()), this, SLOT(togglePreview())); - - KToggleAction* showHiddenFiles = actionCollection()->add("show_hidden_files"); - showHiddenFiles->setText(i18nc("@action:inmenu View", "Show Hidden Files")); - showHiddenFiles->setShortcut(Qt::ALT | Qt::Key_Period); - connect(showHiddenFiles, SIGNAL(triggered()), this, SLOT(toggleShowHiddenFiles())); + KAction* showHiddenFiles = DolphinView::createShowHiddenFilesAction(actionCollection()); + connect(showHiddenFiles, SIGNAL(triggered(bool)), this, SLOT(toggleShowHiddenFiles(bool))); KAction* split = actionCollection()->addAction("split_view"); split->setShortcut(Qt::Key_F3); @@ -1211,7 +1095,7 @@ void DolphinMainWindow::setupActions() KToggleAction* showFilterBar = actionCollection()->add("show_filter_bar"); showFilterBar->setText(i18nc("@action:inmenu Tools", "Show Filter Bar")); showFilterBar->setShortcut(Qt::CTRL | Qt::Key_I); - connect(showFilterBar, SIGNAL(triggered()), this, SLOT(toggleFilterBarVisibility())); + connect(showFilterBar, SIGNAL(triggered(bool)), this, SLOT(toggleFilterBarVisibility(bool))); KAction* compareFiles = actionCollection()->addAction("compare_files"); compareFiles->setText(i18nc("@action:inmenu Tools", "Compare Files")); @@ -1293,7 +1177,8 @@ void DolphinMainWindow::setupDockWidgets() QDockWidget* placesDock = new QDockWidget(i18nc("@title:window", "Places")); placesDock->setObjectName("placesDock"); placesDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - KFilePlacesView* placesView = new KFilePlacesView(placesDock); + + DolphinFilePlacesView* placesView = new DolphinFilePlacesView(placesDock); placesDock->setWidget(placesView); placesView->setModel(DolphinSettings::instance().placesModel()); placesView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); @@ -1360,50 +1245,45 @@ void DolphinMainWindow::updateEditActions() void DolphinMainWindow::updateViewActions() { const DolphinView* view = m_activeViewContainer->view(); - QAction* zoomInAction = actionCollection()->action(KStandardAction::stdName(KStandardAction::ZoomIn)); + QAction* zoomInAction = actionCollection()->action(KStandardAction::name(KStandardAction::ZoomIn)); if (zoomInAction != 0) { zoomInAction->setEnabled(view->isZoomInPossible()); } - QAction* zoomOutAction = actionCollection()->action(KStandardAction::stdName(KStandardAction::ZoomOut)); + QAction* zoomOutAction = actionCollection()->action(KStandardAction::name(KStandardAction::ZoomOut)); if (zoomOutAction != 0) { zoomOutAction->setEnabled(view->isZoomOutPossible()); } QAction* action = actionCollection()->action(view->currentViewModeActionName()); if (action != 0) { - KToggleAction* toggleAction = static_cast(action); - toggleAction->setChecked(true); + action->setChecked(true); } slotSortingChanged(view->sorting()); slotSortOrderChanged(view->sortOrder()); slotCategorizedSortingChanged(); - slotAdditionalInfoChanged(view->additionalInfo()); + slotAdditionalInfoChanged(); - KToggleAction* showFilterBarAction = - static_cast(actionCollection()->action("show_filter_bar")); + QAction* showFilterBarAction = actionCollection()->action("show_filter_bar"); showFilterBarAction->setChecked(m_activeViewContainer->isFilterBarVisible()); - KToggleAction* showPreviewAction = - static_cast(actionCollection()->action("show_preview")); + QAction* showPreviewAction = actionCollection()->action("show_preview"); showPreviewAction->setChecked(view->showPreview()); - KToggleAction* showHiddenFilesAction = - static_cast(actionCollection()->action("show_hidden_files")); + QAction* showHiddenFilesAction = actionCollection()->action("show_hidden_files"); showHiddenFilesAction->setChecked(view->showHiddenFiles()); updateSplitAction(); - KToggleAction* editableLocactionAction = - static_cast(actionCollection()->action("editable_location")); + QAction* editableLocactionAction = actionCollection()->action("editable_location"); const KUrlNavigator* urlNavigator = m_activeViewContainer->urlNavigator(); editableLocactionAction->setChecked(urlNavigator->isUrlEditable()); } void DolphinMainWindow::updateGoActions() { - QAction* goUpAction = actionCollection()->action(KStandardAction::stdName(KStandardAction::Up)); + QAction* goUpAction = actionCollection()->action(KStandardAction::name(KStandardAction::Up)); const KUrl& currentUrl = m_activeViewContainer->url(); goUpAction->setEnabled(currentUrl.upUrl() != currentUrl); } @@ -1432,8 +1312,8 @@ void DolphinMainWindow::connectViewSignals(int viewIndex) this, SLOT(slotSortingChanged(DolphinView::Sorting))); connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)), this, SLOT(slotSortOrderChanged(Qt::SortOrder))); - connect(view, SIGNAL(additionalInfoChanged(KFileItemDelegate::InformationList)), - this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::InformationList))); + connect(view, SIGNAL(additionalInfoChanged()), + this, SLOT(slotAdditionalInfoChanged())); connect(view, SIGNAL(selectionChanged(KFileItemList)), this, SLOT(slotSelectionChanged(KFileItemList))); connect(view, SIGNAL(requestItemInfo(KFileItem)), @@ -1467,26 +1347,10 @@ void DolphinMainWindow::updateSplitAction() } } -void DolphinMainWindow::toggleAdditionalInfo(const char* actionName, - KFileItemDelegate::Information info) +void DolphinMainWindow::toggleAdditionalInfo(QAction* action) { clearStatusBar(); - - DolphinView* view = m_activeViewContainer->view(); - KFileItemDelegate::InformationList list = view->additionalInfo(); - - const bool show = actionCollection()->action(actionName)->isChecked(); - - const int index = list.indexOf(info); - const bool containsInfo = (index >= 0); - if (show && !containsInfo) { - list.append(info); - view->setAdditionalInfo(list); - } else if (!show && containsInfo) { - list.removeAt(index); - view->setAdditionalInfo(list); - Q_ASSERT(list.indexOf(info) < 0); - } + m_activeViewContainer->view()->toggleAdditionalInfo(action); } DolphinMainWindow::UndoUiInterface::UndoUiInterface(DolphinMainWindow* mainWin) :