forked from qt-creator/qt-creator
Move actions for mode style to mode manager
Change-Id: Ic3ea8dcc12511f0f115b0c9124419ac5178f5c8f Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -172,6 +172,8 @@ const char G_EDIT_FONT[] = "QtCreator.Group.Edit.Font";
|
|||||||
const char G_EDIT_EDITOR[] = "QtCreator.Group.Edit.Editor";
|
const char G_EDIT_EDITOR[] = "QtCreator.Group.Edit.Editor";
|
||||||
|
|
||||||
// View menu groups
|
// View menu groups
|
||||||
|
const char G_VIEW_SIDEBAR[] = "QtCreator.Group.View.Sidebar";
|
||||||
|
const char G_VIEW_MODES[] = "QtCreator.Group.View.Modes";
|
||||||
const char G_VIEW_VIEWS[] = "QtCreator.Group.View.Views";
|
const char G_VIEW_VIEWS[] = "QtCreator.Group.View.Views";
|
||||||
const char G_VIEW_PANES[] = "QtCreator.Group.View.Panes";
|
const char G_VIEW_PANES[] = "QtCreator.Group.View.Panes";
|
||||||
|
|
||||||
|
@@ -285,13 +285,10 @@ public:
|
|||||||
|
|
||||||
void registerDefaultContainers();
|
void registerDefaultContainers();
|
||||||
void registerDefaultActions();
|
void registerDefaultActions();
|
||||||
void registerModeSelectorStyleActions();
|
|
||||||
|
|
||||||
void readSettings();
|
void readSettings();
|
||||||
void saveWindowSettings();
|
void saveWindowSettings();
|
||||||
|
|
||||||
void updateModeSelectorStyleMenu();
|
|
||||||
|
|
||||||
MainWindow *m_mainwindow = nullptr;
|
MainWindow *m_mainwindow = nullptr;
|
||||||
QTimer m_trimTimer;
|
QTimer m_trimTimer;
|
||||||
QStringList m_aboutInformation;
|
QStringList m_aboutInformation;
|
||||||
@@ -324,9 +321,6 @@ public:
|
|||||||
QAction *m_toggleLeftSideBarAction = nullptr;
|
QAction *m_toggleLeftSideBarAction = nullptr;
|
||||||
QAction *m_toggleRightSideBarAction = nullptr;
|
QAction *m_toggleRightSideBarAction = nullptr;
|
||||||
QAction *m_toggleMenubarAction = nullptr;
|
QAction *m_toggleMenubarAction = nullptr;
|
||||||
QAction *m_setModeSelectorStyleIconsAndTextAction = nullptr;
|
|
||||||
QAction *m_setModeSelectorStyleHiddenAction = nullptr;
|
|
||||||
QAction *m_setModeSelectorStyleIconsOnlyAction = nullptr;
|
|
||||||
|
|
||||||
QToolButton *m_toggleLeftSideBarButton = nullptr;
|
QToolButton *m_toggleLeftSideBarButton = nullptr;
|
||||||
QToolButton *m_toggleRightSideBarButton = nullptr;
|
QToolButton *m_toggleRightSideBarButton = nullptr;
|
||||||
@@ -1654,6 +1648,8 @@ void ICorePrivate::registerDefaultContainers()
|
|||||||
ActionContainer *mview = ActionManager::createMenu(Constants::M_VIEW);
|
ActionContainer *mview = ActionManager::createMenu(Constants::M_VIEW);
|
||||||
menubar->addMenu(mview, Constants::G_VIEW);
|
menubar->addMenu(mview, Constants::G_VIEW);
|
||||||
mview->menu()->setTitle(Tr::tr("&View"));
|
mview->menu()->setTitle(Tr::tr("&View"));
|
||||||
|
mview->appendGroup(Constants::G_VIEW_SIDEBAR);
|
||||||
|
mview->appendGroup(Constants::G_VIEW_MODES);
|
||||||
mview->appendGroup(Constants::G_VIEW_VIEWS);
|
mview->appendGroup(Constants::G_VIEW_VIEWS);
|
||||||
mview->appendGroup(Constants::G_VIEW_PANES);
|
mview->appendGroup(Constants::G_VIEW_PANES);
|
||||||
|
|
||||||
@@ -1980,7 +1976,7 @@ void ICorePrivate::registerDefaultActions()
|
|||||||
toggleLeftSideBarAction.setCheckable(true);
|
toggleLeftSideBarAction.setCheckable(true);
|
||||||
toggleLeftSideBarAction.setCommandAttribute(Command::CA_UpdateText);
|
toggleLeftSideBarAction.setCommandAttribute(Command::CA_UpdateText);
|
||||||
toggleLeftSideBarAction.setDefaultKeySequence(Tr::tr("Ctrl+0"), Tr::tr("Alt+0"));
|
toggleLeftSideBarAction.setDefaultKeySequence(Tr::tr("Ctrl+0"), Tr::tr("Alt+0"));
|
||||||
toggleLeftSideBarAction.addToContainer(Constants::M_VIEW, Constants::G_VIEW_VIEWS);
|
toggleLeftSideBarAction.addToContainer(Constants::M_VIEW, Constants::G_VIEW_SIDEBAR);
|
||||||
toggleLeftSideBarAction.addOnTriggered(this,
|
toggleLeftSideBarAction.addOnTriggered(this,
|
||||||
[this](bool visible) { setSidebarVisible(visible, Side::Left); });
|
[this](bool visible) { setSidebarVisible(visible, Side::Left); });
|
||||||
|
|
||||||
@@ -1996,7 +1992,7 @@ void ICorePrivate::registerDefaultActions()
|
|||||||
toggleRightSideBarAction.setCheckable(true);
|
toggleRightSideBarAction.setCheckable(true);
|
||||||
toggleRightSideBarAction.setCommandAttribute(Command::CA_UpdateText);
|
toggleRightSideBarAction.setCommandAttribute(Command::CA_UpdateText);
|
||||||
toggleRightSideBarAction.setDefaultKeySequence(Tr::tr("Ctrl+Shift+0"), Tr::tr("Alt+Shift+0"));
|
toggleRightSideBarAction.setDefaultKeySequence(Tr::tr("Ctrl+Shift+0"), Tr::tr("Alt+Shift+0"));
|
||||||
toggleRightSideBarAction.addToContainer(Constants::M_VIEW, Constants::G_VIEW_VIEWS);
|
toggleRightSideBarAction.addToContainer(Constants::M_VIEW, Constants::G_VIEW_SIDEBAR);
|
||||||
toggleRightSideBarAction.setEnabled(false);
|
toggleRightSideBarAction.setEnabled(false);
|
||||||
toggleRightSideBarAction.addOnTriggered(this,
|
toggleRightSideBarAction.addOnTriggered(this,
|
||||||
[this](bool visible) { setSidebarVisible(visible, Side::Right); });
|
[this](bool visible) { setSidebarVisible(visible, Side::Right); });
|
||||||
@@ -2012,7 +2008,7 @@ void ICorePrivate::registerDefaultActions()
|
|||||||
toggleMenubarAction.bindContextAction(&m_toggleMenubarAction);
|
toggleMenubarAction.bindContextAction(&m_toggleMenubarAction);
|
||||||
toggleMenubarAction.setCheckable(true);
|
toggleMenubarAction.setCheckable(true);
|
||||||
toggleMenubarAction.setDefaultKeySequence(Tr::tr("Ctrl+Alt+M"));
|
toggleMenubarAction.setDefaultKeySequence(Tr::tr("Ctrl+Alt+M"));
|
||||||
toggleMenubarAction.addToContainer(Constants::M_VIEW, Constants::G_VIEW_VIEWS);
|
toggleMenubarAction.addToContainer(Constants::M_VIEW, Constants::G_VIEW_SIDEBAR);
|
||||||
toggleMenubarAction.addOnToggled(this, [](bool visible) {
|
toggleMenubarAction.addOnToggled(this, [](bool visible) {
|
||||||
if (!visible) {
|
if (!visible) {
|
||||||
auto keySequenceAndText = [](const Utils::Id &actionName) {
|
auto keySequenceAndText = [](const Utils::Id &actionName) {
|
||||||
@@ -2046,8 +2042,6 @@ void ICorePrivate::registerDefaultActions()
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
registerModeSelectorStyleActions();
|
|
||||||
|
|
||||||
// Window->Views
|
// Window->Views
|
||||||
ActionContainer *mviews = ActionManager::createMenu(Constants::M_VIEW_VIEWS);
|
ActionContainer *mviews = ActionManager::createMenu(Constants::M_VIEW_VIEWS);
|
||||||
mview->addMenu(mviews, Constants::G_VIEW_VIEWS);
|
mview->addMenu(mviews, Constants::G_VIEW_VIEWS);
|
||||||
@@ -2100,53 +2094,6 @@ void ICorePrivate::registerDefaultActions()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ICorePrivate::registerModeSelectorStyleActions()
|
|
||||||
{
|
|
||||||
ActionContainer *mview = ActionManager::actionContainer(Constants::M_VIEW);
|
|
||||||
|
|
||||||
// Cycle Mode Selector Styles
|
|
||||||
ActionBuilder(this, Constants::CYCLE_MODE_SELECTOR_STYLE)
|
|
||||||
.setText(Tr::tr("Cycle Mode Selector Styles"))
|
|
||||||
.addOnTriggered(this, [this] {
|
|
||||||
ModeManager::cycleModeStyle();
|
|
||||||
updateModeSelectorStyleMenu();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Mode Selector Styles
|
|
||||||
ActionContainer *mmodeLayouts = ActionManager::createMenu(Constants::M_VIEW_MODESTYLES);
|
|
||||||
mview->addMenu(mmodeLayouts, Constants::G_VIEW_VIEWS);
|
|
||||||
QMenu *styleMenu = mmodeLayouts->menu();
|
|
||||||
styleMenu->setTitle(Tr::tr("Modes"));
|
|
||||||
auto *stylesGroup = new QActionGroup(styleMenu);
|
|
||||||
stylesGroup->setExclusive(true);
|
|
||||||
|
|
||||||
mmodeLayouts->addSeparator(Constants::G_DEFAULT_THREE);
|
|
||||||
|
|
||||||
ActionBuilder(this, "QtCreator.Modes.IconsAndText")
|
|
||||||
.setText(Tr::tr("Icons and Text"))
|
|
||||||
.setCheckable(true)
|
|
||||||
.addOnTriggered([] { ModeManager::setModeStyle(ModeManager::Style::IconsAndText); })
|
|
||||||
.addToContainer(Constants::M_VIEW_MODESTYLES, Constants::G_DEFAULT_THREE)
|
|
||||||
.bindContextAction(&m_setModeSelectorStyleIconsAndTextAction);
|
|
||||||
stylesGroup->addAction(m_setModeSelectorStyleIconsAndTextAction);
|
|
||||||
|
|
||||||
ActionBuilder(this, "QtCreator.Modes.IconsOnly")
|
|
||||||
.setText(Tr::tr("Icons Only"))
|
|
||||||
.setCheckable(true)
|
|
||||||
.addOnTriggered([] { ModeManager::setModeStyle(ModeManager::Style::IconsOnly); })
|
|
||||||
.addToContainer(Constants::M_VIEW_MODESTYLES, Constants::G_DEFAULT_THREE)
|
|
||||||
.bindContextAction(&m_setModeSelectorStyleIconsOnlyAction);
|
|
||||||
stylesGroup->addAction(m_setModeSelectorStyleIconsOnlyAction);
|
|
||||||
|
|
||||||
ActionBuilder(this, "QtCreator.Modes.Hidden")
|
|
||||||
.setText(Tr::tr("Hidden"))
|
|
||||||
.setCheckable(true)
|
|
||||||
.addOnTriggered([] { ModeManager::setModeStyle(ModeManager::Style::Hidden); })
|
|
||||||
.addToContainer(Constants::M_VIEW_MODESTYLES, Constants::G_DEFAULT_THREE)
|
|
||||||
.bindContextAction(&m_setModeSelectorStyleHiddenAction);
|
|
||||||
stylesGroup->addAction(m_setModeSelectorStyleHiddenAction);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ICorePrivate::openFile()
|
void ICorePrivate::openFile()
|
||||||
{
|
{
|
||||||
ICore::openFiles(EditorManager::getOpenFilePaths(), ICore::SwitchMode);
|
ICore::openFiles(EditorManager::getOpenFilePaths(), ICore::SwitchMode);
|
||||||
@@ -2414,7 +2361,6 @@ void ICorePrivate::readSettings()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ModeManager::setModeStyle(modeStyle);
|
ModeManager::setModeStyle(modeStyle);
|
||||||
updateModeSelectorStyleMenu();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (globalMenuBar() && !globalMenuBar()->isNativeMenuBar()) {
|
if (globalMenuBar() && !globalMenuBar()->isNativeMenuBar()) {
|
||||||
@@ -2451,21 +2397,6 @@ void ICorePrivate::saveWindowSettings()
|
|||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ICorePrivate::updateModeSelectorStyleMenu()
|
|
||||||
{
|
|
||||||
switch (ModeManager::modeStyle()) {
|
|
||||||
case ModeManager::Style::IconsAndText:
|
|
||||||
m_setModeSelectorStyleIconsAndTextAction->setChecked(true);
|
|
||||||
break;
|
|
||||||
case ModeManager::Style::IconsOnly:
|
|
||||||
m_setModeSelectorStyleIconsOnlyAction->setChecked(true);
|
|
||||||
break;
|
|
||||||
case ModeManager::Style::Hidden:
|
|
||||||
m_setModeSelectorStyleHiddenAction->setChecked(true);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ICorePrivate::updateContext()
|
void ICorePrivate::updateContext()
|
||||||
{
|
{
|
||||||
Context contexts = m_highPrioAdditionalContexts;
|
Context contexts = m_highPrioAdditionalContexts;
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
#include <QActionGroup>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QMap>
|
#include <QMap>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
@@ -68,6 +69,8 @@ struct ModeManagerPrivate
|
|||||||
void enabledStateChanged(IMode *mode);
|
void enabledStateChanged(IMode *mode);
|
||||||
void visibleChanged(IMode *mode);
|
void visibleChanged(IMode *mode);
|
||||||
void activateModeHelper(Id id);
|
void activateModeHelper(Id id);
|
||||||
|
void registerModeSelectorStyleActions();
|
||||||
|
void updateModeSelectorStyleMenu();
|
||||||
void extensionsInitializedHelper();
|
void extensionsInitializedHelper();
|
||||||
|
|
||||||
Internal::FancyTabWidget *m_modeStack;
|
Internal::FancyTabWidget *m_modeStack;
|
||||||
@@ -78,6 +81,9 @@ struct ModeManagerPrivate
|
|||||||
Context m_addedContexts;
|
Context m_addedContexts;
|
||||||
int m_oldCurrent;
|
int m_oldCurrent;
|
||||||
ModeManager::Style m_modeStyle = ModeManager::Style::IconsAndText;
|
ModeManager::Style m_modeStyle = ModeManager::Style::IconsAndText;
|
||||||
|
QAction *m_setModeSelectorStyleIconsAndTextAction = nullptr;
|
||||||
|
QAction *m_setModeSelectorStyleHiddenAction = nullptr;
|
||||||
|
QAction *m_setModeSelectorStyleIconsOnlyAction = nullptr;
|
||||||
|
|
||||||
bool m_startingUp = true;
|
bool m_startingUp = true;
|
||||||
Id m_pendingFirstActiveMode; // Valid before extentionsInitialized.
|
Id m_pendingFirstActiveMode; // Valid before extentionsInitialized.
|
||||||
@@ -180,6 +186,68 @@ void ModeManagerPrivate::activateModeHelper(Id id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ModeManagerPrivate::registerModeSelectorStyleActions()
|
||||||
|
{
|
||||||
|
ActionContainer *mview = ActionManager::actionContainer(Constants::M_VIEW);
|
||||||
|
|
||||||
|
// Cycle Mode Selector Styles
|
||||||
|
ActionBuilder(m_instance, Constants::CYCLE_MODE_SELECTOR_STYLE)
|
||||||
|
.setText(Tr::tr("Cycle Mode Selector Styles"))
|
||||||
|
.addOnTriggered([] { ModeManager::cycleModeStyle(); });
|
||||||
|
|
||||||
|
// Mode Selector Styles
|
||||||
|
ActionContainer *mmodeLayouts = ActionManager::createMenu(Constants::M_VIEW_MODESTYLES);
|
||||||
|
mview->addMenu(mmodeLayouts, Constants::G_VIEW_MODES);
|
||||||
|
QMenu *styleMenu = mmodeLayouts->menu();
|
||||||
|
styleMenu->setTitle(Tr::tr("Modes"));
|
||||||
|
auto *stylesGroup = new QActionGroup(styleMenu);
|
||||||
|
stylesGroup->setExclusive(true);
|
||||||
|
|
||||||
|
mmodeLayouts->addSeparator(Constants::G_DEFAULT_THREE);
|
||||||
|
|
||||||
|
ActionBuilder(m_instance, "QtCreator.Modes.IconsAndText")
|
||||||
|
.setText(Tr::tr("Icons and Text"))
|
||||||
|
.setCheckable(true)
|
||||||
|
.addOnTriggered([] { ModeManager::setModeStyle(ModeManager::Style::IconsAndText); })
|
||||||
|
.addToContainer(Constants::M_VIEW_MODESTYLES, Constants::G_DEFAULT_THREE)
|
||||||
|
.bindContextAction(&m_setModeSelectorStyleIconsAndTextAction);
|
||||||
|
stylesGroup->addAction(m_setModeSelectorStyleIconsAndTextAction);
|
||||||
|
|
||||||
|
ActionBuilder(m_instance, "QtCreator.Modes.IconsOnly")
|
||||||
|
.setText(Tr::tr("Icons Only"))
|
||||||
|
.setCheckable(true)
|
||||||
|
.addOnTriggered([] { ModeManager::setModeStyle(ModeManager::Style::IconsOnly); })
|
||||||
|
.addToContainer(Constants::M_VIEW_MODESTYLES, Constants::G_DEFAULT_THREE)
|
||||||
|
.bindContextAction(&m_setModeSelectorStyleIconsOnlyAction);
|
||||||
|
stylesGroup->addAction(m_setModeSelectorStyleIconsOnlyAction);
|
||||||
|
|
||||||
|
ActionBuilder(m_instance, "QtCreator.Modes.Hidden")
|
||||||
|
.setText(Tr::tr("Hidden"))
|
||||||
|
.setCheckable(true)
|
||||||
|
.addOnTriggered([] { ModeManager::setModeStyle(ModeManager::Style::Hidden); })
|
||||||
|
.addToContainer(Constants::M_VIEW_MODESTYLES, Constants::G_DEFAULT_THREE)
|
||||||
|
.bindContextAction(&m_setModeSelectorStyleHiddenAction);
|
||||||
|
stylesGroup->addAction(m_setModeSelectorStyleHiddenAction);
|
||||||
|
updateModeSelectorStyleMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModeManagerPrivate::updateModeSelectorStyleMenu()
|
||||||
|
{
|
||||||
|
if (!m_setModeSelectorStyleHiddenAction) // actions not yet created
|
||||||
|
return;
|
||||||
|
switch (m_modeStyle) {
|
||||||
|
case ModeManager::Style::IconsAndText:
|
||||||
|
m_setModeSelectorStyleIconsAndTextAction->setChecked(true);
|
||||||
|
break;
|
||||||
|
case ModeManager::Style::IconsOnly:
|
||||||
|
m_setModeSelectorStyleIconsOnlyAction->setChecked(true);
|
||||||
|
break;
|
||||||
|
case ModeManager::Style::Hidden:
|
||||||
|
m_setModeSelectorStyleHiddenAction->setChecked(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ModeManager::extensionsInitialized()
|
void ModeManager::extensionsInitialized()
|
||||||
{
|
{
|
||||||
d->extensionsInitializedHelper();
|
d->extensionsInitializedHelper();
|
||||||
@@ -188,7 +256,7 @@ void ModeManager::extensionsInitialized()
|
|||||||
void ModeManagerPrivate::extensionsInitializedHelper()
|
void ModeManagerPrivate::extensionsInitializedHelper()
|
||||||
{
|
{
|
||||||
m_startingUp = false;
|
m_startingUp = false;
|
||||||
|
registerModeSelectorStyleActions();
|
||||||
Utils::sort(m_modes, &IMode::priority);
|
Utils::sort(m_modes, &IMode::priority);
|
||||||
std::reverse(m_modes.begin(), m_modes.end());
|
std::reverse(m_modes.begin(), m_modes.end());
|
||||||
|
|
||||||
@@ -386,6 +454,8 @@ void ModeManager::setModeStyle(ModeManager::Style style)
|
|||||||
d->m_actionBar->setIconsOnly(iconsOnly);
|
d->m_actionBar->setIconsOnly(iconsOnly);
|
||||||
d->m_modeStack->setIconsOnly(iconsOnly);
|
d->m_modeStack->setIconsOnly(iconsOnly);
|
||||||
d->m_modeStack->setSelectionWidgetVisible(visible);
|
d->m_modeStack->setSelectionWidgetVisible(visible);
|
||||||
|
|
||||||
|
d->updateModeSelectorStyleMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
Reference in New Issue
Block a user