Beispiel #1
0
    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"])
Beispiel #2
0
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()
Beispiel #4
0
 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)