Changeset d62a691052ae…
Parent 55856833dd63…
by
Changes to 4 files · Browse files at d62a691052ae Showing diff from parent 55856833dd63 Diff from another changeset...
@@ -80,6 +80,8 @@ self.textview.modify_font(pango.FontDescription('Monospace'))
scrolledwindow.add(self.textview)
self.textbuffer = self.textview.get_buffer()
+ self.textbuffer.create_tag('error', weight=pango.WEIGHT_HEAVY,
+ foreground='#900000')
self.vbox.pack_start(scrolledwindow, True, True)
self.connect('map_event', self._on_window_map_event)
@@ -130,6 +132,13 @@ self.textview.scroll_to_mark(self.textbuffer.get_insert(), 0)
except Queue.Empty:
pass
+ while self.hgthread.geterrqueue().qsize():
+ try:
+ msg = self.hgthread.geterrqueue().get(0)
+ self.textbuffer.insert_with_tags_by_name(enditer, msg, 'error')
+ self.textview.scroll_to_mark(self.textbuffer.get_insert(), 0)
+ except Queue.Empty:
+ pass
self.update_progress()
if not self.hgthread.isAlive():
self._button_stop.set_sensitive(False)
|
@@ -22,8 +22,8 @@ Instead, it places output and dialog requests onto queues for the
main thread to pickup.
'''
- def __init__(self, src=None, outputq=None, dialogq=None, responseq=None,
- parentui=None):
+ def __init__(self, src=None, outputq=None, errorq=None, dialogq=None,
+ responseq=None, parentui=None):
if parentui:
# Mercurial 1.2
super(GtkUi, self).__init__(parentui=parentui)
@@ -33,10 +33,12 @@ super(GtkUi, self).__init__(src)
if src:
self.outputq = src.outputq
+ self.errorq = src.errorq
self.dialogq = src.dialogq
self.responseq = src.responseq
else:
self.outputq = outputq
+ self.errorq = errorq
self.dialogq = dialogq
self.responseq = responseq
self.setconfig('ui', 'interactive', 'on')
@@ -48,7 +50,7 @@
def write_err(self, *args):
for a in args:
- self.outputq.put('*** ' + str(a))
+ self.errorq.put(str(a))
def flush(self):
pass
@@ -95,9 +97,11 @@ '''
def __init__(self, args=[], postfunc=None, parent=None):
self.outputq = Queue.Queue()
+ self.errorq = Queue.Queue()
self.dialogq = Queue.Queue()
self.responseq = Queue.Queue()
- self.ui = GtkUi(None, self.outputq, self.dialogq, self.responseq)
+ self.ui = GtkUi(None, self.outputq, self.errorq, self.dialogq,
+ self.responseq)
self.args = args
self.ret = None
self.postfunc = postfunc
@@ -107,6 +111,9 @@ def getqueue(self):
return self.outputq
+ def geterrqueue(self):
+ return self.errorq
+
def return_code(self):
'''
None - command is incomplete, possibly exited with exception
|
@@ -83,6 +83,8 @@ scrolledwindow.add(self.textview)
self.textview.set_editable(False)
self.textbuffer = self.textview.get_buffer()
+ self.textbuffer.create_tag('error', weight=pango.WEIGHT_HEAVY,
+ foreground='#900000')
vbox.pack_start(scrolledwindow, True, True)
self.stbar = gtklib.StatusBar()
@@ -189,6 +191,11 @@ else:
self.textbuffer.set_text(msg)
+ def write_err(self, msg):
+ enditer = self.textbuffer.get_end_iter()
+ self.textbuffer.insert_with_tags_by_name(enditer, msg, 'error')
+ self.textview.scroll_to_mark(self.textbuffer.get_insert(), 0)
+
def process_queue(self):
"""
Handle all the messages currently in the queue (if any).
@@ -200,13 +207,20 @@ self.write(msg)
except Queue.Empty:
pass
+ while self.hgthread.geterrqueue().qsize():
+ try:
+ msg = self.hgthread.geterrqueue().get(0)
+ self.write_err(msg)
+ except Queue.Empty:
+ pass
+
if self._cmd_running():
return True
else:
self.stbar.end()
self._stop_button.set_sensitive(False)
if self.hgthread.return_code() is None:
- self.write(_('[command interrupted]'))
+ self.write_err(_('[command interrupted]'))
return False # Stop polling this function
def run(ui, *pats, **opts):
|
@@ -228,6 +228,8 @@ self.textview.set_editable(False)
self.textview.connect('populate-popup', self._add_to_popup)
self.textbuffer = self.textview.get_buffer()
+ self.textbuffer.create_tag('error', weight=pango.WEIGHT_HEAVY,
+ foreground='#900000')
vbox.pack_start(scrolledwindow, True, True)
self.buttonhbox = gtk.HBox()
@@ -569,6 +571,11 @@ else:
self.textbuffer.set_text(msg)
+ def write_err(self, msg):
+ enditer = self.textbuffer.get_end_iter()
+ self.textbuffer.insert_with_tags_by_name(enditer, msg, 'error')
+ self.textview.scroll_to_mark(self.textbuffer.get_insert(), 0)
+
def process_queue(self):
"""
Handle all the messages currently in the queue (if any).
@@ -580,6 +587,12 @@ self.write(msg)
except Queue.Empty:
pass
+ while self.hgthread.geterrqueue().qsize():
+ try:
+ msg = self.hgthread.geterrqueue().get(0)
+ self.write_err(msg)
+ except Queue.Empty:
+ pass
if self._cmd_running():
return True
@@ -589,7 +602,7 @@ self.stbar.end()
self._stop_button.set_sensitive(False)
if self.hgthread.return_code() is None:
- self.write(_('[command interrupted]'))
+ self.write_err(_('[command interrupted]'))
if self.notify_func:
self.notify_func(self.notify_args)
return False # Stop polling this function
|
Loading...