|
|
@ -70,9 +70,9 @@ class _IdleObject(gobject.GObject): |
|
|
|
""" |
|
|
|
""" |
|
|
|
def __init__(self): |
|
|
|
def __init__(self): |
|
|
|
gobject.GObject.__init__(self) |
|
|
|
gobject.GObject.__init__(self) |
|
|
|
|
|
|
|
|
|
|
|
def emit(self, *args): |
|
|
|
def emit(self, *args): |
|
|
|
gobject.idle_add(gobject.GObject.emit,self,*args) |
|
|
|
gobject.idle_add(gobject.GObject.emit, self, *args) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class _WorkerThread(threading.Thread, _IdleObject): |
|
|
|
class _WorkerThread(threading.Thread, _IdleObject): |
|
|
@ -86,17 +86,17 @@ class _WorkerThread(threading.Thread, _IdleObject): |
|
|
|
(gobject.TYPE_PYOBJECT,)), # list/networkdata |
|
|
|
(gobject.TYPE_PYOBJECT,)), # list/networkdata |
|
|
|
"exception": ( |
|
|
|
"exception": ( |
|
|
|
gobject.SIGNAL_RUN_LAST, |
|
|
|
gobject.SIGNAL_RUN_LAST, |
|
|
|
gobject.TYPE_NONE, |
|
|
|
gobject.TYPE_NONE, |
|
|
|
(gobject.TYPE_PYOBJECT,)) # The exception |
|
|
|
(gobject.TYPE_PYOBJECT,)) # The exception |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, function, *args, **kwargs): |
|
|
|
def __init__(self, function, *args, **kwargs): |
|
|
|
threading.Thread.__init__(self) |
|
|
|
threading.Thread.__init__(self) |
|
|
|
_IdleObject.__init__(self) |
|
|
|
_IdleObject.__init__(self) |
|
|
|
self._function = function |
|
|
|
self._function = function |
|
|
|
self._args = args |
|
|
|
self._args = args |
|
|
|
self._kwargs = kwargs |
|
|
|
self._kwargs = kwargs |
|
|
|
|
|
|
|
|
|
|
|
def run(self): |
|
|
|
def run(self): |
|
|
|
# call the function |
|
|
|
# call the function |
|
|
|
_log.debug('Thread %s calling %s', self.name, str(self._function)) |
|
|
|
_log.debug('Thread %s calling %s', self.name, str(self._function)) |
|
|
@ -137,8 +137,8 @@ class _ThreadManager(object): |
|
|
|
|
|
|
|
|
|
|
|
# not actually a widget. It's the object that emitted the signal, in |
|
|
|
# not actually a widget. It's the object that emitted the signal, in |
|
|
|
# this case, the _WorkerThread object. |
|
|
|
# this case, the _WorkerThread object. |
|
|
|
thread_id = widget.name |
|
|
|
thread_id = widget.name |
|
|
|
|
|
|
|
|
|
|
|
_log.debug('Thread %s completed, %d threads in the queue', thread_id, |
|
|
|
_log.debug('Thread %s completed, %d threads in the queue', thread_id, |
|
|
|
len(self._thread_pool)) |
|
|
|
len(self._thread_pool)) |
|
|
|
|
|
|
|
|
|
|
@ -378,7 +378,7 @@ class Interface(object): |
|
|
|
'Settings', gtk.STOCK_PREFERENCES) |
|
|
|
'Settings', gtk.STOCK_PREFERENCES) |
|
|
|
#settings_action.connect('activate', self.show_settings) |
|
|
|
#settings_action.connect('activate', self.show_settings) |
|
|
|
|
|
|
|
|
|
|
|
self._update_action = gtk.Action('Update', '_Update', |
|
|
|
self._update_action = gtk.Action('Update', '_Update', |
|
|
|
'Update your status', gtk.STOCK_ADD) |
|
|
|
'Update your status', gtk.STOCK_ADD) |
|
|
|
self._update_action.set_property('sensitive', False) |
|
|
|
self._update_action.set_property('sensitive', False) |
|
|
|
self._update_action.connect('activate', self._update_status) |
|
|
|
self._update_action.connect('activate', self._update_status) |
|
|
@ -484,6 +484,23 @@ class Interface(object): |
|
|
|
update_area = gtk.VBox(True, 0) |
|
|
|
update_area = gtk.VBox(True, 0) |
|
|
|
update_area.pack_start(update_box) |
|
|
|
update_area.pack_start(update_box) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" Spell checking the update box """ |
|
|
|
|
|
|
|
spell_check_enabled = self._options[self.NAMESPACE]['spell_check'] |
|
|
|
|
|
|
|
if spell_check_enabled: |
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
import gtkspell |
|
|
|
|
|
|
|
import locale |
|
|
|
|
|
|
|
self.spell_check_support = True |
|
|
|
|
|
|
|
language = locale.getlocale()[0] |
|
|
|
|
|
|
|
self.spell_check = gtkspell.Spell(self._update_text, language) |
|
|
|
|
|
|
|
_log.debug('Spell checking turned on with language: %s' \ |
|
|
|
|
|
|
|
% (language)) |
|
|
|
|
|
|
|
except: |
|
|
|
|
|
|
|
self._options[self.NAMESPACE]['spell_check'] = False |
|
|
|
|
|
|
|
self.spell_check_support = False |
|
|
|
|
|
|
|
_log.debug('Error initializing spell checking: ' \ |
|
|
|
|
|
|
|
'spell checking disabled') |
|
|
|
|
|
|
|
|
|
|
|
return update_area |
|
|
|
return update_area |
|
|
|
|
|
|
|
|
|
|
|
def _create_statusbar(self): |
|
|
|
def _create_statusbar(self): |
|
|
@ -601,7 +618,6 @@ class Interface(object): |
|
|
|
# ------------------------------------------------------------ |
|
|
|
# ------------------------------------------------------------ |
|
|
|
# Widget callback functions |
|
|
|
# Widget callback functions |
|
|
|
# ------------------------------------------------------------ |
|
|
|
# ------------------------------------------------------------ |
|
|
|
|
|
|
|
|
|
|
|
def _count_chars(self, text_buffer): |
|
|
|
def _count_chars(self, text_buffer): |
|
|
|
"""Count the number of chars in the edit field and update the |
|
|
|
"""Count the number of chars in the edit field and update the |
|
|
|
label that shows the available space.""" |
|
|
|
label that shows the available space.""" |
|
|
@ -775,7 +791,6 @@ class Interface(object): |
|
|
|
# ------------------------------------------------------------ |
|
|
|
# ------------------------------------------------------------ |
|
|
|
# Required functions for all interfaces |
|
|
|
# Required functions for all interfaces |
|
|
|
# ------------------------------------------------------------ |
|
|
|
# ------------------------------------------------------------ |
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, connection, options): |
|
|
|
def __init__(self, connection, options): |
|
|
|
"""Start the interface. `connection` is the :class:`Networks` object |
|
|
|
"""Start the interface. `connection` is the :class:`Networks` object |
|
|
|
with all the available networks. `options` is the :class:`ConfigOpt` |
|
|
|
with all the available networks. `options` is the :class:`ConfigOpt` |
|
|
@ -813,7 +828,7 @@ class Interface(object): |
|
|
|
self._threads = _ThreadManager() |
|
|
|
self._threads = _ThreadManager() |
|
|
|
|
|
|
|
|
|
|
|
# queue the first fetch |
|
|
|
# queue the first fetch |
|
|
|
self._threads.add_work(self._post_get_messages, |
|
|
|
self._threads.add_work(self._post_get_messages, |
|
|
|
self._exception_get_messages, |
|
|
|
self._exception_get_messages, |
|
|
|
self._connection.messages) |
|
|
|
self._connection.messages) |
|
|
|
|
|
|
|
|
|
|
@ -887,4 +902,12 @@ class Interface(object): |
|
|
|
default='blue', |
|
|
|
default='blue', |
|
|
|
conflict_group='interface', |
|
|
|
conflict_group='interface', |
|
|
|
is_cmd_option=False) |
|
|
|
is_cmd_option=False) |
|
|
|
|
|
|
|
options.add_option( |
|
|
|
|
|
|
|
group=self.NAMESPACE, |
|
|
|
|
|
|
|
option='spell_check', |
|
|
|
|
|
|
|
help='Spell checking update text', |
|
|
|
|
|
|
|
type='boolean', |
|
|
|
|
|
|
|
metavar='SPELL', |
|
|
|
|
|
|
|
default=False, |
|
|
|
|
|
|
|
conflict_group='interface', |
|
|
|
|
|
|
|
is_cmd_option=False) |
|
|
|