EnumPreferenceAction(pref_t *pref, const char *title, int enumval, QActionGroup *ag) :
     QAction(NULL),
     pref_(pref),
     enumval_(enumval)
 {
     setText(title);
     setActionGroup(ag);
     setCheckable(true);
 }
Esempio n. 2
0
djvChoiceButton::djvChoiceButton(QActionGroup * actionGroup, QWidget * parent) :
    djvAbstractToolButton(parent),
    _p(new djvChoiceButtonPrivate)
{
    setActionGroup(actionGroup);

    connect(
        this,
        SIGNAL(clicked()),
        SLOT(clickedCallback()));
}
void ActionManager::initEditMenuActions()
{
    static const auto DEFAULT_SHORTCUT_EDIT_MENU_UNDO     = QKeySequence{QKeySequence::Undo};
    static const auto DEFAULT_SHORTCUT_EDIT_MENU_REDO     = QKeySequence{QKeySequence::Redo};
    static const auto DEFAULT_SHORTCUT_EDIT_MENU_CUT      = QKeySequence{QKeySequence::Cut};
    static const auto DEFAULT_SHORTCUT_EDIT_MENU_COPY     = QKeySequence{QKeySequence::Copy};
    static const auto DEFAULT_SHORTCUT_EDIT_MENU_PASTE    = QKeySequence{QKeySequence::Paste};
    static const auto DEFAULT_SHORTCUT_EDIT_MENU_SETTINGS = QKeySequence{QKeySequence::Preferences};

    // ActionGroup Undo/Redo
    auto ptrGroupEditMenuUndoRedo = std14_stl::make_unique<QActionGroup>(m_pMainWindow);
    ptrGroupEditMenuUndoRedo->setExclusive(false);

    // Action Undo
    auto ptrActionEditMenuUndo = std14_stl::make_unique<QAction>(QObject::tr("Undo"),
                                                                 m_pMainWindow);
    ptrActionEditMenuUndo->setActionGroup(ptrGroupEditMenuUndoRedo.get());

    const auto shortcutEditMenuUndo = hasShortcutForID(actions::MENU_EDIT_UNDO)
                                      ? m_savedShortcuts.value(actions::MENU_EDIT_UNDO)
                                      : DEFAULT_SHORTCUT_EDIT_MENU_UNDO;
    ptrActionEditMenuUndo->setShortcut(shortcutEditMenuUndo);
    saveShortcut(actions::MENU_EDIT_UNDO, shortcutEditMenuUndo);
    ptrActionEditMenuUndo->setIcon(QIcon{":/icons/main/undo"});
    m_actions.insert(std::make_pair(actions::MENU_EDIT_UNDO,
                                    std::move(ptrActionEditMenuUndo)));

    // Action Redo
    auto ptrActionEditMenuRedo = std14_stl::make_unique<QAction>(QObject::tr("Redo"),
                                                                 m_pMainWindow);
    ptrActionEditMenuRedo->setActionGroup(ptrGroupEditMenuUndoRedo.get());

    const auto shortcutEditMenuRedo = hasShortcutForID(actions::MENU_EDIT_REDO)
                                      ? m_savedShortcuts.value(actions::MENU_EDIT_REDO)
                                      : DEFAULT_SHORTCUT_EDIT_MENU_REDO;
    ptrActionEditMenuRedo->setShortcut(shortcutEditMenuRedo);
    saveShortcut(actions::MENU_EDIT_REDO, shortcutEditMenuRedo);
    ptrActionEditMenuRedo->setIcon(QIcon{":/icons/main/redo"});
    m_actions.insert(std::make_pair(actions::MENU_EDIT_REDO,
                                    std::move(ptrActionEditMenuRedo)));

    m_actionGroups.insert(std::make_pair(actions::groups::MENU_EDIT_UNDO_REDO,
                                         std::move(ptrGroupEditMenuUndoRedo)));

    // -----------------------------------------------------------
    // ActionGroup Editing
    auto ptrGroupEditMenuEditing = std14_stl::make_unique<QActionGroup>(m_pMainWindow);
    ptrGroupEditMenuEditing->setExclusive(false);

    // Action Cut
    auto ptrActionEditMenuCut = std14_stl::make_unique<QAction>(QObject::tr("Cut"),
                                                                m_pMainWindow);
    ptrActionEditMenuCut->setActionGroup(ptrGroupEditMenuEditing.get());

    const auto shortcutEditMenuCut = hasShortcutForID(actions::MENU_EDIT_CUT)
                                     ? m_savedShortcuts.value(actions::MENU_EDIT_CUT)
                                     : DEFAULT_SHORTCUT_EDIT_MENU_CUT;
    ptrActionEditMenuCut->setShortcut(shortcutEditMenuCut);
    saveShortcut(actions::MENU_EDIT_CUT, shortcutEditMenuCut);
    ptrActionEditMenuCut->setIcon(QIcon{":/icons/main/cut"});
    m_actions.insert(std::make_pair(actions::MENU_EDIT_CUT,
                                    std::move(ptrActionEditMenuCut)));

    // Action Copy
    auto ptrActionEditMenuCopy = std14_stl::make_unique<QAction>(QObject::tr("Copy"),
                                                                 m_pMainWindow);
    ptrActionEditMenuCopy->setActionGroup(ptrGroupEditMenuEditing.get());

    const auto shortcutEditMenuCopy = hasShortcutForID(actions::MENU_EDIT_COPY)
                                      ? m_savedShortcuts.value(actions::MENU_EDIT_COPY)
                                      : DEFAULT_SHORTCUT_EDIT_MENU_COPY;
    ptrActionEditMenuCopy->setShortcut(shortcutEditMenuCopy);
    saveShortcut(actions::MENU_EDIT_COPY, shortcutEditMenuCopy);
    ptrActionEditMenuCopy->setIcon(QIcon{":/icons/main/copy"});
    m_actions.insert(std::make_pair(actions::MENU_EDIT_COPY,
                                    std::move(ptrActionEditMenuCopy)));

    // Action Paste
    auto ptrActionEditMenuPaste = std14_stl::make_unique<QAction>(QObject::tr("Paste"),
                                                                  m_pMainWindow);
    ptrActionEditMenuPaste->setActionGroup(ptrGroupEditMenuEditing.get());

    const auto shortcutEditMenuPaste = hasShortcutForID(actions::MENU_EDIT_PASTE)
                                       ? m_savedShortcuts.value(actions::MENU_EDIT_PASTE)
                                       : DEFAULT_SHORTCUT_EDIT_MENU_PASTE;
    ptrActionEditMenuPaste->setShortcut(shortcutEditMenuPaste);
    saveShortcut(actions::MENU_EDIT_PASTE, shortcutEditMenuPaste);
    ptrActionEditMenuPaste->setIcon(QIcon{":/icons/main/paste"});
    m_actions.insert(std::make_pair(actions::MENU_EDIT_PASTE,
                                    std::move(ptrActionEditMenuPaste)));

    m_actionGroups.insert(std::make_pair(actions::groups::MENU_EDIT_EDITING,
                                         std::move(ptrGroupEditMenuEditing)));

    // -----------------------------------------------------------
    auto ptrActionEditMenuSettings = std14_stl::make_unique<QAction>(QObject::tr("Settings..."),
                                                                     m_pMainWindow);

    // Action Settings
    const auto shortcutEditMenuSettings = hasShortcutForID(actions::MENU_EDIT_SETTINGS)
                                          ? m_savedShortcuts.value(actions::MENU_EDIT_SETTINGS)
                                          : DEFAULT_SHORTCUT_EDIT_MENU_SETTINGS;
    ptrActionEditMenuSettings->setShortcut(shortcutEditMenuSettings);
    saveShortcut(actions::MENU_EDIT_SETTINGS, shortcutEditMenuSettings);
    ptrActionEditMenuSettings->setIcon(QIcon{":/icons/main/settings"});
    m_actions.insert(std::make_pair(actions::MENU_EDIT_SETTINGS,
                                    std::move(ptrActionEditMenuSettings)));
}
void ActionManager::initSnippetsMenuActions()
{
    static const auto DEFAULT_SHORTCUT_SNIPPETS_MENU_CLOSE     = QKeySequence{QKeySequence::Close};
    static const auto DEFAULT_SHORTCUT_SNIPPETS_MENU_CLOSE_ALL = QKeySequence{Qt::CTRL + Qt::SHIFT + Qt::Key_W};
    static const auto DEFAULT_SHORTCUT_SNIPPETS_MENU_PREV      = QKeySequence{QKeySequence::Back};
    static const auto DEFAULT_SHORTCUT_SNIPPETS_MENU_NEXT      = QKeySequence{QKeySequence::Forward};

    // ActionGroup Closing
    auto ptrGroupSnippetsMenuClosing = std14_stl::make_unique<QActionGroup>(m_pMainWindow);
    ptrGroupSnippetsMenuClosing->setExclusive(false);

    // Action Close
    auto ptrActionSnippetsMenuClose = std14_stl::make_unique<QAction>(QObject::tr("Close"),
                                                                      m_pMainWindow);
    ptrActionSnippetsMenuClose->setActionGroup(ptrGroupSnippetsMenuClosing.get());

    const auto shortcutSnippetsMenuClose = hasShortcutForID(actions::MENU_SNIPPETS_CLOSE)
                                           ? m_savedShortcuts.value(actions::MENU_SNIPPETS_CLOSE)
                                           : DEFAULT_SHORTCUT_SNIPPETS_MENU_CLOSE;
    ptrActionSnippetsMenuClose->setShortcut(shortcutSnippetsMenuClose);
    saveShortcut(actions::MENU_SNIPPETS_CLOSE, shortcutSnippetsMenuClose);
    ptrActionSnippetsMenuClose->setIcon(QIcon{":/icons/main/close"});
    m_actions.insert(std::make_pair(actions::MENU_SNIPPETS_CLOSE,
                                    std::move(ptrActionSnippetsMenuClose)));

    // Action Close All
    auto ptrActionSnippetsMenuCloseAll = std14_stl::make_unique<QAction>(QObject::tr("Close All"),
                                                                         m_pMainWindow);
    ptrActionSnippetsMenuCloseAll->setActionGroup(ptrGroupSnippetsMenuClosing.get());

    const auto shortcutSnippetsMenuCloseAll = hasShortcutForID(actions::MENU_SNIPPETS_CLOSE_ALL)
                                              ? m_savedShortcuts.value(actions::MENU_SNIPPETS_CLOSE_ALL)
                                              : DEFAULT_SHORTCUT_SNIPPETS_MENU_CLOSE_ALL;
    ptrActionSnippetsMenuCloseAll->setShortcut(shortcutSnippetsMenuCloseAll);
    saveShortcut(actions::MENU_SNIPPETS_CLOSE_ALL, shortcutSnippetsMenuCloseAll);
    m_actions.insert(std::make_pair(actions::MENU_SNIPPETS_CLOSE_ALL,
                                    std::move(ptrActionSnippetsMenuCloseAll)));

    m_actionGroups.insert(std::make_pair(actions::groups::MENU_SNIPPETS_CLOSING,
                                         std::move(ptrGroupSnippetsMenuClosing)));

    // -----------------------------------------------------------
    // ActionGroup Navigation
    auto ptrGroupSnippetsMenuNav = std14_stl::make_unique<QActionGroup>(m_pMainWindow);
    ptrGroupSnippetsMenuNav->setExclusive(false);

    // Action Previous
    auto ptrActionSnippetsMenuPrev = std14_stl::make_unique<QAction>(QObject::tr("Previous"),
                                                                     m_pMainWindow);
    ptrActionSnippetsMenuPrev->setActionGroup(ptrGroupSnippetsMenuNav.get());

    const auto shortcutSnippetsMenuPrev = hasShortcutForID(actions::MENU_SNIPPETS_PREV)
                                          ? m_savedShortcuts.value(actions::MENU_SNIPPETS_PREV)
                                          : DEFAULT_SHORTCUT_SNIPPETS_MENU_PREV;
    ptrActionSnippetsMenuPrev->setShortcut(shortcutSnippetsMenuPrev);
    saveShortcut(actions::MENU_SNIPPETS_PREV, shortcutSnippetsMenuPrev);
    ptrActionSnippetsMenuPrev->setIcon(QIcon{":/icons/main/prev"});
    m_actions.insert(std::make_pair(actions::MENU_SNIPPETS_PREV,
                                    std::move(ptrActionSnippetsMenuPrev)));

    // Action Next
    auto ptrActionSnippetsMenuNext = std14_stl::make_unique<QAction>(QObject::tr("Next"),
                                                                     m_pMainWindow);
    ptrActionSnippetsMenuNext->setActionGroup(ptrGroupSnippetsMenuNav.get());

    const auto shortcutSnippetsMenuNext = hasShortcutForID(actions::MENU_SNIPPETS_NEXT)
                                          ? m_savedShortcuts.value(actions::MENU_SNIPPETS_NEXT)
                                          : DEFAULT_SHORTCUT_SNIPPETS_MENU_NEXT;
    ptrActionSnippetsMenuNext->setShortcut(shortcutSnippetsMenuNext);
    saveShortcut(actions::MENU_SNIPPETS_NEXT, shortcutSnippetsMenuNext);
    ptrActionSnippetsMenuNext->setIcon(QIcon{":/icons/main/next"});
    m_actions.insert(std::make_pair(actions::MENU_SNIPPETS_NEXT,
                                    std::move(ptrActionSnippetsMenuNext)));

    m_actionGroups.insert(std::make_pair(actions::groups::MENU_SNIPPETS_NAVIGATING,
                                         std::move(ptrGroupSnippetsMenuNav)));
}
void ActionManager::initFileMenuActions()
{
    static const auto DEFAULT_SHORTCUT_FILE_MENU_NEW_AUTHOR    = QKeySequence{Qt::CTRL + Qt::Key_N, Qt::Key_A};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_NEW_CATEGORY  = QKeySequence{Qt::CTRL + Qt::Key_N, Qt::Key_C};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_NEW_PROJECT   = QKeySequence{Qt::CTRL + Qt::Key_N, Qt::Key_P};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_NEW_SNIPPET   = QKeySequence{QKeySequence::New};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_SAVE          = QKeySequence{QKeySequence::Save};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_SAVE_AS       = QKeySequence{QKeySequence::SaveAs};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_IMPORT        = QKeySequence{Qt::CTRL + Qt::SHIFT + Qt::Key_I};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_EXPORT        = QKeySequence{Qt::CTRL + Qt::SHIFT + Qt::Key_E};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_PRINT_PREVIEW = QKeySequence{Qt::CTRL + Qt::ALT + Qt::Key_P};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_PRINT         = QKeySequence{QKeySequence::Print};
    static const auto DEFAULT_SHORTCUT_FILE_MENU_QUIT          = QKeySequence{QKeySequence::Quit};

    // ActionGroup Create
    auto ptrGroupFileMenuCreate = std14_stl::make_unique<QActionGroup>(m_pMainWindow);
    ptrGroupFileMenuCreate->setExclusive(false);

    // Action New Author
    auto ptrActionFileMenuNewAuthor = std14_stl::make_unique<QAction>(QObject::tr("Author..."),
                                                                      m_pMainWindow);
    ptrActionFileMenuNewAuthor->setActionGroup(ptrGroupFileMenuCreate.get());

    const auto shortcutFileMenuNewAuthor = hasShortcutForID(actions::MENU_FILE_NEW_AUTHOR)
                                           ? m_savedShortcuts.value(actions::MENU_FILE_NEW_AUTHOR)
                                           : DEFAULT_SHORTCUT_FILE_MENU_NEW_AUTHOR;
    ptrActionFileMenuNewAuthor->setShortcut(shortcutFileMenuNewAuthor);
    saveShortcut(actions::MENU_FILE_NEW_AUTHOR, shortcutFileMenuNewAuthor);
    m_actions.insert(std::make_pair(actions::MENU_FILE_NEW_AUTHOR,
                                    std::move(ptrActionFileMenuNewAuthor)));

    // Action New Category
    auto ptrActionFileMenuNewCategory = std14_stl::make_unique<QAction>(QObject::tr("Category..."),
                                                                        m_pMainWindow);
    ptrActionFileMenuNewCategory->setActionGroup(ptrGroupFileMenuCreate.get());

    const auto shortcutFileMenuNewCategory = hasShortcutForID(actions::MENU_FILE_NEW_CATEGORY)
                                             ? m_savedShortcuts.value(actions::MENU_FILE_NEW_CATEGORY)
                                             : DEFAULT_SHORTCUT_FILE_MENU_NEW_CATEGORY;
    ptrActionFileMenuNewCategory->setShortcut(shortcutFileMenuNewCategory);
    saveShortcut(actions::MENU_FILE_NEW_CATEGORY, shortcutFileMenuNewCategory);
    m_actions.insert(std::make_pair(actions::MENU_FILE_NEW_CATEGORY,
                                    std::move(ptrActionFileMenuNewCategory)));

    // Action New Project
    auto ptrActionFileMenuNewProject = std14_stl::make_unique<QAction>(QObject::tr("Project..."),
                                                                       m_pMainWindow);
    ptrActionFileMenuNewProject->setActionGroup(ptrGroupFileMenuCreate.get());

    const auto shortcutFileMenuNewProject = hasShortcutForID(actions::MENU_FILE_NEW_PROJECT)
                                            ? m_savedShortcuts.value(actions::MENU_FILE_NEW_PROJECT)
                                            : DEFAULT_SHORTCUT_FILE_MENU_NEW_PROJECT;
    ptrActionFileMenuNewProject->setShortcut(shortcutFileMenuNewProject);
    saveShortcut(actions::MENU_FILE_NEW_PROJECT, shortcutFileMenuNewProject);
    m_actions.insert(std::make_pair(actions::MENU_FILE_NEW_PROJECT,
                                    std::move(ptrActionFileMenuNewProject)));

    // Action New Snippet
    auto ptrActionFileMenuNewSnippet = std14_stl::make_unique<QAction>(QObject::tr("Snippet..."),
                                                                       m_pMainWindow);
    ptrActionFileMenuNewSnippet->setActionGroup(ptrGroupFileMenuCreate.get());

    const auto shortcutFileMenuNewSnippet = hasShortcutForID(actions::MENU_FILE_NEW_SNIPPET)
                                            ? m_savedShortcuts.value(actions::MENU_FILE_NEW_SNIPPET)
                                            : DEFAULT_SHORTCUT_FILE_MENU_NEW_SNIPPET;
    ptrActionFileMenuNewSnippet->setShortcut(shortcutFileMenuNewSnippet);
    saveShortcut(actions::MENU_FILE_NEW_SNIPPET, shortcutFileMenuNewSnippet);
    m_actions.insert(std::make_pair(actions::MENU_FILE_NEW_SNIPPET,
                                    std::move(ptrActionFileMenuNewSnippet)));

    m_actionGroups.insert(std::make_pair(actions::groups::MENU_FILE_CREATE,
                                         std::move(ptrGroupFileMenuCreate)));

    // -----------------------------------------------------------
    // ActionGroup Saving
    auto ptrGroupFileMenuSaving = std14_stl::make_unique<QActionGroup>(m_pMainWindow);
    ptrGroupFileMenuSaving->setExclusive(false);

    // Action Save
    auto ptrActionFileMenuSave = std14_stl::make_unique<QAction>(QObject::tr("Save"),
                                                                 m_pMainWindow);
    ptrActionFileMenuSave->setActionGroup(ptrGroupFileMenuSaving.get());

    const auto shortcutFileMenuSave = hasShortcutForID(actions::MENU_FILE_SAVE)
                                      ? m_savedShortcuts.value(actions::MENU_FILE_SAVE)
                                      : DEFAULT_SHORTCUT_FILE_MENU_SAVE;
    ptrActionFileMenuSave->setShortcut(shortcutFileMenuSave);
    saveShortcut(actions::MENU_FILE_SAVE, shortcutFileMenuSave);
    ptrActionFileMenuSave->setIcon(QIcon{":/icons/main/save"});
    m_actions.insert(std::make_pair(actions::MENU_FILE_SAVE,
                                    std::move(ptrActionFileMenuSave)));

    // Action Save As
    auto ptrActionFileMenuSaveAs = std14_stl::make_unique<QAction>(QObject::tr("Save As..."),
                                                                   m_pMainWindow);

    const auto shortcutFileMenuSaveAs = hasShortcutForID(actions::MENU_FILE_SAVE_AS)
                                        ? m_savedShortcuts.value(actions::MENU_FILE_SAVE_AS)
                                        : DEFAULT_SHORTCUT_FILE_MENU_SAVE_AS;
    ptrActionFileMenuSaveAs->setShortcut(shortcutFileMenuSaveAs);
    saveShortcut(actions::MENU_FILE_SAVE_AS, shortcutFileMenuSaveAs);
    ptrActionFileMenuSaveAs->setIcon(QIcon{":/icons/main/saveas"});
    ptrActionFileMenuSaveAs->setActionGroup(ptrGroupFileMenuSaving.get());
    m_actions.insert(std::make_pair(actions::MENU_FILE_SAVE_AS,
                                    std::move(ptrActionFileMenuSaveAs)));

    m_actionGroups.insert(std::make_pair(actions::groups::MENU_FILE_SAVING,
                                         std::move(ptrGroupFileMenuSaving)));

    // -----------------------------------------------------------
    // ActionGroup Import/Export
    auto ptrGroupFileMenuImpExp = std14_stl::make_unique<QActionGroup>(m_pMainWindow);
    ptrGroupFileMenuImpExp->setExclusive(false);

    // Action Import
    auto ptrActionFileMenuImport = std14_stl::make_unique<QAction>(QObject::tr("Import..."),
                                                                   m_pMainWindow);
    ptrActionFileMenuImport->setActionGroup(ptrGroupFileMenuImpExp.get());

    const auto shortcutFileMenuImport = hasShortcutForID(actions::MENU_FILE_IMPORT)
                                        ? m_savedShortcuts.value(actions::MENU_FILE_IMPORT)
                                        : DEFAULT_SHORTCUT_FILE_MENU_IMPORT;
    ptrActionFileMenuImport->setShortcut(shortcutFileMenuImport);
    saveShortcut(actions::MENU_FILE_IMPORT, shortcutFileMenuImport);
    ptrActionFileMenuImport->setIcon(QIcon{":/icons/main/import"});
    m_actions.insert(std::make_pair(actions::MENU_FILE_IMPORT,
                                    std::move(ptrActionFileMenuImport)));

    // Action Export
    auto ptrActionFileMenuExport = std14_stl::make_unique<QAction>(QObject::tr("Export..."),
                                                                   m_pMainWindow);
    ptrActionFileMenuExport->setActionGroup(ptrGroupFileMenuImpExp.get());

    const auto shortcutFileMenuExport = hasShortcutForID(actions::MENU_FILE_EXPORT)
                                        ? m_savedShortcuts.value(actions::MENU_FILE_EXPORT)
                                        : DEFAULT_SHORTCUT_FILE_MENU_EXPORT;
    ptrActionFileMenuExport->setShortcut(shortcutFileMenuExport);
    saveShortcut(actions::MENU_FILE_EXPORT, shortcutFileMenuExport);
    ptrActionFileMenuExport->setIcon(QIcon{":/icons/main/export"});
    m_actions.insert(std::make_pair(actions::MENU_FILE_EXPORT,
                                    std::move(ptrActionFileMenuExport)));

    m_actionGroups.insert(std::make_pair(actions::groups::MENU_FILE_IMPORT_EXPORT,
                                         std::move(ptrGroupFileMenuImpExp)));

    // -----------------------------------------------------------
    // ActionGroup Printing
    auto ptrGroupFileMenuPrinting = std14_stl::make_unique<QActionGroup>(m_pMainWindow);
    ptrGroupFileMenuPrinting->setExclusive(false);

    // Action Print Preview
    auto ptrActionFileMenuPrintPreview = std14_stl::make_unique<QAction>(QObject::tr("Print Preview..."),
                                                                         m_pMainWindow);
    ptrActionFileMenuPrintPreview->setActionGroup(ptrGroupFileMenuPrinting.get());

    const auto shortcutFileMenuPrintPreview = hasShortcutForID(actions::MENU_FILE_PRINT_PREVIEW)
                                              ? m_savedShortcuts.value(actions::MENU_FILE_PRINT_PREVIEW)
                                              : DEFAULT_SHORTCUT_FILE_MENU_PRINT_PREVIEW;
    ptrActionFileMenuPrintPreview->setShortcut(shortcutFileMenuPrintPreview);
    saveShortcut(actions::MENU_FILE_PRINT_PREVIEW, shortcutFileMenuPrintPreview);
    ptrActionFileMenuPrintPreview->setIcon(QIcon{":/icons/main/printpreview"});
    m_actions.insert(std::make_pair(actions::MENU_FILE_PRINT_PREVIEW,
                                    std::move(ptrActionFileMenuPrintPreview)));

    // Action Print
    auto ptrActionFileMenuPrint = std14_stl::make_unique<QAction>(QObject::tr("Print..."),
                                                                  m_pMainWindow);
    ptrActionFileMenuPrint->setActionGroup(ptrGroupFileMenuPrinting.get());

    const auto shortcutFileMenuPrint = hasShortcutForID(actions::MENU_FILE_PRINT)
                                       ? m_savedShortcuts.value(actions::MENU_FILE_PRINT)
                                       : DEFAULT_SHORTCUT_FILE_MENU_PRINT;
    ptrActionFileMenuPrint->setShortcut(shortcutFileMenuPrint);
    saveShortcut(actions::MENU_FILE_PRINT, shortcutFileMenuPrint);
    ptrActionFileMenuPrint->setIcon(QIcon{":/icons/main/print"});
    m_actions.insert(std::make_pair(actions::MENU_FILE_PRINT,
                                    std::move(ptrActionFileMenuPrint)));

    m_actionGroups.insert(std::make_pair(actions::groups::MENU_FILE_PRINTING,
                                         std::move(ptrGroupFileMenuPrinting)));

    // -----------------------------------------------------------
    // Action Quit
    auto ptrActionFileMenuQuit = std14_stl::make_unique<QAction>(QObject::tr("Quit"),
                                                                 m_pMainWindow);

    const auto shortcutFileMenuQuit = hasShortcutForID(actions::MENU_FILE_QUIT)
                                      ? m_savedShortcuts.value(actions::MENU_FILE_QUIT)
                                      : DEFAULT_SHORTCUT_FILE_MENU_QUIT;
    ptrActionFileMenuQuit->setShortcut(shortcutFileMenuQuit);
    saveShortcut(actions::MENU_FILE_QUIT, shortcutFileMenuQuit);
    ptrActionFileMenuQuit->setIcon(QIcon{":/icons/main/exit"});
    m_actions.insert(std::make_pair(actions::MENU_FILE_QUIT,
                                    std::move(ptrActionFileMenuQuit)));
}