def paste(self, Node_): """ Вставить. @param Node_: Вставляемый узел. """ # Можно вставлять толко модули или другие пакеты if issubclass(Node_.__class__, PrjModule) or \ issubclass(Node_.__class__, PrjPackage): prj_node.PrjNode.paste(self, Node_) mod_name = Node_.getModuleName() mod_path = Node_.getPath() # Есть уже модуль с таким именем? if self.getRoot().prj_res_manager.isModByName(mod_name): ic_dlg.icMsgBox(u'ВНИМАНИЕ!', u'Модуль <%s> уже существует!' % mod_name) return False # Добавить модуль в ресурс проекта Node_.getRoot().prj_res_manager.addModule(mod_name, mod_path) module_file_name = os.path.join(mod_path, mod_name + self.ext) copy_module_file_name = Node_.getCopyModuleName() ok = False if os.path.exists(copy_module_file_name): ok = ic_file.icCopyFile(copy_module_file_name, module_file_name) ic_file.Remove(copy_module_file_name) # Для синхронизации дерева проекта Node_.getRoot().save() return ok return False
def delete(self): """ Удалить модуль. """ # ВОЗМОЖНО ЭТОТ МОДУЛЬ ПРОПИСАН КАК РЕСУРС!!! # Сначала удалить из файла *.pro self.getRoot().prj_res_manager.delRes(self.name, 'py') # Затем удалить из дерева prj_node.PrjNode.delete(self) module_name = os.path.join(self.getModulePath(), self.name + self.ext) # Выгрузить из редакторов self.getRoot().getParent().ide.CloseFile(module_name) res_file_name = self.getRoot().getParent().res_editor.GetResFileName() if res_file_name and ic_file.SamePathWin(module_name, res_file_name): self.getRoot().getParent().res_editor.CloseResource() # Удалить все блокировки self.getRoot().unlockAllPyFilesInIDE() # И в конце удалить папку пакета, если она есть if ic_file.Exists(module_name): # ВНИМАНИЕ! Удаляем файл, но оставляем его бекапную версию # для возможного восстановления! ic_file.icCreateBAKFile(module_name) ic_file.Remove(module_name) # Для синхронизации дерева проекта self.getRoot().save()
def delRes(self, ResName_, ResType_): """ Удалить ресурс из проекта. @param ResName_: Имя ресурса. @param ResType_: Тип ресурса. """ self.makeFolderOther() if self._PrjRes: self._PrjRes.delRes(ResName_, ResType_) self._PrjRes.savePrj() res_file_name = self._PrjResDir + '/%s.%s' % (ResName_, ResType_) if ic_file.IsFile(res_file_name): ic_file.Remove(res_file_name) return True return False
def __delitem__(self, key): if not self.isOpen(): self.Open() if issubclass(self._StorageDB[str(key)].__class__, icFileStorage): # Проверка на удаление файла self._StorageDB[str(key)].closeFile() file_name = self._StorageDB[str(key)].getFileName() if ic_file.Exists(file_name) and ic_file.IsFile(file_name): ic_file.Remove(file_name) elif issubclass(self._StorageDB[str(key)].__class__, icDirStorage): # Проверка на удаление директории self._StorageDB[str(key)].closeAllFiles() dir_name = self._StorageDB[str(key)].getNodeDir() if ic_file.Exists(dir_name) and ic_file.IsDir(dir_name): ic_file.RemoveTreeDir(dir_name, 1) if str(key) in self._StorageDB: del self._StorageDB[str(key)]