Пример #1
0
    def on_edit_view(self, item: QListWidgetItem = None):
        if item is None or isinstance(item, bool):
            items = self.lstViews.selectedItems()
            try:
                item = items[0]
            except IndexError:
                return

        name = item.data(ProcessDataDialog.NameRole)
        try:
            widget_class = AVAILABLE_NETWORK_WIDGETS[name]
        except KeyError:
            return
        else:
            if widget_class is not None:
                id_ = item.data(ProcessDataDialog.IdRole)
                options = self._options.get(id_, {})
                dialog = widget_class.dialog_class(self, options=options)

                def set_options(result):
                    if result == QDialog.Accepted:
                        options = dialog.getValues()
                        self._options[id_] = options

                dialog.finished.connect(set_options)
                dialog.open()
Пример #2
0
    def set_selection(self, item: QtWidgets.QListWidgetItem, *args):
        """Called when a recent item is selected"""
        self.project_path = get_project_file(item.data(QtCore.Qt.UserRole))
        if not self.project_path:
            # TODO: Fix this, when user selects item multiple time the statement is re-appended
            item.setText("{} - Project Moved or Deleted".format(item.data(QtCore.Qt.UserRole)))

        self.log.debug("Project path set to {}".format(self.project_path))
Пример #3
0
    def export_color_item(self, item: QListWidgetItem) -> List[str]:
        color = item.data(Qt.BackgroundRole).color()
        polygon_id = item.data(BaseColorMappingDialog.PolygonRole)
        polygon_id = polygon_id if polygon_id is not None else NodePolygon.Circle
        brushstyle = item.data(BaseColorMappingDialog.BrushStyleRole)
        brushstyle = brushstyle if brushstyle is not None else Qt.NoBrush

        if color is not None and color.isValid():
            return color.name(), polygon_id.name, brushstyle
Пример #4
0
    def onAddClicked(self, flag):
        if not self.__ui.leAssloudDir.text().endswith('bundle'):
            return
        new_item = QListWidgetItem()

        if flag == '_assloud':
            new_name = '新包名'
            new_item.setData(Qt.UserRole, new_name)
            new_item.setText(new_item.data(Qt.UserRole))
            self.__model.addNewItem(flag, new_item, Qt.UserRole)
        elif flag == '_asset':
            new_name = '新资源名'
            new_item.setData(Qt.UserRole, new_name)
            new_item.setText(new_item.data(Qt.UserRole))
            self.__model.addNewItem(flag, new_item, Qt.UserRole)
Пример #5
0
 def on_list_item_double_clicked(self, item: QListWidgetItem):
     try:
         path = item.data(Qt.UserRole)['path']
         os.startfile(path)
     except OSError as e:
         QMessageBox.critical(self, "Error", e.strerror, QMessageBox.Ok,
                              QMessageBox.Ok)
 def deviceChanged(self, item: QtWidgets.QListWidgetItem):
     if item is None:
         return
     self.currentBaudRateBps = None
     self.currentPhase = None
     self.btParamLabel.setText(self.BT_PARAM_LABEL)
     self.arbitrationBaudRateList.clear()
     self.dataBaudRateList.clear()
     self.bitTimingTable.clearContents()
     self.bitTimingTable.setRowCount(0)
     self.canvas.scene.clear()
     device: CanDevice = item.data(QtCore.Qt.UserRole)
     self.f_in_MHz_value.setValue(int(device.F_in / 1e6))
     self.f_in_MHz_value.setStyleSheet('background-color: white;')
     for timingInfo in device.TimingInfos.values():
         if timingInfo.Phase is CanPhase.Arbitration:
             brList = [
                 br * 1000 for br in CanBaudRatesKbps
                 if br <= device.MaxBaudRate
             ]
             listWidget = self.arbitrationBaudRateList
         elif timingInfo.Phase is CanPhase.Data:
             brList = [
                 br * 1000 for br in CanFDBaudRatesKbps
                 if br <= device.MaxFDBaudRate
             ]
             listWidget = self.dataBaudRateList
         else:
             raise TypeError
         for baudRateBps in brList:
             item = QtWidgets.QListWidgetItem(f'{baudRateBps/1000:.1f}')
             item.setData(QtCore.Qt.UserRole,
                          (timingInfo.Phase, baudRateBps))
             listWidget.addItem(item)
Пример #7
0
 def course_clicked(self, item: QListWidgetItem):
     """Called when a course is selected, switches the view
     to display assignments for that course
     """
     course = self.planner.get_course(item.data(1))
     self.planner.set_current_course(course)
     self.course_page.refresh()
Пример #8
0
 def _on_current_item_changed(self, item: QListWidgetItem,
                              last_item: QListWidgetItem) -> None:
     account_id = item.data(Qt.UserRole)
     # This should update the internal tracking, and also the active wallet account.
     if self._update_active_account(account_id):
         account = self._main_window._wallet.get_account(account_id)
         self._update_window_account(account)
Пример #9
0
 def handleAssetUpdate(self, _status, _data):
     self.__ui.lwAssetList.clear()
     for asset_name in _status.asset:
         item_asset = QListWidgetItem()  # 资源列表
         item_asset.setData(Qt.UserRole, asset_name)  # 设置item的uid
         item_asset.setText(item_asset.data(Qt.UserRole))
         self.__ui.lwAssetList.addItem(item_asset)
Пример #10
0
 def onAddClicked(self):
     if self.__ui.cbAssetBundleList.count() == 0:
         return
     new_item = QListWidgetItem()
     new_name = '新资源名'
     new_item.setData(Qt.UserRole, new_name)
     new_item.setText(new_item.data(Qt.UserRole))
     self.__model.addNewItem(new_item, Qt.UserRole)
Пример #11
0
 def onCurrentTweakItemChanged(
     self, current: QtWidgets.QListWidgetItem, previous: QtWidgets.QListWidgetItem
 ):
     # Clear text area and create the tweaks:
     self.ui.tweaksTextEdit.clear()
     self.ui.tweaksTextEdit.appendPlainText(
         make_ini_tweaks(current.data(Qt.UserRole))
     )
Пример #12
0
 def _onItemClicked(self, item: QListWidgetItem) -> None:
     self._labelNetworkType.setText(item.text())
     op = item.data(Qt.UserRole)
     self._labelOperation.setText(f"{len(op.name)}")
     self._labelInputs.setText(", ".join(
         [f"{t.name} [{t.shape}]" for t in op.inputs]))
     self._labelOutputs.setText(", ".join(
         [f"{t.name} [{t.shape}]" for t in op.outputs]))
Пример #13
0
def load_data_in_list(list_wid, data_wid, data, *args):
    item = QListWidgetItem()
    item.data = data
    widget = data_wid(data, *args, list_wid)
    item.wid = widget

    item.setSizeHint(widget.sizeHint())
    list_wid.addItem(item)
    list_wid.setItemWidget(item, widget)
Пример #14
0
    def _formatQItem(self, qitem: QListWidgetItem) -> None:
        """Format the given :py:class:`QListWidgetItem` to reflect
        the state of the underlying item.

        This method may be extended by subclasses.
        """
        qitem.setText(self._textForItem(qitem.data(Qt.UserRole)))
        if self._formater is not None:
            self._formater(qitem)
Пример #15
0
 def template_changed(self, a_current: QtWidgets.QListWidgetItem):
     try:
         if a_current is not None:
             new_template_id = a_current.data(QtCore.Qt.UserRole)
             self.current_template = self.templates_db.get(new_template_id)
             assert self.current_template is not None, "database operation 'get' has failed!"
             self.fill_template_info_to_ui(self.current_template)
     except AssertionError as err:
         print(err)
 def baudRateChanged(self, item: QtWidgets.QListWidgetItem):
     if item is None:
         return
     phase: CanPhase = None
     baudRateBps: int = None
     phase, baudRateBps = item.data(QtCore.Qt.UserRole)
     self.currentPhase = phase
     self.currentBaudRateBps = baudRateBps
     self.calculate()
Пример #17
0
 def _onCurrentItemChanged(self, current: QListWidgetItem,
                           _previous: QListWidgetItem) -> None:
     """React to the selection of an item in this list.
     """
     entry = None if current is None else current.data(Qt.UserRole)
     if isinstance(entry, InstanceRegisterEntry):
         self.instanceSelected.emit(entry)
     elif isinstance(entry, ClassRegisterEntry):
         self.classSelected.emit(entry)  # FIXME[bug]: TypeError
Пример #18
0
 def handleBundleUpdate(self, _status, _data):
     self.__ui.lwBundleList.clear()
     self.__ui.leAssloudDir.setText(_status.rootdir)
     for bundle_name in _status.bundle:
         # 包列表
         item_bundle = QListWidgetItem()
         item_bundle.setData(Qt.UserRole,
                             bundle_name)  # 使用setData给items添加对应的uuid,之后控制方便
         item_bundle.setText(item_bundle.data(Qt.UserRole))
         self.__ui.lwBundleList.addItem(item_bundle)
 def onCurrentItemChanged(self, current: QtWidgets.QListWidgetItem,
                          previous: QtWidgets.QListWidgetItem):
     option: SelectOption = current.data(Qt.UserRole)
     self.ui.descriptionTextEdit.setText(option.description)
     image = option.image
     if image and Path(image) in self._images:
         target = self._images[Path(image)]
         self.ui.imageLabel.setPixmap(QPixmap(target.as_posix()))
     else:
         self.ui.imageLabel.setPixmap(QPixmap())
Пример #20
0
    def on_list_item_clicked(self, item: QListWidgetItem):
        mail = item.data(Qt.UserRole)
        subject = mail['subject']
        sender = mail['sender']
        receiver = mail['receiver']
        date = mail['date']
        content = mail['content']

        preview_text = f"<h1>{subject}</h1><p>date: {date}</p><p>sender: {sender}</p>" \
                       f"<p>receiver: {receiver}</p>{content if content else '(empty content)'}"
        self.textBrowser.setText(preview_text)
Пример #21
0
 def refresh_widget(self):
     self.email_list.clear()
     self.set_email_config_form()
     for record in get_user_email_conf(self.user_info['username']).get(
             'records', []):
         item = QListWidgetItem(record['addr'])
         if record['is_default'] == 1:
             brush = QtGui.QBrush(QtGui.QColor(1, 203, 31))
             brush.setStyle(QtCore.Qt.NoBrush)
             item.setForeground(brush)
         item.data = record
         self.email_list.addItem(item)
 def display_info(self, item: QListWidgetItem):
     if len(self.song_list.selectedItems()) > 1:
         self.set_enable_all_field(False)
         self.clear_fields()
     else:
         file: osu_file = self.current_song_list[item.data(0x0100)]
         self.artistLineEdit.setText(file.artist)
         self.artistRomanisedLineEdit.setText(file.artist_unicode)
         self.songNameLineEdit.setText(file.title)
         self.songNameRomanisedLineEdit.setText(file.roman_title)
         self.difficultynameLineEdit.setText(file.version)
         self.mapperLineEdit.setText(file.creator)
         self.set_enable_all_field(True)
 def baudRateListClicked(self, item: QtWidgets.QListWidgetItem):
     if item is None:
         return
     phase: CanPhase = None
     baudRateBps: int = None
     phase, baudRateBps = item.data(QtCore.Qt.UserRole)
     doCalc = False
     if phase != self.currentPhase:
         doCalc = True
     self.currentPhase = phase
     self.currentBaudRateBps = baudRateBps
     self.btParamLabel.setText(
         f'{self.BT_PARAM_LABEL} for {self.currentPhase.name} phase')
     if doCalc:
         self.calculate()
Пример #24
0
    def on_nav_clicked(self, list_item: QListWidgetItem):
        data = list_item.data(Qt.UserRole)
        if data is None:
            return

        if data.id == 0:
            self.show_local_music_page()
        else:
            cur_id = data.id
            self.update_music_list(cur_id)
            self.stacked_view.setCurrentWidget(self.music_list_detail)
            self.set_musics_layout()
            # 加载歌单中的歌曲列表
            self.show_musics_data()
            self.musics_table.setCurrentCell(0, 0)
Пример #25
0
    def initUI(self):
        self.gridlayout = QGridLayout()
        self.gridlayout.setSpacing(10)
        self.fundlist = QListWidget(self)
        self.fundlist.setMinimumWidth(220)
        self.fundlist.setMaximumWidth(220)
        item1 = QListWidgetItem("item1")
        item1.data = 1
        self.fundlist.addItem(item1)
        item2 = QListWidgetItem("item2")
        item2.data = 2
        self.fundlist.addItem(item2)
        self.fundlist.itemClicked.connect(self.selectItem)
        self.gridlayout.addWidget(self.fundlist, 1, 0)
        self.figure = plt.figure()
        '''
		self.p1=self.figure.add_subplot(1,1,1)
		self.p1.plot(np.linspace(0,12,300),np.sin(np.linspace(0,12,300)))
		self.p1.grid()
		'''
        self.canvas = FigureCanvas(self.figure)
        self.gridlayout.addWidget(self.canvas, 1, 1)
        self.canvas.draw()
        self.setLayout(self.gridlayout)
Пример #26
0
    def onNavigationClicked(self, item: QListWidgetItem):
        """ 当点击左侧 navigation 时, 显示对应页面 """
        data = item.data(Qt.UserRole)
        if data is None:
            return

        if data.id == 0:
            self.show_local_music_page()
        else:
            cur_id = data.id
            self.updateMusicList(cur_id)
            self.stackedWidget_2.setCurrentWidget(self.music_list_detail)
            self.set_musics_layout()
            # 加载歌单中的歌曲列表
            self.show_musics_data()
            self.musics.setCurrentCell(0, 0)
 def _add_chart_info(self, filename, key, f=None, archive_source=None):
     assert key != -1
     self.debugPrint("Adding: " + filename)
     if key in self.current_song_list:
         self.debugPrint("Chart already added.")
         return
     file = osu_file(filename, f, archive_source)
     if not file.init_error:
         self.current_song_list[key] = file
     else:
         self.debugPrint("Error adding chart " + filename + ": " + file.init_error)
         del self.current_song_path[key]
         return
     song_item = QListWidgetItem(os.path.basename(filename))
     song_item.setData(0x0100, key)
     self.debugPrint(song_item.data(0x0100))
     self.song_list.addItem(song_item)
Пример #28
0
    def event_list_item_changed(self, item: QtWidgets.QListWidgetItem):
        if item is None:
            return

        item_data = item.data(QtCore.Qt.UserRole)

        if item_data is None:
            return

        if item_data[0] != "event":
            return

        _, date, event = item_data

        block_signals = self.calendar_widget.blockSignals(True)
        self.calendar_widget.setSelectedDate(QtCore.QDate(date))
        self.calendar_widget.blockSignals(block_signals)
Пример #29
0
	def initUI(self):
		self.gridlayout=QGridLayout()
		self.gridlayout.setSpacing(10)
		self.fundlist=QListWidget(self)
		self.fundlist.setMinimumWidth(240)
		self.fundlist.setMaximumWidth(240)
		items=self.fund.getitems()
		__it=iter(items)
		for item in __it :
			__item=QListWidgetItem("{} {}".format(item,items[item]))
			__item.data=item
			self.fundlist.addItem(__item)
		self.fundlist.itemClicked.connect(self.selectItem)
		self.gridlayout.addWidget(self.fundlist,1,0)
		self.figure=plt.figure()
		self.canvas=FigureCanvas(self.figure)
		self.gridlayout.addWidget(self.canvas,1,1)
		self.canvas.draw()
		self.setLayout(self.gridlayout)
Пример #30
0
    def _formatListWidgetItem(self, item: QListWidgetItem) -> None:
        """Format a :py:class:`QListWidgetItem`.

        Arguments
        ---------
        item: QListWidgetItem
            The :py:class:`QListWidgetItem` to format. It is guaranteed
            that the associated data if of type
            :py:class:`ClassRegisterEntry`.
        """
        entry = item.data(Qt.UserRole)
        if entry.initialized:
            color = self.colorInitialized
        elif entry.initializable:
            color = self.colorInitializable
        else:
            color = self.colorUninitializable
        if self._mode == 'class':
            item.setBackground(color)
        elif self._mode == 'instance':
            item.setBackground(color)
Пример #31
0
 def on_section_current_item_changed(self, cur: QListWidgetItem, prev: QListWidgetItem):
     data = int(cur.data(Qt.UserRole))
     self._stack.setCurrentIndex(data)