- in Alignment Plugin updated the GUI
This commit is contained in:
@@ -15,6 +15,7 @@ CHANGELOG for FlatCAM beta
|
|||||||
- added some new properties to the FCCheckBox GUI element
|
- added some new properties to the FCCheckBox GUI element
|
||||||
- in Corners Plugin remade the GUI
|
- in Corners Plugin remade the GUI
|
||||||
- in Corners Markers Plugin added the beginning of the manual marker placement
|
- in Corners Markers Plugin added the beginning of the manual marker placement
|
||||||
|
- in Alignment Plugin updated the GUI
|
||||||
|
|
||||||
4.09.2021
|
4.09.2021
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
from PyQt6 import QtWidgets, QtCore, QtGui
|
from PyQt6 import QtWidgets, QtCore, QtGui
|
||||||
from appTool import AppTool
|
from appTool import AppTool
|
||||||
|
|
||||||
from appGUI.GUIElements import FCComboBox, RadioSet, FCLabel, FCButton, VerticalScrollArea, FCGridLayout
|
from appGUI.GUIElements import FCComboBox, RadioSet, FCLabel, FCButton, VerticalScrollArea, FCGridLayout, FCFrame
|
||||||
|
|
||||||
import math
|
import math
|
||||||
|
|
||||||
@@ -411,21 +411,39 @@ class AlignUI:
|
|||||||
""")
|
""")
|
||||||
self.layout.addWidget(title_label)
|
self.layout.addWidget(title_label)
|
||||||
|
|
||||||
# Form Layout
|
self.tools_frame = QtWidgets.QFrame()
|
||||||
grid0 = FCGridLayout(v_spacing=5, h_spacing=3)
|
self.tools_frame.setContentsMargins(0, 0, 0, 0)
|
||||||
grid0.setColumnStretch(0, 0)
|
self.layout.addWidget(self.tools_frame)
|
||||||
grid0.setColumnStretch(1, 1)
|
self.tools_box = QtWidgets.QVBoxLayout()
|
||||||
self.layout.addLayout(grid0)
|
self.tools_box.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.tools_frame.setLayout(self.tools_box)
|
||||||
|
|
||||||
self.aligned_label = FCLabel('<b>%s:</b>' % _("MOVING object"))
|
self.title_box = QtWidgets.QHBoxLayout()
|
||||||
grid0.addWidget(self.aligned_label, 0, 0, 1, 2)
|
self.tools_box.addLayout(self.title_box)
|
||||||
|
|
||||||
|
# #############################################################################################################
|
||||||
|
# Moving Object Frame
|
||||||
|
# #############################################################################################################
|
||||||
|
self.aligned_label = FCLabel('<span style="color:indigo;"><b>%s</b></span>' % _("MOVING object"))
|
||||||
self.aligned_label.setToolTip(
|
self.aligned_label.setToolTip(
|
||||||
_("Specify the type of object to be aligned.\n"
|
_("Specify the type of object to be aligned.\n"
|
||||||
"It can be of type: Gerber or Excellon.\n"
|
"It can be of type: Gerber or Excellon.\n"
|
||||||
"The selection here decide the type of objects that will be\n"
|
"The selection here decide the type of objects that will be\n"
|
||||||
"in the Object combobox.")
|
"in the Object combobox.")
|
||||||
)
|
)
|
||||||
|
self.tools_box.addWidget(self.aligned_label)
|
||||||
|
|
||||||
|
m_frame = FCFrame()
|
||||||
|
m_frame.setFrameStyle(QtWidgets.QFrame.Shape.StyledPanel | QtWidgets.QFrame.Shadow.Plain)
|
||||||
|
# units_frame.setContentsMargins(0, 0, 0, 0)
|
||||||
|
m_frame.setStyleSheet(".FCFrame{border: 1px solid gray; border-radius: 5px;}")
|
||||||
|
self.tools_box.addWidget(m_frame)
|
||||||
|
|
||||||
|
# Grid Layout
|
||||||
|
grid0 = FCGridLayout(v_spacing=5, h_spacing=3)
|
||||||
|
grid0.setColumnStretch(0, 0)
|
||||||
|
grid0.setColumnStretch(1, 1)
|
||||||
|
m_frame.setLayout(grid0)
|
||||||
|
|
||||||
# Type of object to be aligned
|
# Type of object to be aligned
|
||||||
self.type_obj_radio = RadioSet([
|
self.type_obj_radio = RadioSet([
|
||||||
@@ -433,7 +451,7 @@ class AlignUI:
|
|||||||
{"label": _("Excellon"), "value": "exc"},
|
{"label": _("Excellon"), "value": "exc"},
|
||||||
])
|
])
|
||||||
|
|
||||||
grid0.addWidget(self.type_obj_radio, 3, 0, 1, 2)
|
grid0.addWidget(self.type_obj_radio, 0, 0, 1, 2)
|
||||||
|
|
||||||
# Object to be aligned
|
# Object to be aligned
|
||||||
self.object_combo = FCComboBox()
|
self.object_combo = FCComboBox()
|
||||||
@@ -445,23 +463,31 @@ class AlignUI:
|
|||||||
_("Object to be aligned.")
|
_("Object to be aligned.")
|
||||||
)
|
)
|
||||||
|
|
||||||
grid0.addWidget(self.object_combo, 4, 0, 1, 2)
|
grid0.addWidget(self.object_combo, 2, 0, 1, 2)
|
||||||
|
|
||||||
separator_line = QtWidgets.QFrame()
|
# #############################################################################################################
|
||||||
separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
|
# Destination Object Frame
|
||||||
separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
|
# #############################################################################################################
|
||||||
grid0.addWidget(separator_line, 5, 0, 1, 2)
|
self.aligned_label = FCLabel('<span style="color:red;"><b>%s</b></span>' % _("DESTINATION object"))
|
||||||
|
|
||||||
grid0.addWidget(FCLabel(''), 6, 0, 1, 2)
|
|
||||||
|
|
||||||
self.aligned_label = FCLabel('<b>%s:</b>' % _("DESTINATION object"))
|
|
||||||
self.aligned_label.setToolTip(
|
self.aligned_label.setToolTip(
|
||||||
_("Specify the type of object to be aligned to.\n"
|
_("Specify the type of object to be aligned to.\n"
|
||||||
"It can be of type: Gerber or Excellon.\n"
|
"It can be of type: Gerber or Excellon.\n"
|
||||||
"The selection here decide the type of objects that will be\n"
|
"The selection here decide the type of objects that will be\n"
|
||||||
"in the Object combobox.")
|
"in the Object combobox.")
|
||||||
)
|
)
|
||||||
grid0.addWidget(self.aligned_label, 7, 0, 1, 2)
|
self.tools_box.addWidget(self.aligned_label)
|
||||||
|
|
||||||
|
d_frame = FCFrame()
|
||||||
|
d_frame.setFrameStyle(QtWidgets.QFrame.Shape.StyledPanel | QtWidgets.QFrame.Shadow.Plain)
|
||||||
|
# units_frame.setContentsMargins(0, 0, 0, 0)
|
||||||
|
d_frame.setStyleSheet(".FCFrame{border: 1px solid gray; border-radius: 5px;}")
|
||||||
|
self.tools_box.addWidget(d_frame)
|
||||||
|
|
||||||
|
# Grid Layout
|
||||||
|
grid1 = FCGridLayout(v_spacing=5, h_spacing=3)
|
||||||
|
grid1.setColumnStretch(0, 0)
|
||||||
|
grid1.setColumnStretch(1, 1)
|
||||||
|
d_frame.setLayout(grid1)
|
||||||
|
|
||||||
# Type of object to be aligned to = aligner
|
# Type of object to be aligned to = aligner
|
||||||
self.type_aligner_obj_radio = RadioSet([
|
self.type_aligner_obj_radio = RadioSet([
|
||||||
@@ -469,7 +495,7 @@ class AlignUI:
|
|||||||
{"label": _("Excellon"), "value": "exc"},
|
{"label": _("Excellon"), "value": "exc"},
|
||||||
])
|
])
|
||||||
|
|
||||||
grid0.addWidget(self.type_aligner_obj_radio, 8, 0, 1, 2)
|
grid1.addWidget(self.type_aligner_obj_radio, 0, 0, 1, 2)
|
||||||
|
|
||||||
# Object to be aligned to = aligner
|
# Object to be aligned to = aligner
|
||||||
self.aligner_object_combo = FCComboBox()
|
self.aligner_object_combo = FCComboBox()
|
||||||
@@ -481,14 +507,25 @@ class AlignUI:
|
|||||||
_("Object to be aligned to. Aligner.")
|
_("Object to be aligned to. Aligner.")
|
||||||
)
|
)
|
||||||
|
|
||||||
grid0.addWidget(self.aligner_object_combo, 9, 0, 1, 2)
|
grid1.addWidget(self.aligner_object_combo, 2, 0, 1, 2)
|
||||||
|
|
||||||
separator_line = QtWidgets.QFrame()
|
# #############################################################################################################
|
||||||
separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
|
# Parameters Frame
|
||||||
separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
|
# #############################################################################################################
|
||||||
grid0.addWidget(separator_line, 10, 0, 1, 2)
|
self.param_label = FCLabel('<span style="color:blue;"><b>%s</b></span>' % _('Parameters'))
|
||||||
|
self.tools_box.addWidget(self.param_label)
|
||||||
|
|
||||||
grid0.addWidget(FCLabel(''), 11, 0, 1, 2)
|
par_frame = FCFrame()
|
||||||
|
par_frame.setFrameStyle(QtWidgets.QFrame.Shape.StyledPanel | QtWidgets.QFrame.Shadow.Plain)
|
||||||
|
# par_frame.setContentsMargins(0, 0, 0, 0)
|
||||||
|
par_frame.setStyleSheet(".FCFrame{border: 1px solid gray; border-radius: 5px;}")
|
||||||
|
self.tools_box.addWidget(par_frame)
|
||||||
|
|
||||||
|
# Grid Layout
|
||||||
|
grid2 = FCGridLayout(v_spacing=5, h_spacing=3)
|
||||||
|
grid2.setColumnStretch(0, 0)
|
||||||
|
grid2.setColumnStretch(1, 1)
|
||||||
|
par_frame.setLayout(grid2)
|
||||||
|
|
||||||
# Alignment Type
|
# Alignment Type
|
||||||
self.a_type_lbl = FCLabel('<b>%s:</b>' % _("Alignment Type"))
|
self.a_type_lbl = FCLabel('<b>%s:</b>' % _("Alignment Type"))
|
||||||
@@ -503,13 +540,8 @@ class AlignUI:
|
|||||||
{'label': _('Dual Point'), 'value': 'dp'}
|
{'label': _('Dual Point'), 'value': 'dp'}
|
||||||
])
|
])
|
||||||
|
|
||||||
grid0.addWidget(self.a_type_lbl, 12, 0, 1, 2)
|
grid2.addWidget(self.a_type_lbl, 0, 0, 1, 2)
|
||||||
grid0.addWidget(self.a_type_radio, 13, 0, 1, 2)
|
grid2.addWidget(self.a_type_radio, 2, 0, 1, 2)
|
||||||
|
|
||||||
separator_line = QtWidgets.QFrame()
|
|
||||||
separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
|
|
||||||
separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
|
|
||||||
grid0.addWidget(separator_line, 14, 0, 1, 2)
|
|
||||||
|
|
||||||
# Buttons
|
# Buttons
|
||||||
self.align_object_button = FCButton(_("Align Object"))
|
self.align_object_button = FCButton(_("Align Object"))
|
||||||
@@ -525,9 +557,9 @@ class AlignUI:
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
""")
|
""")
|
||||||
self.layout.addWidget(self.align_object_button)
|
self.tools_box.addWidget(self.align_object_button)
|
||||||
|
|
||||||
self.layout.addStretch()
|
self.layout.addStretch(1)
|
||||||
|
|
||||||
# ## Reset Tool
|
# ## Reset Tool
|
||||||
self.reset_button = FCButton(_("Reset Tool"))
|
self.reset_button = FCButton(_("Reset Tool"))
|
||||||
|
|||||||
Reference in New Issue
Block a user