diff options
Diffstat (limited to 'Swift/QtUI/QtSwift.cpp')
-rw-r--r-- | Swift/QtUI/QtSwift.cpp | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/Swift/QtUI/QtSwift.cpp b/Swift/QtUI/QtSwift.cpp index 223f3ae..4d10956 100644 --- a/Swift/QtUI/QtSwift.cpp +++ b/Swift/QtUI/QtSwift.cpp @@ -7,7 +7,6 @@ #include "QtSwift.h" #include <string> -#include <QSplitter> #include <QFile> #include <boost/bind.hpp> #include <QMessageBox> @@ -22,6 +21,7 @@ #include <QtSwiftUtil.h> #include <QtUIFactory.h> #include <QtChatWindowFactory.h> +#include <QtSingleWindow.h> #include <Swiften/Base/Log.h> #include <Swift/Controllers/Storages/CertificateFileStorageFactory.h> #include <Swift/Controllers/Storages/FileStoragesFactory.h> @@ -38,6 +38,7 @@ #include <SwifTools/AutoUpdater/AutoUpdater.h> #include <SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h> #include "Swiften/Base/Paths.h" +#include <Swift/Controllers/StatusCache.h> #if defined(SWIFTEN_PLATFORM_WINDOWS) #include "WindowsNotifier.h" @@ -66,9 +67,9 @@ namespace Swift{ #if defined(SWIFTEN_PLATFORM_MACOSX) -#define SWIFT_APPCAST_URL "http://swift.im/appcast/swift-mac-dev.xml" +//#define SWIFT_APPCAST_URL "http://swift.im/appcast/swift-mac-dev.xml" #else -#define SWIFT_APPCAST_URL "" +//#define SWIFT_APPCAST_URL "" #endif po::options_description QtSwift::getOptionsDescription() { @@ -102,32 +103,26 @@ XMLSettingsProvider* QtSwift::loadSettingsFile(const QString& fileName) { return new XMLSettingsProvider(""); } -QMap<QString, QString> QtSwift::loadEmoticonsFile(const QString& fileName) { - QMap<QString, QString> emoticons; +void QtSwift::loadEmoticonsFile(const QString& fileName, QMap<QString, QString>& emoticons) { QFile file(fileName); if (file.exists() && file.open(QIODevice::ReadOnly)) { while (!file.atEnd()) { QString line = file.readLine(); line.replace("\n", ""); line.replace("\r", ""); - qDebug() << "Parsing line : " << line; QStringList tokens = line.split(" "); if (tokens.size() == 2) { - emoticons[tokens[0]] = "file://" + tokens[1]; - qDebug() << "Adding mapping from " << tokens[0] << " to " << tokens[1]; + QString emoticonFile = tokens[1]; + if (!emoticonFile.startsWith(":/") && !emoticonFile.startsWith("qrc:/")) { + emoticonFile = "file://" + emoticonFile; + } + emoticons[tokens[0]] = emoticonFile; } } } - - return emoticons; } QtSwift::QtSwift(const po::variables_map& options) : networkFactories_(&clientMainThreadCaller_), autoUpdater_(NULL), idleDetector_(&idleQuerier_, networkFactories_.getTimerFactory(), 1000) { - if (options.count("netbook-mode")) { - splitter_ = new QSplitter(); - } else { - splitter_ = NULL; - } QCoreApplication::setApplicationName(SWIFT_APPLICATION_NAME); QCoreApplication::setOrganizationName(SWIFT_ORGANIZATION_NAME); QCoreApplication::setOrganizationDomain(SWIFT_ORGANIZATION_DOMAIN); @@ -139,7 +134,15 @@ QtSwift::QtSwift(const po::variables_map& options) : networkFactories_(&clientMa settingsHierachy_->addProviderToTopOfStack(xmlSettings_); settingsHierachy_->addProviderToTopOfStack(qtSettings_); - QMap<QString, QString> emoticons = loadEmoticonsFile(P2QSTRING((Paths::getExecutablePath() / "emoticons.txt").string())); + QMap<QString, QString> emoticons; + loadEmoticonsFile(":/emoticons/emoticons.txt", emoticons); + loadEmoticonsFile(P2QSTRING((Paths::getExecutablePath() / "emoticons.txt").string()), emoticons); + + if (options.count("netbook-mode")) { + splitter_ = new QtSingleWindow(qtSettings_); + } else { + splitter_ = NULL; + } int numberOfAccounts = 1; try { @@ -190,6 +193,8 @@ QtSwift::QtSwift(const po::variables_map& options) : networkFactories_(&clientMa uriHandler_ = new QtDBUSURIHandler(); #endif + statusCache_ = new StatusCache(applicationPathProvider_); + if (splitter_) { splitter_->show(); } @@ -199,7 +204,7 @@ QtSwift::QtSwift(const po::variables_map& options) : networkFactories_(&clientMa // Don't add the first tray (see note above) systemTrays_.push_back(new QtSystemTray()); } - QtUIFactory* uiFactory = new QtUIFactory(settingsHierachy_, qtSettings_, tabs_, splitter_, systemTrays_[i], chatWindowFactory_, networkFactories_.getTimerFactory(), startMinimized, !emoticons.empty()); + QtUIFactory* uiFactory = new QtUIFactory(settingsHierachy_, qtSettings_, tabs_, splitter_, systemTrays_[i], chatWindowFactory_, networkFactories_.getTimerFactory(), statusCache_, startMinimized, !emoticons.empty()); uiFactories_.push_back(uiFactory); MainController* mainController = new MainController( &clientMainThreadCaller_, @@ -243,6 +248,7 @@ QtSwift::~QtSwift() { } delete tabs_; delete splitter_; + delete statusCache_; delete uriHandler_; delete dock_; delete soundPlayer_; |