Don't invoke notifications for own messages, fixes #507
[quassel.git] / src / core / core.cpp
index 2724378..aa1b7d4 100644 (file)
@@ -18,8 +18,6 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#include <QMetaObject>
-#include <QMetaMethod>
 #include <QCoreApplication>
 
 #include "core.h"
@@ -53,21 +51,25 @@ void Core::destroy() {
 Core::Core() : storage(0) {
   _startTime = QDateTime::currentDateTime().toUTC();  // for uptime :)
 
-  loadTranslation(QLocale::system());
+  Quassel::loadTranslation(QLocale::system());
 
   // 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", "quasselcore");
 #else
-  QSettings::Format format = QSettings::NativeFormat;
-#endif
-  QString newFilePath = Quassel::configDirPath() + "quasselcore"
-  + ((format == QSettings::NativeFormat) ? QLatin1String(".conf") : QLatin1String(".ini"));
-  QSettings newSettings(newFilePath, format);
 
-  if(newSettings.value("Config/Version").toUInt() != 1) {
-    qWarning() << "\n\n*** IMPORTANT: Config and data file locations have changed. Attempting to auto-migrate your core settings...";
+# ifdef Q_WS_WIN
+    QSettings::Format format = QSettings::IniFormat;
+# else
+    QSettings::Format format = QSettings::NativeFormat;
+# endif
+    QString newFilePath = Quassel::configDirPath() + "quasselcore"
+    + ((format == QSettings::NativeFormat) ? QLatin1String(".conf") : QLatin1String(".ini"));
+    QSettings newSettings(newFilePath, format);
+#endif /* Q_WS_MAC */
+
+  if(newSettings.value("Config/Version").toUInt() == 0) {
 #   ifdef Q_WS_MAC
     QString org = "quassel-irc.org";
 #   else
@@ -75,11 +77,13 @@ Core::Core() : storage(0) {
 #   endif
     QSettings oldSettings(org, "Quassel Core");
     if(oldSettings.allKeys().count()) {
+      qWarning() << "\n\n*** IMPORTANT: Config and data file locations have changed. Attempting to auto-migrate your core settings...";
       foreach(QString key, oldSettings.allKeys())
         newSettings.setValue(key, oldSettings.value(key));
       newSettings.setValue("Config/Version", 1);
-      qWarning() << "*   Your core settings have been migrated to" << newFilePath;
+      qWarning() << "*   Your core settings have been migrated to" << newSettings.fileName();
 
+#ifndef Q_WS_MAC /* we don't need to move the db and cert for mac */
 #ifdef Q_OS_WIN32
       QString quasselDir = qgetenv("APPDATA") + "/quassel/";
 #elif defined Q_WS_MAC
@@ -110,12 +114,20 @@ Core::Core() : storage(0) {
         else
           qWarning() << "!!! Moving your certificate has failed. Please move it manually into" << Quassel::configDirPath();
       }
+#endif /* !Q_WS_MAC */
       qWarning() << "*** Migration completed.\n\n";
     }
   }
-
   // MIGRATION end
 
+  // check settings version
+  // so far, we only have 1
+  CoreSettings s;
+  if(s.version() != 1) {
+    qCritical() << "Invalid core settings version, terminating!";
+    exit(EXIT_FAILURE);
+  }
+
   // Register storage backends here!
   registerStorageBackend(new SqliteStorage(this));