Changeset b179a5cc1e71…
Parent 9c45f864ab67…
by
Changes to 2 files · Browse files at b179a5cc1e71 Showing diff from parent 9c45f864ab67 Diff from another changeset...
@@ -39,6 +39,7 @@ 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, \
0, 0, hinst, None)
UpdateWindow(self.hwnd)
+ self.guithread = None
self._DoCreateIcons()
def _DoCreateIcons(self):
@@ -91,9 +92,11 @@ def OnCommand(self, hwnd, msg, wparam, lparam):
id = LOWORD(wparam)
if id == 1023:
- # place holder for options dialog
- msg = "TortoiseHG options dialog in construction"
- win32ui.MessageBox(msg, 'TortoiseHG options...', win32con.MB_OK)
+ if not self.guithread or not self.guithread.isAlive():
+ self.launchgui()
+ else:
+ msg = "TortoiseHG options dialog already running"
+ win32ui.MessageBox(msg, 'TortoiseHG options...', win32con.MB_OK)
elif id == 1025:
self.exit_application()
else:
@@ -102,7 +105,10 @@ def exit_application(self):
if self.stop_pipe_server():
DestroyWindow(self.hwnd)
- print "Goodbye"
+ if self.guithread and self.guithread.isAlive():
+ import gobject
+ gobject.idle_add(self.dialog.destroy)
+ print "Goodbye"
def stop_pipe_server(self):
print "Stopping pipe server..."
@@ -130,6 +136,21 @@ else:
return True
+ def launchgui(self):
+ def launch():
+ import gtk
+ from hggtk import taskbarui, hgtk
+ dlg = taskbarui.TaskBarUI(rpcserver.logq)
+ dlg.show_all()
+ dlg.connect('destroy', gtk.main_quit)
+ self.dialog = dlg
+ gtk.gdk.threads_init()
+ gtk.gdk.threads_enter()
+ gtk.main()
+ gtk.gdk.threads_leave()
+
+ self.guithread = thread2.Thread(target=launch)
+ self.guithread.start()
def start_pipe_server(self):
def servepipe():
|
Loading...