Beispiel #1
0
    def __init__(self, world={}, parent=None):
        super(InputsModel, self).__init__(parent=parent)
        self.world = world

        layout = QtGui.QGridLayout(self)

        self.label = QtGui.QLabel("Inputs: ")

        self.combo_input = QtGui.QComboBox(self)
        self.combo_input.addItems(world.keys())

        self.add_button = QtGui.QPushButton("Add Input")
        self.add_button.clicked.connect(self.add_input)
        self.rm_button = QtGui.QPushButton("Remove Input")
        self.rm_button.clicked.connect(self.rm_input)

        self.ok_button = QtGui.QPushButton("Ok")
        self.ok_button.clicked.connect(self.print_current)

        layout.addWidget(self.label, 0, 0)
        layout.addWidget(self.combo_input, 0, 1)
        # layout.addWidget(self.add_button, 0, 2)
        # layout.addWidget(self.rm_button, 0, 3)
        # layout.addWidget(self.ok_button, 10, 0)

        self.setLayout(layout)
Beispiel #2
0
    def __init__(self, name, categories, dtypes, project=None, parent=None):
        super(ParadigmInfoSelector, self).__init__(parent=parent)

        self._valid = True

        self.project = project
        self.categories = categories
        self.dtypes = dtypes

        layout = QtGui.QFormLayout(self)

        self.l_categories = QtGui.QLabel(
            "Select in which category you want to add this file: ")
        self.l_dtypes = QtGui.QLabel("Data type")
        self.l_name = QtGui.QLabel("Name: ")
        self.l_notes = QtGui.QLabel("Note:")
        self.l_info = QtGui.QLabel("All is ok")

        # Category selector
        if len(self.categories) > 1:
            self.cb_categories = QtGui.QComboBox(self)
            self.cb_categories.addItems(categories)
            if 'model' in categories:
                self.cb_categories.setCurrentIndex(categories.index('model'))
            self.cb_categories.currentIndexChanged.connect(self.check)

            layout.addRow(self.l_categories, self.cb_categories)

        if len(self.dtypes) > 1:
            # Dtype selector
            self.cb_dtypes = QtGui.QComboBox(self)
            self.cb_dtypes.addItems(dtypes)
            self.cb_dtypes.setCurrentIndex(0)
            self.cb_dtypes.currentIndexChanged.connect(self.check_data)

            layout.addRow(self.l_dtypes, self.cb_dtypes)

        self.line = QtGui.QLineEdit(name)
        self.line.textChanged.connect(self.check)
        layout.addRow(self.l_name, self.line)
        layout.addRow(self.l_notes, self.l_info)
        self.setLayout(layout)

        self.check()
Beispiel #3
0
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.setMinimumSize(500, 400)
        self.showMaximized()
        self.setWindowTitle("Second Nature")
        self.setWindowFlags(QtCore.Qt.Window)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)

        self.logger = sn_logger
        self.__applets = []

        self.__extInitialised = False

        # -- main menu bar --
        self._mainMenuBar = QtGui.QMenuBar(self)
        self._projectMenu = self._mainMenuBar.addMenu("&Project")
        self.setMenuBar(self._mainMenuBar)

        # -- project menu --
        qpm = QActiveProjectManager()
        self._projectMenu.addAction(qpm.get_action_new())
        self._projectMenu.addAction(qpm.get_action_open())
        self._projectMenu.addAction(qpm.get_action_save())
        self._projectMenu.addAction(qpm.get_action_close())

        # -- a default central widget--
        self.__centralStack = QtGui.QStackedWidget(self)

        # -- status bar --
        self._statusBar  = QtGui.QStatusBar(self)
        self._layoutMode = QtGui.QComboBox(self)
        self._statusBar.addPermanentWidget(self._layoutMode)
        self._layoutMode.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
        self.__currentLayout = None
        self._statusBar.setStyleSheet("QStatusBar{background-color: " +\
                                      "qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, "+\
                                      "stop:0 rgba(135,135,135,255), " +\
                                      "stop:0.1 rgba(175,175,175,255), " +\
                                      "stop:1 rgba(200, 200, 200, 255));}")


        # -- add all those guys to the main window (self) --
        self.setMenuBar(self._mainMenuBar)
        self.setStatusBar(self._statusBar)
        self.setCentralWidget(self.__centralStack)

        self.__projMan = ProjectManager()
        if not self.__projMan.has_active_project():
            self.__projMan.new_active_project("New Project")

        # -- connections --
        self.__projMan.active_project_changed.connect(self.__on_active_project_set)
        AppletFactoryManager().applet_created.connect(self.add_applet)
        LayoutManager().item_list_changed.connect(self.__onLayoutListChanged)
        self._layoutMode.activated[int].connect(self.__onLayoutChosen)
        self._layoutMode.currentIndexChanged[int].connect(self.__onLayoutChosen)
Beispiel #4
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self._layout = QtGui.QHBoxLayout(self)
        self.setContentsMargins(0, 0, 0, 0)
        self._layout.setContentsMargins(0, 0, 0, 0)

        self._cb_groupby = QtGui.QComboBox()
        self._cb_groupby.currentIndexChanged.connect(
            self._on_current_index_changed)

        self._layout.addWidget(self._cb_groupby)
Beispiel #5
0
 def __init__(self):
     QtGui.QWidget.__init__(self)
     self.layout = QtGui.QVBoxLayout(self)
     self.view = ControlGraphicsView()
     self.cb_edit_mode = QtGui.QComboBox()
     for mode in [
             'User mode (change values)', 'Designer mode (place widgets)'
     ]:
         self.cb_edit_mode.addItem(mode)
     self.layout.addWidget(self.view)
     self.layout.addWidget(self.cb_edit_mode)
     self.cb_edit_mode.currentIndexChanged.connect(self._mode_changed)
Beispiel #6
0
    def __init__(self, node, parent):

        QtGui.QDialog.__init__(self, parent)
        NodeWidget.__init__(self, node)

        self.gridlayout = QtGui.QGridLayout(self)
        self.gridlayout.setContentsMargins(3, 3, 3, 3)
        self.gridlayout.setSpacing(5)

        self.package_lineedit_label = QtGui.QLabel('1. Set the package', self)
        self.gridlayout.addWidget(self.package_lineedit_label, 0, 0)

        self.package_lineedit = QtGui.QLineEdit(self)
        self.gridlayout.addWidget(self.package_lineedit, 0, 1, 1, 3)
        self.connect(self.package_lineedit, QtCore.SIGNAL("textChanged()"),
                     self.package_changed)

        self.datadir_lineedit = QtGui.QLineEdit(self)
        self.datadir_lineedit.setReadOnly(True)
        self.gridlayout.addWidget(self.datadir_lineedit, 1, 1, 1, 3)

        self.metadata_textedit = QtGui.QTextEdit('', self)
        self.metadata_textedit.setReadOnly(True)
        self.metadata_textedit.setTextInteractionFlags(
            QtCore.Qt.TextBrowserInteraction)
        self.gridlayout.addWidget(self.metadata_textedit, 2, 1, 1, 3)

        self.glob_lineedit_label = QtGui.QLabel(
            '2.Filter the data: (e.g., *.dat)', self)
        self.gridlayout.addWidget(self.glob_lineedit_label, 3, 0)

        self.glob_lineedit = QtGui.QLineEdit(self)
        self.gridlayout.addWidget(self.glob_lineedit, 3, 1, 1, 2)
        self.connect(self.glob_lineedit, QtCore.SIGNAL("textChanged()"),
                     self.glob_changed)

        self.filenames_combobox_label = QtGui.QLabel(
            '3. Select the data file:', self)
        self.gridlayout.addWidget(self.filenames_combobox_label, 4, 0)

        self.filenames_combobox = QtGui.QComboBox(self)
        self.connect(self.filenames_combobox, QtCore.SIGNAL("activated()"),
                     self.filename_changed)
        self.gridlayout.addWidget(self.filenames_combobox, 4, 1, 1, 3)

        self.setWindowTitle("SharedDatabrowser")
        self.setGeometry(250, 200, 350, 550)

        self.updating = False

        self.notify(node, ("input_modified", 0))
        self.notify(node, ("caption_modified", node.get_caption()))
Beispiel #7
0
    def __init__(self):
        QtGui.QWidget.__init__(self)

        self.colormap_bar = QColormapBar()
        self.colormap_bar.setMinimumHeight(20)
        self.colormap_bar.setMinimumWidth(120)

        self.colormap_name = "grey"

        # self.label = QtGui.QLabel(self)
        # self.label.setText("Colormap")

        self.combobox = QtGui.QComboBox(self)

        # self.setMinimumHeight(50)

        colormap_names = []
        # colormaps_path = Path(shared_data(tissuelab, 'colormaps/grey.lut')).parent
        colormaps_path = shared_data(tissuelab) / 'colormaps'
        for colormap_file in colormaps_path.walkfiles('*.lut'):
            colormap_name = str(colormap_file.name[:-4])
            colormap_names.append(colormap_name)
        colormap_names.sort()

        # map between string and combobox index
        self.map_index = {}
        for s in colormap_names:
            self.combobox.addItem(s)
            self.map_index[s] = self.combobox.count() - 1
        self.combobox.setCurrentIndex(self.map_index[self.colormap_name])

        # Fill background to avoid to see text or widget behind
        self.setAutoFillBackground(True)

        AbstractQtControlWidget.__init__(self)

        self.combobox.currentIndexChanged.connect(self.updateColormap)
        self.colormap_bar.valueChanged.connect(self.valueChanged)

        layout = QtGui.QHBoxLayout(self)
        layout.setContentsMargins(0, 0, 0, 0)

        # line = QtGui.QHBoxLayout(self)
        # line.setContentsMargins(0, 0, 0, 0)

        # line.addWidget(self.label)
        # line.addWidget(self.combobox)
        # layout.addLayout(line)
        layout.addWidget(self.combobox)
        layout.addWidget(self.colormap_bar)

        self.value_changed_signal = self.valueChanged
Beispiel #8
0
    def __init__(self, lst, labels=None):
        QtGui.QWidget.__init__(self)

        if labels is None:
            labels = {}

        self._layout = QtGui.QVBoxLayout(self)

        self._cb = QtGui.QComboBox()
        self._lst = lst
        for i, mimetype in enumerate(self._lst):
            self._cb.addItem(labels.get(mimetype, mimetype))

        self._layout.addWidget(QtGui.QLabel("Drop as ..."))
        self._layout.addWidget(self._cb)
Beispiel #9
0
    def __init__(self, filename="", categories=None, dtypes=None, parent=None):
        super(SelectCategory, self).__init__(parent=parent)

        if categories is None:
            categories = Project.DEFAULT_CATEGORIES.keys()
        if dtypes is None:
            dtypes = [
                plugin.default_name
                for plugin in iter_plugins('oalab.paradigm_applet')
            ]
            dtypes.append('Other')
        self.categories = categories

        layout = QtGui.QFormLayout(self)

        self.label = QtGui.QLabel(
            "Select in which category you want to add this file: ")
        self.l_dtypes = QtGui.QLabel("Data type")
        self.label2 = QtGui.QLabel("New filename: ")

        self.combo = QtGui.QComboBox(self)
        self.combo.addItems(categories)
        if 'model' in categories:
            self.combo.setCurrentIndex(categories.index('model'))

        self.combo_dtypes = QtGui.QComboBox(self)
        self.combo_dtypes.addItems(dtypes)
        self.combo_dtypes.setCurrentIndex(0)

        self.line = QtGui.QLineEdit(filename)

        layout.addRow(self.label, self.combo)
        layout.addRow(self.l_dtypes, self.combo_dtypes)
        layout.addRow(self.label2, self.line)

        self.setLayout(layout)
    def __init__(self, parent=None):

        QtGui.QWidget.__init__(self)
        layout = QtGui.QHBoxLayout(self)

        self.palette_select = QtGui.QComboBox()
        for palname in palette_names:
            self.palette_select.addItem(palname)

        #axis
        self.axis = QtGui.QComboBox()
        self.axis.addItem("Z-axis")
        self.axis.addItem("Y-axis")
        self.axis.addItem("X-axis")

        #slider
        self.img_slider = QtGui.QSlider(QtCore.Qt.Horizontal)
        self.img_slider.setEnabled(False)

        layout.addWidget(self.palette_select)
        layout.addWidget(self.img_slider)
        layout.addWidget(self.axis)

        self._viewer = None
Beispiel #11
0
        def __init__(self):
            QtGui.QWidget.__init__(self)
            layout = QtGui.QVBoxLayout(self)

            self.pb_select = QtGui.QPushButton('select')
            self.cb_category = QtGui.QComboBox()
            self.e_size = QtGui.QLineEdit("400x400")

            for category in ['oalab.lab', 'oalab.applet']:
                self.cb_category.addItem(category)

            self.pb_select.clicked.connect(self.select)

            layout.addWidget(self.cb_category)
            layout.addWidget(self.e_size)
            layout.addWidget(self.pb_select)
Beispiel #12
0
        def __init__(self):
            QtGui.QWidget.__init__(self)
            layout = QtGui.QVBoxLayout(self)

            self.pb_select = QtGui.QPushButton('select')
            self.cb_category = QtGui.QComboBox()
            self.e_size = QtGui.QLineEdit("400x400")

            for manager, group in managers:
                self.cb_category.addItem(group, manager)

            self.pb_select.clicked.connect(self.select)

            layout.addWidget(self.cb_category)
            layout.addWidget(self.e_size)
            layout.addWidget(self.pb_select)
Beispiel #13
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self)
        self._layout = QtGui.QVBoxLayout(self)

        p = QtGui.QSizePolicy

        self._cb_layout = QtGui.QComboBox()
        self._cb_layout.setSizePolicy(p(p.MinimumExpanding, p.Maximum))
        self._stack = QtGui.QStackedWidget()

        self._cb_layout.activated.connect(self._stack.setCurrentIndex)

        self._layout.addWidget(self._cb_layout)
        self._layout.addWidget(self._stack)

        self._cb_layout.hide()
Beispiel #14
0
    def __init__(self, parent=None):
        ManagerExplorer.__init__(self, parent)

        self._explorer.set_default_item_icon(DEFAULT_ICON)
        self.set_criteria(self.criteria)

        self._cb_group = QtGui.QComboBox()
        prefixes = ['openalea', 'oalab', 'vpltk']
        for group in sorted(iter_groups()):
            match = False
            for prefix in prefixes:
                if group.startswith(prefix):
                    match = True
                    break
            if match:
                self._cb_group.addItem(group)
        self._cb_group.currentIndexChanged.connect(self._on_group_changed)
        self._layout.addWidget(self._cb_group, 0, 2)

        self._on_group_changed(0)
Beispiel #15
0
    def __init__(self, parent=None, style=None):
        AbstractListener.__init__(self)
        QtGui.QWidget.__init__(self, parent=parent)

        self.world = None
        self.model = WorldModel()

        if style is None:
            style = self.DEFAULT_STYLE
        self.style = style

        self._manager = {}

        self._cb_world_object = QtGui.QComboBox()
        p = QtGui.QSizePolicy
        self._cb_world_object.setSizePolicy(p(p.Expanding, p.Maximum))
        self._cb_world_object.currentIndexChanged.connect(
            self._selected_object_changed)

        self._current = None
        self._default_manager = self._create_manager()

        self.interpreter = get_interpreter()
        self.interpreter.locals['world_control'] = self

        actionClearWorld = QtGui.QAction(
            QtGui.QIcon(":/images/resources/plant.png"), "Clear World", self)
        actionClearWorld.triggered.connect(self.clear)
        self._actions = [["Project", "World", actionClearWorld, 0]]

        self._layout = QtGui.QVBoxLayout(self)
        self._layout.addWidget(self._cb_world_object)

        if self.style == self.StyleTableView:
            self._view = ControlManagerWidget(manager=self._default_manager)
            self._layout.addWidget(self._view)
        elif self.style == self.StylePanel:
            self._view = None
            self._set_manager(self._default_manager)
        else:
            raise NotImplementedError('style %s' % self.style)
Beispiel #16
0
    def get_toolbar(self):
        """ create the toobar for this editor """
        tb = QtGui.QToolBar(self)

        # load = self._create_action(description='Load dataset', function=self.load_dataset, dialog='open')
        # run  = self._create_action(description='run rhizoscan', function=self.run_pipeline, keys=['Ctrl+R'])
        load = self._get_action(description='Load dataset',
                                function=self.load_dataset,
                                dialog='open')
        run = self._get_action(description='run rhizoscan',
                               function=self.run_pipeline,
                               keys=['Ctrl+R'])

        cbox = QtGui.QComboBox(parent=tb)
        self.dataset_cb = cbox

        tb.addAction(load)
        tb.addWidget(cbox)
        tb.addAction(run)

        return tb
Beispiel #17
0
    def __init__(self, models, model_name="", parent=None):
        super(RenameModel, self).__init__(parent=parent)
        self.models = models

        layout = QtGui.QGridLayout(self)

        self.label = QtGui.QLabel("Select model you want to rename: ")
        self.label2 = QtGui.QLabel("Write new name: ")
        self.combo = QtGui.QComboBox(self)
        self.combo.addItems(self.models)
        if not model_name:
            model_name = self.models[0]
        self.combo.setCurrentIndex(self.models.index(model_name))
        self.line = QtGui.QLineEdit(str(model_name))

        #         self.ok_button = QtGui.QPushButton("Ok")

        layout.addWidget(self.label, 0, 0)
        layout.addWidget(self.combo, 0, 1)
        layout.addWidget(self.label2, 1, 0)
        layout.addWidget(self.line, 1, 1)
        #         layout.addWidget(self.ok_button, 2, 0, 2, 2)

        self.setLayout(layout)
Beispiel #18
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self)
        self.setContentsMargins(0, 0, 0, 0)
        self._layout = QtGui.QHBoxLayout(self)
        self._layout.setContentsMargins(0, 0, 0, 0)

        self._cb_applets = QtGui.QComboBox()
        self._applet_label = []  # list of label sorted by name
        self._applet_plugins = {}  # label -> plugin class

        self._cb_applets.addItem('Select applet')
        for plugin in plugins('oalab.applet'):
            self._applet_label.append(plugin.label)
            self._applet_plugins[plugin.label] = plugin
        self._applet_label.sort()

        for label in self._applet_label:
            plugin_class = self._applet_plugins[label]
            self._cb_applets.addItem(obj_icon(plugin_class), label)

        self._layout.addWidget(self._cb_applets)

        self.setCurrentApplet('')
        self._cb_applets.currentIndexChanged.connect(self._on_current_applet_changed)
    def __init__(self, node, parent):
        """
        @param node
        @param parent
        """
        QtGui.QWidget.__init__(self, parent)
        NodeWidget.__init__(self, node)

        # -- imitate DefaultNodeWidget : refactor DefaultNodeWidget??? --
        # this is because we reuse the same code from DefaultNodeWidget
        # to build the UI.
        self.widgets = []
        self.empty = True
        # -- end of imitate DefaultNodeWidget --

        # -- own custom layout
        self.setMinimumSize(100, 20)
        # self.setSizePolicy(QtGui.QSizePolicy.Preferred,
        #                    QtGui.QSizePolicy.Preferred)
        self._mainLayout = QtGui.QVBoxLayout(self)
        self._mainLayout.setSizeConstraint(QtGui.QLayout.SetMinimumSize)
        self._mainLayout.setContentsMargins(3, 3, 3, 3)
        self._mainLayout.setSpacing(2)

        # -- the method name selection group box -- #
        self.__methodGBox = QtGui.QGroupBox("Method to wrap")
        # self.__methodGBox.setSizePolicy(QtGui.QSizePolicy.Preferred,
        #                                 QtGui.QSizePolicy.Preferred)
        self._mainLayout.addWidget(self.__methodGBox, 0, QtCore.Qt.AlignTop)

        methNameLayout = QtGui.QHBoxLayout()
        methNameLayout.setContentsMargins(3, 3, 3, 3)
        methNameLayout.setSpacing(2)

        methNameLabel = QtGui.QLabel("Method name:")
        self.__methodComboBox = QtGui.QComboBox()
        self.__lockChoice = QtGui.QPushButton()
        style = QtGui.QApplication.style()
        self.__lockChoice.setCheckable(True)
        self.__lockChoice.setIcon(
            style.standardIcon(QtGui.QStyle.SP_DialogApplyButton))
        self.__lockChoice.toggled.connect(self._methodChosen)
        methNameLayout.addWidget(methNameLabel, 0, QtCore.Qt.AlignLeft)
        methNameLayout.addWidget(self.__methodComboBox)
        methNameLayout.addWidget(self.__lockChoice, 0, QtCore.Qt.AlignLeft)

        self.__methodGBox.setLayout(methNameLayout)

        # -- The method's inputs widget --
        self.__vboxlayout = QtGui.QVBoxLayout()
        self._mainLayout.addLayout(self.__vboxlayout, 0)

        # -- map between string and combobox index --
        self.map_index = {}

        # -- initialisation --
        self.notify(node, ("input_modified", 0))
        self.__isInit = True
        toggled = bool(self.node.internal_data["methodName"]
                       and self.node.internal_data["methodSig"])
        self.__lockChoice.setChecked(toggled)
        self.__isInit = False