Пример #1
0
def test_all_interfaces():
    # Fill al
    for iname in interface_names():
        print iname
        for i, editor in enumerate(qt_control.qt_widget_plugins(iname)):
            print '  -', editor.name
            name = editor.name.replace('Plugin', 'P.').replace('Widget', 'W.')
            name = '%s_%s' % (iname, name)
            c = new_control(name, iname)
Пример #2
0
    def on_widget_changed(self):
        widget = None
        if self.cb_widget.currentIndex() == -1:
            return
        widget_name = self.widget_plugins[self.cb_widget.currentIndex()].name
        iname = self._interfaces[self.cb_interface.currentIndex()]

        icon_path = None
        for plugin in qt_widget_plugins(iname):
            if widget_name == plugin.name:
                widget = plugin.load()
                if hasattr(plugin, 'icon_path'):
                    icon_path = plugin.icon_path
                    if icon_path and not icon_path.exists():
                        icon_path = None
                else:
                    icon_path = None
                if icon_path is None:
                    icon_path = shared_data(openalea.oalab,
                                            'icons/preview_%s.png' % iname)
                    if icon_path and not icon_path.exists():
                        icon_path = None
                break

        if icon_path:
            pixmap = QtGui.QPixmap(icon_path)
            if pixmap.width() >= 400 or pixmap.height() >= 400:
                pixmap = pixmap.scaled(400, 400, QtCore.Qt.KeepAspectRatio)
            self.widget_preview.setPixmap(pixmap)
            self.l_widget.setToolTip(
                '<b>%s</b><br /><img src="%s" width="200" />' %
                (widget_alias(plugin), icon_path))
        else:
            self.widget_preview.setText("No preview")

        if self._constraints:
            widget_constraints = self._constraints()
            self._layout_constraints.removeWidget(widget_constraints)
            widget_constraints.close()
            self._constraints = None
#             self.l_constraints.hide()

        if widget and hasattr(widget, 'edit_constraints'):
            widget_constraints = widget.edit_constraints()
            widget_constraints.setAttribute(QtCore.Qt.WA_DeleteOnClose)
            self._layout_constraints.addWidget(widget_constraints)
            #             self.l_constraints.show()

            self._constraints = weakref.ref(widget_constraints)
Пример #3
0
    def on_widget_changed(self):
        widget = None
        if self.cb_widget.currentIndex() == -1:
            return
        widget_name = self.widget_plugins[self.cb_widget.currentIndex()].name
        iname = self._interfaces[self.cb_interface.currentIndex()]

        icon_path = None
        for plugin in qt_widget_plugins(iname):
            if widget_name == plugin.name:
                widget = plugin.load()
                if hasattr(plugin, "icon_path"):
                    icon_path = plugin.icon_path
                    if icon_path and not icon_path.exists():
                        icon_path = None
                else:
                    icon_path = None
                if icon_path is None:
                    icon_path = shared_data(openalea.oalab, "icons/preview_%s.png" % iname)
                    if icon_path and not icon_path.exists():
                        icon_path = None
                break

        if icon_path:
            pixmap = QtGui.QPixmap(icon_path)
            if pixmap.width() >= 400 or pixmap.height() >= 400:
                pixmap = pixmap.scaled(400, 400, QtCore.Qt.KeepAspectRatio)
            self.widget_preview.setPixmap(pixmap)
            self.l_widget.setToolTip('<b>%s</b><br /><img src="%s" width="200" />' % (widget_alias(plugin), icon_path))
        else:
            self.widget_preview.setText("No preview")

        if self._constraints:
            widget_constraints = self._constraints()
            self._layout_constraints.removeWidget(widget_constraints)
            widget_constraints.close()
            self._constraints = None
        #             self.l_constraints.hide()

        if widget and hasattr(widget, "edit_constraints"):
            widget_constraints = widget.edit_constraints()
            widget_constraints.setAttribute(QtCore.Qt.WA_DeleteOnClose)
            self._layout_constraints.addWidget(widget_constraints)
            #             self.l_constraints.show()

            self._constraints = weakref.ref(widget_constraints)
Пример #4
0
    def refresh(self):
        iname = self._interfaces[self.cb_interface.currentIndex()]
        if self._autoname:
            i = self.__class__.counters.setdefault(iname, 0)
            self.e_name.setText('%s_%d' % (iname[1:].lower(), i))
        self.l_type.setToolTip(self.tooltips[iname])

        self.cb_widget.clear()
        self.widget_plugins = []

        self.alias_to_wname = {}

        editors = qt_widget_plugins(iname)
        for widget in editors:
            self.widget_plugins.append(widget)
            alias = widget_alias(widget)
            self.alias_to_wname[alias] = widget.name
            self.cb_widget.addItem(alias)
Пример #5
0
    def refresh(self):
        iname = self._interfaces[self.cb_interface.currentIndex()]
        if self._autoname:
            i = self.__class__.counters.setdefault(iname, 0)
            self.e_name.setText("%s_%d" % (iname[1:].lower(), i))
        self.l_type.setToolTip(self.tooltips[iname])

        self.cb_widget.clear()
        self.widget_plugins = []

        self.alias_to_wname = {}

        editors = qt_widget_plugins(iname)
        for widget in editors:
            self.widget_plugins.append(widget)
            alias = widget_alias(widget)
            self.alias_to_wname[alias] = widget.name
            self.cb_widget.addItem(alias)
Пример #6
0
    def __init__(self, name='default'):
        QtGui.QWidget.__init__(self)
        Ui_ControlEditor.__init__(self)
        self.setupUi(self)

        self._interfaces = []
        self._constraints = None

        self.cb_preview.setChecked(False)
        self.box_preview.setVisible(False)

        self.e_name.setText(name)
        self._autoname = True
        self.e_name.textEdited.connect(self.on_user_edit)

        self.tooltips = {}

        self.alias_to_iname = {}

        self.alias_to_wname = {}
        self.widget_to_alias = {}

        plugins = qt_widget_plugins()
        for iname in plugins:
            alias = interface_alias(iname)
            self.alias_to_iname[alias] = iname
            self.tooltips[iname] = '<b>%s</b><br />Interface name:%s' % (alias,
                                                                         iname)

        for alias in sorted(self.alias_to_iname):
            iname = self.alias_to_iname[alias]
            self._interfaces.append(iname)
            tooltip = self.tooltips[iname]

            item = QtGui.QListWidgetItem(alias)
            item.setToolTip(tooltip)
            item.setStatusTip(tooltip)

            self.cb_interface.addItem(alias)

        self.cb_interface.currentIndexChanged.connect(self.refresh)
        self.cb_widget.currentIndexChanged.connect(self.on_widget_changed)

        self.refresh()
Пример #7
0
    def __init__(self, name="default"):
        QtGui.QWidget.__init__(self)
        Ui_ControlEditor.__init__(self)
        self.setupUi(self)

        self._interfaces = []
        self._constraints = None

        self.cb_preview.setChecked(False)
        self.box_preview.setVisible(False)

        self.e_name.setText(name)
        self._autoname = True
        self.e_name.textEdited.connect(self.on_user_edit)

        self.tooltips = {}

        self.alias_to_iname = {}

        self.alias_to_wname = {}
        self.widget_to_alias = {}

        plugins = qt_widget_plugins()
        for iname in plugins:
            alias = interface_alias(iname)
            self.alias_to_iname[alias] = iname
            self.tooltips[iname] = "<b>%s</b><br />Interface name:%s" % (alias, iname)

        for alias in sorted(self.alias_to_iname):
            iname = self.alias_to_iname[alias]
            self._interfaces.append(iname)
            tooltip = self.tooltips[iname]

            item = QtGui.QListWidgetItem(alias)
            item.setToolTip(tooltip)
            item.setStatusTip(tooltip)

            self.cb_interface.addItem(alias)

        self.cb_interface.currentIndexChanged.connect(self.refresh)
        self.cb_widget.currentIndexChanged.connect(self.on_widget_changed)

        self.refresh()
    'IStr': dict(value=u'Bonjour = Καλημέρα'),
    'ITextStr': dict(value=u"""Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Nunc turpis orci, porta at facilisis sed, dignissim sed magna. 
Aenean rutrum mi vitae nibh fermentum, ut tempus justo pulvinar. 
Donec ac nunc molestie, interdum lectus vel, malesuada metus. 
Ut rhoncus lectus ut risus hendrerit porttitor non id enim. 
Vivamus id mauris vitae metus porta accumsan. Proin ut mi nibh. 
Curabitur condimentum faucibus tortor, vel tincidunt mauris maximus quis. 
Phasellus eleifend feugiat nisl et dapibus. Pellentesque tempus nunc leo, ac bibendum nunc ullamcorper vitae. 
Sed hendrerit nisi mauris, id mattis ligula lacinia vel. Nullam at ultrices justo. 
Aenean eget risus vitae arcu convallis egestas.""")
}


for iname in interface_names():
    for plugin in qt_widget_plugins(iname):
        if 'responsive' in plugin.edit_shape:
            shapes = ['vline', 'hline', 'large']
        else:
            shapes = plugin.edit_shape
        for shape, size in [
                ('small', (50, 50)),
                ('hline', (200, 30)),
                ('vline', (30, 200)),
                ('large', None),
        ]:
            if shape not in shapes:
                continue

            if iname in SAMPLE_VALUES:
                kwargs = SAMPLE_VALUES[iname]
Пример #9
0
                        help='evaluable constraints (def: {"min":1, max:"100"}')
    parser.add_argument('--widget', '-w', dest='widget', type=str, default=None,
                        help='prefered widget (ex: IntRadioButton  def: undef)')
    parser.add_argument('--list-interfaces', '-l', dest='list_interfaces', action='store_true',
                        help='list all known interfaces')
    parser.add_argument('--list-interface-widgets', dest='list_interface_widgets', action='store_true',
                        help='list all known interfaces')

    args = parser.parse_args()

    if args.list_interfaces or args.list_interface_widgets:
        inames = [interface.__name__ for interface in interfaces()]
        for interface in sorted(interfaces()):
            print '\033[41m', interface, '\033[0m', interface.__module__
            if args.list_interface_widgets:
                widgets = scontrol.qt_widget_plugins(interface.__name__)
                if widgets:
                    for plugin in widgets:
                        w = plugin.load()
                        print '    \033[36m%s\033[0m\n        plugin: %s\n        widget: %s)' % (plugin.name, plugin, w)
    else:
        instance = QtGui.QApplication.instance()
        if instance is None:
            app = QtGui.QApplication([])
        else:
            app = instance

        interface = new_interface(args.iname, value=eval(args.value), **eval(args.constraints))
        control = Control('a', interface, value=eval(args.value), widget=args.widget)
        w = CheckSizes(control, sys.argv[2:])
        w.show()
Пример #10
0
                        dest='list_interfaces',
                        action='store_true',
                        help='list all known interfaces')
    parser.add_argument('--list-interface-widgets',
                        dest='list_interface_widgets',
                        action='store_true',
                        help='list all known interfaces')

    args = parser.parse_args()

    if args.list_interfaces or args.list_interface_widgets:
        inames = [interface.__name__ for interface in interfaces()]
        for interface in sorted(interfaces()):
            print '\033[41m', interface, '\033[0m', interface.__module__
            if args.list_interface_widgets:
                widgets = scontrol.qt_widget_plugins(interface.__name__)
                if widgets:
                    for plugin in widgets:
                        w = plugin.load()
                        print '    \033[36m%s\033[0m\n        plugin: %s\n        widget: %s)' % (
                            plugin.name, plugin, w)
    else:
        instance = QtGui.QApplication.instance()
        if instance is None:
            app = QtGui.QApplication([])
        else:
            app = instance

        interface = new_interface(args.iname,
                                  value=eval(args.value),
                                  **eval(args.constraints))