diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9111f358..aa7048a6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ CHANGELOG for FlatCAM beta
6.09.2021
- remade the Excellon Object Properties UI
+- remade the Geometry Object Properties UI
5.09.2021
diff --git a/appGUI/ObjectUI.py b/appGUI/ObjectUI.py
index 7ff1251b..bbc79456 100644
--- a/appGUI/ObjectUI.py
+++ b/appGUI/ObjectUI.py
@@ -939,17 +939,27 @@ class GeometryObjectUI(ObjectUI):
icon_file=self.resource_loc + '/geometry32.png', parent=parent, app=self.app
)
+ self.general_label = FCLabel('%s' % _("General Information"))
+ self.general_label.setToolTip(_("General data about the object."))
+ self.custom_box.addWidget(self.general_label)
+
+ # #############################################################################################################
+ # General Frame
+ # #############################################################################################################
+ gen_frame = FCFrame()
+ self.custom_box.addWidget(gen_frame)
+
# Plot options
- grid_header = FCGridLayout(v_spacing=5, h_spacing=3)
- grid_header.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeft | QtCore.Qt.AlignmentFlag.AlignVCenter)
- self.custom_box.addLayout(grid_header)
- grid_header.setColumnStretch(0, 0)
- grid_header.setColumnStretch(1, 1)
+ grid0 = FCGridLayout(v_spacing=5, h_spacing=3)
+ grid0.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeft | QtCore.Qt.AlignmentFlag.AlignVCenter)
+ grid0.setColumnStretch(0, 0)
+ grid0.setColumnStretch(1, 1)
+ gen_frame.setLayout(grid0)
self.plot_options_label = FCLabel("%s:" % _("Plot Options"))
self.plot_options_label.setMinimumWidth(90)
- grid_header.addWidget(self.plot_options_label, 0, 0)
+ grid0.addWidget(self.plot_options_label, 0, 0)
# Multicolored CB
self.multicolored_cb = FCCheckBox(label=_('Multi-Color'))
@@ -957,11 +967,11 @@ class GeometryObjectUI(ObjectUI):
_("Draw polygons in different colors.")
)
self.multicolored_cb.setMinimumWidth(55)
- grid_header.addWidget(self.multicolored_cb, 0, 2)
+ grid0.addWidget(self.multicolored_cb, 0, 2)
# ## Object name
self.name_hlay = QtWidgets.QHBoxLayout()
- grid_header.addLayout(self.name_hlay, 2, 0, 1, 3)
+ grid0.addLayout(self.name_hlay, 2, 0, 1, 3)
name_label = FCLabel("%s:" % _("Name"))
self.name_entry = FCEntry()
@@ -982,7 +992,7 @@ class GeometryObjectUI(ObjectUI):
font-weight: bold;
}
""")
- grid_header.addWidget(self.editor_button, 4, 0, 1, 3)
+ self.custom_box.addWidget(self.editor_button)
# INFO CB
self.info_button = FCButton('%s' % _("INFO"), checkable=True)
@@ -994,12 +1004,13 @@ class GeometryObjectUI(ObjectUI):
font-weight: bold;
}
""")
- grid_header.addWidget(self.info_button, 6, 0, 1, 3)
+ self.custom_box.addWidget(self.info_button)
# INFO Frame
self.info_frame = QtWidgets.QFrame()
self.info_frame.setContentsMargins(0, 0, 0, 0)
- grid_header.addWidget(self.info_frame, 7, 0, 1, 3)
+ self.custom_box.addWidget(self.info_frame)
+
self.info_box = QtWidgets.QVBoxLayout()
self.info_box.setContentsMargins(0, 0, 0, 0)
self.info_frame.setLayout(self.info_box)
@@ -1010,30 +1021,21 @@ class GeometryObjectUI(ObjectUI):
self.info_box.addWidget(self.treeWidget)
self.info_box.setStretch(0, 0)
- # add a frame and inside add a vertical box layout. Inside this vbox layout I add all the Tools widgets
- # this way I can hide/show the frame
- self.geo_tools_frame = QtWidgets.QFrame()
- self.geo_tools_frame.setContentsMargins(0, 0, 0, 0)
- self.custom_box.addWidget(self.geo_tools_frame)
+ # #############################################################################################################
+ # Gerber Tool Table Frame
+ # #############################################################################################################
+ self.tools_table_label = FCLabel('%s' % _('Tools Table'))
+ self.tools_table_label.setToolTip(_("Tools/apertures in the loaded object."))
+ self.custom_box.addWidget(self.tools_table_label)
- self.geo_tools_box = QtWidgets.QVBoxLayout()
- self.geo_tools_box.setContentsMargins(0, 0, 0, 0)
- self.geo_tools_frame.setLayout(self.geo_tools_box)
+ self.tt_frame = FCFrame()
+ self.custom_box.addWidget(self.tt_frame)
- # ************************************************************************
- # ************** TABLE BOX FRAME *****************************************
- # ************************************************************************
- self.geo_table_frame = QtWidgets.QFrame()
- self.geo_table_frame.setContentsMargins(0, 0, 0, 0)
- self.geo_tools_box.addWidget(self.geo_table_frame)
- self.geo_table_box = QtWidgets.QVBoxLayout()
- self.geo_table_box.setContentsMargins(0, 0, 0, 0)
- self.geo_table_frame.setLayout(self.geo_table_box)
-
- grid0 = FCGridLayout(v_spacing=5, h_spacing=3)
- self.geo_table_box.addLayout(grid0)
- grid0.setColumnStretch(0, 0)
- grid0.setColumnStretch(1, 1)
+ # Grid Layout
+ grid1 = FCGridLayout(v_spacing=5, h_spacing=3)
+ grid1.setColumnStretch(0, 0)
+ grid1.setColumnStretch(1, 1)
+ self.tt_frame.setLayout(grid1)
# ### Tools ####
self.tools_table_label = FCLabel('%s:' % _('Tools Table'))
@@ -1051,7 +1053,7 @@ class GeometryObjectUI(ObjectUI):
"grayed out and Cut Z is automatically calculated from the newly \n"
"showed UI form entries named V-Tip Dia and V-Tip Angle.")
)
- grid0.addWidget(self.tools_table_label, 0, 0)
+ grid1.addWidget(self.tools_table_label, 0, 0)
# Plot CB
# self.plot_cb = QtWidgets.QCheckBox('Plot')
@@ -1060,10 +1062,10 @@ class GeometryObjectUI(ObjectUI):
_("Plot (show) this object.")
)
self.plot_cb.setLayoutDirection(QtCore.Qt.LayoutDirection.RightToLeft)
- grid0.addWidget(self.plot_cb, 0, 1)
+ grid1.addWidget(self.plot_cb, 0, 1)
self.geo_tools_table = FCTable(drag_drop=True)
- grid0.addWidget(self.geo_tools_table, 1, 0, 1, 2)
+ grid1.addWidget(self.geo_tools_table, 1, 0, 1, 2)
self.geo_tools_table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents)
self.geo_tools_table.setColumnCount(7)
@@ -1101,19 +1103,11 @@ class GeometryObjectUI(ObjectUI):
_("Plot column. It is visible only for MultiGeo Geometry objects.\n"
"Enable plot for the selected tool geometry."))
- self.grid4 = FCGridLayout(v_spacing=5, h_spacing=3)
- self.grid4.setColumnStretch(0, 0)
- self.grid4.setColumnStretch(1, 1)
- self.geo_tools_box.addLayout(self.grid4)
-
# #############################################################################################################
- # ############################################ Tools ##########################################################
+ # PLUGINS shortcuts
# #############################################################################################################
- self.tools_label = FCLabel('%s' % _('Plugins'))
- self.tools_label.setToolTip(
- _("Launch Paint Tool in Tools Tab.")
- )
- self.grid4.addWidget(self.tools_label, 32, 0, 1, 2)
+ self.tools_label = FCLabel('%s' % _('Plugins'))
+ self.custom_box.addWidget(self.tools_label)
# Milling Tool - will create GCode for slot holes
self.milling_button = FCButton(_('Milling'))
@@ -1127,7 +1121,7 @@ class GeometryObjectUI(ObjectUI):
font-weight: bold;
}
""")
- self.grid4.addWidget(self.milling_button, 34, 0, 1, 2)
+ self.custom_box.addWidget(self.milling_button)
# Paint Button
self.paint_tool_button = FCButton(_('Paint'))
@@ -1137,7 +1131,7 @@ class GeometryObjectUI(ObjectUI):
"whole area of a polygon.")
)
- self.grid4.addWidget(self.paint_tool_button, 36, 0, 1, 2)
+ self.custom_box.addWidget(self.paint_tool_button)
# NCC Tool
self.generate_ncc_button = FCButton(_('NCC'))
@@ -1152,12 +1146,12 @@ class GeometryObjectUI(ObjectUI):
# font-weight: bold;
# }
# """)
- self.grid4.addWidget(self.generate_ncc_button, 38, 0, 1, 2)
+ self.custom_box.addWidget(self.generate_ncc_button)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
- self.grid4.addWidget(separator_line, 40, 0, 1, 2)
+ self.custom_box.addWidget(separator_line)
# UTILITIES BUTTON
self.util_button = FCButton('%s' % _("Utilities").upper(), checkable=True)
@@ -1169,29 +1163,35 @@ class GeometryObjectUI(ObjectUI):
font-weight: bold;
}
""")
- self.grid4.addWidget(self.util_button, 42, 0, 1, 2)
+ self.custom_box.addWidget(self.util_button)
# UTILITIES Frame
self.util_frame = QtWidgets.QFrame()
self.util_frame.setContentsMargins(0, 0, 0, 0)
- self.grid4.addWidget(self.util_frame, 44, 0, 1, 2)
+ self.custom_box.addWidget(self.util_frame)
self.util_box = QtWidgets.QVBoxLayout()
self.util_box.setContentsMargins(0, 0, 0, 0)
self.util_frame.setLayout(self.util_box)
self.util_frame.hide()
- util_grid = FCGridLayout(v_spacing=5, h_spacing=3)
- util_grid.setColumnStretch(0, 0)
- util_grid.setColumnStretch(1, 1)
- self.util_box.addLayout(util_grid)
-
+ # #############################################################################################################
+ # Simplification Frame
+ # #############################################################################################################
# Simplification Title
simplif_lbl = FCLabel('%s:' % _("Simplification"))
simplif_lbl.setToolTip(
_("Simplify a geometry by reducing its vertex points number.")
)
- util_grid.addWidget(simplif_lbl, 0, 0, 1, 3)
+ self.util_box.addWidget(simplif_lbl)
+
+ sim_frame = FCFrame()
+ self.util_box.addWidget(sim_frame)
+
+ grid_sim = FCGridLayout(v_spacing=5, h_spacing=3)
+ grid_sim.setColumnStretch(0, 0)
+ grid_sim.setColumnStretch(1, 1)
+ sim_frame.setLayout(grid_sim)
# Vertex Points
vertexes_lbl = FCLabel('%s:' % _("Points"))
@@ -1200,8 +1200,8 @@ class GeometryObjectUI(ObjectUI):
)
self.vertex_points_entry = FCEntry()
- util_grid.addWidget(vertexes_lbl, 2, 0)
- util_grid.addWidget(self.vertex_points_entry, 2, 1)
+ grid_sim.addWidget(vertexes_lbl, 2, 0)
+ grid_sim.addWidget(self.vertex_points_entry, 2, 1)
# Calculate vertexes button
self.vertex_points_btn = FCButton(_("Calculate"))
@@ -1216,7 +1216,7 @@ class GeometryObjectUI(ObjectUI):
# }
# """)
- util_grid.addWidget(self.vertex_points_btn, 2, 2)
+ grid_sim.addWidget(self.vertex_points_btn, 2, 2)
# Simplification Tolerance
simplification_tol_lbl = FCLabel('%s:' % _("Tolerance"))
@@ -1229,8 +1229,8 @@ class GeometryObjectUI(ObjectUI):
self.geo_tol_entry.setSingleStep(10 ** -self.decimals)
self.geo_tol_entry.set_range(0.0000, 10000.0000)
- util_grid.addWidget(simplification_tol_lbl, 4, 0)
- util_grid.addWidget(self.geo_tol_entry, 4, 1)
+ grid_sim.addWidget(simplification_tol_lbl, 4, 0)
+ grid_sim.addWidget(self.geo_tol_entry, 4, 1)
# Simplification button
self.simplification_btn = FCButton(_("Simplify"))
@@ -1245,7 +1245,7 @@ class GeometryObjectUI(ObjectUI):
# }
# """)
- util_grid.addWidget(self.simplification_btn, 4, 2)
+ grid_sim.addWidget(self.simplification_btn, 4, 2)
class CNCObjectUI(ObjectUI):
@@ -1273,13 +1273,12 @@ class CNCObjectUI(ObjectUI):
else:
self.resource_loc = 'assets/resources'
- ObjectUI.__init__(
- self, title=_('CNC Job Object'),
- icon_file=self.resource_loc + '/cnc32.png', parent=parent,
- app=self.app)
+ ObjectUI.__init__(self, title=_('CNC Job Object'),
+ icon_file=self.resource_loc + '/cnc32.png', parent=parent,
+ app=self.app, common=False)
- for i in range(0, self.common_grid.count()):
- self.common_grid.itemAt(i).widget().hide()
+ # for i in range(0, self.common_grid.count()):
+ # self.common_grid.itemAt(i).widget().hide()
f_lay = FCGridLayout(v_spacing=5, h_spacing=3)
f_lay.setColumnStretch(0, 0)