forked from qt-creator/qt-creator
Core: Icon-only option for the mode selection bar
This adds an icon-only mode to the mode selection bar (and action bar). A newly introduced Action can cycle between icon+text, icon-only and hidden. Also, the "Window" Application menu gets a submenu with the three styles. Task-number: QTCREATORBUG-18845 Change-Id: I4e0c453f6d920dfbfd795b8b054f6ff392a8700a Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -73,7 +73,7 @@ struct ModeManagerPrivate
|
||||
QVector<Command*> m_modeCommands;
|
||||
Context m_addedContexts;
|
||||
int m_oldCurrent;
|
||||
bool m_modeSelectorVisible;
|
||||
ModeManager::Style m_modeStyle = ModeManager::Style::IconsAndText;
|
||||
|
||||
bool m_startingUp = true;
|
||||
Id m_pendingFirstActiveMode; // Valid before extentionsInitialized.
|
||||
@@ -108,8 +108,7 @@ ModeManager::ModeManager(Internal::MainWindow *mainWindow,
|
||||
d->m_oldCurrent = -1;
|
||||
d->m_actionBar = new Internal::FancyActionBar(modeStack);
|
||||
d->m_modeStack->addCornerWidget(d->m_actionBar);
|
||||
d->m_modeSelectorVisible = true;
|
||||
d->m_modeStack->setSelectionWidgetVisible(d->m_modeSelectorVisible);
|
||||
setModeStyle(d->m_modeStyle);
|
||||
|
||||
connect(d->m_modeStack, &Internal::FancyTabWidget::currentAboutToShow,
|
||||
this, &ModeManager::currentTabAboutToChange);
|
||||
@@ -310,15 +309,26 @@ void ModeManager::setFocusToCurrentMode()
|
||||
}
|
||||
}
|
||||
|
||||
void ModeManager::setModeSelectorVisible(bool visible)
|
||||
void ModeManager::setModeStyle(ModeManager::Style style)
|
||||
{
|
||||
d->m_modeSelectorVisible = visible;
|
||||
const bool visible = style != Style::Hidden;
|
||||
const bool iconsOnly = style == Style::IconsOnly;
|
||||
|
||||
d->m_modeStyle = style;
|
||||
d->m_actionBar->setIconsOnly(iconsOnly);
|
||||
d->m_modeStack->setIconsOnly(iconsOnly);
|
||||
d->m_modeStack->setSelectionWidgetVisible(visible);
|
||||
}
|
||||
|
||||
bool ModeManager::isModeSelectorVisible()
|
||||
void ModeManager::cycleModeStyle()
|
||||
{
|
||||
return d->m_modeSelectorVisible;
|
||||
auto nextStyle = Style((int(modeStyle()) + 1) % 3);
|
||||
setModeStyle(nextStyle);
|
||||
}
|
||||
|
||||
ModeManager::Style ModeManager::modeStyle()
|
||||
{
|
||||
return d->m_modeStyle;
|
||||
}
|
||||
|
||||
ModeManager *ModeManager::instance()
|
||||
|
||||
Reference in New Issue
Block a user