def ask_new_url(parent): app0 = wx.GetApp().TopWindow ret, m = dialog.textentry(app0, "Enter new url", "Mercurial Clone", parent.value_suggestion()) if not ret: return None return {'url': str(m)}
def ask_new_url(parent): app0 = wx.GetApp().TopWindow ret, m = dialog.textentry(app0, "Enter new url", "Mercurial Clone", parent.value_suggestion()) if not ret: return None return {'url':str(m)}
def onHGMakeRepo(self, evt): app0 = wx.GetApp().TopWindow ret, m = dialog.textentry(app0, "Enter variable name", "Create repo object", 'repo') if not ret: return None repo = hgapi.Repo(self.owndir()) self.write2shell(repo, m)
def onNewConnection(self, e): app = self.td.get_app() ret, new_name = dialog.textentry(app, "Enter the name of new connection", "Add Connection", "") if ret: self.add_connection(new_name)
def onAddNewText(self, e=None): from ifigure.mto.py_file import PyText obj = PyText() iname = self.get_next_name('untitled') parent = self.get_app() ret, name = dialog.textentry(parent, "Enter a text name", "New text...", iname) self.add_child(name, obj) obj.mk_owndir() path = os.path.join(obj.owndir(), obj.name + '.txt') print(('creating file ', path)) open(path, 'a').close() obj.set_path_pathmode(path) obj.store_mtime() w = None if e is None else e.GetEventObject() from ifigure.mto.treedict import str_td path = str_td(path) path.td = obj.get_full_path() ifigure.events.SendEditFileEvent(self, w=w, file=path) if e is not None: e.Skip() return obj
def onNewConnection(self, e): app = self.td.get_app() ret, new_name=dialog.textentry(app, "Enter the name of new connection", "Add Connection", "") if ret: self.add_connection(new_name)
def onAddModel(self, e): id=e.GetEventObject() app=id.GetTopLevelParent() ret, new_name=dialog.textentry(app, "Enter the name of new model", "Add Model", "") if ret: child=PyModel() imodel=self.add_child(new_name, child) child.onAddFolder(name = 'scripts') e.Skip() ## call update project tree widget
def onAddData(self, e): id=e.GetEventObject() app=id.GetTopLevelParent() ret, name = dialog.textentry(app, "Enter a data name", "New Data...", "data") if not ret: return data = PyData() name = self.get_next_name(name) self.add_child(name, data) e.Skip() ## call update project tree widget
def OnAddNS(self, evt): import ifigure.widgets.dialog as dialog indices = self.tree.GetIndexOfItem(self.tree.GetSelection()) mm = self.model.GetItem(indices) txt = self.model.GetItemText(indices) ret, txt = dialog.textentry(self, "Enter namespace name", "New NS...", txt.lower()) if not ret: return mm.new_ns(txt) self.tree.RefreshItems() evt.Skip()
def onNew(self, evt): ret, new_name=dialog.textentry(self, "Enter the name of file type", "Add New FileType", '') if not ret: return if not new_name in self.get_names(): v = {'name':new_name, 'ext':'*.*', 'action':'', 'action_txt': '', 'use':True} self.var['file'].append(v) self.update_cb() self.cb.SetValue(new_name) self._cb_value = new_name self.set_elp()
def onAddSec(self, e): import ifigure.widgets.dialog as dialog parent = e.GetEventObject() ret, name = dialog.textentry(parent, "Enter section name", "Add Section...", 'section') if not ret: return var0 = self.td.getvar0() if not name in var0: var0[name] = Namelist() app = wx.GetApp().TopWindow app.proj_tree_viewer.update_content_widget(self.td)
def OnRenameItem(self, evt): indices = self.tree.GetIndexOfItem(self.tree.GetSelection()) mm = self.model.GetItem(indices) from ifigure.widgets.dialog import textentry ret, name = textentry( parent=self, message='Enter new name', title='Rename', def_string=mm.name() + '_renamed', ) if not ret: return mm.rename(name) self.tree.RefreshItems()
def onExportToShell(self, evt): fpath=self.path2fullpath('file_pathmode', 'file_path') fid = open(fpath, 'r') lines = fid.readlines() fid.close() id=evt.GetEventObject() app=id.GetTopLevelParent() ret, new_name=dialog.textentry(app, "Enter the name of new variable", "Export Text File to Shell", "") if ret: flag = self.write2shell(lines, new_name) app.shell.SendShellEnterEvent() e.Skip() ## call update project tree widget
def onExportToShell(self, evt): fpath = self.path2fullpath('file_pathmode', 'file_path') fid = open(fpath, 'r') lines = fid.readlines() fid.close() id = evt.GetEventObject() app = id.GetTopLevelParent() ret, new_name = dialog.textentry(app, "Enter the name of new variable", "Export Text File to Shell", "") if ret: flag = self.write2shell(lines, new_name) app.shell.SendShellEnterEvent() e.Skip() # call update project tree widget
def onAddNewScript(self, e=None, name='', temp='', parent=None, dest=None): # new script # copy template to owndir # open it by editor import ifigure.mto.py_script as py_script if temp == '': temp = os.path.join( ifigure.__path__[0], 'template', 'script', '_blank_script.py') child = py_script.PyScript() if name == '': iname = '_'.join([x for x in os.path.basename(temp)[ :-3].split('_') if len(x) != 0]) if parent is None: parent = self.get_app() ret, name = dialog.textentry(parent, "Enter a script name", "New Script...", iname) if not ret: return if self.has_child(name): name = self.get_next_name(name) idx = self.add_child(name, child) if dest is None: child.mk_owndir() dest = child.owndir() dest = os.path.join(dest, name+'.py') i = 1 while os.path.exists(dest): name0 = name+str(i)+'.py' dest = os.path.join(child.owndir(), name0) i = i + 1 shutil.copyfile(temp, dest) child.load_script(dest) w = None if e is not None: w = e.GetEventObject() from ifigure.mto.treedict import str_td dest = str_td(dest) dest.td = child.get_full_path() ifigure.events.SendEditFileEvent(self, w=w, file=dest) if e is not None: e.Skip() return child
def onRenameSec(self, e): import ifigure.widgets.dialog as dialog parent = e.GetEventObject() var0 = self.td.getvar0() ret, name = dialog.textselect(parent, "Select section name", "Rename Section...", choices = var0.keys()) if not ret: return ret, name1 = dialog.textentry(parent, "Enter new section name", "Rename Section...", name+'_renamed') if not ret: return var0[name1] = var0[name] del var0[name] app = wx.GetApp().TopWindow app.proj_tree_viewer.update_content_widget(self.td)
def onAddModel(self, e=None): model = PyModel() basename = model.get_namebase() name=self.get_next_name(basename) if e is not None: id=e.GetEventObject() app=id.GetTopLevelParent() ret, new_name=dialog.textentry(app, "Enter the name of new model", "Add Model", name) if not ret: return else: new_name = name self._onAddSomething(model, ['isPySolver', 'isFigBook', 'isPySol'], name = new_name) if not cbook.ProxyAlive(self._pmodel): self._pmodel=weakref.proxy(model) if e is not None: e.Skip() return model
def onAddModel(self, e=None): model = PyModel() basename = model.get_namebase() name = self.get_next_name(basename) if e is not None: id = e.GetEventObject() app = id.GetTopLevelParent() ret, new_name = dialog.textentry(app, "Enter the name of new model", "Add Model", name) if not ret: return else: new_name = name self._onAddSomething(model, ['isPySolver', 'isFigBook', 'isPySol'], name=new_name) if not cbook.ProxyAlive(self._pmodel): self._pmodel = weakref.proxy(model) if e is not None: e.Skip() return model
def onAddNewScript(self, e=None, name='', temp='', parent=None, dest=None): # new script # copy template to owndir # open it by editor import ifigure.mto.py_script as py_script if temp == '': temp=os.path.join(ifigure.__path__[0], 'template', 'script', '_blank_script.py') child=py_script.PyScript() if name is '': iname = '_'.join([x for x in os.path.basename(temp)[:-3].split('_') if len(x) !=0]) if parent is None: parent = self.get_app() ret, name = dialog.textentry(parent, "Enter a script name", "New Script...", iname) if not ret: return if self.has_child(name): name=self.get_next_name(name) idx=self.add_child(name, child) if dest is None: child.mk_owndir() dest = child.owndir() dest = os.path.join(dest, name+'.py') i = 1 while os.path.exists(dest): name0 = name+str(i)+'.py' dest = os.path.join(child.owndir(), name0) i = i + 1 shutil.copyfile(temp, dest) child.load_script(dest) w = None if e is not None: w = e.GetEventObject() from ifigure.mto.treedict import str_td dest = str_td(dest) dest.td = child.get_full_path() ifigure.events.SendEditFileEvent(self, w=w, file=dest) if e is not None: e.Skip() return child
def onAddNewText(self, e=None): from ifigure.mto.py_file import PyText obj = PyText() iname=self.get_next_name('untitled') parent = self.get_app() ret, name = dialog.textentry(parent, "Enter a text name", "New text...", iname) self.add_child(name, obj) obj.mk_owndir() path = os.path.join(obj.owndir(), obj.name + '.txt') print('creating file ', path) open(path, 'a').close() obj.set_path_pathmode(path) obj.store_mtime() w = None if e is None else e.GetEventObject() from ifigure.mto.treedict import str_td path = str_td(path) path.td = obj.get_full_path() ifigure.events.SendEditFileEvent(self, w=w, file=path) if e is not None: e.Skip() return obj
def onHGupdate(self, evt=None, m=None): repo = hgapi.Repo(self.owndir()) app0 = wx.GetApp().TopWindow if m is None: latest = repo.revisions(slice(-1,-1))[0].rev ret, m = dialog.textentry(app0, "Enter revision #", "Mercurial Update", str(latest)) if not ret: return None status = repo.hg_status() for key in status: if key == '?': continue if len(status[key]) != 0: print(status) ret, m = dialog.message(app0, "Local repo status is not clean. \n(" + self.get_full_path()+')', "Mercurial Update Error") self.hg_set_projtreeviewer_status(repo) # self._status = '!' return None repo.hg_update(long(m)) parent = self.get_parent() owndir = self.owndir() name = self._name ichild = self.get_ichild() url, root, path = self.get_mercurial_url() self.destroy(clean_owndir=False) del_old_treedata = False load_fpath = True fpath=os.path.join(owndir, ".tree_data_hg") if not os.path.exists(fpath): fpath=os.path.join(owndir, ".tree_data") if not os.path.exists(fpath): print((url, root, path)) td = handle_pure_file_repo(parent, name, owndir) load_fpath = False else: dlg=wx.MessageDialog(None, 'HG update succeeded but .tree_data_hg is not found.', 'Old style for HG repo', wx.OK) ret=dlg.ShowModal() dlg.Destroy() fpath=os.path.join(owndir, ".tree_data") del_old_treedata = True if load_fpath: fid= open(fpath, 'rb') td, olist, nlist = TreeDict().load(fid, keep_zorder=True) fid.close() parent.add_child(name, td, keep_zorder = True) parent.move_child(td.get_ichild(), ichild) if load_fpath: for obj in td.walk_tree(): obj.init_after_load(olist, nlist) if del_old_treedata: os.remove(fpath) if url is not None: td.set_mercurial_url(root, path) if evt is not None: # evt.GetEventObject().update_widget_request2() ifigure.events.SendFileSystemChangedEvent(parent, reload = True) evt.Skip() return td
def onHGupdate(self, evt=None, m=None): repo = hgapi.Repo(self.owndir()) app0 = wx.GetApp().TopWindow if m is None: latest = repo.revisions(slice(-1, -1))[0].rev ret, m = dialog.textentry(app0, "Enter revision #", "Mercurial Update", str(latest)) if not ret: return None status = repo.hg_status() for key in status: if key == '?': continue if len(status[key]) != 0: print(status) ret, m = dialog.message( app0, "Local repo status is not clean. \n(" + self.get_full_path() + ')', "Mercurial Update Error") self.hg_set_projtreeviewer_status(repo) # self._status = '!' return None repo.hg_update(long(m)) parent = self.get_parent() owndir = self.owndir() name = self._name ichild = self.get_ichild() url, root, path = self.get_mercurial_url() self.destroy(clean_owndir=False) del_old_treedata = False load_fpath = True fpath = os.path.join(owndir, ".tree_data_hg") if not os.path.exists(fpath): fpath = os.path.join(owndir, ".tree_data") if not os.path.exists(fpath): print((url, root, path)) td = handle_pure_file_repo(parent, name, owndir) load_fpath = False else: dlg = wx.MessageDialog( None, 'HG update succeeded but .tree_data_hg is not found.', 'Old style for HG repo', wx.OK) ret = dlg.ShowModal() dlg.Destroy() fpath = os.path.join(owndir, ".tree_data") del_old_treedata = True if load_fpath: fid = open(fpath, 'rb') td, olist, nlist = TreeDict().load(fid, keep_zorder=True) fid.close() parent.add_child(name, td, keep_zorder=True) parent.move_child(td.get_ichild(), ichild) if load_fpath: for obj in td.walk_tree(): obj.init_after_load(olist, nlist) if del_old_treedata: os.remove(fpath) if url is not None: td.set_mercurial_url(root, path) if evt is not None: # evt.GetEventObject().update_widget_request2() ifigure.events.SendFileSystemChangedEvent(parent, reload=True) evt.Skip() return td