/* This file is part of the KDE libraries SPDX-FileCopyrightText: 1999, 2000 Kurt Granroth SPDX-FileCopyrightText: 2001, 2002 Ellis Whitehead SPDX-License-Identifier: LGPL-2.0-only */ #ifndef KSTANDARDACTION_H #define KSTANDARDACTION_H #include #include #include #include #include #include #include #include #include #include #include class QObject; class QWidget; class QAction; class KToggleFullScreenAction; /** * Convenience methods to access all standard KDE actions. * * These actions should be used instead of hardcoding menubar and * toolbar items. Using these actions helps your application easily * conform to the KDE Human Interface Guidelines. * * All of the documentation for QAction holds for KStandardAction * also. When in doubt on how things work, check the QAction * documentation first. * Please note that calling any of these methods automatically adds the action * to the actionCollection() of the QObject given by the 'parent' parameter. * * Simple Example:\n * * In general, using standard actions should be a drop in replacement * for regular actions. For example, if you previously had: * @code * QAction *newAct = new QAction(QIcon::fromTheme("document-new"), * i18n("&New"), * this); * newAct->setShortcut(KStandardShortcut::shortcut(KStandardShortcut::New).constFirst()); * connect(newAct, &QAction::triggered, this, &ClassFoo::fileNew); * @endcode * * You can replace it with: * @code * QAction *newAct = KStandardAction::openNew(this, &ClassFoo::fileNew, this); * @endcode * * Alternatively you can instantiate the action using the StandardAction enums * provided. This author can't think of a reason why you would want to, but, hey, * if you do, here's how: * * \code * QAction *newAct = KStandardAction::create(KStandardAction::New, this, &ClassFoo::fileNew, this); * \endcode * * Relationship with KActionCollection from KXMLGui\n * * If a KActionCollection is passed as the parent then the action will be * automatically added to that collection: * \code * QAction *cut = KStandardAction::cut(this, &ClassFoo::editCut, actionCollection()); * \endcode * * Each action has a unique internal name which can be queried using the * name method. For example KStandardAction::name(KStandardAction::Cut) * would return 'edit_cut'. This name can be used as a unique identifier * for the actions. So if you wanted to add an existing standard action * to an action collection you can do so like this: * \code * QAction *cut = KStandardAction::cut(this, &ClassFoo::editCut, this); * actionCollection()->addAction(KStandardAction::name(KStandardAction::Cut), cut); * \endcode * * You can then get a pointer to the action using * \code * QAction *cutPtr = actionCollection()->action(KStandardAction::name(KStandardAction::Cut)); * \endcode * * @author Kurt Granroth */ namespace KStandardAction { /** * The standard menubar and toolbar actions. */ enum StandardAction { ActionNone, // File Menu New, ///< Create a new document or window. Open, ///< Open an existing file. OpenRecent, ///< Open a recently used document. Save, ///< Save the current document. SaveAs, ///< Save the current document under a different name. Revert, ///< Revert the current document to the last saved version. Close, ///< Close the current document. Print, ///< Print the current document. PrintPreview, ///< Show a print preview of the current document. Mail, ///< Send the current document by mail. Quit, ///< Quit the program. // Edit Menu Undo, ///< Undo the last operation. Redo, ///< Redo the last operation. Cut, ///< Cut selected area and store it in the clipboard. Copy, ///< Copy selected area and store it in the clipboard. Paste, ///< Paste the contents of clipboard at the current mouse or cursor. SelectAll, ///< Select all elements in the current document. Deselect, ///< Deselect any selected elements in the current document. Find, ///< Initiate a 'find' request in the current document. FindNext, ///< Find the next instance of a stored 'find' FindPrev, ///< Find a previous instance of a stored 'find'. Replace, ///< Find and replace matches. // View Menu ActualSize, ///< View the document at its actual size. FitToPage, ///< Fit the document view to the size of the current window. FitToWidth, ///< Fit the document view to the width of the current window. FitToHeight, ///< Fit the document view to the height of the current window. ZoomIn, ///< Zoom in the current document. ZoomOut, ///< Zoom out the current document. Zoom, ///< Select the current zoom level. Redisplay, ///< Redisplay or redraw the document. // Go Menu Up, ///< Move up (web style menu). Back, ///< Move back (web style menu). Forward, ///< Move forward (web style menu). Home, ///< Go to the "Home" position or document. Prior, ///< Scroll up one page. Next, ///< Scroll down one page. Goto, ///< Jump to some specific location in the document. GotoPage, ///< Go to a specific page. GotoLine, ///< Go to a specific line. FirstPage, ///< Jump to the first page. LastPage, ///< Jump to the last page. DocumentBack, ///< Move back (document style menu). DocumentForward, ///< Move forward (document style menu). // Bookmarks Menu AddBookmark, ///< Add the current page to the bookmarks tree. EditBookmarks, ///< Edit the application bookmarks. // Tools Menu Spelling, ///< Pop up the spell checker. // Settings Menu ShowMenubar, ///< Show/Hide the menubar. ShowToolbar, ///< Show/Hide the toolbar. ShowStatusbar, ///< Show/Hide the statusbar. KeyBindings, ///< Display the configure key bindings dialog. Preferences, ///< Display the preferences/options dialog. ConfigureToolbars, ///< Display the toolbar configuration dialog. // Help Menu HelpContents, ///< Display the handbook of the application. WhatsThis, ///< Trigger the What's This cursor. ReportBug, ///< Open up the Report Bug dialog. AboutApp, ///< Display the application's About box. AboutKDE, ///< Display the About KDE dialog. // Other standard actions ConfigureNotifications, ///< Display the notifications configuration dialog. FullScreen, ///< Switch to/from full screen mode. Clear, ///< Clear the content of the focus widget. SwitchApplicationLanguage, ///< Display the Switch Application Language dialog. DeleteFile, ///< Permanently deletes files or folders. @since 5.25 RenameFile, ///< Renames files or folders. @since 5.25 MoveToTrash, ///< Moves files or folders to the trash. @since 5.25 Donate, ///< Open donation page on kde.org. @since 5.26 HamburgerMenu ///< Opens a menu that substitutes the menubar. @since 5.81 }; /** * Creates an action corresponding to one of the * KStandardAction::StandardAction actions, which is connected to the given * object and @p slot, and is owned by @p parent. * * The signal that is connected to @p slot is triggered(bool), except for the case of * OpenRecent standard action, which uses the urlSelected(const QUrl &) signal of * KRecentFilesAction. * * @param id The StandardAction identifier to create a QAction for. * @param recvr The QObject to receive the signal, or @c nullptr if no notification * is needed. * @param slot The slot to connect the signal to (remember to use the SLOT() macro). * @param parent The QObject that should own the created QAction, or @c nullptr if no parent will * own the QAction returned (ensure you delete it manually in this case). */ KCONFIGWIDGETS_EXPORT QAction *create(StandardAction id, const QObject *recvr, const char *slot, QObject *parent); /** * @internal */ KCONFIGWIDGETS_EXPORT QAction *_k_createInternal(StandardAction id, QObject *parent); /** * This overloads create() to allow using the new connect syntax * @note if you use @c OpenRecent as @p id, you should manually connect to the urlSelected(const QUrl &) * signal of the returned KRecentFilesAction instead or use KStandardAction::openRecent(Receiver *, Func). * * If not explicitly specified, @p connectionType will be AutoConnection for all actions * except for ConfigureToolbars it will be QueuedConnection. * * @see create(StandardAction, const QObject *, const char *, QObject *) * @since 5.23 (The connectionType argument was added in 5.95) */ #ifdef K_DOXYGEN inline QAction *create(StandardAction id, const QObject *recvr, Func slot, QObject *parent, std::optional connectionType = std::nullopt) #else template inline typename std::enable_if::value, QAction>::type * create(StandardAction id, const Receiver *recvr, Func slot, QObject *parent, std::optional connectionType = std::nullopt) #endif { QAction *action = _k_createInternal(id, parent); // ConfigureToolbars is special because of bug #200815 const Qt::ConnectionType defaultConnectionType = (id == ConfigureToolbars) ? Qt::QueuedConnection : Qt::AutoConnection; QObject::connect(action, &QAction::triggered, recvr, slot, connectionType.value_or(defaultConnectionType)); return action; } /** * This will return the internal name of a given standard action. */ KCONFIGWIDGETS_EXPORT QString name(StandardAction id); /** * Returns a list of all standard names. Used by KAccelManager * to give those higher weight. */ KCONFIGWIDGETS_EXPORT QStringList stdNames(); /** * Returns a list of all actionIds. * * @since 4.2 */ KCONFIGWIDGETS_EXPORT QList actionIds(); /** * Returns the standardshortcut associated with @a actionId. * * @param id The identifier whose associated shortcut is wanted. * * @since 4.2 */ KCONFIGWIDGETS_EXPORT KStandardShortcut::StandardShortcut shortcutForActionId(StandardAction id); // clang-format off // we have to disable the templated function for const char* as Func, since it is ambiguous otherwise // TODO: KF6: unify const char* version and new style by removing std::enable_if #ifdef K_DOXYGEN #define KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(name, enumValue) \ inline QAction *name(const QObject *recvr, Func slot, QObject *parent); #else #define KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(name, enumValue) \ template \ inline typename std::enable_if::value, QAction>::type *name(const Receiver *recvr, Func slot, QObject *parent) \ { return create(enumValue, recvr, slot, parent); } #endif // clang-format on /** * Create a new document or window. */ KCONFIGWIDGETS_EXPORT QAction *openNew(const QObject *recvr, const char *slot, QObject *parent); /** * Create a new document or window. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(openNew, New) /** * Open an existing file. */ KCONFIGWIDGETS_EXPORT QAction *open(const QObject *recvr, const char *slot, QObject *parent); /** * Open an existing file. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(open, Open) /** * Open a recently used document. The signature of the slot being called * is of the form slotURLSelected( const QUrl & ). * @param recvr object to receive slot * @param slot The SLOT to invoke when a URL is selected. The slot's * signature is slotURLSelected( const QUrl & ). * @param parent parent widget */ KCONFIGWIDGETS_EXPORT KRecentFilesAction *openRecent(const QObject *recvr, const char *slot, QObject *parent); /** * The same as openRecent(const QObject *, const char *, QObject *), but using new-style connect syntax * @see openRecent(const QObject *, const char *, QObject *) * @since 5.23 */ #ifdef K_DOXYGEN inline KRecentFilesAction *openRecent(const QObject *recvr, Func slot, QObject *parent) #else template inline typename std::enable_if::value, KRecentFilesAction>::type * openRecent(const Receiver *recvr, Func slot, QObject *parent) #endif { QAction *action = _k_createInternal(OpenRecent, parent); KRecentFilesAction *recentAction = qobject_cast(action); Q_ASSERT(recentAction); QObject::connect(recentAction, &KRecentFilesAction::urlSelected, recvr, slot); return recentAction; } /** * Save the current document. */ KCONFIGWIDGETS_EXPORT QAction *save(const QObject *recvr, const char *slot, QObject *parent); /** * Save the current document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(save, Save) /** * Save the current document under a different name. */ KCONFIGWIDGETS_EXPORT QAction *saveAs(const QObject *recvr, const char *slot, QObject *parent); /** * Save the current document under a different name. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(saveAs, SaveAs) /** * Revert the current document to the last saved version * (essentially will undo all changes). */ KCONFIGWIDGETS_EXPORT QAction *revert(const QObject *recvr, const char *slot, QObject *parent); /** * Revert the current document to the last saved version * (essentially will undo all changes). * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(revert, Revert) /** * Close the current document. */ KCONFIGWIDGETS_EXPORT QAction *close(const QObject *recvr, const char *slot, QObject *parent); /** * Close the current document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(close, Close) /** * Print the current document. */ KCONFIGWIDGETS_EXPORT QAction *print(const QObject *recvr, const char *slot, QObject *parent); /** * Print the current document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(print, Print) /** * Show a print preview of the current document. */ KCONFIGWIDGETS_EXPORT QAction *printPreview(const QObject *recvr, const char *slot, QObject *parent); /** * Show a print preview of the current document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(printPreview, PrintPreview) /** * Send the current document by mail. */ KCONFIGWIDGETS_EXPORT QAction *mail(const QObject *recvr, const char *slot, QObject *parent); /** * Mail this document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(mail, Mail) /** * Quit the program. * * Note that you probably want to connect this action to either QWidget::close() * or QApplication::closeAllWindows(), but not QApplication::quit(), so that * KMainWindow::queryClose() is called on any open window (to warn the user * about unsaved changes for example). */ KCONFIGWIDGETS_EXPORT QAction *quit(const QObject *recvr, const char *slot, QObject *parent); /** * Quit the program. * @see quit(const QObject *recvr, const char *slot, QObject *parent) * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(quit, Quit) /** * Undo the last operation. */ KCONFIGWIDGETS_EXPORT QAction *undo(const QObject *recvr, const char *slot, QObject *parent); /** * Undo the last operation. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(undo, Undo) /** * Redo the last operation. */ KCONFIGWIDGETS_EXPORT QAction *redo(const QObject *recvr, const char *slot, QObject *parent); /** * Redo the last operation. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(redo, Redo) /** * Cut selected area and store it in the clipboard. * Calls cut() on the widget with the current focus. */ KCONFIGWIDGETS_EXPORT QAction *cut(QObject *parent); /** * Copy selected area and store it in the clipboard. * Calls copy() on the widget with the current focus. */ KCONFIGWIDGETS_EXPORT QAction *copy(QObject *parent); /** * Paste the contents of clipboard at the current mouse or cursor * Calls paste() on the widget with the current focus. */ KCONFIGWIDGETS_EXPORT QAction *paste(QObject *parent); // TODO K3ListView is long gone. Is this still relevant? /** * Clear selected area. Calls clear() on the widget with the current focus. * Note that for some widgets, this may not provide the intended behavior. For * example if you make use of the code above and a K3ListView has the focus, clear() * will clear all of the items in the list. If this is not the intended behavior * and you want to make use of this slot, you can subclass K3ListView and reimplement * this slot. For example the following code would implement a K3ListView without this * behavior: * * \code * class MyListView : public K3ListView { * Q_OBJECT * public: * MyListView( QWidget * parent = 0, const char * name = 0, WFlags f = 0 ) : K3ListView( parent, name, f ) {} * virtual ~MyListView() {} * public Q_SLOTS: * virtual void clear() {} * }; * \endcode */ KCONFIGWIDGETS_EXPORT QAction *clear(QObject *parent); /** * Calls selectAll() on the widget with the current focus. */ KCONFIGWIDGETS_EXPORT QAction *selectAll(QObject *parent); /** * Cut selected area and store it in the clipboard. */ KCONFIGWIDGETS_EXPORT QAction *cut(const QObject *recvr, const char *slot, QObject *parent); /** * Cut selected area and store it in the clipboard. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(cut, Cut) /** * Copy the selected area into the clipboard. */ KCONFIGWIDGETS_EXPORT QAction *copy(const QObject *recvr, const char *slot, QObject *parent); /** * Copy the selected area into the clipboard. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(copy, Copy) /** * Paste the contents of clipboard at the current mouse or cursor * position. */ KCONFIGWIDGETS_EXPORT QAction *paste(const QObject *recvr, const char *slot, QObject *parent); /** * Paste the contents of clipboard at the current mouse or cursor * position. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(paste, Paste) /** * Clear the content of the focus widget */ KCONFIGWIDGETS_EXPORT QAction *clear(const QObject *recvr, const char *slot, QObject *parent); /** * Clear the content of the focus widget * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(clear, Clear) /** * Select all elements in the current document. */ KCONFIGWIDGETS_EXPORT QAction *selectAll(const QObject *recvr, const char *slot, QObject *parent); /** * Select all elements in the current document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(selectAll, SelectAll) /** * Deselect any selected elements in the current document. */ KCONFIGWIDGETS_EXPORT QAction *deselect(const QObject *recvr, const char *slot, QObject *parent); /** * Deselect any selected elements in the current document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(deselect, Deselect) /** * Initiate a 'find' request in the current document. */ KCONFIGWIDGETS_EXPORT QAction *find(const QObject *recvr, const char *slot, QObject *parent); /** * Initiate a 'find' request in the current document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(find, Find) /** * Find the next instance of a stored 'find'. */ KCONFIGWIDGETS_EXPORT QAction *findNext(const QObject *recvr, const char *slot, QObject *parent); /** * Find the next instance of a stored 'find'. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(findNext, FindNext) /** * Find a previous instance of a stored 'find'. */ KCONFIGWIDGETS_EXPORT QAction *findPrev(const QObject *recvr, const char *slot, QObject *parent); /** * Find a previous instance of a stored 'find'. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(findPrev, FindPrev) /** * Find and replace matches. */ KCONFIGWIDGETS_EXPORT QAction *replace(const QObject *recvr, const char *slot, QObject *parent); /** * Find and replace matches. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(replace, Replace) /** * View the document at its actual size. */ KCONFIGWIDGETS_EXPORT QAction *actualSize(const QObject *recvr, const char *slot, QObject *parent); /** * View the document at its actual size. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(actualSize, ActualSize) /** * Fit the document view to the size of the current window. */ KCONFIGWIDGETS_EXPORT QAction *fitToPage(const QObject *recvr, const char *slot, QObject *parent); /** * Fit the document view to the size of the current window. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(fitToPage, FitToPage) /** * Fit the document view to the width of the current window. */ KCONFIGWIDGETS_EXPORT QAction *fitToWidth(const QObject *recvr, const char *slot, QObject *parent); /** * Fit the document view to the width of the current window. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(fitToWidth, FitToWidth) /** * Fit the document view to the height of the current window. */ KCONFIGWIDGETS_EXPORT QAction *fitToHeight(const QObject *recvr, const char *slot, QObject *parent); /** * Fit the document view to the height of the current window. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(fitToHeight, FitToHeight) /** * Zoom in the current document view. */ KCONFIGWIDGETS_EXPORT QAction *zoomIn(const QObject *recvr, const char *slot, QObject *parent); /** * Zoom in the current document view. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(zoomIn, ZoomIn) /** * Zoom out the current document view. */ KCONFIGWIDGETS_EXPORT QAction *zoomOut(const QObject *recvr, const char *slot, QObject *parent); /** * Zoom out the current document view. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(zoomOut, ZoomOut) /** * Select the current zoom level. */ KCONFIGWIDGETS_EXPORT QAction *zoom(const QObject *recvr, const char *slot, QObject *parent); /** * Select the current zoom level. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(zoom, Zoom) /** * Redisplay or redraw the document. */ KCONFIGWIDGETS_EXPORT QAction *redisplay(const QObject *recvr, const char *slot, QObject *parent); /** * Redisplay or redraw the document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(redisplay, Redisplay) /** * Move up (web style menu). */ KCONFIGWIDGETS_EXPORT QAction *up(const QObject *recvr, const char *slot, QObject *parent); /** * Move up (web style menu). * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(up, Up) /** * Move back (web style menu). */ KCONFIGWIDGETS_EXPORT QAction *back(const QObject *recvr, const char *slot, QObject *parent); /** * Move back (web style menu). * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(back, Back) /** * Move forward (web style menu). */ KCONFIGWIDGETS_EXPORT QAction *forward(const QObject *recvr, const char *slot, QObject *parent); /** * Move forward (web style menu). * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(forward, Forward) /** * Go to the "Home" position or document. */ KCONFIGWIDGETS_EXPORT QAction *home(const QObject *recvr, const char *slot, QObject *parent); /** * Go to the "Home" position or document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(home, Home) /** * Scroll up one page. */ KCONFIGWIDGETS_EXPORT QAction *prior(const QObject *recvr, const char *slot, QObject *parent); /** * Scroll up one page. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(prior, Prior) /** * Scroll down one page. */ KCONFIGWIDGETS_EXPORT QAction *next(const QObject *recvr, const char *slot, QObject *parent); /** * Scroll down one page. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(next, Next) /** * Jump to some specific location in the document. */ KCONFIGWIDGETS_EXPORT QAction *goTo(const QObject *recvr, const char *slot, QObject *parent); /** * Jump to some specific location in the document. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(goTo, Goto) /** * Go to a specific page. */ KCONFIGWIDGETS_EXPORT QAction *gotoPage(const QObject *recvr, const char *slot, QObject *parent); /** * Go to a specific page. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(gotoPage, GotoPage) /** * Go to a specific line. */ KCONFIGWIDGETS_EXPORT QAction *gotoLine(const QObject *recvr, const char *slot, QObject *parent); /** * Go to a specific line. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(gotoLine, GotoLine) /** * Jump to the first page. */ KCONFIGWIDGETS_EXPORT QAction *firstPage(const QObject *recvr, const char *slot, QObject *parent); /** * Jump to the first page. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(firstPage, FirstPage) /** * Jump to the last page. */ KCONFIGWIDGETS_EXPORT QAction *lastPage(const QObject *recvr, const char *slot, QObject *parent); /** * Jump to the last page. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(lastPage, LastPage) /** * Move back (document style menu). */ KCONFIGWIDGETS_EXPORT QAction *documentBack(const QObject *recvr, const char *slot, QObject *parent); /** * Move back (document style menu). * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(documentBack, DocumentBack) /** * Move forward (document style menu). */ KCONFIGWIDGETS_EXPORT QAction *documentForward(const QObject *recvr, const char *slot, QObject *parent); /** * Move forward (document style menu). * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(documentForward, DocumentForward) /** * Add the current page to the bookmarks tree. */ KCONFIGWIDGETS_EXPORT QAction *addBookmark(const QObject *recvr, const char *slot, QObject *parent); /** * Add the current page to the bookmarks tree. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(addBookmark, AddBookmark) /** * Edit the application bookmarks. */ KCONFIGWIDGETS_EXPORT QAction *editBookmarks(const QObject *recvr, const char *slot, QObject *parent); /** * Edit the application bookmarks. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(editBookmarks, EditBookmarks) /** * Pop up the spell checker. */ KCONFIGWIDGETS_EXPORT QAction *spelling(const QObject *recvr, const char *slot, QObject *parent); /** * Pop up the spell checker. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(spelling, Spelling) /** * Show/Hide the menubar. */ KCONFIGWIDGETS_EXPORT KToggleAction *showMenubar(const QObject *recvr, const char *slot, QObject *parent); /** * The same as showMenubar(const QObject *, const char *, QObject *), but using new-style connect syntax * @see showMenubar(const QObject *, const char *, QObject *) * @since 5.23 */ #ifdef K_DOXYGEN inline KToggleAction *showMenubar(const QObject *recvr, Func slot, QObject *parent) #else template inline typename std::enable_if::value, KToggleAction>::type * showMenubar(const Receiver *recvr, Func slot, QObject *parent) #endif { QAction *ret = create(ShowMenubar, recvr, slot, parent); Q_ASSERT(qobject_cast(ret)); return static_cast(ret); } /** * Show/Hide the statusbar. */ KCONFIGWIDGETS_EXPORT KToggleAction *showStatusbar(const QObject *recvr, const char *slot, QObject *parent); /** * Show/Hide the statusbar. * @since 5.23 */ #ifdef K_DOXYGEN inline KToggleAction *showStatusbar(const QObject *recvr, Func slot, QObject *parent) #else template inline typename std::enable_if::value, KToggleAction>::type * showStatusbar(const Receiver *recvr, Func slot, QObject *parent) #endif { QAction *ret = create(ShowStatusbar, recvr, slot, parent); Q_ASSERT(qobject_cast(ret)); return static_cast(ret); } /** * Switch to/from full screen mode */ KCONFIGWIDGETS_EXPORT KToggleFullScreenAction *fullScreen(const QObject *recvr, const char *slot, QWidget *window, QObject *parent); /** * Switch to/from full screen mode * @since 5.23 */ #ifdef K_DOXYGEN inline KToggleFullScreenAction *fullScreen(const QObject *recvr, Func slot, QWidget *window, QObject *parent) #else template inline typename std::enable_if::value, KToggleFullScreenAction>::type * fullScreen(const Receiver *recvr, Func slot, QWidget *window, QObject *parent) #endif { QAction *a = create(FullScreen, recvr, slot, parent); Q_ASSERT(qobject_cast(a)); KToggleFullScreenAction *ret = static_cast(a); ret->setWindow(window); return ret; } /** * Display the configure keyboard shortcuts dialog. * * Note that you might be able to use the pre-built KXMLGUIFactory's function: * @code * KStandardAction::keyBindings(guiFactory(), &KXMLGUIFactory::showConfigureShortcutsDialog, actionCollection()); * @endcode * */ KCONFIGWIDGETS_EXPORT QAction *keyBindings(const QObject *recvr, const char *slot, QObject *parent); /** * Display the configure key bindings dialog. * @see keyBindings(const QObject *recvr, const char *slot, QObject *parent) * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(keyBindings, KeyBindings) /** * Display the preferences/options dialog. */ KCONFIGWIDGETS_EXPORT QAction *preferences(const QObject *recvr, const char *slot, QObject *parent); /** * Display the preferences/options dialog. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(preferences, Preferences) /** * Display the toolbar configuration dialog. */ KCONFIGWIDGETS_EXPORT QAction *configureToolbars(const QObject *recvr, const char *slot, QObject *parent); /** * Display the toolbar configuration dialog. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(configureToolbars, ConfigureToolbars) /** * Display the notifications configuration dialog. */ KCONFIGWIDGETS_EXPORT QAction *configureNotifications(const QObject *recvr, const char *slot, QObject *parent); /** * Display the notifications configuration dialog. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(configureNotifications, ConfigureNotifications) /** * Display the Switch Application Language dialog. * @since 5.67 */ KCONFIGWIDGETS_EXPORT QAction *switchApplicationLanguage(const QObject *recvr, const char *slot, QObject *parent); /** * Display the Switch Application Language dialog. * @since 5.67 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(switchApplicationLanguage, SwitchApplicationLanguage) /** * Display the handbook of the application. */ KCONFIGWIDGETS_EXPORT QAction *helpContents(const QObject *recvr, const char *slot, QObject *parent); /** * Display the handbook of the application. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(helpContents, HelpContents) /** * Trigger the What's This cursor. */ KCONFIGWIDGETS_EXPORT QAction *whatsThis(const QObject *recvr, const char *slot, QObject *parent); /** * Trigger the What's This cursor. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(whatsThis, WhatsThis) /** * Open up the Report Bug dialog. */ KCONFIGWIDGETS_EXPORT QAction *reportBug(const QObject *recvr, const char *slot, QObject *parent); /** * Open up the Report Bug dialog. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(reportBug, ReportBug) /** * Display the application's About box. */ KCONFIGWIDGETS_EXPORT QAction *aboutApp(const QObject *recvr, const char *slot, QObject *parent); /** * Display the application's About box. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(aboutApp, AboutApp) /** * Display the About KDE dialog. */ KCONFIGWIDGETS_EXPORT QAction *aboutKDE(const QObject *recvr, const char *slot, QObject *parent); /** * Display the About KDE dialog. * @since 5.23 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(aboutKDE, AboutKDE) /** * Permanently deletes files or folders. * @since 5.25 */ KCONFIGWIDGETS_EXPORT QAction *deleteFile(const QObject *recvr, const char *slot, QObject *parent); /** * Permanently deletes files or folders. * @since 5.25 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(deleteFile, DeleteFile) /** * Renames files or folders. * @since 5.25 */ KCONFIGWIDGETS_EXPORT QAction *renameFile(const QObject *recvr, const char *slot, QObject *parent); /** * Renames files or folders. * @since 5.25 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(renameFile, RenameFile) /** * Moves files or folders to the trash. * @since 5.25 */ KCONFIGWIDGETS_EXPORT QAction *moveToTrash(const QObject *recvr, const char *slot, QObject *parent); /** * Moves files or folders to the trash. * @since 5.25 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(moveToTrash, MoveToTrash) /** * Open donation page on kde.org. * @since 5.26 */ KCONFIGWIDGETS_EXPORT QAction *donate(const QObject *recvr, const char *slot, QObject *parent); /** * Open donation page on kde.org. * @since 5.26 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(donate, Donate) /** * Opens a menu that substitutes the menubar. * @since 5.81 */ KCONFIGWIDGETS_EXPORT KHamburgerMenu *hamburgerMenu(const QObject *recvr, const char *slot, QObject *parent); /** * Opens a menu that substitutes the menubar. * @since 5.81 */ KSTANDARDACTION_WITH_NEW_STYLE_CONNECT(hamburgerMenu, HamburgerMenu) } #endif // KSTDACTION_H