From 17f28f938890b58dad9480f89924a21c3cd5ff3d Mon Sep 17 00:00:00 2001
From: Nikos Kouremenos <kourem@gmail.com>
Date: Mon, 12 Dec 2005 13:00:46 +0000
Subject: [PATCH] add catching for links and emots in history window

---
 src/conversation_textview.py |  5 +++--
 src/gtkgui.glade             | 20 ++------------------
 src/history_window.py        | 27 +++++++--------------------
 3 files changed, 12 insertions(+), 40 deletions(-)

diff --git a/src/conversation_textview.py b/src/conversation_textview.py
index 03fc4914ff..8fe28418cc 100644
--- a/src/conversation_textview.py
+++ b/src/conversation_textview.py
@@ -624,11 +624,12 @@ def print_subject(self, subject):
 			self.print_empty_line()
 
 	def print_real_text(self, text, text_tags = [], name = None):
-		'''/me is replaces by name if name is given'''
+		'''this adds normal and special text. call this to add text'''
 		buffer = self.get_buffer()
-		# detect urls formatting and if the user has it on emoticons
+		# /me is replaced by name if name is given
 		if name and text.startswith('/me ') or text.startswith('/me\n'):
 			text = '* ' + name + text[3:]
+		# detect urls formatting and if the user has it on emoticons
 		index = self.detect_and_print_special_text(text, text_tags)
 
 		# add the rest of text located in the index and after
diff --git a/src/gtkgui.glade b/src/gtkgui.glade
index 39bf1bd93e..0f03aae8f5 100644
--- a/src/gtkgui.glade
+++ b/src/gtkgui.glade
@@ -9025,7 +9025,7 @@ Custom</property>
 	  </child>
 
 	  <child>
-	    <widget class="GtkScrolledWindow" id="scrolledwindow16">
+	    <widget class="GtkScrolledWindow" id="scrolledwindow">
 	      <property name="visible">True</property>
 	      <property name="can_focus">True</property>
 	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
@@ -9034,23 +9034,7 @@ Custom</property>
 	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 
 	      <child>
-		<widget class="GtkTextView" id="history_textview">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="editable">False</property>
-		  <property name="overwrite">False</property>
-		  <property name="accepts_tab">True</property>
-		  <property name="justification">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap_mode">GTK_WRAP_WORD</property>
-		  <property name="cursor_visible">False</property>
-		  <property name="pixels_above_lines">0</property>
-		  <property name="pixels_below_lines">0</property>
-		  <property name="pixels_inside_wrap">0</property>
-		  <property name="left_margin">0</property>
-		  <property name="right_margin">0</property>
-		  <property name="indent">0</property>
-		  <property name="text" translatable="yes"></property>
-		</widget>
+		<placeholder/>
 	      </child>
 	    </widget>
 	    <packing>
diff --git a/src/history_window.py b/src/history_window.py
index 6f5ae8bcba..162c93f0ba 100644
--- a/src/history_window.py
+++ b/src/history_window.py
@@ -30,6 +30,7 @@
 import calendar
 
 import gtkgui_helpers
+import conversation_textview
 
 from common import gajim
 from common import helpers
@@ -65,7 +66,10 @@ def __init__(self, jid, account):
 		self.window = xml.get_widget('history_window')
 		
 		self.calendar = xml.get_widget('calendar')
-		self.history_buffer = xml.get_widget('history_textview').get_buffer()
+		scrolledwindow = xml.get_widget('scrolledwindow')
+		self.history_textview = conversation_textview.ConversationTextview(account)
+		scrolledwindow.add(self.history_textview)
+		self.history_buffer = self.history_textview.get_buffer()
 		self.query_entry = xml.get_widget('query_entry')
 		self.search_button = xml.get_widget('search_button')
 		query_builder_button = xml.get_widget('query_builder_button')
@@ -114,23 +118,6 @@ def __init__(self, jid, account):
 		# selected month is current month as calendar defaults to selecting
 		# current date
 		self.calendar.emit('month-changed')
-		
-
-		tag = self.history_buffer.create_tag('incoming')
-		color = gajim.config.get('inmsgcolor')
-		tag.set_property('foreground', color)
-
-		tag = self.history_buffer.create_tag('outgoing')
-		color = gajim.config.get('outmsgcolor')
-		tag.set_property('foreground', color)
-
-		tag = self.history_buffer.create_tag('status')
-		color = gajim.config.get('statusmsgcolor')
-		tag.set_property('foreground', color)
-
-		tag = self.history_buffer.create_tag('time_sometimes')
-		tag.set_property('foreground', 'grey')
-		tag.set_property('justification', gtk.JUSTIFY_CENTER)
 
 		# select and show logs for last date we have logs with contact
 		# and if we don't have logs at all, default to today
@@ -297,9 +284,9 @@ def add_new_line(self, contact_name, tim, kind, show, message):
 
 		message = message + '\n'
 		if tag_msg:
-			buf.insert_with_tags_by_name(end_iter, message, tag_msg)
+			self.history_textview.print_real_text(message, tag_msg)
 		else:
-			buf.insert(end_iter, message)
+			self.history_textview.print_real_text(message)
 
 	def set_unset_expand_on_expander(self, widget):
 		'''expander has to have expand to TRUE so scrolledwindow resizes properly
-- 
GitLab