diff options
Diffstat (limited to 'Swift/QtUI/QtChatWindowFactory.cpp')
-rw-r--r-- | Swift/QtUI/QtChatWindowFactory.cpp | 96 |
1 files changed, 48 insertions, 48 deletions
diff --git a/Swift/QtUI/QtChatWindowFactory.cpp b/Swift/QtUI/QtChatWindowFactory.cpp index b9ba89d..9c59e9a 100644 --- a/Swift/QtUI/QtChatWindowFactory.cpp +++ b/Swift/QtUI/QtChatWindowFactory.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2015 Isode Limited. + * Copyright (c) 2010-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ @@ -7,15 +7,15 @@ #include <Swift/QtUI/QtChatWindowFactory.h> #include <QDesktopWidget> + #include <qdebug.h> #include <Swift/QtUI/QtChatTabs.h> #include <Swift/QtUI/QtChatTabsBase.h> -#include <Swift/QtUI/QtChatWindow.h> -#include <Swift/QtUI/QtSwiftUtil.h> #include <Swift/QtUI/QtChatTheme.h> +#include <Swift/QtUI/QtChatWindow.h> #include <Swift/QtUI/QtSingleWindow.h> - +#include <Swift/QtUI/QtSwiftUtil.h> namespace Swift { @@ -23,65 +23,65 @@ static const QString SPLITTER_STATE = "mucSplitterState"; static const QString CHAT_TABS_GEOMETRY = "chatTabsGeometry"; QtChatWindowFactory::QtChatWindowFactory(QtSingleWindow* splitter, SettingsProvider* settings, QtSettingsProvider* qtSettings, QtChatTabsBase* tabs, const QString& themePath, const std::map<std::string, std::string>& emoticons) : themePath_(themePath), emoticons_(emoticons) { - qtOnlySettings_ = qtSettings; - settings_ = settings; - tabs_ = tabs; - theme_ = NULL; - QtChatTabs* fullTabs = dynamic_cast<QtChatTabs*>(tabs_); - if (splitter) { - assert(fullTabs && "Netbook mode and no-tabs interface is not supported!"); - splitter->addWidget(fullTabs); - } else if (fullTabs) { - QVariant chatTabsGeometryVariant = qtOnlySettings_->getQSettings()->value(CHAT_TABS_GEOMETRY); - if (chatTabsGeometryVariant.isValid()) { - fullTabs->restoreGeometry(chatTabsGeometryVariant.toByteArray()); - } - connect(fullTabs, SIGNAL(geometryChanged()), this, SLOT(handleWindowGeometryChanged())); - } + qtOnlySettings_ = qtSettings; + settings_ = settings; + tabs_ = tabs; + theme_ = nullptr; + QtChatTabs* fullTabs = dynamic_cast<QtChatTabs*>(tabs_); + if (splitter) { + assert(fullTabs && "Netbook mode and no-tabs interface is not supported!"); + splitter->addWidget(fullTabs); + } else if (fullTabs) { + QVariant chatTabsGeometryVariant = qtOnlySettings_->getQSettings()->value(CHAT_TABS_GEOMETRY); + if (chatTabsGeometryVariant.isValid()) { + fullTabs->restoreGeometry(chatTabsGeometryVariant.toByteArray()); + } + connect(fullTabs, SIGNAL(geometryChanged()), this, SLOT(handleWindowGeometryChanged())); + } } QtChatWindowFactory::~QtChatWindowFactory() { - delete theme_; + delete theme_; } ChatWindow* QtChatWindowFactory::createChatWindow(const JID &contact,UIEventStream* eventStream) { - if (!theme_) { - theme_ = new QtChatTheme(themePath_); - if (theme_->getIncomingContent().isEmpty()) { - delete theme_; - theme_ = new QtChatTheme(""); /* Use the inbuilt theme */ - } - } + if (!theme_) { + theme_ = new QtChatTheme(themePath_); + if (theme_->getIncomingContent().isEmpty()) { + delete theme_; + theme_ = new QtChatTheme(":/themes/Default/"); /* Use the inbuilt theme */ + } + } - QtChatWindow* chatWindow = new QtChatWindow(P2QSTRING(contact.toString()), theme_, eventStream, settings_, emoticons_); - connect(chatWindow, SIGNAL(splitterMoved()), this, SLOT(handleSplitterMoved())); - connect(this, SIGNAL(changeSplitterState(QByteArray)), chatWindow, SLOT(handleChangeSplitterState(QByteArray))); + QtChatWindow* chatWindow = new QtChatWindow(P2QSTRING(contact.toString()), theme_, eventStream, settings_, emoticons_); + connect(chatWindow, SIGNAL(splitterMoved()), this, SLOT(handleSplitterMoved())); + connect(this, SIGNAL(changeSplitterState(QByteArray)), chatWindow, SLOT(handleChangeSplitterState(QByteArray))); - QVariant splitterState = qtOnlySettings_->getQSettings()->value(SPLITTER_STATE); - if(splitterState.isValid()) { - chatWindow->handleChangeSplitterState(splitterState.toByteArray()); - } + QVariant splitterState = qtOnlySettings_->getQSettings()->value(SPLITTER_STATE); + if(splitterState.isValid()) { + chatWindow->handleChangeSplitterState(splitterState.toByteArray()); + } - if (tabs_) { - tabs_->addTab(chatWindow); - } else { - QVariant chatGeometryVariant = qtOnlySettings_->getQSettings()->value(CHAT_TABS_GEOMETRY); - if (chatGeometryVariant.isValid()) { - chatWindow->restoreGeometry(chatGeometryVariant.toByteArray()); - } - connect(chatWindow, SIGNAL(geometryChanged()), this, SLOT(handleWindowGeometryChanged())); - } - return chatWindow; + if (tabs_) { + tabs_->addTab(chatWindow); + } else { + QVariant chatGeometryVariant = qtOnlySettings_->getQSettings()->value(CHAT_TABS_GEOMETRY); + if (chatGeometryVariant.isValid()) { + chatWindow->restoreGeometry(chatGeometryVariant.toByteArray()); + } + connect(chatWindow, SIGNAL(geometryChanged()), this, SLOT(handleWindowGeometryChanged())); + } + return chatWindow; } void QtChatWindowFactory::handleWindowGeometryChanged() { - qtOnlySettings_->getQSettings()->setValue(CHAT_TABS_GEOMETRY, qobject_cast<QWidget*>(sender())->saveGeometry()); + qtOnlySettings_->getQSettings()->setValue(CHAT_TABS_GEOMETRY, qobject_cast<QWidget*>(sender())->saveGeometry()); } void QtChatWindowFactory::handleSplitterMoved() { - QByteArray splitterState = qobject_cast<QtChatWindow*>(sender())->getSplitterState(); - qtOnlySettings_->getQSettings()->setValue(SPLITTER_STATE, QVariant(splitterState)); - emit changeSplitterState(splitterState); + QByteArray splitterState = qobject_cast<QtChatWindow*>(sender())->getSplitterState(); + qtOnlySettings_->getQSettings()->setValue(SPLITTER_STATE, QVariant(splitterState)); + emit changeSplitterState(splitterState); } } |