diff options
Diffstat (limited to 'Swift/QtUI/QtChatView.cpp')
| -rw-r--r-- | Swift/QtUI/QtChatView.cpp | 19 | 
1 files changed, 12 insertions, 7 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();  }  | 
 Swift