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)
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)
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)
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)
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)
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()
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]
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()
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))