forked from IPKM/nmreval
eval expression reuses ListWidgetItems of datasets; closes #31
This commit is contained in:
@ -31,13 +31,36 @@ class QEvalDialog(QtWidgets.QDialog, Ui_CalcDialog):
|
||||
self.namespace_widget.set_namespace(self.namespace)
|
||||
|
||||
def add_data(self, data):
|
||||
self.listWidget.clear()
|
||||
# self.listWidget.clear()
|
||||
tmp = []
|
||||
while self.listWidget.count():
|
||||
tmp.append(self.listWidget.takeItem(0))
|
||||
|
||||
for set_id, name in data:
|
||||
item = QtWidgets.QListWidgetItem(name)
|
||||
item.setData(QtCore.Qt.UserRole, set_id)
|
||||
item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEditable)
|
||||
item.setCheckState(QtCore.Qt.Checked)
|
||||
self.listWidget.addItem(item)
|
||||
|
||||
# search if set was used before
|
||||
new_one = True
|
||||
for i in range(len(tmp)):
|
||||
w = tmp[i]
|
||||
if w.data(QtCore.Qt.UserRole) == set_id:
|
||||
|
||||
self.listWidget.addItem(w)
|
||||
tmp.pop(i)
|
||||
new_one = False
|
||||
break
|
||||
|
||||
# new set, create item
|
||||
if new_one:
|
||||
item = QtWidgets.QListWidgetItem(name)
|
||||
item.setData(QtCore.Qt.UserRole, set_id)
|
||||
item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEditable)
|
||||
item.setCheckState(QtCore.Qt.Checked)
|
||||
self.listWidget.addItem(item)
|
||||
|
||||
while len(tmp):
|
||||
# delete remaining ListWidgetItems
|
||||
w = tmp.pop()
|
||||
w.deleteLater()
|
||||
|
||||
def set_graphs(self, graphs: list):
|
||||
self.graph_comboBox.clear()
|
||||
|
Reference in New Issue
Block a user