From b675400b6bc22d841ca5273939ab64be277adb32 Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Mon, 30 Aug 2010 19:25:18 +0100 Subject: Assertion checks for adding messages etc. diff --git a/Swift/QtUI/ChatSnippet.h b/Swift/QtUI/ChatSnippet.h index 9345f61..69ca5b8 100644 --- a/Swift/QtUI/ChatSnippet.h +++ b/Swift/QtUI/ChatSnippet.h @@ -22,7 +22,6 @@ namespace Swift { return appendToPrevious_; } - protected: static QString escape(const QString&); private: diff --git a/Swift/QtUI/MessageSnippet.cpp b/Swift/QtUI/MessageSnippet.cpp index ebcc829..0159386 100644 --- a/Swift/QtUI/MessageSnippet.cpp +++ b/Swift/QtUI/MessageSnippet.cpp @@ -29,9 +29,9 @@ MessageSnippet::MessageSnippet(const QString& message, const QString& sender, co } } - content_.replace("%message%", escape(message)); + content_.replace("%message%", "" + escape(message) + ""); content_.replace("%sender%", escape(sender)); - content_.replace("%time%", escape(time.toString("h:mm"))); + content_.replace("%time%", "" + escape(time.toString("h:mm")) + ""); content_.replace("%userIconPath%", escape(iconURI)); } diff --git a/Swift/QtUI/QtChatView.cpp b/Swift/QtUI/QtChatView.cpp index 1c4ed18..52b399b 100644 --- a/Swift/QtUI/QtChatView.cpp +++ b/Swift/QtUI/QtChatView.cpp @@ -63,11 +63,9 @@ QtChatView::QtChatView(QtChatTheme* theme, QWidget* parent) : QWidget(parent) { document_ = webPage_->mainFrame()->documentElement(); QWebElement chatElement = document_.findFirst("#Chat"); newInsertPoint_ = chatElement.clone(); - newInsertPoint_.setOuterXml("
"); + newInsertPoint_.setOuterXml("
"); chatElement.appendInside(newInsertPoint_); - if (newInsertPoint_.isNull()) { - qWarning() << "Warning, initial insert point element is null!"; - } + Q_ASSERT(!newInsertPoint_.isNull()); } void QtChatView::handleKeyPressEvent(QKeyEvent* event) { @@ -80,35 +78,12 @@ void QtChatView::addMessage(boost::shared_ptr snippet) { } else { queuedSnippets_.append(snippet); } -// QString content = snippet.getContent(); -// content.replace("\\", "\\\\"); -// content.replace("\"", "\\\""); -// content.replace("\n", "\\n"); -// content.replace("\r", ""); -// QString command; -// if (previousContinuationElementID_.isEmpty() || !snippet.getAppendToPrevious()) { -// command = "appendMessage(\"" + content + "\");"; -// } -// else { -// command = "appendNextMessage(\"" + content + "\");"; -// } -// if (viewReady_) { -// webPage_->mainFrame()->evaluateJavaScript(command); -// } -// else { -// queuedMessages_ += command; -// } -// -// previousContinuationElementID_ = snippet.getContinuationElementID(); - } QWebElement QtChatView::snippetToDOM(boost::shared_ptr snippet) { QWebElement newElement = newInsertPoint_.clone(); newElement.setInnerXml(snippet->getContent()); /* FIXME: Outer, surely? */ - if (newElement.isNull()) { - qWarning() << "Warning, new element is null!"; - } + Q_ASSERT(!newElement.isNull()); return newElement; } @@ -116,6 +91,7 @@ void QtChatView::addToDOM(boost::shared_ptr snippet) { QWebElement newElement = snippetToDOM(snippet); QWebElement continuationElement = lastElement_.findFirst("#insert"); if (snippet->getAppendToPrevious()) { + Q_ASSERT(!continuationElement.isNull()); continuationElement.replace(newElement); } else { continuationElement.removeFromDocument(); @@ -124,6 +100,18 @@ void QtChatView::addToDOM(boost::shared_ptr snippet) { lastElement_ = newElement; } +void QtChatView::correctLastMessage(const QString& newMessage) { + /* FIXME: must be queued */ + lastElement_.findFirst("swift_message"); + lastElement_.setPlainText(ChatSnippet::escape(newMessage)); +} + +void QtChatView::correctLastMessage(const QString& newMessage, const QString& note) { + correctLastMessage(newMessage); + lastElement_.findFirst("swift_time"); + lastElement_.setPlainText(ChatSnippet::escape(note)); +} + void QtChatView::copySelectionToClipboard() { if (!webPage_->selectedText().isEmpty()) { webPage_->triggerAction(QWebPage::Copy); diff --git a/Swift/QtUI/QtChatView.h b/Swift/QtUI/QtChatView.h index 3936c18..01c1ad7 100644 --- a/Swift/QtUI/QtChatView.h +++ b/Swift/QtUI/QtChatView.h @@ -28,6 +28,8 @@ namespace Swift { QtChatView(QtChatTheme* theme, QWidget* parent); void addMessage(boost::shared_ptr snippet); + void correctLastMessage(const QString& newMessage); + void correctLastMessage(const QString& newMessage, const QString& note); bool isScrolledToBottom() const; signals: @@ -52,7 +54,6 @@ namespace Swift { bool viewReady_; QtWebView* webView_; QWebPage* webPage_; - QString previousContinuationElementID_; QList > queuedSnippets_; QtChatTheme* theme_; diff --git a/Swift/QtUI/QtChatWindow.cpp b/Swift/QtUI/QtChatWindow.cpp index 73bf2c2..53b0dde 100644 --- a/Swift/QtUI/QtChatWindow.cpp +++ b/Swift/QtUI/QtChatWindow.cpp @@ -291,7 +291,7 @@ void QtChatWindow::addErrorMessage(const String& errorMessage) { QString errorMessageHTML(Qt::escape(P2QSTRING(errorMessage))); errorMessageHTML.replace("\n","
"); - messageLog_->addMessage(boost::shared_ptr(new SystemMessageSnippet(QString("%1").arg(errorMessageHTML), QDateTime::currentDateTime(),previousMessageWasSystem_, theme_))); + messageLog_->addMessage(boost::shared_ptr(new SystemMessageSnippet(QString("%1").arg(errorMessageHTML), QDateTime::currentDateTime(), false, theme_))); previousMessageWasSelf_ = false; previousMessageWasSystem_ = true; @@ -305,7 +305,7 @@ void QtChatWindow::addSystemMessage(const String& message) { QString messageHTML(Qt::escape(P2QSTRING(message))); messageHTML.replace("\n","
"); - messageLog_->addMessage(boost::shared_ptr(new SystemMessageSnippet(messageHTML, QDateTime::currentDateTime(),previousMessageWasSystem_, theme_))); + messageLog_->addMessage(boost::shared_ptr(new SystemMessageSnippet(messageHTML, QDateTime::currentDateTime(), false, theme_))); previousMessageWasSelf_ = false; previousMessageWasSystem_ = true; @@ -319,7 +319,7 @@ void QtChatWindow::addPresenceMessage(const String& message) { QString messageHTML(Qt::escape(P2QSTRING(message))); messageHTML.replace("\n","
"); - messageLog_->addMessage(boost::shared_ptr(new SystemMessageSnippet(messageHTML, QDateTime::currentDateTime(), previousMessageWasPresence_, theme_))); + messageLog_->addMessage(boost::shared_ptr(new SystemMessageSnippet(messageHTML, QDateTime::currentDateTime(), false, theme_))); previousMessageWasSelf_ = false; previousMessageWasSystem_ = false; diff --git a/Swift/QtUI/SystemMessageSnippet.cpp b/Swift/QtUI/SystemMessageSnippet.cpp index db57b1f..cf70c2e 100644 --- a/Swift/QtUI/SystemMessageSnippet.cpp +++ b/Swift/QtUI/SystemMessageSnippet.cpp @@ -13,9 +13,9 @@ namespace Swift { SystemMessageSnippet::SystemMessageSnippet(const QString& message, const QDateTime& time, bool appendToPrevious, QtChatTheme* theme) : ChatSnippet(appendToPrevious) { content_ = theme->getStatus(); - content_.replace("%message%", escape(message)); + content_.replace("%message%", "" + escape(message) + ""); content_.replace("%shortTime%", escape(time.toString("h:mm"))); - content_.replace("%time%", escape(time.toString("h:mm"))); + content_.replace("%time%", "" + escape(time.toString("h:mm")) + ""); } SystemMessageSnippet::~SystemMessageSnippet() { -- cgit v0.10.2-6-g49f6