class IPFSHashExplorerToolBox(GalacteekTab): """ Organizes IPFSHashExplorerWidgets with a QToolBox """ def __init__(self, gWindow, hashRef, maxItems=16, parent=None): super(IPFSHashExplorerToolBox, self).__init__(gWindow) self.rootHash = hashRef self.maxItems = maxItems self.toolbox = QToolBox() self.exLayout = QVBoxLayout() self.exLayout.addWidget(self.toolbox) self.vLayout.addLayout(self.exLayout) if self.rootHash: self.viewHash(self.rootHash) @property def itemsCount(self): return self.toolbox.count() def viewHash(self, hashRef, addClose=False, autoOpenFolders=False): w = self.lookup(hashRef) if w: self.toolbox.setCurrentWidget(w) return True if self.itemsCount > self.maxItems: return False view = IPFSHashExplorerWidget(hashRef, parent=self, addClose=addClose, autoOpenFolders=autoOpenFolders) view.closeRequest.connect(functools.partial(self.remove, view)) view.directoryOpenRequest.connect( lambda cid: self.viewHash(cid, addClose=True)) idx = self.toolbox.addItem(view, getIconIpfsWhite(), hashRef) self.toolbox.setCurrentIndex(idx) view.reFocus() return True def lookup(self, hashRef): for idx in range(self.itemsCount): if self.toolbox.itemText(idx) == hashRef: return self.toolbox.widget(idx) def remove(self, view): idx = self.toolbox.indexOf(view) if idx: self.toolbox.removeItem(idx) # Always display previous index in the stack if self.itemsCount > 0: rIdx = idx - 1 view = self.toolbox.widget(rIdx) if view: self.toolbox.setCurrentWidget(view) view.reFocus()
def set_combobox_index(combo_box: QtWidgets.QToolBox): try: if (int(configs.load_state_value(combo_box.objectName(), INDEX)) < combo_box.count()): combo_box.setCurrentIndex( int(configs.load_state_value(combo_box.objectName(), INDEX))) except ValueError: configs.save_state_value(combo_box.objectName(), INDEX, str(combo_box.currentIndex()))
class QuickInsert(QWidget): def __init__(self, dockwidget): super(QuickInsert, self).__init__(dockwidget) self._dockwidget = weakref.ref(dockwidget) # filled in by ButtonGroup subclasses self.actionDict = {} layout = QVBoxLayout() self.setLayout(layout) layout.setContentsMargins(0, 0, 0, 0) self.helpButton = QToolButton( icon=icons.get("help-contents"), autoRaise=True, clicked=lambda: userguide.show("quickinsert")) self.directionLabel = QLabel() self.direction = QComboBox() self.direction.addItems(['', '', '']) self.direction.setItemIcon(0, icons.get("go-up")) self.direction.setItemIcon(2, icons.get("go-down")) self.direction.setCurrentIndex(1) hor = QHBoxLayout() hor.setContentsMargins(0, 0, 0, 0) hor.addWidget(self.helpButton) hor.addWidget(self.directionLabel) hor.addWidget(self.direction) layout.addLayout(hor) self.toolbox = QToolBox(self) gadgets.toolboxwheeler.ToolBoxWheeler(self.toolbox) layout.addWidget(self.toolbox) for cls in ( articulations.Articulations, dynamics.Dynamics, spanners.Spanners, barlines.BarLines, ): widget = cls(self) self.toolbox.addItem(widget, widget.icon(), '') app.translateUI(self) userguide.openWhatsThis(self) # restore remembered current page name = QSettings().value("quickinsert/current_tool", "", str) if name: for i in range(self.toolbox.count()): if name == self.toolbox.widget(i).__class__.__name__.lower(): self.toolbox.setCurrentIndex(i) break self.toolbox.currentChanged.connect(self.slotCurrentChanged) def slotCurrentChanged(self, index): name = self.toolbox.widget(index).__class__.__name__.lower() QSettings().setValue("quickinsert/current_tool", name) def translateUI(self): self.setWhatsThis( _("<p>With the Quick Insert Panel you can add various music " "elements to the current note or selected music.</p>\n" "<p>See {link} for more information.</p>").format( link=userguide.util.format_link("quickinsert"))) self.helpButton.setToolTip(_("Help")) self.directionLabel.setText(_("Direction:")) for item, text in enumerate((_("Up"), _("Neutral"), _("Down"))): self.direction.setItemText(item, text) for i in range(self.toolbox.count()): self.toolbox.setItemText(i, self.toolbox.widget(i).title()) self.toolbox.setItemToolTip(i, self.toolbox.widget(i).tooltip()) def actionForName(self, name): """This is called by the ShortcutCollection of our dockwidget, e.g. if the user presses a key.""" try: return self.actionDict[name] except KeyError: pass def dockwidget(self): return self._dockwidget()
class QuickInsert(QWidget): def __init__(self, dockwidget): super(QuickInsert, self).__init__(dockwidget) self._dockwidget = weakref.ref(dockwidget) # filled in by ButtonGroup subclasses self.actionDict = {} layout = QVBoxLayout() self.setLayout(layout) layout.setContentsMargins(0, 0, 0, 0) self.helpButton = QToolButton( icon = icons.get("help-contents"), autoRaise = True, clicked = lambda: userguide.show("quickinsert")) self.directionLabel = QLabel() self.direction = QComboBox() self.direction.addItems(['', '', '']) self.direction.setItemIcon(0, icons.get("go-up")) self.direction.setItemIcon(2, icons.get("go-down")) self.direction.setCurrentIndex(1) hor = QHBoxLayout() hor.setContentsMargins(0, 0, 0, 0) hor.addWidget(self.helpButton) hor.addWidget(self.directionLabel) hor.addWidget(self.direction) layout.addLayout(hor) self.toolbox = QToolBox(self) gadgets.toolboxwheeler.ToolBoxWheeler(self.toolbox) layout.addWidget(self.toolbox) for cls in ( articulations.Articulations, dynamics.Dynamics, spanners.Spanners, barlines.BarLines, ): widget = cls(self) self.toolbox.addItem(widget, widget.icon(), '') app.translateUI(self) userguide.openWhatsThis(self) # restore remembered current page name = QSettings().value("quickinsert/current_tool", "", str) if name: for i in range(self.toolbox.count()): if name == self.toolbox.widget(i).__class__.__name__.lower(): self.toolbox.setCurrentIndex(i) break self.toolbox.currentChanged.connect(self.slotCurrentChanged) def slotCurrentChanged(self, index): name = self.toolbox.widget(index).__class__.__name__.lower() QSettings().setValue("quickinsert/current_tool", name) def translateUI(self): self.setWhatsThis(_( "<p>With the Quick Insert Panel you can add various music " "elements to the current note or selected music.</p>\n" "<p>See {link} for more information.</p>").format(link= userguide.util.format_link("quickinsert"))) self.helpButton.setToolTip(_("Help")) self.directionLabel.setText(_("Direction:")) for item, text in enumerate((_("Up"), _("Neutral"), _("Down"))): self.direction.setItemText(item, text) for i in range(self.toolbox.count()): self.toolbox.setItemText(i, self.toolbox.widget(i).title()) self.toolbox.setItemToolTip(i, self.toolbox.widget(i).tooltip()) def actionForName(self, name): """This is called by the ShortcutCollection of our dockwidget, e.g. if the user presses a key.""" try: return self.actionDict[name] except KeyError: pass def dockwidget(self): return self._dockwidget()