def dropEvent(self, event):
        QListWidget.dropEvent(self, event)

        client_ids_list = []

        for i in range(self.count()):
            item = self.item(i)
            #widget = self.itemWidget(item)
            client_id = item.getClientId()
            client_ids_list.append(client_id)

        server = GUIServerThread.instance()
        if server:
            server.toDaemon('/ray/session/reorder_clients', *client_ids_list)
Пример #2
0
 def dropEvent(self,event):
     # override drop event so we can repopulate the table view
     text = self.currentItem().text()
     ret = QListWidget.dropEvent(self,event)
     self.writeNames()
     self.selectTable(text)
     return ret
Пример #3
0
    def tab2UI(self):
        layout = QGridLayout()
        layout.setContentsMargins(10, 10, 10, 10)
        layout.setSpacing(10)

        radio_line = QRadioButton('line')
        radio_scatter = QRadioButton('scatter')
        layout.addWidget(QLabel(self.translate('Curve Type')), 0, 0, 1, 1)
        layout.addWidget(radio_line, 0, 1, 1, 1)
        layout.addWidget(radio_scatter, 0, 2, 1, 1)

        lineWidth = SpinBox(lower=1)
        layout.addWidget(QLabel(self.translate('Curve Width')), 1, 0, 1, 1)
        layout.addWidget(lineWidth, 1, 1, 1, 1)

        symbolSize = SpinBox(lower=1)
        layout.addWidget(QLabel(self.translate('Symbol Size')), 2, 0, 1, 1)
        layout.addWidget(symbolSize, 2, 1, 1, 1)

        def saveColors():
            array = []
            for i in range(colorList.count()):
                item = colorList.item(i)
                color = item.background().color()
                array.append(color)
            self.setSetting('Curve/colors', array)

        colorList = QListWidget()
        colorList.setFixedWidth(80)
        colorList.setDragEnabled(True)
        colorList.setProperty("showDropIndicator", True)
        colorList.setDragDropMode(QAbstractItemView.DragDrop)
        colorList.setDefaultDropAction(Qt.MoveAction)
        drop = colorList.dropEvent
        colorList.dropEvent = lambda x: drop(x) or saveColors()
        layout.addWidget(QLabel(self.translate('Color Sequence')), 3, 0, 1, 1)
        layout.addWidget(colorList, 3, 1, 7, 1)

        applyBtn = QPushButton(self.translate('Apply'))
        layout.addWidget(applyBtn, 10, 0, 1, 4)

        ctype = self.defaultSetting('Curve/type', 'line')
        if ctype == 'line':
            radio_line.setChecked(True)
        else:
            radio_scatter.setChecked(True)

        lineWidth.setValue(int(self.defaultSetting('Curve/width', 3)))
        symbolSize.setValue(int(self.defaultSetting('Curve/size', 5)))

        colors = self.defaultSetting(
            'Curve/colors',
            ['#FF0000', '#0000FF', '#00FF00', '#FFFF00', '#FF00FF', '#00FFFF'])
        for color in colors:
            item = QListWidgetItem()
            #item.setText(color)
            #item.setTextColor(QColor(color))
            brush = QBrush(QColor(color))
            brush.setStyle(Qt.SolidPattern)
            item.setBackground(brush)
            colorList.addItem(item)

        def changeColor():
            items = colorList.selectedItems()
            if len(items) == 0:
                return
            item = items[0]
            currentcolor = item.background().color()
            color = QColorDialog.getColor(currentcolor)
            if not QColor.isValid(color):
                return
            brush = QBrush(QColor(color))
            brush.setStyle(Qt.SolidPattern)
            item.setBackground(brush)
            saveColors()

        def showMenu():
            item = colorList.currentItem()
            if not item:
                delColorAction.setDisabled(True)
            else:
                delColorAction.setEnabled(True)
            menu.exec_(QCursor.pos())

        def addColor():
            color = QColorDialog.getColor(QColor('#000000'))
            if not QColor.isValid(color):
                return
            item = QListWidgetItem()
            brush = QBrush(QColor(color))
            brush.setStyle(Qt.SolidPattern)
            item.setBackground(brush)

            citem = colorList.currentItem()
            if not citem:
                colorList.addItem(item)
            else:
                colorList.insertItem(colorList.currentRow(), item)
            saveColors()

        def delColor():
            colorList.takeItem(colorList.currentRow())
            saveColors()

        menu = QMenu(colorList)
        addColorAction = QAction(self.translate('Add Color'), menu)
        delColorAction = QAction(self.translate('Del Color'), menu)
        menu.addAction(addColorAction)
        menu.addAction(delColorAction)
        addColorAction.triggered.connect(addColor)
        delColorAction.triggered.connect(delColor)

        colorList.setContextMenuPolicy(Qt.CustomContextMenu)
        colorList.customContextMenuRequested.connect(showMenu)

        radio_line.toggled.connect(
            lambda: self.setSetting('Curve/type', 'line'))
        radio_scatter.toggled.connect(
            lambda: self.setSetting('Curve/type', 'scatter'))
        lineWidth.valueChanged.connect(
            lambda x: self.setSetting('Curve/width', x))
        symbolSize.valueChanged.connect(
            lambda x: self.setSetting('Curve/size', x))
        colorList.doubleClicked.connect(changeColor)
        applyBtn.clicked.connect(self.drawCurves)

        self.stack2.setLayout(layout)
Пример #4
0
 def dropEvent(self, *pargs, **kwargs):
     QListWidget.dropEvent(self, *pargs, **kwargs)
     self.item_dropped.emit()