Exemple #1
0
    def __init__(self, banner_path=None, content=None):
        QtGui.QWidget.__init__(self)

        if banner_path is None:
            banner_path = shared_data(openalea.oalab, 'icons/logo/banner.png')

        self._lay = QtGui.QVBoxLayout(self)

        p = QtGui.QSizePolicy

        self._banner = QtGui.QLabel()
        self._banner.setStyleSheet("QLabel { background-color : #ffffff;}")
        banner = QtGui.QPixmap(banner_path)
        size = banner.size()
        self._banner.setPixmap(banner)

        self._content = QWebView()
        if hasattr(self._content, "setReadOnly"):
            self._content.setReadOnly(True)
        self._content.setHtml(content)

        self._footer = QtGui.QLabel()
        self._footer.setStyleSheet("QLabel { background-color : #459454;}")

        self._lay.addWidget(self._banner)
        self._lay.addWidget(self._content)
        self._lay.addWidget(self._footer)
        self._lay.setContentsMargins(0, 0, 0, 0)
        self._lay.setSpacing(0)
Exemple #2
0
    def __init__(self):
        QtGui.QWidget.__init__(self)

        c = self.palette().color(self.backgroundRole())
        self._default_color = str((c.red(), c.green(), c.blue()))

        self.canvas = MplCanvas()
        self.manager = FigureManagerQT(self.canvas, MplFigureWidget.count)
        self.mpl_toolbar = NavigationToolbar2QT(self.canvas, None)
        self.mpl_toolbar.setStyleSheet("background-color: rgb%s;" %
                                       self._default_color)
        self.mpl_toolbar.hide()

        MplFigureWidget.count += 1
        all_widgets.append(self)

        self.setToolTip("Figure %d" % self.manager.num)

        self.setFrameShape(QtGui.QFrame.Box)
        self.setFrameShadow(QtGui.QFrame.Plain)
        self.setContentsMargins(1, 1, 1, 1)

        self._layout = QtGui.QVBoxLayout(self)
        self._layout.addWidget(self.canvas)
        self._layout.setContentsMargins(1, 1, 1, 1)
Exemple #3
0
    def __init__(self, name, orientation=QtCore.Qt.Horizontal):
        super(Group, self).__init__()

        self.setToolTip(name)
        self.setObjectName('Group')
        self.name = name

        self.row_number = 2
        self.orientation = orientation

        if orientation == QtCore.Qt.Horizontal:
            self.layout = QtGui.QHBoxLayout()
            self.layout.setAlignment(QtCore.Qt.AlignLeft)
        else:
            self.layout = QtGui.QVBoxLayout()
            self.layout.setAlignment(QtCore.Qt.AlignTop)
        self.setLayout(self.layout)

        if orientation == QtCore.Qt.Horizontal:
            self._group_big = SubGroupH()
            self._group_small = SubGroupGrid()
        else:
            self._group_big = SubGroupV()
            self._group_small = SubGroupV()

        self.layout.addWidget(self._group_big)
        self.layout.addWidget(self._group_small)
        self.fine_tune()
    def __init__(self):
        QtGui.QWidget.__init__(self)

        self._show_toolbar = Control('toolbar', interface='IBool', value=False, label='Show Toolbar')
        self._show_title = Control('title', interface='IBool', value=False, label='Show Applet Title')

        self._props = QControlContainer()
        self._props.controlValueChanged.connect(self._on_prop_changed)
        self._props.add_control(self._show_toolbar)
        self._props.add_control(self._show_title)

        self._edit_mode = False

        self._applet = None

        self._layout = QtGui.QVBoxLayout(self)

        self._l_title = QtGui.QLabel('No applet selected')
        self._l_title.hide()
        self._menu = ContextualMenu()

        p = QtGui.QSizePolicy
        self._l_title.setSizePolicy(p(p.MinimumExpanding, p.Maximum))
        self._l_title.setAlignment(QtCore.Qt.AlignVCenter)

        self._layout.setAlignment(self._l_title, QtCore.Qt.AlignVCenter)

        self._layout.addWidget(self._l_title)
        self._layout.addWidget(self._menu)

        self._create_actions()
        self.fine_tune()
Exemple #5
0
def start_qt(factory, node):
    """ Start Qt, and open widget of factory, node

    :param factory: todo
    :param node: todo

    """

    from openalea.vpltk.qt import QtGui, QtCore

    app = QtGui.QApplication(sys.argv)

    # CTRL+C binding
    import signal
    signal.signal(signal.SIGINT, signal.SIG_DFL)

    dialog = QtGui.QDialog()
    widget = factory.instantiate_widget(node, autonomous=True)

    dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose)
    widget.setParent(dialog)

    vboxlayout = QtGui.QVBoxLayout(dialog)
    vboxlayout.setContentsMargins(3, 3, 3, 3)
    vboxlayout.setSpacing(5)
    vboxlayout.addWidget(widget)

    dialog.setWindowTitle(factory.name)
    dialog.show()

    app.exec_()
    def __init__(self, node, parent):
        QtGui.QDialog.__init__(self, parent)
        NodeWidget.__init__(self, node)

        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)
        self.btGroup = QtGui.QButtonGroup()
        self.btGroup.setExclusive(True)

        self.widgets = []
        self.notify(node, ("input_modified", 0))
Exemple #7
0
def password():
    _widget = QtGui.QWidget()
    _layout = QtGui.QVBoxLayout(_widget)
    _password = QtGui.QLineEdit()
    _password.setEchoMode(QtGui.QLineEdit.Password)

    _layout.addWidget(QtGui.QLabel("Password ?"))
    _layout.addWidget(_password)

    dialog = ModalDialog(_widget)
    if dialog.exec_():
        return _password.text()
Exemple #8
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)
Exemple #9
0
def raw_input_dialog(prompt=None, size=None):
    _widget = QtGui.QWidget()
    _layout = QtGui.QVBoxLayout(_widget)
    _line = QtGui.QLineEdit()

    _layout.addWidget(QtGui.QLabel("Input ?"))
    _layout.addWidget(_line)

    dialog = ModalDialog(_widget)
    if dialog.exec_() and _line.text():
        return _line.text()
    else:
        return u'\n'
Exemple #10
0
    def __init__(self):
        QtGui.QWidget.__init__(self)

        layout = QtGui.QVBoxLayout(self)
        self.view = ProjectBrowserView()
        self._transfer_view_signals()

        self.model = self.view.model()
        layout.addWidget(self.view)
        layout.setContentsMargins(0, 0, 0, 0)

        self._create_actions()
        self._create_menus()
Exemple #11
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent=parent)

        self.figure = Figure()
        self.canvas = FigureCanvas(self.figure)

        self.setLayout(QtGui.QVBoxLayout())
        layout = self.layout()
        layout.setSpacing(0)
        layout.setMargin(0)
        layout.addWidget(self.canvas)

        self.setFocusPolicy(
            QtCore.Qt.StrongFocus)  # strong = keyboard & mouse focus
Exemple #12
0
    def __init__(self, proj=None, parent=None):
        super(CreateProjectWidget, self).__init__(parent)
        self.pm = ProjectManager()

        self.widget_metadata = QtGui.QWidget()
        self.widget_path = QtGui.QWidget()

        layout_path = QtGui.QFormLayout(self.widget_path)

        # Name and path
        if proj is None:
            date = strftime("%Y-%m-%d_%H-%M-%S", gmtime())
            name = 'project_%s' % date if not proj else proj.name
            projectdir = self.pm.defaultdir
        else:
            name = proj.name
            projectdir = proj.path.parent

        self.editor_name = widget('IStr', name)
        self.editor_projectdir = widget('IDirStr', projectdir)

        layout_path.addRow(QtGui.QLabel('Name'), self.editor_name)
        layout_path.addRow(QtGui.QLabel('Project Directory'),
                           self.editor_projectdir)
        layout_path.setLabelAlignment(QtCore.Qt.AlignLeft)

        # Metadata
        self._metadata = {}
        layout_metadata = QtGui.QFormLayout(self.widget_metadata)
        layout_metadata.setLabelAlignment(QtCore.Qt.AlignLeft)

        for cat, metadata in Project.DEFAULT_METADATA.iteritems():
            label = QtGui.QLabel(metadata.name.capitalize().replace('_', ' '))
            editor = widget(metadata.interface, metadata.value)
            editor.setSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
                                 QtGui.QSizePolicy.Preferred)
            self._metadata[cat] = editor
            layout_metadata.addRow(label, editor)

        if proj:
            for key in proj.DEFAULT_METADATA:
                self._metadata[key].setValue(proj.metadata[key])
            title = "Edit '%s' metadata" % proj.name
        else:
            title = "New Project"

        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(QtGui.QLabel(title))
        layout.addWidget(self.widget_path)
        layout.addWidget(self.widget_metadata)
    def __init__(self, node, parent):

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

        #self.browser = QtGui.QTextBrowser()

        layout = QtGui.QVBoxLayout()
        #layout.addWidget(self.browser)
        self.setLayout(layout)

        self.in_list = []
        self.widgets = []
        self.notify(node, ("input_modified", 0))
 def __init__(self, items, parent=None):
     QtGui.QDialog.__init__(self, parent, QtCore.Qt.WindowOkButtonHint|
                                          QtCore.Qt.WindowCancelButtonHint)
     self.setWindowTitle("Select a tool")
     self.__l = QtGui.QVBoxLayout()
     self.__itemList = QtGui.QListWidget()
     self.__buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok|
                                             QtGui.QDialogButtonBox.Cancel)
     self.__l.addWidget(self.__itemList)
     self.__l.addWidget(self.__buttons)
     self.setLayout(self.__l)
     self.__itemList.addItems(items)
     self.__buttons.accepted.connect(self.accept)
     self.__buttons.rejected.connect(self.reject)
Exemple #15
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)
Exemple #16
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)
    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()
Exemple #18
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)
Exemple #19
0
    def __init__(self, siblings=[], parent=None):
        QtGui.QWidget.__init__(self, parent)

        statusTip =  """CTRL+F to search for a node"""
        self.setStatusTip(statusTip)

        self.__lay = QtGui.QVBoxLayout()
        self.__lay.setContentsMargins(2,2,2,2)
        self.__lay.setSpacing(2)
        self.__searchField = QtGui.QLineEdit()
        self.__treeView    = NodeFactoryTreeView(siblings)
        self.__lay.addWidget(self.__searchField)
        self.__lay.addWidget(self.__treeView)
        self.__searchField.hide()
        self.__searchField.installEventFilter(self)
        self.setLayout(self.__lay)
Exemple #20
0
    def __init__(self, parent=None):
        super(PackageSearchWidget, self).__init__(parent=parent)

        self.result_widget = OALabSearchView(parent)
        self.search_model = SearchModel()
        self.result_widget.setModel(self.search_model)

        self.search_lineEdit = QtGui.QLineEdit(self)
        self.search_lineEdit.editingFinished.connect(self.search_node)

        layout = QtGui.QVBoxLayout()
        layout.addWidget(self.search_lineEdit)
        layout.addWidget(self.result_widget)

        self.setLayout(layout)
        self.result_widget.clicked.connect(
            self.on_package_manager_focus_change)
Exemple #21
0
    def __init__(self, parent=None):
        """
        Widget to change settings.

        """
        super(PreferenceWidget, self).__init__(parent)
        self.setWindowTitle("OpenAleaLab Preferences")
        self.resize(600, 300)

        mainlayout = QtGui.QVBoxLayout(self)

        self.tabwidget = QtGui.QTabWidget(self)
        mainlayout.addWidget(self.tabwidget)
        config = settings.Settings()

        self._config = None
        self._option_values = {}
        self._set_config(config)
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self._im_view = PixmapStackView()
        self._label = ScalableLabel()

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

        self._label.setMouseTracking(True)
        self._last_mouse_x = 0
        self._last_mouse_y = 0

        self.connect(self._label, QtCore.SIGNAL("mouse_press"), self.mouse_pressed)
        self.connect(self._label, QtCore.SIGNAL("mouse_move"), self.mouse_pressed)

        self.axis = 2
        self.inc = 1 # index increment
        self._palette_name = None
Exemple #23
0
    def __init__(self, parent=None):
        super(RichTextEditor, self).__init__(parent)

        self.completer = DictionaryCompleter(parent=self)

        self.editor = self._default_editor(parent=self)
        self.editor.textChanged.connect(self.textChanged.emit)
        # self.editor.setCompleter(self.completer)

        self.goto_widget = GoToWidget(parent=self.editor)
        self.search_widget = SearchWidget(parent=self.editor)

        self.layout = QtGui.QVBoxLayout()
        self.layout.setContentsMargins(0, 0, 0, 0)
        self.layout.addWidget(self.editor)
        self.layout.addWidget(self.search_widget)
        self.setLayout(self.layout)

        self.search_widget.hide()
    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._sia = None

        self._cell_meshes = {}
        self._mesh = {}
        self._mesh_matching = {}

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

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

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

        if self.style == self.StyleTableView:
            self._view = None
            # 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)
Exemple #25
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)
Exemple #26
0
    def on_controls_selected(self, controls):
        if self._widget_edit:
            widget = self._widget_edit()
            widget.close()
            self._widget_edit = None
            del widget

        if not controls:
            return

        widget = QtGui.QWidget()
        widget.setAttribute(QtCore.Qt.WA_DeleteOnClose)

        layout = QtGui.QVBoxLayout(widget)
        for control in controls:
            subwidget = qt_editor(control,
                                  shape='large',
                                  preferred=control.widget)
            layout.addWidget(subwidget)
        self.addWidget(widget)
        self._widget_edit = weakref.ref(widget)
Exemple #27
0
    def __init__(self, parent, name, panelmanager=None):
        super(LPyPanelWidget, self).__init__(None)
        self.panelmanager = panelmanager
        self.setObjectName(name.replace(' ', '_'))
        self.setName(name)
        self.verticalLayout = QtGui.QVBoxLayout(parent)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName(name + "verticalLayout")

        self.objectpanel = QtGui.QScrollArea(parent)
        self.view = ObjectListDisplay(self, panelmanager)
        self.view.dock = self  # ?

        self.objectpanel.setWidget(self.view)
        self.objectpanel.setWidgetResizable(True)
        self.objectpanel.setObjectName(name + "panelarea")

        self.verticalLayout.addWidget(self.objectpanel)
        self.objectNameEdit = QtGui.QLineEdit(self)
        self.objectNameEdit.setObjectName(name + "NameEdit")
        self.verticalLayout.addWidget(self.objectNameEdit)
        self.objectNameEdit.hide()
        self.setLayout(self.verticalLayout)

        QtCore.QObject.connect(self.view, QtCore.SIGNAL('valueChanged(int)'),
                               self.__updateStatus)
        QtCore.QObject.connect(self.view, QtCore.SIGNAL('AutomaticUpdate()'),
                               self.__transmit_autoupdate)
        QtCore.QObject.connect(self.view,
                               QtCore.SIGNAL('selectionChanged(int)'),
                               self.endNameEditing)
        QtCore.QObject.connect(self.view, QtCore.SIGNAL('renameRequest(int)'),
                               self.displayName)
        QtCore.QObject.connect(self.objectNameEdit,
                               QtCore.SIGNAL('editingFinished()'),
                               self.updateName)
        self.dockNameEdition = False
        self.nameEditorAutoHide = True
        self.setAcceptDrops(True)
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, None)

        self._layout = QtGui.QVBoxLayout(self)
        self._layout.setContentsMargins(0, 0, 0, 0)
        self.setContentsMargins(0, 0, 0, 0)

        self._applets = []
        self._edit_mode = True

        self._e_title = QtGui.QLabel('')
        self._e_title.hide()

        self._tabwidget = AppletTabWidget()
        self._tabwidget.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self._tabwidget.appletSet.connect(self.appletSet.emit)
        self._tabwidget.currentChanged.connect(self._on_tab_changed)
        self.appletSet.connect(self._on_applet_changed)

        self._applet_selector = AppletSelector()
        self._applet_selector.appletChanged.connect(self._tabwidget.user_set_applet)

        self._layout.addWidget(self._e_title)
        self._layout.addWidget(self._tabwidget)
        self._layout.addWidget(self._applet_selector)

        self._tabwidget.new_tab()

        applet_name = self._applet_selector.currentAppletName()
        if applet_name:
            self._tabwidget.set_applet(applet_name)

        self._create_menus()
        self._create_actions()
        self._fill_menus()

        self.set_edit_mode()
        self.fine_tune()
Exemple #29
0
    def __init__(self):
        QtGui.QWidget.__init__(self)
        AbstractListener.__init__(self)

        layout = QtGui.QVBoxLayout(self)
        self.view = ProjectManagerView()
        self.model = self.view.model()
        layout.addWidget(self.view)
        layout.setContentsMargins(0, 0, 0, 0)

        self.pm = ProjectManager()

        self.menu_available_projects = QtGui.QMenu(u'Available Projects')

        self.actionNewProj = self.view.actionNewProj
        self.actionOpenProj = self.view.actionOpenProj

        group = "Project"
        self._actions = [
            [group, "Manage Project", self.view.actionNewProj, 0],
            [group, "Manage Project", self.view.actionOpenProj, 0],
            [group, "Manage Project", self.view.actionSaveProj, 0],
            #                  [group, "Manage Project", self.view.actionSaveProjAs, 1],
            [group, "Manage Project", self.view.actionCloseProj, 0],
            #                  [group, "Manage Project", self.view.actionEditMeta, 1],
            #                  ["Project", "Manage Project", self.actionRenameProject, 1],
        ]
        self._actions += self.view._actions

        # Menu used to display all available projects.
        # This menu is filled dynamically each time this menu is opened
        self.menu_available_projects = QtGui.QMenu(u'Available Projects')
        self.menu_available_projects.aboutToShow.connect(
            self._update_available_project_menu)
        self.action_available_project = {
        }  # Dict used to know what project corresponds to triggered action

        self.pm.register_listener(self)
Exemple #30
0
    def __init__(self, widget, parent=None, buttons=None):
        QtGui.QDialog.__init__(self, parent)

        _bbox = QtGui.QDialogButtonBox
        if buttons is None:
            buttons = _bbox.Ok | _bbox.Cancel

        self.setContentsMargins(0, 0, 0, 0)
        self.setModal(True)

        self.bbox = _bbox(buttons)
        self.bbox.accepted.connect(self.accept)
        self.bbox.rejected.connect(self.reject)

        ok = self.bbox.button(_bbox.Ok)
        if ok:
            ok.setDefault(True)

        layout = QtGui.QVBoxLayout(self)
        layout.setSpacing(0)
        layout.setContentsMargins(0, 5, 0, 5)
        layout.addWidget(widget)
        layout.addWidget(self.bbox)