summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/QtSwift.cpp')
-rw-r--r--Swift/QtUI/QtSwift.cpp40
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_;