diff --git a/CHANGELOG.md b/CHANGELOG.md
index aa7048a6..9c6e6f44 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ CHANGELOG for FlatCAM beta
- remade the Excellon Object Properties UI
- remade the Geometry Object Properties UI
+- remade the CNC Job Object Properties UI
5.09.2021
diff --git a/appGUI/ObjectUI.py b/appGUI/ObjectUI.py
index bbc79456..81be587c 100644
--- a/appGUI/ObjectUI.py
+++ b/appGUI/ObjectUI.py
@@ -1279,14 +1279,25 @@ class CNCObjectUI(ObjectUI):
# for i in range(0, self.common_grid.count()):
# self.common_grid.itemAt(i).widget().hide()
+ self.general_label = FCLabel('%s' % _("General Information"))
+ self.general_label.setToolTip(_("General data about the object."))
+ self.custom_box.addWidget(self.general_label)
- f_lay = FCGridLayout(v_spacing=5, h_spacing=3)
- f_lay.setColumnStretch(0, 0)
- f_lay.setColumnStretch(1, 1)
- self.custom_box.addLayout(f_lay)
+ # #############################################################################################################
+ # General Frame
+ # #############################################################################################################
+ gen_frame = FCFrame()
+ self.custom_box.addWidget(gen_frame)
+
+ # Plot options
+ 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)
# Plot Options
- self.cncplot_method_label = FCLabel("%s:" % _("Plot Options"))
+ self.cncplot_method_label = FCLabel("%s: " % _("Plot Options"))
self.cncplot_method_label.setToolTip(
_(
"This selects the kind of geometries on the canvas to plot.\n"
@@ -1302,14 +1313,14 @@ class CNCObjectUI(ObjectUI):
{"label": _("Cut"), "value": "cut"}
], stretch=False)
- f_lay.addWidget(self.cncplot_method_label, 0, 0)
- f_lay.addWidget(self.cncplot_method_combo, 0, 1, 1, 2)
+ grid0.addWidget(self.cncplot_method_label, 0, 0)
+ grid0.addWidget(self.cncplot_method_combo, 0, 1, 1, 2)
self.name_hlay = QtWidgets.QHBoxLayout()
- f_lay.addLayout(self.name_hlay, 2, 0, 1, 3)
+ grid0.addLayout(self.name_hlay, 2, 0, 1, 3)
# ## Object name
- name_label = FCLabel("%s:" % _("Name"))
+ name_label = FCLabel("%s: " % _("Name"))
self.name_entry = FCEntry()
self.name_entry.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
@@ -1320,16 +1331,14 @@ class CNCObjectUI(ObjectUI):
self.editor_button = FCButton(_('GCode Editor'))
self.editor_button.setIcon(QtGui.QIcon(self.app.resource_location + '/edit_file32.png'))
- self.editor_button.setToolTip(
- _("Start the Object Editor")
- )
+ self.editor_button.setToolTip(_("Start the Object Editor"))
self.editor_button.setStyleSheet("""
QPushButton
{
font-weight: bold;
}
""")
- f_lay.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)
@@ -1341,12 +1350,13 @@ class CNCObjectUI(ObjectUI):
font-weight: bold;
}
""")
- f_lay.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)
- f_lay.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)
@@ -1357,6 +1367,20 @@ class CNCObjectUI(ObjectUI):
self.info_box.addWidget(self.treeWidget)
self.info_box.setStretch(0, 0)
+ # #############################################################################################################
+ # COMMON PARAMETERS Frame
+ # #############################################################################################################
+ self.param_label = FCLabel('%s' % _("Parameters"))
+ self.custom_box.addWidget(self.param_label)
+
+ self.gp_frame = FCFrame()
+ self.custom_box.addWidget(self.gp_frame)
+
+ grid_par = FCGridLayout(v_spacing=5, h_spacing=3)
+ grid_par.setColumnStretch(0, 0)
+ grid_par.setColumnStretch(1, 1)
+ self.gp_frame.setLayout(grid_par)
+
# Annotation
self.annotation_cb = FCCheckBox(_("Display Annotation"))
self.annotation_cb.setToolTip(
@@ -1364,12 +1388,12 @@ class CNCObjectUI(ObjectUI):
"When checked it will display numbers in order for each end\n"
"of a travel line.")
)
- f_lay.addWidget(self.annotation_cb, 8, 0, 1, 3)
+ grid_par.addWidget(self.annotation_cb, 0, 0, 1, 3)
- separator_line = QtWidgets.QFrame()
- separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
- separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
- f_lay.addWidget(separator_line, 10, 0, 1, 3)
+ self.separator_line = QtWidgets.QFrame()
+ self.separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+ self.separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
+ grid_par.addWidget(self.separator_line, 2, 0, 1, 3)
# Travelled Distance
self.t_distance_label = FCLabel("%s:" % _("Travelled distance"))
@@ -1380,9 +1404,9 @@ class CNCObjectUI(ObjectUI):
self.t_distance_entry = FCEntry()
self.units_label = FCLabel()
- f_lay.addWidget(self.t_distance_label, 12, 0)
- f_lay.addWidget(self.t_distance_entry, 12, 1)
- f_lay.addWidget(self.units_label, 12, 2)
+ grid_par.addWidget(self.t_distance_label, 4, 0)
+ grid_par.addWidget(self.t_distance_entry, 4, 1)
+ grid_par.addWidget(self.units_label, 4, 2)
# Estimated Time
self.t_time_label = FCLabel("%s:" % _("Estimated time"))
@@ -1393,9 +1417,9 @@ class CNCObjectUI(ObjectUI):
self.t_time_entry = FCEntry()
self.units_time_label = FCLabel()
- f_lay.addWidget(self.t_time_label, 14, 0)
- f_lay.addWidget(self.t_time_entry, 14, 1)
- f_lay.addWidget(self.units_time_label, 14, 2)
+ grid_par.addWidget(self.t_time_label, 8, 0)
+ grid_par.addWidget(self.t_time_entry, 8, 1)
+ grid_par.addWidget(self.units_time_label, 8, 2)
self.t_distance_label.hide()
self.t_distance_entry.setVisible(False)
@@ -1405,10 +1429,34 @@ class CNCObjectUI(ObjectUI):
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
- f_lay.addWidget(separator_line, 16, 0, 1, 3)
+ grid_par.addWidget(separator_line, 10, 0, 1, 3)
+
+ # CNC Code snippets
+ self.snippets_cb = FCCheckBox(_("Use CNC Code Snippets"))
+ self.snippets_cb.setToolTip(
+ _("When selected, it will include CNC Code snippets (append and prepend)\n"
+ "defined in the Preferences.")
+ )
+ grid_par.addWidget(self.snippets_cb, 12, 0, 1, 3)
+
+ # #############################################################################################################
+ # CNC 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.tt_frame = FCFrame()
+ self.custom_box.addWidget(self.tt_frame)
+
+ # Grid Layout
+ grid1 = FCGridLayout(v_spacing=5, h_spacing=3)
+ grid1.setColumnStretch(0, 0)
+ grid1.setColumnStretch(1, 1)
+ self.tt_frame.setLayout(grid1)
hlay = QtWidgets.QHBoxLayout()
- self.custom_box.addLayout(hlay)
+ grid1.addLayout(hlay, 0, 0, 1, 2)
# CNC Tools Table for plot
self.cnc_tools_table_label = FCLabel('%s' % _('CNC Tools Table'))
@@ -1438,7 +1486,7 @@ class CNCObjectUI(ObjectUI):
hlay.addWidget(self.plot_cb)
self.cnc_tools_table = FCTable()
- self.custom_box.addWidget(self.cnc_tools_table)
+ grid1.addWidget(self.cnc_tools_table, 2, 0, 1, 2)
self.cnc_tools_table.setColumnCount(7)
self.cnc_tools_table.setColumnWidth(0, 20)
@@ -1448,7 +1496,7 @@ class CNCObjectUI(ObjectUI):
# self.cnc_tools_table.horizontalHeader().setStyleSheet(stylesheet)
self.exc_cnc_tools_table = FCTable()
- self.custom_box.addWidget(self.exc_cnc_tools_table)
+ grid1.addWidget(self.exc_cnc_tools_table, 4, 0, 1, 2)
self.exc_cnc_tools_table.setColumnCount(7)
self.exc_cnc_tools_table.setColumnWidth(0, 20)
@@ -1460,33 +1508,19 @@ class CNCObjectUI(ObjectUI):
self.tooldia_entry.set_range(0, 10000.0000)
self.tooldia_entry.set_precision(self.decimals)
self.tooldia_entry.setSingleStep(0.1)
- self.custom_box.addWidget(self.tooldia_entry)
+ grid1.addWidget(self.tooldia_entry, 6, 0, 1, 2)
# Update plot button
self.updateplot_button = FCButton(_('Update Plot'))
self.updateplot_button.setToolTip(
_("Update the plot.")
)
- self.custom_box.addWidget(self.updateplot_button)
-
- # CNC Code snippets
- self.snippets_cb = FCCheckBox(_("Use CNC Code Snippets"))
- self.snippets_cb.setToolTip(
- _("When selected, it will include CNC Code snippets (append and prepend)\n"
- "defined in the Preferences.")
- )
- self.custom_box.addWidget(self.snippets_cb)
-
- separator_line = QtWidgets.QFrame()
- separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
- separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
- self.custom_box.addWidget(separator_line)
+ grid1.addWidget(self.updateplot_button, 8, 0, 1, 2)
# #############################################################################################################
# ###################### PLUGINS ##########################################################################
# #############################################################################################################
-
- self.tool_lbl = FCLabel('%s' % _("Plugins"))
+ self.tool_lbl = FCLabel('%s' % _("Plugins"))
self.custom_box.addWidget(self.tool_lbl)
# Levelling Tool - will process the generated GCode using a Height Map generating levelled GCode
diff --git a/appObjects/FlatCAMCNCJob.py b/appObjects/FlatCAMCNCJob.py
index 2f551702..4c1ef5fc 100644
--- a/appObjects/FlatCAMCNCJob.py
+++ b/appObjects/FlatCAMCNCJob.py
@@ -564,6 +564,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
}
""")
+ self.ui.separator_line.hide()
self.ui.annotation_cb.hide()
else:
self.ui.level.setText('%s' % _('Advanced'))
@@ -574,6 +575,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
}
""")
+ self.ui.separator_line.show()
self.ui.annotation_cb.show()
def ui_connect(self):