diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-08-31 19:10:57 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-09-03 10:02:35 (GMT) |
commit | eb50ea03ab7fc41610a8945002fe19dd30ffb5d7 (patch) | |
tree | d26d378e2996b163f13562488eb2bbc31d89db04 /Swift/QtUI/QtChatView.cpp | |
parent | 276d7f82ba42cdbc65ec5c9f35873a265a69bd73 (diff) | |
download | swift-contrib-eb50ea03ab7fc41610a8945002fe19dd30ffb5d7.zip swift-contrib-eb50ea03ab7fc41610a8945002fe19dd30ffb5d7.tar.bz2 |
Squash presence in chat and MUC windows.
Join/Parts will be shown in one block if they're uninterrupted, and only the last presence change in a row will be shown for chats.
Resolves: #230
Resolves: #430
Diffstat (limited to 'Swift/QtUI/QtChatView.cpp')
-rw-r--r-- | Swift/QtUI/QtChatView.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/Swift/QtUI/QtChatView.cpp b/Swift/QtUI/QtChatView.cpp index ef558b7..d48365b 100644 --- a/Swift/QtUI/QtChatView.cpp +++ b/Swift/QtUI/QtChatView.cpp @@ -106,16 +106,21 @@ void QtChatView::addToDOM(boost::shared_ptr<ChatSnippet> snippet) { } } -void QtChatView::correctLastMessage(const QString& newMessage) { +void QtChatView::replaceLastMessage(const QString& newMessage) { /* FIXME: must be queued */ - lastElement_.findFirst("swift_message"); - lastElement_.setPlainText(ChatSnippet::escape(newMessage)); + QWebElement replace = lastElement_.findFirst("span.swift_message"); + assert(!replace.isNull()); + QString old = lastElement_.toOuterXml(); + replace.setInnerXml(ChatSnippet::escape(newMessage)); + qDebug() << "Replacing old: " << old; + qDebug() << "With new: " << lastElement_.toOuterXml(); } -void QtChatView::correctLastMessage(const QString& newMessage, const QString& note) { - correctLastMessage(newMessage); - lastElement_.findFirst("swift_time"); - lastElement_.setPlainText(ChatSnippet::escape(note)); +void QtChatView::replaceLastMessage(const QString& newMessage, const QString& note) { + replaceLastMessage(newMessage); + QWebElement replace = lastElement_.findFirst("span.swift_time"); + assert(!replace.isNull()); + replace.setInnerXml(ChatSnippet::escape(note)); } void QtChatView::copySelectionToClipboard() { @@ -147,8 +152,6 @@ void QtChatView::handleViewLoadFinished(bool ok) { Q_ASSERT(ok); viewReady_ = true; addQueuedSnippets(); -// webPage_->mainFrame()->evaluateJavaScript(queuedMessages_); -// queuedMessages_.clear(); } } |