def _save_uiux(self): request_reload = False current_applocale = applocales.get_current_applocale() if self.applocales_cb.SelectedItem: for applocale in applocales.APP_LOCALES: if str(applocale) == self.applocales_cb.SelectedItem: user_config.user_locale = applocale.locale_code if current_applocale != applocale \ and not self.reload_requested: request_reload = forms.alert( 'UI language has changed. Reloading pyRevit is ' 'required for this change to take effect. Do you ' 'want to reload now?', yes=True, no=True, ) # colorize docs user_config.colorize_docs = self.colordocs_cb.IsChecked revit.ui.toggle_doc_colorizer(user_config.colorize_docs) # output settings output.set_stylesheet(self.cur_stylesheet_tb.Text) if self.cur_stylesheet_tb.Text != output.get_default_stylesheet(): user_config.output_stylesheet = self.cur_stylesheet_tb.Text return request_reload
def _setup_uiux(self): applocale = applocales.get_current_applocale() sorted_applocales = \ sorted(applocales.APP_LOCALES, key=lambda x: str(x.lang_type)) self.applocales_cb.ItemsSource = [str(x) for x in sorted_applocales] self.applocales_cb.SelectedItem = str(applocale) # colorize docs self.colordocs_cb.IsChecked = user_config.colorize_docs # tab style color themes theme = tabs.get_tabcoloring_theme(user_config) self.tab_theme = theme self.filtercolor_counter = 1 self.doc_ordercolor_lb.ItemsSource = theme.TabOrderRules self.doc_filtercolor_lb.ItemsSource = theme.TabFilterRules # tab styles (must set after the color themes) self.project_tabstyle_cb.ItemsSource = theme.AvailableStyles self.project_tabstyle_cb.SelectedItem = theme.TabStyle self.family_tabstyle_cb.ItemsSource = theme.AvailableStyles self.family_tabstyle_cb.SelectedItem = theme.FamilyTabStyle self.sortdocs_cb.IsChecked = theme.SortDocTabs # output settings self.cur_stylesheet_tb.Text = output.get_stylesheet() # pyrevit gui settings self.loadtooltipex_cb.IsChecked = user_config.tooltip_debug_info
def _save_uiux(self): request_reload = False current_applocale = applocales.get_current_applocale() if self.applocales_cb.SelectedItem: for applocale in applocales.APP_LOCALES: if str(applocale) == self.applocales_cb.SelectedItem: user_config.user_locale = applocale.locale_code if current_applocale != applocale \ and not self.reload_requested: request_reload = forms.alert( 'UI language has changed. Reloading pyRevit is ' 'required for this change to take effect. Do you ' 'want to reload now?', yes=True, no=True) # colorize docs user_config.colorize_docs = self.colordocs_cb.IsChecked # save colorize theme tabs.set_tabcoloring_theme(user_config, self.tab_theme) tabs.init_doc_colorizer(user_config) # output settings output.set_stylesheet(self.cur_stylesheet_tb.Text) if self.cur_stylesheet_tb.Text != output.get_default_stylesheet(): user_config.output_stylesheet = self.cur_stylesheet_tb.Text # pyrevit gui settings if self.loadtooltipex_cb.IsChecked != user_config.tooltip_debug_info \ and not self.reload_requested: request_reload = forms.alert( 'pyRevit UI Configuration has changed. Reloading pyRevit is ' 'required for this change to take effect. Do you ' 'want to reload now?', yes=True, no=True) user_config.tooltip_debug_info = self.loadtooltipex_cb.IsChecked return request_reload
def _setup_uiux(self): applocale = applocales.get_current_applocale() sorted_applocales = \ sorted(applocales.APP_LOCALES, key=lambda x: str(x.lang_type)) self.applocales_cb.ItemsSource = [str(x) for x in sorted_applocales] self.applocales_cb.SelectedItem = str(applocale) # colorize docs self.colordocs_cb.IsChecked = user_config.colorize_docs # output settings self.cur_stylesheet_tb.Text = output.get_stylesheet()
def _new_session(): """ Get all installed extensions (UI extension only) and creates an assembly, and a ui for each. Returns: None """ assembled_exts = [] # get all installed ui extensions for ui_ext in extensionmgr.get_installed_ui_extensions(): # configure extension components for metadata # e.g. liquid templates like {{author}} ui_ext.configure() # collect all module references from extensions ui_ext_modules = ui_ext.get_all_modules() # make sure they are all loaded assmutils.load_asm_files(ui_ext_modules) # and update env information sessioninfo.update_loaded_pyrevit_referenced_modules(ui_ext_modules) # create a dll assembly and get assembly info ext_asm_info = asmmaker.create_assembly(ui_ext) if not ext_asm_info: mlogger.critical('Failed to create assembly for: %s', ui_ext) continue else: mlogger.info('Extension assembly created: %s', ui_ext.name) assembled_exts.append( AssembledExtension(ext=ui_ext, assm=ext_asm_info) ) # add names of the created assemblies to the session info sessioninfo.set_loaded_pyrevit_assemblies( [x.assm.name for x in assembled_exts] ) # run startup scripts for this ui extension, if any for assm_ext in assembled_exts: if assm_ext.ext.startup_script: # build syspaths for the startup script sys_paths = [assm_ext.ext.directory] if assm_ext.ext.library_path: sys_paths.insert(0, assm_ext.ext.library_path) mlogger.info('Running startup tasks for %s', assm_ext.ext.name) mlogger.debug('Executing startup script for extension: %s', assm_ext.ext.name) # now run execute_extension_startup_script( assm_ext.ext.startup_script, assm_ext.ext.name, sys_paths=sys_paths ) # register extension hooks for assm_ext in assembled_exts: hooks.register_hooks(assm_ext.ext) # update/create ui (needs the assembly to link button actions # to commands saved in the dll) for assm_ext in assembled_exts: uimaker.update_pyrevit_ui( assm_ext.ext, assm_ext.assm, user_config.load_beta ) mlogger.info('UI created for extension: %s', assm_ext.ext.name) # re-sort the ui elements for assm_ext in assembled_exts: uimaker.sort_pyrevit_ui(assm_ext.ext) # cleanup existing UI. This is primarily for cleanups after reloading uimaker.cleanup_pyrevit_ui() # reflow the ui if requested, depending on the language direction if user_config.respect_language_direction: current_applocale = applocales.get_current_applocale() uimaker.reflow_pyrevit_ui(direction=current_applocale.lang_dir) else: uimaker.reflow_pyrevit_ui()