diff --git a/.gitignore b/.gitignore
index 3a30800..581e7b2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ AppDir
NMReval*.zsync
.idea
*.zs-old
+docs
diff --git a/src/gui_qt/_py/eval_expr_dialog.py b/src/gui_qt/_py/eval_expr_dialog.py
index d70a5ed..5bda16f 100644
--- a/src/gui_qt/_py/eval_expr_dialog.py
+++ b/src/gui_qt/_py/eval_expr_dialog.py
@@ -1,10 +1,11 @@
# -*- coding: utf-8 -*-
-# Form implementation generated from reading ui file 'resources/_ui/eval_expr_dialog.ui'
+# Form implementation generated from reading ui file 'src/resources/_ui/eval_expr_dialog.ui'
#
-# Created by: PyQt5 UI code generator 5.12.3
+# Created by: PyQt5 UI code generator 5.15.9
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
@@ -36,14 +37,14 @@ class Ui_CalcDialog(object):
self.label_2 = QtWidgets.QLabel(self.page)
self.label_2.setObjectName("label_2")
self.verticalLayout_2.addWidget(self.label_2)
- self.listWidget = QtWidgets.QListWidget(self.page)
+ self.listWidget = QListWidgetSelect(self.page)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.listWidget.sizePolicy().hasHeightForWidth())
self.listWidget.setSizePolicy(sizePolicy)
self.listWidget.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
- self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)
+ self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.listWidget.setObjectName("listWidget")
self.verticalLayout_2.addWidget(self.listWidget)
self.overwrite_checkbox = QtWidgets.QCheckBox(self.page)
@@ -202,7 +203,7 @@ class Ui_CalcDialog(object):
self.label_8.setBuddy(self.line_doubleSpinBox)
self.retranslateUi(CalcDialog)
- self.stackedWidget.setCurrentIndex(2)
+ self.stackedWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(CalcDialog)
CalcDialog.setTabOrder(self.calc_edit, self.listWidget)
CalcDialog.setTabOrder(self.listWidget, self.overwrite_checkbox)
@@ -237,4 +238,5 @@ class Ui_CalcDialog(object):
self.label_11.setText(_translate("CalcDialog", "Style"))
self.label.setText(_translate("CalcDialog", "Expressions are evaluated line by line and change previous values"))
from ..lib.delegates import ColorListEditor, LineStyleEditor, SymbolStyleEditor
+from ..lib.listwidget import QListWidgetSelect
from ..lib.namespace import QNamespaceWidget
diff --git a/src/gui_qt/lib/listwidget.py b/src/gui_qt/lib/listwidget.py
new file mode 100644
index 0000000..c4128da
--- /dev/null
+++ b/src/gui_qt/lib/listwidget.py
@@ -0,0 +1,16 @@
+from ..Qt import QtWidgets, QtGui, QtCore
+
+
+class QListWidgetSelect(QtWidgets.QListWidget):
+ def __init__(self, parent=None):
+ super().__init__(parent=parent)
+
+ def keyPressEvent(self, evt: QtGui.QKeyEvent):
+ if evt.key() == QtCore.Qt.Key.Key_Space:
+ for idx in self.selectedIndexes():
+ item = self.itemFromIndex(idx)
+ cs = item.checkState()
+ item.setCheckState(QtCore.Qt.CheckState.Unchecked if cs == QtCore.Qt.CheckState.Checked
+ else QtCore.Qt.CheckState.Checked)
+ else:
+ super().keyPressEvent(evt)
diff --git a/src/resources/_ui/eval_expr_dialog.ui b/src/resources/_ui/eval_expr_dialog.ui
index c3f7791..c483d3f 100644
--- a/src/resources/_ui/eval_expr_dialog.ui
+++ b/src/resources/_ui/eval_expr_dialog.ui
@@ -27,7 +27,7 @@
-
- 2
+ 0
@@ -54,7 +54,7 @@
-
-
+
0
@@ -65,7 +65,7 @@
QAbstractItemView::NoEditTriggers
- QAbstractItemView::SingleSelection
+ QAbstractItemView::ExtendedSelection
@@ -414,6 +414,11 @@
1
+
+ QListWidgetSelect
+ QListWidget
+
+
calc_edit