X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fmain.cpp;h=2bbe0cfad9d1bfd870a67193dac1d64863550a50;hp=48b45c28042233e8422edfeb001699af620d022b;hb=b6eab225596b412e64df8f531e8bf0b790e0b663;hpb=985657b9e4d8b2b22a775d34320fc65d14df4858 diff --git a/src/common/main.cpp b/src/common/main.cpp index 48b45c28..2bbe0cfa 100644 --- a/src/common/main.cpp +++ b/src/common/main.cpp @@ -20,11 +20,15 @@ #include +#include + #ifdef BUILD_CORE # include "coreapplication.h" #elif defined BUILD_QTUI +# include "aboutdata.h" # include "qtuiapplication.h" #elif defined BUILD_MONO +# include "aboutdata.h" # include "monoapplication.h" #else @@ -35,10 +39,18 @@ #if defined HAVE_KDE4 && defined BUILD_CORE # undef HAVE_KDE4 #endif +// We don't want quasselcore to depend on KDE +#if defined HAVE_KF5 && defined BUILD_CORE +# undef HAVE_KF5 +#endif #ifdef HAVE_KDE4 # include # include "kcmdlinewrapper.h" +#elif defined HAVE_KF5 +# include +# include +# include "qt5cliparser.h" #elif defined HAVE_QT5 # include "qt5cliparser.h" #else @@ -55,6 +67,12 @@ Q_IMPORT_PLUGIN(qgif) int main(int argc, char **argv) { +#if QT_VERSION < 0x050000 + // All our source files are in UTF-8, and Qt5 even requires that + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); + QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); +#endif + Quassel::setupBuildInfo(); QCoreApplication::setApplicationName(Quassel::buildInfo().applicationName); QCoreApplication::setApplicationVersion(Quassel::buildInfo().plainVersionString); @@ -89,7 +107,6 @@ int main(int argc, char **argv) #ifdef HAVE_KDE4 // We need to init KCmdLineArgs first - // TODO: build an AboutData compat class to replace our aboutDlg strings KAboutData aboutData("quassel", "kdelibs4", ki18n("Quassel IRC"), Quassel::buildInfo().plainVersionString.toUtf8(), ki18n("A modern, distributed IRC client")); aboutData.addLicense(KAboutData::License_GPL_V2); @@ -108,6 +125,7 @@ int main(int argc, char **argv) // Initialize CLI arguments // NOTE: We can't use tr() at this point, since app is not yet created + // TODO: Change this once we get rid of KDE4 and can initialize the parser after creating the app // put shared client&core arguments here cliParser->addSwitch("debug", 'd', "Enable debug output"); @@ -144,7 +162,7 @@ int main(int argc, char **argv) cliParser->addSwitch("oidentd", 0, "Enable oidentd integration"); cliParser->addOption("oidentd-conffile", 0, "Set path to oidentd configuration file", "file"); #ifdef HAVE_SSL - cliParser->addSwitch("require-ssl", 0, "Require SSL for client connections"); + cliParser->addSwitch("require-ssl", 0, "Require SSL for remote (non-loopback) client connections"); #endif cliParser->addSwitch("enable-experimental-dcc", 0, "Enable highly experimental and unfinished support for CTCP DCC (DANGEROUS)"); #endif @@ -173,6 +191,22 @@ int main(int argc, char **argv) } #endif - if (!app.init()) return EXIT_FAILURE; +// Migrate settings from KDE4 to KF5 if appropriate +#ifdef HAVE_KF5 + Kdelibs4ConfigMigrator migrator(QCoreApplication::applicationName()); + migrator.setConfigFiles(QStringList() << "quasselrc" << "quassel.notifyrc"); + migrator.migrate(); +#endif + +#ifdef HAVE_KF5 + // FIXME: This should be done after loading the translation catalogue, but still in main() + AboutData aboutData; + AboutData::setQuasselPersons(&aboutData); + KAboutData::setApplicationData(aboutData.kAboutData()); +#endif + + if (!app.init()) + return EXIT_FAILURE; + return app.exec(); }