diff --git a/src/gui_qt/_py/guidelinewidget.py b/src/gui_qt/_py/guidelinewidget.py
index 2ca5059..808ffa8 100644
--- a/src/gui_qt/_py/guidelinewidget.py
+++ b/src/gui_qt/_py/guidelinewidget.py
@@ -18,21 +18,21 @@ class Ui_Form(object):
self.verticalLayout_2 = QtWidgets.QVBoxLayout(Form)
self.verticalLayout_2.setContentsMargins(3, 3, 3, 3)
self.verticalLayout_2.setObjectName("verticalLayout_2")
- self.treeWidget_2 = QtWidgets.QTreeWidget(Form)
- self.treeWidget_2.setRootIsDecorated(True)
- self.treeWidget_2.setObjectName("treeWidget_2")
- self.treeWidget_2.headerItem().setText(0, "1")
- self.treeWidget_2.header().setVisible(False)
- self.treeWidget_2.header().setHighlightSections(True)
- self.verticalLayout_2.addWidget(self.treeWidget_2)
+ self.treeWidget = QtWidgets.QTreeWidget(Form)
+ self.treeWidget.setRootIsDecorated(True)
+ self.treeWidget.setObjectName("treeWidget")
+ self.treeWidget.headerItem().setText(0, "1")
+ self.treeWidget.header().setVisible(False)
+ self.treeWidget.header().setHighlightSections(True)
+ self.verticalLayout_2.addWidget(self.treeWidget)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
- self.pushButton = QtWidgets.QPushButton(Form)
- self.pushButton.setObjectName("pushButton")
- self.horizontalLayout.addWidget(self.pushButton)
- self.pushButton_2 = QtWidgets.QPushButton(Form)
- self.pushButton_2.setObjectName("pushButton_2")
- self.horizontalLayout.addWidget(self.pushButton_2)
+ self.newButton = QtWidgets.QPushButton(Form)
+ self.newButton.setObjectName("newButton")
+ self.horizontalLayout.addWidget(self.newButton)
+ self.editButton = QtWidgets.QPushButton(Form)
+ self.editButton.setObjectName("editButton")
+ self.horizontalLayout.addWidget(self.editButton)
self.verticalLayout_2.addLayout(self.horizontalLayout)
self.frame = QtWidgets.QFrame(Form)
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
@@ -41,14 +41,14 @@ class Ui_Form(object):
self.formLayout = QtWidgets.QFormLayout(self.frame)
self.formLayout.setContentsMargins(-1, -1, -1, 6)
self.formLayout.setObjectName("formLayout")
- self.label_12 = QtWidgets.QLabel(self.frame)
+ self.type_label = QtWidgets.QLabel(self.frame)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.label_12.sizePolicy().hasHeightForWidth())
- self.label_12.setSizePolicy(sizePolicy)
- self.label_12.setObjectName("label_12")
- self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_12)
+ sizePolicy.setHeightForWidth(self.type_label.sizePolicy().hasHeightForWidth())
+ self.type_label.setSizePolicy(sizePolicy)
+ self.type_label.setObjectName("type_label")
+ self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.type_label)
self.mode_comboBox = QtWidgets.QComboBox(self.frame)
self.mode_comboBox.setObjectName("mode_comboBox")
self.mode_comboBox.addItem("")
@@ -61,9 +61,9 @@ class Ui_Form(object):
self.stackedWidget.setFrameShape(QtWidgets.QFrame.NoFrame)
self.stackedWidget.setObjectName("stackedWidget")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.stackedWidget)
- self.pushButton_3 = QtWidgets.QPushButton(self.frame)
- self.pushButton_3.setObjectName("pushButton_3")
- self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.pushButton_3)
+ self.createButton = QtWidgets.QPushButton(self.frame)
+ self.createButton.setObjectName("createButton")
+ self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.createButton)
self.verticalLayout_2.addWidget(self.frame)
self.retranslateUi(Form)
@@ -73,12 +73,12 @@ class Ui_Form(object):
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
- self.pushButton.setText(_translate("Form", "New object"))
- self.pushButton_2.setText(_translate("Form", "Edit"))
- self.label_12.setText(_translate("Form", "Type"))
+ self.newButton.setText(_translate("Form", "New object"))
+ self.editButton.setText(_translate("Form", "Edit"))
+ self.type_label.setText(_translate("Form", "Type"))
self.mode_comboBox.setItemText(0, _translate("Form", "Infinite Line"))
self.mode_comboBox.setItemText(1, _translate("Form", "Multiple points"))
self.mode_comboBox.setItemText(2, _translate("Form", "Text"))
self.mode_comboBox.setItemText(3, _translate("Form", "Rectangle"))
self.mode_comboBox.setItemText(4, _translate("Form", "Ellipse"))
- self.pushButton_3.setText(_translate("Form", "Create"))
+ self.createButton.setText(_translate("Form", "Apply"))
diff --git a/src/gui_qt/_py/rectanglewidget.py b/src/gui_qt/_py/rectanglewidget.py
index e0ee4a8..39bd9d3 100644
--- a/src/gui_qt/_py/rectanglewidget.py
+++ b/src/gui_qt/_py/rectanglewidget.py
@@ -17,32 +17,38 @@ class Ui_rectanglewidget(object):
rectanglewidget.resize(400, 300)
self.gridLayout = QtWidgets.QGridLayout(rectanglewidget)
self.gridLayout.setObjectName("gridLayout")
- spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
- self.gridLayout.addItem(spacerItem, 3, 0, 1, 1)
self.color_label = QtWidgets.QLabel(rectanglewidget)
self.color_label.setObjectName("color_label")
self.gridLayout.addWidget(self.color_label, 0, 0, 1, 1)
self.left_x = QtWidgets.QLineEdit(rectanglewidget)
self.left_x.setObjectName("left_x")
- self.gridLayout.addWidget(self.left_x, 1, 1, 1, 1)
+ self.gridLayout.addWidget(self.left_x, 2, 1, 1, 1)
self.left_y = QtWidgets.QLineEdit(rectanglewidget)
self.left_y.setObjectName("left_y")
- self.gridLayout.addWidget(self.left_y, 1, 2, 1, 1)
- self.left_label = QtWidgets.QLabel(rectanglewidget)
- self.left_label.setObjectName("left_label")
- self.gridLayout.addWidget(self.left_label, 1, 0, 1, 1)
+ self.gridLayout.addWidget(self.left_y, 2, 2, 1, 1)
+ self.right_x = QtWidgets.QLineEdit(rectanglewidget)
+ self.right_x.setObjectName("right_x")
+ self.gridLayout.addWidget(self.right_x, 3, 1, 1, 1)
self.color_box = ColorListEditor(rectanglewidget)
self.color_box.setObjectName("color_box")
self.gridLayout.addWidget(self.color_box, 0, 1, 1, 2)
- self.right_label = QtWidgets.QLabel(rectanglewidget)
- self.right_label.setObjectName("right_label")
- self.gridLayout.addWidget(self.right_label, 2, 0, 1, 1)
- self.right_x = QtWidgets.QLineEdit(rectanglewidget)
- self.right_x.setObjectName("right_x")
- self.gridLayout.addWidget(self.right_x, 2, 1, 1, 1)
+ self.left_label = QtWidgets.QLabel(rectanglewidget)
+ self.left_label.setObjectName("left_label")
+ self.gridLayout.addWidget(self.left_label, 2, 0, 1, 1)
self.right_y = QtWidgets.QLineEdit(rectanglewidget)
self.right_y.setObjectName("right_y")
- self.gridLayout.addWidget(self.right_y, 2, 2, 1, 1)
+ self.gridLayout.addWidget(self.right_y, 3, 2, 1, 1)
+ spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.gridLayout.addItem(spacerItem, 4, 0, 1, 1)
+ self.right_label = QtWidgets.QLabel(rectanglewidget)
+ self.right_label.setObjectName("right_label")
+ self.gridLayout.addWidget(self.right_label, 3, 0, 1, 1)
+ self.fill_label = QtWidgets.QLabel(rectanglewidget)
+ self.fill_label.setObjectName("fill_label")
+ self.gridLayout.addWidget(self.fill_label, 1, 0, 1, 1)
+ self.fill_box = ColorListEditor(rectanglewidget)
+ self.fill_box.setObjectName("fill_box")
+ self.gridLayout.addWidget(self.fill_box, 1, 1, 1, 2)
self.retranslateUi(rectanglewidget)
QtCore.QMetaObject.connectSlotsByName(rectanglewidget)
@@ -53,8 +59,9 @@ class Ui_rectanglewidget(object):
self.color_label.setText(_translate("rectanglewidget", "Color"))
self.left_x.setPlaceholderText(_translate("rectanglewidget", "x"))
self.left_y.setPlaceholderText(_translate("rectanglewidget", "y"))
- self.left_label.setText(_translate("rectanglewidget", "Lower left"))
- self.right_label.setText(_translate("rectanglewidget", "Upper right"))
self.right_x.setPlaceholderText(_translate("rectanglewidget", "x"))
+ self.left_label.setText(_translate("rectanglewidget", "Lower left"))
self.right_y.setPlaceholderText(_translate("rectanglewidget", "y"))
+ self.right_label.setText(_translate("rectanglewidget", "Upper right"))
+ self.fill_label.setText(_translate("rectanglewidget", "Fill color"))
from gui_qt.lib.delegates import ColorListEditor
diff --git a/src/gui_qt/graphs/draw_inputs.py b/src/gui_qt/graphs/draw_inputs.py
index 9cff13d..faa122d 100644
--- a/src/gui_qt/graphs/draw_inputs.py
+++ b/src/gui_qt/graphs/draw_inputs.py
@@ -35,7 +35,7 @@ class LineWidget(QtWidgets.QWidget, Ui_linewidget):
self.pos_lineedit.setValidator(QtGui.QDoubleValidator())
- def collect_args(self):
+ def collect_args(self) -> dict | None:
pos = self.pos_lineedit.text()
try:
pos = float(pos)
@@ -56,7 +56,11 @@ class MultiPointWidget(QtWidgets.QWidget, Ui_multipointwidget):
super().__init__(parent=parent)
self.setupUi(self)
- def new_point(self, _):
+ self.new_point()
+ self.new_point()
+
+ @QtCore.pyqtSlot(name='on_addButton_clicked')
+ def new_point(self):
row = self.table_widget.rowCount()
self.table_widget.setRowCount(row+1)
placeholder = ['x', 'y']
@@ -68,28 +72,30 @@ class MultiPointWidget(QtWidgets.QWidget, Ui_multipointwidget):
self.table_widget.setCellWidget(row, column, line_edit)
- def less_point(self, _):
- self.table_widget.removeRow(self.table_widget.rowCount()-1)
+ @QtCore.pyqtSlot(name='on_removeButton_clicked')
+ def less_point(self):
+ if self.table_widget.rowCount() > 2:
+ self.table_widget.removeRow(self.table_widget.rowCount()-1)
- def collect_args(self):
- dic = super().collect_args()
+ def collect_args(self) -> dict | None:
pts = []
- if self.table_widget.rowCount() <= 1:
+ if self.table_widget.rowCount() < 2:
return
for row in range(self.table_widget.rowCount()):
- next_pt = self.parse_point(self.table_widget.cellWidget(row, 0), self.table_widget.cellWidget(row, 1))
+ next_pt = parse_point(self.table_widget.cellWidget(row, 0), self.table_widget.cellWidget(row, 1))
if next_pt is None:
return
pts.append(next_pt)
- if pts:
- dic['pts'] = pts
- dic['closed'] = self.loop_checkbox.isChecked()
- return dic
- else:
- return
+ dic = {
+ 'color': self.color_box.currentData(QtCore.Qt.UserRole),
+ 'pts': pts,
+ 'closed': self.loop_checkbox.isChecked(),
+ }
+
+ return dic
class RectangleWidget(QtWidgets.QWidget, Ui_rectanglewidget):
@@ -97,22 +103,29 @@ class RectangleWidget(QtWidgets.QWidget, Ui_rectanglewidget):
super().__init__(parent=parent)
self.setupUi(self)
+ self.fill_box.insertItem(0, 'No fill', None)
+ self.fill_box.setCurrentIndex(0)
+
self.left_x.setValidator(QtGui.QDoubleValidator())
self.left_y.setValidator(QtGui.QDoubleValidator())
self.right_x.setValidator(QtGui.QDoubleValidator())
self.right_y.setValidator(QtGui.QDoubleValidator())
- def collect_args(self):
- dic = super().collect_args()
- left = self.parse_point(self.left_x, self.left_y)
+ def collect_args(self) -> dict | None:
+ left = parse_point(self.left_x, self.left_y)
if left is None:
return
- dic['left'] = left
- right = self.parse_point(self.right_x, self.right_y)
+ right = parse_point(self.right_x, self.right_y)
if right is None:
return
- dic['right'] = right
+
+ dic = {
+ 'color': self.color_box.currentData(QtCore.Qt.UserRole),
+ 'fill': self.fill_box.currentData(QtCore.Qt.UserRole),
+ 'left': left,
+ 'right': right,
+ }
return dic
@@ -127,17 +140,19 @@ class EllipseWidget(QtWidgets.QWidget, Ui_ellipsewidget):
self.width_line.setValidator(QtGui.QDoubleValidator())
self.height_line.setValidator(QtGui.QDoubleValidator())
- def collect_args(self):
- dic = super().collect_args()
- centre = self.parse_point(self.center_x, self.center_y)
+ def collect_args(self) -> dict | None:
+ centre = parse_point(self.center_x, self.center_y)
if centre is None:
return
- dic['centre'] = centre
-
- axes = self.parse_point(self.width_line, self.height_line)
+ axes = parse_point(self.width_line, self.height_line)
if axes is None:
return
- dic['axes'] = axes
+
+ dic = {
+ 'color': self.color_box.currentData(QtCore.Qt.UserRole),
+ 'center': centre,
+ 'axes': axes,
+ }
return dic
@@ -150,13 +165,16 @@ class TextWidget(QtWidgets.QWidget, Ui_textwidget):
self.center_x.setValidator(QtGui.QDoubleValidator())
self.center_y.setValidator(QtGui.QDoubleValidator())
- def collect_args(self):
- dic = super().collect_args()
- centre = self.parse_point(self.center_x, self.center_y)
+ def collect_args(self) -> dict | None:
+
+ centre = parse_point(self.center_x, self.center_y)
if centre is None:
return
- dic['centre'] = centre
- dic['text'] = self.text_lineedit.text()
+ dic = {
+ 'color': self.color_box.currentData(QtCore.Qt.UserRole),
+ 'pos': centre,
+ 'text': self.text_lineedit.text(),
+ }
return dic
diff --git a/src/gui_qt/graphs/draw_objects.py b/src/gui_qt/graphs/draw_objects.py
index bf8b0eb..2d18ee4 100644
--- a/src/gui_qt/graphs/draw_objects.py
+++ b/src/gui_qt/graphs/draw_objects.py
@@ -2,14 +2,14 @@ from __future__ import annotations
import uuid
-from pyqtgraph import mkPen, GraphicsObject, mkBrush
+from pyqtgraph import TextItem, mkPen, GraphicsObject, mkBrush
from numpy import log10
from gui_qt.Qt import QtCore, QtGui
from gui_qt.lib.pg_objects import LogInfiniteLine, PlotItem
-__all__ = ['LineObject', 'MultipointObject', 'RectangleObject']
+__all__ = ['LineObject', 'MultipointObject', 'RectangleObject', 'TextObject', 'EllipseObject']
class BaseObject:
@@ -54,19 +54,23 @@ class MultipointObject(BaseObject):
return f'{len(self._y)-int(self.closed)}-pts'
-class RectangleObject(GraphicsObject, BaseObject):
- def __init__(self, left: tuple, right: tuple, **kwargs):
+class Rectangle(GraphicsObject):
+ # adapted from pyqtgraph example on custom objects
+
+ def __init__(self, left: tuple, right: tuple):
GraphicsObject.__init__(self)
- BaseObject.__init__(self, **kwargs)
self.p0 = left
self.delta = [right[0]-self.p0[0], right[1]-self.p0[1]]
+
+ self.x_disp = self.p0[0]
+ self.dx = self.delta[0]
+ self.y_disp = self.p0[1]
+ self.dy = self.delta[1]
+
self.log_mode = [False, False]
self.generatePicture()
- def __str__(self):
- return 'rectangle'
-
def generatePicture(self):
## pre-computing a QPicture object allows paint() to run much more quickly,
## rather than re-drawing the shapes every time.
@@ -74,10 +78,10 @@ class RectangleObject(GraphicsObject, BaseObject):
p = QtGui.QPainter(self.picture)
p.setPen(mkPen('w'))
p.setBrush(mkBrush('r'))
- p.drawRect(QtCore.QRectF(*self.p0, *self.delta))
+ p.drawRect(QtCore.QRectF(self.x_disp, self.y_disp, self.dx, self.dy))
p.end()
- def paint(self, p, _):
+ def paint(self, p, *_):
p.drawPicture(0, 0, self.picture)
def boundingRect(self):
@@ -92,19 +96,127 @@ class RectangleObject(GraphicsObject, BaseObject):
if self.log_mode[0] != x_mode:
if x_mode:
- xmax = log10(self.p0[0]+self.delta[0])
- self.x_disp = log10(self.p0[0])
- self.dx = xmax - self.x0
+ x0 = self.p0[0]
+ xmax = log10(x0+self.delta[0])
+ self.x_disp = log10(x0)
+ self.dx = xmax - self.x_disp
else:
self.x_disp = self.p0[0]
self.dx = self.delta[0]
- if args[1] and self.log_mode[1] != args[1]:
- ymax = log10(self.y0 + self.dy)
- self.y0 = log10(self.y0)
- self.dy = ymax - self.y0
+
+ if self.log_mode[1] != y_mode:
+ if y_mode:
+ y0 = self.p0[1]
+ ymax = log10(y0 + self.delta[1])
+ self.y_disp = log10(y0)
+ self.dy = ymax - self.y_disp
+ else:
+ self.y_disp = self.p0[1]
+ self.dy = self.delta[1]
self.generatePicture()
self.log_mode = [x_mode, y_mode]
self.informViewBoundsChanged()
+
+class RectangleObject(BaseObject):
+ def __init__(self, left: tuple, right: tuple, **kwargs):
+ super().__init__(**kwargs)
+
+ self.left = left
+ self.right = right
+
+ self.drawing = Rectangle(left, right)
+
+ def __str__(self):
+ return f'Rectangle {self.left} to {self.right}'
+
+
+class TextObject(BaseObject):
+ def __init__(self, text, pos, **kwargs):
+ super().__init__(**kwargs)
+
+ self.pos = pos
+ self.drawing = TextItem(text, anchor=(0.5, 0.5), color=self.color.rgb())
+ self.drawing.setPos(*pos)
+
+ def __str__(self):
+ return f'{self.drawing.toPlainText()} at {self.pos}'
+
+
+class EllipseObject(BaseObject):
+ def __init__(self, center: tuple, axes: tuple, **kwargs):
+ super().__init__(**kwargs)
+
+ self.center = center
+ self.axes = axes
+
+ self.drawing = Ellipse(center, axes)
+
+ def __str__(self):
+ return f'Ellipse at {self.center}'
+
+class Ellipse(GraphicsObject):
+ # adapted from pyqtgraph example on custom objects
+
+ def __init__(self, center: tuple, axes: tuple):
+ GraphicsObject.__init__(self)
+
+ self.center = center
+ self.ax = axes
+
+ self.center_disp = self.center
+ self.ax_disp = self.ax
+
+ self.log_mode = [False, False]
+ self.generatePicture()
+
+ def generatePicture(self):
+ ## pre-computing a QPicture object allows paint() to run much more quickly,
+ ## rather than re-drawing the shapes every time.
+ self.picture = QtGui.QPicture()
+ p = QtGui.QPainter(self.picture)
+ p.setPen(mkPen('w'))
+ p.setBrush(mkBrush('r'))
+ p.drawEllipse(QtCore.QPointF(*self.center_disp), *self.ax_disp)
+ p.end()
+
+ def paint(self, p, *_):
+ p.drawPicture(0, 0, self.picture)
+
+ def boundingRect(self):
+ ## boundingRect _must_ indicate the entire area that will be drawn on
+ ## or else we will get artifacts and possibly crashing.
+ ## (in this case, QPicture does all the work of computing the bouning rect for us)
+ return QtCore.QRectF(self.picture.boundingRect())
+
+ def setLogMode(self, x_mode, y_mode):
+ if self.log_mode == [x_mode, y_mode]:
+ return
+
+ if self.log_mode[0] != x_mode:
+ if x_mode:
+ x0 = self.p0[0]
+ xmax = log10(x0+self.delta[0])
+ self.x_disp = log10(x0)
+ self.dx = xmax - self.x_disp
+ else:
+ self.x_disp = self.p0[0]
+ self.dx = self.delta[0]
+
+ if self.log_mode[1] != y_mode:
+ if y_mode:
+ y0 = self.p0[1]
+ ymax = log10(y0 + self.delta[1])
+ self.y_disp = log10(y0)
+ self.dy = ymax - self.y_disp
+ else:
+ self.y_disp = self.p0[1]
+ self.dy = self.delta[1]
+
+ self.generatePicture()
+
+ self.log_mode = [x_mode, y_mode]
+
+ self.informViewBoundsChanged()
\ No newline at end of file
diff --git a/src/gui_qt/graphs/drawings.py b/src/gui_qt/graphs/drawings.py
index b9219c2..0dde5c6 100644
--- a/src/gui_qt/graphs/drawings.py
+++ b/src/gui_qt/graphs/drawings.py
@@ -28,7 +28,7 @@ class DrawingsWidget(QtWidgets.QWidget, Ui_Form):
child = QtWidgets.QTreeWidgetItem([d])
item.addChild(child)
- self.treeWidget_2.addTopLevelItem(item)
+ self.treeWidget.addTopLevelItem(item)
# self.graph_comboBox.addItem(name, userData=gid)
def clear(self):
@@ -38,29 +38,27 @@ class DrawingsWidget(QtWidgets.QWidget, Ui_Form):
def change_draw_type(self, idx: int):
self.stackedWidget.setCurrentIndex(idx)
- @QtCore.pyqtSlot(name='on_pushButton_3_clicked')
+ @QtCore.pyqtSlot(name='on_createButton_clicked')
def make_drawing(self):
dic = self.stackedWidget.currentWidget().collect_args()
if dic is None:
QtWidgets.QMessageBox.information(self, 'Not working', 'Something is missing to create this object')
return
- idx = self.treeWidget_2.selectedIndexes()
+ idx = self.treeWidget.selectedIndexes()
if idx:
- item = self.treeWidget_2.itemFromIndex(idx[0])
+ idx = idx[0]
+ new_obj = [LineObject, MultipointObject, TextObject, RectangleObject, EllipseObject][self.mode_comboBox.currentIndex()](**dic)
+ item = self.treeWidget.itemFromIndex(idx)
graph_id = item.data(0, QtCore.Qt.UserRole)
- if self.mode_comboBox.currentIndex() == 0:
- new_obj = LineObject(**dic)
- elif self.mode_comboBox.currentIndex() == 1:
- new_obj = MultipointObject(**dic)
- elif self.mode_comboBox.currentIndex() == 3:
- new_obj = RectangleObject(**dic)
+
child = QtWidgets.QTreeWidgetItem([str(new_obj)])
child.setData(0, QtCore.Qt.UserRole, new_obj.id)
+
item.addChild(child)
self.graphs[graph_id].addDrawing(new_obj)
else:
QtWidgets.QMessageBox.information(self, 'Not working', 'No graph is selected to add this object.')
- self.treeWidget_2.expandAll()
+ self.treeWidget.expandAll()
diff --git a/src/gui_qt/linedrawwidget.py b/src/gui_qt/linedrawwidget.py
deleted file mode 100644
index 4a0fcc8..0000000
--- a/src/gui_qt/linedrawwidget.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'src/resources/_ui/linedrawwidget.ui'
-#
-# Created by: PyQt5 UI code generator 5.15.7
-#
-# 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
-
-
-class Ui_linewidget(object):
- def setupUi(self, linewidget):
- linewidget.setObjectName("linewidget")
- linewidget.resize(400, 300)
- self.gridLayout = QtWidgets.QGridLayout(linewidget)
- self.gridLayout.setObjectName("gridLayout")
- self.pos_lineedit = QtWidgets.QLineEdit(linewidget)
- self.pos_lineedit.setObjectName("pos_lineedit")
- self.gridLayout.addWidget(self.pos_lineedit, 1, 1, 1, 1)
- self.orientation_label = QtWidgets.QLabel(linewidget)
- self.orientation_label.setObjectName("orientation_label")
- self.gridLayout.addWidget(self.orientation_label, 2, 0, 1, 1)
- self.orient_combobox = QtWidgets.QComboBox(linewidget)
- self.orient_combobox.setObjectName("orient_combobox")
- self.orient_combobox.addItem("")
- self.orient_combobox.addItem("")
- self.gridLayout.addWidget(self.orient_combobox, 2, 1, 1, 1)
- self.color_label = QtWidgets.QLabel(linewidget)
- self.color_label.setObjectName("color_label")
- self.gridLayout.addWidget(self.color_label, 0, 0, 1, 1)
- self.pos_label = QtWidgets.QLabel(linewidget)
- self.pos_label.setObjectName("pos_label")
- self.gridLayout.addWidget(self.pos_label, 1, 0, 1, 1)
- self.color_box = ColorListEditor(linewidget)
- self.color_box.setObjectName("color_box")
- self.gridLayout.addWidget(self.color_box, 0, 1, 1, 1)
- spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
- self.gridLayout.addItem(spacerItem, 3, 1, 1, 1)
-
- self.retranslateUi(linewidget)
- QtCore.QMetaObject.connectSlotsByName(linewidget)
-
- def retranslateUi(self, linewidget):
- _translate = QtCore.QCoreApplication.translate
- linewidget.setWindowTitle(_translate("linewidget", "Form"))
- self.orientation_label.setText(_translate("linewidget", "Orientation"))
- self.orient_combobox.setItemText(0, _translate("linewidget", "Horizontal"))
- self.orient_combobox.setItemText(1, _translate("linewidget", "Vertical"))
- self.color_label.setText(_translate("linewidget", "Color"))
- self.pos_label.setText(_translate("linewidget", "Position"))
-from gui_qt.lib,delegates import ColorListEditor
diff --git a/src/resources/_ui/guidelinewidget.ui b/src/resources/_ui/guidelinewidget.ui
index 5ac0b4d..ab2a49f 100644
--- a/src/resources/_ui/guidelinewidget.ui
+++ b/src/resources/_ui/guidelinewidget.ui
@@ -27,7 +27,7 @@
3
-
-
+
true
@@ -47,14 +47,14 @@
-
-
-
+
New object
-
-
+
Edit
@@ -75,7 +75,7 @@
6
-
-
+
0
@@ -127,9 +127,9 @@
-
-
+
- Create
+ Apply
diff --git a/src/resources/_ui/rectanglewidget.ui b/src/resources/_ui/rectanglewidget.ui
index 0b78a65..3b769cf 100644
--- a/src/resources/_ui/rectanglewidget.ui
+++ b/src/resources/_ui/rectanglewidget.ui
@@ -14,7 +14,52 @@
Form
- -
+
-
+
+
+ Color
+
+
+
+ -
+
+
+ x
+
+
+
+ -
+
+
+ y
+
+
+
+ -
+
+
+ x
+
+
+
+ -
+
+
+ -
+
+
+ Lower left
+
+
+
+ -
+
+
+ y
+
+
+
+ -
Qt::Vertical
@@ -27,57 +72,22 @@
- -
-
-
- Color
-
-
-
- -
-
-
- x
-
-
-
- -
-
-
- y
-
-
-
- -
-
-
- Lower left
-
-
-
- -
-
-
- -
+
-
Upper right
- -
-
-
- x
+
-
+
+
+ Fill color
- -
-
-
- y
-
-
+
-
+