Exemple #1
0
def test_basic_table_view(qtbot: QtBot):
    view = BasicTableView()
    qtbot.addWidget(view)

    x = np.random.random((5, 5))
    model = NumpyArrayTableModel(x)
    view.setModel(model)

    view.setCurrentIndex(view.indexAt(QtCore.QPoint(0, 0)))
    assert view.currentIndex().row() == 0
    view._advance()
    assert view.currentIndex().row() == 1
    view.selectionModel().select(
        view.indexAt(QtCore.QPoint(0, 0)), QtCore.QItemSelectionModel.Select
    )
    view._copy()
    mime_data = QtWidgets.QApplication.clipboard().mimeData()
    assert mime_data.text() == str(x[0, 0]) + "\n" + str(x[1, 0])
    view._cut()  # Same as _copy, _delete
    view._delete()
    assert not np.isnan(x[0, 0])  # Can't delete out of a numpy array
    QtWidgets.QApplication.clipboard().setText("2.0")
    view._paste()
    assert x[0, 0] == 2.0

    view.contextMenuEvent(
        QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0))
    )
Exemple #2
0
def test_laser_widget_actions(qtbot: QtBot):
    viewspace = LaserViewSpace()
    qtbot.addWidget(viewspace)
    viewspace.show()
    view = viewspace.activeView()
    view.addLaser(
        Laser(rand_data(["a", "b"]),
              info={"File Path": "/home/pewpew/real.npz"}))
    widget = view.activeWidget()

    dlg = widget.actionCalibration()
    dlg.close()
    dlg = widget.actionConfig()
    dlg.close()
    widget.actionDuplicate()
    widget.actionCopyImage()
    dlg = widget.actionExport()
    dlg.close()
    dlg = widget.actionSave()
    dlg.close()
    dlg = widget.actionStatistics()
    dlg.close()
    dlg = widget.actionSelectDialog()
    dlg.close()
    dlg = widget.actionColocal()
    dlg.close()

    widget.contextMenuEvent(
        QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse,
                                QtCore.QPoint(0, 0)))

    # Test contextmenu
    widget.graphics.mask = np.ones((10, 10), dtype=bool)
    widget.contextMenuEvent(
        QtGui.QContextMenuEvent(
            QtGui.QContextMenuEvent.Mouse,
            widget.graphics.mapFromScene(QtCore.QPointF(0, 0)),
        ))

    widget.actionCopySelectionText()
    widget.actionCropSelection()
    dlg = widget.actionStatisticsSelection()
    dlg.close()
    dlg = widget.actionColocalSelection()
    dlg.close()
Exemple #3
0
def test_laser_widget_combo(qtbot: QtBot):
    box = LaserComboBox()
    qtbot.addWidget(box)

    box.addItems("abcde")

    dlg = box.actionNameEditDialog()
    dlg.close()

    box.contextMenuEvent(
        QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse,
                                QtCore.QPoint(0, 0)))
Exemple #4
0
def test_basic_table(qtbot: QtBot):
    table = BasicTable()
    qtbot.addWidget(table)

    table.setRowCount(2)
    table.setColumnCount(2)

    table.setItem(0, 0, QtWidgets.QTableWidgetItem("0"))
    table.setItem(0, 1, QtWidgets.QTableWidgetItem("0"))
    table.setItem(1, 0, QtWidgets.QTableWidgetItem("0"))
    table.setItem(1, 1, QtWidgets.QTableWidgetItem("d"))

    table.setColumnText(0, ["a", "c"])
    table.setRowText(0, ["a", "b"])

    assert table.columnText(0) == ["a", "c"]
    assert table.rowText(0) == ["a", "b"]

    table.setCurrentCell(0, 0)
    assert table.currentRow() == 0
    table._advance()
    assert table.currentRow() == 1

    table.clearSelection()
    table.setRangeSelected(QtWidgets.QTableWidgetSelectionRange(0, 0, 0, 1), True)
    table._copy()
    mime_data = QtWidgets.QApplication.clipboard().mimeData()
    assert mime_data.text() == "a\tb"

    table.clearSelection()
    table.setRangeSelected(QtWidgets.QTableWidgetSelectionRange(1, 0, 1, 1), True)
    table._cut()  # Same as _copy, _delete
    mime_data = QtWidgets.QApplication.clipboard().mimeData()
    assert mime_data.text() == "c\td"
    assert table.item(1, 0).text() == ""
    assert table.item(1, 1).text() == ""

    table.setRangeSelected(QtWidgets.QTableWidgetSelectionRange(0, 0, 1, 1), True)
    table._delete()
    assert table.item(0, 0).text() == ""
    assert table.item(0, 1).text() == ""

    QtWidgets.QApplication.clipboard().setText("1\t2\n3\t4")
    table._paste()
    assert table.item(0, 0).text() == "1"
    assert table.item(0, 1).text() == "2"
    assert table.item(1, 0).text() == "3"
    assert table.item(1, 1).text() == "4"

    table.contextMenuEvent(
        QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0))
    )
Exemple #5
0
def test_base_chart(qtbot: QtBot):
    chart = BaseChart(QtCharts.QChart(), light_theme)
    qtbot.addWidget(chart)

    axis = QtCharts.QValueAxis()
    chart.addAxis(axis, QtCore.Qt.AlignBottom)
    assert axis.gridLineColor() == chart.theme["grid"]
    assert axis.minorGridLineColor() == chart.theme["grid"]
    assert axis.labelsColor() == chart.theme["text"]
    assert axis.linePen().color() == chart.theme["axis"]
    assert axis.titleBrush().color() == chart.theme["title"]

    chart.contextMenuEvent(
        QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse,
                                QtCore.QPoint(0, 0)))
    chart.copyToClipboard()
Exemple #6
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()
Exemple #7
0
    def test_MayaButtonWidget(self):
        try:
            import bookmarks.maya.widget as mayawidget
            import bookmarks.common as common
            import bookmarks.standalone as standalone
            import bookmarks.maya as maya
        except ImportError as e:
            raise

        w = mayawidget.MayaButtonWidget()
        w.show()

        try:
            from PySide2 import QtCore, QtGui
        except ImportError as e:
            raise

        e = QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse,
                                    w.geometry().center())
        w.contextMenuEvent(e)
        w.clicked.emit()
Exemple #8
0
def test_stats_dialog(qtbot: QtBot):
    x = np.array(np.random.random([10, 10]), dtype=[("a", float)])
    x[0, :] = np.nan
    m = np.full(x.shape, True, dtype=bool)

    dialog = dialogs.StatsDialog(x, m, {"a": "u"}, "a", (1.0, 1.0))
    qtbot.addWidget(dialog)
    dialog.open()

    assert dialog.label_area.text().endswith("90 μm²")
    dialog.pixel_size = (1e3, 1e3)
    dialog.updateStats()
    assert dialog.label_area.text().endswith("90 mm²")
    dialog.pixel_size = (1e5, 1e5)
    dialog.updateStats()
    assert dialog.label_area.text().endswith("9000 cm²")

    dialog.contextMenuEvent(
        QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse,
                                QtCore.QPoint(0, 0)))

    dialog.copyToClipboard()