Streamline all managers to get saved via syncTimer and on session shutdown.
loadDefaults();
}
-CoreAliasManager::~CoreAliasManager() {
+void CoreAliasManager::save() const {
CoreSession *session = qobject_cast<CoreSession *>(parent());
if(!session) {
qWarning() << "CoreAliasManager: unable to save Aliases. Parent is not a Coresession!";
public:
explicit CoreAliasManager(CoreSession *parent);
- ~CoreAliasManager();
inline virtual const QMetaObject *syncMetaObject() const { return &AliasManager::staticMetaObject; }
+ void save() const;
+
protected:
const Network *network(NetworkId) const;
//loadDefaults();
}
-CoreIgnoreListManager::~CoreIgnoreListManager() {
+void CoreIgnoreListManager::save() const {
CoreSession *session = qobject_cast<CoreSession *>(parent());
if(!session) {
qWarning() << "CoreIgnoreListManager: unable to save IgnoreList. Parent is not a Coresession!";
public:
explicit CoreIgnoreListManager(CoreSession *parent);
- ~CoreIgnoreListManager();
inline virtual const QMetaObject *syncMetaObject() const { return &IgnoreListManager::staticMetaObject; }
+ void save() const;
public slots:
virtual inline void requestToggleIgnoreRule(const QString &ignoreRule) { toggleIgnoreRule(ignoreRule); }
loadSettings();
initScriptEngine();
- connect(&(Core::instance()->syncTimer()), SIGNAL(timeout()), _bufferSyncer, SLOT(storeDirtyIds()));
- connect(&(Core::instance()->syncTimer()), SIGNAL(timeout()), _bufferViewManager, SLOT(saveBufferViews()));
+ // periodically save our session state
+ connect(&(Core::instance()->syncTimer()), SIGNAL(timeout()), this, SLOT(saveSessionState()));
p->synchronize(_bufferSyncer);
p->synchronize(&aliasManager());
_bufferSyncer->storeDirtyIds();
_bufferViewManager->saveBufferViews();
_networkConfig->save();
+ _aliasManager.save();
+ _ignoreListManager.save();
}
void CoreSession::restoreSessionState() {
// void attachNetworkConnection(NetworkConnection *conn);
//! Return necessary data for restoring the session after restarting the core
- void saveSessionState() const;
void restoreSessionState();
public slots:
void updateIdentityBySender();
+ void saveSessionState() const;
+
protected:
virtual void customEvent(QEvent *event);