def dropEvent(self, event): text = event.mimeData().text() #print event.mimeData().formats() parm = hou.parm(text) if parm != None: if hou.parm(self.pathLabel.text()) !=None: self.removeCallBack(hou.parm(self.pathLabel.text()).node()) if isinstance(parm.eval(),str): mime = QtCore.QMimeData() mime.setText("") newEvent = QtGui.QDropEvent(event.pos(), event.dropAction(), mime, event.mouseButtons(), event.keyboardModifiers()) super(snippet, self).dropEvent(newEvent) self.pathLabel.setText(text) self.setText(parm.eval()) self.pathLabel.setStyleSheet(stylesheet.styles["valid"]) self.setUpCallback(parm.node()) else: mime = QtCore.QMimeData() mime.setText("") newEvent = QtGui.QDropEvent(event.pos(), event.dropAction(), mime, event.mouseButtons(), event.keyboardModifiers()) super(snippet, self).dropEvent(newEvent) self.pathLabel.setText("Invalid. Only String Parameter is acceptable:") self.pathLabel.setStyleSheet(stylesheet.styles["invalid"]) else: ### ### droped info is not path to parm ### if hou.parm(self.pathLabel.text()) != None: ### ### parm is already set ### if hou.node(text) == None: ### ### dropping a template ### self.dropTemplate(event) if hou.parm(self.pathLabel.text()).name() == "snippet": self.parmCreate(hou.parm(self.pathLabel.text()).node()) else: ### ### dropping node or something ### if hou.parm(self.pathLabel.text()) !=None: self.removeCallBack(hou.parm(self.pathLabel.text()).node()) mime = QtCore.QMimeData() mime.setText("") newEvent = QtGui.QDropEvent(event.pos(), event.dropAction(), mime, event.mouseButtons(), event.keyboardModifiers()) super(snippet, self).dropEvent(newEvent) self.pathLabel.setText("Invalid. Drop a parameter:") self.pathLabel.setStyleSheet(stylesheet.styles["invalid"]) else: ### ### parm is not set ### self.dropTemplate(event) self.pathLabel.setText("Invalid. Drop a parameter first:") self.pathLabel.setStyleSheet(stylesheet.styles["invalid"])
def test_laser_view(qtbot: QtBot): viewspace = LaserViewSpace() qtbot.addWidget(viewspace) viewspace.show() view = viewspace.activeView() laser = view.addLaser(Laser(rand_data(["A1", "B2", "C3"]))) qtbot.waitExposed(laser) view.tabs.setTabText(0, "newname") assert view.stack.widget(0).laserName() == "newname" view.contextMenuEvent( QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0))) # Drop event drag_mime = QtCore.QMimeData() path = Path(__file__).parent.joinpath("data", "io", "npz", "test.npz") drag_mime.setUrls([QtCore.QUrl.fromLocalFile(str(path.resolve()))]) drag_event = QtGui.QDragEnterEvent( QtCore.QPoint(0, 0), QtCore.Qt.CopyAction, drag_mime, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier, ) view.dragEnterEvent(drag_event) assert drag_event.isAccepted() drop_event = QtGui.QDropEvent( QtCore.QPoint(0, 0), QtCore.Qt.CopyAction, drag_mime, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier, ) with qtbot.waitSignal(view.numTabsChanged): view.dropEvent(drop_event) assert drop_event.isAccepted() assert len(view.widgets()) == 2 dlg = view.actionOpen() dlg.show() dlg.close()
def test_wizard_import_path_widget_directory(qtbot: QtBot): widget = options.PathSelectWidget(path, "Agilent Batch", [".b"], "Directory") qtbot.addWidget(widget) assert not widget.isComplete() drag_mime = QtCore.QMimeData() drag_mime.setUrls( [ QtCore.QUrl.fromLocalFile( str(path.joinpath("agilent", "test_ms.b").resolve()) ) ] ) drag_event = QtGui.QDragEnterEvent( QtCore.QPoint(0, 0), QtCore.Qt.CopyAction, drag_mime, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier, ) widget.dragEnterEvent(drag_event) assert drag_event.isAccepted() drop_event = QtGui.QDropEvent( QtCore.QPoint(0, 0), QtCore.Qt.CopyAction, drag_mime, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier, ) with qtbot.waitSignal(widget.pathChanged): widget.dropEvent(drop_event) assert drop_event.isAccepted() assert Path(widget.lineedit_path.text()).samefile( path.joinpath("agilent", "test_ms.b") ) assert widget.isComplete() dlg = widget.selectPath() assert dlg.fileMode() == QtWidgets.QFileDialog.Directory dlg.close()
def add_bookmark(self): input = hou.ui.readInput("Enter a Bookmark Path:", buttons=("Node", "File", "URL", "Cancel"), default_choice=-1, close_choice=3) if input[0] is 3: return path = input[1] data = QtCore.QMimeData() if input[0] is 1: path.encode("unicode_escape") path = "file:///" + path if input[0] in [1, 2]: url = QtCore.QUrl() url.setUrl(path) data.setUrls([url]) pos = QtCore.QPointF(1, 1) action = QtCore.Qt.DropActions() data.setText(path) buttons = QtCore.Qt.MouseButtons() modifier = QtCore.Qt.KeyboardModifiers() event = QtGui.QDropEvent(pos, action, data, buttons, modifier) self.dropEvent(event)