def update(self, callback): self._begin() self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.update(self.path) if self.result: self.result.finish() wrap_run(f, callback, result=self.result)
def checkout(self, callback=None): self._begin() dlg = CheckoutDialog() value = None if dlg.ShowModal() == wx.ID_OK: value = dlg.GetValue() dlg.Destroy() if not value: return if value["revision"]: r = value["revision"] else: r = self.svn.Revision(self.svn.opt_revision_kind.head) self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.checkout(value["url"], value["dir"], revision=r) if self.result: self.result.finish() wrap_run(f, callback, result=self.result)
def add(self, callback): self._begin() dlg = AddDialog(Globals.mainframe, tr('Add'), self.path) values = [] if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.add(values, False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result)
def revert(self, callback): self._begin() dlg = RevertDialog(tr('Revert'), self.path) values = [] if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.revert(values, False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result)
def commit(self, callback): self._begin() dlg = CommitDialog(tr('Commit'), self.path) values = None if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values and values['add_files'] + values['files']: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() if values['add_files']: client.add(values['add_files'], False) client.checkin(values['add_files'] + values['files'], values['message']) client.update('.', False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result)
def checkout(self, callback=None): self._begin() dlg = CheckoutDialog() value = None if dlg.ShowModal() == wx.ID_OK: value = dlg.GetValue() dlg.Destroy() if not value: return if value['revision']: r = value['revision'] else: r = self.svn.Revision(self.svn.opt_revision_kind.head) self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.checkout(value['url'], value['dir'], revision=r) if self.result: self.result.finish() wrap_run(f, callback, result=self.result)
class Command(object): def __init__(self, dirwin, *args): try: import pysvn client = pysvn.Client() except: common.showerror( dirwin, tr("You should install pysvn module first.\nYou can get it from http://pysvn.tigris.org/") ) return self.svn = pysvn self.dirwin = dirwin self.args = args self.pref = Globals.pref self.path = args[0] self.result = None self.cancel = False def _begin(self): self.cancel = False if self.result: self.result.Destory() self.result = None def export(self, callback=None): self._begin() dirwin = self.dirwin url = self.path path = get_path(dirwin.pref.version_control_export_path) self.pref.version_control_export_path = path self.pref.save() if not path: return export_path = os.path.join(path, os.path.basename(url)) if os.path.exists(export_path): dlg = wx.MessageDialog( dirwin, tr("The directory [%s] is existed, \ndo you want to overwrite it?") % export_path, tr("Export"), wx.YES_NO | wx.ICON_QUESTION, ) answer = dlg.ShowModal() dlg.Destroy() if answer != wx.ID_YES: return force = True else: force = False def callback(): common.showmessage(tr("Export completed!")) def f(): client = self.get_client([]) client.export(url, export_path, force) wrap_run(f, callback) def checkout(self, callback=None): self._begin() dlg = CheckoutDialog() value = None if dlg.ShowModal() == wx.ID_OK: value = dlg.GetValue() dlg.Destroy() if not value: return if value["revision"]: r = value["revision"] else: r = self.svn.Revision(self.svn.opt_revision_kind.head) self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.checkout(value["url"], value["dir"], revision=r) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def list(self, callback=None): self._begin() def f(): client = self.get_client() r = client.list(self.path) s = [] fmt = "%(path)-60s %(last_author)-20s %(size)-10s" s.append(fmt % {"path": "Filename", "last_author": "Last Author", "size": "Size"}) for node, flag in r: t = fmt % node s.append(t) wx.CallAfter(show_in_message_win, "\n".join(s)) wrap_run(f, callback) def status(self, callback=None): self._begin() def f(): client = self.get_client() r = client.status(self.path, ignore=True) s = [] fmt = "%(path)-60s %(text_status)-20s" s.append(fmt % {"path": "Filename", "text_status": "Status"}) for node in r: t = fmt % node s.append(t) wx.CallAfter(show_in_message_win, "\n".join(s)) wrap_run(f, callback) def log(self, callback): self._begin() def f(): import time client = self.get_client() r = client.log(self.path) s = [] fmt = "%(message)s\n" + "-" * 70 + "\nr%(revision)d | %(author)s | %(date)s\n" for node in r: node["revision"] = node["revision"].number node["date"] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(node["date"])) if not node["author"]: node["author"] = tr("<No Author>") t = fmt % node s.append(t) wx.CallAfter(show_in_message_win, "\n".join(s)) wrap_run(f, callback) def diff(self, callback): self._begin() def f(): client = self.get_client([]) r = client.diff(wx.StandardPaths.Get().GetTempDir(), self.path) wx.CallAfter(show_in_message_win, r) wrap_run(f, callback) def add(self, callback): self._begin() dlg = AddDialog(Globals.mainframe, tr("Add"), self.path) values = [] if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.add(values, False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def revert(self, callback): self._begin() dlg = RevertDialog(tr("Revert"), self.path) values = [] if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.revert(values, False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def rename(self, callback): self._begin() dir = os.path.dirname(self.path) dlg = wx.TextEntryDialog(Globals.mainframe, tr("New name"), tr("Rename"), os.path.basename(self.path)) newname = "" if dlg.ShowModal() == wx.ID_OK: newname = os.path.join(dir, dlg.GetValue()) dlg.Destroy() if newname: def f(): client = self.get_client([]) client.move(self.path, os.path.join(dir, newname)) wrap_run(f, callback) def delete(self, callback): self._begin() def f(): client = self.get_client([]) client.remove(self.path) wrap_run(f, callback) def update(self, callback): self._begin() self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.update(self.path) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def commit(self, callback): self._begin() dlg = CommitDialog(tr("Commit"), self.path) values = None if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values and values["add_files"] + values["files"]: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() if values["add_files"]: client.add(values["add_files"], False) client.checkin(values["add_files"] + values["files"], values["message"]) client.update(".", False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def get_client(self, flag=["notify", "get_log_message", "get_login", "ssl_server_trust_prompt", "cancel"]): client = self.svn.Client() if "notify" in flag: client.callback_notify = self.cbk_update if "get_log_message" in flag: client.callback_get_log_message = CallFunctionOnMainThread(self.cbk_get_log_message) if "get_login" in flag: client.callback_get_login = CallFunctionOnMainThread(self.cbk_get_login) if "ssl_server_trust_prompt" in flag: client.callback_ssl_server_trust_prompt = CallFunctionOnMainThread(self.cbk_ssl_server_trust_prompt) if "cancel" in flag: client.callback_cancel = self.cbk_cancel return client def cbk_update(self, event): if event["error"]: self.result.add([tr("error"), event["error"]]) else: action = str(event["action"]) if action.startswith("update_"): action = action[7:] elif action.startswith("commit_"): action = action[7:] if action == "update": return elif action == "completed": action = "completed" path = "At version %d" % event["revision"].number else: path = event["path"] self.result.add([action, path]) def cbk_ssl_server_trust_prompt(self, trust_data): realm = trust_data["realm"] info_list = [] info_list.append(("Hostname", trust_data["hostname"])) info_list.append(("Valid From", trust_data["valid_from"])) info_list.append(("Valid Until", trust_data["valid_until"])) info_list.append(("Issuer Name", trust_data["issuer_dname"])) info_list.append(("Finger Print", trust_data["finger_print"])) dlg = GetServerTrust(Globals.mainframe, realm, info_list, True) save = False trust = False if dlg.ShowModal() == wx.ID_OK: save = dlg.GetValue() trust = True dlg.Destroy() return trust, trust_data["failures"], save def cbk_get_login(self, realm, username, save): dlg = GetCredentials(Globals.mainframe, realm, username, True) save = False username = "" password = "" ret = False if dlg.ShowModal() == wx.ID_OK: username, password, save = dlg.GetValue() ret = True dlg.Destroy() return ret, username.encode("utf-8"), password.encode("utf-8"), save def cbk_get_log_message(self): dlg = LogMessage(Globals.mainframe) message = "" if dlg.ShowModal() == wx.ID_OK: message = dlg.GetValue() dlg.Destroy() if message: return True, message.encode("utf-8") return False, "" def cbk_cancel(self): return self.cancel
class Command(object): def __init__(self, dirwin, *args): try: import pysvn client = pysvn.Client() except: common.showerror( dirwin, tr('You should install pysvn module first.\nYou can get it from http://pysvn.tigris.org/' )) return self.svn = pysvn self.dirwin = dirwin self.args = args self.pref = Globals.pref self.path = args[0] self.result = None self.cancel = False def _begin(self): self.cancel = False if self.result: self.result.Destory() self.result = None def export(self, callback=None): self._begin() dirwin = self.dirwin url = self.path path = get_path(dirwin.pref.version_control_export_path) self.pref.version_control_export_path = path self.pref.save() if not path: return export_path = os.path.join(path, os.path.basename(url)) if os.path.exists(export_path): dlg = wx.MessageDialog( dirwin, tr("The directory [%s] is existed, \ndo you want to overwrite it?" ) % export_path, tr("Export"), wx.YES_NO | wx.ICON_QUESTION) answer = dlg.ShowModal() dlg.Destroy() if answer != wx.ID_YES: return force = True else: force = False def callback(): common.showmessage(tr('Export completed!')) def f(): client = self.get_client([]) client.export(url, export_path, force) wrap_run(f, callback) def checkout(self, callback=None): self._begin() dlg = CheckoutDialog() value = None if dlg.ShowModal() == wx.ID_OK: value = dlg.GetValue() dlg.Destroy() if not value: return if value['revision']: r = value['revision'] else: r = self.svn.Revision(self.svn.opt_revision_kind.head) self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.checkout(value['url'], value['dir'], revision=r) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def list(self, callback=None): self._begin() def f(): client = self.get_client() r = client.list(self.path) s = [] fmt = "%(path)-60s %(last_author)-20s %(size)-10s" s.append(fmt % { 'path': 'Filename', 'last_author': 'Last Author', 'size': 'Size' }) for node, flag in r: t = fmt % node s.append(t) wx.CallAfter(show_in_message_win, '\n'.join(s)) wrap_run(f, callback) def status(self, callback=None): self._begin() def f(): client = self.get_client() r = client.status(self.path, ignore=True) s = [] fmt = "%(path)-60s %(text_status)-20s" s.append(fmt % {'path': 'Filename', 'text_status': 'Status'}) for node in r: t = fmt % node s.append(t) wx.CallAfter(show_in_message_win, '\n'.join(s)) wrap_run(f, callback) def log(self, callback): self._begin() def f(): import time client = self.get_client() r = client.log(self.path) s = [] fmt = ("%(message)s\n" + '-' * 70 + "\nr%(revision)d | %(author)s | %(date)s\n") for node in r: node['revision'] = node['revision'].number node['date'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(node['date'])) if not node['author']: node['author'] = tr('<No Author>') t = fmt % node s.append(t) wx.CallAfter(show_in_message_win, '\n'.join(s)) wrap_run(f, callback) def diff(self, callback): self._begin() def f(): client = self.get_client([]) r = client.diff(wx.StandardPaths.Get().GetTempDir(), self.path) wx.CallAfter(show_in_message_win, r) wrap_run(f, callback) def add(self, callback): self._begin() dlg = AddDialog(Globals.mainframe, tr('Add'), self.path) values = [] if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.add(values, False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def revert(self, callback): self._begin() dlg = RevertDialog(tr('Revert'), self.path) values = [] if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.revert(values, False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def rename(self, callback): self._begin() dir = os.path.dirname(self.path) dlg = wx.TextEntryDialog(Globals.mainframe, tr('New name'), tr('Rename'), os.path.basename(self.path)) newname = '' if dlg.ShowModal() == wx.ID_OK: newname = os.path.join(dir, dlg.GetValue()) dlg.Destroy() if newname: def f(): client = self.get_client([]) client.move(self.path, os.path.join(dir, newname)) wrap_run(f, callback) def delete(self, callback): self._begin() def f(): client = self.get_client([]) client.remove(self.path) wrap_run(f, callback) def update(self, callback): self._begin() self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.update(self.path) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def commit(self, callback): self._begin() dlg = CommitDialog(tr('Commit'), self.path) values = None if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values and values['add_files'] + values['files']: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() if values['add_files']: client.add(values['add_files'], False) client.checkin(values['add_files'] + values['files'], values['message']) client.update('.', False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def get_client(self, flag=[ 'notify', 'get_log_message', 'get_login', 'ssl_server_trust_prompt', 'cancel' ]): client = self.svn.Client() if 'notify' in flag: client.callback_notify = self.cbk_update if 'get_log_message' in flag: client.callback_get_log_message = CallFunctionOnMainThread( self.cbk_get_log_message) if 'get_login' in flag: client.callback_get_login = CallFunctionOnMainThread( self.cbk_get_login) if 'ssl_server_trust_prompt' in flag: client.callback_ssl_server_trust_prompt = CallFunctionOnMainThread( self.cbk_ssl_server_trust_prompt) if 'cancel' in flag: client.callback_cancel = self.cbk_cancel return client def cbk_update(self, event): if event['error']: self.result.add([tr('error'), event['error']]) else: action = str(event['action']) if action.startswith('update_'): action = action[7:] elif action.startswith('commit_'): action = action[7:] if action == 'update': return elif action == 'completed': action = 'completed' path = 'At version %d' % event['revision'].number else: path = event['path'] self.result.add([action, common.decode_string(path, 'utf8')]) def cbk_ssl_server_trust_prompt(self, trust_data): realm = trust_data['realm'] info_list = [] info_list.append(('Hostname', trust_data['hostname'])) info_list.append(('Valid From', trust_data['valid_from'])) info_list.append(('Valid Until', trust_data['valid_until'])) info_list.append(('Issuer Name', trust_data['issuer_dname'])) info_list.append(('Finger Print', trust_data['finger_print'])) dlg = GetServerTrust(Globals.mainframe, realm, info_list, True) save = False trust = False if dlg.ShowModal() == wx.ID_OK: save = dlg.GetValue() trust = True dlg.Destroy() return trust, trust_data['failures'], save def cbk_get_login(self, realm, username, save): dlg = GetCredentials(Globals.mainframe, realm, username, True) save = False username = '' password = '' ret = False if dlg.ShowModal() == wx.ID_OK: username, password, save = dlg.GetValue() ret = True dlg.Destroy() return ret, username.encode('utf-8'), password.encode('utf-8'), save def cbk_get_log_message(self): dlg = LogMessage(Globals.mainframe) message = '' if dlg.ShowModal() == wx.ID_OK: message = dlg.GetValue() dlg.Destroy() if message: return True, message.encode('utf-8') return False, '' def cbk_cancel(self): return self.cancel
class Command(object): def __init__(self, dirwin, *args): try: import pysvn client = pysvn.Client() except: common.showerror(dirwin, tr('You should install pysvn module first.\nYou can get it from http://pysvn.tigris.org/')) return self.svn = pysvn self.dirwin = dirwin self.args = args self.pref = Globals.pref self.path = args[0] self.result = None self.cancel = False def _begin(self): self.cancel = False if self.result: self.result.Destory() self.result = None def export(self, callback=None): self._begin() dirwin = self.dirwin url = self.path path = get_path(dirwin.pref.version_control_export_path) self.pref.version_control_export_path = path self.pref.save() if not path: return export_path = os.path.join(path, os.path.basename(url)) if os.path.exists(export_path): dlg = wx.MessageDialog(dirwin, tr("The directory [%s] is existed, \ndo you want to overwrite it?") % export_path, tr("Export"), wx.YES_NO|wx.ICON_QUESTION) answer = dlg.ShowModal() dlg.Destroy() if answer != wx.ID_YES: return force = True else: force = False def callback(): common.showmessage(tr('Export completed!')) def f(): client = self.get_client([]) client.export(url, export_path, force) wrap_run(f, callback) def checkout(self, callback=None): self._begin() dlg = CheckoutDialog() value = None if dlg.ShowModal() == wx.ID_OK: value = dlg.GetValue() dlg.Destroy() if not value: return if value['revision']: r = value['revision'] else: r = self.svn.Revision(self.svn.opt_revision_kind.head ) self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.checkout(value['url'], value['dir'], revision=r) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def list(self, callback=None): self._begin() def f(): client = self.get_client() r = client.list(self.path) s = [] fmt = "%(path)-60s %(last_author)-20s %(size)-10s" s.append(fmt % {'path':'Filename', 'last_author':'Last Author', 'size':'Size'}) for node, flag in r: t = fmt % node s.append(t) wx.CallAfter(show_in_message_win, '\n'.join(s)) wrap_run(f, callback) def status(self, callback=None): self._begin() def f(): client = self.get_client() r = client.status(self.path, ignore=True) s = [] fmt = "%(path)-60s %(text_status)-20s" s.append(fmt % {'path':'Filename', 'text_status':'Status'}) for node in r: t = fmt % node s.append(t) wx.CallAfter(show_in_message_win, '\n'.join(s)) wrap_run(f, callback) def log(self, callback): self._begin() def f(): import time client = self.get_client() r = client.log(self.path) s = [] fmt = ("%(message)s\n" + '-'*70 + "\nr%(revision)d | %(author)s | %(date)s\n") for node in r: node['revision'] = node['revision'].number node['date'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(node['date'])) if not node['author']: node['author'] = tr('<No Author>') t = fmt % node s.append(t) wx.CallAfter(show_in_message_win, '\n'.join(s)) wrap_run(f, callback) def diff(self, callback): self._begin() def f(): client = self.get_client([]) r = client.diff(wx.StandardPaths.Get().GetTempDir(), self.path) wx.CallAfter(show_in_message_win, r) wrap_run(f, callback) def add(self, callback): self._begin() dlg = AddDialog(Globals.mainframe, tr('Add'), self.path) values = [] if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.add(values, False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def revert(self, callback): self._begin() dlg = RevertDialog(tr('Revert'), self.path) values = [] if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.revert(values, False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def rename(self, callback): self._begin() dir = os.path.dirname(self.path) dlg = wx.TextEntryDialog(Globals.mainframe, tr('New name'), tr('Rename'), os.path.basename(self.path)) newname = '' if dlg.ShowModal() == wx.ID_OK: newname = os.path.join(dir, dlg.GetValue()) dlg.Destroy() if newname: def f(): client = self.get_client([]) client.move(self.path, os.path.join(dir, newname)) wrap_run(f, callback) def delete(self, callback): self._begin() def f(): client = self.get_client([]) client.remove(self.path) wrap_run(f, callback) def update(self, callback): self._begin() self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() client.update(self.path) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def commit(self, callback): self._begin() dlg = CommitDialog(tr('Commit'), self.path) values = None if dlg.ShowModal() == wx.ID_OK: values = dlg.GetValue() dlg.Destroy() if values and values['add_files'] + values['files']: self.result = ResultDialog(self) self.result.Show() def f(): client = self.get_client() if values['add_files']: client.add(values['add_files'], False) client.checkin(values['add_files'] + values['files'], values['message']) client.update('.', False) if self.result: self.result.finish() wrap_run(f, callback, result=self.result) def get_client(self, flag=['notify', 'get_log_message', 'get_login', 'ssl_server_trust_prompt', 'cancel']): client = self.svn.Client() if 'notify' in flag: client.callback_notify = self.cbk_update if 'get_log_message' in flag: client.callback_get_log_message = CallFunctionOnMainThread(self.cbk_get_log_message) if 'get_login' in flag: client.callback_get_login = CallFunctionOnMainThread(self.cbk_get_login) if 'ssl_server_trust_prompt' in flag: client.callback_ssl_server_trust_prompt = CallFunctionOnMainThread(self.cbk_ssl_server_trust_prompt) if 'cancel' in flag: client.callback_cancel = self.cbk_cancel return client def cbk_update(self, event): if event['error']: self.result.add([tr('error'), event['error']]) else: action = str(event['action']) if action.startswith('update_'): action = action[7:] elif action.startswith('commit_'): action = action[7:] if action == 'update': return elif action == 'completed': action = 'completed' path = 'At version %d' % event['revision'].number else: path = event['path'] self.result.add([action, common.decode_string(path, 'utf8')]) def cbk_ssl_server_trust_prompt(self, trust_data): realm = trust_data['realm'] info_list = [] info_list.append(('Hostname', trust_data['hostname'])) info_list.append(('Valid From', trust_data['valid_from'])) info_list.append(('Valid Until', trust_data['valid_until'])) info_list.append(('Issuer Name', trust_data['issuer_dname'])) info_list.append(('Finger Print', trust_data['finger_print'])) dlg = GetServerTrust(Globals.mainframe, realm, info_list, True) save = False trust = False if dlg.ShowModal() == wx.ID_OK: save = dlg.GetValue() trust = True dlg.Destroy() return trust, trust_data['failures'], save def cbk_get_login(self, realm, username, save): dlg = GetCredentials(Globals.mainframe, realm, username, True) save = False username = '' password = '' ret = False if dlg.ShowModal() == wx.ID_OK: username, password, save = dlg.GetValue() ret = True dlg.Destroy() return ret, username.encode('utf-8'), password.encode('utf-8'), save def cbk_get_log_message(self): dlg = LogMessage(Globals.mainframe) message = '' if dlg.ShowModal() == wx.ID_OK: message = dlg.GetValue() dlg.Destroy() if message: return True, message.encode('utf-8') return False, '' def cbk_cancel(self): return self.cancel