forked from qt-creator/qt-creator
fancymainwindow: remove m_dockWidgets member
Use QMainWindow::dockWidgets() instead. Done by Milian Wolff
This commit is contained in:
@@ -51,8 +51,7 @@ namespace Utils {
|
|||||||
struct FancyMainWindowPrivate {
|
struct FancyMainWindowPrivate {
|
||||||
explicit FancyMainWindowPrivate(FancyMainWindow *q);
|
explicit FancyMainWindowPrivate(FancyMainWindow *q);
|
||||||
|
|
||||||
QList<QDockWidget *> m_dockWidgets;
|
QMap<QDockWidget *, bool> m_dockWidgetActiveState;
|
||||||
QList<bool> m_dockWidgetActiveState;
|
|
||||||
bool m_locked;
|
bool m_locked;
|
||||||
bool m_handleDockVisibilityChanges; //todo
|
bool m_handleDockVisibilityChanges; //todo
|
||||||
|
|
||||||
@@ -98,7 +97,7 @@ QDockWidget *FancyMainWindow::addDockForWidget(QWidget *widget)
|
|||||||
// Set an object name to be used in settings, derive from widget name
|
// Set an object name to be used in settings, derive from widget name
|
||||||
const QString objectName = widget->objectName();
|
const QString objectName = widget->objectName();
|
||||||
if (objectName.isEmpty()) {
|
if (objectName.isEmpty()) {
|
||||||
dockWidget->setObjectName(QLatin1String("dockWidget") + QString::number(d->m_dockWidgets.size() + 1));
|
dockWidget->setObjectName(QLatin1String("dockWidget") + QString::number(dockWidgets().size() + 1));
|
||||||
} else {
|
} else {
|
||||||
dockWidget->setObjectName(objectName + QLatin1String("DockWidget"));
|
dockWidget->setObjectName(objectName + QLatin1String("DockWidget"));
|
||||||
}
|
}
|
||||||
@@ -108,8 +107,7 @@ QDockWidget *FancyMainWindow::addDockForWidget(QWidget *widget)
|
|||||||
this, SLOT(onDockVisibilityChange(bool)));
|
this, SLOT(onDockVisibilityChange(bool)));
|
||||||
connect(dockWidget, SIGNAL(topLevelChanged(bool)),
|
connect(dockWidget, SIGNAL(topLevelChanged(bool)),
|
||||||
this, SLOT(onTopLevelChanged()));
|
this, SLOT(onTopLevelChanged()));
|
||||||
d->m_dockWidgets.append(dockWidget);
|
d->m_dockWidgetActiveState[dockWidget] = true;
|
||||||
d->m_dockWidgetActiveState.append(true);
|
|
||||||
updateDockWidget(dockWidget);
|
updateDockWidget(dockWidget);
|
||||||
return dockWidget;
|
return dockWidget;
|
||||||
}
|
}
|
||||||
@@ -144,8 +142,7 @@ void FancyMainWindow::onDockVisibilityChange(bool visible)
|
|||||||
if (!d->m_handleDockVisibilityChanges)
|
if (!d->m_handleDockVisibilityChanges)
|
||||||
return;
|
return;
|
||||||
QDockWidget *dockWidget = qobject_cast<QDockWidget *>(sender());
|
QDockWidget *dockWidget = qobject_cast<QDockWidget *>(sender());
|
||||||
int index = d->m_dockWidgets.indexOf(dockWidget);
|
d->m_dockWidgetActiveState[dockWidget] = visible;
|
||||||
d->m_dockWidgetActiveState[index] = visible;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FancyMainWindow::onTopLevelChanged()
|
void FancyMainWindow::onTopLevelChanged()
|
||||||
@@ -157,8 +154,8 @@ void FancyMainWindow::setTrackingEnabled(bool enabled)
|
|||||||
{
|
{
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
d->m_handleDockVisibilityChanges = true;
|
d->m_handleDockVisibilityChanges = true;
|
||||||
for (int i = 0; i < d->m_dockWidgets.size(); ++i)
|
foreach(QDockWidget *dockWidget, dockWidgets())
|
||||||
d->m_dockWidgetActiveState[i] = d->m_dockWidgets[i]->isVisible();
|
d->m_dockWidgetActiveState[dockWidget] = dockWidget->isVisible();
|
||||||
} else {
|
} else {
|
||||||
d->m_handleDockVisibilityChanges = false;
|
d->m_handleDockVisibilityChanges = false;
|
||||||
}
|
}
|
||||||
@@ -167,7 +164,7 @@ void FancyMainWindow::setTrackingEnabled(bool enabled)
|
|||||||
void FancyMainWindow::setLocked(bool locked)
|
void FancyMainWindow::setLocked(bool locked)
|
||||||
{
|
{
|
||||||
d->m_locked = locked;
|
d->m_locked = locked;
|
||||||
foreach (QDockWidget *dockWidget, d->m_dockWidgets) {
|
foreach (QDockWidget *dockWidget, dockWidgets()) {
|
||||||
updateDockWidget(dockWidget);
|
updateDockWidget(dockWidget);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -194,10 +191,9 @@ void FancyMainWindow::contextMenuEvent(QContextMenuEvent *event)
|
|||||||
void FancyMainWindow::handleVisibilityChanged(bool visible)
|
void FancyMainWindow::handleVisibilityChanged(bool visible)
|
||||||
{
|
{
|
||||||
d->m_handleDockVisibilityChanges = false;
|
d->m_handleDockVisibilityChanges = false;
|
||||||
for (int i = 0; i < d->m_dockWidgets.size(); ++i) {
|
foreach(QDockWidget *dockWidget, dockWidgets()) {
|
||||||
QDockWidget *dockWidget = d->m_dockWidgets.at(i);
|
|
||||||
if (dockWidget->isFloating()) {
|
if (dockWidget->isFloating()) {
|
||||||
dockWidget->setVisible(visible && d->m_dockWidgetActiveState.at(i));
|
dockWidget->setVisible(visible && d->m_dockWidgetActiveState.value(dockWidget));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (visible)
|
if (visible)
|
||||||
@@ -228,9 +224,9 @@ QHash<QString, QVariant> FancyMainWindow::saveSettings() const
|
|||||||
QHash<QString, QVariant> settings;
|
QHash<QString, QVariant> settings;
|
||||||
settings.insert(QLatin1String(stateKeyC), saveState(settingsVersion));
|
settings.insert(QLatin1String(stateKeyC), saveState(settingsVersion));
|
||||||
settings.insert(QLatin1String(lockedKeyC), d->m_locked);
|
settings.insert(QLatin1String(lockedKeyC), d->m_locked);
|
||||||
for (int i = 0; i < d->m_dockWidgetActiveState.count(); ++i) {
|
foreach(QDockWidget *dockWidget, dockWidgets()) {
|
||||||
settings.insert(d->m_dockWidgets.at(i)->objectName(),
|
settings.insert(dockWidget->objectName(),
|
||||||
d->m_dockWidgetActiveState.at(i));
|
d->m_dockWidgetActiveState.value(dockWidget));
|
||||||
}
|
}
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
@@ -242,14 +238,14 @@ void FancyMainWindow::restoreSettings(const QHash<QString, QVariant> &settings)
|
|||||||
restoreState(ba, settingsVersion);
|
restoreState(ba, settingsVersion);
|
||||||
d->m_locked = settings.value(QLatin1String("Locked"), true).toBool();
|
d->m_locked = settings.value(QLatin1String("Locked"), true).toBool();
|
||||||
d->m_toggleLockedAction->setChecked(d->m_locked);
|
d->m_toggleLockedAction->setChecked(d->m_locked);
|
||||||
for (int i = 0; i < d->m_dockWidgetActiveState.count(); ++i) {
|
foreach(QDockWidget *widget, dockWidgets()) {
|
||||||
d->m_dockWidgetActiveState[i] = settings.value(d->m_dockWidgets.at(i)->objectName(), false).toBool();
|
d->m_dockWidgetActiveState[widget] = settings.value(widget->objectName(), false).toBool();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QDockWidget *> FancyMainWindow::dockWidgets() const
|
QList<QDockWidget *> FancyMainWindow::dockWidgets() const
|
||||||
{
|
{
|
||||||
return d->m_dockWidgets;
|
return qFindChildren<QDockWidget *>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FancyMainWindow::isLocked() const
|
bool FancyMainWindow::isLocked() const
|
||||||
@@ -289,7 +285,7 @@ QAction *FancyMainWindow::resetLayoutAction() const
|
|||||||
|
|
||||||
void FancyMainWindow::setDockActionsVisible(bool v)
|
void FancyMainWindow::setDockActionsVisible(bool v)
|
||||||
{
|
{
|
||||||
foreach(const QDockWidget *dockWidget, d->m_dockWidgets)
|
foreach(const QDockWidget *dockWidget, dockWidgets())
|
||||||
dockWidget->toggleViewAction()->setVisible(v);
|
dockWidget->toggleViewAction()->setVisible(v);
|
||||||
d->m_toggleLockedAction->setVisible(v);
|
d->m_toggleLockedAction->setVisible(v);
|
||||||
d->m_menuSeparator1->setVisible(v);
|
d->m_menuSeparator1->setVisible(v);
|
||||||
|
|||||||
Reference in New Issue
Block a user