def callback(evt): _ = evt try: plugin_.execute(self.project) except Exception, e: log.error('PluginError: %s', e) wx.MessageBox('PluginError: %s' % e)
def _open(self): """ open or create a project """ # read recent projects app_data_path = get_app_data_path() recent_file = os.path.join(app_data_path, 'recent_projects') # noinspection PyBroadException try: recent_projects = open(recent_file).read().split('\n') except: recent_projects = [] sample_projects = [ os.path.join(SAMPLE_DIR, f) for f in os.listdir(SAMPLE_DIR) ] # prompt from project_dialog_xrc import xrcProjectDialog dlg = xrcProjectDialog(self) dlg.set_recent_paths(recent_projects + sample_projects) if wx.ID_OK == dlg.ShowModal(): path = dlg.get_path() # prompt and create if not exists if not os.path.exists(path): dlg = wx.MessageDialog(self, 'Folder not exists, create now?', 'Warning', wx.YES_NO | wx.ICON_QUESTION) if dlg.ShowModal() == wx.ID_NO: return try: os.makedirs(path) except Exception, e: log.error(e, "create project folder failed") wx.MessageBox("Failed to create folder: %s" % path) return self._load_project(path) # try: # project = Project(path, False) # project.load() # self.update_project(project) # except Exception, e: # log.error(e, "Failed to open/create project") # wx.MessageBox("Failed to open/create project: %s" % e) # else: # save recent files # noinspection PyBroadException try: recent_projects.remove(path) except: pass recent_projects.insert(0, path) open(recent_file, 'w').write('\n'.join(recent_projects))
def _open(self): """ open or create a project """ # read recent projects app_data_path = get_app_data_path() recent_file = os.path.join(app_data_path, 'recent_projects') # noinspection PyBroadException try: recent_projects = open(recent_file).read().split('\n') except: recent_projects = [] sample_projects = [os.path.join(SAMPLE_DIR, f) for f in os.listdir(SAMPLE_DIR)] # prompt from project_dialog_xrc import xrcProjectDialog dlg = xrcProjectDialog(self) dlg.set_recent_paths(recent_projects + sample_projects) if wx.ID_OK == dlg.ShowModal(): path = dlg.get_path() # prompt and create if not exists if not os.path.exists(path): dlg = wx.MessageDialog(self, 'Folder not exists, create now?', 'Warning', wx.YES_NO | wx.ICON_QUESTION) if dlg.ShowModal() == wx.ID_NO: return try: os.makedirs(path) except Exception, e: log.error(e, "create project folder failed") wx.MessageBox("Failed to create folder: %s" % path) return self._load_project(path) # try: # project = Project(path, False) # project.load() # self.update_project(project) # except Exception, e: # log.error(e, "Failed to open/create project") # wx.MessageBox("Failed to open/create project: %s" % e) # else: # save recent files # noinspection PyBroadException try: recent_projects.remove(path) except: pass recent_projects.insert(0, path) open(recent_file, 'w').write('\n'.join(recent_projects))
def OnClose(self, evt): self.editor_panel.grid.DisableCellEditControl() # debug if self.editor_context.read_only and self.editor_context.is_modified(): log.error('modified in a readonly frame!') if not self.editor_context.read_only and self.editor_context.is_modified(): self.Raise() r = wx.MessageBox("Save before exit?", "Confirm", wx.YES_NO | wx.CANCEL, self) if r == wx.YES: if not self.save(): log.alert("save failed!") return elif r == wx.CANCEL: return self.editor_context.project.explorer.remove_editor(self) evt.Skip()
def _add_child(self, parent_tree_item_id, child_fs_node): """Adds a fs_node to a tree item""" try: label = self.node_tool.get_name(child_fs_node) lower_label = label.lower() # find a pos to insert(sort by label) child_tree_item_id, cookie = self.GetFirstChild( parent_tree_item_id) index = 0 while child_tree_item_id.IsOk(): child_label = self.GetItemText(child_tree_item_id) if lower_label < child_label.lower(): break index += 1 child_tree_item_id, cookie = self.GetNextChild( parent_tree_item_id, cookie) if index < self.GetChildrenCount(parent_tree_item_id): child_tree_item_id = self.InsertItemBefore( parent_tree_item_id, index, text=label, image=self.get_image_id_by_node(child_fs_node), data=wx.TreeItemData(child_fs_node)) else: child_tree_item_id = self.AppendItem( parent_tree_item_id, text=label, image=self.get_image_id_by_node(child_fs_node), data=wx.TreeItemData(child_fs_node)) self._fs_node_to_tree_item_id[child_fs_node] = child_tree_item_id if self._add_children(child_tree_item_id): self.SetItemHasChildren(child_tree_item_id, True) return child_tree_item_id except Exception, e: log.error('failed to add child: %s', child_fs_node.uuid) print e raise
def OnClose(self, evt): self.editor_panel.grid.DisableCellEditControl() # debug if self.editor_context.read_only and self.editor_context.is_modified(): log.error('modified in a readonly frame!') if not self.editor_context.read_only and self.editor_context.is_modified( ): self.Raise() r = wx.MessageBox("Save before exit?", "Confirm", wx.YES_NO | wx.CANCEL, self) if r == wx.YES: if not self.save(): log.alert("save failed!") return elif r == wx.CANCEL: return self.editor_context.project.explorer.remove_editor(self) evt.Skip()
def _add_child(self, parent_tree_item_id, child_fs_node): """Adds a fs_node to a tree item""" try: label = self.node_tool.get_name(child_fs_node) lower_label = label.lower() # find a pos to insert(sort by label) child_tree_item_id, cookie = self.GetFirstChild(parent_tree_item_id) index = 0 while child_tree_item_id.IsOk(): child_label = self.GetItemText(child_tree_item_id) if lower_label < child_label.lower(): break index += 1 child_tree_item_id, cookie = self.GetNextChild(parent_tree_item_id, cookie) if index < self.GetChildrenCount(parent_tree_item_id): child_tree_item_id = self.InsertItemBefore(parent_tree_item_id, index, text=label, image=self.get_image_id_by_node(child_fs_node), data=wx.TreeItemData(child_fs_node)) else: child_tree_item_id = self.AppendItem(parent_tree_item_id, text=label, image=self.get_image_id_by_node(child_fs_node), data=wx.TreeItemData(child_fs_node)) self._fs_node_to_tree_item_id[child_fs_node] = child_tree_item_id if self._add_children(child_tree_item_id): self.SetItemHasChildren(child_tree_item_id, True) return child_tree_item_id except Exception, e: log.error('failed to add child: %s', child_fs_node.uuid) print e raise
data['__uuid__'] = obj.uuid except Exception, e: log.alert(e, "Failed to create object: %s", data2) success = False # to be deleted for obj in objects.itervalues(): try: self.project.delete_object(obj) self._objects.pop(obj.uuid) except Exception, e: log.alert(e, "Failed to delete object: %s", obj) success = False else: obj = self._objects obj.raw_data = self.attr_data try: self.project.save_object(obj) except Exception, e: log.error(e, "Failed to save: %s", obj.uuid) success = False return success def get_title(self): if self.is_batch(): return 'Batch Edit %s' % self.clazz.name else: return '%s - %s' % (self._objects.name, self._objects.uuid)