Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.82 KB | None | 0 0
  1. diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp
  2. index fa3c0b0..d299999 100644
  3. --- a/src/libs/utils/fancymainwindow.cpp
  4. +++ b/src/libs/utils/fancymainwindow.cpp
  5. @@ -45,13 +45,13 @@
  6. static const char lockedKeyC[] = "Locked";
  7. static const char stateKeyC[] = "State";
  8. static const int settingsVersion = 2;
  9. +static const char dockWidgetActiveState[] = "DockWidgetActiveState";
  10.  
  11. namespace Utils {
  12.  
  13. struct FancyMainWindowPrivate {
  14. explicit FancyMainWindowPrivate(FancyMainWindow *q);
  15.  
  16. - QMap<QDockWidget *, bool> m_dockWidgetActiveState;
  17. bool m_locked;
  18. bool m_handleDockVisibilityChanges; //todo
  19.  
  20. @@ -107,7 +107,7 @@ QDockWidget *FancyMainWindow::addDockForWidget(QWidget *widget)
  21. this, SLOT(onDockVisibilityChange(bool)));
  22. connect(dockWidget, SIGNAL(topLevelChanged(bool)),
  23. this, SLOT(onTopLevelChanged()));
  24. - d->m_dockWidgetActiveState[dockWidget] = true;
  25. + dockWidget->setProperty(dockWidgetActiveState, true);
  26. updateDockWidget(dockWidget);
  27. return dockWidget;
  28. }
  29. @@ -139,10 +139,8 @@ void FancyMainWindow::onDockActionTriggered()
  30.  
  31. void FancyMainWindow::onDockVisibilityChange(bool visible)
  32. {
  33. - if (!d->m_handleDockVisibilityChanges)
  34. - return;
  35. - QDockWidget *dockWidget = qobject_cast<QDockWidget *>(sender());
  36. - d->m_dockWidgetActiveState[dockWidget] = visible;
  37. + if (d->m_handleDockVisibilityChanges)
  38. + sender()->setProperty(dockWidgetActiveState, visible);
  39. }
  40.  
  41. void FancyMainWindow::onTopLevelChanged()
  42. @@ -154,8 +152,8 @@ void FancyMainWindow::setTrackingEnabled(bool enabled)
  43. {
  44. if (enabled) {
  45. d->m_handleDockVisibilityChanges = true;
  46. - foreach(QDockWidget *dockWidget, dockWidgets())
  47. - d->m_dockWidgetActiveState[dockWidget] = dockWidget->isVisible();
  48. + foreach (QDockWidget *dockWidget, dockWidgets())
  49. + dockWidget->setProperty(dockWidgetActiveState, dockWidget->isVisible());
  50. } else {
  51. d->m_handleDockVisibilityChanges = false;
  52. }
  53. @@ -191,9 +189,10 @@ void FancyMainWindow::contextMenuEvent(QContextMenuEvent *event)
  54. void FancyMainWindow::handleVisibilityChanged(bool visible)
  55. {
  56. d->m_handleDockVisibilityChanges = false;
  57. - foreach(QDockWidget *dockWidget, dockWidgets()) {
  58. + foreach (QDockWidget *dockWidget, dockWidgets()) {
  59. if (dockWidget->isFloating()) {
  60. - dockWidget->setVisible(visible && d->m_dockWidgetActiveState.value(dockWidget));
  61. + dockWidget->setVisible(visible
  62. + && dockWidget->property(dockWidgetActiveState).toBool());
  63. }
  64. }
  65. if (visible)
  66. @@ -224,9 +223,9 @@ QHash<QString, QVariant> FancyMainWindow::saveSettings() const
  67. QHash<QString, QVariant> settings;
  68. settings.insert(QLatin1String(stateKeyC), saveState(settingsVersion));
  69. settings.insert(QLatin1String(lockedKeyC), d->m_locked);
  70. - foreach(QDockWidget *dockWidget, dockWidgets()) {
  71. + foreach (QDockWidget *dockWidget, dockWidgets()) {
  72. settings.insert(dockWidget->objectName(),
  73. - d->m_dockWidgetActiveState.value(dockWidget));
  74. + dockWidget->property(dockWidgetActiveState));
  75. }
  76. return settings;
  77. }
  78. @@ -238,8 +237,9 @@ void FancyMainWindow::restoreSettings(const QHash<QString, QVariant> &settings)
  79. restoreState(ba, settingsVersion);
  80. d->m_locked = settings.value(QLatin1String("Locked"), true).toBool();
  81. d->m_toggleLockedAction->setChecked(d->m_locked);
  82. - foreach(QDockWidget *widget, dockWidgets()) {
  83. - d->m_dockWidgetActiveState[widget] = settings.value(widget->objectName(), false).toBool();
  84. + foreach (QDockWidget *widget, dockWidgets()) {
  85. + widget->setProperty(dockWidgetActiveState,
  86. + settings.value(widget->objectName(), false));
  87. }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement