From 1963122dcdcd9eddc23ab4dc6a190c94dbec0c80 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 24 Jan 2018 12:42:50 +0100 Subject: [PATCH] Core: Cut explicit interface between MainWindow and StatusBarManager Mechanical in preparation of 'static pattern' and avoiding the object pool objectAdded/objectAboutToBeRemoved use Change-Id: I1e3fc7f67c785410686d0dc7c083024e305f4abe Reviewed-by: Eike Ziller --- src/plugins/coreplugin/mainwindow.cpp | 3 +-- src/plugins/coreplugin/statusbarmanager.cpp | 20 +++++++------------- src/plugins/coreplugin/statusbarmanager.h | 6 +----- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 68a7831239e..4d8eaa8702a 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -176,7 +176,7 @@ MainWindow::MainWindow() : m_rightNavigationWidget = new NavigationWidget(m_toggleRightSideBarAction, Side::Right); m_rightPaneWidget = new RightPaneWidget(); - m_statusBarManager = new StatusBarManager(this); + m_statusBarManager = new StatusBarManager; m_messageManager = new MessageManager; m_editorManager = new EditorManager(this); m_externalToolManager = new ExternalToolManager(); @@ -336,7 +336,6 @@ void MainWindow::extensionsInitialized() MimeTypeSettings::restoreSettings(); m_windowSupport = new WindowSupport(this, Context("Core.MainWindow")); m_windowSupport->setCloseActionEnabled(false); - m_statusBarManager->extensionsInitalized(); OutputPaneManager::instance()->init(); m_vcsManager->extensionsInitialized(); m_leftNavigationWidget->setFactories(INavigationWidgetFactory::allNavigationFactories()); diff --git a/src/plugins/coreplugin/statusbarmanager.cpp b/src/plugins/coreplugin/statusbarmanager.cpp index dc807f0820a..07a4cf0a20d 100644 --- a/src/plugins/coreplugin/statusbarmanager.cpp +++ b/src/plugins/coreplugin/statusbarmanager.cpp @@ -43,7 +43,7 @@ static const char kLeftSplitWidthKey[] = "LeftSplitWidth"; using namespace Core; using namespace Core::Internal; -static QWidget *createWidget(QWidget *parent = 0) +static QWidget *createWidget(QWidget *parent) { QWidget *w = new QWidget(parent); w->setLayout(new QHBoxLayout); @@ -52,11 +52,10 @@ static QWidget *createWidget(QWidget *parent = 0) return w; } -StatusBarManager::StatusBarManager(MainWindow *mainWnd) - : QObject(mainWnd), - m_mainWnd(mainWnd) +StatusBarManager::StatusBarManager() { - QStatusBar *bar = m_mainWnd->statusBar(); + QStatusBar *bar = ICore::statusBar(); + m_splitter = new NonResizingSplitter(bar); bar->insertPermanentWidget(0, m_splitter, 10); m_splitter->setChildrenCollapsible(false); @@ -104,11 +103,10 @@ void StatusBarManager::objectAdded(QObject *obj) if (!view) return; - QWidget *viewWidget = 0; - viewWidget = view->widget(); + QWidget *viewWidget = view->widget(); m_statusBarWidgets.at(view->position())->layout()->addWidget(viewWidget); - m_mainWnd->addContextObject(view); + ICore::addContextObject(view); } void StatusBarManager::aboutToRemoveObject(QObject *obj) @@ -116,7 +114,7 @@ void StatusBarManager::aboutToRemoveObject(QObject *obj) StatusBarWidget *view = qobject_cast(obj); if (!view) return; - m_mainWnd->removeContextObject(view); + ICore::removeContextObject(view); } void StatusBarManager::saveSettings() @@ -127,10 +125,6 @@ void StatusBarManager::saveSettings() s->endGroup(); } -void StatusBarManager::extensionsInitalized() -{ -} - void StatusBarManager::restoreSettings() { QSettings *s = ICore::settings(); diff --git a/src/plugins/coreplugin/statusbarmanager.h b/src/plugins/coreplugin/statusbarmanager.h index e6275a04b78..3143dabd534 100644 --- a/src/plugins/coreplugin/statusbarmanager.h +++ b/src/plugins/coreplugin/statusbarmanager.h @@ -36,18 +36,15 @@ QT_END_NAMESPACE namespace Core { namespace Internal { -class MainWindow; - class StatusBarManager : public QObject { Q_OBJECT public: - StatusBarManager(MainWindow *mainWnd); + StatusBarManager(); ~StatusBarManager(); void init(); - void extensionsInitalized(); void restoreSettings(); private: @@ -55,7 +52,6 @@ private: void aboutToRemoveObject(QObject *obj); void saveSettings(); - MainWindow *m_mainWnd; QSplitter *m_splitter; QList m_statusBarWidgets; };