diff options
author | Kevin Smith <git@kismith.co.uk> | 2012-04-23 14:05:29 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2012-04-23 14:07:15 (GMT) |
commit | aed9957d22a4fa2e64df08a0e5ddfdbf309f130a (patch) | |
tree | ee1bfdbffcdbd11ec23d3a5ed25eabd53e11c0c5 | |
parent | 18f4f0ba13bbfe901dae44e95d869ba0425e93c7 (diff) | |
download | swift-contrib-aed9957d22a4fa2e64df08a0e5ddfdbf309f130a.zip swift-contrib-aed9957d22a4fa2e64df08a0e5ddfdbf309f130a.tar.bz2 |
Stop over-enlarging nested span elements in chat windows.
Resolves: #891
-rw-r--r-- | Swift/QtUI/ChatSnippet.cpp | 4 | ||||
-rw-r--r-- | Swift/QtUI/ChatSnippet.h | 1 | ||||
-rw-r--r-- | Swift/QtUI/MessageSnippet.cpp | 6 | ||||
-rw-r--r-- | Swift/QtUI/QtChatView.cpp | 4 | ||||
-rw-r--r-- | Swift/QtUI/SystemMessageSnippet.cpp | 6 |
5 files changed, 13 insertions, 8 deletions
diff --git a/Swift/QtUI/ChatSnippet.cpp b/Swift/QtUI/ChatSnippet.cpp index 7524623..ab31d29 100644 --- a/Swift/QtUI/ChatSnippet.cpp +++ b/Swift/QtUI/ChatSnippet.cpp @@ -29,10 +29,14 @@ QString ChatSnippet::timeToEscapedString(const QDateTime& time) { date = date + "d "; } if (time.date().year() != now.year()) { date = date + "yy "; } date += "h:mm"; return escape(time.toString(date)); } +QString ChatSnippet::wrapResizable(const QString& text) { + return "<span class='swift_resizable'>" + text + "</span>"; +} + }; diff --git a/Swift/QtUI/ChatSnippet.h b/Swift/QtUI/ChatSnippet.h index 523a96c..f79f487 100644 --- a/Swift/QtUI/ChatSnippet.h +++ b/Swift/QtUI/ChatSnippet.h @@ -35,18 +35,19 @@ namespace Swift { result.replace("%shortTime%", "%%shortTime%"); result.replace("%userIconPath%", "%userIconPath%"); result.replace(" ", " "); return result; } static QString timeToEscapedString(const QDateTime& time); protected: + QString wrapResizable(const QString& text); void setContinuationFallbackSnippet(boost::shared_ptr<ChatSnippet> continuationFallback) { continuationFallback_ = continuationFallback; } private: bool appendToPrevious_; boost::shared_ptr<ChatSnippet> continuationFallback_; }; } diff --git a/Swift/QtUI/MessageSnippet.cpp b/Swift/QtUI/MessageSnippet.cpp index a2e4651..7505905 100644 --- a/Swift/QtUI/MessageSnippet.cpp +++ b/Swift/QtUI/MessageSnippet.cpp @@ -26,21 +26,21 @@ MessageSnippet::MessageSnippet(const QString& message, const QString& sender, co else { if (appendToPrevious) { content_ = theme->getOutgoingNextContent(); } else { content_ = theme->getOutgoingContent(); } } - content_.replace("%message%", "<span class='swift_message'>" + escape(message) + "</span><span class='swift_ack'></span><span class='swift_receipt'></span>"); - content_.replace("%sender%", escape(sender)); - content_.replace("%time%", "<span class='swift_time'>" + timeToEscapedString(time) + "</span>"); + content_.replace("%message%", wrapResizable("<span class='swift_message'>" + escape(message) + "</span><span class='swift_ack'></span><span class='swift_receipt'></span>")); + content_.replace("%sender%", wrapResizable(escape(sender))); + content_.replace("%time%", wrapResizable("<span class='swift_time'>" + timeToEscapedString(time) + "</span>")); content_.replace("%userIconPath%", escape(iconURI)); content_ = "<div id='" + id + "'>" + content_ + "</div>"; } MessageSnippet::~MessageSnippet() { } } diff --git a/Swift/QtUI/QtChatView.cpp b/Swift/QtUI/QtChatView.cpp index b0c4e09..4fa25ee 100644 --- a/Swift/QtUI/QtChatView.cpp +++ b/Swift/QtUI/QtChatView.cpp @@ -112,19 +112,19 @@ void QtChatView::addToDOM(boost::shared_ptr<ChatSnippet> snippet) { continuationElement.replace(newElement); } else { continuationElement.removeFromDocument(); newInsertPoint_.prependOutside(newElement); } lastElement_ = newElement; if (fontSizeSteps_ != 0) { double size = 1.0 + 0.2 * fontSizeSteps_; QString sizeString(QString().setNum(size, 'g', 3) + "em"); - const QWebElementCollection spans = lastElement_.findAll("span"); + const QWebElementCollection spans = lastElement_.findAll("span.swift_resizable"); foreach (QWebElement span, spans) { span.setStyleProperty("font-size", sizeString); } } } void QtChatView::addLastSeenLine() { if (lineSeparator_.isNull()) { lineSeparator_ = newInsertPoint_.clone(); @@ -251,19 +251,19 @@ void QtChatView::decreaseFontSize() { } emit fontResized(fontSizeSteps_); } void QtChatView::resizeFont(int fontSizeSteps) { fontSizeSteps_ = fontSizeSteps; double size = 1.0 + 0.2 * fontSizeSteps_; QString sizeString(QString().setNum(size, 'g', 3) + "em"); //qDebug() << "Setting to " << sizeString; - const QWebElementCollection spans = document_.findAll("span"); + const QWebElementCollection spans = document_.findAll("span.swift_resizable"); foreach (QWebElement span, spans) { span.setStyleProperty("font-size", sizeString); } webView_->setFontSizeIsMinimal(size == 1.0); } void QtChatView::resetView() { lastElement_ = QWebElement(); QString pageHTML = theme_->getTemplate(); diff --git a/Swift/QtUI/SystemMessageSnippet.cpp b/Swift/QtUI/SystemMessageSnippet.cpp index 2e0aec4..c78fe36 100644 --- a/Swift/QtUI/SystemMessageSnippet.cpp +++ b/Swift/QtUI/SystemMessageSnippet.cpp @@ -10,19 +10,19 @@ namespace Swift { SystemMessageSnippet::SystemMessageSnippet(const QString& message, const QDateTime& time, bool appendToPrevious, QtChatTheme* theme) : ChatSnippet(appendToPrevious) { if (appendToPrevious) { setContinuationFallbackSnippet(boost::shared_ptr<ChatSnippet>(new SystemMessageSnippet(message, time, false, theme))); } content_ = theme->getStatus(); - content_.replace("%message%", "<span class='swift_message'>" + escape(message) + "</span>"); - content_.replace("%shortTime%", escape(time.toString("h:mm"))); - content_.replace("%time%", "<span class='swift_time'>" + timeToEscapedString(time) + "</span>"); + content_.replace("%message%", wrapResizable("<span class='swift_message'>" + escape(message) + "</span>")); + content_.replace("%shortTime%", wrapResizable(escape(time.toString("h:mm")))); + content_.replace("%time%", wrapResizable("<span class='swift_time'>" + timeToEscapedString(time) + "</span>")); } SystemMessageSnippet::~SystemMessageSnippet() { } } |