From 392d93aa0548c1f2f2b5fe6f607d230e9ac3736a Mon Sep 17 00:00:00 2001 From: Leandro Date: Mon, 27 Apr 2020 15:22:12 -0300 Subject: [PATCH 1/8] Fix script path --- Makefile | 1 + assets/linux/flatcam-beta | 11 +++-------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 2a6037f1..19ed9735 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ install: ifeq ($(USER_ID), 0) @ echo "Installing it system-wide" cp -rf $(LOCAL_PATH) $(INSTALL_PATH) + @ sed -i "s|python_script_path=.*|python_script_path=$(INSTALL_PATH)|g" $(INSTALL_PATH)/assets/linux/flatcam-beta ln -sf $(INSTALL_PATH)/assets/linux/flatcam-beta /usr/local/bin cp -f $(ASSEST_PATH)/flatcam-beta.desktop $(APPS_PATH) @ sed -i "s|Exec=.*|Exec=$(INSTALL_PATH)/$(ASSEST_PATH)/flatcam-beta|g" $(APPS_PATH)/flatcam-beta.desktop diff --git a/assets/linux/flatcam-beta b/assets/linux/flatcam-beta index 3eed9aaa..92f18f39 100755 --- a/assets/linux/flatcam-beta +++ b/assets/linux/flatcam-beta @@ -1,10 +1,5 @@ #!/bin/bash -current_path=$(dirname $0) -cd $current_path -current_path=$(pwd) -cd - - -script_path=$(dirname $current_path) - -python3 $script_path/FlatCAM.py $* +script_path=$(readlink -f $0) +python_script_path=$(dirname $script_path)/../../ +python3 $python_script_path/FlatCAM.py $* From 8b9a3885eb9ee7e48e17cf7eac071827aa117734 Mon Sep 17 00:00:00 2001 From: Leandro Date: Mon, 27 Apr 2020 16:55:03 -0300 Subject: [PATCH 2/8] Add minium python version check --- Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Makefile b/Makefile index 19ed9735..c3738950 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,14 @@ ASSEST_PATH = assets/linux INSTALL_PATH = /usr/share/flatcam-beta APPS_PATH = /usr/share/applications +MIN_PY3_MINOR_VERSION := 5 +PY3_MINOR_VERSION := $(shell python3 --version | cut -d'.' -f2) + +ifneq ($(MIN_PY3_MINOR_VERSION), $(firstword $(sort $(PY3_MINOR_VERSION) $(MIN_PY3_MINOR_VERSION)))) + $(info Current python version is "3.$(PY3_MINOR_VERSION)") + $(error You must have at least 3.$(MIN_PY3_MINOR_VERSION) installed) +endif + install: ifeq ($(USER_ID), 0) @ echo "Installing it system-wide" From e7a42d037b230831fede1e2cd0136776900515ac Mon Sep 17 00:00:00 2001 From: Leandro Date: Mon, 27 Apr 2020 17:07:11 -0300 Subject: [PATCH 3/8] Normalize messages --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c3738950..7bda1647 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ MIN_PY3_MINOR_VERSION := 5 PY3_MINOR_VERSION := $(shell python3 --version | cut -d'.' -f2) ifneq ($(MIN_PY3_MINOR_VERSION), $(firstword $(sort $(PY3_MINOR_VERSION) $(MIN_PY3_MINOR_VERSION)))) - $(info Current python version is "3.$(PY3_MINOR_VERSION)") + $(info Current python version is 3.$(PY3_MINOR_VERSION)) $(error You must have at least 3.$(MIN_PY3_MINOR_VERSION) installed) endif From 2549e9925ecbe994320e7478f5a6debc8f7b1f10 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 28 Apr 2020 09:48:49 +0300 Subject: [PATCH 4/8] - handled a possible situation in App.load_defaults() method - fixed some issues in FlatCAMDB that may appear in certain scenarios --- CHANGELOG.md | 6 ++++++ FlatCAMApp.py | 2 +- FlatCAMDB.py | 28 ++++++++++++++-------------- README.md | 40 +++++++++++++++++++++++++++++++--------- 4 files changed, 52 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d816b22a..b9900abf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ CHANGELOG for FlatCAM beta ================================================= +28.04.2020 + +- handled a possible situation in App.load_defaults() method +- fixed some issues in FlatCAMDB that may appear in certain scenarios + 27.04.2020 - finished the moving of all Tcl Shell stuff out of the FlatCAAMApp class to flatcamTools.ToolShell class @@ -24,6 +29,7 @@ CHANGELOG for FlatCAM beta - added support for Hungarian language - no translation for now - minor changes - moved the ObjectCollection class to the flatcamObjects folder where it belongs +- Linux Makefile 25.04.2020 diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 936b11cf..99d45118 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -3840,7 +3840,7 @@ class App(QtCore.QObject): # may be stored as strings we check their types. try: target = eval(self.defaults[k]) - except NameError: + except (NameError, TypeError): # it's an unknown string leave it as it is target = deepcopy(self.defaults[k]) diff --git a/FlatCAMDB.py b/FlatCAMDB.py index 3d7b35a8..c0e85cc3 100644 --- a/FlatCAMDB.py +++ b/FlatCAMDB.py @@ -916,19 +916,19 @@ class ToolsDB(QtWidgets.QWidget): self.app.ui.plot_tab_area.removeTab(idx) self.app.inform.emit('%s' % _("Cancelled adding tool from DB.")) - def resize_new_tool_table_widget(self, min_size, max_size): - """ - Resize the table widget responsible for adding new tool in the Tool Database - - :param min_size: passed by rangeChanged signal or the self.new_tool_table_widget.horizontalScrollBar() - :param max_size: passed by rangeChanged signal or the self.new_tool_table_widget.horizontalScrollBar() - :return: - """ - t_height = self.t_height - if max_size > min_size: - t_height = self.t_height + self.new_tool_table_widget.verticalScrollBar().height() - - self.new_tool_table_widget.setMaximumHeight(t_height) + # def resize_new_tool_table_widget(self, min_size, max_size): + # """ + # Resize the table widget responsible for adding new tool in the Tool Database + # + # :param min_size: passed by rangeChanged signal or the self.new_tool_table_widget.horizontalScrollBar() + # :param max_size: passed by rangeChanged signal or the self.new_tool_table_widget.horizontalScrollBar() + # :return: + # """ + # t_height = self.t_height + # if max_size > min_size: + # t_height = self.t_height + self.new_tool_table_widget.verticalScrollBar().height() + # + # self.new_tool_table_widget.setMaximumHeight(t_height) def closeEvent(self, QCloseEvent): super().closeEvent(QCloseEvent) @@ -2120,7 +2120,7 @@ class ToolsDB2(QtWidgets.QWidget): json.dump(self.db_tool_dict, f, default=to_dict, indent=2) except Exception as e: self.app.log.debug("App.on_save_tools_db() --> %s" % str(e)) - self.inform.emit('[ERROR_NOTCL] %s' % _("Failed to write Tools DB to file.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Failed to write Tools DB to file.")) return except Exception: self.app.inform.emit('[ERROR_NOTCL] %s' % _("Failed to write Tools DB to file.")) diff --git a/README.md b/README.md index ec3f77a1..f0362d90 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,19 @@ FlatCAM BETA (c) 2019 - by Marius Stanciu Based on FlatCAM: 2D Computer-Aided PCB Manufacturing by (c) 2014-2016 Juan Pablo Caram -================================================= +===================================================================== FlatCAM is a program for preparing CNC jobs for making PCBs on a CNC router. Among other things, it can take a Gerber file generated by your favorite PCB CAD program, and create G-Code for Isolation routing. -================================================= +===================================================================== ------------- Installation instructions ---------- +-------------------------- Installation instructions ---------------- Works with Python version 3.5 or greater and PyQt5. More on the YouTube channel: https://www.youtube.com/playlist?list=PLVvP2SYRpx-AQgNlfoxw93tXUXon7G94_ + You can contact me on my email address found in the app in: Menu -> Help -> About FlatCAM -> Programmers -> Marius Stanciu @@ -20,7 +21,7 @@ Menu -> Help -> About FlatCAM -> Programmers -> Marius Stanciu - Download sources from: https://bitbucket.org/jpcgt/flatcam/downloads/ - Unzip them on a HDD location that your user has permissions for. -1. Windows +1.Windows - download the provided installer (for your OS flavor 64bit or 32bit) from: https://bitbucket.org/jpcgt/flatcam/downloads/ - execute the installer and install the program. It is recommended to install as a Local User. @@ -33,7 +34,10 @@ Use one of the versions (64bit or 32it) that are compatible with your OS. To save space use one of the versions that have the smaller size (they offer 2 versions: one with size of few hundred MB and one smaller with size of few tens of MB) - add Python folder and Python\Scripts folder to your Windows Path (https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ee537574(v%3Doffice.14)) -- verify that the pip package can be run by opening Command Prompt(Admin) and running the command: pip -V +- verify that the pip package can be run by opening Command Prompt(Admin) and running the command: +``` +pip -V +``` - look in the requirements.txt file (found in the sources folder) and install all the dependencies using the pip package. The required wheels can be downloaded either from: @@ -42,23 +46,40 @@ or https://pypi.org/ You can download all the required wheels files into a folder (e.g D:\my_folder) and install them from Command Prompt like this: + +``` cd D:\my_folder +``` + and for each wheel file (*.whl) run: +``` D:\my_folder\> pip install --upgrade package_from_requirements.whl +``` Run FlatCAM beta from the installation folder (e.g D:\FlatCAM_beta) in the Command Prompt with the following command: cd D:\FlatCAM_beta python FlatCAM.py -2. Linux +2.Linux - make sure that Python 3.8 is installed on your OS and that the command: python3 -V confirm it -- verify that the pip package is installed for your Python installation (e.g 3.8) by running the command pip3 -V. +- verify that the pip package is installed for your Python installation (e.g 3.8) by running the command: +``` +pip3 -V +``` + If it is not installed, install it. In Ubuntu-like OS's it is done like this: +``` sudo apt-get install python3-pip +``` or: +``` sudo apt-get install python3.8-pip +``` - verify that the file setup_ubuntu.sh has Linux line-endings (LF) and that it is executable (chmod +x setup_ubuntu.sh) -- run the file setup_ubuntu.sh and install all the dependencies with the command: ./setup_ubuntu.sh +- run the file setup_ubuntu.sh and install all the dependencies with the command: +``` +./setup_ubuntu.sh +``` - if the previous command is successful and has no errors, run FlatCAM with the command: python3 FlatCAM.py - Alternatively you can install it on Ubuntu with: @@ -73,7 +94,8 @@ make install sudo make install ``` -3. MacOS +3.MacOS + Instructions from here: https://gist.github.com/natevw/3e6fc929aff358b38c0a#gistcomment-3111878 - create a folder to hold the sources somewhere on your HDD: From eed7e3d620032e00af3ec9f9547b3153831bf6a4 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 28 Apr 2020 14:37:34 +0300 Subject: [PATCH 5/8] - some minor changes in the Python version detection - added a new Tcl Command named SetPath which will set a path to be used by the Tcl commands. Once set will serve as a fallback path in case that the files fail to be opened first time. It will be persistent, saved in preferences. - added the GUI for the new Open Example in the FIle -> Scripting menu. - I am modifying all the open ... handlers to add a parameter that will flag if the method was launched from Tcl Shell. This way if the method will fail to open the filename (which include the path) it will try to open from a set fallback path. - fixed issue #406, bug introduced recently (leftover changes). - modified the ImportSVG Tcl command name to OpenSVG (open_svg alias) - added a new Tcl command named OpenDXF (open_dxf alias) - fixed some errors in Scripting features - added a new Tcl command named GetPath as a convenient way to get the current default path stored in App.defaults['global_tcl_path'] --- CHANGELOG.md | 9 + FlatCAM.py | 16 +- FlatCAMApp.py | 246 +++++++++++++++++--------- flatcamGUI/FlatCAMGUI.py | 15 +- flatcamObjects/FlatCAMCNCJob.py | 3 +- flatcamObjects/FlatCAMScript.py | 8 +- flatcamParsers/ParseGerber.py | 2 +- flatcamTools/ToolShell.py | 17 +- make_freezed.py | 4 + tclCommands/TclCommandBounds.py | 3 +- tclCommands/TclCommandGetPath.py | 66 +++++++ tclCommands/TclCommandOpenDXF.py | 94 ++++++++++ tclCommands/TclCommandOpenExcellon.py | 3 +- tclCommands/TclCommandOpenGCode.py | 1 + tclCommands/TclCommandOpenGerber.py | 39 +--- tclCommands/TclCommandOpenProject.py | 2 +- tclCommands/TclCommandOpenSVG.py | 93 ++++++++++ tclCommands/TclCommandSaveProject.py | 2 +- tclCommands/TclCommandSetPath.py | 93 ++++++++++ tclCommands/TclCommandWriteGCode.py | 2 +- tclCommands/__init__.py | 5 +- 21 files changed, 575 insertions(+), 148 deletions(-) create mode 100644 tclCommands/TclCommandGetPath.py create mode 100644 tclCommands/TclCommandOpenDXF.py create mode 100644 tclCommands/TclCommandOpenSVG.py create mode 100644 tclCommands/TclCommandSetPath.py diff --git a/CHANGELOG.md b/CHANGELOG.md index b9900abf..ccb4666a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,15 @@ CHANGELOG for FlatCAM beta - handled a possible situation in App.load_defaults() method - fixed some issues in FlatCAMDB that may appear in certain scenarios +- some minor changes in the Python version detection +- added a new Tcl Command named SetPath which will set a path to be used by the Tcl commands. Once set will serve as a fallback path in case that the files fail to be opened first time. It will be persistent, saved in preferences. +- added the GUI for the new Open Example in the FIle -> Scripting menu. +- I am modifying all the open ... handlers to add a parameter that will flag if the method was launched from Tcl Shell. This way if the method will fail to open the filename (which include the path) it will try to open from a set fallback path. +- fixed issue #406, bug introduced recently (leftover changes). +- modified the ImportSVG Tcl command name to OpenSVG (open_svg alias) +- added a new Tcl command named OpenDXF (open_dxf alias) +- fixed some errors in Scripting features +- added a new Tcl command named GetPath as a convenient way to get the current default path stored in App.defaults['global_tcl_path'] 27.04.2020 diff --git a/FlatCAM.py b/FlatCAM.py index cd961119..90c2626c 100644 --- a/FlatCAM.py +++ b/FlatCAM.py @@ -14,6 +14,8 @@ if sys.platform == "win32": # cx_freeze 'module win32' workaround pass +MIN_VERSION_MAJOR = 3 +MIN_VERSION_MINOR = 5 def debug_trace(): """ @@ -32,17 +34,19 @@ if __name__ == '__main__': # NOTE: Never talk to the GUI from threads! This is why I commented the above. freeze_support() + major_v = sys.version_info.major + minor_v = sys.version_info.minor # Supported Python version is >= 3.5 - if sys.version_info.major >= 3: - if sys.version_info.minor >= 5: + if major_v >= MIN_VERSION_MAJOR: + if minor_v >= MIN_VERSION_MINOR: pass else: - print("FlatCAM BETA uses PYTHON 3. The version minimum is 3.5\n" - "Your Python version is: %s" % str(sys.version_info)) + print("FlatCAM BETA uses PYTHON 3 or later. The version minimum is %s.%s\n" + "Your Python version is: %s.%s" % (MIN_VERSION_MAJOR, MIN_VERSION_MINOR, str(major_v), str(minor_v))) os._exit(0) else: - print("FlatCAM BETA uses PYTHON 3. The version minimum is 3.5\n" - "Your Python version is: %s" % str(sys.version_info)) + print("FlatCAM BETA uses PYTHON 3 or later. The version minimum is %s.%s\n" + "Your Python version is: %s.%s" % (MIN_VERSION_MAJOR, MIN_VERSION_MINOR, str(major_v), str(minor_v))) os._exit(0) debug_trace() diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 99d45118..ed10ae3f 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -455,6 +455,7 @@ class App(QtCore.QObject): "global_tpdf_rmargin": 20.0, "global_autosave": False, "global_autosave_timeout": 300000, + "global_tcl_path": '', # General "global_graphic_engine": '3D', @@ -2029,6 +2030,7 @@ class App(QtCore.QObject): self.ui.menufilenewscript.triggered.connect(self.on_filenewscript) self.ui.menufileopenscript.triggered.connect(self.on_fileopenscript) + self.ui.menufileopenscriptexample.triggered.connect(self.on_fileopenscript_example) self.ui.menufilerunscript.triggered.connect(self.on_filerunscript) @@ -2342,15 +2344,16 @@ class App(QtCore.QObject): 'del', 'drillcncjob', 'export_dxf', 'edxf', 'export_excellon', 'export_exc', 'export_gcode', 'export_gerber', 'export_svg', 'ext', 'exteriors', 'follow', - 'geo_union', 'geocutout', 'get_bounds', 'get_names', 'get_sys', 'help', 'import_svg', + 'geo_union', 'geocutout', 'get_bounds', 'get_names', 'get_path', 'get_sys', 'help', 'interiors', 'isolate', 'join_excellon', 'join_geometry', 'list_sys', 'milld', 'mills', 'milldrills', 'millslots', 'mirror', 'ncc', 'ncr', 'new', 'new_geometry', 'non_copper_regions', 'offset', - 'open_excellon', 'open_gcode', 'open_gerber', 'open_project', 'options', 'origin', + 'open_dxf', 'open_excellon', 'open_gcode', 'open_gerber', 'open_project', 'open_svg', + 'options', 'origin', 'paint', 'panelize', 'plot_all', 'plot_objects', 'plot_status', 'quit_flatcam', 'save', 'save_project', - 'save_sys', 'scale', 'set_active', 'set_origin', 'set_sys', + 'save_sys', 'scale', 'set_active', 'set_origin', 'set_path', 'set_sys', 'skew', 'subtract_poly', 'subtract_rectangle', 'version', 'write_gcode' ] @@ -4400,23 +4403,24 @@ class App(QtCore.QObject): if text is not None: new_source_file = text else: - commands_list = "# AddCircle, AddPolygon, AddPolyline, AddRectangle, AlignDrill, " \ - "AlignDrillGrid, Bbox, Bounds, ClearShell, CopperClear,\n" \ - "# Cncjob, Cutout, Delete, Drillcncjob, ExportDXF, ExportExcellon, ExportGcode,\n" \ - "# ExportGerber, ExportSVG, Exteriors, Follow, GeoCutout, GeoUnion, GetNames,\n" \ - "# GetSys, ImportSvg, Interiors, Isolate, JoinExcellon, JoinGeometry, " \ - "ListSys, MillDrills,\n" \ - "# MillSlots, Mirror, New, NewExcellon, NewGeometry, NewGerber, Nregions, " \ - "Offset, OpenExcellon, OpenGCode, OpenGerber, OpenProject,\n" \ - "# Options, Paint, Panelize, PlotAl, PlotObjects, SaveProject, " \ - "SaveSys, Scale, SetActive, SetSys, SetOrigin, Skew, SubtractPoly,\n" \ - "# SubtractRectangle, Version, WriteGCode\n" + # commands_list = "# AddCircle, AddPolygon, AddPolyline, AddRectangle, AlignDrill, " \ + # "AlignDrillGrid, Bbox, Bounds, ClearShell, CopperClear,\n" \ + # "# Cncjob, Cutout, Delete, Drillcncjob, ExportDXF, ExportExcellon, ExportGcode,\n" \ + # "# ExportGerber, ExportSVG, Exteriors, Follow, GeoCutout, GeoUnion, GetNames,\n" \ + # "# GetSys, ImportSvg, Interiors, Isolate, JoinExcellon, JoinGeometry, " \ + # "ListSys, MillDrills,\n" \ + # "# MillSlots, Mirror, New, NewExcellon, NewGeometry, NewGerber, Nregions, " \ + # "Offset, OpenExcellon, OpenGCode, OpenGerber, OpenProject,\n" \ + # "# Options, Paint, Panelize, PlotAl, PlotObjects, SaveProject, " \ + # "SaveSys, Scale, SetActive, SetSys, SetOrigin, Skew, SubtractPoly,\n" \ + # "# SubtractRectangle, Version, WriteGCode\n" new_source_file = '# %s\n' % _('CREATE A NEW FLATCAM TCL SCRIPT') + \ '# %s:\n' % _('TCL Tutorial is here') + \ '# https://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html\n' + '\n\n' + \ '# %s:\n' % _("FlatCAM commands list") - new_source_file += commands_list + '\n' + new_source_file += '# %s\n\n' % _("Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " + "(displayed in Tcl Shell).") def initialize(obj, app): obj.source_file = deepcopy(new_source_file) @@ -4736,11 +4740,11 @@ class App(QtCore.QObject): self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("Programmer")), 0, 0) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("Status")), 0, 1) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("E-mail")), 0, 2) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Juan Pablo Caram"), 1, 0) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Program Author"), 1, 1) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "<>"), 1, 2) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Denis Hayrullin"), 2, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Kamil Sopko"), 3, 0) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Marius Stanciu"), 4, 0) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("BETA Maintainer >= 2019")), 4, 1) @@ -4753,36 +4757,37 @@ class App(QtCore.QObject): self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Victor Benso"), 9, 0) self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 10, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Barnaby Walters"), 11, 0) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Jørn Sandvik Nilsson"), 12, 0) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Lei Zheng"), 13, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Marco A Quezada"), 14, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 12, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Leandro Heck"), 14, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Marco A Quezada"), 15, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 16, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Cedric Dussud"), 15, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Chris Hemingway"), 16, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Damian Wrobel"), 17, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Daniel Sallin"), 18, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 19, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Cedric Dussud"), 20, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Chris Hemingway"), 22, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Damian Wrobel"), 24, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Daniel Sallin"), 28, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 32, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Bruno Vunderl"), 20, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Gonzalo Lopez"), 21, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Jakob Staudt"), 22, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Mike Smith"), 23, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Bruno Vunderl"), 40, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Gonzalo Lopez"), 42, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Jakob Staudt"), 45, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Mike Smith"), 49, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 24, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 52, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Lubos Medovarsky"), 25, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Steve Martina"), 26, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Thomas Duffin"), 27, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Andrey Kultyapov"), 28, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Barnaby Walters"), 55, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Steve Martina"), 57, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Thomas Duffin"), 59, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Andrey Kultyapov"), 61, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 29, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 63, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Chris Breneman"), 30, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Eric Varsanyi"), 31, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Chris Breneman"), 65, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Eric Varsanyi"), 67, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Lubos Medovarsky"), 69, 0) - self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 34, 0) + self.prog_grid_lay.addWidget(QtWidgets.QLabel(''), 74, 0) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "@Idechix"), 100, 0) self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "@SM"), 101, 0) @@ -9371,7 +9376,7 @@ class App(QtCore.QObject): pass # tcl needs to be reinitialized, otherwise old shell variables etc remains - self.init_tcl() + self.shell.init_tcl() self.delete_selection_shape() self.collection.delete_all() @@ -10365,6 +10370,45 @@ class App(QtCore.QObject): if filename != '': self.worker_task.emit({'fcn': self.open_script, 'params': [filename]}) + def on_fileopenscript_example(self, name=None, silent=False): + """ + Will open a Tcl script file into the Code Editor + + :param silent: if True will not display status messages + :param name: name of a Tcl script file to open + :return: + """ + + self.report_usage("on_fileopenscript_example") + App.log.debug("on_fileopenscript_example()") + + _filter_ = "TCL script .FlatScript (*.FlatScript);;TCL script .tcl (*.TCL);;TCL script .txt (*.TXT);;" \ + "All Files (*.*)" + + + # test if the app was frozen and choose the path for the configuration file + if getattr(sys, "frozen", False) is True: + example_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + '\\assets\\examples' + else: + example_path = os.path.dirname(os.path.realpath(__file__)) + '\\assets\\examples' + + if name: + filenames = [name] + else: + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames( + caption=_("Open TCL script"), directory=example_path, filter=_filter_) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open TCL script"), filter=_filter_) + + if len(filenames) == 0: + if silent is False: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.open_script, 'params': [filename]}) + def on_filerunscript(self, name=None, silent=False): """ File menu callback for loading and running a TCL script. @@ -11170,7 +11214,7 @@ class App(QtCore.QObject): self.inform.emit('[WARNING_NOTCL] %s' % _('Could not export DXF file.')) return - def import_svg(self, filename, geo_type='geometry', outname=None): + def import_svg(self, filename, geo_type='geometry', outname=None, plot=True): """ Adds a new Geometry Object to the projects and populates it with shapes extracted from the SVG file. @@ -11205,7 +11249,11 @@ class App(QtCore.QObject): # Object name name = outname or filename.split('/')[-1].split('\\')[-1] - self.new_object(obj_type, name, obj_init, autoselected=False) + ret = self.new_object(obj_type, name, obj_init, autoselected=False, plot=plot) + + if ret == 'fail': + self.inform.emit('[ERROR_NOTCL]%s' % _('Import failed.')) + return 'fail' # Register recent file self.file_opened.emit("svg", filename) @@ -11213,7 +11261,7 @@ class App(QtCore.QObject): # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - def import_dxf(self, filename, geo_type='geometry', outname=None): + def import_dxf(self, filename, geo_type='geometry', outname=None, plot=True): """ Adds a new Geometry Object to the projects and populates it with shapes extracted from the DXF file. @@ -11241,27 +11289,34 @@ class App(QtCore.QObject): geo_obj.import_dxf(filename, obj_type, units=units) geo_obj.multigeo = False - with self.proc_container.new(_("Importing DXF")) as proc: + with self.proc_container.new(_("Importing DXF")): # Object name name = outname or filename.split('/')[-1].split('\\')[-1] - self.new_object(obj_type, name, obj_init, autoselected=False) + ret = self.new_object(obj_type, name, obj_init, autoselected=False, plot=plot) + + if ret == 'fail': + self.inform.emit('[ERROR_NOTCL]%s' % _('Import failed.')) + return 'fail' + # Register recent file self.file_opened.emit("dxf", filename) # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - def open_gerber(self, filename, outname=None): + def open_gerber(self, filename, outname=None, plot=True, from_tcl=False): """ Opens a Gerber file, parses it and creates a new object for it in the program. Thread-safe. - :param outname: Name of the resulting object. None causes the - name to be that of the file. Str. - :param filename: Gerber file filename - :type filename: str + :param outname: Name of the resulting object. None causes the + name to be that of the file. Str. + :param filename: Gerber file filename + :type filename: str + :param plot: boolean, to plot or not the resulting object + :param from_tcl: True if run from Tcl Shell :return: None """ @@ -11295,15 +11350,19 @@ class App(QtCore.QObject): App.log.debug("open_gerber()") - with self.proc_container.new(_("Opening Gerber")) as proc: + with self.proc_container.new(_("Opening Gerber")): # Object name name = outname or filename.split('/')[-1].split('\\')[-1] # # ## Object creation # ## - ret = self.new_object("gerber", name, obj_init, autoselected=False) - if ret == 'fail': - self.inform.emit('[ERROR_NOTCL]%s' % _(' Open Gerber failed. Probable not a Gerber file.')) - return 'fail' + ret_val = self.new_object("gerber", name, obj_init, autoselected=False, plot=plot) + if ret_val == 'fail': + if from_tcl: + filename = self.defaults['global_tcl_path'] + '/' + name + ret_val = self.new_object("gerber", name, obj_init, autoselected=False, plot=plot) + if ret_val == 'fail': + self.inform.emit('[ERROR_NOTCL]%s' % _('Open Gerber failed. Probable not a Gerber file.')) + return 'fail' # Register recent file self.file_opened.emit("gerber", filename) @@ -11311,7 +11370,7 @@ class App(QtCore.QObject): # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - def open_excellon(self, filename, outname=None, plot=True): + def open_excellon(self, filename, outname=None, plot=True, from_tcl=False): """ Opens an Excellon file, parses it and creates a new object for it in the program. Thread-safe. @@ -11320,6 +11379,7 @@ class App(QtCore.QObject): :param filename: Excellon file filename :type filename: str :param plot: boolean, to plot or not the resulting object + :param from_tcl: True if run from Tcl Shell :return: None """ @@ -11355,28 +11415,29 @@ class App(QtCore.QObject): for tool in excellon_obj.tools: if excellon_obj.tools[tool]['solid_geometry']: return - app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % - (_("No geometry found in file"), filename)) + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("No geometry found in file"), filename)) return "fail" with self.proc_container.new(_("Opening Excellon.")): - # Object name name = outname or filename.split('/')[-1].split('\\')[-1] ret_val = self.new_object("excellon", name, obj_init, autoselected=False, plot=plot) if ret_val == 'fail': - self.inform.emit('[ERROR_NOTCL] %s' % - _('Open Excellon file failed. Probable not an Excellon file.')) - return + if from_tcl: + filename = self.defaults['global_tcl_path'] + '/' + name + ret_val = self.new_object("excellon", name, obj_init, autoselected=False, plot=plot) + if ret_val == 'fail': + self.inform.emit('[ERROR_NOTCL] %s' % + _('Open Excellon file failed. Probable not an Excellon file.')) + return # Register recent file self.file_opened.emit("excellon", filename) # GUI feedback - self.inform.emit('[success] %s: %s' % - (_("Opened"), filename)) + self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - def open_gcode(self, filename, outname=None, force_parsing=None, plot=True): + def open_gcode(self, filename, outname=None, force_parsing=None, plot=True, from_tcl=False): """ Opens a G-gcode file, parses it and creates a new object for it in the program. Thread-safe. @@ -11384,7 +11445,8 @@ class App(QtCore.QObject): :param filename: G-code file filename :param outname: Name of the resulting object. None causes the name to be that of the file. :param force_parsing: - :param plot: + :param plot: If True plot the object on canvas + :param from_tcl: True if run from Tcl Shell :return: None """ App.log.debug("open_gcode()") @@ -11404,16 +11466,14 @@ class App(QtCore.QObject): gcode = f.read() f.close() except IOError: - app_obj_.inform.emit('[ERROR_NOTCL] %s: %s' % - (_("Failed to open"), filename)) + app_obj_.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open"), filename)) return "fail" job_obj.gcode = gcode gcode_ret = job_obj.gcode_parse(force_parsing=force_parsing) if gcode_ret == "fail": - self.inform.emit('[ERROR_NOTCL] %s' % - _("This is not GCODE")) + self.inform.emit('[ERROR_NOTCL] %s' % _("This is not GCODE")) return "fail" job_obj.create_geometry() @@ -11424,21 +11484,24 @@ class App(QtCore.QObject): name = outname or filename.split('/')[-1].split('\\')[-1] # New object creation and file processing - obj_ret = self.new_object("cncjob", name, obj_init, autoselected=False, plot=plot) - if obj_ret == 'fail': - self.inform.emit('[ERROR_NOTCL] %s' % - _("Failed to create CNCJob Object. Probable not a GCode file. " - "Try to load it from File menu.\n " - "Attempting to create a FlatCAM CNCJob Object from " - "G-Code file failed during processing")) - return "fail" + ret_val = self.new_object("cncjob", name, obj_init, autoselected=False, plot=plot) + if ret_val == 'fail': + if from_tcl: + filename = self.defaults['global_tcl_path'] + '/' + name + ret_val = self.new_object("cncjob", name, obj_init, autoselected=False, plot=plot) + if ret_val == 'fail': + self.inform.emit('[ERROR_NOTCL] %s' % + _("Failed to create CNCJob Object. Probable not a GCode file. " + "Try to load it from File menu.\n " + "Attempting to create a FlatCAM CNCJob Object from " + "G-Code file failed during processing")) + return "fail" # Register recent file self.file_opened.emit("cncjob", filename) # GUI feedback - self.inform.emit('[success] %s: %s' % - (_("Opened"), filename)) + self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) def open_hpgl2(self, filename, outname=None): """ @@ -11586,7 +11649,7 @@ class App(QtCore.QObject): (_("Failed to open config file"), filename)) return - def open_project(self, filename, run_from_arg=None, plot=True, cli=None): + def open_project(self, filename, run_from_arg=None, plot=True, cli=None, from_tcl=False): """ Loads a project from the specified file. @@ -11601,6 +11664,7 @@ class App(QtCore.QObject): :param run_from_arg: True if run for arguments :param plot: If True plot all objects in the project :param cli: Run from command line + :param from_tcl: True if run from Tcl Sehll :return: None """ App.log.debug("Opening project: " + filename) @@ -11624,16 +11688,25 @@ class App(QtCore.QObject): try: f = open(filename, 'r') except IOError: - App.log.error("Failed to open project file: %s" % filename) - self.inform.emit('[ERROR_NOTCL] %s: %s' % - (_("Failed to open project file"), filename)) - return + if from_tcl: + name = filename.split('/')[-1].split('\\')[-1] + filename = self.defaults['global_tcl_path'] + '/' + name + try: + f = open(filename, 'r') + except IOError: + log.error("Failed to open project file: %s" % filename) + self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open project file"), filename)) + return + else: + log.error("Failed to open project file: %s" % filename) + self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open project file"), filename)) + return try: d = json.load(f, object_hook=dict2obj) except Exception as e: - App.log.error("Failed to parse project file, trying to see if it loads as an LZMA archive: %s because %s" % - (filename, str(e))) + log.error("Failed to parse project file, trying to see if it loads as an LZMA archive: %s because %s" % + (filename, str(e))) f.close() # Open and parse a compressed Project file @@ -12589,7 +12662,7 @@ class App(QtCore.QObject): for obj in objects: obj.on_generatecnc_button_click() - def save_project(self, filename, quit_action=False, silent=False): + def save_project(self, filename, quit_action=False, silent=False, from_tcl=False): """ Saves the current project to the specified file. @@ -12597,6 +12670,7 @@ class App(QtCore.QObject): :type filename: str :param quit_action: if the project saving will be followed by an app quit; boolean :param silent: if True will not display status messages + :param from_tcl True is run from Tcl Shell :return: None """ self.log.debug("save_project()") diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index df280edb..d59c5aa4 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -183,6 +183,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow): QtGui.QIcon(self.app.resource_location + '/script_new16.png'), _('New Script ...'), self) self.menufileopenscript = QtWidgets.QAction( QtGui.QIcon(self.app.resource_location + '/open_script32.png'), _('Open Script ...'), self) + self.menufileopenscriptexample = QtWidgets.QAction( + QtGui.QIcon(self.app.resource_location + '/open_script32.png'), _('Open Example ...'), self) self.menufilerunscript = QtWidgets.QAction( QtGui.QIcon(self.app.resource_location + '/script16.png'), '%s\tShift+S' % _('Run Script ...'), self) self.menufilerunscript.setToolTip( @@ -192,6 +194,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): ) self.menufile_scripting.addAction(self.menufilenewscript) self.menufile_scripting.addAction(self.menufileopenscript) + self.menufile_scripting.addAction(self.menufileopenscriptexample) self.menufile_scripting.addSeparator() self.menufile_scripting.addAction(self.menufilerunscript) @@ -4284,20 +4287,24 @@ class FlatCAMInfoBar(QtWidgets.QWidget): def set_status(self, text, level="info"): level = str(level) + self.pmap.fill() if level == "ERROR" or level == "ERROR_NOTCL": self.pmap = QtGui.QPixmap(self.app.resource_location + '/redlight12.png') - elif level == "success" or level == "SUCCESS": + elif level.lower() == "success": self.pmap = QtGui.QPixmap(self.app.resource_location + '/greenlight12.png') elif level == "WARNING" or level == "WARNING_NOTCL": self.pmap = QtGui.QPixmap(self.app.resource_location + '/yellowlight12.png') - elif level == "selected" or level == "SELECTED": + elif level.lower() == "selected": self.pmap = QtGui.QPixmap(self.app.resource_location + '/bluelight12.png') else: self.pmap = QtGui.QPixmap(self.app.resource_location + '/graylight12.png') - self.set_text_(text) - self.icon.setPixmap(self.pmap) + try: + self.set_text_(text) + self.icon.setPixmap(self.pmap) + except Exception as e: + log.debug("FlatCAMInfoBar.set_status() --> %s" % str(e)) class FlatCAMSystemTray(QtWidgets.QSystemTrayIcon): diff --git a/flatcamObjects/FlatCAMCNCJob.py b/flatcamObjects/FlatCAMCNCJob.py index c154965b..d47a86e4 100644 --- a/flatcamObjects/FlatCAMCNCJob.py +++ b/flatcamObjects/FlatCAMCNCJob.py @@ -716,7 +716,7 @@ class CNCJobObject(FlatCAMObj, CNCjob): else: return 'M02' - def export_gcode(self, filename=None, preamble='', postamble='', to_file=False): + def export_gcode(self, filename=None, preamble='', postamble='', to_file=False, from_tcl=False): """ This will save the GCode from the Gcode object to a file on the OS filesystem @@ -724,6 +724,7 @@ class CNCJobObject(FlatCAMObj, CNCjob): :param preamble: a custom Gcode block to be added at the beginning of the Gcode file :param postamble: a custom Gcode block to be added at the end of the Gcode file :param to_file: if False then no actual file is saved but the app will know that a file was created + :param from_tcl: True if run from Tcl Shell :return: None """ # gcode = '' diff --git a/flatcamObjects/FlatCAMScript.py b/flatcamObjects/FlatCAMScript.py index c81885dc..69e6e65f 100644 --- a/flatcamObjects/FlatCAMScript.py +++ b/flatcamObjects/FlatCAMScript.py @@ -177,7 +177,7 @@ class ScriptObject(FlatCAMObj): try: self.app.shell.open_processing() # Disables input box. - result = self.app.tcl.eval(str(new_command)) + result = self.app.shell.tcl.eval(str(new_command)) if result != 'None': self.app.shell.append_output(result + '\n') @@ -189,9 +189,9 @@ class ScriptObject(FlatCAMObj): if old_line != '': # it means that the script finished with an error - result = self.app.tcl.eval("set errorInfo") - log.error("Exec command Exception: %s" % (result + '\n')) - self.app.shell.append_error('ERROR: ' + result + '\n') + result = self.app.shell.tcl.eval("set errorInfo") + log.error("Exec command Exception: %s\n" % result) + self.app.shell.append_error('ERROR: %s\n '% result) self.app.shell.close_processing() diff --git a/flatcamParsers/ParseGerber.py b/flatcamParsers/ParseGerber.py index 404c92fc..57ba4d49 100644 --- a/flatcamParsers/ParseGerber.py +++ b/flatcamParsers/ParseGerber.py @@ -1834,7 +1834,7 @@ class Gerber(Geometry): new_el = {} new_el['solid'] = pol new_el['follow'] = pol.exterior - self.apertures['0']['geometry'].append(deepcopy(new_el)) + self.apertures['0']['geometry'].append(new_el) def scale(self, xfactor, yfactor=None, point=None): """ diff --git a/flatcamTools/ToolShell.py b/flatcamTools/ToolShell.py index c4ff2848..6dc3e73b 100644 --- a/flatcamTools/ToolShell.py +++ b/flatcamTools/ToolShell.py @@ -268,6 +268,16 @@ class FCShell(TermWidget): self.tcl_commands_storage = {} + self.init_tcl() + + self._edit.set_model_data(self.app.myKeywords) + self.setWindowIcon(self.app.ui.app_icon) + self.setWindowTitle("FlatCAM Shell") + self.resize(*self.app.defaults["global_shell_shape"]) + self._append_to_browser('in', "FlatCAM %s - " % version) + self.append_output('%s\n\n' % _("Type >help< to get started")) + + def init_tcl(self): if hasattr(self, 'tcl') and self.tcl is not None: # self.tcl = None # new object cannot be used here as it will not remember values created for next passes, @@ -277,13 +287,6 @@ class FCShell(TermWidget): self.tcl = tk.Tcl() self.setup_shell() - self._edit.set_model_data(self.app.myKeywords) - self.setWindowIcon(self.app.ui.app_icon) - self.setWindowTitle("FlatCAM Shell") - self.resize(*self.app.defaults["global_shell_shape"]) - self._append_to_browser('in', "FlatCAM %s - " % version) - self.append_output('%s\n\n' % _("Type >help< to get started")) - def setup_shell(self): """ Creates shell functions. Runs once at startup. diff --git a/make_freezed.py b/make_freezed.py index 75f1c7eb..75ad7521 100644 --- a/make_freezed.py +++ b/make_freezed.py @@ -58,6 +58,10 @@ if platform.architecture()[0] == '64bit': include_files.append(("locale", "lib/locale")) include_files.append(("preprocessors", "lib/preprocessors")) +include_files.append(("assets", "lib/assets")) +include_files.append(("assets/examples", "lib/assets/examples")) +include_files.append(("assets/linux", "lib/assets/linux")) +include_files.append(("assets/resources", "lib/assets/resources")) include_files.append(("share", "lib/share")) include_files.append(("flatcamGUI/VisPyData", "lib/vispy")) include_files.append(("config", "lib/config")) diff --git a/tclCommands/TclCommandBounds.py b/tclCommands/TclCommandBounds.py index 0401938e..c5752da3 100644 --- a/tclCommands/TclCommandBounds.py +++ b/tclCommands/TclCommandBounds.py @@ -78,7 +78,6 @@ class TclCommandBounds(TclCommand): xmin, ymin, xmax, ymax = obj.bounds() result_list.append([xmin, ymin, xmax, ymax]) - self.app.inform.emit('[success] %s ...' % - _('TclCommand Bounds done.')) + self.app.inform.emit('[success] %s ...' % _('TclCommand Bounds done.')) return result_list diff --git a/tclCommands/TclCommandGetPath.py b/tclCommands/TclCommandGetPath.py new file mode 100644 index 00000000..d6d76b35 --- /dev/null +++ b/tclCommands/TclCommandGetPath.py @@ -0,0 +1,66 @@ +# ########################################################## +# FlatCAM: 2D Post-processing for Manufacturing # +# File Author: Marius Adrian Stanciu (c) # +# Date: 4/28/2020 # +# MIT Licence # +# ########################################################## + +from tclCommands.TclCommand import TclCommand + +import collections +import os +import logging +import gettext +import FlatCAMTranslation as fcTranslate +import builtins + +fcTranslate.apply_language('strings') +if '_' not in builtins.__dict__: + _ = gettext.gettext + +log = logging.getLogger('base') + + +class TclCommandGetPath(TclCommand): + """ + Tcl shell command to get the current default path set for Tcl. + + example: + + """ + + # List of all command aliases, to be able use old names for backward compatibility (add_poly, add_polygon) + aliases = ['get_path'] + + description = '%s %s' % ("--", "Get the default Tcl Shell folder path.") + + # Dictionary of types from Tcl command, needs to be ordered + arg_names = collections.OrderedDict([ + ]) + + # Dictionary of types from Tcl command, needs to be ordered , this is for options like -optionname value + option_types = collections.OrderedDict([ + ]) + + # array of mandatory options for current Tcl command: required = {'name','outname'} + required = [] + + # structured help for current command, args needs to be ordered + help = { + 'main': "Will get the folder path used as a fallback path for opening files.", + 'args': collections.OrderedDict([ + ]), + 'examples': ['get_path'] + } + + def execute(self, args, unnamed_args): + """ + + :param args: + :param unnamed_args: + :return: + """ + + self.app.shell.append_output("Current default Tcl Shell path is: ") + path = self.app.defaults["global_tcl_path"] + return path diff --git a/tclCommands/TclCommandOpenDXF.py b/tclCommands/TclCommandOpenDXF.py new file mode 100644 index 00000000..4e46d2a4 --- /dev/null +++ b/tclCommands/TclCommandOpenDXF.py @@ -0,0 +1,94 @@ +from tclCommands.TclCommand import TclCommandSignaled + +import collections + + +class TclCommandOpenDXF(TclCommandSignaled): + """ + Tcl shell command to open an DXF file as a Geometry/Gerber Object. + """ + + # array of all command aliases, to be able use old names for backward compatibility (add_poly, add_polygon) + aliases = ['open_dxf'] + + description = '%s %s' % ("--", "Open a DXF file as a Geometry (or Gerber) Object.") + + # dictionary of types from Tcl command, needs to be ordered + arg_names = collections.OrderedDict([ + ('filename', str) + ]) + + # dictionary of types from Tcl command, needs to be ordered , this is for options like -optionname value + option_types = collections.OrderedDict([ + ('type', str), + ('outname', str) + ]) + + # array of mandatory options for current Tcl command: required = {'name','outname'} + required = ['filename'] + + # structured help for current command, args needs to be ordered + help = { + 'main': "Open a DXF file as a Geometry (or Gerber) Object.", + 'args': collections.OrderedDict([ + ('filename', 'Absolute path to file to open. Required.\n' + 'WARNING: no spaces are allowed. If unsure enclose the entire path with quotes.'), + ('type', 'Open as a Gerber or Geometry (default) object. Values can be: "geometry" or "gerber"'), + ('outname', 'Name of the resulting Geometry object.') + ]), + 'examples': ['open_dxf D:\\my_beautiful_svg_file.SVG'] + } + + def execute(self, args, unnamed_args): + """ + execute current TCL shell command + + :param args: array of known named arguments and options + :param unnamed_args: array of other values which were passed into command + without -somename and we do not have them in known arg_names + :return: None or exception + """ + + # How the object should be initialized + def obj_init(geo_obj, app_obj): + + # if geo_obj.kind != 'geometry' and geo_obj.kind != 'gerber': + # self.raise_tcl_error('Expected Geometry or Gerber, got %s %s.' % (outname, type(geo_obj))) + + geo_obj.import_dxf(filename, obj_type, units=units) + + filename = args['filename'] + + if 'outname' in args: + outname = args['outname'] + else: + outname = filename.split('/')[-1].split('\\')[-1] + + if 'type' in args: + obj_type = str(args['type']).lower() + else: + obj_type = 'geometry' + + if obj_type != "geometry" and obj_type != "gerber": + self.raise_tcl_error("Option type can be 'geometry' or 'gerber' only, got '%s'." % obj_type) + + units = self.app.defaults['units'].upper() + + with self.app.proc_container.new("Open DXF"): + + # Object creation + ret_val = self.app.new_object(obj_type, outname, obj_init, plot=False) + if ret_val == 'fail': + filename = self.app.defaults['global_tcl_path'] + '/' + outname + ret_val = self.app.new_object(obj_type, outname, obj_init, plot=False) + self.app.shell.append_output( + "No path provided or path is wrong. Using the default Path... \n") + + if ret_val == 'fail': + return "Failed. The OpenDXF command was used but could not open the DXF file" + + # Register recent file + self.app.file_opened.emit("dxf", filename) + + # GUI feedback + self.app.inform.emit("Opened: " + filename) diff --git a/tclCommands/TclCommandOpenExcellon.py b/tclCommands/TclCommandOpenExcellon.py index 5fc7cc64..41f23a4b 100644 --- a/tclCommands/TclCommandOpenExcellon.py +++ b/tclCommands/TclCommandOpenExcellon.py @@ -52,10 +52,11 @@ class TclCommandOpenExcellon(TclCommandSignaled): """ filename = args.pop('filename') - # filename = filename.replace(' ', '') + if ' ' in filename: return "The absolute path to the project file contain spaces which is not allowed.\n" \ "Please enclose the path within quotes." args['plot'] = False + args['from_tcl'] = True self.app.open_excellon(filename, **args) diff --git a/tclCommands/TclCommandOpenGCode.py b/tclCommands/TclCommandOpenGCode.py index 9b5db715..86da6cd8 100644 --- a/tclCommands/TclCommandOpenGCode.py +++ b/tclCommands/TclCommandOpenGCode.py @@ -51,6 +51,7 @@ class TclCommandOpenGCode(TclCommandSignaled): :return: None or exception """ args['plot'] = False + args['from_tcl'] = True filename = args["filename"] if ' ' in filename: return "The absolute path to the project file contain spaces which is not allowed.\n" \ diff --git a/tclCommands/TclCommandOpenGerber.py b/tclCommands/TclCommandOpenGerber.py index 4dfbfc0c..35114108 100644 --- a/tclCommands/TclCommandOpenGerber.py +++ b/tclCommands/TclCommandOpenGerber.py @@ -49,25 +49,11 @@ class TclCommandOpenGerber(TclCommandSignaled): :return: None or exception """ - # How the object should be initialized - def obj_init(gerber_obj, app_obj): + if 'follow' in args: + self.raise_tcl_error("The 'follow' parameter is obsolete. To create 'follow' geometry use the 'follow' " + "parameter for the Tcl Command isolate()") - if gerber_obj.kind != 'gerber': - self.raise_tcl_error('Expected GerberObject, got %s %s.' % (outname, type(gerber_obj))) - - # Opening the file happens here - try: - gerber_obj.parse_file(filename) - except IOError: - app_obj.inform.emit("[ERROR_NOTCL] Failed to open file: %s " % filename) - self.raise_tcl_error('Failed to open file: %s' % filename) - - except ParseError as e: - app_obj.inform.emit("[ERROR_NOTCL] Failed to parse file: %s, %s " % (filename, str(e))) - self.log.error(str(e)) - return - - filename = args['filename'] + filename = args.pop('filename') if ' ' in filename: return "The absolute path to the project file contain spaces which is not allowed.\n" \ @@ -78,17 +64,6 @@ class TclCommandOpenGerber(TclCommandSignaled): else: outname = filename.split('/')[-1].split('\\')[-1] - if 'follow' in args: - self.raise_tcl_error("The 'follow' parameter is obsolete. To create 'follow' geometry use the 'follow' " - "parameter for the Tcl Command isolate()") - - with self.app.proc_container.new("Opening Gerber"): - - # Object creation - self.app.new_object("gerber", outname, obj_init, plot=False) - - # Register recent file - self.app.file_opened.emit("gerber", filename) - - # GUI feedback - self.app.inform.emit("[success] Opened: " + filename) + args['plot'] = False + args['from_tcl'] = True + self.app.open_gerber(filename, outname, **args) diff --git a/tclCommands/TclCommandOpenProject.py b/tclCommands/TclCommandOpenProject.py index e1e1cd05..48af1974 100644 --- a/tclCommands/TclCommandOpenProject.py +++ b/tclCommands/TclCommandOpenProject.py @@ -53,4 +53,4 @@ class TclCommandOpenProject(TclCommandSignaled): return "The absolute path to the project file contain spaces which is not allowed.\n" \ "Please enclose the path within quotes." - self.app.open_project(filename, cli=True, plot=False) + self.app.open_project(filename, cli=True, plot=False, from_tcl=True) diff --git a/tclCommands/TclCommandOpenSVG.py b/tclCommands/TclCommandOpenSVG.py new file mode 100644 index 00000000..9c2b514e --- /dev/null +++ b/tclCommands/TclCommandOpenSVG.py @@ -0,0 +1,93 @@ +from tclCommands.TclCommand import TclCommandSignaled + +import collections + + +class TclCommandOpenSVG(TclCommandSignaled): + """ + Tcl shell command to import an SVG file as a Geometry Object. + """ + + # array of all command aliases, to be able use old names for backward compatibility (add_poly, add_polygon) + aliases = ['open_svg'] + + description = '%s %s' % ("--", "Open a SVG file as a Geometry (or Gerber) Object.") + + # dictionary of types from Tcl command, needs to be ordered + arg_names = collections.OrderedDict([ + ('filename', str) + ]) + + # dictionary of types from Tcl command, needs to be ordered , this is for options like -optionname value + option_types = collections.OrderedDict([ + ('type', str), + ('outname', str) + ]) + + # array of mandatory options for current Tcl command: required = {'name','outname'} + required = ['filename'] + + # structured help for current command, args needs to be ordered + help = { + 'main': "Open a SVG file as a Geometry (or Gerber) Object.", + 'args': collections.OrderedDict([ + ('filename', 'Absolute path to file to open. Required.\n' + 'WARNING: no spaces are allowed. If unsure enclose the entire path with quotes.'), + ('type', 'Open as a Gerber or Geometry (default) object. Values can be: "geometry" or "gerber"'), + ('outname', 'Name of the resulting Geometry object.') + ]), + 'examples': ['open_svg D:\\my_beautiful_svg_file.SVG'] + } + + def execute(self, args, unnamed_args): + """ + execute current TCL shell command + + :param args: array of known named arguments and options + :param unnamed_args: array of other values which were passed into command + without -somename and we do not have them in known arg_names + :return: None or exception + """ + + # How the object should be initialized + def obj_init(geo_obj, app_obj): + + # if geo_obj.kind != 'geometry' or geo_obj.kind != 'gerber': + # self.raise_tcl_error('Expected Geometry or Gerber, got %s %s.' % (outname, type(geo_obj))) + + geo_obj.import_svg(filename, obj_type, units=units) + + filename = args['filename'] + + if 'outname' in args: + outname = args['outname'] + else: + outname = filename.split('/')[-1].split('\\')[-1] + + if 'type' in args: + obj_type = args['type'].lower() + else: + obj_type = 'geometry' + + if obj_type != "geometry" and obj_type != "gerber": + self.raise_tcl_error("Option type can be 'geometry' or 'gerber' only, got '%s'." % obj_type) + + units = self.app.defaults['units'].upper() + + with self.app.proc_container.new("Import SVG"): + + # Object creation + ret_val = self.app.new_object(obj_type, outname, obj_init, plot=False) + if ret_val == 'fail': + filename = self.app.defaults['global_tcl_path'] + '/' + outname + ret_val = self.app.new_object(obj_type, outname, obj_init, plot=False) + self.app.shell.append_output( + "No path provided or path is wrong. Using the default Path... \n") + if ret_val == 'fail': + return "Failed. The OpenSVG command was used but could not open the SVG file" + + # Register recent file + self.app.file_opened.emit("svg", filename) + + # GUI feedback + self.app.inform.emit("Opened: " + filename) diff --git a/tclCommands/TclCommandSaveProject.py b/tclCommands/TclCommandSaveProject.py index 049d7e74..ccf1a641 100644 --- a/tclCommands/TclCommandSaveProject.py +++ b/tclCommands/TclCommandSaveProject.py @@ -50,4 +50,4 @@ class TclCommandSaveProject(TclCommandSignaled): :return: None or exception """ - self.app.save_project(args['filename']) + self.app.save_project(args['filename'], from_tcl=True) diff --git a/tclCommands/TclCommandSetPath.py b/tclCommands/TclCommandSetPath.py new file mode 100644 index 00000000..953fd57d --- /dev/null +++ b/tclCommands/TclCommandSetPath.py @@ -0,0 +1,93 @@ +# ########################################################## +# FlatCAM: 2D Post-processing for Manufacturing # +# File Author: Marius Adrian Stanciu (c) # +# Date: 4/28/2020 # +# MIT Licence # +# ########################################################## + +from tclCommands.TclCommand import TclCommand + +import collections +import os +import logging +import gettext +import FlatCAMTranslation as fcTranslate +import builtins + +fcTranslate.apply_language('strings') +if '_' not in builtins.__dict__: + _ = gettext.gettext + +log = logging.getLogger('base') + + +class TclCommandSetPath(TclCommand): + """ + Tcl shell command to set the default path for Tcl Shell for opening files. + + example: + + """ + + # List of all command aliases, to be able use old names for backward compatibility (add_poly, add_polygon) + aliases = ['set_path'] + + description = '%s %s' % ("--", "Set the folder path to the specified path.") + + # Dictionary of types from Tcl command, needs to be ordered + arg_names = collections.OrderedDict([ + ('path', str) + ]) + + # Dictionary of types from Tcl command, needs to be ordered , this is for options like -optionname value + option_types = collections.OrderedDict([ + ]) + + # array of mandatory options for current Tcl command: required = {'name','outname'} + required = ['path'] + + # structured help for current command, args needs to be ordered + help = { + 'main': "Will set the folder path to the specified path.\n" + "By using this command there is no need for usage of the absolute path to the files.", + 'args': collections.OrderedDict([ + ('path', 'A folder path to where the user is supposed to have the file that he will work with.\n' + 'WARNING: No spaces allowed. Use quotes around the path if it contains spaces.'), + ]), + 'examples': ['set_path D:\\Project_storage_path'] + } + + def execute(self, args, unnamed_args): + """ + + :param args: + :param unnamed_args: + :return: + """ + + if 'path' not in args: + return "Failed. The Tcl command set_path was used but no path argument was provided." + else: + path = str(args['path']).replace('\\', '/') + + # check if path exists + path_isdir = os.path.isdir(path) + if path_isdir is False: + path_isfile = os.path.isfile(path) + if path_isfile: + self.app.inform.emit('[ERROR] %s: %s, %s' % ( + "The provided path", + str(path), + "is a path to file and not a directory as expected.")) + return "Failed. The Tcl command set_path was used but it was not a directory." + else: + self.app.inform.emit('[ERROR] %s: %s, %s' % ( + "The provided path", + str(path), + "do not exist. Check for typos.")) + return "Failed. The Tcl command set_path was used but it does not exist." + + cd_command = 'cd %s' % path + self.app.shell.exec_command(cd_command, no_echo=False) + self.app.defaults["global_tcl_path"] = str(path) + self.app.inform.emit('[success] %s: %s' % ("Relative path set to", str(path))) diff --git a/tclCommands/TclCommandWriteGCode.py b/tclCommands/TclCommandWriteGCode.py index 85b83627..331fa8bc 100644 --- a/tclCommands/TclCommandWriteGCode.py +++ b/tclCommands/TclCommandWriteGCode.py @@ -103,7 +103,7 @@ class TclCommandWriteGCode(TclCommandSignaled): return "fail" try: - obj.export_gcode(str(filename), str(preamble), str(postamble)) + obj.export_gcode(str(filename), str(preamble), str(postamble), from_tcl=True) except Exception as e: if muted is False: return "Operation failed: %s" % str(e) diff --git a/tclCommands/__init__.py b/tclCommands/__init__.py index b4a8d324..3a49aa49 100644 --- a/tclCommands/__init__.py +++ b/tclCommands/__init__.py @@ -25,9 +25,9 @@ import tclCommands.TclCommandExteriors import tclCommands.TclCommandGeoCutout import tclCommands.TclCommandGeoUnion import tclCommands.TclCommandGetNames +import tclCommands.TclCommandGetPath import tclCommands.TclCommandGetSys import tclCommands.TclCommandHelp -import tclCommands.TclCommandImportSvg import tclCommands.TclCommandInteriors import tclCommands.TclCommandIsolate import tclCommands.TclCommandFollow @@ -43,10 +43,12 @@ import tclCommands.TclCommandNewExcellon import tclCommands.TclCommandNewGeometry import tclCommands.TclCommandNewGerber import tclCommands.TclCommandOffset +import tclCommands.TclCommandOpenDXF import tclCommands.TclCommandOpenExcellon import tclCommands.TclCommandOpenGCode import tclCommands.TclCommandOpenGerber import tclCommands.TclCommandOpenProject +import tclCommands.TclCommandOpenSVG import tclCommands.TclCommandOptions import tclCommands.TclCommandPaint import tclCommands.TclCommandPanelize @@ -58,6 +60,7 @@ import tclCommands.TclCommandSaveSys import tclCommands.TclCommandScale import tclCommands.TclCommandSetActive import tclCommands.TclCommandSetOrigin +import tclCommands.TclCommandSetPath import tclCommands.TclCommandSetSys import tclCommands.TclCommandSkew import tclCommands.TclCommandSubtractPoly From f03d6bfda48f078aa7abd39c605be99c6a6761d8 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 28 Apr 2020 17:23:49 +0300 Subject: [PATCH 6/8] - added a new package to be installed in Linux to make available the black theme for FlatCAM beta - moved all the 'share' resources (icons) to the 'assets/resources' folder - some more fixes to problems generated by latest changes in the open handlers - modified the make_freezed.py script for the new location of the icons - added a fix for the ConnectionRefusedError in Linux that is issued when first running after a FlatCAM crash --- CHANGELOG.md | 6 +++ FlatCAMApp.py | 38 +++++++++++------- FlatCAMTranslation.py | 8 ++-- {share => assets/resources}/about32.png | Bin {share => assets/resources}/active.gif | Bin {share => assets/resources}/active_2.gif | Bin .../resources}/active_2_static.png | Bin {share => assets/resources}/active_3.gif | Bin .../resources}/active_3_static.png | Bin {share => assets/resources}/active_4.gif | Bin .../resources}/active_4_static.png | Bin {share => assets/resources}/active_static.png | Bin {share => assets/resources}/addarray16.png | Bin {share => assets/resources}/addarray20.png | Bin {share => assets/resources}/addarray32.png | Bin {share => assets/resources}/aero.png | Bin {share => assets/resources}/aero_arc.png | Bin {share => assets/resources}/aero_array.png | Bin {share => assets/resources}/aero_buffer.png | Bin {share => assets/resources}/aero_circle.png | Bin .../resources}/aero_circle_geo.png | Bin {share => assets/resources}/aero_disc.png | Bin {share => assets/resources}/aero_drill.png | Bin .../resources}/aero_drill_array.png | Bin {share => assets/resources}/aero_path1.png | Bin {share => assets/resources}/aero_path2.png | Bin {share => assets/resources}/aero_path3.png | Bin {share => assets/resources}/aero_path4.png | Bin {share => assets/resources}/aero_path5.png | Bin {share => assets/resources}/aero_semidisc.png | Bin {share => assets/resources}/aero_slot.png | Bin {share => assets/resources}/aero_text.png | Bin {share => assets/resources}/align16.png | Bin {share => assets/resources}/align32.png | Bin .../resources}/align_center32.png | Bin .../resources}/align_justify32.png | Bin {share => assets/resources}/align_left32.png | Bin {share => assets/resources}/align_right32.png | Bin {share => assets/resources}/aperture16.png | Bin {share => assets/resources}/aperture32.png | Bin {share => assets/resources}/arc16.png | Bin {share => assets/resources}/arc24.png | Bin {share => assets/resources}/arc32.png | Bin {share => assets/resources}/axis32.png | Bin {share => assets/resources}/backup24.png | Bin .../resources}/backup_export24.png | Bin .../resources}/backup_import24.png | Bin {share => assets/resources}/black32.png | Bin {share => assets/resources}/blocked16.png | Bin {share => assets/resources}/blue32.png | Bin {share => assets/resources}/bluelight12.png | Bin {share => assets/resources}/bold32.png | Bin {share => assets/resources}/bookmarks16.png | Bin {share => assets/resources}/bookmarks32.png | Bin {share => assets/resources}/brown32.png | Bin {share => assets/resources}/buffer16-2.png | Bin {share => assets/resources}/buffer16.png | Bin {share => assets/resources}/buffer20.png | Bin {share => assets/resources}/buffer24.png | Bin {share => assets/resources}/bug16.png | Bin {share => assets/resources}/bug32.png | Bin {share => assets/resources}/calculator16.png | Bin {share => assets/resources}/calculator24.png | Bin {share => assets/resources}/calibrate_16.png | Bin {share => assets/resources}/calibrate_32.png | Bin {share => assets/resources}/cancel_edit16.png | Bin {share => assets/resources}/cancel_edit32.png | Bin {share => assets/resources}/circle32.png | Bin {share => assets/resources}/clear_plot16.png | Bin {share => assets/resources}/clear_plot32.png | Bin .../resources}/close_edit_file16.png | Bin .../resources}/close_edit_file32.png | Bin {share => assets/resources}/cnc16.png | Bin {share => assets/resources}/cnc32.png | Bin {share => assets/resources}/code.png | Bin {share => assets/resources}/code_editor32.png | Bin {share => assets/resources}/convert24.png | Bin {share => assets/resources}/copperfill16.png | Bin {share => assets/resources}/copperfill32.png | Bin {share => assets/resources}/copy.png | Bin {share => assets/resources}/copy16.png | Bin {share => assets/resources}/copy32.png | Bin {share => assets/resources}/copy_file16.png | Bin {share => assets/resources}/copy_file32.png | Bin {share => assets/resources}/copy_geo.png | Bin {share => assets/resources}/corner32.png | Bin {share => assets/resources}/cut16.png | Bin {share => assets/resources}/cut16_bis.png | Bin {share => assets/resources}/cut32.png | Bin {share => assets/resources}/cut32_bis.png | Bin {share => assets/resources}/cutpath16.png | Bin {share => assets/resources}/cutpath24.png | Bin {share => assets/resources}/cutpath32.png | Bin .../resources}/dark_resources/Makefile | 0 .../resources}/dark_resources/about32.png | Bin .../resources}/dark_resources/active.gif | Bin .../resources}/dark_resources/active_2.gif | Bin .../dark_resources/active_2_static.png | Bin .../resources}/dark_resources/active_3.gif | Bin .../dark_resources/active_3_static.png | Bin .../resources}/dark_resources/active_4.gif | Bin .../dark_resources/active_4_static.png | Bin .../dark_resources/active_static.png | Bin .../resources}/dark_resources/addarray16.png | Bin .../resources}/dark_resources/addarray20.png | Bin .../resources}/dark_resources/addarray32.png | Bin .../resources}/dark_resources/aero.png | Bin .../resources}/dark_resources/aero_arc.png | Bin .../resources}/dark_resources/aero_array.png | Bin .../resources}/dark_resources/aero_buffer.png | Bin .../resources}/dark_resources/aero_circle.png | Bin .../dark_resources/aero_circle_geo.png | Bin .../resources}/dark_resources/aero_disc.png | Bin .../resources}/dark_resources/aero_drill.png | Bin .../dark_resources/aero_drill_array.png | Bin .../resources}/dark_resources/aero_path1.png | Bin .../resources}/dark_resources/aero_path2.png | Bin .../resources}/dark_resources/aero_path3.png | Bin .../resources}/dark_resources/aero_path4.png | Bin .../resources}/dark_resources/aero_path5.png | Bin .../dark_resources/aero_semidisc.png | Bin .../resources}/dark_resources/aero_slot.png | Bin .../resources}/dark_resources/aero_text.png | Bin .../resources}/dark_resources/align16.png | Bin .../resources}/dark_resources/align32.png | Bin .../dark_resources/align_center32.png | Bin .../dark_resources/align_justify32.png | Bin .../dark_resources/align_left32.png | Bin .../dark_resources/align_right32.png | Bin .../resources}/dark_resources/aperture16.png | Bin .../resources}/dark_resources/aperture32.png | Bin .../resources}/dark_resources/arc16.png | Bin .../resources}/dark_resources/arc24.png | Bin .../resources}/dark_resources/arc32.png | Bin .../resources}/dark_resources/axis32.png | Bin .../resources}/dark_resources/backup24.png | Bin .../dark_resources/backup_export24.png | Bin .../dark_resources/backup_import24.png | Bin .../resources}/dark_resources/black32.png | Bin .../resources}/dark_resources/blocked16.png | Bin .../resources}/dark_resources/blue32.png | Bin .../resources}/dark_resources/bluelight12.png | Bin .../resources}/dark_resources/bold32.png | Bin .../resources}/dark_resources/bookmarks16.png | Bin .../resources}/dark_resources/bookmarks32.png | Bin .../resources}/dark_resources/brown32.png | Bin .../resources}/dark_resources/buffer16-2.png | Bin .../resources}/dark_resources/buffer16.png | Bin .../resources}/dark_resources/buffer20.png | Bin .../resources}/dark_resources/buffer24.png | Bin .../resources}/dark_resources/bug16.png | Bin .../resources}/dark_resources/bug32.png | Bin .../dark_resources/calculator16.png | Bin .../dark_resources/calculator24.png | Bin .../dark_resources/calibrate_16.png | Bin .../dark_resources/calibrate_32.png | Bin .../dark_resources/cancel_edit16.png | Bin .../dark_resources/cancel_edit32.png | Bin .../resources}/dark_resources/circle32.png | Bin .../dark_resources/clear_plot16.png | Bin .../dark_resources/clear_plot32.png | Bin .../dark_resources/close_edit_file16.png | Bin .../dark_resources/close_edit_file32.png | Bin .../resources}/dark_resources/cnc16.png | Bin .../resources}/dark_resources/cnc32.png | Bin .../resources}/dark_resources/code.png | Bin .../dark_resources/code_editor32.png | Bin .../resources}/dark_resources/convert24.png | Bin .../dark_resources/copperfill16.png | Bin .../dark_resources/copperfill32.png | Bin .../resources}/dark_resources/copy.png | Bin .../resources}/dark_resources/copy16.png | Bin .../resources}/dark_resources/copy32.png | Bin .../resources}/dark_resources/copy_16.png | Bin .../resources}/dark_resources/copy_file16.png | Bin .../resources}/dark_resources/copy_file32.png | Bin .../resources}/dark_resources/copy_geo.png | Bin .../resources}/dark_resources/corner32.png | Bin .../resources}/dark_resources/cut16.png | Bin .../resources}/dark_resources/cut16_bis.png | Bin .../resources}/dark_resources/cut32.png | Bin .../resources}/dark_resources/cut32_bis.png | Bin .../resources}/dark_resources/cutpath16.png | Bin .../resources}/dark_resources/cutpath24.png | Bin .../resources}/dark_resources/cutpath32.png | Bin .../resources}/dark_resources/database32.png | Bin .../resources}/dark_resources/defaults.png | Bin .../resources}/dark_resources/delete32.png | Bin .../dark_resources/delete_file16.png | Bin .../dark_resources/delete_file32.png | Bin .../dark_resources/deleteshape16.png | Bin .../dark_resources/deleteshape24.png | Bin .../dark_resources/deleteshape32.png | Bin .../dark_resources/deselect_all32.png | Bin .../resources}/dark_resources/disable16.png | Bin .../resources}/dark_resources/disable32.png | Bin .../resources}/dark_resources/disc32.png | Bin .../resources}/dark_resources/distance16.png | Bin .../resources}/dark_resources/distance32.png | Bin .../dark_resources/distance_min16.png | Bin .../dark_resources/distance_min32.png | Bin .../dark_resources/doubleside16.png | Bin .../dark_resources/doubleside32.png | Bin .../resources}/dark_resources/draw32.png | Bin .../resources}/dark_resources/drill16.png | Bin .../resources}/dark_resources/drill32.png | Bin .../resources}/dark_resources/dxf16.png | Bin .../resources}/dark_resources/edit16.png | Bin .../resources}/dark_resources/edit32.png | Bin .../resources}/dark_resources/edit_file16.png | Bin .../resources}/dark_resources/edit_file32.png | Bin .../resources}/dark_resources/edit_ok16.png | Bin .../resources}/dark_resources/edit_ok32.png | Bin .../dark_resources/edit_ok32_bis.png | Bin .../resources}/dark_resources/eraser26.png | Bin .../resources}/dark_resources/explode32.png | Bin .../resources}/dark_resources/export.png | Bin .../dark_resources/export_png32.png | Bin .../dark_resources/extract_drill16.png | Bin .../dark_resources/extract_drill32.png | Bin .../dark_resources/fiducials_32.png | Bin .../resources}/dark_resources/file16.png | Bin .../resources}/dark_resources/file32.png | Bin .../resources}/dark_resources/film16.png | Bin .../resources}/dark_resources/film32.png | Bin .../dark_resources/flatcam_icon128.png | Bin .../dark_resources/flatcam_icon16.ico | Bin .../dark_resources/flatcam_icon16.png | Bin .../dark_resources/flatcam_icon24.png | Bin .../dark_resources/flatcam_icon256.ico | Bin .../dark_resources/flatcam_icon256.png | Bin .../dark_resources/flatcam_icon32.ico | Bin .../dark_resources/flatcam_icon32.png | Bin .../dark_resources/flatcam_icon32_green.png | Bin .../dark_resources/flatcam_icon48.ico | Bin .../dark_resources/flatcam_icon48.png | Bin .../resources}/dark_resources/flipx.png | Bin .../resources}/dark_resources/flipy.png | Bin .../resources}/dark_resources/floppy16.png | Bin .../resources}/dark_resources/floppy32.png | Bin .../resources}/dark_resources/folder16.png | Bin .../resources}/dark_resources/folder32.png | Bin .../dark_resources/folder32_Excellon.png | Bin .../dark_resources/folder32_bis.png | Bin .../dark_resources/folder32_gerber.png | Bin .../resources}/dark_resources/fscreen32.png | Bin .../resources}/dark_resources/gear32.png | Bin .../resources}/dark_resources/gear48.png | Bin .../resources}/dark_resources/geometry16.png | Bin .../resources}/dark_resources/geometry32.png | Bin .../resources}/dark_resources/globe16.png | Bin .../resources}/dark_resources/goemetry32.png | Bin .../resources}/dark_resources/graylight12.png | Bin .../resources}/dark_resources/green32.png | Bin .../dark_resources/greenlight12.png | Bin .../resources}/dark_resources/grid16.png | Bin .../resources}/dark_resources/grid32.png | Bin .../resources}/dark_resources/grid32_menu.png | Bin .../resources}/dark_resources/help.png | Bin .../resources}/dark_resources/home16.png | Bin .../resources}/dark_resources/image16.png | Bin .../resources}/dark_resources/image32.png | Bin .../resources}/dark_resources/import.png | Bin .../resources}/dark_resources/info16.png | Bin .../dark_resources/intersection16.png | Bin .../dark_resources/intersection24.png | Bin .../dark_resources/intersection32.png | Bin .../resources}/dark_resources/invert16.png | Bin .../resources}/dark_resources/invert32.png | Bin .../resources}/dark_resources/italic32.png | Bin .../resources}/dark_resources/join16.png | Bin .../resources}/dark_resources/join32.png | Bin .../resources}/dark_resources/jump_to16.png | Bin .../resources}/dark_resources/jump_to32.png | Bin .../resources}/dark_resources/language32.png | Bin .../resources}/dark_resources/letter_t_32.png | Bin .../resources}/dark_resources/link16.png | Bin .../resources}/dark_resources/locate16.png | Bin .../resources}/dark_resources/locate32.png | Bin .../resources}/dark_resources/machine16.png | Bin .../resources}/dark_resources/markarea32.png | Bin .../resources}/dark_resources/move16.png | Bin .../resources}/dark_resources/move32.png | Bin .../resources}/dark_resources/move32_bis.png | Bin .../resources}/dark_resources/ncc16.png | Bin .../resources}/dark_resources/new_exc32.png | Bin .../resources}/dark_resources/new_file16.png | Bin .../resources}/dark_resources/new_file32.png | Bin .../dark_resources/new_file_exc16.png | Bin .../dark_resources/new_file_exc32.png | Bin .../dark_resources/new_file_geo16.png | Bin .../dark_resources/new_file_geo32.png | Bin .../dark_resources/new_file_grb16.png | Bin .../dark_resources/new_file_grb32.png | Bin .../resources}/dark_resources/new_geo16.png | Bin .../resources}/dark_resources/new_geo32.png | Bin .../dark_resources/new_geo32_bis.png | Bin .../resources}/dark_resources/notebook16.png | Bin .../resources}/dark_resources/notebook32.png | Bin .../resources}/dark_resources/notes16.png | Bin .../resources}/dark_resources/notes16_1.png | Bin .../resources}/dark_resources/offset32.png | Bin .../resources}/dark_resources/offsetx32.png | Bin .../resources}/dark_resources/offsety32.png | Bin .../dark_resources/open_excellon32.png | Bin .../dark_resources/open_script32.png | Bin .../resources}/dark_resources/origin.png | Bin .../resources}/dark_resources/origin16.png | Bin .../resources}/dark_resources/origin2_16.png | Bin .../resources}/dark_resources/origin2_32.png | Bin .../resources}/dark_resources/origin32.png | Bin .../resources}/dark_resources/padarray32.png | Bin .../resources}/dark_resources/paint16.png | Bin .../resources}/dark_resources/paint20.png | Bin .../resources}/dark_resources/paint20_1.png | Bin .../resources}/dark_resources/panel16.png | Bin .../resources}/dark_resources/panel32.png | Bin .../resources}/dark_resources/panelize16.png | Bin .../resources}/dark_resources/panelize32.png | Bin .../resources}/dark_resources/path32.png | Bin .../resources}/dark_resources/pdf32.png | Bin .../resources}/dark_resources/pdf_link16.png | Bin .../resources}/dark_resources/plot32.png | Bin .../resources}/dark_resources/plus16.png | Bin .../resources}/dark_resources/plus32.png | Bin .../resources}/dark_resources/pointer.png | Bin .../resources}/dark_resources/pointer32.png | Bin .../dark_resources/poligonize32.png | Bin .../resources}/dark_resources/polygon32.png | Bin .../resources}/dark_resources/power16.png | Bin .../resources}/dark_resources/pref.png | Bin .../resources}/dark_resources/printer16.png | Bin .../resources}/dark_resources/printer32.png | Bin .../resources}/dark_resources/project16.png | Bin .../dark_resources/project_save16.png | Bin .../dark_resources/project_save32.png | Bin .../dark_resources/properties32.png | Bin .../resources}/dark_resources/punch16.png | Bin .../resources}/dark_resources/punch32.png | Bin .../resources}/dark_resources/qrcode32.png | Bin .../dark_resources/recent_files.png | Bin .../resources}/dark_resources/rectangle32.png | Bin .../resources}/dark_resources/recycle16.png | Bin .../resources}/dark_resources/red32.png | Bin .../resources}/dark_resources/redlight12.png | Bin .../resources}/dark_resources/replot16.png | Bin .../resources}/dark_resources/replot32.png | Bin .../resources}/dark_resources/resize16.png | Bin .../resources}/dark_resources/rotate.png | Bin .../resources}/dark_resources/rules32.png | Bin .../resources}/dark_resources/save_as.png | Bin .../resources}/dark_resources/scale32.png | Bin .../resources}/dark_resources/script14.png | Bin .../resources}/dark_resources/script16.png | Bin .../dark_resources/script_new16.png | Bin .../dark_resources/script_new24.png | Bin .../dark_resources/script_open16.png | Bin .../dark_resources/script_open18.png | Bin .../dark_resources/script_open24.png | Bin .../resources}/dark_resources/select_all.png | Bin .../resources}/dark_resources/semidisc32.png | Bin .../resources}/dark_resources/set_color16.png | Bin .../resources}/dark_resources/set_color32.png | Bin .../resources}/dark_resources/shell16.png | Bin .../resources}/dark_resources/shell32.png | Bin .../resources}/dark_resources/shortcuts24.png | Bin .../resources}/dark_resources/skewX.png | Bin .../resources}/dark_resources/skewY.png | Bin .../resources}/dark_resources/slot26.png | Bin .../dark_resources/slot_array26.png | Bin .../resources}/dark_resources/snap_16.png | Bin .../dark_resources/snap_filled_16.png | Bin .../dark_resources/solderpaste32.png | Bin .../dark_resources/solderpastebis32.png | Bin .../resources}/dark_resources/source32.png | Bin .../resources}/dark_resources/splash.png | Bin .../resources}/dark_resources/sub32.png | Bin .../resources}/dark_resources/subtract16.png | Bin .../resources}/dark_resources/subtract24.png | Bin .../resources}/dark_resources/subtract32.png | Bin .../resources}/dark_resources/svg16.png | Bin .../resources}/dark_resources/svg32.png | Bin .../resources}/dark_resources/text32.png | Bin .../dark_resources/toggle_units16.png | Bin .../dark_resources/toggle_units32.png | Bin .../resources}/dark_resources/track32.png | Bin .../resources}/dark_resources/transform.png | Bin .../resources}/dark_resources/trash16.png | Bin .../resources}/dark_resources/trash32.png | Bin .../resources}/dark_resources/tv16.png | Bin .../resources}/dark_resources/underline32.png | Bin .../resources}/dark_resources/union16.png | Bin .../resources}/dark_resources/union32.png | Bin .../resources}/dark_resources/videohelp24.png | Bin .../resources}/dark_resources/view64.png | Bin .../resources}/dark_resources/violet32.png | Bin .../resources}/dark_resources/warning.png | Bin .../resources}/dark_resources/white32.png | Bin .../resources}/dark_resources/workspace24.png | Bin .../resources}/dark_resources/yellow32.png | Bin .../dark_resources/yellowlight12.png | Bin .../resources}/dark_resources/youtube32.png | Bin .../resources}/dark_resources/zoom_fit32.png | Bin .../resources}/dark_resources/zoom_in32.png | Bin .../resources}/dark_resources/zoom_out32.png | Bin {share => assets/resources}/database32.png | Bin {share => assets/resources}/defaults.png | Bin {share => assets/resources}/delete32.png | Bin {share => assets/resources}/delete_file16.png | Bin {share => assets/resources}/delete_file32.png | Bin {share => assets/resources}/deleteshape16.png | Bin {share => assets/resources}/deleteshape24.png | Bin {share => assets/resources}/deleteshape32.png | Bin .../resources}/deselect_all32.png | Bin {share => assets/resources}/disable16.png | Bin {share => assets/resources}/disable32.png | Bin {share => assets/resources}/disc32.png | Bin {share => assets/resources}/distance16.png | Bin {share => assets/resources}/distance32.png | Bin .../resources}/distance_min16.png | Bin .../resources}/distance_min32.png | Bin {share => assets/resources}/doubleside16.png | Bin {share => assets/resources}/doubleside32.png | Bin {share => assets/resources}/draw32.png | Bin {share => assets/resources}/drill16.png | Bin {share => assets/resources}/drill32.png | Bin {share => assets/resources}/dxf16.png | Bin {share => assets/resources}/edit16.png | Bin {share => assets/resources}/edit32.png | Bin {share => assets/resources}/edit_file16.png | Bin {share => assets/resources}/edit_file32.png | Bin {share => assets/resources}/edit_ok16.png | Bin {share => assets/resources}/edit_ok32.png | Bin {share => assets/resources}/edit_ok32_bis.png | Bin {share => assets/resources}/eraser26.png | Bin {share => assets/resources}/explode32.png | Bin {share => assets/resources}/export.png | Bin {share => assets/resources}/export_png32.png | Bin .../resources}/extract_drill16.png | Bin .../resources}/extract_drill32.png | Bin {share => assets/resources}/fiducials_32.png | Bin {share => assets/resources}/file16.png | Bin {share => assets/resources}/file32.png | Bin {share => assets/resources}/film16.png | Bin {share => assets/resources}/film32.png | Bin .../resources}/flatcam_icon128.png | Bin .../resources}/flatcam_icon128_inv.png | Bin .../resources}/flatcam_icon16.ico | Bin .../resources}/flatcam_icon16.png | Bin .../resources}/flatcam_icon24.png | Bin .../resources}/flatcam_icon256.ico | Bin .../resources}/flatcam_icon256.png | Bin .../resources}/flatcam_icon32.ico | Bin .../resources}/flatcam_icon32.png | Bin .../resources}/flatcam_icon32_green.png | Bin .../resources}/flatcam_icon48.ico | Bin .../resources}/flatcam_icon48.png | Bin {share => assets/resources}/flipx.png | Bin {share => assets/resources}/flipy.png | Bin {share => assets/resources}/floppy16.png | Bin {share => assets/resources}/floppy32.png | Bin {share => assets/resources}/folder16.png | Bin {share => assets/resources}/folder32.png | Bin .../resources}/folder32_Excellon.png | Bin {share => assets/resources}/folder32_bis.png | Bin .../resources}/folder32_gerber.png | Bin {share => assets/resources}/fscreen32.png | Bin {share => assets/resources}/gear32.png | Bin {share => assets/resources}/gear48.png | Bin {share => assets/resources}/geometry16.png | Bin {share => assets/resources}/geometry32.png | Bin {share => assets/resources}/globe16.png | Bin {share => assets/resources}/graylight12.png | Bin {share => assets/resources}/green32.png | Bin {share => assets/resources}/greenlight12.png | Bin {share => assets/resources}/grid16.png | Bin {share => assets/resources}/grid32.png | Bin {share => assets/resources}/grid32_menu.png | Bin {share => assets/resources}/help.png | Bin {share => assets/resources}/home16.png | Bin {share => assets/resources}/image16.png | Bin {share => assets/resources}/image32.png | Bin {share => assets/resources}/import.png | Bin {share => assets/resources}/info16.png | Bin .../resources}/intersection16.png | Bin .../resources}/intersection24.png | Bin .../resources}/intersection32.png | Bin {share => assets/resources}/invert16.png | Bin {share => assets/resources}/invert32.png | Bin {share => assets/resources}/italic32.png | Bin {share => assets/resources}/join16.png | Bin {share => assets/resources}/join32.png | Bin {share => assets/resources}/jump_to16.png | Bin {share => assets/resources}/jump_to32.png | Bin {share => assets/resources}/language32.png | Bin {share => assets/resources}/letter_t_32.png | Bin {share => assets/resources}/link16.png | Bin {share => assets/resources}/locate16.png | Bin {share => assets/resources}/locate32.png | Bin {share => assets/resources}/machine16.png | Bin {share => assets/resources}/markarea32.png | Bin {share => assets/resources}/move16.png | Bin {share => assets/resources}/move32.png | Bin {share => assets/resources}/move32_bis.png | Bin {share => assets/resources}/ncc16.png | Bin {share => assets/resources}/new_exc32.png | Bin {share => assets/resources}/new_file16.png | Bin {share => assets/resources}/new_file32.png | Bin .../resources}/new_file_exc16.png | Bin .../resources}/new_file_exc32.png | Bin .../resources}/new_file_geo16.png | Bin .../resources}/new_file_geo32.png | Bin .../resources}/new_file_grb16.png | Bin .../resources}/new_file_grb32.png | Bin {share => assets/resources}/new_geo16.png | Bin {share => assets/resources}/new_geo32.png | Bin {share => assets/resources}/new_geo32_bis.png | Bin {share => assets/resources}/notebook16.png | Bin {share => assets/resources}/notebook32.png | Bin {share => assets/resources}/notes16.png | Bin {share => assets/resources}/notes16_1.png | Bin {share => assets/resources}/offsetx32.png | Bin {share => assets/resources}/offsety32.png | Bin .../resources}/open_excellon32.png | Bin {share => assets/resources}/open_script32.png | Bin {share => assets/resources}/origin.png | Bin {share => assets/resources}/origin16.png | Bin {share => assets/resources}/origin2_16.png | Bin {share => assets/resources}/origin2_32.png | Bin {share => assets/resources}/origin32.png | Bin {share => assets/resources}/padarray32.png | Bin {share => assets/resources}/paint16.png | Bin {share => assets/resources}/paint20.png | Bin {share => assets/resources}/paint20_1.png | Bin {share => assets/resources}/panel16.png | Bin {share => assets/resources}/panel32.png | Bin {share => assets/resources}/panelize16.png | Bin {share => assets/resources}/panelize32.png | Bin {share => assets/resources}/path32.png | Bin {share => assets/resources}/pdf32.png | Bin {share => assets/resources}/pdf_link16.png | Bin {share => assets/resources}/plot32.png | Bin {share => assets/resources}/plus16.png | Bin {share => assets/resources}/plus32.png | Bin {share => assets/resources}/pointer.svg | 0 {share => assets/resources}/pointer32.png | Bin {share => assets/resources}/poligonize32.png | Bin {share => assets/resources}/polygon32.png | Bin {share => assets/resources}/power16.png | Bin {share => assets/resources}/pref.png | Bin {share => assets/resources}/printer16.png | Bin {share => assets/resources}/printer32.png | Bin {share => assets/resources}/project16.png | Bin .../resources}/project_save16.png | Bin .../resources}/project_save32.png | Bin {share => assets/resources}/properties32.png | Bin {share => assets/resources}/punch16.png | Bin {share => assets/resources}/punch32.png | Bin {share => assets/resources}/qrcode32.png | Bin {share => assets/resources}/recent_files.png | Bin {share => assets/resources}/rectangle32.png | Bin {share => assets/resources}/recycle16.png | Bin {share => assets/resources}/red32.png | Bin {share => assets/resources}/redlight12.png | Bin {share => assets/resources}/replot16.png | Bin {share => assets/resources}/replot32.png | Bin {share => assets/resources}/resize16.png | Bin {share => assets/resources}/rotate.png | Bin {share => assets/resources}/rules32.png | Bin {share => assets/resources}/save_as.png | Bin {share => assets/resources}/scale32.png | Bin {share => assets/resources}/script14.png | Bin {share => assets/resources}/script16.png | Bin {share => assets/resources}/script_new16.png | Bin {share => assets/resources}/script_new24.png | Bin {share => assets/resources}/script_open16.png | Bin {share => assets/resources}/script_open18.png | Bin {share => assets/resources}/script_open24.png | Bin {share => assets/resources}/select_all.png | Bin {share => assets/resources}/semidisc32.png | Bin {share => assets/resources}/set_color16.png | Bin {share => assets/resources}/set_color32.png | Bin {share => assets/resources}/shell16.png | Bin {share => assets/resources}/shell32.png | Bin {share => assets/resources}/shortcuts24.png | Bin {share => assets/resources}/skewX.png | Bin {share => assets/resources}/skewY.png | Bin {share => assets/resources}/slot26.png | Bin {share => assets/resources}/slot_array26.png | Bin {share => assets/resources}/snap_16.png | Bin .../resources}/snap_filled_16.png | Bin {share => assets/resources}/solderpaste32.png | Bin .../resources}/solderpastebis32.png | Bin {share => assets/resources}/source32.png | Bin {share => assets/resources}/splash.png | Bin {share => assets/resources}/sub32.png | Bin {share => assets/resources}/subtract16.png | Bin {share => assets/resources}/subtract24.png | Bin {share => assets/resources}/subtract32.png | Bin {share => assets/resources}/svg16.png | Bin {share => assets/resources}/svg32.png | Bin {share => assets/resources}/text32.png | Bin .../resources}/toggle_units16.png | Bin .../resources}/toggle_units32.png | Bin {share => assets/resources}/track32.png | Bin {share => assets/resources}/transform.png | Bin {share => assets/resources}/trash16.png | Bin {share => assets/resources}/trash32.png | Bin {share => assets/resources}/tv16.png | Bin {share => assets/resources}/underline32.png | Bin {share => assets/resources}/union16.png | Bin {share => assets/resources}/union32.png | Bin {share => assets/resources}/videohelp24.png | Bin {share => assets/resources}/view64.png | Bin {share => assets/resources}/violet32.png | Bin {share => assets/resources}/warning.png | Bin {share => assets/resources}/white32.png | Bin {share => assets/resources}/workspace24.png | Bin {share => assets/resources}/yellow32.png | Bin {share => assets/resources}/yellowlight12.png | Bin {share => assets/resources}/youtube32.png | Bin {share => assets/resources}/zoom_fit32.png | Bin {share => assets/resources}/zoom_in32.png | Bin {share => assets/resources}/zoom_out32.png | Bin flatcamGUI/ObjectUI.py | 29 ++++++------- flatcamGUI/PreferencesUI.py | 4 +- flatcamObjects/ObjectCollection.py | 14 +++---- make_freezed.py | 4 +- setup_ubuntu.sh | 1 + 629 files changed, 61 insertions(+), 43 deletions(-) rename {share => assets/resources}/about32.png (100%) rename {share => assets/resources}/active.gif (100%) rename {share => assets/resources}/active_2.gif (100%) rename {share => assets/resources}/active_2_static.png (100%) rename {share => assets/resources}/active_3.gif (100%) rename {share => assets/resources}/active_3_static.png (100%) rename {share => assets/resources}/active_4.gif (100%) rename {share => assets/resources}/active_4_static.png (100%) rename {share => assets/resources}/active_static.png (100%) rename {share => assets/resources}/addarray16.png (100%) rename {share => assets/resources}/addarray20.png (100%) rename {share => assets/resources}/addarray32.png (100%) rename {share => assets/resources}/aero.png (100%) rename {share => assets/resources}/aero_arc.png (100%) rename {share => assets/resources}/aero_array.png (100%) rename {share => assets/resources}/aero_buffer.png (100%) rename {share => assets/resources}/aero_circle.png (100%) rename {share => assets/resources}/aero_circle_geo.png (100%) rename {share => assets/resources}/aero_disc.png (100%) rename {share => assets/resources}/aero_drill.png (100%) rename {share => assets/resources}/aero_drill_array.png (100%) rename {share => assets/resources}/aero_path1.png (100%) rename {share => assets/resources}/aero_path2.png (100%) rename {share => assets/resources}/aero_path3.png (100%) rename {share => assets/resources}/aero_path4.png (100%) rename {share => assets/resources}/aero_path5.png (100%) rename {share => assets/resources}/aero_semidisc.png (100%) rename {share => assets/resources}/aero_slot.png (100%) rename {share => assets/resources}/aero_text.png (100%) rename {share => assets/resources}/align16.png (100%) rename {share => assets/resources}/align32.png (100%) rename {share => assets/resources}/align_center32.png (100%) rename {share => assets/resources}/align_justify32.png (100%) rename {share => assets/resources}/align_left32.png (100%) rename {share => assets/resources}/align_right32.png (100%) rename {share => assets/resources}/aperture16.png (100%) rename {share => assets/resources}/aperture32.png (100%) rename {share => assets/resources}/arc16.png (100%) rename {share => assets/resources}/arc24.png (100%) rename {share => assets/resources}/arc32.png (100%) rename {share => assets/resources}/axis32.png (100%) rename {share => assets/resources}/backup24.png (100%) rename {share => assets/resources}/backup_export24.png (100%) rename {share => assets/resources}/backup_import24.png (100%) rename {share => assets/resources}/black32.png (100%) rename {share => assets/resources}/blocked16.png (100%) rename {share => assets/resources}/blue32.png (100%) rename {share => assets/resources}/bluelight12.png (100%) rename {share => assets/resources}/bold32.png (100%) rename {share => assets/resources}/bookmarks16.png (100%) rename {share => assets/resources}/bookmarks32.png (100%) rename {share => assets/resources}/brown32.png (100%) rename {share => assets/resources}/buffer16-2.png (100%) rename {share => assets/resources}/buffer16.png (100%) rename {share => assets/resources}/buffer20.png (100%) rename {share => assets/resources}/buffer24.png (100%) rename {share => assets/resources}/bug16.png (100%) rename {share => assets/resources}/bug32.png (100%) rename {share => assets/resources}/calculator16.png (100%) rename {share => assets/resources}/calculator24.png (100%) rename {share => assets/resources}/calibrate_16.png (100%) rename {share => assets/resources}/calibrate_32.png (100%) rename {share => assets/resources}/cancel_edit16.png (100%) rename {share => assets/resources}/cancel_edit32.png (100%) rename {share => assets/resources}/circle32.png (100%) rename {share => assets/resources}/clear_plot16.png (100%) rename {share => assets/resources}/clear_plot32.png (100%) rename {share => assets/resources}/close_edit_file16.png (100%) rename {share => assets/resources}/close_edit_file32.png (100%) rename {share => assets/resources}/cnc16.png (100%) rename {share => assets/resources}/cnc32.png (100%) rename {share => assets/resources}/code.png (100%) rename {share => assets/resources}/code_editor32.png (100%) rename {share => assets/resources}/convert24.png (100%) rename {share => assets/resources}/copperfill16.png (100%) rename {share => assets/resources}/copperfill32.png (100%) rename {share => assets/resources}/copy.png (100%) rename {share => assets/resources}/copy16.png (100%) rename {share => assets/resources}/copy32.png (100%) rename {share => assets/resources}/copy_file16.png (100%) rename {share => assets/resources}/copy_file32.png (100%) rename {share => assets/resources}/copy_geo.png (100%) rename {share => assets/resources}/corner32.png (100%) rename {share => assets/resources}/cut16.png (100%) rename {share => assets/resources}/cut16_bis.png (100%) rename {share => assets/resources}/cut32.png (100%) rename {share => assets/resources}/cut32_bis.png (100%) rename {share => assets/resources}/cutpath16.png (100%) rename {share => assets/resources}/cutpath24.png (100%) rename {share => assets/resources}/cutpath32.png (100%) rename {share => assets/resources}/dark_resources/Makefile (100%) rename {share => assets/resources}/dark_resources/about32.png (100%) rename {share => assets/resources}/dark_resources/active.gif (100%) rename {share => assets/resources}/dark_resources/active_2.gif (100%) rename {share => assets/resources}/dark_resources/active_2_static.png (100%) rename {share => assets/resources}/dark_resources/active_3.gif (100%) rename {share => assets/resources}/dark_resources/active_3_static.png (100%) rename {share => assets/resources}/dark_resources/active_4.gif (100%) rename {share => assets/resources}/dark_resources/active_4_static.png (100%) rename {share => assets/resources}/dark_resources/active_static.png (100%) rename {share => assets/resources}/dark_resources/addarray16.png (100%) rename {share => assets/resources}/dark_resources/addarray20.png (100%) rename {share => assets/resources}/dark_resources/addarray32.png (100%) rename {share => assets/resources}/dark_resources/aero.png (100%) rename {share => assets/resources}/dark_resources/aero_arc.png (100%) rename {share => assets/resources}/dark_resources/aero_array.png (100%) rename {share => assets/resources}/dark_resources/aero_buffer.png (100%) rename {share => assets/resources}/dark_resources/aero_circle.png (100%) rename {share => assets/resources}/dark_resources/aero_circle_geo.png (100%) rename {share => assets/resources}/dark_resources/aero_disc.png (100%) rename {share => assets/resources}/dark_resources/aero_drill.png (100%) rename {share => assets/resources}/dark_resources/aero_drill_array.png (100%) rename {share => assets/resources}/dark_resources/aero_path1.png (100%) rename {share => assets/resources}/dark_resources/aero_path2.png (100%) rename {share => assets/resources}/dark_resources/aero_path3.png (100%) rename {share => assets/resources}/dark_resources/aero_path4.png (100%) rename {share => assets/resources}/dark_resources/aero_path5.png (100%) rename {share => assets/resources}/dark_resources/aero_semidisc.png (100%) rename {share => assets/resources}/dark_resources/aero_slot.png (100%) rename {share => assets/resources}/dark_resources/aero_text.png (100%) rename {share => assets/resources}/dark_resources/align16.png (100%) rename {share => assets/resources}/dark_resources/align32.png (100%) rename {share => assets/resources}/dark_resources/align_center32.png (100%) rename {share => assets/resources}/dark_resources/align_justify32.png (100%) rename {share => assets/resources}/dark_resources/align_left32.png (100%) rename {share => assets/resources}/dark_resources/align_right32.png (100%) rename {share => assets/resources}/dark_resources/aperture16.png (100%) rename {share => assets/resources}/dark_resources/aperture32.png (100%) rename {share => assets/resources}/dark_resources/arc16.png (100%) rename {share => assets/resources}/dark_resources/arc24.png (100%) rename {share => assets/resources}/dark_resources/arc32.png (100%) rename {share => assets/resources}/dark_resources/axis32.png (100%) rename {share => assets/resources}/dark_resources/backup24.png (100%) rename {share => assets/resources}/dark_resources/backup_export24.png (100%) rename {share => assets/resources}/dark_resources/backup_import24.png (100%) rename {share => assets/resources}/dark_resources/black32.png (100%) rename {share => assets/resources}/dark_resources/blocked16.png (100%) rename {share => assets/resources}/dark_resources/blue32.png (100%) rename {share => assets/resources}/dark_resources/bluelight12.png (100%) rename {share => assets/resources}/dark_resources/bold32.png (100%) rename {share => assets/resources}/dark_resources/bookmarks16.png (100%) rename {share => assets/resources}/dark_resources/bookmarks32.png (100%) rename {share => assets/resources}/dark_resources/brown32.png (100%) rename {share => assets/resources}/dark_resources/buffer16-2.png (100%) rename {share => assets/resources}/dark_resources/buffer16.png (100%) rename {share => assets/resources}/dark_resources/buffer20.png (100%) rename {share => assets/resources}/dark_resources/buffer24.png (100%) rename {share => assets/resources}/dark_resources/bug16.png (100%) rename {share => assets/resources}/dark_resources/bug32.png (100%) rename {share => assets/resources}/dark_resources/calculator16.png (100%) rename {share => assets/resources}/dark_resources/calculator24.png (100%) rename {share => assets/resources}/dark_resources/calibrate_16.png (100%) rename {share => assets/resources}/dark_resources/calibrate_32.png (100%) rename {share => assets/resources}/dark_resources/cancel_edit16.png (100%) rename {share => assets/resources}/dark_resources/cancel_edit32.png (100%) rename {share => assets/resources}/dark_resources/circle32.png (100%) rename {share => assets/resources}/dark_resources/clear_plot16.png (100%) rename {share => assets/resources}/dark_resources/clear_plot32.png (100%) rename {share => assets/resources}/dark_resources/close_edit_file16.png (100%) rename {share => assets/resources}/dark_resources/close_edit_file32.png (100%) rename {share => assets/resources}/dark_resources/cnc16.png (100%) rename {share => assets/resources}/dark_resources/cnc32.png (100%) rename {share => assets/resources}/dark_resources/code.png (100%) rename {share => assets/resources}/dark_resources/code_editor32.png (100%) rename {share => assets/resources}/dark_resources/convert24.png (100%) rename {share => assets/resources}/dark_resources/copperfill16.png (100%) rename {share => assets/resources}/dark_resources/copperfill32.png (100%) rename {share => assets/resources}/dark_resources/copy.png (100%) rename {share => assets/resources}/dark_resources/copy16.png (100%) rename {share => assets/resources}/dark_resources/copy32.png (100%) rename {share => assets/resources}/dark_resources/copy_16.png (100%) rename {share => assets/resources}/dark_resources/copy_file16.png (100%) rename {share => assets/resources}/dark_resources/copy_file32.png (100%) rename {share => assets/resources}/dark_resources/copy_geo.png (100%) rename {share => assets/resources}/dark_resources/corner32.png (100%) rename {share => assets/resources}/dark_resources/cut16.png (100%) rename {share => assets/resources}/dark_resources/cut16_bis.png (100%) rename {share => assets/resources}/dark_resources/cut32.png (100%) rename {share => assets/resources}/dark_resources/cut32_bis.png (100%) rename {share => assets/resources}/dark_resources/cutpath16.png (100%) rename {share => assets/resources}/dark_resources/cutpath24.png (100%) rename {share => assets/resources}/dark_resources/cutpath32.png (100%) rename {share => assets/resources}/dark_resources/database32.png (100%) rename {share => assets/resources}/dark_resources/defaults.png (100%) rename {share => assets/resources}/dark_resources/delete32.png (100%) rename {share => assets/resources}/dark_resources/delete_file16.png (100%) rename {share => assets/resources}/dark_resources/delete_file32.png (100%) rename {share => assets/resources}/dark_resources/deleteshape16.png (100%) rename {share => assets/resources}/dark_resources/deleteshape24.png (100%) rename {share => assets/resources}/dark_resources/deleteshape32.png (100%) rename {share => assets/resources}/dark_resources/deselect_all32.png (100%) rename {share => assets/resources}/dark_resources/disable16.png (100%) rename {share => assets/resources}/dark_resources/disable32.png (100%) rename {share => assets/resources}/dark_resources/disc32.png (100%) rename {share => assets/resources}/dark_resources/distance16.png (100%) rename {share => assets/resources}/dark_resources/distance32.png (100%) rename {share => assets/resources}/dark_resources/distance_min16.png (100%) rename {share => assets/resources}/dark_resources/distance_min32.png (100%) rename {share => assets/resources}/dark_resources/doubleside16.png (100%) rename {share => assets/resources}/dark_resources/doubleside32.png (100%) rename {share => assets/resources}/dark_resources/draw32.png (100%) rename {share => assets/resources}/dark_resources/drill16.png (100%) rename {share => assets/resources}/dark_resources/drill32.png (100%) rename {share => assets/resources}/dark_resources/dxf16.png (100%) rename {share => assets/resources}/dark_resources/edit16.png (100%) rename {share => assets/resources}/dark_resources/edit32.png (100%) rename {share => assets/resources}/dark_resources/edit_file16.png (100%) rename {share => assets/resources}/dark_resources/edit_file32.png (100%) rename {share => assets/resources}/dark_resources/edit_ok16.png (100%) rename {share => assets/resources}/dark_resources/edit_ok32.png (100%) rename {share => assets/resources}/dark_resources/edit_ok32_bis.png (100%) rename {share => assets/resources}/dark_resources/eraser26.png (100%) rename {share => assets/resources}/dark_resources/explode32.png (100%) rename {share => assets/resources}/dark_resources/export.png (100%) rename {share => assets/resources}/dark_resources/export_png32.png (100%) rename {share => assets/resources}/dark_resources/extract_drill16.png (100%) rename {share => assets/resources}/dark_resources/extract_drill32.png (100%) rename {share => assets/resources}/dark_resources/fiducials_32.png (100%) rename {share => assets/resources}/dark_resources/file16.png (100%) rename {share => assets/resources}/dark_resources/file32.png (100%) rename {share => assets/resources}/dark_resources/film16.png (100%) rename {share => assets/resources}/dark_resources/film32.png (100%) rename {share => assets/resources}/dark_resources/flatcam_icon128.png (100%) rename {share => assets/resources}/dark_resources/flatcam_icon16.ico (100%) rename {share => assets/resources}/dark_resources/flatcam_icon16.png (100%) rename {share => assets/resources}/dark_resources/flatcam_icon24.png (100%) rename {share => assets/resources}/dark_resources/flatcam_icon256.ico (100%) rename {share => assets/resources}/dark_resources/flatcam_icon256.png (100%) rename {share => assets/resources}/dark_resources/flatcam_icon32.ico (100%) rename {share => assets/resources}/dark_resources/flatcam_icon32.png (100%) rename {share => assets/resources}/dark_resources/flatcam_icon32_green.png (100%) rename {share => assets/resources}/dark_resources/flatcam_icon48.ico (100%) rename {share => assets/resources}/dark_resources/flatcam_icon48.png (100%) rename {share => assets/resources}/dark_resources/flipx.png (100%) rename {share => assets/resources}/dark_resources/flipy.png (100%) rename {share => assets/resources}/dark_resources/floppy16.png (100%) rename {share => assets/resources}/dark_resources/floppy32.png (100%) rename {share => assets/resources}/dark_resources/folder16.png (100%) rename {share => assets/resources}/dark_resources/folder32.png (100%) rename {share => assets/resources}/dark_resources/folder32_Excellon.png (100%) rename {share => assets/resources}/dark_resources/folder32_bis.png (100%) rename {share => assets/resources}/dark_resources/folder32_gerber.png (100%) rename {share => assets/resources}/dark_resources/fscreen32.png (100%) rename {share => assets/resources}/dark_resources/gear32.png (100%) rename {share => assets/resources}/dark_resources/gear48.png (100%) rename {share => assets/resources}/dark_resources/geometry16.png (100%) rename {share => assets/resources}/dark_resources/geometry32.png (100%) rename {share => assets/resources}/dark_resources/globe16.png (100%) rename {share => assets/resources}/dark_resources/goemetry32.png (100%) rename {share => assets/resources}/dark_resources/graylight12.png (100%) rename {share => assets/resources}/dark_resources/green32.png (100%) rename {share => assets/resources}/dark_resources/greenlight12.png (100%) rename {share => assets/resources}/dark_resources/grid16.png (100%) rename {share => assets/resources}/dark_resources/grid32.png (100%) rename {share => assets/resources}/dark_resources/grid32_menu.png (100%) rename {share => assets/resources}/dark_resources/help.png (100%) rename {share => assets/resources}/dark_resources/home16.png (100%) rename {share => assets/resources}/dark_resources/image16.png (100%) rename {share => assets/resources}/dark_resources/image32.png (100%) rename {share => assets/resources}/dark_resources/import.png (100%) rename {share => assets/resources}/dark_resources/info16.png (100%) rename {share => assets/resources}/dark_resources/intersection16.png (100%) rename {share => assets/resources}/dark_resources/intersection24.png (100%) rename {share => assets/resources}/dark_resources/intersection32.png (100%) rename {share => assets/resources}/dark_resources/invert16.png (100%) rename {share => assets/resources}/dark_resources/invert32.png (100%) rename {share => assets/resources}/dark_resources/italic32.png (100%) rename {share => assets/resources}/dark_resources/join16.png (100%) rename {share => assets/resources}/dark_resources/join32.png (100%) rename {share => assets/resources}/dark_resources/jump_to16.png (100%) rename {share => assets/resources}/dark_resources/jump_to32.png (100%) rename {share => assets/resources}/dark_resources/language32.png (100%) rename {share => assets/resources}/dark_resources/letter_t_32.png (100%) rename {share => assets/resources}/dark_resources/link16.png (100%) rename {share => assets/resources}/dark_resources/locate16.png (100%) rename {share => assets/resources}/dark_resources/locate32.png (100%) rename {share => assets/resources}/dark_resources/machine16.png (100%) rename {share => assets/resources}/dark_resources/markarea32.png (100%) rename {share => assets/resources}/dark_resources/move16.png (100%) rename {share => assets/resources}/dark_resources/move32.png (100%) rename {share => assets/resources}/dark_resources/move32_bis.png (100%) rename {share => assets/resources}/dark_resources/ncc16.png (100%) rename {share => assets/resources}/dark_resources/new_exc32.png (100%) rename {share => assets/resources}/dark_resources/new_file16.png (100%) rename {share => assets/resources}/dark_resources/new_file32.png (100%) rename {share => assets/resources}/dark_resources/new_file_exc16.png (100%) rename {share => assets/resources}/dark_resources/new_file_exc32.png (100%) rename {share => assets/resources}/dark_resources/new_file_geo16.png (100%) rename {share => assets/resources}/dark_resources/new_file_geo32.png (100%) rename {share => assets/resources}/dark_resources/new_file_grb16.png (100%) rename {share => assets/resources}/dark_resources/new_file_grb32.png (100%) rename {share => assets/resources}/dark_resources/new_geo16.png (100%) rename {share => assets/resources}/dark_resources/new_geo32.png (100%) rename {share => assets/resources}/dark_resources/new_geo32_bis.png (100%) rename {share => assets/resources}/dark_resources/notebook16.png (100%) rename {share => assets/resources}/dark_resources/notebook32.png (100%) rename {share => assets/resources}/dark_resources/notes16.png (100%) rename {share => assets/resources}/dark_resources/notes16_1.png (100%) rename {share => assets/resources}/dark_resources/offset32.png (100%) rename {share => assets/resources}/dark_resources/offsetx32.png (100%) rename {share => assets/resources}/dark_resources/offsety32.png (100%) rename {share => assets/resources}/dark_resources/open_excellon32.png (100%) rename {share => assets/resources}/dark_resources/open_script32.png (100%) rename {share => assets/resources}/dark_resources/origin.png (100%) rename {share => assets/resources}/dark_resources/origin16.png (100%) rename {share => assets/resources}/dark_resources/origin2_16.png (100%) rename {share => assets/resources}/dark_resources/origin2_32.png (100%) rename {share => assets/resources}/dark_resources/origin32.png (100%) rename {share => assets/resources}/dark_resources/padarray32.png (100%) rename {share => assets/resources}/dark_resources/paint16.png (100%) rename {share => assets/resources}/dark_resources/paint20.png (100%) rename {share => assets/resources}/dark_resources/paint20_1.png (100%) rename {share => assets/resources}/dark_resources/panel16.png (100%) rename {share => assets/resources}/dark_resources/panel32.png (100%) rename {share => assets/resources}/dark_resources/panelize16.png (100%) rename {share => assets/resources}/dark_resources/panelize32.png (100%) rename {share => assets/resources}/dark_resources/path32.png (100%) rename {share => assets/resources}/dark_resources/pdf32.png (100%) rename {share => assets/resources}/dark_resources/pdf_link16.png (100%) rename {share => assets/resources}/dark_resources/plot32.png (100%) rename {share => assets/resources}/dark_resources/plus16.png (100%) rename {share => assets/resources}/dark_resources/plus32.png (100%) rename {share => assets/resources}/dark_resources/pointer.png (100%) rename {share => assets/resources}/dark_resources/pointer32.png (100%) rename {share => assets/resources}/dark_resources/poligonize32.png (100%) rename {share => assets/resources}/dark_resources/polygon32.png (100%) rename {share => assets/resources}/dark_resources/power16.png (100%) rename {share => assets/resources}/dark_resources/pref.png (100%) rename {share => assets/resources}/dark_resources/printer16.png (100%) rename {share => assets/resources}/dark_resources/printer32.png (100%) rename {share => assets/resources}/dark_resources/project16.png (100%) rename {share => assets/resources}/dark_resources/project_save16.png (100%) rename {share => assets/resources}/dark_resources/project_save32.png (100%) rename {share => assets/resources}/dark_resources/properties32.png (100%) rename {share => assets/resources}/dark_resources/punch16.png (100%) rename {share => assets/resources}/dark_resources/punch32.png (100%) rename {share => assets/resources}/dark_resources/qrcode32.png (100%) rename {share => assets/resources}/dark_resources/recent_files.png (100%) rename {share => assets/resources}/dark_resources/rectangle32.png (100%) rename {share => assets/resources}/dark_resources/recycle16.png (100%) rename {share => assets/resources}/dark_resources/red32.png (100%) rename {share => assets/resources}/dark_resources/redlight12.png (100%) rename {share => assets/resources}/dark_resources/replot16.png (100%) rename {share => assets/resources}/dark_resources/replot32.png (100%) rename {share => assets/resources}/dark_resources/resize16.png (100%) rename {share => assets/resources}/dark_resources/rotate.png (100%) rename {share => assets/resources}/dark_resources/rules32.png (100%) rename {share => assets/resources}/dark_resources/save_as.png (100%) rename {share => assets/resources}/dark_resources/scale32.png (100%) rename {share => assets/resources}/dark_resources/script14.png (100%) rename {share => assets/resources}/dark_resources/script16.png (100%) rename {share => assets/resources}/dark_resources/script_new16.png (100%) rename {share => assets/resources}/dark_resources/script_new24.png (100%) rename {share => assets/resources}/dark_resources/script_open16.png (100%) rename {share => assets/resources}/dark_resources/script_open18.png (100%) rename {share => assets/resources}/dark_resources/script_open24.png (100%) rename {share => assets/resources}/dark_resources/select_all.png (100%) rename {share => assets/resources}/dark_resources/semidisc32.png (100%) rename {share => assets/resources}/dark_resources/set_color16.png (100%) rename {share => assets/resources}/dark_resources/set_color32.png (100%) rename {share => assets/resources}/dark_resources/shell16.png (100%) rename {share => assets/resources}/dark_resources/shell32.png (100%) rename {share => assets/resources}/dark_resources/shortcuts24.png (100%) rename {share => assets/resources}/dark_resources/skewX.png (100%) rename {share => assets/resources}/dark_resources/skewY.png (100%) rename {share => assets/resources}/dark_resources/slot26.png (100%) rename {share => assets/resources}/dark_resources/slot_array26.png (100%) rename {share => assets/resources}/dark_resources/snap_16.png (100%) rename {share => assets/resources}/dark_resources/snap_filled_16.png (100%) rename {share => assets/resources}/dark_resources/solderpaste32.png (100%) rename {share => assets/resources}/dark_resources/solderpastebis32.png (100%) rename {share => assets/resources}/dark_resources/source32.png (100%) rename {share => assets/resources}/dark_resources/splash.png (100%) rename {share => assets/resources}/dark_resources/sub32.png (100%) rename {share => assets/resources}/dark_resources/subtract16.png (100%) rename {share => assets/resources}/dark_resources/subtract24.png (100%) rename {share => assets/resources}/dark_resources/subtract32.png (100%) rename {share => assets/resources}/dark_resources/svg16.png (100%) rename {share => assets/resources}/dark_resources/svg32.png (100%) rename {share => assets/resources}/dark_resources/text32.png (100%) rename {share => assets/resources}/dark_resources/toggle_units16.png (100%) rename {share => assets/resources}/dark_resources/toggle_units32.png (100%) rename {share => assets/resources}/dark_resources/track32.png (100%) rename {share => assets/resources}/dark_resources/transform.png (100%) rename {share => assets/resources}/dark_resources/trash16.png (100%) rename {share => assets/resources}/dark_resources/trash32.png (100%) rename {share => assets/resources}/dark_resources/tv16.png (100%) rename {share => assets/resources}/dark_resources/underline32.png (100%) rename {share => assets/resources}/dark_resources/union16.png (100%) rename {share => assets/resources}/dark_resources/union32.png (100%) rename {share => assets/resources}/dark_resources/videohelp24.png (100%) rename {share => assets/resources}/dark_resources/view64.png (100%) rename {share => assets/resources}/dark_resources/violet32.png (100%) rename {share => assets/resources}/dark_resources/warning.png (100%) rename {share => assets/resources}/dark_resources/white32.png (100%) rename {share => assets/resources}/dark_resources/workspace24.png (100%) rename {share => assets/resources}/dark_resources/yellow32.png (100%) rename {share => assets/resources}/dark_resources/yellowlight12.png (100%) rename {share => assets/resources}/dark_resources/youtube32.png (100%) rename {share => assets/resources}/dark_resources/zoom_fit32.png (100%) rename {share => assets/resources}/dark_resources/zoom_in32.png (100%) rename {share => assets/resources}/dark_resources/zoom_out32.png (100%) rename {share => assets/resources}/database32.png (100%) rename {share => assets/resources}/defaults.png (100%) rename {share => assets/resources}/delete32.png (100%) rename {share => assets/resources}/delete_file16.png (100%) rename {share => assets/resources}/delete_file32.png (100%) rename {share => assets/resources}/deleteshape16.png (100%) rename {share => assets/resources}/deleteshape24.png (100%) rename {share => assets/resources}/deleteshape32.png (100%) rename {share => assets/resources}/deselect_all32.png (100%) rename {share => assets/resources}/disable16.png (100%) rename {share => assets/resources}/disable32.png (100%) rename {share => assets/resources}/disc32.png (100%) rename {share => assets/resources}/distance16.png (100%) rename {share => assets/resources}/distance32.png (100%) rename {share => assets/resources}/distance_min16.png (100%) rename {share => assets/resources}/distance_min32.png (100%) rename {share => assets/resources}/doubleside16.png (100%) rename {share => assets/resources}/doubleside32.png (100%) rename {share => assets/resources}/draw32.png (100%) rename {share => assets/resources}/drill16.png (100%) rename {share => assets/resources}/drill32.png (100%) rename {share => assets/resources}/dxf16.png (100%) rename {share => assets/resources}/edit16.png (100%) rename {share => assets/resources}/edit32.png (100%) rename {share => assets/resources}/edit_file16.png (100%) rename {share => assets/resources}/edit_file32.png (100%) rename {share => assets/resources}/edit_ok16.png (100%) rename {share => assets/resources}/edit_ok32.png (100%) rename {share => assets/resources}/edit_ok32_bis.png (100%) rename {share => assets/resources}/eraser26.png (100%) rename {share => assets/resources}/explode32.png (100%) rename {share => assets/resources}/export.png (100%) rename {share => assets/resources}/export_png32.png (100%) rename {share => assets/resources}/extract_drill16.png (100%) rename {share => assets/resources}/extract_drill32.png (100%) rename {share => assets/resources}/fiducials_32.png (100%) rename {share => assets/resources}/file16.png (100%) rename {share => assets/resources}/file32.png (100%) rename {share => assets/resources}/film16.png (100%) rename {share => assets/resources}/film32.png (100%) rename {share => assets/resources}/flatcam_icon128.png (100%) rename {share => assets/resources}/flatcam_icon128_inv.png (100%) rename {share => assets/resources}/flatcam_icon16.ico (100%) rename {share => assets/resources}/flatcam_icon16.png (100%) rename {share => assets/resources}/flatcam_icon24.png (100%) rename {share => assets/resources}/flatcam_icon256.ico (100%) rename {share => assets/resources}/flatcam_icon256.png (100%) rename {share => assets/resources}/flatcam_icon32.ico (100%) rename {share => assets/resources}/flatcam_icon32.png (100%) rename {share => assets/resources}/flatcam_icon32_green.png (100%) rename {share => assets/resources}/flatcam_icon48.ico (100%) rename {share => assets/resources}/flatcam_icon48.png (100%) rename {share => assets/resources}/flipx.png (100%) rename {share => assets/resources}/flipy.png (100%) rename {share => assets/resources}/floppy16.png (100%) rename {share => assets/resources}/floppy32.png (100%) rename {share => assets/resources}/folder16.png (100%) rename {share => assets/resources}/folder32.png (100%) rename {share => assets/resources}/folder32_Excellon.png (100%) rename {share => assets/resources}/folder32_bis.png (100%) rename {share => assets/resources}/folder32_gerber.png (100%) rename {share => assets/resources}/fscreen32.png (100%) rename {share => assets/resources}/gear32.png (100%) rename {share => assets/resources}/gear48.png (100%) rename {share => assets/resources}/geometry16.png (100%) rename {share => assets/resources}/geometry32.png (100%) rename {share => assets/resources}/globe16.png (100%) rename {share => assets/resources}/graylight12.png (100%) rename {share => assets/resources}/green32.png (100%) rename {share => assets/resources}/greenlight12.png (100%) rename {share => assets/resources}/grid16.png (100%) rename {share => assets/resources}/grid32.png (100%) rename {share => assets/resources}/grid32_menu.png (100%) rename {share => assets/resources}/help.png (100%) rename {share => assets/resources}/home16.png (100%) rename {share => assets/resources}/image16.png (100%) rename {share => assets/resources}/image32.png (100%) rename {share => assets/resources}/import.png (100%) rename {share => assets/resources}/info16.png (100%) rename {share => assets/resources}/intersection16.png (100%) rename {share => assets/resources}/intersection24.png (100%) rename {share => assets/resources}/intersection32.png (100%) rename {share => assets/resources}/invert16.png (100%) rename {share => assets/resources}/invert32.png (100%) rename {share => assets/resources}/italic32.png (100%) rename {share => assets/resources}/join16.png (100%) rename {share => assets/resources}/join32.png (100%) rename {share => assets/resources}/jump_to16.png (100%) rename {share => assets/resources}/jump_to32.png (100%) rename {share => assets/resources}/language32.png (100%) rename {share => assets/resources}/letter_t_32.png (100%) rename {share => assets/resources}/link16.png (100%) rename {share => assets/resources}/locate16.png (100%) rename {share => assets/resources}/locate32.png (100%) rename {share => assets/resources}/machine16.png (100%) rename {share => assets/resources}/markarea32.png (100%) rename {share => assets/resources}/move16.png (100%) rename {share => assets/resources}/move32.png (100%) rename {share => assets/resources}/move32_bis.png (100%) rename {share => assets/resources}/ncc16.png (100%) rename {share => assets/resources}/new_exc32.png (100%) rename {share => assets/resources}/new_file16.png (100%) rename {share => assets/resources}/new_file32.png (100%) rename {share => assets/resources}/new_file_exc16.png (100%) rename {share => assets/resources}/new_file_exc32.png (100%) rename {share => assets/resources}/new_file_geo16.png (100%) rename {share => assets/resources}/new_file_geo32.png (100%) rename {share => assets/resources}/new_file_grb16.png (100%) rename {share => assets/resources}/new_file_grb32.png (100%) rename {share => assets/resources}/new_geo16.png (100%) rename {share => assets/resources}/new_geo32.png (100%) rename {share => assets/resources}/new_geo32_bis.png (100%) rename {share => assets/resources}/notebook16.png (100%) rename {share => assets/resources}/notebook32.png (100%) rename {share => assets/resources}/notes16.png (100%) rename {share => assets/resources}/notes16_1.png (100%) rename {share => assets/resources}/offsetx32.png (100%) rename {share => assets/resources}/offsety32.png (100%) rename {share => assets/resources}/open_excellon32.png (100%) rename {share => assets/resources}/open_script32.png (100%) rename {share => assets/resources}/origin.png (100%) rename {share => assets/resources}/origin16.png (100%) rename {share => assets/resources}/origin2_16.png (100%) rename {share => assets/resources}/origin2_32.png (100%) rename {share => assets/resources}/origin32.png (100%) rename {share => assets/resources}/padarray32.png (100%) rename {share => assets/resources}/paint16.png (100%) rename {share => assets/resources}/paint20.png (100%) rename {share => assets/resources}/paint20_1.png (100%) rename {share => assets/resources}/panel16.png (100%) rename {share => assets/resources}/panel32.png (100%) rename {share => assets/resources}/panelize16.png (100%) rename {share => assets/resources}/panelize32.png (100%) rename {share => assets/resources}/path32.png (100%) rename {share => assets/resources}/pdf32.png (100%) rename {share => assets/resources}/pdf_link16.png (100%) rename {share => assets/resources}/plot32.png (100%) rename {share => assets/resources}/plus16.png (100%) rename {share => assets/resources}/plus32.png (100%) rename {share => assets/resources}/pointer.svg (100%) rename {share => assets/resources}/pointer32.png (100%) rename {share => assets/resources}/poligonize32.png (100%) rename {share => assets/resources}/polygon32.png (100%) rename {share => assets/resources}/power16.png (100%) rename {share => assets/resources}/pref.png (100%) rename {share => assets/resources}/printer16.png (100%) rename {share => assets/resources}/printer32.png (100%) rename {share => assets/resources}/project16.png (100%) rename {share => assets/resources}/project_save16.png (100%) rename {share => assets/resources}/project_save32.png (100%) rename {share => assets/resources}/properties32.png (100%) rename {share => assets/resources}/punch16.png (100%) rename {share => assets/resources}/punch32.png (100%) rename {share => assets/resources}/qrcode32.png (100%) rename {share => assets/resources}/recent_files.png (100%) rename {share => assets/resources}/rectangle32.png (100%) rename {share => assets/resources}/recycle16.png (100%) rename {share => assets/resources}/red32.png (100%) rename {share => assets/resources}/redlight12.png (100%) rename {share => assets/resources}/replot16.png (100%) rename {share => assets/resources}/replot32.png (100%) rename {share => assets/resources}/resize16.png (100%) rename {share => assets/resources}/rotate.png (100%) rename {share => assets/resources}/rules32.png (100%) rename {share => assets/resources}/save_as.png (100%) rename {share => assets/resources}/scale32.png (100%) rename {share => assets/resources}/script14.png (100%) rename {share => assets/resources}/script16.png (100%) rename {share => assets/resources}/script_new16.png (100%) rename {share => assets/resources}/script_new24.png (100%) rename {share => assets/resources}/script_open16.png (100%) rename {share => assets/resources}/script_open18.png (100%) rename {share => assets/resources}/script_open24.png (100%) rename {share => assets/resources}/select_all.png (100%) rename {share => assets/resources}/semidisc32.png (100%) rename {share => assets/resources}/set_color16.png (100%) rename {share => assets/resources}/set_color32.png (100%) rename {share => assets/resources}/shell16.png (100%) rename {share => assets/resources}/shell32.png (100%) rename {share => assets/resources}/shortcuts24.png (100%) rename {share => assets/resources}/skewX.png (100%) rename {share => assets/resources}/skewY.png (100%) rename {share => assets/resources}/slot26.png (100%) rename {share => assets/resources}/slot_array26.png (100%) rename {share => assets/resources}/snap_16.png (100%) rename {share => assets/resources}/snap_filled_16.png (100%) rename {share => assets/resources}/solderpaste32.png (100%) rename {share => assets/resources}/solderpastebis32.png (100%) rename {share => assets/resources}/source32.png (100%) rename {share => assets/resources}/splash.png (100%) rename {share => assets/resources}/sub32.png (100%) rename {share => assets/resources}/subtract16.png (100%) rename {share => assets/resources}/subtract24.png (100%) rename {share => assets/resources}/subtract32.png (100%) rename {share => assets/resources}/svg16.png (100%) rename {share => assets/resources}/svg32.png (100%) rename {share => assets/resources}/text32.png (100%) rename {share => assets/resources}/toggle_units16.png (100%) rename {share => assets/resources}/toggle_units32.png (100%) rename {share => assets/resources}/track32.png (100%) rename {share => assets/resources}/transform.png (100%) rename {share => assets/resources}/trash16.png (100%) rename {share => assets/resources}/trash32.png (100%) rename {share => assets/resources}/tv16.png (100%) rename {share => assets/resources}/underline32.png (100%) rename {share => assets/resources}/union16.png (100%) rename {share => assets/resources}/union32.png (100%) rename {share => assets/resources}/videohelp24.png (100%) rename {share => assets/resources}/view64.png (100%) rename {share => assets/resources}/violet32.png (100%) rename {share => assets/resources}/warning.png (100%) rename {share => assets/resources}/white32.png (100%) rename {share => assets/resources}/workspace24.png (100%) rename {share => assets/resources}/yellow32.png (100%) rename {share => assets/resources}/yellowlight12.png (100%) rename {share => assets/resources}/youtube32.png (100%) rename {share => assets/resources}/zoom_fit32.png (100%) rename {share => assets/resources}/zoom_in32.png (100%) rename {share => assets/resources}/zoom_out32.png (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index ccb4666a..0e927992 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,12 @@ CHANGELOG for FlatCAM beta - added a new Tcl command named OpenDXF (open_dxf alias) - fixed some errors in Scripting features - added a new Tcl command named GetPath as a convenient way to get the current default path stored in App.defaults['global_tcl_path'] +- added a new package to be installed in Linux to make available the black theme for FlatCAM beta +- moved all the 'share' resources (icons) to the 'assets/resources' folder +- some more fixes to problems generated by latest changes in the open handlers +- modified the make_freezed.py script for the new location of the icons +- added a fix for the ConnectionRefusedError in Linux that is issued when first running after a FlatCAM crash + 27.04.2020 diff --git a/FlatCAMApp.py b/FlatCAMApp.py index ed10ae3f..8afae9ab 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -1096,9 +1096,9 @@ class App(QtCore.QObject): self.decimals = int(self.defaults['decimals_inch']) if self.defaults["global_gray_icons"] is False: - self.resource_location = 'share' + self.resource_location = 'assets/resources' else: - self.resource_location = 'share/dark_resources' + self.resource_location = 'assets/resources/dark_resources' self.current_units = self.defaults['units'] @@ -3032,7 +3032,7 @@ class App(QtCore.QObject): if silent is False: self.inform.emit(_("Open Excellon file failed.")) else: - self.on_fileopenexcellon(name=file_name) + self.on_fileopenexcellon(name=file_name, signal=None) return gco_list = self.ui.util_defaults_form.fa_gcode_group.gco_list_text.get_value().split(',') @@ -3045,7 +3045,7 @@ class App(QtCore.QObject): if silent is False: self.inform.emit(_("Open GCode file failed.")) else: - self.on_fileopengcode(name=file_name) + self.on_fileopengcode(name=file_name, signal=None) return grb_list = self.ui.util_defaults_form.fa_gerber_group.grb_list_text.get_value().split(',') @@ -3058,7 +3058,7 @@ class App(QtCore.QObject): if silent is False: self.inform.emit(_("Open Gerber file failed.")) else: - self.on_fileopengerber(name=file_name) + self.on_fileopengerber(name=file_name, signal=None) return # if it reached here without already returning then the app was registered with a file that it does not @@ -12929,16 +12929,26 @@ class ArgsThread(QtCore.QObject): conn = self.listener.accept() self.serve(conn) except socket.error: - conn = Client(*address) - conn.send(sys.argv) - conn.send('close') - # close the current instance only if there are args - if len(sys.argv) > 1: - try: - self.listener.close() - except Exception: + try: + conn = Client(*address) + conn.send(sys.argv) + conn.send('close') + # close the current instance only if there are args + if len(sys.argv) > 1: + try: + self.listener.close() + except Exception: + pass + sys.exit() + except ConnectionRefusedError: + if sys.platform == 'win32': pass - sys.exit() + else: + os.system('rm /tmp/testipc') + self.listener = Listener(*address) + while True: + conn = self.listener.accept() + self.serve(conn) def serve(self, conn): while True: diff --git a/FlatCAMTranslation.py b/FlatCAMTranslation.py index fc4de384..eaab0f73 100644 --- a/FlatCAMTranslation.py +++ b/FlatCAMTranslation.py @@ -88,9 +88,9 @@ def on_language_apply_click(app, restart=False): theme = 'white' if theme == 'white': - resource_loc = 'share' + resource_loc = 'assets/resources' else: - resource_loc = 'share' + resource_loc = 'assets/resources' # do nothing if trying to apply the language that is the current language (already applied). settings = QSettings("Open Source", "FlatCAM") @@ -180,9 +180,9 @@ def restart_program(app, ask=None): theme = 'white' if theme == 'white': - resource_loc = 'share' + resource_loc = 'assets/resources' else: - resource_loc = 'share' + resource_loc = 'assets/resources' # close the Socket in ArgsThread class app.new_launch.listener.close() diff --git a/share/about32.png b/assets/resources/about32.png similarity index 100% rename from share/about32.png rename to assets/resources/about32.png diff --git a/share/active.gif b/assets/resources/active.gif similarity index 100% rename from share/active.gif rename to assets/resources/active.gif diff --git a/share/active_2.gif b/assets/resources/active_2.gif similarity index 100% rename from share/active_2.gif rename to assets/resources/active_2.gif diff --git a/share/active_2_static.png b/assets/resources/active_2_static.png similarity index 100% rename from share/active_2_static.png rename to assets/resources/active_2_static.png diff --git a/share/active_3.gif b/assets/resources/active_3.gif similarity index 100% rename from share/active_3.gif rename to assets/resources/active_3.gif diff --git a/share/active_3_static.png b/assets/resources/active_3_static.png similarity index 100% rename from share/active_3_static.png rename to assets/resources/active_3_static.png diff --git a/share/active_4.gif b/assets/resources/active_4.gif similarity index 100% rename from share/active_4.gif rename to assets/resources/active_4.gif diff --git a/share/active_4_static.png b/assets/resources/active_4_static.png similarity index 100% rename from share/active_4_static.png rename to assets/resources/active_4_static.png diff --git a/share/active_static.png b/assets/resources/active_static.png similarity index 100% rename from share/active_static.png rename to assets/resources/active_static.png diff --git a/share/addarray16.png b/assets/resources/addarray16.png similarity index 100% rename from share/addarray16.png rename to assets/resources/addarray16.png diff --git a/share/addarray20.png b/assets/resources/addarray20.png similarity index 100% rename from share/addarray20.png rename to assets/resources/addarray20.png diff --git a/share/addarray32.png b/assets/resources/addarray32.png similarity index 100% rename from share/addarray32.png rename to assets/resources/addarray32.png diff --git a/share/aero.png b/assets/resources/aero.png similarity index 100% rename from share/aero.png rename to assets/resources/aero.png diff --git a/share/aero_arc.png b/assets/resources/aero_arc.png similarity index 100% rename from share/aero_arc.png rename to assets/resources/aero_arc.png diff --git a/share/aero_array.png b/assets/resources/aero_array.png similarity index 100% rename from share/aero_array.png rename to assets/resources/aero_array.png diff --git a/share/aero_buffer.png b/assets/resources/aero_buffer.png similarity index 100% rename from share/aero_buffer.png rename to assets/resources/aero_buffer.png diff --git a/share/aero_circle.png b/assets/resources/aero_circle.png similarity index 100% rename from share/aero_circle.png rename to assets/resources/aero_circle.png diff --git a/share/aero_circle_geo.png b/assets/resources/aero_circle_geo.png similarity index 100% rename from share/aero_circle_geo.png rename to assets/resources/aero_circle_geo.png diff --git a/share/aero_disc.png b/assets/resources/aero_disc.png similarity index 100% rename from share/aero_disc.png rename to assets/resources/aero_disc.png diff --git a/share/aero_drill.png b/assets/resources/aero_drill.png similarity index 100% rename from share/aero_drill.png rename to assets/resources/aero_drill.png diff --git a/share/aero_drill_array.png b/assets/resources/aero_drill_array.png similarity index 100% rename from share/aero_drill_array.png rename to assets/resources/aero_drill_array.png diff --git a/share/aero_path1.png b/assets/resources/aero_path1.png similarity index 100% rename from share/aero_path1.png rename to assets/resources/aero_path1.png diff --git a/share/aero_path2.png b/assets/resources/aero_path2.png similarity index 100% rename from share/aero_path2.png rename to assets/resources/aero_path2.png diff --git a/share/aero_path3.png b/assets/resources/aero_path3.png similarity index 100% rename from share/aero_path3.png rename to assets/resources/aero_path3.png diff --git a/share/aero_path4.png b/assets/resources/aero_path4.png similarity index 100% rename from share/aero_path4.png rename to assets/resources/aero_path4.png diff --git a/share/aero_path5.png b/assets/resources/aero_path5.png similarity index 100% rename from share/aero_path5.png rename to assets/resources/aero_path5.png diff --git a/share/aero_semidisc.png b/assets/resources/aero_semidisc.png similarity index 100% rename from share/aero_semidisc.png rename to assets/resources/aero_semidisc.png diff --git a/share/aero_slot.png b/assets/resources/aero_slot.png similarity index 100% rename from share/aero_slot.png rename to assets/resources/aero_slot.png diff --git a/share/aero_text.png b/assets/resources/aero_text.png similarity index 100% rename from share/aero_text.png rename to assets/resources/aero_text.png diff --git a/share/align16.png b/assets/resources/align16.png similarity index 100% rename from share/align16.png rename to assets/resources/align16.png diff --git a/share/align32.png b/assets/resources/align32.png similarity index 100% rename from share/align32.png rename to assets/resources/align32.png diff --git a/share/align_center32.png b/assets/resources/align_center32.png similarity index 100% rename from share/align_center32.png rename to assets/resources/align_center32.png diff --git a/share/align_justify32.png b/assets/resources/align_justify32.png similarity index 100% rename from share/align_justify32.png rename to assets/resources/align_justify32.png diff --git a/share/align_left32.png b/assets/resources/align_left32.png similarity index 100% rename from share/align_left32.png rename to assets/resources/align_left32.png diff --git a/share/align_right32.png b/assets/resources/align_right32.png similarity index 100% rename from share/align_right32.png rename to assets/resources/align_right32.png diff --git a/share/aperture16.png b/assets/resources/aperture16.png similarity index 100% rename from share/aperture16.png rename to assets/resources/aperture16.png diff --git a/share/aperture32.png b/assets/resources/aperture32.png similarity index 100% rename from share/aperture32.png rename to assets/resources/aperture32.png diff --git a/share/arc16.png b/assets/resources/arc16.png similarity index 100% rename from share/arc16.png rename to assets/resources/arc16.png diff --git a/share/arc24.png b/assets/resources/arc24.png similarity index 100% rename from share/arc24.png rename to assets/resources/arc24.png diff --git a/share/arc32.png b/assets/resources/arc32.png similarity index 100% rename from share/arc32.png rename to assets/resources/arc32.png diff --git a/share/axis32.png b/assets/resources/axis32.png similarity index 100% rename from share/axis32.png rename to assets/resources/axis32.png diff --git a/share/backup24.png b/assets/resources/backup24.png similarity index 100% rename from share/backup24.png rename to assets/resources/backup24.png diff --git a/share/backup_export24.png b/assets/resources/backup_export24.png similarity index 100% rename from share/backup_export24.png rename to assets/resources/backup_export24.png diff --git a/share/backup_import24.png b/assets/resources/backup_import24.png similarity index 100% rename from share/backup_import24.png rename to assets/resources/backup_import24.png diff --git a/share/black32.png b/assets/resources/black32.png similarity index 100% rename from share/black32.png rename to assets/resources/black32.png diff --git a/share/blocked16.png b/assets/resources/blocked16.png similarity index 100% rename from share/blocked16.png rename to assets/resources/blocked16.png diff --git a/share/blue32.png b/assets/resources/blue32.png similarity index 100% rename from share/blue32.png rename to assets/resources/blue32.png diff --git a/share/bluelight12.png b/assets/resources/bluelight12.png similarity index 100% rename from share/bluelight12.png rename to assets/resources/bluelight12.png diff --git a/share/bold32.png b/assets/resources/bold32.png similarity index 100% rename from share/bold32.png rename to assets/resources/bold32.png diff --git a/share/bookmarks16.png b/assets/resources/bookmarks16.png similarity index 100% rename from share/bookmarks16.png rename to assets/resources/bookmarks16.png diff --git a/share/bookmarks32.png b/assets/resources/bookmarks32.png similarity index 100% rename from share/bookmarks32.png rename to assets/resources/bookmarks32.png diff --git a/share/brown32.png b/assets/resources/brown32.png similarity index 100% rename from share/brown32.png rename to assets/resources/brown32.png diff --git a/share/buffer16-2.png b/assets/resources/buffer16-2.png similarity index 100% rename from share/buffer16-2.png rename to assets/resources/buffer16-2.png diff --git a/share/buffer16.png b/assets/resources/buffer16.png similarity index 100% rename from share/buffer16.png rename to assets/resources/buffer16.png diff --git a/share/buffer20.png b/assets/resources/buffer20.png similarity index 100% rename from share/buffer20.png rename to assets/resources/buffer20.png diff --git a/share/buffer24.png b/assets/resources/buffer24.png similarity index 100% rename from share/buffer24.png rename to assets/resources/buffer24.png diff --git a/share/bug16.png b/assets/resources/bug16.png similarity index 100% rename from share/bug16.png rename to assets/resources/bug16.png diff --git a/share/bug32.png b/assets/resources/bug32.png similarity index 100% rename from share/bug32.png rename to assets/resources/bug32.png diff --git a/share/calculator16.png b/assets/resources/calculator16.png similarity index 100% rename from share/calculator16.png rename to assets/resources/calculator16.png diff --git a/share/calculator24.png b/assets/resources/calculator24.png similarity index 100% rename from share/calculator24.png rename to assets/resources/calculator24.png diff --git a/share/calibrate_16.png b/assets/resources/calibrate_16.png similarity index 100% rename from share/calibrate_16.png rename to assets/resources/calibrate_16.png diff --git a/share/calibrate_32.png b/assets/resources/calibrate_32.png similarity index 100% rename from share/calibrate_32.png rename to assets/resources/calibrate_32.png diff --git a/share/cancel_edit16.png b/assets/resources/cancel_edit16.png similarity index 100% rename from share/cancel_edit16.png rename to assets/resources/cancel_edit16.png diff --git a/share/cancel_edit32.png b/assets/resources/cancel_edit32.png similarity index 100% rename from share/cancel_edit32.png rename to assets/resources/cancel_edit32.png diff --git a/share/circle32.png b/assets/resources/circle32.png similarity index 100% rename from share/circle32.png rename to assets/resources/circle32.png diff --git a/share/clear_plot16.png b/assets/resources/clear_plot16.png similarity index 100% rename from share/clear_plot16.png rename to assets/resources/clear_plot16.png diff --git a/share/clear_plot32.png b/assets/resources/clear_plot32.png similarity index 100% rename from share/clear_plot32.png rename to assets/resources/clear_plot32.png diff --git a/share/close_edit_file16.png b/assets/resources/close_edit_file16.png similarity index 100% rename from share/close_edit_file16.png rename to assets/resources/close_edit_file16.png diff --git a/share/close_edit_file32.png b/assets/resources/close_edit_file32.png similarity index 100% rename from share/close_edit_file32.png rename to assets/resources/close_edit_file32.png diff --git a/share/cnc16.png b/assets/resources/cnc16.png similarity index 100% rename from share/cnc16.png rename to assets/resources/cnc16.png diff --git a/share/cnc32.png b/assets/resources/cnc32.png similarity index 100% rename from share/cnc32.png rename to assets/resources/cnc32.png diff --git a/share/code.png b/assets/resources/code.png similarity index 100% rename from share/code.png rename to assets/resources/code.png diff --git a/share/code_editor32.png b/assets/resources/code_editor32.png similarity index 100% rename from share/code_editor32.png rename to assets/resources/code_editor32.png diff --git a/share/convert24.png b/assets/resources/convert24.png similarity index 100% rename from share/convert24.png rename to assets/resources/convert24.png diff --git a/share/copperfill16.png b/assets/resources/copperfill16.png similarity index 100% rename from share/copperfill16.png rename to assets/resources/copperfill16.png diff --git a/share/copperfill32.png b/assets/resources/copperfill32.png similarity index 100% rename from share/copperfill32.png rename to assets/resources/copperfill32.png diff --git a/share/copy.png b/assets/resources/copy.png similarity index 100% rename from share/copy.png rename to assets/resources/copy.png diff --git a/share/copy16.png b/assets/resources/copy16.png similarity index 100% rename from share/copy16.png rename to assets/resources/copy16.png diff --git a/share/copy32.png b/assets/resources/copy32.png similarity index 100% rename from share/copy32.png rename to assets/resources/copy32.png diff --git a/share/copy_file16.png b/assets/resources/copy_file16.png similarity index 100% rename from share/copy_file16.png rename to assets/resources/copy_file16.png diff --git a/share/copy_file32.png b/assets/resources/copy_file32.png similarity index 100% rename from share/copy_file32.png rename to assets/resources/copy_file32.png diff --git a/share/copy_geo.png b/assets/resources/copy_geo.png similarity index 100% rename from share/copy_geo.png rename to assets/resources/copy_geo.png diff --git a/share/corner32.png b/assets/resources/corner32.png similarity index 100% rename from share/corner32.png rename to assets/resources/corner32.png diff --git a/share/cut16.png b/assets/resources/cut16.png similarity index 100% rename from share/cut16.png rename to assets/resources/cut16.png diff --git a/share/cut16_bis.png b/assets/resources/cut16_bis.png similarity index 100% rename from share/cut16_bis.png rename to assets/resources/cut16_bis.png diff --git a/share/cut32.png b/assets/resources/cut32.png similarity index 100% rename from share/cut32.png rename to assets/resources/cut32.png diff --git a/share/cut32_bis.png b/assets/resources/cut32_bis.png similarity index 100% rename from share/cut32_bis.png rename to assets/resources/cut32_bis.png diff --git a/share/cutpath16.png b/assets/resources/cutpath16.png similarity index 100% rename from share/cutpath16.png rename to assets/resources/cutpath16.png diff --git a/share/cutpath24.png b/assets/resources/cutpath24.png similarity index 100% rename from share/cutpath24.png rename to assets/resources/cutpath24.png diff --git a/share/cutpath32.png b/assets/resources/cutpath32.png similarity index 100% rename from share/cutpath32.png rename to assets/resources/cutpath32.png diff --git a/share/dark_resources/Makefile b/assets/resources/dark_resources/Makefile similarity index 100% rename from share/dark_resources/Makefile rename to assets/resources/dark_resources/Makefile diff --git a/share/dark_resources/about32.png b/assets/resources/dark_resources/about32.png similarity index 100% rename from share/dark_resources/about32.png rename to assets/resources/dark_resources/about32.png diff --git a/share/dark_resources/active.gif b/assets/resources/dark_resources/active.gif similarity index 100% rename from share/dark_resources/active.gif rename to assets/resources/dark_resources/active.gif diff --git a/share/dark_resources/active_2.gif b/assets/resources/dark_resources/active_2.gif similarity index 100% rename from share/dark_resources/active_2.gif rename to assets/resources/dark_resources/active_2.gif diff --git a/share/dark_resources/active_2_static.png b/assets/resources/dark_resources/active_2_static.png similarity index 100% rename from share/dark_resources/active_2_static.png rename to assets/resources/dark_resources/active_2_static.png diff --git a/share/dark_resources/active_3.gif b/assets/resources/dark_resources/active_3.gif similarity index 100% rename from share/dark_resources/active_3.gif rename to assets/resources/dark_resources/active_3.gif diff --git a/share/dark_resources/active_3_static.png b/assets/resources/dark_resources/active_3_static.png similarity index 100% rename from share/dark_resources/active_3_static.png rename to assets/resources/dark_resources/active_3_static.png diff --git a/share/dark_resources/active_4.gif b/assets/resources/dark_resources/active_4.gif similarity index 100% rename from share/dark_resources/active_4.gif rename to assets/resources/dark_resources/active_4.gif diff --git a/share/dark_resources/active_4_static.png b/assets/resources/dark_resources/active_4_static.png similarity index 100% rename from share/dark_resources/active_4_static.png rename to assets/resources/dark_resources/active_4_static.png diff --git a/share/dark_resources/active_static.png b/assets/resources/dark_resources/active_static.png similarity index 100% rename from share/dark_resources/active_static.png rename to assets/resources/dark_resources/active_static.png diff --git a/share/dark_resources/addarray16.png b/assets/resources/dark_resources/addarray16.png similarity index 100% rename from share/dark_resources/addarray16.png rename to assets/resources/dark_resources/addarray16.png diff --git a/share/dark_resources/addarray20.png b/assets/resources/dark_resources/addarray20.png similarity index 100% rename from share/dark_resources/addarray20.png rename to assets/resources/dark_resources/addarray20.png diff --git a/share/dark_resources/addarray32.png b/assets/resources/dark_resources/addarray32.png similarity index 100% rename from share/dark_resources/addarray32.png rename to assets/resources/dark_resources/addarray32.png diff --git a/share/dark_resources/aero.png b/assets/resources/dark_resources/aero.png similarity index 100% rename from share/dark_resources/aero.png rename to assets/resources/dark_resources/aero.png diff --git a/share/dark_resources/aero_arc.png b/assets/resources/dark_resources/aero_arc.png similarity index 100% rename from share/dark_resources/aero_arc.png rename to assets/resources/dark_resources/aero_arc.png diff --git a/share/dark_resources/aero_array.png b/assets/resources/dark_resources/aero_array.png similarity index 100% rename from share/dark_resources/aero_array.png rename to assets/resources/dark_resources/aero_array.png diff --git a/share/dark_resources/aero_buffer.png b/assets/resources/dark_resources/aero_buffer.png similarity index 100% rename from share/dark_resources/aero_buffer.png rename to assets/resources/dark_resources/aero_buffer.png diff --git a/share/dark_resources/aero_circle.png b/assets/resources/dark_resources/aero_circle.png similarity index 100% rename from share/dark_resources/aero_circle.png rename to assets/resources/dark_resources/aero_circle.png diff --git a/share/dark_resources/aero_circle_geo.png b/assets/resources/dark_resources/aero_circle_geo.png similarity index 100% rename from share/dark_resources/aero_circle_geo.png rename to assets/resources/dark_resources/aero_circle_geo.png diff --git a/share/dark_resources/aero_disc.png b/assets/resources/dark_resources/aero_disc.png similarity index 100% rename from share/dark_resources/aero_disc.png rename to assets/resources/dark_resources/aero_disc.png diff --git a/share/dark_resources/aero_drill.png b/assets/resources/dark_resources/aero_drill.png similarity index 100% rename from share/dark_resources/aero_drill.png rename to assets/resources/dark_resources/aero_drill.png diff --git a/share/dark_resources/aero_drill_array.png b/assets/resources/dark_resources/aero_drill_array.png similarity index 100% rename from share/dark_resources/aero_drill_array.png rename to assets/resources/dark_resources/aero_drill_array.png diff --git a/share/dark_resources/aero_path1.png b/assets/resources/dark_resources/aero_path1.png similarity index 100% rename from share/dark_resources/aero_path1.png rename to assets/resources/dark_resources/aero_path1.png diff --git a/share/dark_resources/aero_path2.png b/assets/resources/dark_resources/aero_path2.png similarity index 100% rename from share/dark_resources/aero_path2.png rename to assets/resources/dark_resources/aero_path2.png diff --git a/share/dark_resources/aero_path3.png b/assets/resources/dark_resources/aero_path3.png similarity index 100% rename from share/dark_resources/aero_path3.png rename to assets/resources/dark_resources/aero_path3.png diff --git a/share/dark_resources/aero_path4.png b/assets/resources/dark_resources/aero_path4.png similarity index 100% rename from share/dark_resources/aero_path4.png rename to assets/resources/dark_resources/aero_path4.png diff --git a/share/dark_resources/aero_path5.png b/assets/resources/dark_resources/aero_path5.png similarity index 100% rename from share/dark_resources/aero_path5.png rename to assets/resources/dark_resources/aero_path5.png diff --git a/share/dark_resources/aero_semidisc.png b/assets/resources/dark_resources/aero_semidisc.png similarity index 100% rename from share/dark_resources/aero_semidisc.png rename to assets/resources/dark_resources/aero_semidisc.png diff --git a/share/dark_resources/aero_slot.png b/assets/resources/dark_resources/aero_slot.png similarity index 100% rename from share/dark_resources/aero_slot.png rename to assets/resources/dark_resources/aero_slot.png diff --git a/share/dark_resources/aero_text.png b/assets/resources/dark_resources/aero_text.png similarity index 100% rename from share/dark_resources/aero_text.png rename to assets/resources/dark_resources/aero_text.png diff --git a/share/dark_resources/align16.png b/assets/resources/dark_resources/align16.png similarity index 100% rename from share/dark_resources/align16.png rename to assets/resources/dark_resources/align16.png diff --git a/share/dark_resources/align32.png b/assets/resources/dark_resources/align32.png similarity index 100% rename from share/dark_resources/align32.png rename to assets/resources/dark_resources/align32.png diff --git a/share/dark_resources/align_center32.png b/assets/resources/dark_resources/align_center32.png similarity index 100% rename from share/dark_resources/align_center32.png rename to assets/resources/dark_resources/align_center32.png diff --git a/share/dark_resources/align_justify32.png b/assets/resources/dark_resources/align_justify32.png similarity index 100% rename from share/dark_resources/align_justify32.png rename to assets/resources/dark_resources/align_justify32.png diff --git a/share/dark_resources/align_left32.png b/assets/resources/dark_resources/align_left32.png similarity index 100% rename from share/dark_resources/align_left32.png rename to assets/resources/dark_resources/align_left32.png diff --git a/share/dark_resources/align_right32.png b/assets/resources/dark_resources/align_right32.png similarity index 100% rename from share/dark_resources/align_right32.png rename to assets/resources/dark_resources/align_right32.png diff --git a/share/dark_resources/aperture16.png b/assets/resources/dark_resources/aperture16.png similarity index 100% rename from share/dark_resources/aperture16.png rename to assets/resources/dark_resources/aperture16.png diff --git a/share/dark_resources/aperture32.png b/assets/resources/dark_resources/aperture32.png similarity index 100% rename from share/dark_resources/aperture32.png rename to assets/resources/dark_resources/aperture32.png diff --git a/share/dark_resources/arc16.png b/assets/resources/dark_resources/arc16.png similarity index 100% rename from share/dark_resources/arc16.png rename to assets/resources/dark_resources/arc16.png diff --git a/share/dark_resources/arc24.png b/assets/resources/dark_resources/arc24.png similarity index 100% rename from share/dark_resources/arc24.png rename to assets/resources/dark_resources/arc24.png diff --git a/share/dark_resources/arc32.png b/assets/resources/dark_resources/arc32.png similarity index 100% rename from share/dark_resources/arc32.png rename to assets/resources/dark_resources/arc32.png diff --git a/share/dark_resources/axis32.png b/assets/resources/dark_resources/axis32.png similarity index 100% rename from share/dark_resources/axis32.png rename to assets/resources/dark_resources/axis32.png diff --git a/share/dark_resources/backup24.png b/assets/resources/dark_resources/backup24.png similarity index 100% rename from share/dark_resources/backup24.png rename to assets/resources/dark_resources/backup24.png diff --git a/share/dark_resources/backup_export24.png b/assets/resources/dark_resources/backup_export24.png similarity index 100% rename from share/dark_resources/backup_export24.png rename to assets/resources/dark_resources/backup_export24.png diff --git a/share/dark_resources/backup_import24.png b/assets/resources/dark_resources/backup_import24.png similarity index 100% rename from share/dark_resources/backup_import24.png rename to assets/resources/dark_resources/backup_import24.png diff --git a/share/dark_resources/black32.png b/assets/resources/dark_resources/black32.png similarity index 100% rename from share/dark_resources/black32.png rename to assets/resources/dark_resources/black32.png diff --git a/share/dark_resources/blocked16.png b/assets/resources/dark_resources/blocked16.png similarity index 100% rename from share/dark_resources/blocked16.png rename to assets/resources/dark_resources/blocked16.png diff --git a/share/dark_resources/blue32.png b/assets/resources/dark_resources/blue32.png similarity index 100% rename from share/dark_resources/blue32.png rename to assets/resources/dark_resources/blue32.png diff --git a/share/dark_resources/bluelight12.png b/assets/resources/dark_resources/bluelight12.png similarity index 100% rename from share/dark_resources/bluelight12.png rename to assets/resources/dark_resources/bluelight12.png diff --git a/share/dark_resources/bold32.png b/assets/resources/dark_resources/bold32.png similarity index 100% rename from share/dark_resources/bold32.png rename to assets/resources/dark_resources/bold32.png diff --git a/share/dark_resources/bookmarks16.png b/assets/resources/dark_resources/bookmarks16.png similarity index 100% rename from share/dark_resources/bookmarks16.png rename to assets/resources/dark_resources/bookmarks16.png diff --git a/share/dark_resources/bookmarks32.png b/assets/resources/dark_resources/bookmarks32.png similarity index 100% rename from share/dark_resources/bookmarks32.png rename to assets/resources/dark_resources/bookmarks32.png diff --git a/share/dark_resources/brown32.png b/assets/resources/dark_resources/brown32.png similarity index 100% rename from share/dark_resources/brown32.png rename to assets/resources/dark_resources/brown32.png diff --git a/share/dark_resources/buffer16-2.png b/assets/resources/dark_resources/buffer16-2.png similarity index 100% rename from share/dark_resources/buffer16-2.png rename to assets/resources/dark_resources/buffer16-2.png diff --git a/share/dark_resources/buffer16.png b/assets/resources/dark_resources/buffer16.png similarity index 100% rename from share/dark_resources/buffer16.png rename to assets/resources/dark_resources/buffer16.png diff --git a/share/dark_resources/buffer20.png b/assets/resources/dark_resources/buffer20.png similarity index 100% rename from share/dark_resources/buffer20.png rename to assets/resources/dark_resources/buffer20.png diff --git a/share/dark_resources/buffer24.png b/assets/resources/dark_resources/buffer24.png similarity index 100% rename from share/dark_resources/buffer24.png rename to assets/resources/dark_resources/buffer24.png diff --git a/share/dark_resources/bug16.png b/assets/resources/dark_resources/bug16.png similarity index 100% rename from share/dark_resources/bug16.png rename to assets/resources/dark_resources/bug16.png diff --git a/share/dark_resources/bug32.png b/assets/resources/dark_resources/bug32.png similarity index 100% rename from share/dark_resources/bug32.png rename to assets/resources/dark_resources/bug32.png diff --git a/share/dark_resources/calculator16.png b/assets/resources/dark_resources/calculator16.png similarity index 100% rename from share/dark_resources/calculator16.png rename to assets/resources/dark_resources/calculator16.png diff --git a/share/dark_resources/calculator24.png b/assets/resources/dark_resources/calculator24.png similarity index 100% rename from share/dark_resources/calculator24.png rename to assets/resources/dark_resources/calculator24.png diff --git a/share/dark_resources/calibrate_16.png b/assets/resources/dark_resources/calibrate_16.png similarity index 100% rename from share/dark_resources/calibrate_16.png rename to assets/resources/dark_resources/calibrate_16.png diff --git a/share/dark_resources/calibrate_32.png b/assets/resources/dark_resources/calibrate_32.png similarity index 100% rename from share/dark_resources/calibrate_32.png rename to assets/resources/dark_resources/calibrate_32.png diff --git a/share/dark_resources/cancel_edit16.png b/assets/resources/dark_resources/cancel_edit16.png similarity index 100% rename from share/dark_resources/cancel_edit16.png rename to assets/resources/dark_resources/cancel_edit16.png diff --git a/share/dark_resources/cancel_edit32.png b/assets/resources/dark_resources/cancel_edit32.png similarity index 100% rename from share/dark_resources/cancel_edit32.png rename to assets/resources/dark_resources/cancel_edit32.png diff --git a/share/dark_resources/circle32.png b/assets/resources/dark_resources/circle32.png similarity index 100% rename from share/dark_resources/circle32.png rename to assets/resources/dark_resources/circle32.png diff --git a/share/dark_resources/clear_plot16.png b/assets/resources/dark_resources/clear_plot16.png similarity index 100% rename from share/dark_resources/clear_plot16.png rename to assets/resources/dark_resources/clear_plot16.png diff --git a/share/dark_resources/clear_plot32.png b/assets/resources/dark_resources/clear_plot32.png similarity index 100% rename from share/dark_resources/clear_plot32.png rename to assets/resources/dark_resources/clear_plot32.png diff --git a/share/dark_resources/close_edit_file16.png b/assets/resources/dark_resources/close_edit_file16.png similarity index 100% rename from share/dark_resources/close_edit_file16.png rename to assets/resources/dark_resources/close_edit_file16.png diff --git a/share/dark_resources/close_edit_file32.png b/assets/resources/dark_resources/close_edit_file32.png similarity index 100% rename from share/dark_resources/close_edit_file32.png rename to assets/resources/dark_resources/close_edit_file32.png diff --git a/share/dark_resources/cnc16.png b/assets/resources/dark_resources/cnc16.png similarity index 100% rename from share/dark_resources/cnc16.png rename to assets/resources/dark_resources/cnc16.png diff --git a/share/dark_resources/cnc32.png b/assets/resources/dark_resources/cnc32.png similarity index 100% rename from share/dark_resources/cnc32.png rename to assets/resources/dark_resources/cnc32.png diff --git a/share/dark_resources/code.png b/assets/resources/dark_resources/code.png similarity index 100% rename from share/dark_resources/code.png rename to assets/resources/dark_resources/code.png diff --git a/share/dark_resources/code_editor32.png b/assets/resources/dark_resources/code_editor32.png similarity index 100% rename from share/dark_resources/code_editor32.png rename to assets/resources/dark_resources/code_editor32.png diff --git a/share/dark_resources/convert24.png b/assets/resources/dark_resources/convert24.png similarity index 100% rename from share/dark_resources/convert24.png rename to assets/resources/dark_resources/convert24.png diff --git a/share/dark_resources/copperfill16.png b/assets/resources/dark_resources/copperfill16.png similarity index 100% rename from share/dark_resources/copperfill16.png rename to assets/resources/dark_resources/copperfill16.png diff --git a/share/dark_resources/copperfill32.png b/assets/resources/dark_resources/copperfill32.png similarity index 100% rename from share/dark_resources/copperfill32.png rename to assets/resources/dark_resources/copperfill32.png diff --git a/share/dark_resources/copy.png b/assets/resources/dark_resources/copy.png similarity index 100% rename from share/dark_resources/copy.png rename to assets/resources/dark_resources/copy.png diff --git a/share/dark_resources/copy16.png b/assets/resources/dark_resources/copy16.png similarity index 100% rename from share/dark_resources/copy16.png rename to assets/resources/dark_resources/copy16.png diff --git a/share/dark_resources/copy32.png b/assets/resources/dark_resources/copy32.png similarity index 100% rename from share/dark_resources/copy32.png rename to assets/resources/dark_resources/copy32.png diff --git a/share/dark_resources/copy_16.png b/assets/resources/dark_resources/copy_16.png similarity index 100% rename from share/dark_resources/copy_16.png rename to assets/resources/dark_resources/copy_16.png diff --git a/share/dark_resources/copy_file16.png b/assets/resources/dark_resources/copy_file16.png similarity index 100% rename from share/dark_resources/copy_file16.png rename to assets/resources/dark_resources/copy_file16.png diff --git a/share/dark_resources/copy_file32.png b/assets/resources/dark_resources/copy_file32.png similarity index 100% rename from share/dark_resources/copy_file32.png rename to assets/resources/dark_resources/copy_file32.png diff --git a/share/dark_resources/copy_geo.png b/assets/resources/dark_resources/copy_geo.png similarity index 100% rename from share/dark_resources/copy_geo.png rename to assets/resources/dark_resources/copy_geo.png diff --git a/share/dark_resources/corner32.png b/assets/resources/dark_resources/corner32.png similarity index 100% rename from share/dark_resources/corner32.png rename to assets/resources/dark_resources/corner32.png diff --git a/share/dark_resources/cut16.png b/assets/resources/dark_resources/cut16.png similarity index 100% rename from share/dark_resources/cut16.png rename to assets/resources/dark_resources/cut16.png diff --git a/share/dark_resources/cut16_bis.png b/assets/resources/dark_resources/cut16_bis.png similarity index 100% rename from share/dark_resources/cut16_bis.png rename to assets/resources/dark_resources/cut16_bis.png diff --git a/share/dark_resources/cut32.png b/assets/resources/dark_resources/cut32.png similarity index 100% rename from share/dark_resources/cut32.png rename to assets/resources/dark_resources/cut32.png diff --git a/share/dark_resources/cut32_bis.png b/assets/resources/dark_resources/cut32_bis.png similarity index 100% rename from share/dark_resources/cut32_bis.png rename to assets/resources/dark_resources/cut32_bis.png diff --git a/share/dark_resources/cutpath16.png b/assets/resources/dark_resources/cutpath16.png similarity index 100% rename from share/dark_resources/cutpath16.png rename to assets/resources/dark_resources/cutpath16.png diff --git a/share/dark_resources/cutpath24.png b/assets/resources/dark_resources/cutpath24.png similarity index 100% rename from share/dark_resources/cutpath24.png rename to assets/resources/dark_resources/cutpath24.png diff --git a/share/dark_resources/cutpath32.png b/assets/resources/dark_resources/cutpath32.png similarity index 100% rename from share/dark_resources/cutpath32.png rename to assets/resources/dark_resources/cutpath32.png diff --git a/share/dark_resources/database32.png b/assets/resources/dark_resources/database32.png similarity index 100% rename from share/dark_resources/database32.png rename to assets/resources/dark_resources/database32.png diff --git a/share/dark_resources/defaults.png b/assets/resources/dark_resources/defaults.png similarity index 100% rename from share/dark_resources/defaults.png rename to assets/resources/dark_resources/defaults.png diff --git a/share/dark_resources/delete32.png b/assets/resources/dark_resources/delete32.png similarity index 100% rename from share/dark_resources/delete32.png rename to assets/resources/dark_resources/delete32.png diff --git a/share/dark_resources/delete_file16.png b/assets/resources/dark_resources/delete_file16.png similarity index 100% rename from share/dark_resources/delete_file16.png rename to assets/resources/dark_resources/delete_file16.png diff --git a/share/dark_resources/delete_file32.png b/assets/resources/dark_resources/delete_file32.png similarity index 100% rename from share/dark_resources/delete_file32.png rename to assets/resources/dark_resources/delete_file32.png diff --git a/share/dark_resources/deleteshape16.png b/assets/resources/dark_resources/deleteshape16.png similarity index 100% rename from share/dark_resources/deleteshape16.png rename to assets/resources/dark_resources/deleteshape16.png diff --git a/share/dark_resources/deleteshape24.png b/assets/resources/dark_resources/deleteshape24.png similarity index 100% rename from share/dark_resources/deleteshape24.png rename to assets/resources/dark_resources/deleteshape24.png diff --git a/share/dark_resources/deleteshape32.png b/assets/resources/dark_resources/deleteshape32.png similarity index 100% rename from share/dark_resources/deleteshape32.png rename to assets/resources/dark_resources/deleteshape32.png diff --git a/share/dark_resources/deselect_all32.png b/assets/resources/dark_resources/deselect_all32.png similarity index 100% rename from share/dark_resources/deselect_all32.png rename to assets/resources/dark_resources/deselect_all32.png diff --git a/share/dark_resources/disable16.png b/assets/resources/dark_resources/disable16.png similarity index 100% rename from share/dark_resources/disable16.png rename to assets/resources/dark_resources/disable16.png diff --git a/share/dark_resources/disable32.png b/assets/resources/dark_resources/disable32.png similarity index 100% rename from share/dark_resources/disable32.png rename to assets/resources/dark_resources/disable32.png diff --git a/share/dark_resources/disc32.png b/assets/resources/dark_resources/disc32.png similarity index 100% rename from share/dark_resources/disc32.png rename to assets/resources/dark_resources/disc32.png diff --git a/share/dark_resources/distance16.png b/assets/resources/dark_resources/distance16.png similarity index 100% rename from share/dark_resources/distance16.png rename to assets/resources/dark_resources/distance16.png diff --git a/share/dark_resources/distance32.png b/assets/resources/dark_resources/distance32.png similarity index 100% rename from share/dark_resources/distance32.png rename to assets/resources/dark_resources/distance32.png diff --git a/share/dark_resources/distance_min16.png b/assets/resources/dark_resources/distance_min16.png similarity index 100% rename from share/dark_resources/distance_min16.png rename to assets/resources/dark_resources/distance_min16.png diff --git a/share/dark_resources/distance_min32.png b/assets/resources/dark_resources/distance_min32.png similarity index 100% rename from share/dark_resources/distance_min32.png rename to assets/resources/dark_resources/distance_min32.png diff --git a/share/dark_resources/doubleside16.png b/assets/resources/dark_resources/doubleside16.png similarity index 100% rename from share/dark_resources/doubleside16.png rename to assets/resources/dark_resources/doubleside16.png diff --git a/share/dark_resources/doubleside32.png b/assets/resources/dark_resources/doubleside32.png similarity index 100% rename from share/dark_resources/doubleside32.png rename to assets/resources/dark_resources/doubleside32.png diff --git a/share/dark_resources/draw32.png b/assets/resources/dark_resources/draw32.png similarity index 100% rename from share/dark_resources/draw32.png rename to assets/resources/dark_resources/draw32.png diff --git a/share/dark_resources/drill16.png b/assets/resources/dark_resources/drill16.png similarity index 100% rename from share/dark_resources/drill16.png rename to assets/resources/dark_resources/drill16.png diff --git a/share/dark_resources/drill32.png b/assets/resources/dark_resources/drill32.png similarity index 100% rename from share/dark_resources/drill32.png rename to assets/resources/dark_resources/drill32.png diff --git a/share/dark_resources/dxf16.png b/assets/resources/dark_resources/dxf16.png similarity index 100% rename from share/dark_resources/dxf16.png rename to assets/resources/dark_resources/dxf16.png diff --git a/share/dark_resources/edit16.png b/assets/resources/dark_resources/edit16.png similarity index 100% rename from share/dark_resources/edit16.png rename to assets/resources/dark_resources/edit16.png diff --git a/share/dark_resources/edit32.png b/assets/resources/dark_resources/edit32.png similarity index 100% rename from share/dark_resources/edit32.png rename to assets/resources/dark_resources/edit32.png diff --git a/share/dark_resources/edit_file16.png b/assets/resources/dark_resources/edit_file16.png similarity index 100% rename from share/dark_resources/edit_file16.png rename to assets/resources/dark_resources/edit_file16.png diff --git a/share/dark_resources/edit_file32.png b/assets/resources/dark_resources/edit_file32.png similarity index 100% rename from share/dark_resources/edit_file32.png rename to assets/resources/dark_resources/edit_file32.png diff --git a/share/dark_resources/edit_ok16.png b/assets/resources/dark_resources/edit_ok16.png similarity index 100% rename from share/dark_resources/edit_ok16.png rename to assets/resources/dark_resources/edit_ok16.png diff --git a/share/dark_resources/edit_ok32.png b/assets/resources/dark_resources/edit_ok32.png similarity index 100% rename from share/dark_resources/edit_ok32.png rename to assets/resources/dark_resources/edit_ok32.png diff --git a/share/dark_resources/edit_ok32_bis.png b/assets/resources/dark_resources/edit_ok32_bis.png similarity index 100% rename from share/dark_resources/edit_ok32_bis.png rename to assets/resources/dark_resources/edit_ok32_bis.png diff --git a/share/dark_resources/eraser26.png b/assets/resources/dark_resources/eraser26.png similarity index 100% rename from share/dark_resources/eraser26.png rename to assets/resources/dark_resources/eraser26.png diff --git a/share/dark_resources/explode32.png b/assets/resources/dark_resources/explode32.png similarity index 100% rename from share/dark_resources/explode32.png rename to assets/resources/dark_resources/explode32.png diff --git a/share/dark_resources/export.png b/assets/resources/dark_resources/export.png similarity index 100% rename from share/dark_resources/export.png rename to assets/resources/dark_resources/export.png diff --git a/share/dark_resources/export_png32.png b/assets/resources/dark_resources/export_png32.png similarity index 100% rename from share/dark_resources/export_png32.png rename to assets/resources/dark_resources/export_png32.png diff --git a/share/dark_resources/extract_drill16.png b/assets/resources/dark_resources/extract_drill16.png similarity index 100% rename from share/dark_resources/extract_drill16.png rename to assets/resources/dark_resources/extract_drill16.png diff --git a/share/dark_resources/extract_drill32.png b/assets/resources/dark_resources/extract_drill32.png similarity index 100% rename from share/dark_resources/extract_drill32.png rename to assets/resources/dark_resources/extract_drill32.png diff --git a/share/dark_resources/fiducials_32.png b/assets/resources/dark_resources/fiducials_32.png similarity index 100% rename from share/dark_resources/fiducials_32.png rename to assets/resources/dark_resources/fiducials_32.png diff --git a/share/dark_resources/file16.png b/assets/resources/dark_resources/file16.png similarity index 100% rename from share/dark_resources/file16.png rename to assets/resources/dark_resources/file16.png diff --git a/share/dark_resources/file32.png b/assets/resources/dark_resources/file32.png similarity index 100% rename from share/dark_resources/file32.png rename to assets/resources/dark_resources/file32.png diff --git a/share/dark_resources/film16.png b/assets/resources/dark_resources/film16.png similarity index 100% rename from share/dark_resources/film16.png rename to assets/resources/dark_resources/film16.png diff --git a/share/dark_resources/film32.png b/assets/resources/dark_resources/film32.png similarity index 100% rename from share/dark_resources/film32.png rename to assets/resources/dark_resources/film32.png diff --git a/share/dark_resources/flatcam_icon128.png b/assets/resources/dark_resources/flatcam_icon128.png similarity index 100% rename from share/dark_resources/flatcam_icon128.png rename to assets/resources/dark_resources/flatcam_icon128.png diff --git a/share/dark_resources/flatcam_icon16.ico b/assets/resources/dark_resources/flatcam_icon16.ico similarity index 100% rename from share/dark_resources/flatcam_icon16.ico rename to assets/resources/dark_resources/flatcam_icon16.ico diff --git a/share/dark_resources/flatcam_icon16.png b/assets/resources/dark_resources/flatcam_icon16.png similarity index 100% rename from share/dark_resources/flatcam_icon16.png rename to assets/resources/dark_resources/flatcam_icon16.png diff --git a/share/dark_resources/flatcam_icon24.png b/assets/resources/dark_resources/flatcam_icon24.png similarity index 100% rename from share/dark_resources/flatcam_icon24.png rename to assets/resources/dark_resources/flatcam_icon24.png diff --git a/share/dark_resources/flatcam_icon256.ico b/assets/resources/dark_resources/flatcam_icon256.ico similarity index 100% rename from share/dark_resources/flatcam_icon256.ico rename to assets/resources/dark_resources/flatcam_icon256.ico diff --git a/share/dark_resources/flatcam_icon256.png b/assets/resources/dark_resources/flatcam_icon256.png similarity index 100% rename from share/dark_resources/flatcam_icon256.png rename to assets/resources/dark_resources/flatcam_icon256.png diff --git a/share/dark_resources/flatcam_icon32.ico b/assets/resources/dark_resources/flatcam_icon32.ico similarity index 100% rename from share/dark_resources/flatcam_icon32.ico rename to assets/resources/dark_resources/flatcam_icon32.ico diff --git a/share/dark_resources/flatcam_icon32.png b/assets/resources/dark_resources/flatcam_icon32.png similarity index 100% rename from share/dark_resources/flatcam_icon32.png rename to assets/resources/dark_resources/flatcam_icon32.png diff --git a/share/dark_resources/flatcam_icon32_green.png b/assets/resources/dark_resources/flatcam_icon32_green.png similarity index 100% rename from share/dark_resources/flatcam_icon32_green.png rename to assets/resources/dark_resources/flatcam_icon32_green.png diff --git a/share/dark_resources/flatcam_icon48.ico b/assets/resources/dark_resources/flatcam_icon48.ico similarity index 100% rename from share/dark_resources/flatcam_icon48.ico rename to assets/resources/dark_resources/flatcam_icon48.ico diff --git a/share/dark_resources/flatcam_icon48.png b/assets/resources/dark_resources/flatcam_icon48.png similarity index 100% rename from share/dark_resources/flatcam_icon48.png rename to assets/resources/dark_resources/flatcam_icon48.png diff --git a/share/dark_resources/flipx.png b/assets/resources/dark_resources/flipx.png similarity index 100% rename from share/dark_resources/flipx.png rename to assets/resources/dark_resources/flipx.png diff --git a/share/dark_resources/flipy.png b/assets/resources/dark_resources/flipy.png similarity index 100% rename from share/dark_resources/flipy.png rename to assets/resources/dark_resources/flipy.png diff --git a/share/dark_resources/floppy16.png b/assets/resources/dark_resources/floppy16.png similarity index 100% rename from share/dark_resources/floppy16.png rename to assets/resources/dark_resources/floppy16.png diff --git a/share/dark_resources/floppy32.png b/assets/resources/dark_resources/floppy32.png similarity index 100% rename from share/dark_resources/floppy32.png rename to assets/resources/dark_resources/floppy32.png diff --git a/share/dark_resources/folder16.png b/assets/resources/dark_resources/folder16.png similarity index 100% rename from share/dark_resources/folder16.png rename to assets/resources/dark_resources/folder16.png diff --git a/share/dark_resources/folder32.png b/assets/resources/dark_resources/folder32.png similarity index 100% rename from share/dark_resources/folder32.png rename to assets/resources/dark_resources/folder32.png diff --git a/share/dark_resources/folder32_Excellon.png b/assets/resources/dark_resources/folder32_Excellon.png similarity index 100% rename from share/dark_resources/folder32_Excellon.png rename to assets/resources/dark_resources/folder32_Excellon.png diff --git a/share/dark_resources/folder32_bis.png b/assets/resources/dark_resources/folder32_bis.png similarity index 100% rename from share/dark_resources/folder32_bis.png rename to assets/resources/dark_resources/folder32_bis.png diff --git a/share/dark_resources/folder32_gerber.png b/assets/resources/dark_resources/folder32_gerber.png similarity index 100% rename from share/dark_resources/folder32_gerber.png rename to assets/resources/dark_resources/folder32_gerber.png diff --git a/share/dark_resources/fscreen32.png b/assets/resources/dark_resources/fscreen32.png similarity index 100% rename from share/dark_resources/fscreen32.png rename to assets/resources/dark_resources/fscreen32.png diff --git a/share/dark_resources/gear32.png b/assets/resources/dark_resources/gear32.png similarity index 100% rename from share/dark_resources/gear32.png rename to assets/resources/dark_resources/gear32.png diff --git a/share/dark_resources/gear48.png b/assets/resources/dark_resources/gear48.png similarity index 100% rename from share/dark_resources/gear48.png rename to assets/resources/dark_resources/gear48.png diff --git a/share/dark_resources/geometry16.png b/assets/resources/dark_resources/geometry16.png similarity index 100% rename from share/dark_resources/geometry16.png rename to assets/resources/dark_resources/geometry16.png diff --git a/share/dark_resources/geometry32.png b/assets/resources/dark_resources/geometry32.png similarity index 100% rename from share/dark_resources/geometry32.png rename to assets/resources/dark_resources/geometry32.png diff --git a/share/dark_resources/globe16.png b/assets/resources/dark_resources/globe16.png similarity index 100% rename from share/dark_resources/globe16.png rename to assets/resources/dark_resources/globe16.png diff --git a/share/dark_resources/goemetry32.png b/assets/resources/dark_resources/goemetry32.png similarity index 100% rename from share/dark_resources/goemetry32.png rename to assets/resources/dark_resources/goemetry32.png diff --git a/share/dark_resources/graylight12.png b/assets/resources/dark_resources/graylight12.png similarity index 100% rename from share/dark_resources/graylight12.png rename to assets/resources/dark_resources/graylight12.png diff --git a/share/dark_resources/green32.png b/assets/resources/dark_resources/green32.png similarity index 100% rename from share/dark_resources/green32.png rename to assets/resources/dark_resources/green32.png diff --git a/share/dark_resources/greenlight12.png b/assets/resources/dark_resources/greenlight12.png similarity index 100% rename from share/dark_resources/greenlight12.png rename to assets/resources/dark_resources/greenlight12.png diff --git a/share/dark_resources/grid16.png b/assets/resources/dark_resources/grid16.png similarity index 100% rename from share/dark_resources/grid16.png rename to assets/resources/dark_resources/grid16.png diff --git a/share/dark_resources/grid32.png b/assets/resources/dark_resources/grid32.png similarity index 100% rename from share/dark_resources/grid32.png rename to assets/resources/dark_resources/grid32.png diff --git a/share/dark_resources/grid32_menu.png b/assets/resources/dark_resources/grid32_menu.png similarity index 100% rename from share/dark_resources/grid32_menu.png rename to assets/resources/dark_resources/grid32_menu.png diff --git a/share/dark_resources/help.png b/assets/resources/dark_resources/help.png similarity index 100% rename from share/dark_resources/help.png rename to assets/resources/dark_resources/help.png diff --git a/share/dark_resources/home16.png b/assets/resources/dark_resources/home16.png similarity index 100% rename from share/dark_resources/home16.png rename to assets/resources/dark_resources/home16.png diff --git a/share/dark_resources/image16.png b/assets/resources/dark_resources/image16.png similarity index 100% rename from share/dark_resources/image16.png rename to assets/resources/dark_resources/image16.png diff --git a/share/dark_resources/image32.png b/assets/resources/dark_resources/image32.png similarity index 100% rename from share/dark_resources/image32.png rename to assets/resources/dark_resources/image32.png diff --git a/share/dark_resources/import.png b/assets/resources/dark_resources/import.png similarity index 100% rename from share/dark_resources/import.png rename to assets/resources/dark_resources/import.png diff --git a/share/dark_resources/info16.png b/assets/resources/dark_resources/info16.png similarity index 100% rename from share/dark_resources/info16.png rename to assets/resources/dark_resources/info16.png diff --git a/share/dark_resources/intersection16.png b/assets/resources/dark_resources/intersection16.png similarity index 100% rename from share/dark_resources/intersection16.png rename to assets/resources/dark_resources/intersection16.png diff --git a/share/dark_resources/intersection24.png b/assets/resources/dark_resources/intersection24.png similarity index 100% rename from share/dark_resources/intersection24.png rename to assets/resources/dark_resources/intersection24.png diff --git a/share/dark_resources/intersection32.png b/assets/resources/dark_resources/intersection32.png similarity index 100% rename from share/dark_resources/intersection32.png rename to assets/resources/dark_resources/intersection32.png diff --git a/share/dark_resources/invert16.png b/assets/resources/dark_resources/invert16.png similarity index 100% rename from share/dark_resources/invert16.png rename to assets/resources/dark_resources/invert16.png diff --git a/share/dark_resources/invert32.png b/assets/resources/dark_resources/invert32.png similarity index 100% rename from share/dark_resources/invert32.png rename to assets/resources/dark_resources/invert32.png diff --git a/share/dark_resources/italic32.png b/assets/resources/dark_resources/italic32.png similarity index 100% rename from share/dark_resources/italic32.png rename to assets/resources/dark_resources/italic32.png diff --git a/share/dark_resources/join16.png b/assets/resources/dark_resources/join16.png similarity index 100% rename from share/dark_resources/join16.png rename to assets/resources/dark_resources/join16.png diff --git a/share/dark_resources/join32.png b/assets/resources/dark_resources/join32.png similarity index 100% rename from share/dark_resources/join32.png rename to assets/resources/dark_resources/join32.png diff --git a/share/dark_resources/jump_to16.png b/assets/resources/dark_resources/jump_to16.png similarity index 100% rename from share/dark_resources/jump_to16.png rename to assets/resources/dark_resources/jump_to16.png diff --git a/share/dark_resources/jump_to32.png b/assets/resources/dark_resources/jump_to32.png similarity index 100% rename from share/dark_resources/jump_to32.png rename to assets/resources/dark_resources/jump_to32.png diff --git a/share/dark_resources/language32.png b/assets/resources/dark_resources/language32.png similarity index 100% rename from share/dark_resources/language32.png rename to assets/resources/dark_resources/language32.png diff --git a/share/dark_resources/letter_t_32.png b/assets/resources/dark_resources/letter_t_32.png similarity index 100% rename from share/dark_resources/letter_t_32.png rename to assets/resources/dark_resources/letter_t_32.png diff --git a/share/dark_resources/link16.png b/assets/resources/dark_resources/link16.png similarity index 100% rename from share/dark_resources/link16.png rename to assets/resources/dark_resources/link16.png diff --git a/share/dark_resources/locate16.png b/assets/resources/dark_resources/locate16.png similarity index 100% rename from share/dark_resources/locate16.png rename to assets/resources/dark_resources/locate16.png diff --git a/share/dark_resources/locate32.png b/assets/resources/dark_resources/locate32.png similarity index 100% rename from share/dark_resources/locate32.png rename to assets/resources/dark_resources/locate32.png diff --git a/share/dark_resources/machine16.png b/assets/resources/dark_resources/machine16.png similarity index 100% rename from share/dark_resources/machine16.png rename to assets/resources/dark_resources/machine16.png diff --git a/share/dark_resources/markarea32.png b/assets/resources/dark_resources/markarea32.png similarity index 100% rename from share/dark_resources/markarea32.png rename to assets/resources/dark_resources/markarea32.png diff --git a/share/dark_resources/move16.png b/assets/resources/dark_resources/move16.png similarity index 100% rename from share/dark_resources/move16.png rename to assets/resources/dark_resources/move16.png diff --git a/share/dark_resources/move32.png b/assets/resources/dark_resources/move32.png similarity index 100% rename from share/dark_resources/move32.png rename to assets/resources/dark_resources/move32.png diff --git a/share/dark_resources/move32_bis.png b/assets/resources/dark_resources/move32_bis.png similarity index 100% rename from share/dark_resources/move32_bis.png rename to assets/resources/dark_resources/move32_bis.png diff --git a/share/dark_resources/ncc16.png b/assets/resources/dark_resources/ncc16.png similarity index 100% rename from share/dark_resources/ncc16.png rename to assets/resources/dark_resources/ncc16.png diff --git a/share/dark_resources/new_exc32.png b/assets/resources/dark_resources/new_exc32.png similarity index 100% rename from share/dark_resources/new_exc32.png rename to assets/resources/dark_resources/new_exc32.png diff --git a/share/dark_resources/new_file16.png b/assets/resources/dark_resources/new_file16.png similarity index 100% rename from share/dark_resources/new_file16.png rename to assets/resources/dark_resources/new_file16.png diff --git a/share/dark_resources/new_file32.png b/assets/resources/dark_resources/new_file32.png similarity index 100% rename from share/dark_resources/new_file32.png rename to assets/resources/dark_resources/new_file32.png diff --git a/share/dark_resources/new_file_exc16.png b/assets/resources/dark_resources/new_file_exc16.png similarity index 100% rename from share/dark_resources/new_file_exc16.png rename to assets/resources/dark_resources/new_file_exc16.png diff --git a/share/dark_resources/new_file_exc32.png b/assets/resources/dark_resources/new_file_exc32.png similarity index 100% rename from share/dark_resources/new_file_exc32.png rename to assets/resources/dark_resources/new_file_exc32.png diff --git a/share/dark_resources/new_file_geo16.png b/assets/resources/dark_resources/new_file_geo16.png similarity index 100% rename from share/dark_resources/new_file_geo16.png rename to assets/resources/dark_resources/new_file_geo16.png diff --git a/share/dark_resources/new_file_geo32.png b/assets/resources/dark_resources/new_file_geo32.png similarity index 100% rename from share/dark_resources/new_file_geo32.png rename to assets/resources/dark_resources/new_file_geo32.png diff --git a/share/dark_resources/new_file_grb16.png b/assets/resources/dark_resources/new_file_grb16.png similarity index 100% rename from share/dark_resources/new_file_grb16.png rename to assets/resources/dark_resources/new_file_grb16.png diff --git a/share/dark_resources/new_file_grb32.png b/assets/resources/dark_resources/new_file_grb32.png similarity index 100% rename from share/dark_resources/new_file_grb32.png rename to assets/resources/dark_resources/new_file_grb32.png diff --git a/share/dark_resources/new_geo16.png b/assets/resources/dark_resources/new_geo16.png similarity index 100% rename from share/dark_resources/new_geo16.png rename to assets/resources/dark_resources/new_geo16.png diff --git a/share/dark_resources/new_geo32.png b/assets/resources/dark_resources/new_geo32.png similarity index 100% rename from share/dark_resources/new_geo32.png rename to assets/resources/dark_resources/new_geo32.png diff --git a/share/dark_resources/new_geo32_bis.png b/assets/resources/dark_resources/new_geo32_bis.png similarity index 100% rename from share/dark_resources/new_geo32_bis.png rename to assets/resources/dark_resources/new_geo32_bis.png diff --git a/share/dark_resources/notebook16.png b/assets/resources/dark_resources/notebook16.png similarity index 100% rename from share/dark_resources/notebook16.png rename to assets/resources/dark_resources/notebook16.png diff --git a/share/dark_resources/notebook32.png b/assets/resources/dark_resources/notebook32.png similarity index 100% rename from share/dark_resources/notebook32.png rename to assets/resources/dark_resources/notebook32.png diff --git a/share/dark_resources/notes16.png b/assets/resources/dark_resources/notes16.png similarity index 100% rename from share/dark_resources/notes16.png rename to assets/resources/dark_resources/notes16.png diff --git a/share/dark_resources/notes16_1.png b/assets/resources/dark_resources/notes16_1.png similarity index 100% rename from share/dark_resources/notes16_1.png rename to assets/resources/dark_resources/notes16_1.png diff --git a/share/dark_resources/offset32.png b/assets/resources/dark_resources/offset32.png similarity index 100% rename from share/dark_resources/offset32.png rename to assets/resources/dark_resources/offset32.png diff --git a/share/dark_resources/offsetx32.png b/assets/resources/dark_resources/offsetx32.png similarity index 100% rename from share/dark_resources/offsetx32.png rename to assets/resources/dark_resources/offsetx32.png diff --git a/share/dark_resources/offsety32.png b/assets/resources/dark_resources/offsety32.png similarity index 100% rename from share/dark_resources/offsety32.png rename to assets/resources/dark_resources/offsety32.png diff --git a/share/dark_resources/open_excellon32.png b/assets/resources/dark_resources/open_excellon32.png similarity index 100% rename from share/dark_resources/open_excellon32.png rename to assets/resources/dark_resources/open_excellon32.png diff --git a/share/dark_resources/open_script32.png b/assets/resources/dark_resources/open_script32.png similarity index 100% rename from share/dark_resources/open_script32.png rename to assets/resources/dark_resources/open_script32.png diff --git a/share/dark_resources/origin.png b/assets/resources/dark_resources/origin.png similarity index 100% rename from share/dark_resources/origin.png rename to assets/resources/dark_resources/origin.png diff --git a/share/dark_resources/origin16.png b/assets/resources/dark_resources/origin16.png similarity index 100% rename from share/dark_resources/origin16.png rename to assets/resources/dark_resources/origin16.png diff --git a/share/dark_resources/origin2_16.png b/assets/resources/dark_resources/origin2_16.png similarity index 100% rename from share/dark_resources/origin2_16.png rename to assets/resources/dark_resources/origin2_16.png diff --git a/share/dark_resources/origin2_32.png b/assets/resources/dark_resources/origin2_32.png similarity index 100% rename from share/dark_resources/origin2_32.png rename to assets/resources/dark_resources/origin2_32.png diff --git a/share/dark_resources/origin32.png b/assets/resources/dark_resources/origin32.png similarity index 100% rename from share/dark_resources/origin32.png rename to assets/resources/dark_resources/origin32.png diff --git a/share/dark_resources/padarray32.png b/assets/resources/dark_resources/padarray32.png similarity index 100% rename from share/dark_resources/padarray32.png rename to assets/resources/dark_resources/padarray32.png diff --git a/share/dark_resources/paint16.png b/assets/resources/dark_resources/paint16.png similarity index 100% rename from share/dark_resources/paint16.png rename to assets/resources/dark_resources/paint16.png diff --git a/share/dark_resources/paint20.png b/assets/resources/dark_resources/paint20.png similarity index 100% rename from share/dark_resources/paint20.png rename to assets/resources/dark_resources/paint20.png diff --git a/share/dark_resources/paint20_1.png b/assets/resources/dark_resources/paint20_1.png similarity index 100% rename from share/dark_resources/paint20_1.png rename to assets/resources/dark_resources/paint20_1.png diff --git a/share/dark_resources/panel16.png b/assets/resources/dark_resources/panel16.png similarity index 100% rename from share/dark_resources/panel16.png rename to assets/resources/dark_resources/panel16.png diff --git a/share/dark_resources/panel32.png b/assets/resources/dark_resources/panel32.png similarity index 100% rename from share/dark_resources/panel32.png rename to assets/resources/dark_resources/panel32.png diff --git a/share/dark_resources/panelize16.png b/assets/resources/dark_resources/panelize16.png similarity index 100% rename from share/dark_resources/panelize16.png rename to assets/resources/dark_resources/panelize16.png diff --git a/share/dark_resources/panelize32.png b/assets/resources/dark_resources/panelize32.png similarity index 100% rename from share/dark_resources/panelize32.png rename to assets/resources/dark_resources/panelize32.png diff --git a/share/dark_resources/path32.png b/assets/resources/dark_resources/path32.png similarity index 100% rename from share/dark_resources/path32.png rename to assets/resources/dark_resources/path32.png diff --git a/share/dark_resources/pdf32.png b/assets/resources/dark_resources/pdf32.png similarity index 100% rename from share/dark_resources/pdf32.png rename to assets/resources/dark_resources/pdf32.png diff --git a/share/dark_resources/pdf_link16.png b/assets/resources/dark_resources/pdf_link16.png similarity index 100% rename from share/dark_resources/pdf_link16.png rename to assets/resources/dark_resources/pdf_link16.png diff --git a/share/dark_resources/plot32.png b/assets/resources/dark_resources/plot32.png similarity index 100% rename from share/dark_resources/plot32.png rename to assets/resources/dark_resources/plot32.png diff --git a/share/dark_resources/plus16.png b/assets/resources/dark_resources/plus16.png similarity index 100% rename from share/dark_resources/plus16.png rename to assets/resources/dark_resources/plus16.png diff --git a/share/dark_resources/plus32.png b/assets/resources/dark_resources/plus32.png similarity index 100% rename from share/dark_resources/plus32.png rename to assets/resources/dark_resources/plus32.png diff --git a/share/dark_resources/pointer.png b/assets/resources/dark_resources/pointer.png similarity index 100% rename from share/dark_resources/pointer.png rename to assets/resources/dark_resources/pointer.png diff --git a/share/dark_resources/pointer32.png b/assets/resources/dark_resources/pointer32.png similarity index 100% rename from share/dark_resources/pointer32.png rename to assets/resources/dark_resources/pointer32.png diff --git a/share/dark_resources/poligonize32.png b/assets/resources/dark_resources/poligonize32.png similarity index 100% rename from share/dark_resources/poligonize32.png rename to assets/resources/dark_resources/poligonize32.png diff --git a/share/dark_resources/polygon32.png b/assets/resources/dark_resources/polygon32.png similarity index 100% rename from share/dark_resources/polygon32.png rename to assets/resources/dark_resources/polygon32.png diff --git a/share/dark_resources/power16.png b/assets/resources/dark_resources/power16.png similarity index 100% rename from share/dark_resources/power16.png rename to assets/resources/dark_resources/power16.png diff --git a/share/dark_resources/pref.png b/assets/resources/dark_resources/pref.png similarity index 100% rename from share/dark_resources/pref.png rename to assets/resources/dark_resources/pref.png diff --git a/share/dark_resources/printer16.png b/assets/resources/dark_resources/printer16.png similarity index 100% rename from share/dark_resources/printer16.png rename to assets/resources/dark_resources/printer16.png diff --git a/share/dark_resources/printer32.png b/assets/resources/dark_resources/printer32.png similarity index 100% rename from share/dark_resources/printer32.png rename to assets/resources/dark_resources/printer32.png diff --git a/share/dark_resources/project16.png b/assets/resources/dark_resources/project16.png similarity index 100% rename from share/dark_resources/project16.png rename to assets/resources/dark_resources/project16.png diff --git a/share/dark_resources/project_save16.png b/assets/resources/dark_resources/project_save16.png similarity index 100% rename from share/dark_resources/project_save16.png rename to assets/resources/dark_resources/project_save16.png diff --git a/share/dark_resources/project_save32.png b/assets/resources/dark_resources/project_save32.png similarity index 100% rename from share/dark_resources/project_save32.png rename to assets/resources/dark_resources/project_save32.png diff --git a/share/dark_resources/properties32.png b/assets/resources/dark_resources/properties32.png similarity index 100% rename from share/dark_resources/properties32.png rename to assets/resources/dark_resources/properties32.png diff --git a/share/dark_resources/punch16.png b/assets/resources/dark_resources/punch16.png similarity index 100% rename from share/dark_resources/punch16.png rename to assets/resources/dark_resources/punch16.png diff --git a/share/dark_resources/punch32.png b/assets/resources/dark_resources/punch32.png similarity index 100% rename from share/dark_resources/punch32.png rename to assets/resources/dark_resources/punch32.png diff --git a/share/dark_resources/qrcode32.png b/assets/resources/dark_resources/qrcode32.png similarity index 100% rename from share/dark_resources/qrcode32.png rename to assets/resources/dark_resources/qrcode32.png diff --git a/share/dark_resources/recent_files.png b/assets/resources/dark_resources/recent_files.png similarity index 100% rename from share/dark_resources/recent_files.png rename to assets/resources/dark_resources/recent_files.png diff --git a/share/dark_resources/rectangle32.png b/assets/resources/dark_resources/rectangle32.png similarity index 100% rename from share/dark_resources/rectangle32.png rename to assets/resources/dark_resources/rectangle32.png diff --git a/share/dark_resources/recycle16.png b/assets/resources/dark_resources/recycle16.png similarity index 100% rename from share/dark_resources/recycle16.png rename to assets/resources/dark_resources/recycle16.png diff --git a/share/dark_resources/red32.png b/assets/resources/dark_resources/red32.png similarity index 100% rename from share/dark_resources/red32.png rename to assets/resources/dark_resources/red32.png diff --git a/share/dark_resources/redlight12.png b/assets/resources/dark_resources/redlight12.png similarity index 100% rename from share/dark_resources/redlight12.png rename to assets/resources/dark_resources/redlight12.png diff --git a/share/dark_resources/replot16.png b/assets/resources/dark_resources/replot16.png similarity index 100% rename from share/dark_resources/replot16.png rename to assets/resources/dark_resources/replot16.png diff --git a/share/dark_resources/replot32.png b/assets/resources/dark_resources/replot32.png similarity index 100% rename from share/dark_resources/replot32.png rename to assets/resources/dark_resources/replot32.png diff --git a/share/dark_resources/resize16.png b/assets/resources/dark_resources/resize16.png similarity index 100% rename from share/dark_resources/resize16.png rename to assets/resources/dark_resources/resize16.png diff --git a/share/dark_resources/rotate.png b/assets/resources/dark_resources/rotate.png similarity index 100% rename from share/dark_resources/rotate.png rename to assets/resources/dark_resources/rotate.png diff --git a/share/dark_resources/rules32.png b/assets/resources/dark_resources/rules32.png similarity index 100% rename from share/dark_resources/rules32.png rename to assets/resources/dark_resources/rules32.png diff --git a/share/dark_resources/save_as.png b/assets/resources/dark_resources/save_as.png similarity index 100% rename from share/dark_resources/save_as.png rename to assets/resources/dark_resources/save_as.png diff --git a/share/dark_resources/scale32.png b/assets/resources/dark_resources/scale32.png similarity index 100% rename from share/dark_resources/scale32.png rename to assets/resources/dark_resources/scale32.png diff --git a/share/dark_resources/script14.png b/assets/resources/dark_resources/script14.png similarity index 100% rename from share/dark_resources/script14.png rename to assets/resources/dark_resources/script14.png diff --git a/share/dark_resources/script16.png b/assets/resources/dark_resources/script16.png similarity index 100% rename from share/dark_resources/script16.png rename to assets/resources/dark_resources/script16.png diff --git a/share/dark_resources/script_new16.png b/assets/resources/dark_resources/script_new16.png similarity index 100% rename from share/dark_resources/script_new16.png rename to assets/resources/dark_resources/script_new16.png diff --git a/share/dark_resources/script_new24.png b/assets/resources/dark_resources/script_new24.png similarity index 100% rename from share/dark_resources/script_new24.png rename to assets/resources/dark_resources/script_new24.png diff --git a/share/dark_resources/script_open16.png b/assets/resources/dark_resources/script_open16.png similarity index 100% rename from share/dark_resources/script_open16.png rename to assets/resources/dark_resources/script_open16.png diff --git a/share/dark_resources/script_open18.png b/assets/resources/dark_resources/script_open18.png similarity index 100% rename from share/dark_resources/script_open18.png rename to assets/resources/dark_resources/script_open18.png diff --git a/share/dark_resources/script_open24.png b/assets/resources/dark_resources/script_open24.png similarity index 100% rename from share/dark_resources/script_open24.png rename to assets/resources/dark_resources/script_open24.png diff --git a/share/dark_resources/select_all.png b/assets/resources/dark_resources/select_all.png similarity index 100% rename from share/dark_resources/select_all.png rename to assets/resources/dark_resources/select_all.png diff --git a/share/dark_resources/semidisc32.png b/assets/resources/dark_resources/semidisc32.png similarity index 100% rename from share/dark_resources/semidisc32.png rename to assets/resources/dark_resources/semidisc32.png diff --git a/share/dark_resources/set_color16.png b/assets/resources/dark_resources/set_color16.png similarity index 100% rename from share/dark_resources/set_color16.png rename to assets/resources/dark_resources/set_color16.png diff --git a/share/dark_resources/set_color32.png b/assets/resources/dark_resources/set_color32.png similarity index 100% rename from share/dark_resources/set_color32.png rename to assets/resources/dark_resources/set_color32.png diff --git a/share/dark_resources/shell16.png b/assets/resources/dark_resources/shell16.png similarity index 100% rename from share/dark_resources/shell16.png rename to assets/resources/dark_resources/shell16.png diff --git a/share/dark_resources/shell32.png b/assets/resources/dark_resources/shell32.png similarity index 100% rename from share/dark_resources/shell32.png rename to assets/resources/dark_resources/shell32.png diff --git a/share/dark_resources/shortcuts24.png b/assets/resources/dark_resources/shortcuts24.png similarity index 100% rename from share/dark_resources/shortcuts24.png rename to assets/resources/dark_resources/shortcuts24.png diff --git a/share/dark_resources/skewX.png b/assets/resources/dark_resources/skewX.png similarity index 100% rename from share/dark_resources/skewX.png rename to assets/resources/dark_resources/skewX.png diff --git a/share/dark_resources/skewY.png b/assets/resources/dark_resources/skewY.png similarity index 100% rename from share/dark_resources/skewY.png rename to assets/resources/dark_resources/skewY.png diff --git a/share/dark_resources/slot26.png b/assets/resources/dark_resources/slot26.png similarity index 100% rename from share/dark_resources/slot26.png rename to assets/resources/dark_resources/slot26.png diff --git a/share/dark_resources/slot_array26.png b/assets/resources/dark_resources/slot_array26.png similarity index 100% rename from share/dark_resources/slot_array26.png rename to assets/resources/dark_resources/slot_array26.png diff --git a/share/dark_resources/snap_16.png b/assets/resources/dark_resources/snap_16.png similarity index 100% rename from share/dark_resources/snap_16.png rename to assets/resources/dark_resources/snap_16.png diff --git a/share/dark_resources/snap_filled_16.png b/assets/resources/dark_resources/snap_filled_16.png similarity index 100% rename from share/dark_resources/snap_filled_16.png rename to assets/resources/dark_resources/snap_filled_16.png diff --git a/share/dark_resources/solderpaste32.png b/assets/resources/dark_resources/solderpaste32.png similarity index 100% rename from share/dark_resources/solderpaste32.png rename to assets/resources/dark_resources/solderpaste32.png diff --git a/share/dark_resources/solderpastebis32.png b/assets/resources/dark_resources/solderpastebis32.png similarity index 100% rename from share/dark_resources/solderpastebis32.png rename to assets/resources/dark_resources/solderpastebis32.png diff --git a/share/dark_resources/source32.png b/assets/resources/dark_resources/source32.png similarity index 100% rename from share/dark_resources/source32.png rename to assets/resources/dark_resources/source32.png diff --git a/share/dark_resources/splash.png b/assets/resources/dark_resources/splash.png similarity index 100% rename from share/dark_resources/splash.png rename to assets/resources/dark_resources/splash.png diff --git a/share/dark_resources/sub32.png b/assets/resources/dark_resources/sub32.png similarity index 100% rename from share/dark_resources/sub32.png rename to assets/resources/dark_resources/sub32.png diff --git a/share/dark_resources/subtract16.png b/assets/resources/dark_resources/subtract16.png similarity index 100% rename from share/dark_resources/subtract16.png rename to assets/resources/dark_resources/subtract16.png diff --git a/share/dark_resources/subtract24.png b/assets/resources/dark_resources/subtract24.png similarity index 100% rename from share/dark_resources/subtract24.png rename to assets/resources/dark_resources/subtract24.png diff --git a/share/dark_resources/subtract32.png b/assets/resources/dark_resources/subtract32.png similarity index 100% rename from share/dark_resources/subtract32.png rename to assets/resources/dark_resources/subtract32.png diff --git a/share/dark_resources/svg16.png b/assets/resources/dark_resources/svg16.png similarity index 100% rename from share/dark_resources/svg16.png rename to assets/resources/dark_resources/svg16.png diff --git a/share/dark_resources/svg32.png b/assets/resources/dark_resources/svg32.png similarity index 100% rename from share/dark_resources/svg32.png rename to assets/resources/dark_resources/svg32.png diff --git a/share/dark_resources/text32.png b/assets/resources/dark_resources/text32.png similarity index 100% rename from share/dark_resources/text32.png rename to assets/resources/dark_resources/text32.png diff --git a/share/dark_resources/toggle_units16.png b/assets/resources/dark_resources/toggle_units16.png similarity index 100% rename from share/dark_resources/toggle_units16.png rename to assets/resources/dark_resources/toggle_units16.png diff --git a/share/dark_resources/toggle_units32.png b/assets/resources/dark_resources/toggle_units32.png similarity index 100% rename from share/dark_resources/toggle_units32.png rename to assets/resources/dark_resources/toggle_units32.png diff --git a/share/dark_resources/track32.png b/assets/resources/dark_resources/track32.png similarity index 100% rename from share/dark_resources/track32.png rename to assets/resources/dark_resources/track32.png diff --git a/share/dark_resources/transform.png b/assets/resources/dark_resources/transform.png similarity index 100% rename from share/dark_resources/transform.png rename to assets/resources/dark_resources/transform.png diff --git a/share/dark_resources/trash16.png b/assets/resources/dark_resources/trash16.png similarity index 100% rename from share/dark_resources/trash16.png rename to assets/resources/dark_resources/trash16.png diff --git a/share/dark_resources/trash32.png b/assets/resources/dark_resources/trash32.png similarity index 100% rename from share/dark_resources/trash32.png rename to assets/resources/dark_resources/trash32.png diff --git a/share/dark_resources/tv16.png b/assets/resources/dark_resources/tv16.png similarity index 100% rename from share/dark_resources/tv16.png rename to assets/resources/dark_resources/tv16.png diff --git a/share/dark_resources/underline32.png b/assets/resources/dark_resources/underline32.png similarity index 100% rename from share/dark_resources/underline32.png rename to assets/resources/dark_resources/underline32.png diff --git a/share/dark_resources/union16.png b/assets/resources/dark_resources/union16.png similarity index 100% rename from share/dark_resources/union16.png rename to assets/resources/dark_resources/union16.png diff --git a/share/dark_resources/union32.png b/assets/resources/dark_resources/union32.png similarity index 100% rename from share/dark_resources/union32.png rename to assets/resources/dark_resources/union32.png diff --git a/share/dark_resources/videohelp24.png b/assets/resources/dark_resources/videohelp24.png similarity index 100% rename from share/dark_resources/videohelp24.png rename to assets/resources/dark_resources/videohelp24.png diff --git a/share/dark_resources/view64.png b/assets/resources/dark_resources/view64.png similarity index 100% rename from share/dark_resources/view64.png rename to assets/resources/dark_resources/view64.png diff --git a/share/dark_resources/violet32.png b/assets/resources/dark_resources/violet32.png similarity index 100% rename from share/dark_resources/violet32.png rename to assets/resources/dark_resources/violet32.png diff --git a/share/dark_resources/warning.png b/assets/resources/dark_resources/warning.png similarity index 100% rename from share/dark_resources/warning.png rename to assets/resources/dark_resources/warning.png diff --git a/share/dark_resources/white32.png b/assets/resources/dark_resources/white32.png similarity index 100% rename from share/dark_resources/white32.png rename to assets/resources/dark_resources/white32.png diff --git a/share/dark_resources/workspace24.png b/assets/resources/dark_resources/workspace24.png similarity index 100% rename from share/dark_resources/workspace24.png rename to assets/resources/dark_resources/workspace24.png diff --git a/share/dark_resources/yellow32.png b/assets/resources/dark_resources/yellow32.png similarity index 100% rename from share/dark_resources/yellow32.png rename to assets/resources/dark_resources/yellow32.png diff --git a/share/dark_resources/yellowlight12.png b/assets/resources/dark_resources/yellowlight12.png similarity index 100% rename from share/dark_resources/yellowlight12.png rename to assets/resources/dark_resources/yellowlight12.png diff --git a/share/dark_resources/youtube32.png b/assets/resources/dark_resources/youtube32.png similarity index 100% rename from share/dark_resources/youtube32.png rename to assets/resources/dark_resources/youtube32.png diff --git a/share/dark_resources/zoom_fit32.png b/assets/resources/dark_resources/zoom_fit32.png similarity index 100% rename from share/dark_resources/zoom_fit32.png rename to assets/resources/dark_resources/zoom_fit32.png diff --git a/share/dark_resources/zoom_in32.png b/assets/resources/dark_resources/zoom_in32.png similarity index 100% rename from share/dark_resources/zoom_in32.png rename to assets/resources/dark_resources/zoom_in32.png diff --git a/share/dark_resources/zoom_out32.png b/assets/resources/dark_resources/zoom_out32.png similarity index 100% rename from share/dark_resources/zoom_out32.png rename to assets/resources/dark_resources/zoom_out32.png diff --git a/share/database32.png b/assets/resources/database32.png similarity index 100% rename from share/database32.png rename to assets/resources/database32.png diff --git a/share/defaults.png b/assets/resources/defaults.png similarity index 100% rename from share/defaults.png rename to assets/resources/defaults.png diff --git a/share/delete32.png b/assets/resources/delete32.png similarity index 100% rename from share/delete32.png rename to assets/resources/delete32.png diff --git a/share/delete_file16.png b/assets/resources/delete_file16.png similarity index 100% rename from share/delete_file16.png rename to assets/resources/delete_file16.png diff --git a/share/delete_file32.png b/assets/resources/delete_file32.png similarity index 100% rename from share/delete_file32.png rename to assets/resources/delete_file32.png diff --git a/share/deleteshape16.png b/assets/resources/deleteshape16.png similarity index 100% rename from share/deleteshape16.png rename to assets/resources/deleteshape16.png diff --git a/share/deleteshape24.png b/assets/resources/deleteshape24.png similarity index 100% rename from share/deleteshape24.png rename to assets/resources/deleteshape24.png diff --git a/share/deleteshape32.png b/assets/resources/deleteshape32.png similarity index 100% rename from share/deleteshape32.png rename to assets/resources/deleteshape32.png diff --git a/share/deselect_all32.png b/assets/resources/deselect_all32.png similarity index 100% rename from share/deselect_all32.png rename to assets/resources/deselect_all32.png diff --git a/share/disable16.png b/assets/resources/disable16.png similarity index 100% rename from share/disable16.png rename to assets/resources/disable16.png diff --git a/share/disable32.png b/assets/resources/disable32.png similarity index 100% rename from share/disable32.png rename to assets/resources/disable32.png diff --git a/share/disc32.png b/assets/resources/disc32.png similarity index 100% rename from share/disc32.png rename to assets/resources/disc32.png diff --git a/share/distance16.png b/assets/resources/distance16.png similarity index 100% rename from share/distance16.png rename to assets/resources/distance16.png diff --git a/share/distance32.png b/assets/resources/distance32.png similarity index 100% rename from share/distance32.png rename to assets/resources/distance32.png diff --git a/share/distance_min16.png b/assets/resources/distance_min16.png similarity index 100% rename from share/distance_min16.png rename to assets/resources/distance_min16.png diff --git a/share/distance_min32.png b/assets/resources/distance_min32.png similarity index 100% rename from share/distance_min32.png rename to assets/resources/distance_min32.png diff --git a/share/doubleside16.png b/assets/resources/doubleside16.png similarity index 100% rename from share/doubleside16.png rename to assets/resources/doubleside16.png diff --git a/share/doubleside32.png b/assets/resources/doubleside32.png similarity index 100% rename from share/doubleside32.png rename to assets/resources/doubleside32.png diff --git a/share/draw32.png b/assets/resources/draw32.png similarity index 100% rename from share/draw32.png rename to assets/resources/draw32.png diff --git a/share/drill16.png b/assets/resources/drill16.png similarity index 100% rename from share/drill16.png rename to assets/resources/drill16.png diff --git a/share/drill32.png b/assets/resources/drill32.png similarity index 100% rename from share/drill32.png rename to assets/resources/drill32.png diff --git a/share/dxf16.png b/assets/resources/dxf16.png similarity index 100% rename from share/dxf16.png rename to assets/resources/dxf16.png diff --git a/share/edit16.png b/assets/resources/edit16.png similarity index 100% rename from share/edit16.png rename to assets/resources/edit16.png diff --git a/share/edit32.png b/assets/resources/edit32.png similarity index 100% rename from share/edit32.png rename to assets/resources/edit32.png diff --git a/share/edit_file16.png b/assets/resources/edit_file16.png similarity index 100% rename from share/edit_file16.png rename to assets/resources/edit_file16.png diff --git a/share/edit_file32.png b/assets/resources/edit_file32.png similarity index 100% rename from share/edit_file32.png rename to assets/resources/edit_file32.png diff --git a/share/edit_ok16.png b/assets/resources/edit_ok16.png similarity index 100% rename from share/edit_ok16.png rename to assets/resources/edit_ok16.png diff --git a/share/edit_ok32.png b/assets/resources/edit_ok32.png similarity index 100% rename from share/edit_ok32.png rename to assets/resources/edit_ok32.png diff --git a/share/edit_ok32_bis.png b/assets/resources/edit_ok32_bis.png similarity index 100% rename from share/edit_ok32_bis.png rename to assets/resources/edit_ok32_bis.png diff --git a/share/eraser26.png b/assets/resources/eraser26.png similarity index 100% rename from share/eraser26.png rename to assets/resources/eraser26.png diff --git a/share/explode32.png b/assets/resources/explode32.png similarity index 100% rename from share/explode32.png rename to assets/resources/explode32.png diff --git a/share/export.png b/assets/resources/export.png similarity index 100% rename from share/export.png rename to assets/resources/export.png diff --git a/share/export_png32.png b/assets/resources/export_png32.png similarity index 100% rename from share/export_png32.png rename to assets/resources/export_png32.png diff --git a/share/extract_drill16.png b/assets/resources/extract_drill16.png similarity index 100% rename from share/extract_drill16.png rename to assets/resources/extract_drill16.png diff --git a/share/extract_drill32.png b/assets/resources/extract_drill32.png similarity index 100% rename from share/extract_drill32.png rename to assets/resources/extract_drill32.png diff --git a/share/fiducials_32.png b/assets/resources/fiducials_32.png similarity index 100% rename from share/fiducials_32.png rename to assets/resources/fiducials_32.png diff --git a/share/file16.png b/assets/resources/file16.png similarity index 100% rename from share/file16.png rename to assets/resources/file16.png diff --git a/share/file32.png b/assets/resources/file32.png similarity index 100% rename from share/file32.png rename to assets/resources/file32.png diff --git a/share/film16.png b/assets/resources/film16.png similarity index 100% rename from share/film16.png rename to assets/resources/film16.png diff --git a/share/film32.png b/assets/resources/film32.png similarity index 100% rename from share/film32.png rename to assets/resources/film32.png diff --git a/share/flatcam_icon128.png b/assets/resources/flatcam_icon128.png similarity index 100% rename from share/flatcam_icon128.png rename to assets/resources/flatcam_icon128.png diff --git a/share/flatcam_icon128_inv.png b/assets/resources/flatcam_icon128_inv.png similarity index 100% rename from share/flatcam_icon128_inv.png rename to assets/resources/flatcam_icon128_inv.png diff --git a/share/flatcam_icon16.ico b/assets/resources/flatcam_icon16.ico similarity index 100% rename from share/flatcam_icon16.ico rename to assets/resources/flatcam_icon16.ico diff --git a/share/flatcam_icon16.png b/assets/resources/flatcam_icon16.png similarity index 100% rename from share/flatcam_icon16.png rename to assets/resources/flatcam_icon16.png diff --git a/share/flatcam_icon24.png b/assets/resources/flatcam_icon24.png similarity index 100% rename from share/flatcam_icon24.png rename to assets/resources/flatcam_icon24.png diff --git a/share/flatcam_icon256.ico b/assets/resources/flatcam_icon256.ico similarity index 100% rename from share/flatcam_icon256.ico rename to assets/resources/flatcam_icon256.ico diff --git a/share/flatcam_icon256.png b/assets/resources/flatcam_icon256.png similarity index 100% rename from share/flatcam_icon256.png rename to assets/resources/flatcam_icon256.png diff --git a/share/flatcam_icon32.ico b/assets/resources/flatcam_icon32.ico similarity index 100% rename from share/flatcam_icon32.ico rename to assets/resources/flatcam_icon32.ico diff --git a/share/flatcam_icon32.png b/assets/resources/flatcam_icon32.png similarity index 100% rename from share/flatcam_icon32.png rename to assets/resources/flatcam_icon32.png diff --git a/share/flatcam_icon32_green.png b/assets/resources/flatcam_icon32_green.png similarity index 100% rename from share/flatcam_icon32_green.png rename to assets/resources/flatcam_icon32_green.png diff --git a/share/flatcam_icon48.ico b/assets/resources/flatcam_icon48.ico similarity index 100% rename from share/flatcam_icon48.ico rename to assets/resources/flatcam_icon48.ico diff --git a/share/flatcam_icon48.png b/assets/resources/flatcam_icon48.png similarity index 100% rename from share/flatcam_icon48.png rename to assets/resources/flatcam_icon48.png diff --git a/share/flipx.png b/assets/resources/flipx.png similarity index 100% rename from share/flipx.png rename to assets/resources/flipx.png diff --git a/share/flipy.png b/assets/resources/flipy.png similarity index 100% rename from share/flipy.png rename to assets/resources/flipy.png diff --git a/share/floppy16.png b/assets/resources/floppy16.png similarity index 100% rename from share/floppy16.png rename to assets/resources/floppy16.png diff --git a/share/floppy32.png b/assets/resources/floppy32.png similarity index 100% rename from share/floppy32.png rename to assets/resources/floppy32.png diff --git a/share/folder16.png b/assets/resources/folder16.png similarity index 100% rename from share/folder16.png rename to assets/resources/folder16.png diff --git a/share/folder32.png b/assets/resources/folder32.png similarity index 100% rename from share/folder32.png rename to assets/resources/folder32.png diff --git a/share/folder32_Excellon.png b/assets/resources/folder32_Excellon.png similarity index 100% rename from share/folder32_Excellon.png rename to assets/resources/folder32_Excellon.png diff --git a/share/folder32_bis.png b/assets/resources/folder32_bis.png similarity index 100% rename from share/folder32_bis.png rename to assets/resources/folder32_bis.png diff --git a/share/folder32_gerber.png b/assets/resources/folder32_gerber.png similarity index 100% rename from share/folder32_gerber.png rename to assets/resources/folder32_gerber.png diff --git a/share/fscreen32.png b/assets/resources/fscreen32.png similarity index 100% rename from share/fscreen32.png rename to assets/resources/fscreen32.png diff --git a/share/gear32.png b/assets/resources/gear32.png similarity index 100% rename from share/gear32.png rename to assets/resources/gear32.png diff --git a/share/gear48.png b/assets/resources/gear48.png similarity index 100% rename from share/gear48.png rename to assets/resources/gear48.png diff --git a/share/geometry16.png b/assets/resources/geometry16.png similarity index 100% rename from share/geometry16.png rename to assets/resources/geometry16.png diff --git a/share/geometry32.png b/assets/resources/geometry32.png similarity index 100% rename from share/geometry32.png rename to assets/resources/geometry32.png diff --git a/share/globe16.png b/assets/resources/globe16.png similarity index 100% rename from share/globe16.png rename to assets/resources/globe16.png diff --git a/share/graylight12.png b/assets/resources/graylight12.png similarity index 100% rename from share/graylight12.png rename to assets/resources/graylight12.png diff --git a/share/green32.png b/assets/resources/green32.png similarity index 100% rename from share/green32.png rename to assets/resources/green32.png diff --git a/share/greenlight12.png b/assets/resources/greenlight12.png similarity index 100% rename from share/greenlight12.png rename to assets/resources/greenlight12.png diff --git a/share/grid16.png b/assets/resources/grid16.png similarity index 100% rename from share/grid16.png rename to assets/resources/grid16.png diff --git a/share/grid32.png b/assets/resources/grid32.png similarity index 100% rename from share/grid32.png rename to assets/resources/grid32.png diff --git a/share/grid32_menu.png b/assets/resources/grid32_menu.png similarity index 100% rename from share/grid32_menu.png rename to assets/resources/grid32_menu.png diff --git a/share/help.png b/assets/resources/help.png similarity index 100% rename from share/help.png rename to assets/resources/help.png diff --git a/share/home16.png b/assets/resources/home16.png similarity index 100% rename from share/home16.png rename to assets/resources/home16.png diff --git a/share/image16.png b/assets/resources/image16.png similarity index 100% rename from share/image16.png rename to assets/resources/image16.png diff --git a/share/image32.png b/assets/resources/image32.png similarity index 100% rename from share/image32.png rename to assets/resources/image32.png diff --git a/share/import.png b/assets/resources/import.png similarity index 100% rename from share/import.png rename to assets/resources/import.png diff --git a/share/info16.png b/assets/resources/info16.png similarity index 100% rename from share/info16.png rename to assets/resources/info16.png diff --git a/share/intersection16.png b/assets/resources/intersection16.png similarity index 100% rename from share/intersection16.png rename to assets/resources/intersection16.png diff --git a/share/intersection24.png b/assets/resources/intersection24.png similarity index 100% rename from share/intersection24.png rename to assets/resources/intersection24.png diff --git a/share/intersection32.png b/assets/resources/intersection32.png similarity index 100% rename from share/intersection32.png rename to assets/resources/intersection32.png diff --git a/share/invert16.png b/assets/resources/invert16.png similarity index 100% rename from share/invert16.png rename to assets/resources/invert16.png diff --git a/share/invert32.png b/assets/resources/invert32.png similarity index 100% rename from share/invert32.png rename to assets/resources/invert32.png diff --git a/share/italic32.png b/assets/resources/italic32.png similarity index 100% rename from share/italic32.png rename to assets/resources/italic32.png diff --git a/share/join16.png b/assets/resources/join16.png similarity index 100% rename from share/join16.png rename to assets/resources/join16.png diff --git a/share/join32.png b/assets/resources/join32.png similarity index 100% rename from share/join32.png rename to assets/resources/join32.png diff --git a/share/jump_to16.png b/assets/resources/jump_to16.png similarity index 100% rename from share/jump_to16.png rename to assets/resources/jump_to16.png diff --git a/share/jump_to32.png b/assets/resources/jump_to32.png similarity index 100% rename from share/jump_to32.png rename to assets/resources/jump_to32.png diff --git a/share/language32.png b/assets/resources/language32.png similarity index 100% rename from share/language32.png rename to assets/resources/language32.png diff --git a/share/letter_t_32.png b/assets/resources/letter_t_32.png similarity index 100% rename from share/letter_t_32.png rename to assets/resources/letter_t_32.png diff --git a/share/link16.png b/assets/resources/link16.png similarity index 100% rename from share/link16.png rename to assets/resources/link16.png diff --git a/share/locate16.png b/assets/resources/locate16.png similarity index 100% rename from share/locate16.png rename to assets/resources/locate16.png diff --git a/share/locate32.png b/assets/resources/locate32.png similarity index 100% rename from share/locate32.png rename to assets/resources/locate32.png diff --git a/share/machine16.png b/assets/resources/machine16.png similarity index 100% rename from share/machine16.png rename to assets/resources/machine16.png diff --git a/share/markarea32.png b/assets/resources/markarea32.png similarity index 100% rename from share/markarea32.png rename to assets/resources/markarea32.png diff --git a/share/move16.png b/assets/resources/move16.png similarity index 100% rename from share/move16.png rename to assets/resources/move16.png diff --git a/share/move32.png b/assets/resources/move32.png similarity index 100% rename from share/move32.png rename to assets/resources/move32.png diff --git a/share/move32_bis.png b/assets/resources/move32_bis.png similarity index 100% rename from share/move32_bis.png rename to assets/resources/move32_bis.png diff --git a/share/ncc16.png b/assets/resources/ncc16.png similarity index 100% rename from share/ncc16.png rename to assets/resources/ncc16.png diff --git a/share/new_exc32.png b/assets/resources/new_exc32.png similarity index 100% rename from share/new_exc32.png rename to assets/resources/new_exc32.png diff --git a/share/new_file16.png b/assets/resources/new_file16.png similarity index 100% rename from share/new_file16.png rename to assets/resources/new_file16.png diff --git a/share/new_file32.png b/assets/resources/new_file32.png similarity index 100% rename from share/new_file32.png rename to assets/resources/new_file32.png diff --git a/share/new_file_exc16.png b/assets/resources/new_file_exc16.png similarity index 100% rename from share/new_file_exc16.png rename to assets/resources/new_file_exc16.png diff --git a/share/new_file_exc32.png b/assets/resources/new_file_exc32.png similarity index 100% rename from share/new_file_exc32.png rename to assets/resources/new_file_exc32.png diff --git a/share/new_file_geo16.png b/assets/resources/new_file_geo16.png similarity index 100% rename from share/new_file_geo16.png rename to assets/resources/new_file_geo16.png diff --git a/share/new_file_geo32.png b/assets/resources/new_file_geo32.png similarity index 100% rename from share/new_file_geo32.png rename to assets/resources/new_file_geo32.png diff --git a/share/new_file_grb16.png b/assets/resources/new_file_grb16.png similarity index 100% rename from share/new_file_grb16.png rename to assets/resources/new_file_grb16.png diff --git a/share/new_file_grb32.png b/assets/resources/new_file_grb32.png similarity index 100% rename from share/new_file_grb32.png rename to assets/resources/new_file_grb32.png diff --git a/share/new_geo16.png b/assets/resources/new_geo16.png similarity index 100% rename from share/new_geo16.png rename to assets/resources/new_geo16.png diff --git a/share/new_geo32.png b/assets/resources/new_geo32.png similarity index 100% rename from share/new_geo32.png rename to assets/resources/new_geo32.png diff --git a/share/new_geo32_bis.png b/assets/resources/new_geo32_bis.png similarity index 100% rename from share/new_geo32_bis.png rename to assets/resources/new_geo32_bis.png diff --git a/share/notebook16.png b/assets/resources/notebook16.png similarity index 100% rename from share/notebook16.png rename to assets/resources/notebook16.png diff --git a/share/notebook32.png b/assets/resources/notebook32.png similarity index 100% rename from share/notebook32.png rename to assets/resources/notebook32.png diff --git a/share/notes16.png b/assets/resources/notes16.png similarity index 100% rename from share/notes16.png rename to assets/resources/notes16.png diff --git a/share/notes16_1.png b/assets/resources/notes16_1.png similarity index 100% rename from share/notes16_1.png rename to assets/resources/notes16_1.png diff --git a/share/offsetx32.png b/assets/resources/offsetx32.png similarity index 100% rename from share/offsetx32.png rename to assets/resources/offsetx32.png diff --git a/share/offsety32.png b/assets/resources/offsety32.png similarity index 100% rename from share/offsety32.png rename to assets/resources/offsety32.png diff --git a/share/open_excellon32.png b/assets/resources/open_excellon32.png similarity index 100% rename from share/open_excellon32.png rename to assets/resources/open_excellon32.png diff --git a/share/open_script32.png b/assets/resources/open_script32.png similarity index 100% rename from share/open_script32.png rename to assets/resources/open_script32.png diff --git a/share/origin.png b/assets/resources/origin.png similarity index 100% rename from share/origin.png rename to assets/resources/origin.png diff --git a/share/origin16.png b/assets/resources/origin16.png similarity index 100% rename from share/origin16.png rename to assets/resources/origin16.png diff --git a/share/origin2_16.png b/assets/resources/origin2_16.png similarity index 100% rename from share/origin2_16.png rename to assets/resources/origin2_16.png diff --git a/share/origin2_32.png b/assets/resources/origin2_32.png similarity index 100% rename from share/origin2_32.png rename to assets/resources/origin2_32.png diff --git a/share/origin32.png b/assets/resources/origin32.png similarity index 100% rename from share/origin32.png rename to assets/resources/origin32.png diff --git a/share/padarray32.png b/assets/resources/padarray32.png similarity index 100% rename from share/padarray32.png rename to assets/resources/padarray32.png diff --git a/share/paint16.png b/assets/resources/paint16.png similarity index 100% rename from share/paint16.png rename to assets/resources/paint16.png diff --git a/share/paint20.png b/assets/resources/paint20.png similarity index 100% rename from share/paint20.png rename to assets/resources/paint20.png diff --git a/share/paint20_1.png b/assets/resources/paint20_1.png similarity index 100% rename from share/paint20_1.png rename to assets/resources/paint20_1.png diff --git a/share/panel16.png b/assets/resources/panel16.png similarity index 100% rename from share/panel16.png rename to assets/resources/panel16.png diff --git a/share/panel32.png b/assets/resources/panel32.png similarity index 100% rename from share/panel32.png rename to assets/resources/panel32.png diff --git a/share/panelize16.png b/assets/resources/panelize16.png similarity index 100% rename from share/panelize16.png rename to assets/resources/panelize16.png diff --git a/share/panelize32.png b/assets/resources/panelize32.png similarity index 100% rename from share/panelize32.png rename to assets/resources/panelize32.png diff --git a/share/path32.png b/assets/resources/path32.png similarity index 100% rename from share/path32.png rename to assets/resources/path32.png diff --git a/share/pdf32.png b/assets/resources/pdf32.png similarity index 100% rename from share/pdf32.png rename to assets/resources/pdf32.png diff --git a/share/pdf_link16.png b/assets/resources/pdf_link16.png similarity index 100% rename from share/pdf_link16.png rename to assets/resources/pdf_link16.png diff --git a/share/plot32.png b/assets/resources/plot32.png similarity index 100% rename from share/plot32.png rename to assets/resources/plot32.png diff --git a/share/plus16.png b/assets/resources/plus16.png similarity index 100% rename from share/plus16.png rename to assets/resources/plus16.png diff --git a/share/plus32.png b/assets/resources/plus32.png similarity index 100% rename from share/plus32.png rename to assets/resources/plus32.png diff --git a/share/pointer.svg b/assets/resources/pointer.svg similarity index 100% rename from share/pointer.svg rename to assets/resources/pointer.svg diff --git a/share/pointer32.png b/assets/resources/pointer32.png similarity index 100% rename from share/pointer32.png rename to assets/resources/pointer32.png diff --git a/share/poligonize32.png b/assets/resources/poligonize32.png similarity index 100% rename from share/poligonize32.png rename to assets/resources/poligonize32.png diff --git a/share/polygon32.png b/assets/resources/polygon32.png similarity index 100% rename from share/polygon32.png rename to assets/resources/polygon32.png diff --git a/share/power16.png b/assets/resources/power16.png similarity index 100% rename from share/power16.png rename to assets/resources/power16.png diff --git a/share/pref.png b/assets/resources/pref.png similarity index 100% rename from share/pref.png rename to assets/resources/pref.png diff --git a/share/printer16.png b/assets/resources/printer16.png similarity index 100% rename from share/printer16.png rename to assets/resources/printer16.png diff --git a/share/printer32.png b/assets/resources/printer32.png similarity index 100% rename from share/printer32.png rename to assets/resources/printer32.png diff --git a/share/project16.png b/assets/resources/project16.png similarity index 100% rename from share/project16.png rename to assets/resources/project16.png diff --git a/share/project_save16.png b/assets/resources/project_save16.png similarity index 100% rename from share/project_save16.png rename to assets/resources/project_save16.png diff --git a/share/project_save32.png b/assets/resources/project_save32.png similarity index 100% rename from share/project_save32.png rename to assets/resources/project_save32.png diff --git a/share/properties32.png b/assets/resources/properties32.png similarity index 100% rename from share/properties32.png rename to assets/resources/properties32.png diff --git a/share/punch16.png b/assets/resources/punch16.png similarity index 100% rename from share/punch16.png rename to assets/resources/punch16.png diff --git a/share/punch32.png b/assets/resources/punch32.png similarity index 100% rename from share/punch32.png rename to assets/resources/punch32.png diff --git a/share/qrcode32.png b/assets/resources/qrcode32.png similarity index 100% rename from share/qrcode32.png rename to assets/resources/qrcode32.png diff --git a/share/recent_files.png b/assets/resources/recent_files.png similarity index 100% rename from share/recent_files.png rename to assets/resources/recent_files.png diff --git a/share/rectangle32.png b/assets/resources/rectangle32.png similarity index 100% rename from share/rectangle32.png rename to assets/resources/rectangle32.png diff --git a/share/recycle16.png b/assets/resources/recycle16.png similarity index 100% rename from share/recycle16.png rename to assets/resources/recycle16.png diff --git a/share/red32.png b/assets/resources/red32.png similarity index 100% rename from share/red32.png rename to assets/resources/red32.png diff --git a/share/redlight12.png b/assets/resources/redlight12.png similarity index 100% rename from share/redlight12.png rename to assets/resources/redlight12.png diff --git a/share/replot16.png b/assets/resources/replot16.png similarity index 100% rename from share/replot16.png rename to assets/resources/replot16.png diff --git a/share/replot32.png b/assets/resources/replot32.png similarity index 100% rename from share/replot32.png rename to assets/resources/replot32.png diff --git a/share/resize16.png b/assets/resources/resize16.png similarity index 100% rename from share/resize16.png rename to assets/resources/resize16.png diff --git a/share/rotate.png b/assets/resources/rotate.png similarity index 100% rename from share/rotate.png rename to assets/resources/rotate.png diff --git a/share/rules32.png b/assets/resources/rules32.png similarity index 100% rename from share/rules32.png rename to assets/resources/rules32.png diff --git a/share/save_as.png b/assets/resources/save_as.png similarity index 100% rename from share/save_as.png rename to assets/resources/save_as.png diff --git a/share/scale32.png b/assets/resources/scale32.png similarity index 100% rename from share/scale32.png rename to assets/resources/scale32.png diff --git a/share/script14.png b/assets/resources/script14.png similarity index 100% rename from share/script14.png rename to assets/resources/script14.png diff --git a/share/script16.png b/assets/resources/script16.png similarity index 100% rename from share/script16.png rename to assets/resources/script16.png diff --git a/share/script_new16.png b/assets/resources/script_new16.png similarity index 100% rename from share/script_new16.png rename to assets/resources/script_new16.png diff --git a/share/script_new24.png b/assets/resources/script_new24.png similarity index 100% rename from share/script_new24.png rename to assets/resources/script_new24.png diff --git a/share/script_open16.png b/assets/resources/script_open16.png similarity index 100% rename from share/script_open16.png rename to assets/resources/script_open16.png diff --git a/share/script_open18.png b/assets/resources/script_open18.png similarity index 100% rename from share/script_open18.png rename to assets/resources/script_open18.png diff --git a/share/script_open24.png b/assets/resources/script_open24.png similarity index 100% rename from share/script_open24.png rename to assets/resources/script_open24.png diff --git a/share/select_all.png b/assets/resources/select_all.png similarity index 100% rename from share/select_all.png rename to assets/resources/select_all.png diff --git a/share/semidisc32.png b/assets/resources/semidisc32.png similarity index 100% rename from share/semidisc32.png rename to assets/resources/semidisc32.png diff --git a/share/set_color16.png b/assets/resources/set_color16.png similarity index 100% rename from share/set_color16.png rename to assets/resources/set_color16.png diff --git a/share/set_color32.png b/assets/resources/set_color32.png similarity index 100% rename from share/set_color32.png rename to assets/resources/set_color32.png diff --git a/share/shell16.png b/assets/resources/shell16.png similarity index 100% rename from share/shell16.png rename to assets/resources/shell16.png diff --git a/share/shell32.png b/assets/resources/shell32.png similarity index 100% rename from share/shell32.png rename to assets/resources/shell32.png diff --git a/share/shortcuts24.png b/assets/resources/shortcuts24.png similarity index 100% rename from share/shortcuts24.png rename to assets/resources/shortcuts24.png diff --git a/share/skewX.png b/assets/resources/skewX.png similarity index 100% rename from share/skewX.png rename to assets/resources/skewX.png diff --git a/share/skewY.png b/assets/resources/skewY.png similarity index 100% rename from share/skewY.png rename to assets/resources/skewY.png diff --git a/share/slot26.png b/assets/resources/slot26.png similarity index 100% rename from share/slot26.png rename to assets/resources/slot26.png diff --git a/share/slot_array26.png b/assets/resources/slot_array26.png similarity index 100% rename from share/slot_array26.png rename to assets/resources/slot_array26.png diff --git a/share/snap_16.png b/assets/resources/snap_16.png similarity index 100% rename from share/snap_16.png rename to assets/resources/snap_16.png diff --git a/share/snap_filled_16.png b/assets/resources/snap_filled_16.png similarity index 100% rename from share/snap_filled_16.png rename to assets/resources/snap_filled_16.png diff --git a/share/solderpaste32.png b/assets/resources/solderpaste32.png similarity index 100% rename from share/solderpaste32.png rename to assets/resources/solderpaste32.png diff --git a/share/solderpastebis32.png b/assets/resources/solderpastebis32.png similarity index 100% rename from share/solderpastebis32.png rename to assets/resources/solderpastebis32.png diff --git a/share/source32.png b/assets/resources/source32.png similarity index 100% rename from share/source32.png rename to assets/resources/source32.png diff --git a/share/splash.png b/assets/resources/splash.png similarity index 100% rename from share/splash.png rename to assets/resources/splash.png diff --git a/share/sub32.png b/assets/resources/sub32.png similarity index 100% rename from share/sub32.png rename to assets/resources/sub32.png diff --git a/share/subtract16.png b/assets/resources/subtract16.png similarity index 100% rename from share/subtract16.png rename to assets/resources/subtract16.png diff --git a/share/subtract24.png b/assets/resources/subtract24.png similarity index 100% rename from share/subtract24.png rename to assets/resources/subtract24.png diff --git a/share/subtract32.png b/assets/resources/subtract32.png similarity index 100% rename from share/subtract32.png rename to assets/resources/subtract32.png diff --git a/share/svg16.png b/assets/resources/svg16.png similarity index 100% rename from share/svg16.png rename to assets/resources/svg16.png diff --git a/share/svg32.png b/assets/resources/svg32.png similarity index 100% rename from share/svg32.png rename to assets/resources/svg32.png diff --git a/share/text32.png b/assets/resources/text32.png similarity index 100% rename from share/text32.png rename to assets/resources/text32.png diff --git a/share/toggle_units16.png b/assets/resources/toggle_units16.png similarity index 100% rename from share/toggle_units16.png rename to assets/resources/toggle_units16.png diff --git a/share/toggle_units32.png b/assets/resources/toggle_units32.png similarity index 100% rename from share/toggle_units32.png rename to assets/resources/toggle_units32.png diff --git a/share/track32.png b/assets/resources/track32.png similarity index 100% rename from share/track32.png rename to assets/resources/track32.png diff --git a/share/transform.png b/assets/resources/transform.png similarity index 100% rename from share/transform.png rename to assets/resources/transform.png diff --git a/share/trash16.png b/assets/resources/trash16.png similarity index 100% rename from share/trash16.png rename to assets/resources/trash16.png diff --git a/share/trash32.png b/assets/resources/trash32.png similarity index 100% rename from share/trash32.png rename to assets/resources/trash32.png diff --git a/share/tv16.png b/assets/resources/tv16.png similarity index 100% rename from share/tv16.png rename to assets/resources/tv16.png diff --git a/share/underline32.png b/assets/resources/underline32.png similarity index 100% rename from share/underline32.png rename to assets/resources/underline32.png diff --git a/share/union16.png b/assets/resources/union16.png similarity index 100% rename from share/union16.png rename to assets/resources/union16.png diff --git a/share/union32.png b/assets/resources/union32.png similarity index 100% rename from share/union32.png rename to assets/resources/union32.png diff --git a/share/videohelp24.png b/assets/resources/videohelp24.png similarity index 100% rename from share/videohelp24.png rename to assets/resources/videohelp24.png diff --git a/share/view64.png b/assets/resources/view64.png similarity index 100% rename from share/view64.png rename to assets/resources/view64.png diff --git a/share/violet32.png b/assets/resources/violet32.png similarity index 100% rename from share/violet32.png rename to assets/resources/violet32.png diff --git a/share/warning.png b/assets/resources/warning.png similarity index 100% rename from share/warning.png rename to assets/resources/warning.png diff --git a/share/white32.png b/assets/resources/white32.png similarity index 100% rename from share/white32.png rename to assets/resources/white32.png diff --git a/share/workspace24.png b/assets/resources/workspace24.png similarity index 100% rename from share/workspace24.png rename to assets/resources/workspace24.png diff --git a/share/yellow32.png b/assets/resources/yellow32.png similarity index 100% rename from share/yellow32.png rename to assets/resources/yellow32.png diff --git a/share/yellowlight12.png b/assets/resources/yellowlight12.png similarity index 100% rename from share/yellowlight12.png rename to assets/resources/yellowlight12.png diff --git a/share/youtube32.png b/assets/resources/youtube32.png similarity index 100% rename from share/youtube32.png rename to assets/resources/youtube32.png diff --git a/share/zoom_fit32.png b/assets/resources/zoom_fit32.png similarity index 100% rename from share/zoom_fit32.png rename to assets/resources/zoom_fit32.png diff --git a/share/zoom_in32.png b/assets/resources/zoom_in32.png similarity index 100% rename from share/zoom_in32.png rename to assets/resources/zoom_in32.png diff --git a/share/zoom_out32.png b/assets/resources/zoom_out32.png similarity index 100% rename from share/zoom_out32.png rename to assets/resources/zoom_out32.png diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index 01ebf384..f0b4d145 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -35,7 +35,8 @@ class ObjectUI(QtWidgets.QWidget): put UI elements in ObjectUI.custom_box (QtWidgets.QLayout). """ - def __init__(self, app, icon_file='share/flatcam_icon32.png', title=_('FlatCAM Object'), parent=None, common=True): + def __init__(self, app, icon_file='assets/resources/flatcam_icon32.png', title=_('FlatCAM Object'), + parent=None, common=True): QtWidgets.QWidget.__init__(self, parent=parent) self.app = app @@ -48,9 +49,9 @@ class ObjectUI(QtWidgets.QWidget): theme = 'white' if theme == 'white': - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' else: - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' layout = QtWidgets.QVBoxLayout() self.setLayout(layout) @@ -60,7 +61,7 @@ class ObjectUI(QtWidgets.QWidget): layout.addLayout(self.title_box) # ## Page Title icon - pixmap = QtGui.QPixmap(icon_file.replace('share', self.resource_loc)) + pixmap = QtGui.QPixmap(icon_file.replace('assets/resources', self.resource_loc)) self.icon = QtWidgets.QLabel() self.icon.setPixmap(pixmap) self.title_box.addWidget(self.icon, stretch=0) @@ -713,9 +714,9 @@ class ExcellonObjectUI(ObjectUI): theme = 'white' if theme == 'white': - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' else: - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' ObjectUI.__init__(self, title=_('Excellon Object'), icon_file=self.resource_loc + '/drill32.png', @@ -1412,9 +1413,9 @@ class GeometryObjectUI(ObjectUI): theme = 'white' if theme == 'white': - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' else: - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' super(GeometryObjectUI, self).__init__( title=_('Geometry Object'), @@ -2108,9 +2109,9 @@ class CNCObjectUI(ObjectUI): theme = 'white' if theme == 'white': - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' else: - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' ObjectUI.__init__( self, title=_('CNC Job Object'), @@ -2441,9 +2442,9 @@ class ScriptObjectUI(ObjectUI): theme = 'white' if theme == 'white': - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' else: - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' ObjectUI.__init__(self, title=_('Script Object'), icon_file=self.resource_loc + '/script_new24.png', @@ -2508,9 +2509,9 @@ class DocumentObjectUI(ObjectUI): theme = 'white' if theme == 'white': - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' else: - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' ObjectUI.__init__(self, title=_('Document Object'), icon_file=self.resource_loc + '/notes16_1.png', diff --git a/flatcamGUI/PreferencesUI.py b/flatcamGUI/PreferencesUI.py index 96c5e52e..67d39521 100644 --- a/flatcamGUI/PreferencesUI.py +++ b/flatcamGUI/PreferencesUI.py @@ -1116,9 +1116,9 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): theme = 'white' if theme == 'white': - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' else: - self.resource_loc = 'share' + self.resource_loc = 'assets/resources' # Create a grid layout for the Application general settings grid0 = QtWidgets.QGridLayout() diff --git a/flatcamObjects/ObjectCollection.py b/flatcamObjects/ObjectCollection.py index 4c00a6c0..d8e68524 100644 --- a/flatcamObjects/ObjectCollection.py +++ b/flatcamObjects/ObjectCollection.py @@ -248,12 +248,12 @@ class ObjectCollection(QtCore.QAbstractItemModel): } icon_files = { - "gerber": "share/flatcam_icon16.png", - "excellon": "share/drill16.png", - "cncjob": "share/cnc16.png", - "geometry": "share/geometry16.png", - "script": "share/script_new16.png", - "document": "share/notes16_1.png" + "gerber": "assets/resources/flatcam_icon16.png", + "excellon": "assets/resources/drill16.png", + "cncjob": "assets/resources/cnc16.png", + "geometry": "assets/resources/geometry16.png", + "script": "assets/resources/script_new16.png", + "document": "assets/resources/notes16_1.png" } # will emit the name of the object that was just selected @@ -273,7 +273,7 @@ class ObjectCollection(QtCore.QAbstractItemModel): self.icons = {} for kind in ObjectCollection.icon_files: self.icons[kind] = QtGui.QPixmap( - ObjectCollection.icon_files[kind].replace('share', self.app.resource_location)) + ObjectCollection.icon_files[kind].replace('assets/resources', self.app.resource_location)) # Create root tree view item self.root_item = TreeItem(["root"]) diff --git a/make_freezed.py b/make_freezed.py index 75ad7521..461bd907 100644 --- a/make_freezed.py +++ b/make_freezed.py @@ -62,7 +62,7 @@ include_files.append(("assets", "lib/assets")) include_files.append(("assets/examples", "lib/assets/examples")) include_files.append(("assets/linux", "lib/assets/linux")) include_files.append(("assets/resources", "lib/assets/resources")) -include_files.append(("share", "lib/share")) +# include_files.append(("share", "lib/share")) include_files.append(("flatcamGUI/VisPyData", "lib/vispy")) include_files.append(("config", "lib/config")) @@ -108,7 +108,7 @@ def getTargetName(): return "FlatCAM.dmg" -exe = Executable("FlatCAM.py", icon='share/flatcam_icon48.ico', base=base, targetName=getTargetName()) +exe = Executable("FlatCAM.py", icon='assets/resources/flatcam_icon48.ico', base=base, targetName=getTargetName()) setup( name="FlatCAM", diff --git a/setup_ubuntu.sh b/setup_ubuntu.sh index 7700b389..fec5b612 100644 --- a/setup_ubuntu.sh +++ b/setup_ubuntu.sh @@ -8,6 +8,7 @@ sudo apt-get install -y \ libgeos-dev \ libpng-dev \ libspatialindex-dev \ + qt5-style-plugins \ python3-dev \ python3-gdal \ python3-pip \ From 35674c9647e4453a186b754aaff5da827acfa221 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 28 Apr 2020 19:34:23 +0300 Subject: [PATCH 7/8] - in SVG parser modified some imports to be one on each line - fixed the Tcl Command BBox (leftovers from recent global changes) - fixed some typos in strings reported by @pcb-hobbyst on FlatCAM forum --- CHANGELOG.md | 3 +++ README.md | 2 ++ flatcamGUI/FlatCAMGUI.py | 6 +++--- flatcamGUI/ObjectUI.py | 6 +++--- flatcamGUI/PreferencesUI.py | 2 +- flatcamParsers/ParseSVG.py | 3 ++- flatcamTools/ToolNCC.py | 2 +- flatcamTools/ToolPaint.py | 2 +- tclCommands/TclCommandBbox.py | 4 ++-- 9 files changed, 18 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e927992..9e17d742 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,9 @@ CHANGELOG for FlatCAM beta - some more fixes to problems generated by latest changes in the open handlers - modified the make_freezed.py script for the new location of the icons - added a fix for the ConnectionRefusedError in Linux that is issued when first running after a FlatCAM crash +- in SVG parser modified some imports to be one on each line +- fixed the Tcl Command BBox (leftovers from recent global changes) +- fixed some typos in strings reported by @pcb-hobbyst on FlatCAM forum 27.04.2020 diff --git a/README.md b/README.md index f0362d90..094eb7b5 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Menu -> Help -> About FlatCAM -> Programmers -> Marius Stanciu - Unzip them on a HDD location that your user has permissions for. 1.Windows + - download the provided installer (for your OS flavor 64bit or 32bit) from: https://bitbucket.org/jpcgt/flatcam/downloads/ - execute the installer and install the program. It is recommended to install as a Local User. @@ -61,6 +62,7 @@ cd D:\FlatCAM_beta python FlatCAM.py 2.Linux + - make sure that Python 3.8 is installed on your OS and that the command: python3 -V confirm it - verify that the pip package is installed for your Python installation (e.g 3.8) by running the command: ``` diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index d59c5aa4..0897be03 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -1744,7 +1744,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): # F keys section _("Open Online Manual"), _("Open Online Tutorials"), _("Refresh Plots"), _("Delete Object"), _("Alternate: Delete Tool"), - _("(left to Key_1)Toogle Notebook Area (Left Side)"), _("En(Dis)able Obj Plot"), + _("(left to Key_1)Toggle Notebook Area (Left Side)"), _("En(Dis)able Obj Plot"), _("Deselects all objects") ) ) @@ -2296,13 +2296,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.rel_position_label = QtWidgets.QLabel( "Dx: 0.0000   Dy: 0.0000    ") self.rel_position_label.setMinimumWidth(110) - self.rel_position_label.setToolTip(_("Relative neasurement.\nReference is last click position")) + self.rel_position_label.setToolTip(_("Relative measurement.\nReference is last click position")) self.infobar.addWidget(self.rel_position_label) self.position_label = QtWidgets.QLabel( "    X: 0.0000   Y: 0.0000") self.position_label.setMinimumWidth(110) - self.position_label.setToolTip(_("Absolute neasurement.\nReference is (X=0, Y= 0) position")) + self.position_label.setToolTip(_("Absolute measurement.\nReference is (X=0, Y= 0) position")) self.infobar.addWidget(self.position_label) self.units_label = QtWidgets.QLabel("[in]") diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index f0b4d145..4004048d 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -308,7 +308,7 @@ class GerberObjectUI(ObjectUI): # Tool Type self.tool_type_label = QtWidgets.QLabel('%s:' % _('Tool Type')) self.tool_type_label.setToolTip( - _("Choose what tool to use for Gerber isolation:\n" + _("Choose which tool to use for Gerber isolation:\n" "'Circular' or 'V-shape'.\n" "When the 'V-shape' is selected then the tool\n" "diameter will depend on the chosen cut depth.") @@ -435,7 +435,7 @@ class GerberObjectUI(ObjectUI): grid1.addWidget(self.follow_cb, 8, 1) self.except_cb.setToolTip(_("When the isolation geometry is generated,\n" - "by checking this, the area of the object bellow\n" + "by checking this, the area of the object below\n" "will be subtracted from the isolation geometry.")) grid1.addWidget(self.except_cb, 8, 2) @@ -1532,7 +1532,7 @@ class GeometryObjectUI(ObjectUI): "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the cut width in material\n" "is exactly the tool diameter.\n" "- Ball -> informative only and make reference to the Ball type endmill.\n" - "- V-Shape -> it will disable de Z-Cut parameter in the UI form and enable two additional UI form\n" + "- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two additional UI form\n" "fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter such\n" "as the cut width into material will be equal with the value in the Tool " "Diameter column of this table.\n" diff --git a/flatcamGUI/PreferencesUI.py b/flatcamGUI/PreferencesUI.py index 67d39521..b714d1f0 100644 --- a/flatcamGUI/PreferencesUI.py +++ b/flatcamGUI/PreferencesUI.py @@ -2396,7 +2396,7 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI): # Tool Type self.tool_type_label = QtWidgets.QLabel('%s' % _('Tool Type')) self.tool_type_label.setToolTip( - _("Choose what tool to use for Gerber isolation:\n" + _("Choose which tool to use for Gerber isolation:\n" "'Circular' or 'V-shape'.\n" "When the 'V-shape' is selected then the tool\n" "diameter will depend on the chosen cut depth.") diff --git a/flatcamParsers/ParseSVG.py b/flatcamParsers/ParseSVG.py index d5634944..a36e4770 100644 --- a/flatcamParsers/ParseSVG.py +++ b/flatcamParsers/ParseSVG.py @@ -21,7 +21,8 @@ # import xml.etree.ElementTree as ET from svg.path import Line, Arc, CubicBezier, QuadraticBezier, parse_path -from svg.path.path import Move, Close +from svg.path.path import Move +from svg.path.path import Close from shapely.geometry import LineString, LinearRing, MultiLineString from shapely.affinity import skew, affine_transform, rotate import numpy as np diff --git a/flatcamTools/ToolNCC.py b/flatcamTools/ToolNCC.py index d1d4aa04..98cc598b 100644 --- a/flatcamTools/ToolNCC.py +++ b/flatcamTools/ToolNCC.py @@ -151,7 +151,7 @@ class NonCopperClear(FlatCAMTool, Gerber): "- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" "the cut width in material is exactly the tool diameter.\n" "- Ball -> informative only and make reference to the Ball type endmill.\n" - "- V-Shape -> it will disable de Z-Cut parameter in the resulting geometry UI form\n" + "- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI form\n" "and enable two additional UI form fields in the resulting geometry: V-Tip Dia and\n" "V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter such\n" "as the cut width into material will be equal with the value in the Tool Diameter\n" diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py index 8d157e9f..7f848f79 100644 --- a/flatcamTools/ToolPaint.py +++ b/flatcamTools/ToolPaint.py @@ -147,7 +147,7 @@ class ToolPaint(FlatCAMTool, Gerber): "- Circular with 1 ... 4 teeth -> it is informative only. Being circular,
" "the cut width in material is exactly the tool diameter.
" "- Ball -> informative only and make reference to the Ball type endmill.
" - "- V-Shape -> it will disable de Z-Cut parameter in the resulting geometry UI form " + "- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI form " "and enable two additional UI form fields in the resulting geometry: V-Tip Dia and " "V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter such " "as the cut width into material will be equal with the value in the Tool Diameter " diff --git a/tclCommands/TclCommandBbox.py b/tclCommands/TclCommandBbox.py index 6cf0d097..6e38bb99 100644 --- a/tclCommands/TclCommandBbox.py +++ b/tclCommands/TclCommandBbox.py @@ -44,7 +44,7 @@ class TclCommandBbox(TclCommand): ('name', 'Object name for which to create bounding box. String'), ('margin', "Distance of the edges of the box to the nearest polygon." "Float number."), - ('rounded', "If the bounding box is to have rounded corners their radius is equal to the margin. " + ('rounded', "If the bounding box has to have rounded corners their radius is equal to the margin. " "True (1) or False (0)."), ('outname', 'Name of the resulting Geometry object. String.') ]), @@ -70,7 +70,7 @@ class TclCommandBbox(TclCommand): if obj is None: self.raise_tcl_error("%s: %s" % (_("Object not found"), name)) - if not isinstance(obj, FlatCAMGerber) and not isinstance(obj, FlatCAMGeometry): + if obj.kind != 'gerber' and obj.kind != 'geometry': self.raise_tcl_error('%s %s: %s.' % ( _("Expected GerberObject or GeometryObject, got"), name, type(obj))) From 907e4bc6d95f566cf62f392298c6d8d4fb8345d7 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 28 Apr 2020 21:08:40 +0300 Subject: [PATCH 8/8] - disabled a skip_quotes method in ToolShell.FCShell class so I can now use quotes to enclose file paths with spaces inside --- CHANGELOG.md | 2 +- flatcamGUI/GUIElements.py | 3 +-- flatcamTools/ToolShell.py | 32 +++++++++++++++------------ tclCommands/TclCommandOpenExcellon.py | 6 ++--- tclCommands/TclCommandOpenGCode.py | 6 ++--- tclCommands/TclCommandOpenGerber.py | 4 ---- tclCommands/TclCommandOpenProject.py | 6 ++--- 7 files changed, 29 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e17d742..53814f64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ CHANGELOG for FlatCAM beta - in SVG parser modified some imports to be one on each line - fixed the Tcl Command BBox (leftovers from recent global changes) - fixed some typos in strings reported by @pcb-hobbyst on FlatCAM forum - +- disabled a skip_quotes method in ToolShell.FCShell class so I can now use quotes to enclose file paths with spaces inside 27.04.2020 diff --git a/flatcamGUI/GUIElements.py b/flatcamGUI/GUIElements.py index 6a5d06a2..c43549ff 100644 --- a/flatcamGUI/GUIElements.py +++ b/flatcamGUI/GUIElements.py @@ -2694,8 +2694,7 @@ class _ExpandableTextEdit(QTextEdit): if line_count <= 1: self.historyPrev.emit() return - elif event.matches(QKeySequence.MoveToNextPage) or \ - event.matches(QKeySequence.MoveToPreviousPage): + elif event.matches(QKeySequence.MoveToNextPage) or event.matches(QKeySequence.MoveToPreviousPage): return self._termWidget.browser().keyPressEvent(event) tc = self.textCursor() diff --git a/flatcamTools/ToolShell.py b/flatcamTools/ToolShell.py index 6dc3e73b..eef2a465 100644 --- a/flatcamTools/ToolShell.py +++ b/flatcamTools/ToolShell.py @@ -107,25 +107,25 @@ class TermWidget(QWidget): mtype = text[:idx+1].upper() mtype = mtype.replace('_NOTCL', '') body = text[idx+1:] - if style == 'in': + if style.lower() == 'in': text = '%s' % text - elif style == 'err': + elif style.lower() == 'err': text = '%s'\ '%s'\ % (mtype, body) - elif style == 'warning': + elif style.lower() == 'warning': # text = '%s' % text text = '%s' \ '%s' \ % (mtype, body) - elif style == 'success': + elif style.lower() == 'success': # text = '%s' % text text = '%s' \ '%s' \ % (mtype, body) - elif style == 'selected': + elif style.lower() == 'selected': text = '' - elif style == 'raw': + elif style.lower() == 'raw': text = text else: # without span
is ignored!!! @@ -226,7 +226,7 @@ class TermWidget(QWidget): def is_command_complete(self, text): """ - Executed by _ExpandableTextEdit. Reimplement this function in the child classes. + Executed by _ExpandableTextEdit. Re-implement this function in the child classes. """ return True @@ -344,19 +344,23 @@ class FCShell(TermWidget): ''') def is_command_complete(self, text): + def skipQuotes(txt): quote = txt[0] text_val = txt[1:] endIndex = str(text_val).index(quote) return text[endIndex:] - while text: - if text[0] in ('"', "'"): - try: - text = skipQuotes(text) - except ValueError: - return False - text = text[1:] + # I'm disabling this because I need to be able to load paths that have spaces by + # enclosing them in quotes --- Marius Stanciu + # while text: + # if text[0] in ('"', "'"): + # try: + # text = skipQuotes(text) + # except ValueError: + # return False + # text = text[1:] + return True def child_exec_command(self, text): diff --git a/tclCommands/TclCommandOpenExcellon.py b/tclCommands/TclCommandOpenExcellon.py index 41f23a4b..8c187f26 100644 --- a/tclCommands/TclCommandOpenExcellon.py +++ b/tclCommands/TclCommandOpenExcellon.py @@ -53,9 +53,9 @@ class TclCommandOpenExcellon(TclCommandSignaled): filename = args.pop('filename') - if ' ' in filename: - return "The absolute path to the project file contain spaces which is not allowed.\n" \ - "Please enclose the path within quotes." + # if ' ' in filename: + # return "The absolute path to the project file contain spaces which is not allowed.\n" \ + # "Please enclose the path within quotes." args['plot'] = False args['from_tcl'] = True diff --git a/tclCommands/TclCommandOpenGCode.py b/tclCommands/TclCommandOpenGCode.py index 86da6cd8..489e253b 100644 --- a/tclCommands/TclCommandOpenGCode.py +++ b/tclCommands/TclCommandOpenGCode.py @@ -53,8 +53,8 @@ class TclCommandOpenGCode(TclCommandSignaled): args['plot'] = False args['from_tcl'] = True filename = args["filename"] - if ' ' in filename: - return "The absolute path to the project file contain spaces which is not allowed.\n" \ - "Please enclose the path within quotes." + # if ' ' in filename: + # return "The absolute path to the project file contain spaces which is not allowed.\n" \ + # "Please enclose the path within quotes." self.app.open_gcode(filename, **args) diff --git a/tclCommands/TclCommandOpenGerber.py b/tclCommands/TclCommandOpenGerber.py index 35114108..f13cc87a 100644 --- a/tclCommands/TclCommandOpenGerber.py +++ b/tclCommands/TclCommandOpenGerber.py @@ -55,10 +55,6 @@ class TclCommandOpenGerber(TclCommandSignaled): filename = args.pop('filename') - if ' ' in filename: - return "The absolute path to the project file contain spaces which is not allowed.\n" \ - "Please enclose the path within quotes." - if 'outname' in args: outname = args['outname'] else: diff --git a/tclCommands/TclCommandOpenProject.py b/tclCommands/TclCommandOpenProject.py index 48af1974..64477b71 100644 --- a/tclCommands/TclCommandOpenProject.py +++ b/tclCommands/TclCommandOpenProject.py @@ -49,8 +49,8 @@ class TclCommandOpenProject(TclCommandSignaled): :return: None or exception """ filename = args['filename'] - if ' ' in filename: - return "The absolute path to the project file contain spaces which is not allowed.\n" \ - "Please enclose the path within quotes." + # if ' ' in filename: + # return "The absolute path to the project file contain spaces which is not allowed.\n" \ + # "Please enclose the path within quotes." self.app.open_project(filename, cli=True, plot=False, from_tcl=True)