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>
This commit is contained in:
Eike Ziller
2013-04-11 12:22:10 +02:00
parent f7612278b2
commit bde0627e59
7 changed files with 50 additions and 17 deletions

View File

@@ -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";

View File

@@ -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,6 +462,7 @@ void FancyTabWidget::setBackgroundBrush(const QBrush &brush)
void FancyTabWidget::paintEvent(QPaintEvent *event) void FancyTabWidget::paintEvent(QPaintEvent *event)
{ {
Q_UNUSED(event) Q_UNUSED(event)
if (m_selectionWidget->isVisible()) {
QPainter painter(this); QPainter painter(this);
QRect rect = m_selectionWidget->rect().adjusted(0, 0, 1, 0); QRect rect = m_selectionWidget->rect().adjusted(0, 0, 1, 0);
@@ -468,6 +475,7 @@ void FancyTabWidget::paintEvent(QPaintEvent *event)
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)
{ {

View File

@@ -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);

View File

@@ -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();

View File

@@ -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;

View File

@@ -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()

View File

@@ -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);