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 <eike.ziller@qt.io>
This commit is contained in:
hjk
2018-01-24 12:42:50 +01:00
parent 0448457fde
commit 1963122dcd
3 changed files with 9 additions and 20 deletions

View File

@@ -176,7 +176,7 @@ MainWindow::MainWindow() :
m_rightNavigationWidget = new NavigationWidget(m_toggleRightSideBarAction, Side::Right); m_rightNavigationWidget = new NavigationWidget(m_toggleRightSideBarAction, Side::Right);
m_rightPaneWidget = new RightPaneWidget(); m_rightPaneWidget = new RightPaneWidget();
m_statusBarManager = new StatusBarManager(this); m_statusBarManager = new StatusBarManager;
m_messageManager = new MessageManager; m_messageManager = new MessageManager;
m_editorManager = new EditorManager(this); m_editorManager = new EditorManager(this);
m_externalToolManager = new ExternalToolManager(); m_externalToolManager = new ExternalToolManager();
@@ -336,7 +336,6 @@ void MainWindow::extensionsInitialized()
MimeTypeSettings::restoreSettings(); MimeTypeSettings::restoreSettings();
m_windowSupport = new WindowSupport(this, Context("Core.MainWindow")); m_windowSupport = new WindowSupport(this, Context("Core.MainWindow"));
m_windowSupport->setCloseActionEnabled(false); m_windowSupport->setCloseActionEnabled(false);
m_statusBarManager->extensionsInitalized();
OutputPaneManager::instance()->init(); OutputPaneManager::instance()->init();
m_vcsManager->extensionsInitialized(); m_vcsManager->extensionsInitialized();
m_leftNavigationWidget->setFactories(INavigationWidgetFactory::allNavigationFactories()); m_leftNavigationWidget->setFactories(INavigationWidgetFactory::allNavigationFactories());

View File

@@ -43,7 +43,7 @@ static const char kLeftSplitWidthKey[] = "LeftSplitWidth";
using namespace Core; using namespace Core;
using namespace Core::Internal; using namespace Core::Internal;
static QWidget *createWidget(QWidget *parent = 0) static QWidget *createWidget(QWidget *parent)
{ {
QWidget *w = new QWidget(parent); QWidget *w = new QWidget(parent);
w->setLayout(new QHBoxLayout); w->setLayout(new QHBoxLayout);
@@ -52,11 +52,10 @@ static QWidget *createWidget(QWidget *parent = 0)
return w; return w;
} }
StatusBarManager::StatusBarManager(MainWindow *mainWnd) StatusBarManager::StatusBarManager()
: QObject(mainWnd),
m_mainWnd(mainWnd)
{ {
QStatusBar *bar = m_mainWnd->statusBar(); QStatusBar *bar = ICore::statusBar();
m_splitter = new NonResizingSplitter(bar); m_splitter = new NonResizingSplitter(bar);
bar->insertPermanentWidget(0, m_splitter, 10); bar->insertPermanentWidget(0, m_splitter, 10);
m_splitter->setChildrenCollapsible(false); m_splitter->setChildrenCollapsible(false);
@@ -104,11 +103,10 @@ void StatusBarManager::objectAdded(QObject *obj)
if (!view) if (!view)
return; return;
QWidget *viewWidget = 0; QWidget *viewWidget = view->widget();
viewWidget = view->widget();
m_statusBarWidgets.at(view->position())->layout()->addWidget(viewWidget); m_statusBarWidgets.at(view->position())->layout()->addWidget(viewWidget);
m_mainWnd->addContextObject(view); ICore::addContextObject(view);
} }
void StatusBarManager::aboutToRemoveObject(QObject *obj) void StatusBarManager::aboutToRemoveObject(QObject *obj)
@@ -116,7 +114,7 @@ void StatusBarManager::aboutToRemoveObject(QObject *obj)
StatusBarWidget *view = qobject_cast<StatusBarWidget *>(obj); StatusBarWidget *view = qobject_cast<StatusBarWidget *>(obj);
if (!view) if (!view)
return; return;
m_mainWnd->removeContextObject(view); ICore::removeContextObject(view);
} }
void StatusBarManager::saveSettings() void StatusBarManager::saveSettings()
@@ -127,10 +125,6 @@ void StatusBarManager::saveSettings()
s->endGroup(); s->endGroup();
} }
void StatusBarManager::extensionsInitalized()
{
}
void StatusBarManager::restoreSettings() void StatusBarManager::restoreSettings()
{ {
QSettings *s = ICore::settings(); QSettings *s = ICore::settings();

View File

@@ -36,18 +36,15 @@ QT_END_NAMESPACE
namespace Core { namespace Core {
namespace Internal { namespace Internal {
class MainWindow;
class StatusBarManager : public QObject class StatusBarManager : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
StatusBarManager(MainWindow *mainWnd); StatusBarManager();
~StatusBarManager(); ~StatusBarManager();
void init(); void init();
void extensionsInitalized();
void restoreSettings(); void restoreSettings();
private: private:
@@ -55,7 +52,6 @@ private:
void aboutToRemoveObject(QObject *obj); void aboutToRemoveObject(QObject *obj);
void saveSettings(); void saveSettings();
MainWindow *m_mainWnd;
QSplitter *m_splitter; QSplitter *m_splitter;
QList<QWidget *> m_statusBarWidgets; QList<QWidget *> m_statusBarWidgets;
}; };