On Mon, Sep 14, 2009 at 17:40, Adrian Buehlmann <adr...@cadifra.com> wrote:
> On 14.09.2009 09:53, Yuki KODAMA wrote:
>> On Mon, Sep 14, 2009 at 16:37, Adrian Buehlmann <adr...@cadifra.com> wrote:
>>> On 14.09.2009 06:59, Yuki KODAMA wrote:
>>>> Hi,
>>>>
>>>> When I open Taskbar setting dialog from context menu of tray icon,
>>>> it doesn't open the dialog and I got these errors in "thgtaskbar.exe.log" 
>>>> file:
>>>>
>>>> C:\Program Files\TortoiseHg\library.zip\tortoisehg\hgtk\gtklib.py:48:
>>>> GtkWarning: gtkwidget.c:4247: widget `GtkWindow' has no activatable
>>>> signal "thg-close" without arguments
>>>> C:\Program Files\TortoiseHg\library.zip\tortoisehg\hgtk\gtklib.py:51:
>>>> GtkWarning: gtkwidget.c:4247: widget `GtkWindow' has no activatable
>>>> signal "thg-exit" without arguments
>>>> C:\Program Files\TortoiseHg\library.zip\tortoisehg\hgtk\gtklib.py:54:
>>>> GtkWarning: gtkwidget.c:4247: widget `GtkWindow' has no activatable
>>>> signal "thg-refresh" without arguments
>>>> C:\Program Files\TortoiseHg\library.zip\tortoisehg\hgtk\gtklib.py:57:
>>>> GtkWarning: gtkwidget.c:4247: widget `GtkWindow' has no activatable
>>>> signal "thg-accept" without arguments
>>>> Exception in thread Thread-3:
>>>> Traceback (most recent call last):
>>>>   File "threading.pyo", line 486, in __bootstrap_inner
>>>>   File "threading.pyo", line 446, in run
>>>>   File "thgtaskbar.py", line 175, in launch
>>>>   File "tortoisehg\hgtk\taskbarui.pyo", line 26, in __init__
>>>>   File "tortoisehg\hgtk\gtklib.pyo", line 60, in set_tortoise_keys
>>>> TypeError: <TaskBarUI object at 0x1332be8 (GtkWindow at 0x198f008)>:
>>>> unknown signal name: thg-close
>>>>
>>> It seems this was first introduced by:
>>>
>>> changeset:   3985:db36d1f7e96a
>>> user:        Steve Borho <st...@borho.org>
>>> date:        Sun Sep 13 10:57:06 2009 -0500
>>> summary:     hggtk, thgutil: move Python packages under tortoisehg
>>>
>>> from default branch.
>>>
>>> 0.8.X should be unaffected.
>>
>> Yup. IMHO, it causes by gtklib.set_tortoise_keys() method calling.
>> "set_tortoise_keys" method sets some TortoiseHg's signals, but it failed.
>> This means "taskbarui" dialog doesn't have "thg-close" signal.
>> Therefore, it also means "taskbarui" dialog isn't called via "hgtk.py".
>> You know "hgtk.py" has registration codes of TortoiseHg's signals
>> (thg-close, thg-exit, etc) at begin of file.
>>
>
> Funny that there was no traceback before db36d1f7e96a.
> The following patch seems to fix it for me:
>
> diff --git a/thgtaskbar.py b/thgtaskbar.py
> --- a/thgtaskbar.py
> +++ b/thgtaskbar.py
> @@ -8,6 +8,8 @@ import time
>  import threading
>  import cStringIO
>  import Queue
> +import gtk
> +import gobject
>
>  from win32api import *
>  from win32gui import *
> @@ -37,6 +39,11 @@ if hasattr(sys, "frozen"):
>
>  APP_TITLE = _('TortoiseHg RPC server')
>
> +# Add TortoiseHg signals, hooked to key accelerators in gtklib
> +for sig in ('thg-exit', 'thg-close', 'thg-refresh', 'thg-accept'):
> +    gobject.signal_new(sig, gtk.Window,
> +            gobject.SIGNAL_ACTION, gobject.TYPE_NONE, ())
> +
>  SHOWLOG_CMD = 1023
>  EXIT_CMD = 1025
>

Thanks for a patch, Adrian!
However, we should do something for these duplicated codes.
It's DRY principle.

-- 
Yuki KODAMA

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to