From dd731a89983a1121072a76a0164bda961dda1f8f Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 22 Mar 2013 14:11:19 +0100 Subject: [PATCH] Add right aligned location for widget in status bar. Change-Id: I7ff41fc891836d15b2b9b6bf090feaf2e4feb968 Reviewed-by: Erik Verbruggen --- src/plugins/coreplugin/statusbarmanager.cpp | 22 +++++++++++++++------ src/plugins/coreplugin/statusbarwidget.h | 2 +- src/plugins/fakevim/fakevimplugin.cpp | 2 +- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/plugins/coreplugin/statusbarmanager.cpp b/src/plugins/coreplugin/statusbarmanager.cpp index 553d3f8f39f..afa48619c0a 100644 --- a/src/plugins/coreplugin/statusbarmanager.cpp +++ b/src/plugins/coreplugin/statusbarmanager.cpp @@ -41,20 +41,30 @@ using namespace Core; using namespace Core::Internal; +static QWidget *createWidget() +{ + QWidget *w = new QWidget(); + w->setLayout(new QHBoxLayout); + w->setVisible(true); + w->layout()->setMargin(0); + return w; +} + StatusBarManager::StatusBarManager(MainWindow *mainWnd) : QObject(mainWnd), m_mainWnd(mainWnd) { - for (int i = 0; i <= StatusBarWidget::Last; ++i) { - QWidget *w = new QWidget(); + for (int i = 0; i <= StatusBarWidget::LastLeftAligned; ++i) { + QWidget *w = createWidget(); m_mainWnd->statusBar()->insertPermanentWidget(i, w); - w->setLayout(new QHBoxLayout); - w->setVisible(true); - w->layout()->setMargin(0); m_statusBarWidgets.append(w); } - m_mainWnd->statusBar()->insertPermanentWidget(StatusBarWidget::Last+1, + m_mainWnd->statusBar()->insertPermanentWidget(StatusBarWidget::LastLeftAligned + 1, new QLabel(), 1); + QWidget *rightCornerWidget = createWidget(); + m_mainWnd->statusBar()->insertPermanentWidget(StatusBarWidget::LastLeftAligned + 2, + rightCornerWidget); + m_statusBarWidgets.append(rightCornerWidget); } StatusBarManager::~StatusBarManager() diff --git a/src/plugins/coreplugin/statusbarwidget.h b/src/plugins/coreplugin/statusbarwidget.h index 481355e1671..9449c79eb7b 100644 --- a/src/plugins/coreplugin/statusbarwidget.h +++ b/src/plugins/coreplugin/statusbarwidget.h @@ -40,7 +40,7 @@ class CORE_EXPORT StatusBarWidget : public IContext Q_OBJECT public: - enum StatusBarPosition { First=0, Second=1, Third=2, Last=Third }; + enum StatusBarPosition { First=0, Second=1, Third=2, LastLeftAligned=Third, RightCorner}; StatusBarWidget(QObject *parent = 0); ~StatusBarWidget(); diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index a8e8ff13862..c2d1c507e5f 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -2051,7 +2051,7 @@ void FakeVimPlugin::extensionsInitialized() { d->m_statusBar = new StatusBarWidget; d->m_statusBar->setWidget(new MiniBuffer); - d->m_statusBar->setPosition(StatusBarWidget::Last); + d->m_statusBar->setPosition(StatusBarWidget::LastLeftAligned); addAutoReleasedObject(d->m_statusBar); }