From a3c71dd9b0597efbef18c23b797919863595d170 Mon Sep 17 00:00:00 2001
From: Catalin Badea <catalin.badea392@gmail.com>
Date: Thu, 9 Aug 2012 10:07:42 +0300
Subject: Highlight search term.


diff --git a/Swift/QtUI/QtChatView.cpp b/Swift/QtUI/QtChatView.cpp
index 74ffb8b..05e2191 100644
--- a/Swift/QtUI/QtChatView.cpp
+++ b/Swift/QtUI/QtChatView.cpp
@@ -294,6 +294,8 @@ void QtChatView::handleFrameSizeChanged() {
 	if (isAtBottom_) {
 		scrollToBottom();
 	}
+
+	emit contentSizeChanged();
 }
 
 void QtChatView::handleLinkClicked(const QUrl& url) {
@@ -466,4 +468,8 @@ void QtChatView::resetTopInsertPoint() {
 	firstElement_ = QWebElement();
 }
 
+bool QtChatView::findText(const QString& text, QWebPage::FindFlags options) {
+	return webPage_->findText(text, options);
+}
+
 }
diff --git a/Swift/QtUI/QtChatView.h b/Swift/QtUI/QtChatView.h
index 8c523d5..6b5d21f 100644
--- a/Swift/QtUI/QtChatView.h
+++ b/Swift/QtUI/QtChatView.h
@@ -11,6 +11,7 @@
 #include <QWidget>
 #include <QList>
 #include <QWebElement>
+#include <QWebPage>
 
 #include <boost/shared_ptr.hpp>
 
@@ -47,6 +48,8 @@ namespace Swift {
 			void setMUCInvitationJoined(QString id);
 			void showEmoticons(bool show);
 			int getSnippetPositionByDate(const QDate& date);
+			bool findText(const QString& text, QWebPage::FindFlags options);
+
 		signals:
 			void gotFocus();
 			void fontResized(int);
@@ -54,6 +57,7 @@ namespace Swift {
 			void scrollRequested(int pos);
 			void scrollReachedTop();
 			void scrollReachedBottom();
+			void contentSizeChanged();
 
 		public slots:
 			void copySelectionToClipboard();
diff --git a/Swift/QtUI/QtHistoryWindow.cpp b/Swift/QtUI/QtHistoryWindow.cpp
index b9f2e91..c2dcbcb 100644
--- a/Swift/QtUI/QtHistoryWindow.cpp
+++ b/Swift/QtUI/QtHistoryWindow.cpp
@@ -61,6 +61,7 @@ QtHistoryWindow::QtHistoryWindow(SettingsProvider* settings, UIEventStream* even
 	connect(conversation_, SIGNAL(scrollReachedTop()), this, SLOT(handleScrollReachedTop()));
 	connect(conversation_, SIGNAL(scrollReachedBottom()), this, SLOT(handleScrollReachedBottom()));
 	connect(conversation_, SIGNAL(fontResized(int)), this, SLOT(handleFontResized(int)));
+	connect(conversation_, SIGNAL(contentSizeChanged()), this, SLOT(handleContentSizeChanged()));
 	connect(ui_.searchBox_->lineEdit(), SIGNAL(returnPressed()), this, SLOT(handleReturnPressed()));
 	connect(ui_.calendarWidget_, SIGNAL(clicked(const QDate&)), this, SLOT(handleCalendarClicked(const QDate&)));
 	connect(ui_.calendarWidget_, SIGNAL(activated(const QDate&)), this, SLOT(handleCalendarClicked(const QDate&)));
@@ -73,6 +74,7 @@ QtHistoryWindow::~QtHistoryWindow() {
 	disconnect(conversation_, SIGNAL(scrollReachedTop()), this, SLOT(handleScrollReachedTop()));
 	disconnect(conversation_, SIGNAL(scrollReachedBottom()), this, SLOT(handleScrollReachedBottom()));
 	disconnect(conversation_, SIGNAL(fontResized(int)), this, SLOT(handleFontResized(int)));
+	disconnect(conversation_, SIGNAL(contentSizeChanged()), this, SLOT(handleContentSizeChanged()));
 	disconnect(ui_.searchBox_->lineEdit(), SIGNAL(returnPressed()), this, SLOT(handleReturnPressed()));
 	disconnect(ui_.calendarWidget_, SIGNAL(clicked(const QDate&)), this, SLOT(handleCalendarClicked(const QDate&)));
 	disconnect(ui_.calendarWidget_, SIGNAL(activated(const QDate&)), this, SLOT(handleCalendarClicked(const QDate&)));
@@ -233,4 +235,8 @@ boost::gregorian::date QtHistoryWindow::getLastVisibleDate() {
 	return boost::gregorian::date(boost::gregorian::not_a_date_time);
 }
 
+void QtHistoryWindow::handleContentSizeChanged() {
+	conversation_->findText(ui_.searchBox_->lineEdit()->text(), QWebPage::HighlightAllOccurrences);
+}
+
 }
diff --git a/Swift/QtUI/QtHistoryWindow.h b/Swift/QtUI/QtHistoryWindow.h
index 49de098..79449bd 100644
--- a/Swift/QtUI/QtHistoryWindow.h
+++ b/Swift/QtUI/QtHistoryWindow.h
@@ -48,6 +48,7 @@ namespace Swift {
 			void handleCalendarClicked(const QDate& date);
 			void handlePreviousButtonClicked();
 			void handleNextButtonClicked();
+			void handleContentSizeChanged();
 
 		private:
 			void handleSomethingSelectedChanged(RosterItem* item);
-- 
cgit v0.10.2-6-g49f6