def __init__(self, project, layout_widget, parent=None): super(self.__class__, self).__init__(parent=parent) self.project = project self.current_project = self.project.info['code'] env_inst.set_control_tab(self.current_project, 'checkin_out', self) self.setupUi(self) # self.ui_tree = [] self.all_search_tabs = [] self.current_tab_idx = 0 # self.visible_search_tabs = [] self.main_tabs_widget = parent # main tabs widget self.layout_widget = layout_widget self.current_namespace = self.project.info['type'] self.stypes_items = self.project.stypes self.settings = QtCore.QSettings( '{0}/settings/{1}/{2}/{3}/checkin_out_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.checkin_out_config_projects = cfg_controls.get_checkin_out_projects( ) self.checkin_out_config = cfg_controls.get_checkin_out() # self.context_items = context_items self.is_created = False self.stypes_tree_visible = False self.tab_bar_customization()
def __init__(self, project, parent=None): super(self.__class__, self).__init__(parent=parent) env_inst.ui_check_tabs['checkin'] = self self.settings = QtCore.QSettings('{0}/settings/{1}/{2}/{3}/checkin_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.checkin_out_config_projects = cfg_controls.get_checkin_out_projects() self.checkin_out_config = cfg_controls.get_checkin_out() self.setupUi(self) self.ui_tree = [] # self.context_items = context_items self.project = project self.current_project = self.project.info['code'] self.current_namespace = self.project.info['type'] self.stypes_items = project.stypes if self.stypes_items: self.add_items_to_tabs() self.add_items_to_stypes_tree() self.tab_bar_customization() self.controls_actions() self.stypes_tree_visible = False self.readSettings()
def __init__(self, hotkeys=None, parent=None): super(self.__class__, self).__init__(parent=parent) env_inst.ui_maya_dock = self self.setObjectName('TacticHandlerDock') self.maya_window = self.parent() print self.maya_window, 'WINDOW' self.hotkeys_dict = hotkeys self.settings = QtCore.QSettings( '{0}/settings/{1}/{2}/{3}/main_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.docked = None self.dock_pos = None self.dock_area = None self.dock_size = None self.dock_is_floating = None self.readSettings() self.toggle_dock = None self.maya_dock = None self.status_bar = None self.create_ui_main() self.create_ui() # overriding QMayaDockWidget buggy resize event # self.maya_window.resizeEvent = self.resizeEvent self.catch_maya_closing()
def __init__(self, project_code, parent=None): super(self.__class__, self).__init__(parent=parent) env_inst.ui_main_tabs[project_code] = self self.settings = QtCore.QSettings('{0}/settings/{1}/{2}/{3}/main_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.setupUi(self) self.checkin_out_config_projects = cfg_controls.get_checkin_out_projects() self.checkin_out_config = cfg_controls.get_checkin_out() self.isCreated = False self.project = env_inst.projects.get(project_code) self.current_project = self.project.info['code'] self.current_namespace = self.project.info['type'] if self.checkin_out_config_projects and self.checkin_out_config: if gf.get_value_from_config(self.checkin_out_config, 'controlsTabsFilterGroupBox'): self.customize_controls_tabs() self.create_ui_main_tabs()
def __init__(self, stype, index, project, parent=None): super(self.__class__, self).__init__(parent=parent) self.settings = QtCore.QSettings('{0}/settings/{1}/{2}/{3}/checkout_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) # self vars self.tab_index = index self.stype = stype self.project = project self.current_project = self.project.info['code'] self.current_namespace = self.project.info['type'] self.tab_name = stype.info['code'] self.process_tree_widget = None self.relates_to = 'checkout' self.go_by_skey = [False, None] self.checkut_config = cfg_controls.get_checkout() self.create_ui_checkout() self.readSettings()
def __init__(self, project_code, parent=None): super(self.__class__, self).__init__(parent=parent) env_inst.ui_main_tabs[project_code] = self self.settings = QtCore.QSettings('{0}/settings/{1}/{2}/{3}/main_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.setupUi(self) self.checkin_out_config_projects = cfg_controls.get_checkin_out_projects() self.checkin_out_config = cfg_controls.get_checkin_out() self.isCreated = False self.project = env_inst.projects.get(project_code) self.current_project = self.project.info['code'] self.current_namespace = self.project.info['type'] if self.checkin_out_config_projects and self.checkin_out_config: if gf.get_value_from_config(self.checkin_out_config, 'controlsTabsFilterGroupBox', 'QGroupBox'): self.customize_controls_tabs() self.create_ui_main_tabs()
def create_update_archive(archive_path): zp = zipfile.ZipFile(archive_path, 'w', compression=zipfile.ZIP_DEFLATED) files_list = create_app_update_list() abs_path = env_mode.get_current_path() for fl in files_list: fl_rep = fl.replace zp.write(fl, arcname=fl_rep(abs_path, '')) zp.close()
def save_object(self, name, obj): settings = QtCore.QSettings('{0}/settings/{1}/{2}/{3}/tabs_cache.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) settings.beginGroup('tabs_cache/{0}/{1}'.format('namespace', 'project')) settings.setValue(name, obj) settings.endGroup()
def get_update_archive_from_server(archive_name): archive_path = '{0}/updates/{1}'.format(env_mode.get_current_path(), archive_name) update_archive_file = download_from_url('http://tactichandler.tk/th/{0}'.format(archive_name)) if update_archive_file: with open(archive_path, 'wb') as output: output.write(update_archive_file.read()) return archive_path
def commit_update_to_json(self): args = self.majorSpinBox.text(),\ self.minorSpinBox.text(),\ self.buildSpinBox.text(),\ self.revisionSpinBox.text() current_ver_dict = uf.get_version(*args) current_ver_str = uf.get_version(*args, string=True) data_dict = { 'version': current_ver_dict, 'date': self.dateEdit.text(), 'changes': self.changesPlainTextEdit.toPlainText(), 'misc': self.miscPlainTextEdit.toPlainText(), 'remove_list': [], 'update_archive': '{0}.tar.gz'.format(current_ver_str) } uf.save_json_to_path('{0}/updates/{1}.json'.format(env_mode.get_current_path(), current_ver_str), data_dict) uf.save_current_version(current_ver_dict) uf.create_update_archive('{0}/updates/{1}.tar.gz'.format(env_mode.get_current_path(), current_ver_str)) uf.create_updates_list() self.close()
def get_info_from_updates_folder(files_list=False): updates_dir = '{0}/updates'.format(env_mode.get_current_path()) json_files = glob.glob1(updates_dir, '*.json') if files_list: return json_files updates_list = [] for jf in json_files: if jf != 'versions.json': updates_list.append(read_json_from_path('{0}/{1}'.format(updates_dir, jf))) return updates_list
def commit_update_to_json(self): args = self.majorSpinBox.text(),\ self.minorSpinBox.text(),\ self.buildSpinBox.text(),\ self.revisionSpinBox.text() current_ver_dict = uf.get_version(*args) current_ver_str = uf.get_version(*args, string=True) data_dict = { 'version': current_ver_dict, 'date': self.dateEdit.text(), 'changes': self.changesPlainTextEdit.toPlainText(), 'misc': self.miscPlainTextEdit.toPlainText(), 'remove_list': [], 'update_archive': '{0}.zip'.format(current_ver_str) } uf.save_json_to_path('{0}/updates/{1}.json'.format(env_mode.get_current_path(), current_ver_str), data_dict) uf.create_updates_list() uf.save_current_version(current_ver_dict) uf.create_update_archive('{0}/updates/{1}.zip'.format(env_mode.get_current_path(), current_ver_str)) self.close()
def get_update_archive_from_server(archive_name): archive_path = '{0}/updates/{1}'.format(env_mode.get_current_path(), archive_name) update_archive_file = download_from_url( 'http://tactichandler.tk/th/{0}'.format(archive_name)) if update_archive_file: with open(archive_path, 'wb') as output: output.write(update_archive_file.read()) return archive_path
def create_update_archive(archive_path): tar = tarfile.open(archive_path, "w:gz") files_list = create_app_update_list() abs_path = env_mode.get_current_path() for fl in files_list: fl_rep = fl.replace tar.add(fl, arcname=fl_rep(abs_path, '')) tar.close()
def get_updates_from_server(): updates_list = download_from_url('http://tactichandler.tk/th/versions.json?{0}'.format(random.randint(0, 99999))) if updates_list: versions_list = json.loads(updates_list.read()) path_to_save = '{0}/updates'.format(env_mode.get_current_path()) if not os.path.exists(path_to_save): os.makedirs(path_to_save) for vl in versions_list: update_file = download_from_url('http://tactichandler.tk/th/{0}'.format(vl)) with open('{0}/{1}'.format(path_to_save, vl), 'wb') as output: output.write(update_file.read())
def get_info_from_updates_folder(files_list=False): updates_dir = '{0}/updates'.format(env_mode.get_current_path()) json_files = glob.glob1(updates_dir, '*.json') if files_list: return json_files updates_list = [] for jf in json_files: if jf != 'versions.json': print '{0}/{1}'.format(updates_dir, jf) updates_list.append( read_json_from_path('{0}/{1}'.format(updates_dir, jf))) return updates_list
def create_app_update_list(): ignore_list = [ '.idea', '!not_in_project!', 'settings', 'screenshots', 'updates', 'asd.txt', 'asd2.txt', 'asd4.txt', 'backup', 'design', 'deprecated', ] include_list = [ '*.py', '*.pyw', '*.ui', '*.json', '*.png', '*.psd', '*.py', '*.qrc', '*.ico', '*.tga', '*.txt', '*.tif', '*.rgb', '*.j2k', '*.jpg', '*.zip', '*.ttf', '*VERSION*', ] include_list = r'|'.join([fnmatch.translate(x) for x in include_list]) ignore_list = '|'.join(ignore_list) files_list = [] for root, dirs, files in os.walk(env_mode.get_current_path()): if not re.search(ignore_list, root): files = [os.path.join(root, f) for f in files] files = [f for f in files if not re.search(ignore_list, f)] files = [f for f in files if re.search(include_list, f)] for fl in files: files_list.append(fl) return files_list
def __init__(self, parent_ui, parent=None): super(self.__class__, self).__init__(parent=parent) self.settings = QtCore.QSettings( '{0}/settings/{1}/{2}/{3}/search_cache.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat ) self.setupUi(self) self.create_ui_search_results() self.parent_ui = parent_ui self.readSettings()
def __init__(self, parent=None): super(self.__class__, self).__init__(parent=parent) self.settings = QtCore.QSettings('{0}/settings/{1}/{2}/{3}/main_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.projects_docks = collections.OrderedDict() if env_mode.is_offline(): self.create_ui_main_offline() else: self.create_ui_main()
def get_updates_from_server(): updates_list = download_from_url( 'http://tactichandler.tk/th/versions.json?{0}'.format( random.randint(0, 99999))) if updates_list: versions_list = json.loads(updates_list.read()) path_to_save = '{0}/updates'.format(env_mode.get_current_path()) if not os.path.exists(path_to_save): os.makedirs(path_to_save) for vl in versions_list: update_file = download_from_url( 'http://tactichandler.tk/th/{0}'.format(vl)) with open('{0}/{1}'.format(path_to_save, vl), 'wb') as output: output.write(update_file.read())
def create_app_update_list(): ignore_list = [ '.idea', '!not_in_project!', 'settings', 'screenshots', 'updates', 'asd.txt', 'asd2.txt', 'asd4.txt', 'backup', ] include_list = [ '*.py', '*.pyw', '*.ui', '*.json', '*.png', '*.psd', '*.py', '*.qrc', '*.ico', '*.tga', '*.txt', '*.tif', '*.rgb', '*.j2k', '*.jpg', '*.zip', '*.ttf', '*VERSION*', ] include_list = r'|'.join([fnmatch.translate(x) for x in include_list]) ignore_list = '|'.join(ignore_list) files_list = [] for root, dirs, files in os.walk(env_mode.get_current_path()): if not re.search(ignore_list, root): files = [os.path.join(root, f) for f in files] files = [f for f in files if not re.search(ignore_list, f)] files = [f for f in files if re.search(include_list, f)] for fl in files: files_list.append(fl) return files_list
def __init__(self, parent=None): super(self.__class__, self).__init__(parent=parent) self.settings = QtCore.QSettings('{0}/settings/{1}/{2}/{3}/main_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.create_debuglog_widget() env_inst.ui_debuglog = self.debuglog_widget dl.info('WARNING!!!') self.projects_docks = collections.OrderedDict() if env_mode.is_offline(): self.create_ui_main_offline() else: self.create_ui_main()
def __init__(self, parent_ui, project, stype, parent=None): super(self.__class__, self).__init__(parent=parent) self.settings = QtCore.QSettings( '{0}/settings/{1}/{2}/{3}/search_cache.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat ) self.setSizeGripEnabled(True) # self.setWindowFlags(QtCore.Qt.ToolTip) # self.setWindowFlags(QtCore.Qt.Popup) self.setFocusPolicy(QtCore.Qt.StrongFocus) self.parent_ui = parent_ui self.project = project self.stype = stype self.all_items_dict = { 'children': [], 'processes': {}, 'builtins': [], } title = self.stype.info.get('title') if not title: title = self.stype.info.get('name') elif not title: title = self.stype.info.get('code') self.setWindowTitle('Pipeline for: {0}'.format(title)) self.create_tree_widget() self.fill_tree_widget() self.fit_to_content_tree_widget() self.create_buttons() self.none = True self.controls_actions() self.readSettings()
def __init__(self, hotkeys=None, parent=None): super(self.__class__, self).__init__(parent=parent) env_inst.ui_maya_dock = self self.setObjectName('TacticHandlerDock') self.maya_window = self.parent() self.hotkeys_dict = hotkeys self.settings = QtCore.QSettings('{0}/settings/{1}/{2}/{3}/main_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.docked = None self.dock_pos = None self.dock_area = None self.dock_size = None self.dock_is_floating = None self.readSettings() self.toggle_dock = None self.maya_dock = None self.status_bar = None self.create_ui_main() self.create_ui() # overriding QMayaDockWidget buggy resize event self.maya_window.resizeEvent = self.resizeEvent # self.switch_tab() # self.handle_hotkey() self.catch_maya_closing()
def save_json_to_path(file_path, data): updates_dir = '{0}/updates'.format(env_mode.get_current_path()) if not os.path.exists(updates_dir): os.makedirs(updates_dir) json_file = file(file_path, mode='w+') json.dump(data, json_file, indent=4)
def update_from_archive(archive_path): tar = tarfile.open(archive_path, "r:gz") tar.extractall(env_mode.get_current_path()) tar.close()
def get_current_version(): file_path = '{0}/lib/version.json'.format(env_mode.get_current_path()) return read_json_from_path(file_path)
def save_current_version(data): file_path = '{0}/lib/version.json'.format(env_mode.get_current_path()) save_json_to_path(file_path, data)
def __init__(self, stype, parent_stype=None, item=None, view='insert', search_key=None, parent=None): super(self.__class__, self).__init__(parent=parent) # TODO get title from within self.settings = QtCore.QSettings( '{0}/settings/{1}/{2}/{3}/main_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.item = item self.stype = stype self.parent_stype = parent_stype self.search_type = self.stype.info.get('code') self.view = view self.search_key = search_key self.parent_search_key = None if self.item: if not search_key: self.search_key = self.item.get_search_key() self.parent_search_key = self.item.get_parent_search_key() kwargs_edit = { 'args': { 'input_prefix': 'edit', 'search_key': self.search_key, 'parent_key': self.parent_search_key, 'view': 'edit', }, 'search_type': self.search_type, } kwargs_insert = { 'args': { 'mode': 'insert', 'input_prefix': 'insert', 'parent_key': self.parent_search_key, 'search_type': self.search_type, 'view': 'insert', }, 'search_type': self.search_type, } if self.view == 'edit': kwargs = kwargs_edit else: kwargs = kwargs_insert code = tq.prepare_serverside_script(tq.query_EditWdg, kwargs, return_dict=True) # print code['code'] result = tc.server_start().execute_python_script('', kwargs=code) result_dict = json.loads(result['info']['spt_ret_val']) input_widgets_list = [] if self.item: result_dict['EditWdg']['sobject'] = self.item.get_sobject() result_dict['EditWdg'][ 'parent_sobject'] = self.item.get_parent_sobject() tactic_edit_widget = tw.TacticEditWdg(result_dict['EditWdg']) self.edit_window = twc.QtTacticEditWidget( tactic_widget=tactic_edit_widget, qt_widgets=input_widgets_list, stype=self.stype, parent=self) for widget_dict in result_dict['InputWidgets']: tactic_widget_name = tw.get_widget_name(widget_dict['class_name'], 'input') widget_dict['sobject'] = result_dict['EditWdg'].get('sobject') widget_dict['parent_sobject'] = result_dict['EditWdg'].get( 'parent_sobject') if not tactic_widget_name: tactic_widget_name = 'TacticCurrentCheckboxWdg' tactic_widget = getattr(tw, tactic_widget_name) qt_widget = getattr(twc, 'Q{0}'.format(tactic_widget_name)) widget_dict['stype'] = self.stype tactic_widget_instance = tactic_widget(options_dict=widget_dict) qt_widget_instance = qt_widget( tactic_widget=tactic_widget_instance, parent=self.edit_window) input_widgets_list.append(qt_widget_instance) self.grid_layout = QtGui.QGridLayout(self) self.grid_layout.addWidget(self.edit_window) self.setSizeGripEnabled(True) self.set_title()
def create_updates_list(): file_path = '{0}/updates/versions.json'.format(env_mode.get_current_path()) save_json_to_path(file_path, get_info_from_updates_folder(files_list=True))
def __init__(self, stype, item=None, view='insert', parent=None): super(self.__class__, self).__init__(parent=parent) #TODO get title from within self.settings = QtCore.QSettings('{0}/settings/{1}/{2}/{3}/main_ui_config.ini'.format( env_mode.get_current_path(), env_mode.get_node(), env_server.get_cur_srv_preset(), env_mode.get_mode()), QtCore.QSettings.IniFormat) self.parent_ui = parent self.item = item self.stype = stype self.search_type = self.stype.info.get('code') self.view = view self.search_key = None self.parent_search_key = None if self.item: self.search_key = self.item.get_search_key() self.parent_search_key = self.item.get_parent_search_key() kwargs_edit = { 'args': { 'input_prefix': 'edit', 'search_key': self.search_key, 'parent_key': self.parent_search_key, 'view': 'edit', }, 'search_type': self.search_type, } kwargs_insert = { 'args': { 'mode': 'insert', 'input_prefix': 'insert', 'parent_key': self.parent_search_key, 'search_type': self.search_type, 'view': 'insert', }, 'search_type': self.search_type, } if self.view == 'edit': kwargs = kwargs_edit else: kwargs = kwargs_insert code = tq.prepare_serverside_script(tq.query_EditWdg, kwargs, return_dict=True) result = tc.server_start().execute_python_script('', kwargs=code) result_dict = json.loads(result['info']['spt_ret_val']) input_widgets_list = [] if self.item: result_dict['EditWdg']['sobject'] = self.item.get_sobject() result_dict['EditWdg']['parent_sobject'] = self.item.get_parent_sobject() tactic_edit_widget = tw.TacticEditWdg(result_dict['EditWdg']) self.edit_window = twc.QtTacticEditWidget( tactic_widget=tactic_edit_widget, qt_widgets=input_widgets_list, parent=self ) for widget_dict in result_dict['InputWidgets']: tactic_widget_name = tw.get_widget_name(widget_dict['class_name'], 'input') widget_dict['sobject'] = result_dict['EditWdg'].get('sobject') widget_dict['parent_sobject'] = result_dict['EditWdg'].get('parent_sobject') if not tactic_widget_name: tactic_widget_name = 'TacticCurrentCheckboxWdg' tactic_widget = getattr(tw, tactic_widget_name) qt_widget = getattr(twc, 'Q{0}'.format(tactic_widget_name)) widget_dict['stype'] = self.stype tactic_widget_instance = tactic_widget(options_dict=widget_dict) qt_widget_instance = qt_widget(tactic_widget=tactic_widget_instance, parent=self.edit_window) input_widgets_list.append(qt_widget_instance) self.grid_layout = QtGui.QGridLayout(self) self.grid_layout.addWidget(self.edit_window) self.setSizeGripEnabled(True) self.set_title() self.readSettings()