X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d6488887ecf69d7f192b94de8dce34fae0b7eb76..368e7d615a0c32aae84956c35d97ca987e7d728c:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 872042eb2..afabdf983 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -20,10 +20,12 @@ ***************************************************************************/ #include "dolphinmainwindow.h" +#include "dolphindropcontroller.h" #include #include "dolphinapplication.h" +#include "dolphinfileplacesview.h" #include "dolphinnewmenu.h" #include "dolphinsettings.h" #include "dolphinsettingsdialog.h" @@ -34,13 +36,11 @@ #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" #include #include @@ -48,6 +48,7 @@ #include #include #include +#include #include #include #include @@ -57,6 +58,7 @@ #include #include #include +#include #include #include #include @@ -68,11 +70,13 @@ #include #include #include +#include -#include -#include -#include -#include +#include +#include +#include +#include +#include DolphinMainWindow::DolphinMainWindow(int id) : KXmlGuiWindow(0), @@ -149,84 +153,10 @@ void DolphinMainWindow::refreshViews() void DolphinMainWindow::dropUrls(const KUrl::List& urls, const KUrl& destination) { - kDebug() << "Source" << urls; - kDebug() << "Destination:" << destination; - - Qt::DropAction action = Qt::CopyAction; - - Qt::KeyboardModifiers modifier = QApplication::keyboardModifiers(); - const bool shiftPressed = modifier & Qt::ShiftModifier; - const bool controlPressed = modifier & Qt::ControlModifier; - if (shiftPressed && controlPressed) { - // shortcut for 'Link Here' is used - action = Qt::LinkAction; - } else if (shiftPressed) { - // shortcut for 'Move Here' is used - action = Qt::MoveAction; - } else if (controlPressed) { - // shortcut for 'Copy Here' is used - action = Qt::CopyAction; - } else { - // open a context menu which offers the following actions: - // - Move Here - // - Copy Here - // - Link Here - // - Cancel - - KMenu popup(this); - - QString seq = QKeySequence(Qt::ShiftModifier).toString(); - seq.chop(1); // chop superfluous '+' - QAction* moveAction = popup.addAction(KIcon("go-jump"), - i18nc("@action:inmenu", - "&Move Here\t%1", seq)); - - seq = QKeySequence(Qt::ControlModifier).toString(); - seq.chop(1); - QAction* copyAction = popup.addAction(KIcon("edit-copy"), - i18nc("@action:inmenu", - "&Copy Here\t%1", seq)); - - seq = QKeySequence(Qt::ControlModifier + Qt::ShiftModifier).toString(); - seq.chop(1); - QAction* linkAction = popup.addAction(KIcon("insert-link"), - i18nc("@action:inmenu", - "&Link Here\t%1", seq)); - - popup.addSeparator(); - popup.addAction(KIcon("process-stop"), i18nc("@action:inmenu", "Cancel")); - - QAction* activatedAction = popup.exec(QCursor::pos()); - if (activatedAction == moveAction) { - action = Qt::MoveAction; - } else if (activatedAction == copyAction) { - action = Qt::CopyAction; - } else if (activatedAction == linkAction) { - action = Qt::LinkAction; - } else { - return; - } - } - - switch (action) { - case Qt::MoveAction: - KonqOperations::copy(this, KonqOperations::MOVE, urls, destination); - m_undoCommandTypes.append(KonqFileUndoManager::MOVE); - break; - - case Qt::CopyAction: - KonqOperations::copy(this, KonqOperations::COPY, urls, destination); - m_undoCommandTypes.append(KonqFileUndoManager::COPY); - break; - - case Qt::LinkAction: - KonqOperations::copy(this, KonqOperations::LINK, urls, destination); - m_undoCommandTypes.append(KonqFileUndoManager::LINK); - break; - - default: - break; - } + DolphinDropController dropController(this); + connect(&dropController, SIGNAL(doingOperation(KonqFileUndoManager::CommandType)), + this, SLOT(slotDoingOperation(KonqFileUndoManager::CommandType))); + dropController.dropUrls(urls, destination); } void DolphinMainWindow::changeUrl(const KUrl& url) @@ -261,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()); @@ -314,69 +242,28 @@ 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(); + DolphinView* view = m_activeViewContainer->view(); + view->updateAdditionalInfoActions(actionCollection()); +} - // currently the column view does not support additional information - const bool enable = (view->mode() != DolphinView::ColumnView); - 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; - } - } +void DolphinMainWindow::slotEditableStateChanged(bool editable) +{ + KToggleAction* editableLocationAction = + static_cast(actionCollection()->action("editable_location")); + editableLocationAction->setChecked(editable); } void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection) @@ -390,7 +277,12 @@ void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection) } QAction* compareFilesAction = actionCollection()->action("compare_files"); - compareFilesAction->setEnabled(selectedUrlsCount == 2); + if (selectedUrlsCount == 2) { + const bool kompareInstalled = !KGlobal::dirs()->findExe("kompare").isEmpty(); + compareFilesAction->setEnabled(selectedUrlsCount == 2 && kompareInstalled); + } else { + compareFilesAction->setEnabled(false); + } m_activeViewContainer->updateStatusBar(); @@ -409,8 +301,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); } @@ -487,6 +378,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(); @@ -522,8 +419,11 @@ void DolphinMainWindow::properties() { const KFileItemList list = m_activeViewContainer->view()->selectedItems(); - KPropertiesDialog dialog(list, this); - dialog.exec(); + KPropertiesDialog *dialog = new KPropertiesDialog(list, this); + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->show(); + dialog->raise(); + dialog->activateWindow(); } void DolphinMainWindow::quit() @@ -541,7 +441,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); } @@ -585,7 +485,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); } @@ -614,7 +514,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; } @@ -627,7 +527,19 @@ void DolphinMainWindow::updatePasteAction() void DolphinMainWindow::selectAll() { clearStatusBar(); - m_activeViewContainer->view()->selectAll(); + + // if the URL navigator is editable and focused, select the whole + // URL instead of all items of the view + + KUrlNavigator* urlNavigator = m_activeViewContainer->urlNavigator(); + QLineEdit* lineEdit = urlNavigator->editor()->lineEdit(); + const bool selectUrl = urlNavigator->isUrlEditable() && + lineEdit->hasFocus(); + if (selectUrl) { + lineEdit->selectAll(); + } else { + m_activeViewContainer->view()->selectAll(); + } } void DolphinMainWindow::invertSelection() @@ -693,48 +605,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() @@ -782,31 +659,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); } @@ -826,11 +692,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() @@ -1035,6 +899,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")); @@ -1062,8 +929,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); @@ -1090,7 +957,6 @@ void DolphinMainWindow::setupActions() SLOT(zoomOut()), actionCollection()); - KToggleAction* iconsView = DolphinView::iconsModeAction(actionCollection()); KToggleAction* detailsView = DolphinView::detailsModeAction(actionCollection()); KToggleAction* columnView = DolphinView::columnsModeAction(actionCollection()); @@ -1101,6 +967,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())); @@ -1166,50 +1034,23 @@ 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())); + KAction* showInGroups = DolphinView::createShowInGroupsAction(actionCollection()); + connect(showInGroups, SIGNAL(triggered(bool)), this, SLOT(toggleSortCategorization(bool))); - KToggleAction* showPermissionsInfo = actionCollection()->add("show_permissions_info"); - showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions")); - connect(showPermissionsInfo, SIGNAL(triggered()), this, SLOT(togglePermissionsInfo())); + QActionGroup* showInformationActionGroup = DolphinView::createAdditionalInformationActionGroup(actionCollection()); + connect(showInformationActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(toggleAdditionalInfo(QAction*))); - KToggleAction* showOwnerInfo = actionCollection()->add("show_owner_info"); - showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner")); - connect(showOwnerInfo, SIGNAL(triggered()), this, SLOT(toggleOwnerInfo())); + KAction* showPreview = DolphinView::createShowPreviewAction(actionCollection()); + connect(showPreview, SIGNAL(triggered(bool)), this, SLOT(togglePreview(bool))); - KToggleAction* showGroupInfo = actionCollection()->add("show_group_info"); - showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group")); - connect(showGroupInfo, SIGNAL(triggered()), this, SLOT(toggleGroupInfo())); - - 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("fileview-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_F10); + split->setShortcut(Qt::Key_F3); updateSplitAction(); connect(split, SIGNAL(triggered()), this, SLOT(toggleSplitView())); @@ -1224,9 +1065,7 @@ void DolphinMainWindow::setupActions() stop->setIcon(KIcon("process-stop")); connect(stop, SIGNAL(triggered()), this, SLOT(stopLoading())); - // TODO: the URL navigator must emit a signal if the editable state has been - // changed, so that the corresponding showFullLocation action is updated. Also - // the naming "Show full Location" is currently confusing... + // TODO: the naming "Show full Location" is currently confusing... KToggleAction* showFullLocation = actionCollection()->add("editable_location"); showFullLocation->setText(i18nc("@action:inmenu Navigation Bar", "Show Full Location")); showFullLocation->setShortcut(Qt::CTRL | Qt::Key_L); @@ -1261,7 +1100,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")); @@ -1323,6 +1162,8 @@ void DolphinMainWindow::setupDockWidgets() SidebarPage* terminalWidget = new TerminalSidebarPage(terminalDock); terminalDock->setWidget(terminalWidget); + connect(terminalWidget, SIGNAL(hideTerminalSidebarPage()), terminalDock, SLOT(hide())); + terminalDock->toggleViewAction()->setText(i18nc("@title:window", "Terminal")); terminalDock->toggleViewAction()->setShortcut(Qt::Key_F4); actionCollection()->addAction("show_terminal_panel", terminalDock->toggleViewAction()); @@ -1341,7 +1182,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); @@ -1408,50 +1250,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); } @@ -1480,8 +1317,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)), @@ -1496,6 +1333,8 @@ void DolphinMainWindow::connectViewSignals(int viewIndex) this, SLOT(changeUrl(const KUrl&))); connect(navigator, SIGNAL(historyChanged()), this, SLOT(slotHistoryChanged())); + connect(navigator, SIGNAL(editableStateChanged(bool)), + this, SLOT(slotEditableStateChanged(bool))); } void DolphinMainWindow::updateSplitAction() @@ -1504,37 +1343,21 @@ void DolphinMainWindow::updateSplitAction() if (m_viewContainer[SecondaryView] != 0) { if (m_activeViewContainer == m_viewContainer[PrimaryView]) { splitAction->setText(i18nc("@action:intoolbar Close right view", "Close")); - splitAction->setIcon(KIcon("fileview-close-right")); + splitAction->setIcon(KIcon("view-right-close")); } else { splitAction->setText(i18nc("@action:intoolbar Close left view", "Close")); - splitAction->setIcon(KIcon("fileview-close-left")); + splitAction->setIcon(KIcon("view-left-close")); } } else { splitAction->setText(i18nc("@action:intoolbar Split view", "Split")); - splitAction->setIcon(KIcon("fileview-split")); + splitAction->setIcon(KIcon("view-right-new")); } } -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) :