def rename_model(project, category, name): filelist = getattr(project, category).keys() renamer = RenameModel(filelist, name) dialog = ModalDialog(renamer) if dialog.exec_(): old_name = renamer.old_name() new_name = renamer.new_name() project.rename_item(category, old_name, new_name)
def new_project(): project_creator = CreateProjectWidget() dialog = ModalDialog(project_creator) if dialog.exec_(): project = project_creator.project() project.save() write_project_settings() return project
def new_control(self): editor = ControlEditor('control') dialog = ModalDialog(editor) if dialog.exec_(): control = editor.control() if self.model()._manager.control(control.name): QtGui.QMessageBox.information(self, 'Error on adding control', 'A control with name %s already exists' % control.name) else: self.model().add_control(control)
def delete(self): project, category, name = self.selected_data() if project: if category in project.categories: data = project.get(category, name) confirm = QtGui.QLabel('Remove %s ?' % data.path) dialog = ModalDialog(confirm) if dialog.exec_(): project.remove(category, data) data.path.remove() self.item_removed.emit(project, category, data)
def edit_metadata(project): if project: project_creator = CreateProjectWidget(project) dialog = ModalDialog(project_creator) if dialog.exec_(): _proj = project_creator.project() if _proj.name != project.name or _proj.projectdir != project.projectdir: project.move(_proj.path) project.metadata = project_creator.metadata() project.save() return True return False
def open_project(self, name=False, path=None): """ If name==false, display a widget to choose project to open. Then open project. """ self.proj_selector = ProjectExplorer() dialog = ModalDialog(self.proj_selector) dialog.resize(800, 600) dialog.setContentsMargins(3, 3, 3, 3) if dialog.exec_(): project = self.proj_selector.item() if project: self.set_project(project) set_active_project(project)
def qt_dialog(control=None, **kwds): """ You can pass control factory arguments: - name: Control name - interface: Control interface - value: Control value You can also pass qt_editor factory arguments - shape: widget shape - preferred: preferred widget """ autoapply = kwds.get('autoapply', False) if control is None: control = Control(**kwds) widget = qt_editor(control, **kwds) widget.autoapply(control, autoapply) dialog = ModalDialog(widget) if dialog.exec_() == QtGui.QDialog.Accepted: return widget.value() else: return None
def _new_paradigm(self, project, category=None, dtype=None, name=None): klass = DataClass(MimeType(name=dtype)) if name is None: # Builtin default name for some categories if category in ['startup', 'lib']: d = {'startup': 'start.py', 'lib': 'algo.py'} name = d[category] else: # If category defined, use it in name if category: name = '%s_%s.%s' % (klass.default_name.lower(), category.lower(), klass.extension) else: name = 'file.%s' % klass.extension # Change extension to fit dtype (case name is given with wrong extension) parts = name.split('.') parts[-1] = klass.extension default_name = '.'.join(parts) if category: categories = [category] else: categories = project.categories.keys() # Show dialog w = ParadigmInfoSelector(default_name, categories, [dtype], project=project) dialog = ModalDialog(w) w.validity_changed.connect(dialog.set_valid) dialog.set_valid(w.is_valid()) if dialog.exec_(): name = w.name() category = w.category() dtype = w.dtype() p = project.path / category / name if p.exists(): project.add(category, path=p) else: project.add(category, filename=name, content="", dtype=dtype) self.item_added.emit(project, category, name)
def select_manager_item(manager, group, parent=None, **kwargs): """ kwargs: - size: tuple (width, height) [default: (640,480)] - title: unicode [default: "Select plugin"] """ size = kwargs.pop('size', None) style = kwargs.pop('style', None) title = kwargs.pop('title', 'Select plugin') selector = ManagerItemSelector(manager, group, style=style) selector.setAttribute(QtCore.Qt.WA_DeleteOnClose) if size: selector.resize(*size) dialog = ModalDialog(selector, parent=parent, buttons=QtGui.QDialogButtonBox.Cancel) dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose) dialog.setWindowTitle(title) selector.item_selected.connect(dialog.accept) if dialog.exec_(): plugin_class = selector.plugin_class else: plugin_class = None del dialog del selector return plugin_class
def show_about(self): about = About() dialog = ModalDialog(about) dialog.resize(400, 600) dialog.setWindowTitle("About OpenAleaLab ...") dialog.exec_()
def show_plugins(self): explorer = PluginExplorer() dialog = ModalDialog(explorer) dialog.resize(600, 600) dialog.setWindowTitle("OpenAleaLab plugin's ...") dialog.exec_()
def _on_add_applet_triggered(self): widget = AppletSelector() dialog = ModalDialog(widget) if dialog.exec_() == dialog.Accepted: self.add_applet(widget.currentAppletName())
def open_preferences(self): preferences = PreferenceWidget() dialog = ModalDialog(preferences) if dialog.exec_(): preferences.update_config(save=True)