From 3212e1152ceee303344b8ecd4d54372ba6ee0f98 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 7 Feb 2011 15:17:30 +0100 Subject: fancymainwaindow: replace m_dockWidgetActiveState by dynamic property --- src/libs/utils/fancymainwindow.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'src/libs/utils/fancymainwindow.cpp') diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp index fa3c0b0475..d299999dc0 100644 --- a/src/libs/utils/fancymainwindow.cpp +++ b/src/libs/utils/fancymainwindow.cpp @@ -45,13 +45,13 @@ static const char lockedKeyC[] = "Locked"; static const char stateKeyC[] = "State"; static const int settingsVersion = 2; +static const char dockWidgetActiveState[] = "DockWidgetActiveState"; namespace Utils { struct FancyMainWindowPrivate { explicit FancyMainWindowPrivate(FancyMainWindow *q); - QMap m_dockWidgetActiveState; bool m_locked; bool m_handleDockVisibilityChanges; //todo @@ -107,7 +107,7 @@ QDockWidget *FancyMainWindow::addDockForWidget(QWidget *widget) this, SLOT(onDockVisibilityChange(bool))); connect(dockWidget, SIGNAL(topLevelChanged(bool)), this, SLOT(onTopLevelChanged())); - d->m_dockWidgetActiveState[dockWidget] = true; + dockWidget->setProperty(dockWidgetActiveState, true); updateDockWidget(dockWidget); return dockWidget; } @@ -139,10 +139,8 @@ void FancyMainWindow::onDockActionTriggered() void FancyMainWindow::onDockVisibilityChange(bool visible) { - if (!d->m_handleDockVisibilityChanges) - return; - QDockWidget *dockWidget = qobject_cast(sender()); - d->m_dockWidgetActiveState[dockWidget] = visible; + if (d->m_handleDockVisibilityChanges) + sender()->setProperty(dockWidgetActiveState, visible); } void FancyMainWindow::onTopLevelChanged() @@ -154,8 +152,8 @@ void FancyMainWindow::setTrackingEnabled(bool enabled) { if (enabled) { d->m_handleDockVisibilityChanges = true; - foreach(QDockWidget *dockWidget, dockWidgets()) - d->m_dockWidgetActiveState[dockWidget] = dockWidget->isVisible(); + foreach (QDockWidget *dockWidget, dockWidgets()) + dockWidget->setProperty(dockWidgetActiveState, dockWidget->isVisible()); } else { d->m_handleDockVisibilityChanges = false; } @@ -191,9 +189,10 @@ void FancyMainWindow::contextMenuEvent(QContextMenuEvent *event) void FancyMainWindow::handleVisibilityChanged(bool visible) { d->m_handleDockVisibilityChanges = false; - foreach(QDockWidget *dockWidget, dockWidgets()) { + foreach (QDockWidget *dockWidget, dockWidgets()) { if (dockWidget->isFloating()) { - dockWidget->setVisible(visible && d->m_dockWidgetActiveState.value(dockWidget)); + dockWidget->setVisible(visible + && dockWidget->property(dockWidgetActiveState).toBool()); } } if (visible) @@ -224,9 +223,9 @@ QHash FancyMainWindow::saveSettings() const QHash settings; settings.insert(QLatin1String(stateKeyC), saveState(settingsVersion)); settings.insert(QLatin1String(lockedKeyC), d->m_locked); - foreach(QDockWidget *dockWidget, dockWidgets()) { + foreach (QDockWidget *dockWidget, dockWidgets()) { settings.insert(dockWidget->objectName(), - d->m_dockWidgetActiveState.value(dockWidget)); + dockWidget->property(dockWidgetActiveState)); } return settings; } @@ -238,8 +237,9 @@ void FancyMainWindow::restoreSettings(const QHash &settings) restoreState(ba, settingsVersion); d->m_locked = settings.value(QLatin1String("Locked"), true).toBool(); d->m_toggleLockedAction->setChecked(d->m_locked); - foreach(QDockWidget *widget, dockWidgets()) { - d->m_dockWidgetActiveState[widget] = settings.value(widget->objectName(), false).toBool(); + foreach (QDockWidget *widget, dockWidgets()) { + widget->setProperty(dockWidgetActiveState, + settings.value(widget->objectName(), false)); } } -- cgit v1.2.1