summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2011-05-12 17:51:41 (GMT)
committerKevin Smith <git@kismith.co.uk>2011-05-12 17:51:41 (GMT)
commit201e2a9a3a2d074166fb975277515a667e5cab4e (patch)
tree3f83500fa8e748d7405b5456a84ab9be1ea25a66 /Swift/QtUI/QtUIFactory.cpp
parent8a18d6692c246adf14a8b0aec270f9b96d1b4baf (diff)
downloadswift-201e2a9a3a2d074166fb975277515a667e5cab4e.zip
swift-201e2a9a3a2d074166fb975277515a667e5cab4e.tar.bz2
Allow Chat Window Font resizing
Resolves: #812 Release-Notes: It is now possible to resize the font in the chat window conversations.
Diffstat (limited to 'Swift/QtUI/QtUIFactory.cpp')
-rw-r--r--Swift/QtUI/QtUIFactory.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/Swift/QtUI/QtUIFactory.cpp b/Swift/QtUI/QtUIFactory.cpp
index 5c1f78d..ffbe3c0 100644
--- a/Swift/QtUI/QtUIFactory.cpp
+++ b/Swift/QtUI/QtUIFactory.cpp
@@ -25,9 +25,12 @@
#include "QtContactEditWindow.h"
#include "QtAdHocCommandWindow.h"
+#define CHATWINDOW_FONT_SIZE "chatWindowFontSize"
+
namespace Swift {
QtUIFactory::QtUIFactory(QtSettingsProvider* settings, QtChatTabs* tabs, QSplitter* netbookSplitter, QtSystemTray* systemTray, QtChatWindowFactory* chatWindowFactory, bool startMinimized) : settings(settings), tabs(tabs), netbookSplitter(netbookSplitter), systemTray(systemTray), chatWindowFactory(chatWindowFactory), lastMainWindow(NULL), loginWindow(NULL), startMinimized(startMinimized) {
+ chatFontSize = settings->getIntSetting(CHATWINDOW_FONT_SIZE, 0);
}
XMLConsoleWidget* QtUIFactory::createXMLConsoleWidget() {
@@ -81,7 +84,26 @@ MUCSearchWindow* QtUIFactory::createMUCSearchWindow() {
}
ChatWindow* QtUIFactory::createChatWindow(const JID& contact, UIEventStream* eventStream) {
- return chatWindowFactory->createChatWindow(contact, eventStream);
+ QtChatWindow* window = dynamic_cast<QtChatWindow*>(chatWindowFactory->createChatWindow(contact, eventStream));
+ chatWindows.push_back(window);
+ foreach (QtChatWindow* existingWindow, chatWindows) {
+ connect(window, SIGNAL(fontResized(int)), existingWindow, SLOT(handleFontResized(int)));
+ connect(existingWindow, SIGNAL(fontResized(int)), window, SLOT(handleFontResized(int)));
+ }
+ connect(window, SIGNAL(fontResized(int)), this, SLOT(handleChatWindowFontResized(int)));
+ connect(window, SIGNAL(destroyed(QObject*)), this, SLOT(handleChatWindowDestroyed(QObject*)));
+ window->handleFontResized(chatFontSize);
+ return window;
+}
+
+void QtUIFactory::handleChatWindowFontResized(int size) {
+ chatFontSize = size;
+ settings->storeInt(CHATWINDOW_FONT_SIZE, size);
+}
+
+void QtUIFactory::handleChatWindowDestroyed(QObject* window) {
+ QtChatWindow* chatWindow = qobject_cast<QtChatWindow*>(window);
+ chatWindows.erase(std::remove(chatWindows.begin(), chatWindows.end(), chatWindow), chatWindows.end());
}
UserSearchWindow* QtUIFactory::createUserSearchWindow(UserSearchWindow::Type type, UIEventStream* eventStream, const std::set<std::string>& groups) {