forked from qt-creator/qt-creator
Add an action to show/hide the mode bar on the far left.
Change-Id: If7a74eed7fc77b1d0fd5e4045671b3767fe2d7a2
Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
(cherry picked from commit bde0627e59)
This commit is contained in:
@@ -98,6 +98,7 @@ const char EXIT[] = "QtCreator.Exit";
|
|||||||
|
|
||||||
const char OPTIONS[] = "QtCreator.Options";
|
const char OPTIONS[] = "QtCreator.Options";
|
||||||
const char TOGGLE_SIDEBAR[] = "QtCreator.ToggleSidebar";
|
const char TOGGLE_SIDEBAR[] = "QtCreator.ToggleSidebar";
|
||||||
|
const char TOGGLE_MODE_SELECTOR[] = "QtCreator.ToggleModeSelector";
|
||||||
const char TOGGLE_FULLSCREEN[] = "QtCreator.ToggleFullScreen";
|
const char TOGGLE_FULLSCREEN[] = "QtCreator.ToggleFullScreen";
|
||||||
|
|
||||||
const char MINIMIZE_WINDOW[] = "QtCreator.MinimizeWindow";
|
const char MINIMIZE_WINDOW[] = "QtCreator.MinimizeWindow";
|
||||||
|
|||||||
@@ -427,8 +427,14 @@ FancyTabWidget::FancyTabWidget(QWidget *parent)
|
|||||||
connect(m_tabBar, SIGNAL(currentChanged(int)), this, SLOT(showWidget(int)));
|
connect(m_tabBar, SIGNAL(currentChanged(int)), this, SLOT(showWidget(int)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void FancyTabWidget::setSelectionWidgetHidden(bool hidden) {
|
void FancyTabWidget::setSelectionWidgetVisible(bool visible)
|
||||||
m_selectionWidget->setHidden(hidden);
|
{
|
||||||
|
m_selectionWidget->setVisible(visible);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FancyTabWidget::isSelectionWidgetVisible() const
|
||||||
|
{
|
||||||
|
return m_selectionWidget->isVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FancyTabWidget::insertTab(int index, QWidget *tab, const QIcon &icon, const QString &label)
|
void FancyTabWidget::insertTab(int index, QWidget *tab, const QIcon &icon, const QString &label)
|
||||||
@@ -456,17 +462,19 @@ void FancyTabWidget::setBackgroundBrush(const QBrush &brush)
|
|||||||
void FancyTabWidget::paintEvent(QPaintEvent *event)
|
void FancyTabWidget::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
Q_UNUSED(event)
|
Q_UNUSED(event)
|
||||||
QPainter painter(this);
|
if (m_selectionWidget->isVisible()) {
|
||||||
|
QPainter painter(this);
|
||||||
|
|
||||||
QRect rect = m_selectionWidget->rect().adjusted(0, 0, 1, 0);
|
QRect rect = m_selectionWidget->rect().adjusted(0, 0, 1, 0);
|
||||||
rect = style()->visualRect(layoutDirection(), geometry(), rect);
|
rect = style()->visualRect(layoutDirection(), geometry(), rect);
|
||||||
Utils::StyleHelper::verticalGradient(&painter, rect, rect);
|
Utils::StyleHelper::verticalGradient(&painter, rect, rect);
|
||||||
painter.setPen(Utils::StyleHelper::borderColor());
|
painter.setPen(Utils::StyleHelper::borderColor());
|
||||||
painter.drawLine(rect.topRight(), rect.bottomRight());
|
painter.drawLine(rect.topRight(), rect.bottomRight());
|
||||||
|
|
||||||
QColor light = Utils::StyleHelper::sidebarHighlight();
|
QColor light = Utils::StyleHelper::sidebarHighlight();
|
||||||
painter.setPen(light);
|
painter.setPen(light);
|
||||||
painter.drawLine(rect.bottomLeft(), rect.bottomRight());
|
painter.drawLine(rect.bottomLeft(), rect.bottomRight());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FancyTabWidget::insertCornerWidget(int pos, QWidget *widget)
|
void FancyTabWidget::insertCornerWidget(int pos, QWidget *widget)
|
||||||
|
|||||||
@@ -159,13 +159,15 @@ public:
|
|||||||
void setTabEnabled(int index, bool enable);
|
void setTabEnabled(int index, bool enable);
|
||||||
bool isTabEnabled(int index) const;
|
bool isTabEnabled(int index) const;
|
||||||
|
|
||||||
|
bool isSelectionWidgetVisible() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void currentAboutToShow(int index);
|
void currentAboutToShow(int index);
|
||||||
void currentChanged(int index);
|
void currentChanged(int index);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setCurrentIndex(int index);
|
void setCurrentIndex(int index);
|
||||||
void setSelectionWidgetHidden(bool hidden);
|
void setSelectionWidgetVisible(bool visible);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void showWidget(int index);
|
void showWidget(int index);
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ MainWindow::MainWindow() :
|
|||||||
m_modeManager(0),
|
m_modeManager(0),
|
||||||
m_mimeDatabase(new MimeDatabase),
|
m_mimeDatabase(new MimeDatabase),
|
||||||
m_helpManager(new HelpManager),
|
m_helpManager(new HelpManager),
|
||||||
|
m_modeStack(new FancyTabWidget(this)),
|
||||||
m_navigationWidget(0),
|
m_navigationWidget(0),
|
||||||
m_rightPaneWidget(0),
|
m_rightPaneWidget(0),
|
||||||
m_versionDialog(0),
|
m_versionDialog(0),
|
||||||
@@ -195,14 +196,14 @@ MainWindow::MainWindow() :
|
|||||||
setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
|
setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
|
||||||
setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea);
|
setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea);
|
||||||
|
|
||||||
|
m_modeManager = new ModeManager(this, m_modeStack);
|
||||||
|
|
||||||
registerDefaultContainers();
|
registerDefaultContainers();
|
||||||
registerDefaultActions();
|
registerDefaultActions();
|
||||||
|
|
||||||
m_navigationWidget = new NavigationWidget(m_toggleSideBarAction);
|
m_navigationWidget = new NavigationWidget(m_toggleSideBarAction);
|
||||||
m_rightPaneWidget = new RightPaneWidget();
|
m_rightPaneWidget = new RightPaneWidget();
|
||||||
|
|
||||||
m_modeStack = new FancyTabWidget(this);
|
|
||||||
m_modeManager = new ModeManager(this, m_modeStack);
|
|
||||||
m_statusBarManager = new StatusBarManager(this);
|
m_statusBarManager = new StatusBarManager(this);
|
||||||
m_messageManager = new MessageManager;
|
m_messageManager = new MessageManager;
|
||||||
m_editorManager = new EditorManager(this);
|
m_editorManager = new EditorManager(this);
|
||||||
@@ -727,6 +728,12 @@ void MainWindow::registerDefaultActions()
|
|||||||
mwindow->addAction(cmd, Constants::G_WINDOW_VIEWS);
|
mwindow->addAction(cmd, Constants::G_WINDOW_VIEWS);
|
||||||
m_toggleSideBarAction->setEnabled(false);
|
m_toggleSideBarAction->setEnabled(false);
|
||||||
|
|
||||||
|
// Show Mode Selector Action
|
||||||
|
m_toggleModeSelectorAction = new QAction(tr("Show Mode Selector"), this);
|
||||||
|
m_toggleModeSelectorAction->setCheckable(true);
|
||||||
|
cmd = ActionManager::registerAction(m_toggleModeSelectorAction, Constants::TOGGLE_MODE_SELECTOR, globalContext);
|
||||||
|
connect(m_toggleModeSelectorAction, SIGNAL(triggered(bool)), ModeManager::instance(), SLOT(setModeSelectorVisible(bool)));
|
||||||
|
mwindow->addAction(cmd, Constants::G_WINDOW_VIEWS);
|
||||||
|
|
||||||
#if defined(Q_OS_MAC)
|
#if defined(Q_OS_MAC)
|
||||||
const QString fullScreenActionText(tr("Enter Full Screen"));
|
const QString fullScreenActionText(tr("Enter Full Screen"));
|
||||||
@@ -1169,6 +1176,7 @@ static const char settingsGroup[] = "MainWindow";
|
|||||||
static const char colorKey[] = "Color";
|
static const char colorKey[] = "Color";
|
||||||
static const char windowGeometryKey[] = "WindowGeometry";
|
static const char windowGeometryKey[] = "WindowGeometry";
|
||||||
static const char windowStateKey[] = "WindowState";
|
static const char windowStateKey[] = "WindowState";
|
||||||
|
static const char modeSelectorVisibleKey[] = "ModeSelectorVisible";
|
||||||
|
|
||||||
void MainWindow::readSettings()
|
void MainWindow::readSettings()
|
||||||
{
|
{
|
||||||
@@ -1188,6 +1196,10 @@ void MainWindow::readSettings()
|
|||||||
resize(1008, 700); // size without window decoration
|
resize(1008, 700); // size without window decoration
|
||||||
restoreState(m_settings->value(QLatin1String(windowStateKey)).toByteArray());
|
restoreState(m_settings->value(QLatin1String(windowStateKey)).toByteArray());
|
||||||
|
|
||||||
|
bool modeSelectorVisible = m_settings->value(QLatin1String(modeSelectorVisibleKey), true).toBool();
|
||||||
|
ModeManager::instance()->setModeSelectorVisible(modeSelectorVisible);
|
||||||
|
m_toggleModeSelectorAction->setChecked(modeSelectorVisible);
|
||||||
|
|
||||||
m_settings->endGroup();
|
m_settings->endGroup();
|
||||||
|
|
||||||
m_editorManager->readSettings();
|
m_editorManager->readSettings();
|
||||||
@@ -1204,6 +1216,7 @@ void MainWindow::writeSettings()
|
|||||||
|
|
||||||
m_settings->setValue(QLatin1String(windowGeometryKey), saveGeometry());
|
m_settings->setValue(QLatin1String(windowGeometryKey), saveGeometry());
|
||||||
m_settings->setValue(QLatin1String(windowStateKey), saveState());
|
m_settings->setValue(QLatin1String(windowStateKey), saveState());
|
||||||
|
m_settings->setValue(QLatin1String(modeSelectorVisibleKey), ModeManager::isModeSelectorVisible());
|
||||||
|
|
||||||
m_settings->endGroup();
|
m_settings->endGroup();
|
||||||
|
|
||||||
|
|||||||
@@ -216,6 +216,7 @@ private:
|
|||||||
QAction *m_exitAction;
|
QAction *m_exitAction;
|
||||||
QAction *m_optionsAction;
|
QAction *m_optionsAction;
|
||||||
QAction *m_toggleSideBarAction;
|
QAction *m_toggleSideBarAction;
|
||||||
|
QAction *m_toggleModeSelectorAction;
|
||||||
QAction *m_toggleFullScreenAction;
|
QAction *m_toggleFullScreenAction;
|
||||||
QAction *m_minimizeAction;
|
QAction *m_minimizeAction;
|
||||||
QAction *m_zoomAction;
|
QAction *m_zoomAction;
|
||||||
|
|||||||
@@ -337,9 +337,14 @@ void ModeManager::setFocusToCurrentMode()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModeManager::setModeBarHidden(bool hidden)
|
void ModeManager::setModeSelectorVisible(bool visible)
|
||||||
{
|
{
|
||||||
d->m_modeStack->setSelectionWidgetHidden(hidden);
|
d->m_modeStack->setSelectionWidgetVisible(visible);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ModeManager::isModeSelectorVisible()
|
||||||
|
{
|
||||||
|
return d->m_modeStack->isSelectionWidgetVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
ModeManager *ModeManager::instance()
|
ModeManager *ModeManager::instance()
|
||||||
|
|||||||
@@ -66,9 +66,12 @@ public:
|
|||||||
static void addWidget(QWidget *widget);
|
static void addWidget(QWidget *widget);
|
||||||
|
|
||||||
static void activateModeType(Id type);
|
static void activateModeType(Id type);
|
||||||
static void setModeBarHidden(bool hidden);
|
|
||||||
static void activateMode(Id id);
|
static void activateMode(Id id);
|
||||||
static void setFocusToCurrentMode();
|
static void setFocusToCurrentMode();
|
||||||
|
static bool isModeSelectorVisible();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void setModeSelectorVisible(bool visible);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void currentModeAboutToChange(Core::IMode *mode);
|
void currentModeAboutToChange(Core::IMode *mode);
|
||||||
|
|||||||
Reference in New Issue
Block a user