def _perform_open(self, file_path): '''To open a project given by file_path ''' for widget in widgets[:]: if widget[1] == 'custom': widgets.remove(widget) self.cleanup() self.ui_creator.playground.sandbox.error_active = True root_widget = None with self.ui_creator.playground.sandbox: try: self.project_loader.load_project(file_path) if self.project_loader.class_rules: for i, _rule in enumerate(self.project_loader.class_rules): widgets.append((_rule.name, 'custom')) self.designer_content.toolbox.add_custom() #to test listview #root_wigdet = None root_wigdet = self.project_loader.get_root_widget() if not root_wigdet: #Show list box showing widgets self._select_class = SelectClass( self.project_loader.class_rules) self._select_class.bind(on_select=self._select_class_selected, on_cancel=self._select_class_cancel) self._select_class_popup = Popup(title="Select Root Widget", content = self._select_class, size_hint=(0.5, 0.5), auto_dismiss=False) self._select_class_popup.open() else: self.ui_creator.playground.add_widget_to_parent(root_wigdet, None, from_undo=True) self.ui_creator.kv_code_input.text = self.project_loader.get_full_str() self.recent_manager.add_file(file_path) #Record everything for later use self.project_loader.record() self.designer_content.update_tree_view(self.project_loader) self._add_designer_content() except Exception as e: self.statusbar.show_message('Cannot load Project: %s'%(str(e))) self.ui_creator.playground.sandbox.error_active = False
def _perform_new(self, *args): '''To load new project ''' if hasattr(self, '_popup'): self._popup.dismiss() self.cleanup() new_proj_dir = os.path.join(get_kivy_designer_dir(), NEW_PROJECT_DIR_NAME) if os.path.exists(new_proj_dir): shutil.rmtree(new_proj_dir) os.mkdir(new_proj_dir) template = self._new_dialog.adapter.selection[0].text kv_file = NEW_PROJECTS[template][0] py_file = NEW_PROJECTS[template][1] _dir = os.path.dirname(designer.__file__) _dir = os.path.split(_dir)[0] templates_dir = os.path.join(_dir, NEW_TEMPLATES_DIR) shutil.copy(os.path.join(templates_dir, py_file), os.path.join(new_proj_dir, "main.py")) shutil.copy(os.path.join(templates_dir, kv_file), os.path.join(new_proj_dir, "main.kv")) self.ui_creator.playground.sandbox.error_active = True with self.ui_creator.playground.sandbox: self.project_loader.load_new_project( os.path.join(new_proj_dir, "main.kv")) root_wigdet = self.project_loader.get_root_widget() self.ui_creator.playground.add_widget_to_parent(root_wigdet, None, from_undo=True) self.ui_creator.kv_code_input.text = \ self.project_loader.get_full_str() self.designer_content.update_tree_view(self.project_loader) self._add_designer_content() if self.project_loader.class_rules: for i, _rule in enumerate(self.project_loader.class_rules): widgets.append((_rule.name, 'custom')) self.designer_content.toolbox.add_custom() self.ui_creator.playground.sandbox.error_active = False
def _perform_new(self, *args): '''To load new project ''' if hasattr(self, '_popup'): self._popup.dismiss() self.cleanup() new_proj_dir = os.path.join(get_kivy_designer_dir(), NEW_PROJECT_DIR_NAME) if os.path.exists(new_proj_dir): shutil.rmtree(new_proj_dir) os.mkdir(new_proj_dir) template = self._new_dialog.adapter.selection[0].text kv_file = NEW_PROJECTS[template][0] py_file = NEW_PROJECTS[template][1] _dir = os.path.dirname(designer.__file__) _dir = os.path.split(_dir)[0] templates_dir = os.path.join(_dir, NEW_TEMPLATES_DIR) shutil.copy(os.path.join(templates_dir, py_file), os.path.join(new_proj_dir, "main.py")) shutil.copy(os.path.join(templates_dir, kv_file), os.path.join(new_proj_dir, "main.kv")) self.ui_creator.playground.sandbox.error_active = True with self.ui_creator.playground.sandbox: self.project_loader.load_new_project(os.path.join(new_proj_dir, "main.kv")) root_wigdet = self.project_loader.get_root_widget() self.ui_creator.playground.add_widget_to_parent(root_wigdet, None, from_undo=True) self.ui_creator.kv_code_input.text = \ self.project_loader.get_full_str() self.designer_content.update_tree_view(self.project_loader) self._add_designer_content() if self.project_loader.class_rules: for i, _rule in enumerate(self.project_loader.class_rules): widgets.append((_rule.name, 'custom')) self.designer_content.toolbox.add_custom() self.ui_creator.playground.sandbox.error_active = False
def _custom_browser_load(self, instance): '''Event Handler for 'on_success' event of self._custom_browser ''' file_path = instance.selection[0] self._popup.dismiss() self.ui_creator.playground.sandbox.error_active = True with self.ui_creator.playground.sandbox: try: self.project_loader.add_custom_widget(file_path) self.designer_content.toolbox.cleanup() for _rule in (self.project_loader.custom_widgets): widgets.append((_rule.name, 'custom')) self.designer_content.toolbox.add_custom() except ProjectLoaderException as e: self.statusbar.show_message('Cannot load widget. %s'%str(e)) self.ui_creator.playground.sandbox.error_active = False
def _custom_browser_load(self, instance): '''Event Handler for 'on_success' event of self._custom_browser ''' file_path = instance.selection[0] self._popup.dismiss() self.ui_creator.playground.sandbox.error_active = True with self.ui_creator.playground.sandbox: try: self.project_loader.add_custom_widget(file_path) self.designer_content.toolbox.cleanup() for _rule in (self.project_loader.custom_widgets): widgets.append((_rule.name, 'custom')) self.designer_content.toolbox.add_custom() except ProjectLoaderException as e: self.statusbar.show_message('Cannot load widget. %s' % str(e)) self.ui_creator.playground.sandbox.error_active = False
def _perform_open(self, file_path): '''To open a project given by file_path ''' for widget in widgets[:]: if widget[1] == 'custom': widgets.remove(widget) self.cleanup() self.ui_creator.playground.sandbox.error_active = True root_widget = None with self.ui_creator.playground.sandbox: try: self.project_loader.load_project(file_path) if self.project_loader.class_rules: for i, _rule in enumerate(self.project_loader.class_rules): widgets.append((_rule.name, 'custom')) self.designer_content.toolbox.add_custom() #to test listview #root_wigdet = None root_wigdet = self.project_loader.get_root_widget() if not root_wigdet: #Show list box showing widgets self._select_class = SelectClass( self.project_loader.class_rules) self._select_class.bind( on_select=self._select_class_selected, on_cancel=self._select_class_cancel) self._select_class_popup = Popup( title="Select Root Widget", content=self._select_class, size_hint=(0.5, 0.5), auto_dismiss=False) self._select_class_popup.open() else: self.ui_creator.playground.add_widget_to_parent( root_wigdet, None, from_undo=True) self.ui_creator.kv_code_input.text = \ self.project_loader.get_full_str() self.recent_manager.add_file(file_path) #Record everything for later use self.project_loader.record() self.designer_content.update_tree_view(self.project_loader) self._add_designer_content() except Exception as e: self.statusbar.show_message('Cannot load Project: %s' % (str(e))) self.ui_creator.playground.sandbox.error_active = False