summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swift/QtUI/QtChatView.cpp19
-rw-r--r--Swift/QtUI/QtChatView.h4
-rw-r--r--Swiften/Application/UnixApplication.h19
-rw-r--r--Swiften/Application/UnixApplicationPathProvider.h3
4 files changed, 17 insertions, 28 deletions
diff --git a/Swift/QtUI/QtChatView.cpp b/Swift/QtUI/QtChatView.cpp
index 3324108..6b38309 100644
--- a/Swift/QtUI/QtChatView.cpp
+++ b/Swift/QtUI/QtChatView.cpp
@@ -68,6 +68,14 @@ void QtChatView::handleKeyPressEvent(QKeyEvent* event) {
}
void QtChatView::addMessage(const ChatSnippet& snippet) {
+ if (viewReady_) {
+ appendToView(snippet);
+ } else {
+ queuedSnippets_.append(snippet);
+ }
+}
+
+void QtChatView::appendToView(const ChatSnippet& snippet) {
//bool wasScrolledToBottom = isScrolledToBottom();
QString content = snippet.getContent();
@@ -82,12 +90,7 @@ void QtChatView::addMessage(const ChatSnippet& snippet) {
else {
command = "appendNextMessage(\"" + content + "\");";
}
- if (viewReady_) {
- webPage_->mainFrame()->evaluateJavaScript(command);
- }
- else {
- queuedMessages_ += command;
- }
+ webPage_->mainFrame()->evaluateJavaScript(command);
//qDebug() << webPage_->mainFrame()->toHtml();
previousContinuationElementID_ = snippet.getContinuationElementID();
@@ -118,7 +121,9 @@ void QtChatView::handleLinkClicked(const QUrl& url) {
void QtChatView::handleViewLoadFinished(bool ok) {
Q_ASSERT(ok);
viewReady_ = true;
- webPage_->mainFrame()->evaluateJavaScript(queuedMessages_);
+ foreach (const ChatSnippet& snippet, queuedSnippets_) {
+ appendToView(snippet);
+ }
queuedMessages_.clear();
}
diff --git a/Swift/QtUI/QtChatView.h b/Swift/QtUI/QtChatView.h
index ea64265..a5b6b4a 100644
--- a/Swift/QtUI/QtChatView.h
+++ b/Swift/QtUI/QtChatView.h
@@ -9,6 +9,7 @@
#include <QString>
#include <QWidget>
+#include <QList>
#include "ChatSnippet.h"
@@ -35,11 +36,12 @@ namespace Swift {
void handleViewLoadFinished(bool);
private:
+ void appendToView(const ChatSnippet& snippet);
bool viewReady_;
QtWebView* webView_;
QWebPage* webPage_;
QString previousContinuationElementID_;
- QString queuedMessages_;
+ QList<ChatSnippet> queuedSnippets_;
};
}
diff --git a/Swiften/Application/UnixApplication.h b/Swiften/Application/UnixApplication.h
index 9ec9300..c607b7d 100644
--- a/Swiften/Application/UnixApplication.h
+++ b/Swiften/Application/UnixApplication.h
@@ -4,8 +4,7 @@
* See Documentation/Licenses/GPLv3.txt for more information.
*/
-#ifndef SWIFTEN_UnixApplication_H
-#define SWIFTEN_UnixApplication_H
+#pragma once
#include "Swiften/Application/Application.h"
#include "Swiften/Application/NullApplicationMessageDisplay.h"
@@ -22,24 +21,8 @@ namespace Swift {
return &messageDisplay_;
}
- virtual boost::filesystem::path getHomeDir() const {
- return boost::filesystem::path(getenv("HOME"));
- }
-
- boost::filesystem::path getSettingsDir() const {
- boost::filesystem::path result(getHomeDir() / ("." + getApplicationName().getLowerCase().getUTF8String()));
- try {
- boost::filesystem::create_directory(result);
- }
- catch (const boost::filesystem::filesystem_error& e) {
- std::cerr << "ERROR: " << e.what() << std::endl;
- }
- return result;
- }
-
private:
NullApplicationMessageDisplay messageDisplay_;
};
}
-#endif
diff --git a/Swiften/Application/UnixApplicationPathProvider.h b/Swiften/Application/UnixApplicationPathProvider.h
index c361267..3773fef 100644
--- a/Swiften/Application/UnixApplicationPathProvider.h
+++ b/Swiften/Application/UnixApplicationPathProvider.h
@@ -24,7 +24,7 @@ namespace Swift {
}
boost::filesystem::path getSettingsDir() const {
- boost::filesystem::path result(getHomeDir() / ("." + getName().getLowerCase().getUTF8String()));
+ boost::filesystem::path result(getHomeDir() / ("." + getApplicationName().getLowerCase().getUTF8String()));
try {
boost::filesystem::create_directory(result);
}
@@ -49,4 +49,3 @@ namespace Swift {
};
}
-#endif