Example #1
0
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)
Example #2
0
def new_project():
    project_creator = CreateProjectWidget()
    dialog = ModalDialog(project_creator)
    if dialog.exec_():
        project = project_creator.project()
        project.save()
        write_project_settings()
        return project
Example #3
0
 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)
Example #4
0
    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)
Example #5
0
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
Example #6
0
    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)
Example #7
0
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
Example #8
0
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
Example #9
0
    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)
Example #10
0
 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)
Example #11
0
 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)
Example #12
0
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
Example #13
0
        self._credits = OpenAleaLabCredits()

        self.addTab(self._welcome, "About")
        self.addTab(self._credits, "Credits")
        self.addTab(self._plugin, "Plugins")

        size = self._welcome.size()
        self._credits.resize(size.width(), 600)
        self.resize(size.width(), 600)
        self.setContentsMargins(10, 10, 10, 10)


if __name__ == '__main__':

    instance = QtGui.QApplication.instance()

    if instance is None:
        app = QtGui.QApplication([])
    else:
        app = instance

    from openalea.oalab.utils import ModalDialog

    about = About()
    dialog = ModalDialog(about)
    dialog.show()

    if instance is None:
        app.exec_()
Example #14
0
 def show_about(self):
     about = About()
     dialog = ModalDialog(about)
     dialog.resize(400, 600)
     dialog.setWindowTitle("About OpenAleaLab ...")
     dialog.exec_()
Example #15
0
 def show_plugins(self):
     explorer = PluginExplorer()
     dialog = ModalDialog(explorer)
     dialog.resize(600, 600)
     dialog.setWindowTitle("OpenAleaLab plugin's ...")
     dialog.exec_()
Example #16
0
 def _on_add_applet_triggered(self):
     widget = AppletSelector()
     dialog = ModalDialog(widget)
     if dialog.exec_() == dialog.Accepted:
         self.add_applet(widget.currentAppletName())
Example #17
0
 def open_preferences(self):
     preferences = PreferenceWidget()
     dialog = ModalDialog(preferences)
     if dialog.exec_():
         preferences.update_config(save=True)
Example #18
0
 def open_preferences(self):
     preferences = PreferenceWidget()
     dialog = ModalDialog(preferences)
     if dialog.exec_():
         preferences.update_config(save=True)