#include "client.h"
#include "cliparser.h"
#include "qtui.h"
-#include "sessionsettings.h"
+#include "qtuisettings.h"
QtUiApplication::QtUiApplication(int &argc, char **argv)
#ifdef HAVE_KDE
// FIXME: MIGRATION 0.3 -> 0.4: Move database and core config to new location
// Move settings, note this does not delete the old files
-#ifdef Q_WS_WIN
- QSettings::Format format = QSettings::IniFormat;
+#ifdef Q_WS_MAC
+ QSettings newSettings("quassel-irc.org", "quasselclient");
#else
+
+# ifdef Q_WS_WIN
+ QSettings::Format format = QSettings::IniFormat;
+# else
QSettings::Format format = QSettings::NativeFormat;
-#endif
+# endif
+
QString newFilePath = Quassel::configDirPath() + "quasselclient"
+ ((format == QSettings::NativeFormat) ? QLatin1String(".conf") : QLatin1String(".ini"));
QSettings newSettings(newFilePath, format);
+#endif /* Q_WS_MAC */
- if(newSettings.value("Config/Version").toUInt() != 1) {
- qWarning() << "\n\n*** IMPORTANT: Config and data file locations have changed. Attempting to auto-migrate your client settings...";
+ if(newSettings.value("Config/Version").toUInt() == 0) {
# ifdef Q_WS_MAC
QString org = "quassel-irc.org";
# else
# endif
QSettings oldSettings(org, "Quassel Client");
if(oldSettings.allKeys().count()) {
+ qWarning() << "\n\n*** IMPORTANT: Config and data file locations have changed. Attempting to auto-migrate your client settings...";
foreach(QString key, oldSettings.allKeys())
newSettings.setValue(key, oldSettings.value(key));
newSettings.setValue("Config/Version", 1);
- qWarning() << "* Your client settings have been migrated to" << newFilePath;
+ qWarning() << "* Your client settings have been migrated to" << newSettings.fileName();
+ qWarning() << "*** Migration completed.\n\n";
}
- qWarning() << "*** Migration completed.\n\n";
}
// MIGRATION end
+ // check settings version
+ // so far, we only have 1
+ QtUiSettings s;
+ if(s.version() != 1) {
+ qCritical() << "Invalid client settings version, terminating!";
+ return false;
+ }
+
// session resume
QtUi *gui = new QtUi();
Client::init(gui);
}
void QtUiApplication::commitData(QSessionManager &manager) {
+ Q_UNUSED(manager)
_aboutToQuit = true;
}
void QtUiApplication::saveState(QSessionManager & manager) {
//qDebug() << QString("saving session state to id %1").arg(manager.sessionId());
- AccountId activeCore = Client::currentCoreAccount();
+ AccountId activeCore = Client::currentCoreAccount(); // FIXME store this!
SessionSettings s(manager.sessionId());
s.setSessionAge(0);
- emit saveStateToSession(manager.sessionId());
- emit saveStateToSessionSettings(s);
+ QtUi::mainWindow()->saveStateToSettings(s);
}
void QtUiApplication::resumeSessionIfPossible() {
SessionSettings s(sessionId());
s.sessionAging();
s.setSessionAge(0);
- emit resumeFromSession(sessionId());
- emit resumeFromSessionSettings(s);
+ QtUi::mainWindow()->restoreStateFromSettings(s);
s.cleanup();
} else {
SessionSettings s(QString("1"));