git-svn-id: svn://db.shs.com.ru/libs@93 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2016-06-07 11:05:40 +00:00
parent c87dc31406
commit e338dd991d
2 changed files with 19 additions and 0 deletions

View File

@@ -30,6 +30,10 @@ void SessionManager::save() {
foreach (QSplitter * s, sp) foreach (QSplitter * s, sp)
sr.setValue(mwindows[i].first + " splitter " + s->objectName(), s->saveState(), false); 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) for (int i = 0; i < checks.size(); ++i)
sr.setValue(checks[i].first, checks[i].second->isChecked(), false); sr.setValue(checks[i].first, checks[i].second->isChecked(), false);
for (int i = 0; i < lines.size(); ++i) 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); sr.setValue(dspins[i].first, dspins[i].second->value(), false);
for (int i = 0; i < spins.size(); ++i) for (int i = 0; i < spins.size(); ++i)
sr.setValue(spins[i].first, spins[i].second->value(), false); 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) for (int i = 0; i < tabs.size(); ++i)
sr.setValue(tabs[i].first, tabs[i].second->currentIndex(), false); sr.setValue(tabs[i].first, tabs[i].second->currentIndex(), false);
for (int i = 0; i < actions.size(); ++i) for (int i = 0; i < actions.size(); ++i)
@@ -72,6 +78,10 @@ void SessionManager::load(bool onlyMainwindow) {
foreach (QSplitter * s, sp) foreach (QSplitter * s, sp)
s->restoreState(sr.getValue(mwindows[i].first + " splitter " + s->objectName(), QByteArray())); 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; if (onlyMainwindow) return;
for (int i = 0; i < checks.size(); ++i) for (int i = 0; i < checks.size(); ++i)
checks[i].second->setChecked(sr.getValue(checks[i].first, checks[i].second->isChecked())); 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())); dspins[i].second->setValue(sr.getValue(dspins[i].first, dspins[i].second->value()));
for (int i = 0; i < spins.size(); ++i) for (int i = 0; i < spins.size(); ++i)
spins[i].second->setValue(sr.getValue(spins[i].first, spins[i].second->value())); 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) for (int i = 0; i < tabs.size(); ++i)
tabs[i].second->setCurrentIndex(sr.getValue(tabs[i].first, tabs[i].second->currentIndex())); tabs[i].second->setCurrentIndex(sr.getValue(tabs[i].first, tabs[i].second->currentIndex()));
for (int i = 0; i < actions.size(); ++i) for (int i = 0; i < actions.size(); ++i)

View File

@@ -28,6 +28,7 @@
#include <QComboBox> #include <QComboBox>
#include <QTabWidget> #include <QTabWidget>
#include <QSplitter> #include <QSplitter>
#include "spinslider.h"
#include "qpiconfig.h" #include "qpiconfig.h"
class SessionManager: public QObject class SessionManager: public QObject
@@ -45,8 +46,10 @@ public:
inline void addEntry(QComboBox * e) {combos.push_back(QPair<QString, QComboBox * >(e->objectName(), e));} inline void addEntry(QComboBox * e) {combos.push_back(QPair<QString, QComboBox * >(e->objectName(), e));}
inline void addEntry(QDoubleSpinBox * e) {dspins.push_back(QPair<QString, QDoubleSpinBox * >(e->objectName(), e));} inline void addEntry(QDoubleSpinBox * e) {dspins.push_back(QPair<QString, QDoubleSpinBox * >(e->objectName(), e));}
inline void addEntry(QSpinBox * e) {spins.push_back(QPair<QString, QSpinBox * >(e->objectName(), e));} inline void addEntry(QSpinBox * e) {spins.push_back(QPair<QString, QSpinBox * >(e->objectName(), e));}
inline void addEntry(SpinSlider * e) {spinsliders.push_back(QPair<QString, SpinSlider * >(e->objectName(), e));}
inline void addEntry(QTabWidget * e) {tabs.push_back(QPair<QString, QTabWidget * >(e->objectName(), e));} inline void addEntry(QTabWidget * e) {tabs.push_back(QPair<QString, QTabWidget * >(e->objectName(), e));}
inline void addEntry(QAction * e) {actions.push_back(QPair<QString, QAction * >(e->objectName(), e));} inline void addEntry(QAction * e) {actions.push_back(QPair<QString, QAction * >(e->objectName(), e));}
inline void addMainWidget(QWidget * e) {widgets.push_back(QPair<QString, QWidget * >(e->objectName(), e));}
inline void addEntry(const QString & name, QMainWindow * e) {mwindows.push_back(QPair<QString, QMainWindow * >(name, e));} inline void addEntry(const QString & name, QMainWindow * e) {mwindows.push_back(QPair<QString, QMainWindow * >(name, e));}
inline void addEntry(const QString & name, QCheckBox * e) {checks.push_back(QPair<QString, QCheckBox * >(name, e));} inline void addEntry(const QString & name, QCheckBox * e) {checks.push_back(QPair<QString, QCheckBox * >(name, e));}
@@ -54,6 +57,7 @@ public:
inline void addEntry(const QString & name, QComboBox * e) {combos.push_back(QPair<QString, QComboBox * >(name, e));} inline void addEntry(const QString & name, QComboBox * e) {combos.push_back(QPair<QString, QComboBox * >(name, e));}
inline void addEntry(const QString & name, QDoubleSpinBox * e) {dspins.push_back(QPair<QString, QDoubleSpinBox * >(name, e));} inline void addEntry(const QString & name, QDoubleSpinBox * e) {dspins.push_back(QPair<QString, QDoubleSpinBox * >(name, e));}
inline void addEntry(const QString & name, QSpinBox * e) {spins.push_back(QPair<QString, QSpinBox * >(name, e));} inline void addEntry(const QString & name, QSpinBox * e) {spins.push_back(QPair<QString, QSpinBox * >(name, e));}
inline void addEntry(const QString & name, SpinSlider * e) {spinsliders.push_back(QPair<QString, SpinSlider * >(name, e));}
inline void addEntry(const QString & name, QTabWidget * e) {tabs.push_back(QPair<QString, QTabWidget * >(name, e));} inline void addEntry(const QString & name, QTabWidget * e) {tabs.push_back(QPair<QString, QTabWidget * >(name, e));}
inline void addEntry(const QString & name, QAction * e) {actions.push_back(QPair<QString, QAction * >(name, e));} inline void addEntry(const QString & name, QAction * e) {actions.push_back(QPair<QString, QAction * >(name, e));}
inline void addEntry(const QString & name, QStringList * e) {stringlists.push_back(QPair<QString, QStringList * >(name, e));} inline void addEntry(const QString & name, QStringList * e) {stringlists.push_back(QPair<QString, QStringList * >(name, e));}
@@ -62,17 +66,20 @@ public:
inline void addEntry(const QString & name, bool * e) {bools.push_back(QPair<QString, bool * >(name, e));} inline void addEntry(const QString & name, bool * e) {bools.push_back(QPair<QString, bool * >(name, e));}
inline void addEntry(const QString & name, int * e) {ints.push_back(QPair<QString, int * >(name, e));} inline void addEntry(const QString & name, int * e) {ints.push_back(QPair<QString, int * >(name, e));}
inline void addEntry(const QString & name, float * e) {floats.push_back(QPair<QString, float * >(name, e));} inline void addEntry(const QString & name, float * e) {floats.push_back(QPair<QString, float * >(name, e));}
inline void addMainWidget(const QString & name, QWidget * e) {widgets.push_back(QPair<QString, QWidget * >(name, e));}
void save(); void save();
void load(bool onlyMainwindow = false); void load(bool onlyMainwindow = false);
private: private:
QVector<QPair<QString, QMainWindow * > > mwindows; QVector<QPair<QString, QMainWindow * > > mwindows;
QVector<QPair<QString, QWidget * > > widgets;
QVector<QPair<QString, QCheckBox * > > checks; QVector<QPair<QString, QCheckBox * > > checks;
QVector<QPair<QString, QLineEdit * > > lines; QVector<QPair<QString, QLineEdit * > > lines;
QVector<QPair<QString, QComboBox * > > combos; QVector<QPair<QString, QComboBox * > > combos;
QVector<QPair<QString, QDoubleSpinBox * > > dspins; QVector<QPair<QString, QDoubleSpinBox * > > dspins;
QVector<QPair<QString, QSpinBox * > > spins; QVector<QPair<QString, QSpinBox * > > spins;
QVector<QPair<QString, SpinSlider * > > spinsliders;
QVector<QPair<QString, QTabWidget * > > tabs; QVector<QPair<QString, QTabWidget * > > tabs;
QVector<QPair<QString, QAction * > > actions; QVector<QPair<QString, QAction * > > actions;
QVector<QPair<QString, QStringList * > > stringlists; QVector<QPair<QString, QStringList * > > stringlists;