Beispiel #1
0
    def __init__(self):
        QTreeWidget.__init__(self)

        self.oldWidth = 0
        self.oldHeight = 0

        self.queueInitialPresentation = False
Beispiel #2
0
 def create_ui(self):
     fields_label = QLabel(_("Class fields"), self)
     self.layout.addWidget(fields_label, 0, 0)
     self._fields_tree = QTreeWidget(self)
     fields_label.setBuddy(self._fields_tree)
     self._fields_tree.currentItemChanged.connect(
         self.on_fields_tree_sel_changed)
     self.layout.addWidget(self._fields_tree, 1, 0)
     operator_label = QLabel(_("Operator"), self)
     self.layout.addWidget(operator_label, 0, 1)
     self._operator = QListWidget(self)
     operator_label.setBuddy(self._operator)
     self.layout.addWidget(self._operator, 1, 1)
     self._operator.currentRowChanged.connect(self.on_operator_choice)
     self._operator.setCurrentRow(0)
     add_button = QPushButton(_("&Add condition"), self)
     add_button.clicked.connect(self.on_add_clicked)
     self.layout.addWidget(add_button, 2, 0, 1, 3)
     criteria_label = QLabel(_("Current search criteria"), self)
     self.layout.addWidget(criteria_label, 3, 0, 1, 3)
     self._criteria_list = QListWidget(self)
     criteria_label.setBuddy(self._criteria_list)
     self.layout.addWidget(self._criteria_list, 4, 0, 1, 3)
     remove_button = QPushButton(_("&Remove condition"), self)
     remove_button.clicked.connect(self.on_remove_clicked)
     self.layout.addWidget(remove_button, 5, 0, 1, 3)
     distance_label = QLabel(_("Search objects to distance"), self)
     self.layout.addWidget(distance_label, 6, 0)
     self._distance_field = QSpinBox(self)
     self._distance_field.setMaximum(100000)
     self._distance_field.setSuffix(" " + _("meters"))
     self._distance_field.setSpecialValueText(_("No limit"))
     distance_label.setBuddy(self._distance_field)
     self.layout.addWidget(self._distance_field, 6, 1)
Beispiel #3
0
    def __init__(self, path, settings, session):
        QWidget.__init__(self)
        ABookCore.__init__(self, path, settings, session)

        self.signal = CourseTreeWidgetSignals()
        self.selectedList = []

        self.treeWidget = QTreeWidget()
        self.treeWidget.setHeaderLabels(['Name', "Course ID", "Chapter ID"])
        self.treeWidget.itemChanged.connect(self.checkbox_toggled)
        self.treeWidget.clicked.connect(self.loadResourceList)

        self.addDownloadTaskButton = QPushButton("Add to Downloader")
        self.addDownloadTaskButton.clicked.connect(self.addDownloadTask)

        self.importCourseButton = QPushButton("Import Courses")
        self.importCourseButton.clicked.connect(self.startImportCourseWidget)

        main_layout = QGridLayout()
        main_layout.addWidget(self.treeWidget, 0, 0, 1, 2)
        main_layout.addWidget(self.importCourseButton, 1, 0)
        main_layout.addWidget(self.addDownloadTaskButton, 1, 1)
        main_layout.setMargin(0)
        self.setLayout(main_layout)

        if settings['first_launch'] is True:
            settings['first_launch'] = False
            self.importCourseButton.click()
        else:
            self.createTreeRoot()
Beispiel #4
0
 def __init__(self,
              parent,
              title,
              person,
              unsorted_objects,
              autoshow=True,
              progress_indicator=None):
     super().__init__(None)
     act = QAction("close", self)
     act.triggered.connect(self._do_close)
     act.setShortcut(QKeySequence("escape"))
     self.addAction(act)
     layout = QGridLayout()
     bar = QMenuBar(self)
     self._object_actions = bar.addMenu(_("Object actions"))
     property_actions = bar.addMenu(_("Property actions"))
     self._create_item(property_actions, _("Copy property value"), "ctrl+c",
                       self.on_copypropvalue_selected)
     self._create_item(property_actions, _("Copy property name"), "alt+c",
                       self.on_copypropname_selected)
     self._create_item(property_actions, _("Copy property name and value"),
                       "ctrl+alt+c", self.on_copypropline_selected)
     objects_label = QLabel(_("Objects"), self)
     layout.addWidget(objects_label, 0, 0)
     self._objects_list = QListWidget(self)
     self._objects_list.setAccessibleName(objects_label.text())
     self._objects_list.setContextMenuPolicy(Qt.CustomContextMenu)
     self._objects_list.currentRowChanged.connect(self.on_objects_listbox)
     self._objects_list.customContextMenuRequested.connect(
         self._on_objects_list_menu)
     objects_label.setBuddy(self._objects_list)
     layout.addWidget(self._objects_list, 1, 0)
     props_label = QLabel(_("Object properties"), self)
     layout.addWidget(props_label, 0, 1)
     self._props = QTreeWidget(self)
     self._props.setAccessibleName(props_label.text())
     props_label.setBuddy(self._props)
     layout.addWidget(self._props, 1, 1)
     goto_button = QPushButton(_("Go to"), self)
     goto_button.setDefault(True)
     goto_button.clicked.connect(self.on_goto_clicked)
     self._objects_list.itemActivated.connect(goto_button.click)
     layout.addWidget(goto_button, 2, 0)
     close_button = QPushButton(_("Close"), self)
     close_button.clicked.connect(self.close)
     layout.addWidget(close_button, 2, 1)
     self.setLayout(layout)
     self.setWindowTitle(title + _(" ({num_objects} objects shown)").format(
         num_objects=len(unsorted_objects)))
     self._person = person
     self._autoshow = autoshow
     self._progress_indicator = progress_indicator
     self._all_actions = []
     for member in object_actions.__dict__.values():
         if inspect.isclass(member) and issubclass(member, ObjectAction):
             self._all_actions.append(member)
     self._objects_list.setCurrentRow(0)
     self._sorter = ObjectsSorter(unsorted_objects, person)
     self._sorter.objects_sorted.connect(self._objects_sorted)
     self._sorter.start()
Beispiel #5
0
    def __init__(self):
        super(SelectTiVoWidget, self).__init__()

        self.tivos_found = []

        self.label = QLabel(self)

        self.label.setText('Below is a listing of all TiVos discovered on your'
                           ' network, which will refresh every 5 seconds. If y'
                           'ou do not see your TiVo, '
                           '<a href="#specify_ip">click here to specify an IP'
                           ' address.</a>')

        self.label.linkActivated.connect(self.specify_ip_address)

        self.tivo_listings = QTreeWidget(self)
        self.tivo_listings.itemDoubleClicked.connect(self.tivo_selected)
        self.tivo_listings.setHeaderLabels(["Name", "IP Address"])

        self.layout = QVBoxLayout(self)
        self.layout.addWidget(self.label)
        self.layout.addWidget(self.tivo_listings)

        self.setWindowTitle("Select TiVo")
        self.resize(512, 384)

        self.setModal(True)
Beispiel #6
0
    def _createFilterTree(self, spatial_filters):
        av = self.model.activeView
        tally = self.model.statepoint.tallies[av.selectedTally]
        filters = tally.filters

        # create a tree for the filters
        self.treeLayout = QVBoxLayout()
        self.filterTree = QTreeWidget()
        self.treeLayout.addWidget(self.filterTree)
        self.treeExpander = Expander("Filters:", layout=self.treeLayout)
        self.treeExpander.expand()  # start with filters expanded

        header = QTreeWidgetItem(["Filters"])
        self.filterTree.setHeaderItem(header)
        self.filterTree.setItemHidden(header, True)
        self.filterTree.setColumnCount(1)

        self.filter_map = {}
        self.bin_map = {}

        for tally_filter in filters:
            filter_label = str(type(tally_filter)).split(".")[-1][:-2]
            filter_item = QTreeWidgetItem(self.filterTree, (filter_label,))
            self.filter_map[tally_filter] = filter_item

            # make checkable
            if not spatial_filters:
                filter_item.setFlags(QtCore.Qt.ItemIsUserCheckable)
                filter_item.setToolTip(0, "Only tallies with spatial filters are viewable.")
            else:
                filter_item.setFlags(filter_item.flags() | QtCore.Qt.ItemIsTristate | QtCore.Qt.ItemIsUserCheckable)
            filter_item.setCheckState(0, QtCore.Qt.Unchecked)

            if isinstance(tally_filter, MeshFilter):
                filter_item.setCheckState(0, QtCore.Qt.Checked)
                filter_item.setFlags(QtCore.Qt.ItemIsUserCheckable)
                filter_item.setToolTip(0, "All Mesh bins are selected automatically")
                continue

            def _bin_sort_val(bin):
                if isinstance(bin, Iterable) and all([isinstance(val, float) for val in bin]):
                    return np.sum(bin)
                else:
                    return bin

            for bin in sorted(tally_filter.bins, key=_bin_sort_val):
                item = QTreeWidgetItem(filter_item, [str(bin),])
                if not spatial_filters:
                    item.setFlags(QtCore.Qt.ItemIsUserCheckable)
                    item.setToolTip(0, "Only tallies with spatial filters are viewable.")
                else:
                    item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
                item.setCheckState(0, QtCore.Qt.Unchecked)

                bin = bin if not isinstance(bin, Iterable) else tuple(bin)
                self.bin_map[tally_filter, bin] = item

            # start with all filters selected if spatial filters are present
            if spatial_filters:
                filter_item.setCheckState(0, QtCore.Qt.Checked)
Beispiel #7
0
    def _init_widgets(self):
        self._tree = QTreeWidget()
        self._tree.setHeaderHidden(True)
        self._tree.itemDoubleClicked.connect(self.on_item_doubleclicked)

        layout = QVBoxLayout()
        layout.addWidget(self._tree)

        self.setLayout(layout)
Beispiel #8
0
    def initUI(self):
        self.listWidget = QListWidget()
        self.initDevices()

        self.treeWidget = QTreeWidget()
        self.treeWidget.itemPressed.connect(self.onItemPressed)
        self.treeWidget.setColumnCount(4)
        self.treeWidget.setColumnWidth(0, 250)
        self.treeWidget.setColumnWidth(1, 300)
        self.treeWidget.setColumnWidth(2, 300)
        self.treeWidget.setColumnWidth(3, 150)
        self.treeWidget.setHeaderLabels(["Service", "Service UUID", "Characteristic UUID", "Characteristic Property"])

        btn = QPushButton("Read Services")
        btn.clicked.connect(self.onPushButton)

        groupDevices = QGroupBox("Devices")
        groupDevices.setMaximumWidth(300)

        vbox = QVBoxLayout()
        vbox.addWidget(self.listWidget)
        vbox.addWidget(btn)
        groupDevices.setLayout(vbox)

        self.btnR = QPushButton("Read")
        self.btnR.clicked.connect(self.onReadButton)
        self.btnW = QPushButton("Write")
        self.btnW.clicked.connect(self.onWriteButton)
        self.lneI = QLineEdit()
        self.chkN = QCheckBox("Notify")
        self.chkN.toggled.connect(self.onNotifyCheck)
        hbox = QHBoxLayout()
        hbox.addWidget(self.btnR)
        hbox.addWidget(self.btnW)
        hbox.addWidget(self.lneI)
        hbox.addWidget(self.chkN)

        groupProperty = QGroupBox("Property")
        #groupProperty.setLayout(vbox)
        groupProperty.setLayout(hbox)

        groupServices = QGroupBox("Services")

        vbox = QVBoxLayout()
        vbox.addWidget(self.treeWidget)
        vbox.addWidget(groupProperty)
        groupServices.setLayout(vbox)

        hbox = QHBoxLayout()
        hbox.addWidget(groupDevices)
        hbox.addWidget(groupServices)
        self.setLayout(hbox)
        
        self.setGeometry(300, 300, 800, 600)
        self.setWindowTitle('BLE Discover')
        self.show()
Beispiel #9
0
 def read_list(tree: QTreeWidget, remove: bool):
     iterator = QTreeWidgetItemIterator(tree)
     items = []
     while iterator.value():
         item = iterator.value()
         items.append([item.text(0), item.text(1), item.data(2, 2)])
         if remove:
             tree.takeTopLevelItem(tree.indexOfTopLevelItem(item))
         iterator += 1
     return items
Beispiel #10
0
class CollapsibleDialog(QDialog):
    """a dialog to which collapsible sections can be added;
    subclass and reimplement define_sections() to define sections and
        add them as (title, widget) tuples to self.sections
    """
    def __init__(self):
        super().__init__()
        self.tree = QTreeWidget()
        self.tree.setHeaderHidden(True)
        layout = QVBoxLayout()
        layout.addWidget(self.tree)
        self.setLayout(layout)
        self.tree.setIndentation(0)

        self.sections = []
        self.define_sections()
        self.add_sections()

    def add_sections(self):
        """adds a collapsible sections for every
        (title, widget) tuple in self.sections
        """
        for (title, widget) in self.sections:
            button1 = self.add_button(title)
            section1 = self.add_widget(button1, widget)
            button1.addChild(section1)

    def define_sections(self):
        """reimplement this to define all your sections
        and add them as (title, widget) tuples to self.sections
        """
        widget = QFrame(self.tree)
        layout = QHBoxLayout(widget)
        layout.addWidget(QLabel("Bla"))
        layout.addWidget(QLabel("Blubb"))
        title = "Section 1"
        self.sections.append((title, widget))

    def add_button(self, title):
        """creates a QTreeWidgetItem containing a button
        to expand or collapse its section
        """
        item = QTreeWidgetItem()
        self.tree.addTopLevelItem(item)
        self.tree.setItemWidget(item, 0, SectionExpandButton(item, text=title))
        return item

    def add_widget(self, button, widget):
        """creates a QWidgetItem containing the widget,
        as child of the button-QWidgetItem
        """
        section = QTreeWidgetItem(button)
        section.setDisabled(True)
        self.tree.setItemWidget(section, 0, widget)
        return section
 def _get_checked_items(qlist: QTreeWidget):
     items = []
     for i in range(qlist.topLevelItemCount()):
         item = qlist.topLevelItem(i)
         if item.checkState(0) == Qt.Checked:
             items.append(item)
             for j in range(item.childCount()):
                 sub_item = item.child(j)
                 if sub_item.checkState(0) == Qt.Checked:
                     items.append(sub_item)
     return items
    def add_address_to_list(qtreelist: QTreeWidget, addr):
        for i in range(qtreelist.topLevelItemCount()):
            item = qtreelist.topLevelItem(i)  # type: QTreeWidgetItem
            if int(item.text(0), 16) == addr:
                return None # deduplicate

        item = QTreeWidgetItem(qtreelist)
        item.setText(0, "%#x" % addr)
        item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
        item.setData(0, Qt.CheckStateRole, Qt.Checked)
        return item
Beispiel #13
0
    def __init__(self):
        super().__init__()
        self.tree = QTreeWidget()
        self.tree.setHeaderHidden(True)
        layout = QVBoxLayout()
        layout.addWidget(self.tree)
        self.setLayout(layout)
        self.tree.setIndentation(0)

        self.sections = []
        self.define_sections()
        self.add_sections()
Beispiel #14
0
    def testWidgetIterator(self):
        treeWidget = QTreeWidget()
        treeWidget.setColumnCount(1)
        items = []
        for i in range(10):
            items.append(QTreeWidgetItem(None, ['item: %d' % i]))
        treeWidget.insertTopLevelItems(0, items)

        index = 0
        for it in QTreeWidgetItemIterator(treeWidget):
            self.assertEqual(it.value().text(0), 'item: %d' % index)
            index += 1
Beispiel #15
0
class SelectTiVoWidget(QDialog):
    """Displays the list of TiVos that were discovered on the network."""

    # Signals
    connect_to_tivo = Signal(str, str)

    def __init__(self):
        super(SelectTiVoWidget, self).__init__()

        self.tivos_found = []

        self.label = QLabel(self)

        self.label.setText('Below is a listing of all TiVos discovered on your'
                           ' network, which will refresh every 5 seconds. If y'
                           'ou do not see your TiVo, '
                           '<a href="#specify_ip">click here to specify an IP'
                           ' address.</a>')

        self.label.linkActivated.connect(self.specify_ip_address)

        self.tivo_listings = QTreeWidget(self)
        self.tivo_listings.itemDoubleClicked.connect(self.tivo_selected)
        self.tivo_listings.setHeaderLabels(["Name", "IP Address"])

        self.layout = QVBoxLayout(self)
        self.layout.addWidget(self.label)
        self.layout.addWidget(self.tivo_listings)

        self.setWindowTitle("Select TiVo")
        self.resize(512, 384)

        self.setModal(True)

    def add_tivo(self, name, ip_address):
        item = QTreeWidgetItem()
        item.setText(0, name)
        item.setText(1, ip_address)

        self.tivo_listings.addTopLevelItem(item)
        self.tivos_found.append(item)

    def tivo_selected(self, item, column):
        self.connect_to_tivo.emit(item.text(0), item.text(1))

    def specify_ip_address(self, link):
        text, ok = QInputDialog().getText(self, "Specify TiVO IP address",
                                          "IP address:", QLineEdit.Normal)

        if ok:
            self.connect_to_tivo.emit("unknown", text)
Beispiel #16
0
 def __init__(self):
     super().__init__()
     self.tree = QTreeWidget()
     self.tree.setHeaderHidden(True)
     self.tree.setPalette(get_verifone_color())
     self.setStyleSheet("background-color: rgba(3, 169, 229, 0)")
     layout = QVBoxLayout()
     self.buttonGroup = QButtonGroup()
     layout.addWidget(self.tree)        
     self.setLayout(layout)
     self.tree.setIndentation(0)
     self.setPalette(get_verifone_color())
     self.sections = []
     self.setFixedWidth(500)
Beispiel #17
0
    def testCase(self):
        treeWidget = QTreeWidget()
        treeWidget.setColumnCount(1)
        items = []
        for i in range(10):
            items.append(QTreeWidgetItem(None, ["item: %i" % i]))

        treeWidget.insertTopLevelItems(0, items);
        _iter = QTreeWidgetItemIterator(treeWidget)
        index = 0
        while(_iter.value()):
            item = _iter.value()
            self.assert_(item is items[index])
            index += 1
            _iter += 1
Beispiel #18
0
    def __init__(self, chartData, wsSelector, parent=None):
        QTreeWidget.__init__(self, parent)
        
        self.setHeaderHidden(True)
        self.setAcceptDrops(True)
        self.setDropIndicatorShown(True)
        self.setDragDropOverwriteMode(True)
        self.setDragDropMode(QAbstractItemView.DropOnly)

        
        self.chartData = chartData
        self.wsSelector = wsSelector
        self.createPopupMenu()

        self.itemChanged.connect(self.itemHasChanged)
        self.isDroppedItem = False
Beispiel #19
0
    def setup_ui(self):
        layout = QGridLayout()

        table = QTreeWidget()
        table.setHeaderLabels(['name', 'width', 'height', 'ratio'])
        table.setSortingEnabled(True)
        items = []
        for size in self.manager.project.sizes:
            i = ComparingTreeWidgetItem(None, [
                f'{size.width}x{size.height}',
                str(size.width),
                str(size.height),
                str(size.ratio())
            ])
            i.__data__ = size
            items.append(i)
        table.addTopLevelItems(items)

        @table.currentItemChanged.connect
        def _(item, prev):
            del_btn.setEnabled(item is not None)

        layout.addWidget(table, 0, 0, 1, 2)

        add_btn = QPushButton('add new')

        @add_btn.clicked.connect
        def _(*args):
            diag = SizeInput(self.manager.project.sizes, self)
            if diag.exec_() != QDialog.Accepted:
                return
            size = diag.value
            self.manager.add_size(size)
            item = ComparingTreeWidgetItem(None, [
                f'{size.width}x{size.height}',
                str(size.width),
                str(size.height),
                str(size.ratio())
            ])
            table.addTopLevelItem(item)

        layout.addWidget(add_btn, 1, 0)

        del_btn = QPushButton('delete')
        del_btn.setEnabled(False)

        @del_btn.clicked.connect
        def _(*args):
            item = table.currentItem()
            size = item.__data__
            self.manager.del_size(size)
            shiboken2.delete(item)

        layout.addWidget(del_btn, 1, 1)

        self.setLayout(layout)
Beispiel #20
0
    def initializePage(self):
        if self.layout() != None:
            # print("clean up previous entries")
            while self.layout().count() > 0:
                self.layout().removeItem(self.layout().itemAt(0))

        self.tree = QTreeWidget()
        if self.wizard().defaultShare != None:
            self.tree.addTopLevelItem(
                MyTreeWidgetItem(self.tree,
                                 self.wizard().defaultShare))

        else:
            shares = self.wizard().getShares()
            if shares == None:
                print("No shares found...")
                return
            print(",".join([x.name for x in shares]))

            for m in shares:
                if m.name not in [
                        "ADMIN$", "C$", "IPC$", "NETLOGON", "SYSVOL"
                ]:
                    self.tree.addTopLevelItem(MyTreeWidgetItem(self.tree, m))

        shareListBox = QWidget()
        shareListBoxLayout = QVBoxLayout()
        self.tree.setHeaderLabel("Freigaben")
        self.tree.itemClicked.connect(self.treeViewItemClicked)
        shareListBoxLayout.addWidget(self.tree)
        shareListBox.setLayout(shareListBoxLayout)

        self.folderList = QListWidget()
        folderListBox = QWidget()
        folderListBoxLayout = QVBoxLayout()

        folderListHeaderMessage = "Verzeichnisinhalt"
        folderListBoxLayout.addWidget(QLabel(folderListHeaderMessage))

        folderListBoxLayout.addWidget(self.folderList)
        folderListBox.setLayout(folderListBoxLayout)

        layout = QHBoxLayout()
        layout.addWidget(shareListBox)
        layout.addWidget(folderListBox)
        self.setLayout(layout)
Beispiel #21
0
    def _crateSelectors(self):
        self.mLayout = QVBoxLayout(self)
        
        wsLayout = QVBoxLayout()
        alg = self.algManager
        self.wsSelector = WorkspaceChooser(alg)
        self.wsSelector.setMaximumHeight(70)
        groups = self.chartData.getDataGroups()
        self.wsSelector.addItems(groups)
        self.wsSelector.currentTextChanged.connect(self._updateAll)
        self.chartData.dataGroupAdded.connect(self.addNewGroup)
        self.mLayout.addWidget(QLabel('Workspaces'))
        self.mLayout.addWidget(self.wsSelector)
        self.chartData.allRemoved.connect(self._resetWorkspaces)
        
        self.chSelector = QTreeWidget()
        self.chSelector.setHeaderHidden(True)
        self.chSelector.itemClicked.connect(self.changeCurrentSelect)
        self.chSelector.itemChanged.connect(self.itemChanged)
        self.mLayout.addWidget(QLabel('Channels'))
        self.mLayout.addWidget(self.chSelector)
        
        self.sSelector = SignalChooser()
        self.sSelector.setHeaderHidden(True)
        self.sSelector.setDragEnabled(True)
        self.sSelector.setDropIndicatorShown(True)
        self.sSelector.setContextMenuPolicy(Qt.CustomContextMenu)
        self.createSignalPopupMenu(self.sSelector)
        self.sSelector.customContextMenuRequested.connect(self.onSignalContextMenu)
        self.sSelector.itemClicked.connect(self.changeCurrentSelect)
        self.sSelector.itemPressed.connect(self.signalPress)        
        self.sSelector.itemChanged.connect(self.itemChanged)
        self.mLayout.addWidget(QLabel('Signals'))
        self.mLayout.addWidget(self.sSelector)

        self.gSelector = SignalGroupsChooser(self.chartData, self.wsSelector)
        self.mLayout.addWidget(QLabel('Signal Groups'))
        self.mLayout.addWidget(self.gSelector)

        self.wsSelector.setCurrentRow(0)
        self.chartData.signalAdded.connect(self._updateAll)
        self.chartData.signalRemoved.connect(self._updateAll)
        self.chartData.signalGroupAdded.connect(self._updateAll)
        self.chartData.signalGroupRemoved.connect(self._updateAll)
        self.chartData.signalToGrupAdded.connect(self._updateAll)
        self.chartData.signalFromGroupRemoved.connect(self._updateAll)
Beispiel #22
0
 def __init__(self,
              dataManager,
              parent=None,
              inv=True,
              onlyOne=True,
              inputList=None):
     QTreeWidget.__init__(self, parent)
     self.isInverse = inv
     self.inputList = inputList
     self.dm = dataManager
     self.setHeaderHidden(True)
     self._create()
     if onlyOne:
         if inputList is None:
             self.curChecked = None
         self.itemChanged.connect(self.itemHasChanged)
     self.dm.signalAdded.connect(self.addItem)
     self.dm.signalRemoved.connect(self.removeItem)
    def _init_finds_tab(self, tab):
        finds_list = QTreeWidget()
        finds_list.setHeaderHidden(True)
        self._finds_list = finds_list

        layout = QVBoxLayout()
        layout.addWidget(finds_list)

        frame = QFrame()
        frame.setLayout(layout)

        import_button = QPushButton("Import List")
        import_button.clicked.connect(lambda: self._import_to_list(self._finds_list))
        layout.addWidget(import_button)

        tab.addTab(frame, 'Finds')

        self._finds_list.itemChanged.connect(self._on_explore_addr_changed)
Beispiel #24
0
    def make_viewer(self, exif_reader):
        self.exif_reader = exif_reader
        ifds = self.exif_reader.get_exif()

        self.qw_tree = QTreeWidget(self)
        qt_util_init_tree(self.qw_tree, header_list=['ifd_name'])

        self.qw_stack = QStackedWidget(self)
        self.tree_type_to_stack_idx = {}
        for tree_item_type, (ifd_name, ifd) in enumerate(ifds.items()):
            # -----------------------
            # treeにifd nameを書き込んでroot_treeに登録する.
            # -----------------------
            qw_tree_item = QTreeWidgetItem(['{} ifd'.format(ifd_name), ''],
                                           type=tree_item_type)
            self.qw_tree.addTopLevelItem(qw_tree_item)

            # -----------------------
            # text_editにexif情報を書き込んでstacked_widgetに登録する.
            # -----------------------
            qw_text_edit = QTextEdit(self)
            qt_util_init_text_edit(qw_text_edit)
            qt_util_append_text_edit(qw_text_edit, None, head=True)
            for _, tag in ifd.items():
                qt_util_append_text_edit(qw_text_edit,
                                         tag,
                                         head=False,
                                         display_max_len=50)
            qt_util_reset_text_edit_cursor(qw_text_edit)

            idx = self.qw_stack.addWidget(qw_text_edit)
            self.tree_type_to_stack_idx[tree_item_type] = idx
        else:
            self.qw_tree.itemClicked.connect(self._tree_item_clicked)

        # -----------------------
        # widgetをlayoutに登録する.
        # -----------------------
        widgets = [self.qw_tree, self.qw_stack]
        self._make_layout(widgets)
        self._make_toolbar()

        self.show()  # widgetを表示する.
Beispiel #25
0
 def down_list(tree: QTreeWidget):
     selected = tree.currentItem()
     if selected:
         index = tree.indexOfTopLevelItem(selected)
         name = selected.text(0)
         desc = selected.text(1)
         data = selected.data(2, 2)
         new = QTreeWidgetItem([name, desc])
         new.setData(2, 2, data)
         tree.takeTopLevelItem(index)
         tree.insertTopLevelItem(index + 1, new)
         tree.setCurrentItem(new)
    def _init_widgets(self):

        # search box
        self._search_box = QLineEdit()

        # tree view
        self._treewidget = QTreeWidget()
        self._treewidget.setHeaderHidden(True)

        # refresh button
        self._apply_btn = QPushButton("Apply")
        self._apply_btn.clicked.connect(self._code_view.decompile)

        layout = QVBoxLayout()
        layout.addWidget(self._search_box)
        layout.addWidget(self._treewidget)
        layout.addWidget(self._apply_btn)

        self.setLayout(layout)
Beispiel #27
0
    def resizeEvent(self, event):
        QTreeWidget.resizeEvent(self, event)

        if self.queueInitialPresentation:
            self.initialPresentation()

        self.scrollTo(self.currentIndex())

        newWidth = self.width()
        newHeight = self.height()

        #log.log_debug('QTreeWidget resizeEvent(), now I\'m %dx%d' % (newWidth, newHeight))

        if newWidth == self.oldWidth and newHeight == self.oldHeight:
            return

        self.oldWidth = newWidth
        self.oldHeight = newHeight

        self.setColumnWidthsNicely()
    def _init_widgets(self):

        # search box
        self._search_box = QLineEdit()

        # tree view
        self._treewidget = QTreeWidget()
        self._treewidget.setHeaderHidden(True)
        self._treewidget.itemChanged.connect(self._on_item_changed)

        # refresh button
        self._apply_btn = QPushButton("Apply")
        self._apply_btn.clicked.connect(self._on_apply_pressed)

        layout = QVBoxLayout()
        layout.addWidget(self._search_box)
        layout.addWidget(self._treewidget)
        layout.addWidget(self._apply_btn)

        self.setLayout(layout)
Beispiel #29
0
    def init_ui(self):

        self.vbox = QVBoxLayout()

        self.refresh = QPushButton('Refresh')
        self.refresh.clicked.connect(lambda: self.get_map())
        self.vbox.addWidget(self.refresh)

        self.tree = QTreeWidget()
        self.tree.itemDoubleClicked.connect(self.open_region)
        self.tree.setColumnCount(3)
        self.tree.header().setSectionResizeMode(QHeaderView.ResizeToContents)
        self.tree.header().setStretchLastSection(False)
        self.tree.setHeaderLabels(
            ['Memory Region', 'Start Address', 'End Address'])
        self.vbox.addWidget(self.tree)

        self.setLayout(self.vbox)
        self.setGeometry(100, 100, 500, 300)
        self.setWindowTitle("Memory Tree")
        self.show()
Beispiel #30
0
    def UpdateFileList(self, baseFolder: Path,
                       fileList: QtWidgets.QTreeWidget):
        assert (fileList)
        assert (baseFolder)
        asset_path = baseFolder / re_project._RE_DCC_APP

        fileList.clear()

        for pattern in self.sceneDCCExtensions:
            filelist_gen = asset_path.glob(pattern)
            file_list = list(filelist_gen)
            for file_path in file_list:
                rel_path: Path = file_path.relative_to(asset_path)
                #print(rel_path.as_posix())
                file_stats: os.stat_result = file_path.stat()
                mtime = file_stats.st_mtime
                timestamp_str = datetime.datetime.fromtimestamp(
                    mtime).strftime('%Y-%m-%d-%H:%M')
                fileList.addTopLevelItem(
                    QtWidgets.QTreeWidgetItem([
                        rel_path.as_posix(), timestamp_str,
                        ProjectManagerUI.convert_file_size(file_stats.st_size)
                    ]))

        fileList.resizeColumnToContents(0)
        fileList.resizeColumnToContents(2)
Beispiel #31
0
    def add_tree_with_header(self, parent):
        tw = QTreeWidget()
        parent.addWidget(tw)
        tw.setHeaderLabels(['Type', 'Legs', 'Has Hair/Fur'])
        tw.setSortingEnabled(True)
        tw.setAlternatingRowColors(True)
        i1 = QTreeWidgetItem(tw, ['Mammal'])
        i2 = QTreeWidgetItem(i1, ['Rodent'])
        i3 = QTreeWidgetItem(i2, ['Rat', '4', 'True'])
        i3 = QTreeWidgetItem(i2, ['Beaver', '2', 'True'])
        i2 = QTreeWidgetItem(i1, ['Primate'])
        i3 = QTreeWidgetItem(i2, ['Baboon', '2', 'True'])
        i3 = QTreeWidgetItem(i2, ['Human', '2', 'True'])
        i1 = QTreeWidgetItem(tw, ['Reptile'])
        i2 = QTreeWidgetItem(i1, ['Snake', '0', 'False'])
        i3 = QTreeWidgetItem(i1, ['Crocodile', '4', 'False'])

        self.add_expand_collapse_buttons(parent, tw)
Beispiel #32
0
    def testWidgetIterator(self):
        treeWidget = QTreeWidget()
        treeWidget.setColumnCount(1)
        items = []
        for i in range(10):
            items.append(QTreeWidgetItem(None, ['item: %d' % i]))
        treeWidget.insertTopLevelItems(0, items)

        index = 0
        for it in QTreeWidgetItemIterator(treeWidget):
            self.assertEqual(it.value().text(0), 'item: %d' % index)
            index += 1