Esempio n. 1
0
    def dropEvent(self, event: QtGui.QDropEvent):
        if not event.isAccepted() and event.source() == self:
            drop_row = self.drop_on(event)

            rows = sorted(set(item.row() for item in self.selectedItems()))
            rows_to_move: List[zlm_core.ZlmLayer] = [
                self.item(row_index, 0).layer_inst for row_index in rows
            ]

            for row_index in reversed(rows):
                self.removeRow(row_index)
                if row_index < drop_row:
                    drop_row -= 1

            for row_index, layer in enumerate(rows_to_move):
                row_index += drop_row
                self.insertRow(row_index)
                item = QtWidgets.QTableWidgetItem(layer.name)
                item.layer_inst = layer
                self.setItem(row_index, 0, item)

            event.accept()
            # for row_index in range(len(rows_to_move)):
            #     self.item(drop_row + row_index, 0).setSelected(True)
        super().dropEvent(event)
Esempio n. 2
0
    def dropEvent(self, event: QDropEvent):
        if not event.isAccepted() and event.source() == self:
            drop_row = self.drop_on(event)

            rows = sorted(set(item.row() for item in self.selectedItems()))
            rows_to_move = [[
                QTableWidgetItem(self.item(row_index, column_index))
                for column_index in range(self.columnCount())
            ] for row_index in rows]
            for row_index in reversed(rows):
                self.removeRow(row_index)
                if row_index < drop_row:
                    drop_row -= 1

            for row_index, data in enumerate(rows_to_move):
                row_index += drop_row
                self.insertRow(row_index)
                for column_index, column_data in enumerate(data):
                    self.setItem(row_index, column_index, column_data)
            event.accept()
            for row_index in range(len(rows_to_move)):
                for col_index in range(self.columnCount()):
                    self.item(drop_row + row_index,
                              col_index).setSelected(True)
        super().dropEvent(event)
Esempio n. 3
0
    def dropEvent(self, event: QDropEvent):
        # If drag and drop from self to self.
        if not event.isAccepted() and event.source() == self:
            # grab the row number of dragged row and its data
            row = self.selectedIndexes()[0].row()
            idx = self.cmodel.index(row, 2).data()
            # Get the row on which to drop
            dropRow = self.drop_on(event)
            dropIdx = self.cmodel.index(dropRow, 2).data()
            # If we drag from earlier row, handle index after deletion
            if row < dropRow:
                dropRow -= 1
            com = self.clist.pop(row)
            self.clist.insert(dropRow, com)
            self.populateTable()

            # Reselect the dropped row (TODO: does this work?)
            self.selectRow(dropRow)

            # Resize the rows - they were expanding after drags for some reason
            # TODO: remove?
            self.resizeRowsToContents()
        else:
            super().dropEvent(event)
Esempio n. 4
0
 def dropEvent(self, event: QDropEvent):
     super().dropEvent(event)
     if event.isAccepted():
         self.dataChanged.emit()