From b20a6a1a857fc91bd7044193b70cb19b8858422f Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Wed, 6 Mar 2019 15:22:35 +0200 Subject: [PATCH] - modified the way the FlatCAM Tools are run from toolbar as opposed of running them from other sources - some Gerber UI changes --- FlatCAMApp.py | 18 +++++++++--------- FlatCAMObj.py | 3 ++- ObjectUI.py | 8 +++++++- README.md | 6 ++++++ flatcamTools/ToolCalculators.py | 21 +++++++++++---------- flatcamTools/ToolCutOut.py | 22 ++++++++++++---------- flatcamTools/ToolDblSided.py | 21 +++++++++++---------- flatcamTools/ToolFilm.py | 21 +++++++++++---------- flatcamTools/ToolImage.py | 21 +++++++++++---------- flatcamTools/ToolNonCopperClear.py | 22 +++++++++++----------- flatcamTools/ToolPaint.py | 21 +++++++++++---------- flatcamTools/ToolPanelize.py | 21 +++++++++++---------- flatcamTools/ToolProperties.py | 21 +++++++++++---------- flatcamTools/ToolSolderPaste.py | 21 +++++++++++---------- flatcamTools/ToolTransform.py | 21 +++++++++++---------- 15 files changed, 146 insertions(+), 122 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index c96d5ebb..ee7f6881 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -1784,17 +1784,17 @@ class App(QtCore.QObject): self.ui.shell_btn.triggered.connect(self.on_toggle_shell) # Tools Toolbar Signals - self.ui.dblsided_btn.triggered.connect(lambda: self.dblsidedtool.run()) - self.ui.cutout_btn.triggered.connect(lambda: self.cutout_tool.run()) - self.ui.ncc_btn.triggered.connect(lambda: self.ncclear_tool.run()) - self.ui.paint_btn.triggered.connect(lambda: self.paint_tool.run()) + self.ui.dblsided_btn.triggered.connect(lambda: self.dblsidedtool.run(toggle=True)) + self.ui.cutout_btn.triggered.connect(lambda: self.cutout_tool.run(toggle=True)) + self.ui.ncc_btn.triggered.connect(lambda: self.ncclear_tool.run(toggle=True)) + self.ui.paint_btn.triggered.connect(lambda: self.paint_tool.run(toggle=True)) - self.ui.panelize_btn.triggered.connect(lambda: self.panelize_tool.run()) - self.ui.film_btn.triggered.connect(lambda: self.film_tool.run()) - self.ui.solder_btn.triggered.connect(lambda: self.paste_tool.run()) + self.ui.panelize_btn.triggered.connect(lambda: self.panelize_tool.run(toggle=True)) + self.ui.film_btn.triggered.connect(lambda: self.film_tool.run(toggle=True)) + self.ui.solder_btn.triggered.connect(lambda: self.paste_tool.run(toggle=True)) - self.ui.calculators_btn.triggered.connect(lambda: self.calculator_tool.run()) - self.ui.transform_btn.triggered.connect(lambda: self.transform_tool.run()) + self.ui.calculators_btn.triggered.connect(lambda: self.calculator_tool.run(toggle=True)) + self.ui.transform_btn.triggered.connect(lambda: self.transform_tool.run(toggle=True)) def object2editor(self): """ diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 751bd0e9..b97204b5 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -533,9 +533,10 @@ class FlatCAMGerber(FlatCAMObj, Gerber): self.ui.generate_ext_iso_button.hide() self.ui.generate_int_iso_button.hide() self.ui.follow_cb.hide() - + self.ui.padding_area_label.show() else: self.ui.level.setText('Advanced') + self.ui.padding_area_label.hide() # set initial state of the aperture table and associated widgets self.on_aperture_table_visibility_change() diff --git a/ObjectUI.py b/ObjectUI.py index 1c8f7835..50e98441 100644 --- a/ObjectUI.py +++ b/ObjectUI.py @@ -388,6 +388,10 @@ class GerberObjectUI(ObjectUI): hlay_1 = QtWidgets.QHBoxLayout() self.custom_box.addLayout(hlay_1) + self.padding_area_label = QtWidgets.QLabel('') + self.padding_area_label.setFixedWidth(90) + hlay_1.addWidget(self.padding_area_label) + self.generate_iso_button = QtWidgets.QPushButton('FULL Geo') self.generate_iso_button.setToolTip( "Create the Geometry Object\n" @@ -395,7 +399,7 @@ class GerberObjectUI(ObjectUI): "the interiors and exteriors geometry." ) self.generate_iso_button.setFixedWidth(90) - hlay_1.addWidget(self.generate_iso_button) + hlay_1.addWidget(self.generate_iso_button, alignment=Qt.AlignLeft) # hlay_1.addStretch() @@ -422,6 +426,8 @@ class GerberObjectUI(ObjectUI): self.ois_iso = OptionalInputSection(self.follow_cb, [self.generate_int_iso_button, self.generate_ext_iso_button], logic=False) + + grid2 = QtWidgets.QGridLayout() self.custom_box.addLayout(grid2) diff --git a/README.md b/README.md index cc738a84..5b060f09 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,12 @@ CAD program, and create G-Code for Isolation routing. ================================================= +6.03.2019 + +- modified the way the FlatCAM Tools are run from toolbar as opposed of running them from other sources +- some Gerber UI changes + + 5.03.2019 - modified the grbl-laser postprocessor lift_code() diff --git a/flatcamTools/ToolCalculators.py b/flatcamTools/ToolCalculators.py index ee64019e..f38bfa22 100644 --- a/flatcamTools/ToolCalculators.py +++ b/flatcamTools/ToolCalculators.py @@ -222,18 +222,19 @@ class ToolCalculator(FlatCAMTool): self.calculate_plate_button.clicked.connect(self.on_calculate_eplate) - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolCalculators()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.set_tool_ui() diff --git a/flatcamTools/ToolCutOut.py b/flatcamTools/ToolCutOut.py index 69cd7311..1018e9f2 100644 --- a/flatcamTools/ToolCutOut.py +++ b/flatcamTools/ToolCutOut.py @@ -263,18 +263,20 @@ class CutOut(FlatCAMTool): self.obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex())) self.obj_combo.setCurrentIndex(0) - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolCutOut()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass + FlatCAMTool.run(self) self.set_tool_ui() diff --git a/flatcamTools/ToolDblSided.py b/flatcamTools/ToolDblSided.py index 68410df6..35f7effa 100644 --- a/flatcamTools/ToolDblSided.py +++ b/flatcamTools/ToolDblSided.py @@ -261,18 +261,19 @@ class DblSidedTool(FlatCAMTool): def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, shortcut='ALT+D', **kwargs) - def run(self): + def run(self, toggle=False): self.app.report_usage("Tool2Sided()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.set_tool_ui() diff --git a/flatcamTools/ToolFilm.py b/flatcamTools/ToolFilm.py index 760c45a8..ff49e298 100644 --- a/flatcamTools/ToolFilm.py +++ b/flatcamTools/ToolFilm.py @@ -163,18 +163,19 @@ class Film(FlatCAMTool): self.tf_box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex())) self.tf_box_combo.setCurrentIndex(0) - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolFilm()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.set_tool_ui() diff --git a/flatcamTools/ToolImage.py b/flatcamTools/ToolImage.py index 50c53e6e..bda1afcd 100644 --- a/flatcamTools/ToolImage.py +++ b/flatcamTools/ToolImage.py @@ -131,18 +131,19 @@ class ToolImage(FlatCAMTool): ## Signals self.import_button.clicked.connect(self.on_file_importimage) - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolImage()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.set_tool_ui() diff --git a/flatcamTools/ToolNonCopperClear.py b/flatcamTools/ToolNonCopperClear.py index 6ddbd465..62b05eb4 100644 --- a/flatcamTools/ToolNonCopperClear.py +++ b/flatcamTools/ToolNonCopperClear.py @@ -243,19 +243,19 @@ class NonCopperClear(FlatCAMTool, Gerber): def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, shortcut='ALT+N', **kwargs) - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolNonCopperClear()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass - + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.set_tool_ui() diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py index 04427edf..bcd9e044 100644 --- a/flatcamTools/ToolPaint.py +++ b/flatcamTools/ToolPaint.py @@ -301,18 +301,19 @@ class ToolPaint(FlatCAMTool, Gerber): def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, shortcut='ALT+P', **kwargs) - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolPaint()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.set_tool_ui() diff --git a/flatcamTools/ToolPanelize.py b/flatcamTools/ToolPanelize.py index 9daa3502..3549e280 100644 --- a/flatcamTools/ToolPanelize.py +++ b/flatcamTools/ToolPanelize.py @@ -197,18 +197,19 @@ class Panelize(FlatCAMTool): # flag to signal the constrain was activated self.constrain_flag = False - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolPanelize()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.set_tool_ui() diff --git a/flatcamTools/ToolProperties.py b/flatcamTools/ToolProperties.py index 37f31ec4..5b689c9f 100644 --- a/flatcamTools/ToolProperties.py +++ b/flatcamTools/ToolProperties.py @@ -48,22 +48,23 @@ class Properties(FlatCAMTool): self.vlay.addWidget(self.treeWidget) self.vlay.setStretch(0,0) - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolProperties()") if self.app.tool_tab_locked is True: return self.set_tool_ui() - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.properties() diff --git a/flatcamTools/ToolSolderPaste.py b/flatcamTools/ToolSolderPaste.py index 17581a2a..7e27a978 100644 --- a/flatcamTools/ToolSolderPaste.py +++ b/flatcamTools/ToolSolderPaste.py @@ -411,18 +411,19 @@ class SolderPaste(FlatCAMTool): self.app.object_status_changed.connect(self.update_comboboxes) - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolSolderPaste()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.set_tool_ui() diff --git a/flatcamTools/ToolTransform.py b/flatcamTools/ToolTransform.py index 0f6e71da..6e75563e 100644 --- a/flatcamTools/ToolTransform.py +++ b/flatcamTools/ToolTransform.py @@ -362,18 +362,19 @@ class ToolTransform(FlatCAMTool): self.offx_entry.returnPressed.connect(self.on_offx) self.offy_entry.returnPressed.connect(self.on_offy) - def run(self): + def run(self, toggle=False): self.app.report_usage("ToolTransform()") - # if the splitter is hidden, display it, else hide it but only if the current widget is the same - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - else: - try: - if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass + if toggle: + # if the splitter is hidden, display it, else hide it but only if the current widget is the same + if self.app.ui.splitter.sizes()[0] == 0: + self.app.ui.splitter.setSizes([1, 1]) + else: + try: + if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName: + self.app.ui.splitter.setSizes([0, 1]) + except AttributeError: + pass FlatCAMTool.run(self) self.set_tool_ui()