From 7f321edd9ada1f531b1fbc3325ef61449218f40c Mon Sep 17 00:00:00 2001
From: Tobias Markmann <tm@ayena.de>
Date: Mon, 26 Oct 2015 14:00:29 +0100
Subject: Only highlight text if a highlight color is set

This commit has the default rule set the default color and
changes HighlightAction::highlightText_ symbol to
HighlightAction::highlightWholeMessage_ as it is more
descriptive of its use.

Test-Information:

Tested highlighting with the default rule set, and one with
a highlight color set for the chat rule.

Change-Id: Ic638e6347bdf6623ab5959341486233494f005f0

diff --git a/Swift/Controllers/HighlightAction.cpp b/Swift/Controllers/HighlightAction.cpp
index 80d9d85..4603408 100644
--- a/Swift/Controllers/HighlightAction.cpp
+++ b/Swift/Controllers/HighlightAction.cpp
@@ -14,10 +14,10 @@
 
 namespace Swift {
 
-void HighlightAction::setHighlightAllText(bool highlightText)
+void HighlightAction::setHighlightWholeMessage(bool highlightText)
 {
-	highlightText_ = highlightText;
-	if (!highlightText_) {
+	highlightWholeMessage_ = highlightText;
+	if (!highlightWholeMessage_) {
 		textColor_.clear();
 		textBackground_.clear();
 	}
@@ -32,7 +32,7 @@ void HighlightAction::setPlaySound(bool playSound)
 }
 
 bool operator ==(HighlightAction const& a, HighlightAction const& b) {
-	if (a.highlightAllText() != b.highlightAllText()) {
+	if (a.highlightWholeMessage() != b.highlightWholeMessage()) {
 		return false;
 	}
 
diff --git a/Swift/Controllers/HighlightAction.h b/Swift/Controllers/HighlightAction.h
index a9e0cee..3930eee 100644
--- a/Swift/Controllers/HighlightAction.h
+++ b/Swift/Controllers/HighlightAction.h
@@ -14,8 +14,8 @@
 
 #include <string>
 
-#include <boost/archive/text_oarchive.hpp>
 #include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
 
 namespace Swift {
 
@@ -23,13 +23,13 @@ namespace Swift {
 
 	class HighlightAction {
 		public:
-			HighlightAction() : highlightText_(false), playSound_(false) {}
+			HighlightAction() : highlightWholeMessage_(false), playSound_(false) {}
 
 			/**
 			* Gets the flag that indicates the entire message should be highlighted.
 			*/
-			bool highlightAllText() const { return highlightText_; }
-			void setHighlightAllText(bool highlightText);
+			bool highlightWholeMessage() const { return highlightWholeMessage_; }
+			void setHighlightWholeMessage(bool highlightText);
 
 			/**
 			* Gets the foreground highlight color.
@@ -52,13 +52,13 @@ namespace Swift {
 			const std::string& getSoundFile() const { return soundFile_; }
 			void setSoundFile(const std::string& soundFile) { soundFile_ = soundFile; }
 
-			bool isEmpty() const { return !highlightText_ && !playSound_; }
+			bool isEmpty() const { return !highlightWholeMessage_ && !playSound_; }
 
 		private:
 			friend class boost::serialization::access;
 			template<class Archive> void serialize(Archive & ar, const unsigned int version);
 
-			bool highlightText_;
+			bool highlightWholeMessage_;
 			std::string textColor_;
 			std::string textBackground_;
 
@@ -72,7 +72,7 @@ namespace Swift {
 	template<class Archive>
 	void HighlightAction::serialize(Archive& ar, const unsigned int /*version*/)
 	{
-		ar & highlightText_;
+		ar & highlightWholeMessage_;
 		ar & textColor_;
 		ar & textBackground_;
 		ar & playSound_;
diff --git a/Swift/Controllers/HighlightManager.cpp b/Swift/Controllers/HighlightManager.cpp
index ed49e72..e5c8cef 100644
--- a/Swift/Controllers/HighlightManager.cpp
+++ b/Swift/Controllers/HighlightManager.cpp
@@ -10,21 +10,23 @@
  * See the COPYING file for more information.
  */
 
+#include <Swift/Controllers/HighlightManager.h>
+
 #include <cassert>
 
 #include <boost/algorithm/string.hpp>
-#include <boost/regex.hpp>
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
 #include <boost/bind.hpp>
 #include <boost/numeric/conversion/cast.hpp>
+#include <boost/regex.hpp>
 #include <boost/serialization/vector.hpp>
-#include <boost/archive/text_oarchive.hpp>
-#include <boost/archive/text_iarchive.hpp>
 
 #include <Swiften/Base/foreach.h>
-#include <Swift/Controllers/HighlightManager.h>
+
 #include <Swift/Controllers/Highlighter.h>
-#include <Swift/Controllers/Settings/SettingsProvider.h>
 #include <Swift/Controllers/SettingConstants.h>
+#include <Swift/Controllers/Settings/SettingsProvider.h>
 
 /* How does highlighting work?
  *
diff --git a/Swift/QtUI/QtHighlightEditor.cpp b/Swift/QtUI/QtHighlightEditor.cpp
index 50d1f78..1d47c4e 100644
--- a/Swift/QtUI/QtHighlightEditor.cpp
+++ b/Swift/QtUI/QtHighlightEditor.cpp
@@ -427,7 +427,7 @@ HighlightRule QtHighlightEditor::ruleFromDialog()
 	}
 
 	if (ui_.allMsgRadio->isChecked()) {
-		action.setHighlightAllText(true);
+		action.setHighlightWholeMessage(true);
 	}
 
 	if (ui_.senderRadio->isChecked()) {
@@ -436,7 +436,7 @@ HighlightRule QtHighlightEditor::ruleFromDialog()
 			std::vector<std::string> senders;
 			senders.push_back(Q2PSTRING(senderName));
 			rule.setSenders(senders);
-			action.setHighlightAllText(true);
+			action.setHighlightWholeMessage(true);
 		}
 	}
 
diff --git a/Swift/QtUI/QtWebKitChatView.cpp b/Swift/QtUI/QtWebKitChatView.cpp
index f1278b8..7e0e505 100644
--- a/Swift/QtUI/QtWebKitChatView.cpp
+++ b/Swift/QtUI/QtWebKitChatView.cpp
@@ -623,8 +623,10 @@ std::string QtWebKitChatView::addMessage(
 
 	QString styleSpanStart = style == "" ? "" : "<span style=\"" + style + "\">";
 	QString styleSpanEnd = style == "" ? "" : "</span>";
-	QString highlightSpanStart = highlight.highlightAllText() ? getHighlightSpanStart(highlight) : "";
-	QString highlightSpanEnd = highlight.highlightAllText() ? "</span>" : "";
+
+	bool highlightWholeMessage = highlight.highlightWholeMessage() && highlight.getTextBackground() != "" && highlight.getTextColor() != "";
+	QString highlightSpanStart = highlightWholeMessage ? getHighlightSpanStart(highlight) : "";
+	QString highlightSpanEnd = highlightWholeMessage ? "</span>" : "";
 	htmlString += "<span class='swift_inner_message'>" + styleSpanStart + highlightSpanStart + message + highlightSpanEnd + styleSpanEnd + "</span>" ;
 
 	bool appendToPrevious = appendToPreviousCheck(PreviousMessageWasMessage, senderName, senderIsSelf);
@@ -871,8 +873,8 @@ void QtWebKitChatView::replaceMessage(const QString& message, const std::string&
 
 		QString styleSpanStart = style == "" ? "" : "<span style=\"" + style + "\">";
 		QString styleSpanEnd = style == "" ? "" : "</span>";
-		QString highlightSpanStart = highlight.highlightAllText() ? getHighlightSpanStart(highlight) : "";
-		QString highlightSpanEnd = highlight.highlightAllText() ? "</span>" : "";
+		QString highlightSpanStart = highlight.highlightWholeMessage() ? getHighlightSpanStart(highlight) : "";
+		QString highlightSpanEnd = highlight.highlightWholeMessage() ? "</span>" : "";
 		messageHTML = styleSpanStart + highlightSpanStart + messageHTML + highlightSpanEnd + styleSpanEnd;
 
 		replaceMessage(messageHTML, P2QSTRING(id), B2QDATE(time));
-- 
cgit v0.10.2-6-g49f6