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

View File

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

View File

@@ -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<QWidget *> m_statusBarWidgets;
};