From 436b60700ff50f4d268733ff025f2e5267a30986 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 3 Jun 2016 01:19:19 +0200 Subject: [PATCH] refs #512, added settings to dock widget for testing --- src/blackgui/dockwidget.cpp | 26 ++++++++++++++++++++++++++ src/blackgui/dockwidget.h | 12 +++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/blackgui/dockwidget.cpp b/src/blackgui/dockwidget.cpp index 6b8e96df1..083378eb7 100644 --- a/src/blackgui/dockwidget.cpp +++ b/src/blackgui/dockwidget.cpp @@ -541,4 +541,30 @@ namespace BlackGui this->setStyleSheet(qss); } + QString CDockWidget::getNameForSettings() const + { + return this->m_windowTitleBackup.toLower().remove(' '); // let`s see how far I get with that + } + + CSettingsDockWidget CDockWidget::getSettings() const + { + const CSettingsDockWidgets all = this->m_settings.getCopy(); + const QString name(this->getNameForSettings()); + const CSettingsDockWidget s = all.value(name); + return s; + } + + void CDockWidget::setSettings(const CSettingsDockWidget &settings) + { + const CSettingsDockWidget current = getSettings(); + if (current == settings) { return; } + CSettingsDockWidgets all = this->m_settings.getCopy(); + const QString name(this->getNameForSettings()); + all.insert(name, settings); + const CStatusMessage m = this->m_settings.setAndSave(all); + if (m.isFailure()) + { + CLogMessage::preformatted(m); + } + } } // namespace diff --git a/src/blackgui/dockwidget.h b/src/blackgui/dockwidget.h index 22bea13f6..11a46f90f 100644 --- a/src/blackgui/dockwidget.h +++ b/src/blackgui/dockwidget.h @@ -15,6 +15,7 @@ #include "blackgui/blackguiexport.h" #include "blackgui/enableforframelesswindow.h" #include "blackgui/managedstatusbar.h" +#include "blackgui/settings/settingsdockwidget.h" #include "blackmisc/statusmessage.h" #include "blackmisc/statusmessagelist.h" @@ -215,6 +216,7 @@ namespace BlackGui bool m_selected = false; //!< selected when tabbed bool m_dockWidgetVisible = false; //!< logical visible, not to be confused with QDockWidget::isVisible() bool m_wasFrameless = false; //!< frameless when last floating + BlackMisc::CSetting m_settings { this, &CDockWidget::ps_settingsChanged }; //! Empty widget with no size void initTitleBarWidgets(); @@ -224,8 +226,16 @@ namespace BlackGui //! Force a style sheet update void forceStyleSheetUpdate(); - }; + //! Name used as key for settings + QString getNameForSettings() const; + + //! This widget`s settings + BlackGui::Settings::CSettingsDockWidget getSettings() const; + + //! Save my updated settings + void setAndSaveSettings(const BlackGui::Settings::CSettingsDockWidget &settings); + }; } // namespace #endif // guard