diff options
| -rw-r--r-- | src/dolphinmainwindow.cpp | 47 | ||||
| -rw-r--r-- | src/dolphinmainwindow.h | 14 | ||||
| -rw-r--r-- | src/dolphinui.rc | 4 | ||||
| -rw-r--r-- | src/dolphinuiforphones.rc | 4 |
4 files changed, 63 insertions, 6 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 917aa42ce..f7ca69553 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -156,6 +156,10 @@ DolphinMainWindow::DolphinMainWindow() connect(undoManager, &KIO::FileUndoManager::undoAvailable, this, &DolphinMainWindow::slotUndoAvailable); connect(undoManager, &KIO::FileUndoManager::undoTextChanged, this, &DolphinMainWindow::slotUndoTextChanged); +#if KIO_VERSION >= QT_VERSION_CHECK(6, 17, 0) + connect(undoManager, &KIO::FileUndoManager::redoAvailable, this, &DolphinMainWindow::slotRedoAvailable); + connect(undoManager, &KIO::FileUndoManager::redoTextChanged, this, &DolphinMainWindow::slotRedoTextChanged); +#endif connect(undoManager, &KIO::FileUndoManager::jobRecordingStarted, this, &DolphinMainWindow::clearStatusBar); connect(undoManager, &KIO::FileUndoManager::jobRecordingFinished, this, &DolphinMainWindow::showCommand); @@ -891,6 +895,31 @@ void DolphinMainWindow::undo() KIO::FileUndoManager::self()->undo(); } +#if KIO_VERSION >= QT_VERSION_CHECK(6, 17, 0) +void DolphinMainWindow::slotRedoAvailable(bool available) +{ + QAction *redoAction = actionCollection()->action(KStandardAction::name(KStandardAction::Redo)); + if (redoAction) { + redoAction->setEnabled(available); + } +} + +void DolphinMainWindow::slotRedoTextChanged(const QString &text) +{ + QAction *redoAction = actionCollection()->action(KStandardAction::name(KStandardAction::Redo)); + if (redoAction) { + redoAction->setText(text); + } +} + +void DolphinMainWindow::redo() +{ + clearStatusBar(); + KIO::FileUndoManager::self()->uiInterface()->setParentWidget(this); + KIO::FileUndoManager::self()->redo(); +} +#endif + void DolphinMainWindow::cut() { if (m_activeViewContainer->view()->selectedItems().isEmpty()) { @@ -1554,6 +1583,9 @@ void DolphinMainWindow::updateHamburgerMenu() } menu->addAction(ac->action(QStringLiteral("basic_actions"))); menu->addAction(ac->action(KStandardAction::name(KStandardAction::Undo))); +#if KIO_VERSION >= QT_VERSION_CHECK(6, 17, 0) + menu->addAction(ac->action(KStandardAction::name(KStandardAction::Redo))); +#endif if (!toolBar()->isVisible() || (!toolbarActions.contains(ac->action(QStringLiteral("toggle_search"))) && !toolbarActions.contains(ac->action(QStringLiteral("open_preferred_search_tool"))))) { @@ -1813,6 +1845,9 @@ void DolphinMainWindow::setupActions() // setup 'Edit' menu KStandardAction::undo(this, &DolphinMainWindow::undo, actionCollection()); +#if KIO_VERSION >= QT_VERSION_CHECK(6, 17, 0) + KStandardAction::redo(this, &DolphinMainWindow::redo, actionCollection()); +#endif // i18n: This will be the last paragraph for the whatsthis for all three: // Cut, Copy and Paste @@ -2094,6 +2129,18 @@ void DolphinMainWindow::setupActions() "will ask for your confirmation beforehand.")); undoAction->setEnabled(false); // undo should be disabled by default +#if KIO_VERSION >= QT_VERSION_CHECK(6, 17, 0) + auto redoAction = actionCollection()->action(KStandardAction::name(KStandardAction::Redo)); + redoAction->setWhatsThis(xi18nc("@info:whatsthis", + "This redoes " + "the last change you undid.<nl/>" + "Such changes include <interface>creating</interface>, <interface>renaming</interface> " + "and <interface>moving</interface> files or folders to a different location " + "or to the <filename>Trash</filename>.<nl/>Any changes that cannot be undone " + "will ask for your confirmation beforehand.")); + redoAction->setEnabled(false); // redo should be disabled by default +#endif + { QScopedPointer<QAction> forwardAction(KStandardAction::forward(nullptr, nullptr, nullptr)); m_forwardAction = new KToolBarPopupAction(forwardAction->icon(), forwardAction->text(), actionCollection()); diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 4952085f0..2c8d444ad 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -314,6 +314,20 @@ private Q_SLOTS: /** Performs the current undo operation. */ void undo(); +#if KIO_VERSION >= QT_VERSION_CHECK(6, 17, 0) + /** + * Updates the state of the 'Redo' menu action dependent + * on the parameter \a available. + */ + void slotRedoAvailable(bool available); + + /** Sets the text of the 'Redo' menu action to \a text. */ + void slotRedoTextChanged(const QString &text); + + /** Performs the current redo operation. */ + void redo(); +#endif + /** * Copies all selected items to the clipboard and marks * the items as cut. diff --git a/src/dolphinui.rc b/src/dolphinui.rc index 6bac6a193..93666b6bb 100644 --- a/src/dolphinui.rc +++ b/src/dolphinui.rc @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!DOCTYPE gui SYSTEM "kpartgui.dtd"> -<gui name="dolphin" version="47"> +<gui name="dolphin" version="48"> <MenuBar> <Menu name="file"> <Action name="new_menu" /> @@ -21,8 +21,6 @@ <Action name="properties" /> </Menu> <Menu name="edit"> - <Action name="edit_undo" /> - <Separator /> <Action name="edit_cut" /> <Action name="edit_copy" /> <Action name="copy_location" /> diff --git a/src/dolphinuiforphones.rc b/src/dolphinuiforphones.rc index 7e9d72c8e..b2a9fc6fe 100644 --- a/src/dolphinuiforphones.rc +++ b/src/dolphinuiforphones.rc @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!DOCTYPE gui SYSTEM "kpartgui.dtd"> -<gui name="dolphin" version="4"> +<gui name="dolphin" version="5"> <MenuBar> <Menu name="file"> <Action name="new_menu" /> @@ -21,8 +21,6 @@ <Action name="properties" /> </Menu> <Menu name="edit"> - <Action name="edit_undo" /> - <Separator /> <Action name="edit_cut" /> <Action name="edit_copy" /> <Action name="copy_location" /> |
