SVN commit 1056818 by dafre: Serializer in action Signed-off-by: Dario Freddi M +1 -1 src/ConfigDialog.cpp M +24 -1 src/MainWindow.cpp M +2 -0 src/MainWindow.h M +3 -0 src/shaman.kcfg M +11 -4 ui/GeneralSettings.ui --- trunk/playground/sysadmin/shaman/shaman/src/ConfigDialog.cpp #1056817:1056818 @@ -48,7 +48,7 @@ void PluginSelector::saveState() { pluginSelector->save(); - + Shaman::Base::instance()->setConfigurationChanged(); } --- trunk/playground/sysadmin/shaman/shaman/src/MainWindow.cpp #1056817:1056818 @@ -35,6 +35,8 @@ #include "updatedatabase/UpdateDatabaseHandler.h" #include #include +#include "QueueSerializer.h" +#include MainWindow::MainWindow(KAboutData *data) : KXmlGuiWindow(), @@ -44,7 +46,8 @@ m_trickWindow(new QMainWindow(0)), m_isReloading(false), m_aboutData(data), - m_dockWidgetIndex(0) + m_dockWidgetIndex(0), + m_isFirstReload(true) { setCentralWidget(m_trickWindow); m_trickWindow->setWindowFlags(Qt::Widget); @@ -76,6 +79,7 @@ connect(m_shaman, SIGNAL(initCompleted()), SLOT(setUpGui())); connect(this, SIGNAL(shamanReady()), m_shaman, SLOT(init())); + connect(KApplication::instance(), SIGNAL(aboutToQuit()), this, SLOT(aboutToQuit())); emit shamanReady(); } @@ -85,6 +89,17 @@ slotSaveMyself(); } +void MainWindow::aboutToQuit() +{ + // eventually the queue... + if (Settings::saveQueueOnExit()) { + kDebug() << "Saving last queue"; + KConfigGroup queue(KGlobal::config(), "LastQueue"); + QueueSerializer::saveQueueToConfigGroup(&queue); + KGlobal::config().data()->sync(); + } +} + void MainWindow::setUpGui() { // Ok, first of all update the about data @@ -229,6 +244,7 @@ void MainWindow::slotSaveMyself() { + kDebug() << "Saving before closing"; // save last parameters .. Settings::setMainPosition(pos()); // .. and write config to disk @@ -252,6 +268,13 @@ foreach (QAction *action, m_queueActions) { action->setEnabled(true); } + if (m_isFirstReload) { + // Eventually load the last queue + if (Settings::saveQueueOnExit()) { + KConfigGroup queue(KGlobal::config(), "LastQueue"); + QueueSerializer::loadQueueFromConfigGroup(queue); + } + } m_isReloading = false; } } --- trunk/playground/sysadmin/shaman/shaman/src/MainWindow.h #1056817:1056818 @@ -54,6 +54,7 @@ void slotNewToolbarConfig(); void slotAllowedAreasChanged(Qt::DockWidgetAreas); void backendStateChanged(Shaman::BackendInterface::State state); + void aboutToQuit(); signals: void shamanReady(); @@ -70,6 +71,7 @@ QPointer m_aboutDialog; QList m_queueActions; int m_dockWidgetIndex; + bool m_isFirstReload; }; #endif --- trunk/playground/sysadmin/shaman/shaman/src/shaman.kcfg #1056817:1056818 @@ -15,6 +15,9 @@ true + + true + --- trunk/playground/sysadmin/shaman/shaman/ui/GeneralSettings.ui #1056817:1056818 @@ -18,14 +18,14 @@ - + Update Database every: - + false @@ -44,14 +44,14 @@ - + Update Database at: - + false @@ -98,6 +98,13 @@ + + + + Load last queue on startup + + +