def setOperateYear(year=None): """ Установить операционный год. @param year: Год. Если год не указан, то производится попытка прочитать его в INI файле проекта. Если в INI файле он не найде, то берется системный. """ is_save = True if year is None: from ic.utils import ini prj_path = ic_file.getPrjProfilePath() ini_basename = getPrjName() + '.ini' ini_filename = os.path.join(prj_path, ini_basename) operate_year = ini.loadParamINI(ini_filename, 'SETTINGS', 'operate_year') if not operate_year: import datetime today = datetime.date.today() year = today.year else: year = int(operate_year) is_save = False icLet('OperateYEAR', year) if is_save: saveOperateYear(year)
def getPrjIcon(self): """ Иконка. """ ico_file = ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'prj_icon') if ico_file: return ic_file.NormPathWin(ico_file) return ico_file
def OnLastOpen(self, event): """ Открыть последний открытый проект. """ path = ini.loadParamINI(PRJ_INI_FILE, 'PRJ', 'LastOpenedPaths') node = self._Parent node.openPrj(path) # Обновление дерева проектов self._Parent.getRoot().getParent().Refresh()
def getPackages(self): """ Список добавляемых пакетов. """ packages = ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'packages') if packages: return eval(packages) return []
def getInstallMaker(self): """ Программа компиляции скрипта инсталяционного пакета. """ install_maker = ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'install_maker') if install_maker: return ic_file.NormPathWin(install_maker) return install_maker
def getAutoVer(self): """ Признак автоматического изменения версий. """ auto_ver = ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'auto_ver') if auto_ver: return eval(auto_ver) return False
def getOpenSource(self): """ Признак добавления в инсталяционный пакет исходников. """ open_src_txt = ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'open_src') if open_src_txt: return eval(open_src_txt) return True
def loadImgDir(self, IniFile_=None): """ Загрузить папку образов из настроек. """ if IniFile_: self._ini_file = IniFile_ if self._ini_file: img_dir = ini.loadParamINI(self._ini_file, 'IMAGES', 'img_dir') self.setImgDir(img_dir)
def get(self): """ Функция получения значения. ВНИМАНИЕ! Считается что внутри программы по умолчанию мы пользуемся юникодными строками, поэтому все строки автоматически приводим к юникоду. """ ini_file_name = self._get_ini_file_name() value = ini.loadParamINI(ini_file_name, self._cur_settings_list[1], self._cur_settings_list[2]) value = u'' if value is None else value value = unicode(value, ini.DEFAULT_ENCODE) if isinstance( value, str) else value return value
def __init__(self, Parent_): """ Конструктор. """ flatmenu.FlatMenu.__init__(self) self._Parent = Parent_ # Контрол дерева проекта prj_tree_ctrl = self._Parent.getRoot().getParent() # Новый проект self.newPrjID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.newPrjID, u'Новый проект', u'Новый проект', normalBmp=imglib.imgNewPrj) self.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnNew, id=self.newPrjID) # Открыть self.openID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.openID, u'Открыть', u'Открыть', normalBmp=imglib.imgFolderOpen) self.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnOpen, id=self.openID) # Последний открытый проект pth = ini.loadParamINI(PRJ_INI_FILE, 'PRJ', 'LastOpenedPaths') if pth: self.lastOpenID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.lastOpenID, u'Последний открытый проект: %s' % pth, u'Последний открытый проект', normalBmp=imglib.imgFolderOpen) self.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnLastOpen, id=self.lastOpenID) # Список открытых ранее проектов prj_paths = ini.loadParamINIValue(PRJ_INI_FILE, 'PRJ', 'OpenedPaths') if prj_paths: prj_submenu = flatmenu.FlatMenu() for prj_path in prj_paths: if prj_path != pth: item_id = wx.NewId() item = flatmenu.FlatMenuItem(prj_submenu, item_id, prj_path, u'Проект', normalBmp=imglib.imgFolderOpen) prj_submenu.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnOpenPrj, id=item_id) self.AppendSubMenu(prj_submenu, u'Ранее открытые проекты') # Определен проект открыт уже или нет? prj_none = self._Parent.isOpened() io_prnt.outLog(u'Проект открыт <%s>' % self._Parent.isOpened()) # 'Сохранить' self.saveID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.saveID, u'Сохранить', u'Сохранить', normalBmp=imglib.imgSave) self.AppendItem(item) item.Enable(prj_none) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnSave, id=self.saveID) # Обновить self.refreshID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.refreshID, u'Обновить', u'Обновить', normalBmp=imglib.imgRefreshPage) self.AppendItem(item) item.Enable(prj_none) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnRefresh, id=self.refreshID) self.AppendSeparator() # Запустить self.runID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.runID, u'Выполнить', u'Выполнить', normalBmp=imglib.imgPlay) self.AppendItem(item) item.Enable(prj_none) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnRun, id=self.runID) # Отладка self.debugID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.debugID, u'Отладка', u'Отладка', normalBmp=imglib.imgDebug) self.AppendItem(item) item.Enable(prj_none) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnDebug, id=self.debugID) self.AppendSeparator() # 'Редактировать' self.editID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.editID, u'Редактировать', u'Редактировать', normalBmp=imglib.imgEdit) self.AppendItem(item) item.Enable(prj_none) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnEdit, id=self.editID) self.editIniID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.editIniID, u'Параметры проекта', u'Параметры проекта', normalBmp=imglib.imgProperty) self.AppendItem(item) item.Enable(prj_none) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnEditIni, id=self.editIniID) self.AppendSeparator() # 'Переименовать' self.renameID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.renameID, u'Переименовать', u'Переименовать', normalBmp=imglib.imgRename) self.AppendItem(item) item.Enable(prj_none) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnRename, id=self.renameID) self.AppendSeparator() # Подменю инструментов tool_submenu = flatmenu.FlatMenu() # 'Создать инсталяционный пакет' if wx.Platform == '__WXMSW__': self.installID = wx.NewId() item = flatmenu.FlatMenuItem(tool_submenu, self.installID, _('Install package'), _('Install package'), normalBmp=imglib.imgDemo) tool_submenu.AppendItem(item) item.Enable(prj_none) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnMakeInstall, id=self.installID) # 'Создать демо-проект' self.demoID = wx.NewId() item = flatmenu.FlatMenuItem(tool_submenu, self.demoID, u'Демо', u'Демо', normalBmp=imglib.imgDemo) tool_submenu.AppendItem(item) item.Enable(False) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnMakeDemo, id=self.demoID) # 'Создать публикацию' self.publicID = wx.NewId() item = flatmenu.FlatMenuItem(tool_submenu, self.publicID, u'Публикация', u'Публикация', normalBmp=imglib.imgInstall) tool_submenu.AppendItem(item) item.Enable(prj_none) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnMakePublic, id=self.publicID) # 'Браузер библиотеки образов' self.imglibID = wx.NewId() item = flatmenu.FlatMenuItem(tool_submenu, self.imglibID, u'Библиотека образов', u'Библиотека образов', normalBmp=imglib.imgEdtImgBrowser) tool_submenu.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnImgLibBrowser, id=self.imglibID) # 'Редактор регулярных выражений' self.regexpeditID = wx.NewId() item = flatmenu.FlatMenuItem(tool_submenu, self.regexpeditID, u'Редактор регулярных выражений', u'Редактор регулярных выражений', normalBmp=ic_bmp.createLibraryBitmap('regular-expression-delimiter.png')) tool_submenu.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnRegExpEditor, id=self.regexpeditID) # 'Утилита сравнения файлов' self.diffID = wx.NewId() item = flatmenu.FlatMenuItem(tool_submenu, self.diffID, u'Утилита сравнения файлов', u'Утилита сравнения файлов', normalBmp=ic_bmp.createLibraryBitmap('edit-diff.png')) tool_submenu.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnDiffTool, id=self.diffID) # 'Импорт метаобъектов 1С' self.imp1cID = wx.NewId() item = flatmenu.FlatMenuItem(tool_submenu, self.imp1cID, u'Импорт метаобъектов 1С', u'Импорт метаобъектов 1С', normalBmp=ic_bmp.createLibraryBitmap('1c.png')) tool_submenu.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnImport1C, id=self.imp1cID) # 'Дизайнер форм wxFormBuilder' self.wxfbID = wx.NewId() item = flatmenu.FlatMenuItem(tool_submenu, self.wxfbID, u'Дизайнер форм wxFormBuilder', u'Дизайнер форм wxFormBuilder', normalBmp=ic_bmp.createLibraryBitmap('wxformbuilder.png')) tool_submenu.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnWXFormBuilder, id=self.wxfbID) self.AppendSubMenu(tool_submenu, u'Инструменты') self.AppendSeparator() # 'Показывать всплывающие подсказки' self.popup_helpID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.popup_helpID, u'Всплывающая подсказка', u'Всплывающая подсказка', kind=wx.ITEM_CHECK) self.AppendItem(item) # Галку ставить только после присоединения пункта к меню item.Check(self._Parent.show_popup_help) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnPopupHelp, id=self.popup_helpID) # 'Помощь' self.hlpID = wx.NewId() item = flatmenu.FlatMenuItem(self, self.hlpID, u'Помощь', u'Помощь', normalBmp=imglib.imgHelpBook) self.AppendItem(item) prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnHelp, id=self.hlpID)
def getArchivator(self): """ Архиватор. """ return ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'archivator')
def readPrjVersion(self): """ Версия проекта. """ return ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'version')
def getPrjAuthor(self): """ Автор. """ return ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'prj_author')
def getPrjName(self): """ Имя проекта/имя папки проекта. """ return ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'prj_name')
def getPrjCopyright(self): """ Права. """ return ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'prj_copyright')
def getConsole(self): """ Признак поддержки консоли. """ return bool(ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'console'))
def getPrjTitle(self): """ Заголовок проекта в инсталяторе. """ return ini.loadParamINI(self._prj_ini_file_name, 'INSTALL', 'prj_title')