From e338dd991d4e95f5e2f4e5f0dde4215c52dca4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=8B=D1=87=D0=BA=D0=BE=D0=B2=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9?= Date: Tue, 7 Jun 2016 11:05:40 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@93 a8b55f48-bf90-11e4-a774-851b48703e85 --- qad_utils/session_manager.cpp | 12 ++++++++++++ qad_utils/session_manager.h | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/qad_utils/session_manager.cpp b/qad_utils/session_manager.cpp index 89e4cf5..c621c7b 100644 --- a/qad_utils/session_manager.cpp +++ b/qad_utils/session_manager.cpp @@ -30,6 +30,10 @@ void SessionManager::save() { foreach (QSplitter * s, sp) sr.setValue(mwindows[i].first + " splitter " + s->objectName(), s->saveState(), false); } + for (int i = 0; i < widgets.size(); ++i) { + sr.setValue(widgets[i].first + " geometry " + QString::number((int)widgets[i].second->windowState()), widgets[i].second->saveGeometry(), false); + sr.setValue(widgets[i].first + " window state", (int)widgets[i].second->windowState(), false); + } for (int i = 0; i < checks.size(); ++i) sr.setValue(checks[i].first, checks[i].second->isChecked(), false); for (int i = 0; i < lines.size(); ++i) @@ -40,6 +44,8 @@ void SessionManager::save() { sr.setValue(dspins[i].first, dspins[i].second->value(), false); for (int i = 0; i < spins.size(); ++i) sr.setValue(spins[i].first, spins[i].second->value(), false); + for (int i = 0; i < spinsliders.size(); ++i) + sr.setValue(spinsliders[i].first, spinsliders[i].second->value(), false); for (int i = 0; i < tabs.size(); ++i) sr.setValue(tabs[i].first, tabs[i].second->currentIndex(), false); for (int i = 0; i < actions.size(); ++i) @@ -72,6 +78,10 @@ void SessionManager::load(bool onlyMainwindow) { foreach (QSplitter * s, sp) s->restoreState(sr.getValue(mwindows[i].first + " splitter " + s->objectName(), QByteArray())); } + for (int i = 0; i < widgets.size(); ++i) { + widgets[i].second->restoreGeometry(sr.getValue(widgets[i].first + " geometry " + QString::number((int)widgets[i].second->windowState()), QByteArray())); + widgets[i].second->setWindowState((Qt::WindowState)(int)sr.getValue(widgets[i].first + " window state", 0)); + } if (onlyMainwindow) return; for (int i = 0; i < checks.size(); ++i) checks[i].second->setChecked(sr.getValue(checks[i].first, checks[i].second->isChecked())); @@ -83,6 +93,8 @@ void SessionManager::load(bool onlyMainwindow) { dspins[i].second->setValue(sr.getValue(dspins[i].first, dspins[i].second->value())); for (int i = 0; i < spins.size(); ++i) spins[i].second->setValue(sr.getValue(spins[i].first, spins[i].second->value())); + for (int i = 0; i < spinsliders.size(); ++i) + spinsliders[i].second->setValue(sr.getValue(spinsliders[i].first, spinsliders[i].second->value())); for (int i = 0; i < tabs.size(); ++i) tabs[i].second->setCurrentIndex(sr.getValue(tabs[i].first, tabs[i].second->currentIndex())); for (int i = 0; i < actions.size(); ++i) diff --git a/qad_utils/session_manager.h b/qad_utils/session_manager.h index f77ca9c..00dd3db 100644 --- a/qad_utils/session_manager.h +++ b/qad_utils/session_manager.h @@ -28,6 +28,7 @@ #include #include #include +#include "spinslider.h" #include "qpiconfig.h" class SessionManager: public QObject @@ -45,8 +46,10 @@ public: inline void addEntry(QComboBox * e) {combos.push_back(QPair(e->objectName(), e));} inline void addEntry(QDoubleSpinBox * e) {dspins.push_back(QPair(e->objectName(), e));} inline void addEntry(QSpinBox * e) {spins.push_back(QPair(e->objectName(), e));} + inline void addEntry(SpinSlider * e) {spinsliders.push_back(QPair(e->objectName(), e));} inline void addEntry(QTabWidget * e) {tabs.push_back(QPair(e->objectName(), e));} inline void addEntry(QAction * e) {actions.push_back(QPair(e->objectName(), e));} + inline void addMainWidget(QWidget * e) {widgets.push_back(QPair(e->objectName(), e));} inline void addEntry(const QString & name, QMainWindow * e) {mwindows.push_back(QPair(name, e));} inline void addEntry(const QString & name, QCheckBox * e) {checks.push_back(QPair(name, e));} @@ -54,6 +57,7 @@ public: inline void addEntry(const QString & name, QComboBox * e) {combos.push_back(QPair(name, e));} inline void addEntry(const QString & name, QDoubleSpinBox * e) {dspins.push_back(QPair(name, e));} inline void addEntry(const QString & name, QSpinBox * e) {spins.push_back(QPair(name, e));} + inline void addEntry(const QString & name, SpinSlider * e) {spinsliders.push_back(QPair(name, e));} inline void addEntry(const QString & name, QTabWidget * e) {tabs.push_back(QPair(name, e));} inline void addEntry(const QString & name, QAction * e) {actions.push_back(QPair(name, e));} inline void addEntry(const QString & name, QStringList * e) {stringlists.push_back(QPair(name, e));} @@ -62,17 +66,20 @@ public: inline void addEntry(const QString & name, bool * e) {bools.push_back(QPair(name, e));} inline void addEntry(const QString & name, int * e) {ints.push_back(QPair(name, e));} inline void addEntry(const QString & name, float * e) {floats.push_back(QPair(name, e));} + inline void addMainWidget(const QString & name, QWidget * e) {widgets.push_back(QPair(name, e));} void save(); void load(bool onlyMainwindow = false); private: QVector > mwindows; + QVector > widgets; QVector > checks; QVector > lines; QVector > combos; QVector > dspins; QVector > spins; + QVector > spinsliders; QVector > tabs; QVector > actions; QVector > stringlists;