diff --git a/FlatCAMApp.py b/FlatCAMApp.py index c7584f8f..3d585833 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -612,6 +612,8 @@ class App(QtCore.QObject): "excellon_save_filters": "Excellon File (*.txt);;Excellon File (*.drd);;Excellon File (*.drl);;" "Excellon File (*.exc);;Excellon File (*.ncd);;Excellon File (*.tap);;" "Excellon File (*.xln);;All Files (*.*)", + "excellon_plot_fill": '#C40000BF', + "excellon_plot_line": '#750000BF', # Excellon Options "excellon_drillz": -1.7, @@ -672,6 +674,7 @@ class App(QtCore.QObject): "geometry_plot": True, "geometry_circle_steps": 64, "geometry_cnctooldia": "2.4", + "geometry_plot_line": "#FF0000", # Geometry Options "geometry_cutz": -2.4, @@ -728,6 +731,10 @@ class App(QtCore.QObject): "G-Code Files (*.ngc);;G-Code Files (*.out);;G-Code Files (*.ply);;" "G-Code Files (*.sbp);;G-Code Files (*.tap);;G-Code Files (*.xpi);;" "All Files (*.*)", + "cncjob_plot_line": '#4650BDFF', + "cncjob_plot_fill": '#5E6CFFFF', + "cncjob_travel_line": '#B5AB3A4C', + "cncjob_travel_fill": '#F0E24D4C', # CNC Job Options "cncjob_prepend": "", @@ -983,10 +990,10 @@ class App(QtCore.QObject): else: self.decimals = int(self.defaults['decimals_inch']) - if self.defaults["global_theme"] == 'white': + if self.defaults["global_gray_icons"] is False: self.resource_location = 'share' else: - self.resource_location = 'share' + self.resource_location = 'share/dark_resources' self.current_units = self.defaults['units'] @@ -1093,20 +1100,18 @@ class App(QtCore.QObject): "global_portable": self.ui.general_defaults_form.general_app_group.portability_cb, "global_language": self.ui.general_defaults_form.general_app_group.language_cb, + "global_systray_icon": self.ui.general_defaults_form.general_app_group.systray_cb, + "global_shell_at_startup": self.ui.general_defaults_form.general_app_group.shell_startup_cb, + "global_project_at_startup": self.ui.general_defaults_form.general_app_group.project_startup_cb, "global_version_check": self.ui.general_defaults_form.general_app_group.version_check_cb, "global_send_stats": self.ui.general_defaults_form.general_app_group.send_stats_cb, "global_worker_number": self.ui.general_defaults_form.general_app_group.worker_number_sb, "global_tolerance": self.ui.general_defaults_form.general_app_group.tol_entry, - "global_open_style": self.ui.general_defaults_form.general_app_group.open_style_cb, - "global_compression_level": self.ui.general_defaults_form.general_app_group.compress_spinner, "global_save_compressed": self.ui.general_defaults_form.general_app_group.save_type_cb, - "global_bookmarks_limit": self.ui.general_defaults_form.general_app_group.bm_limit_spinner, - "global_machinist_setting": self.ui.general_defaults_form.general_app_group.machinist_cb, - "global_tpdf_tmargin": self.ui.general_defaults_form.general_app_group.tmargin_entry, "global_tpdf_bmargin": self.ui.general_defaults_form.general_app_group.bmargin_entry, "global_tpdf_lmargin": self.ui.general_defaults_form.general_app_group.lmargin_entry, @@ -1131,27 +1136,27 @@ class App(QtCore.QObject): "global_project_autohide": self.ui.general_defaults_form.general_gui_group.project_autohide_cb, # General GUI Settings - "global_gridx": self.ui.general_defaults_form.general_gui_set_group.gridx_entry, - "global_gridy": self.ui.general_defaults_form.general_gui_set_group.gridy_entry, - "global_snap_max": self.ui.general_defaults_form.general_gui_set_group.snap_max_dist_entry, - "global_workspace": self.ui.general_defaults_form.general_gui_set_group.workspace_cb, - "global_workspaceT": self.ui.general_defaults_form.general_gui_set_group.wk_cb, - "global_workspace_orientation": self.ui.general_defaults_form.general_gui_set_group.wk_orientation_radio, + "global_gridx": self.ui.general_defaults_form.general_app_set_group.gridx_entry, + "global_gridy": self.ui.general_defaults_form.general_app_set_group.gridy_entry, + "global_snap_max": self.ui.general_defaults_form.general_app_set_group.snap_max_dist_entry, + "global_workspace": self.ui.general_defaults_form.general_app_set_group.workspace_cb, + "global_workspaceT": self.ui.general_defaults_form.general_app_set_group.wk_cb, + "global_workspace_orientation": self.ui.general_defaults_form.general_app_set_group.wk_orientation_radio, - "global_systray_icon": self.ui.general_defaults_form.general_gui_set_group.systray_cb, - "global_shell_at_startup": self.ui.general_defaults_form.general_gui_set_group.shell_startup_cb, - "global_project_at_startup": self.ui.general_defaults_form.general_gui_set_group.project_startup_cb, - "global_cursor_type": self.ui.general_defaults_form.general_gui_set_group.cursor_radio, - "global_cursor_size": self.ui.general_defaults_form.general_gui_set_group.cursor_size_entry, - "global_cursor_width": self.ui.general_defaults_form.general_gui_set_group.cursor_width_entry, - "global_cursor_color_enabled": self.ui.general_defaults_form.general_gui_set_group.mouse_cursor_color_cb, - "global_cursor_color": self.ui.general_defaults_form.general_gui_set_group.mouse_cursor_entry, - "global_pan_button": self.ui.general_defaults_form.general_gui_set_group.pan_button_radio, - "global_mselect_key": self.ui.general_defaults_form.general_gui_set_group.mselect_radio, - "global_delete_confirmation": self.ui.general_defaults_form.general_gui_set_group.delete_conf_cb, + "global_cursor_type": self.ui.general_defaults_form.general_app_set_group.cursor_radio, + "global_cursor_size": self.ui.general_defaults_form.general_app_set_group.cursor_size_entry, + "global_cursor_width": self.ui.general_defaults_form.general_app_set_group.cursor_width_entry, + "global_cursor_color_enabled": self.ui.general_defaults_form.general_app_set_group.mouse_cursor_color_cb, + "global_cursor_color": self.ui.general_defaults_form.general_app_set_group.mouse_cursor_entry, + "global_pan_button": self.ui.general_defaults_form.general_app_set_group.pan_button_radio, + "global_mselect_key": self.ui.general_defaults_form.general_app_set_group.mselect_radio, + "global_delete_confirmation": self.ui.general_defaults_form.general_app_set_group.delete_conf_cb, + "global_open_style": self.ui.general_defaults_form.general_app_set_group.open_style_cb, + "global_toggle_tooltips": self.ui.general_defaults_form.general_app_set_group.toggle_tooltips_cb, + "global_machinist_setting": self.ui.general_defaults_form.general_app_set_group.machinist_cb, - "global_toggle_tooltips": self.ui.general_defaults_form.general_gui_set_group.toggle_tooltips_cb, - "global_activity_icon": self.ui.general_defaults_form.general_gui_set_group.activity_combo, + "global_bookmarks_limit": self.ui.general_defaults_form.general_app_set_group.bm_limit_spinner, + "global_activity_icon": self.ui.general_defaults_form.general_app_set_group.activity_combo, # Gerber General "gerber_plot": self.ui.gerber_defaults_form.gerber_gen_group.plot_cb, @@ -1232,6 +1237,8 @@ class App(QtCore.QObject): "excellon_update": self.ui.excellon_defaults_form.excellon_gen_group.update_excellon_cb, "excellon_optimization_type": self.ui.excellon_defaults_form.excellon_gen_group.excellon_optimization_radio, "excellon_search_time": self.ui.excellon_defaults_form.excellon_gen_group.optimization_time_entry, + "excellon_plot_fill": self.ui.excellon_defaults_form.excellon_gen_group.fill_color_entry, + "excellon_plot_line": self.ui.excellon_defaults_form.excellon_gen_group.line_color_entry, # Excellon Options "excellon_drillz": self.ui.excellon_defaults_form.excellon_opt_group.cutz_entry, @@ -1301,6 +1308,7 @@ class App(QtCore.QObject): "geometry_plot": self.ui.geometry_defaults_form.geometry_gen_group.plot_cb, "geometry_circle_steps": self.ui.geometry_defaults_form.geometry_gen_group.circle_steps_entry, "geometry_cnctooldia": self.ui.geometry_defaults_form.geometry_gen_group.cnctooldia_entry, + "geometry_plot_line": self.ui.geometry_defaults_form.geometry_gen_group.line_color_entry, # Geometry Options "geometry_cutz": self.ui.geometry_defaults_form.geometry_opt_group.cutz_entry, @@ -1345,6 +1353,10 @@ class App(QtCore.QObject): "cncjob_fr_decimals": self.ui.cncjob_defaults_form.cncjob_gen_group.fr_dec_entry, "cncjob_steps_per_circle": self.ui.cncjob_defaults_form.cncjob_gen_group.steps_per_circle_entry, "cncjob_line_ending": self.ui.cncjob_defaults_form.cncjob_gen_group.line_ending_cb, + "cncjob_plot_line": self.ui.cncjob_defaults_form.cncjob_gen_group.line_color_entry, + "cncjob_plot_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.fill_color_entry, + "cncjob_travel_line": self.ui.cncjob_defaults_form.cncjob_gen_group.tline_color_entry, + "cncjob_travel_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.tfill_color_entry, # CNC Job Options "cncjob_prepend": self.ui.cncjob_defaults_form.cncjob_opt_group.prepend_text, @@ -1583,8 +1595,8 @@ class App(QtCore.QObject): self.on_layout(lay=initial_lay) # Set the combobox in Preferences to the current layout - idx = self.ui.general_defaults_form.general_gui_set_group.layout_combo.findText(initial_lay) - self.ui.general_defaults_form.general_gui_set_group.layout_combo.setCurrentIndex(idx) + idx = self.ui.general_defaults_form.general_gui_group.layout_combo.findText(initial_lay) + self.ui.general_defaults_form.general_gui_group.layout_combo.setCurrentIndex(idx) # after the first run, this object should be False self.defaults["first_run"] = False @@ -2003,90 +2015,25 @@ class App(QtCore.QObject): # ######################### GUI PREFERENCES SIGNALS ########################### # ############################################################################# - self.ui.general_defaults_form.general_app_group.ge_radio.activated_custom.connect(self.on_app_restart) - self.ui.general_defaults_form.general_app_group.language_apply_btn.clicked.connect( - lambda: fcTranslate.on_language_apply_click(self, restart=True) - ) self.ui.general_defaults_form.general_app_group.units_radio.activated_custom.connect( lambda: self.on_toggle_units(no_pref=False)) - # ############################################################################# - # ############################# GUI COLORS SIGNALS ############################ - # ############################################################################# - - # Setting selection (left - right) colors signals - self.ui.general_defaults_form.general_gui_group.sf_color_entry.editingFinished.connect( - self.on_sf_color_entry) - self.ui.general_defaults_form.general_gui_group.sf_color_button.clicked.connect( - self.on_sf_color_button) - self.ui.general_defaults_form.general_gui_group.sf_color_alpha_spinner.valueChanged.connect( - self.on_sf_color_spinner) - self.ui.general_defaults_form.general_gui_group.sf_color_alpha_slider.valueChanged.connect( - self.on_sf_color_slider) - self.ui.general_defaults_form.general_gui_group.sl_color_entry.editingFinished.connect( - self.on_sl_color_entry) - self.ui.general_defaults_form.general_gui_group.sl_color_button.clicked.connect( - self.on_sl_color_button) - - # Setting selection (right - left) colors signals - self.ui.general_defaults_form.general_gui_group.alt_sf_color_entry.editingFinished.connect( - self.on_alt_sf_color_entry) - self.ui.general_defaults_form.general_gui_group.alt_sf_color_button.clicked.connect( - self.on_alt_sf_color_button) - self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_spinner.valueChanged.connect( - self.on_alt_sf_color_spinner) - self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_slider.valueChanged.connect( - self.on_alt_sf_color_slider) - self.ui.general_defaults_form.general_gui_group.alt_sl_color_entry.editingFinished.connect( - self.on_alt_sl_color_entry) - self.ui.general_defaults_form.general_gui_group.alt_sl_color_button.clicked.connect( - self.on_alt_sl_color_button) - - # Setting Editor Draw colors signals - self.ui.general_defaults_form.general_gui_group.draw_color_entry.editingFinished.connect( - self.on_draw_color_entry) - self.ui.general_defaults_form.general_gui_group.draw_color_button.clicked.connect( - self.on_draw_color_button) - - self.ui.general_defaults_form.general_gui_group.sel_draw_color_entry.editingFinished.connect( - self.on_sel_draw_color_entry) - self.ui.general_defaults_form.general_gui_group.sel_draw_color_button.clicked.connect( - self.on_sel_draw_color_button) - - self.ui.general_defaults_form.general_gui_group.proj_color_entry.editingFinished.connect( - self.on_proj_color_entry) - self.ui.general_defaults_form.general_gui_group.proj_color_button.clicked.connect( - self.on_proj_color_button) - - self.ui.general_defaults_form.general_gui_group.proj_color_dis_entry.editingFinished.connect( - self.on_proj_color_dis_entry) - self.ui.general_defaults_form.general_gui_group.proj_color_dis_button.clicked.connect( - self.on_proj_color_dis_button) - # ############################# Workspace Setting Signals ##################### - self.ui.general_defaults_form.general_gui_set_group.wk_cb.currentIndexChanged.connect( + self.ui.general_defaults_form.general_app_set_group.wk_cb.currentIndexChanged.connect( self.on_workspace_modified) - self.ui.general_defaults_form.general_gui_set_group.wk_orientation_radio.activated_custom.connect( + self.ui.general_defaults_form.general_app_set_group.wk_orientation_radio.activated_custom.connect( self.on_workspace_modified ) - self.ui.general_defaults_form.general_gui_set_group.workspace_cb.stateChanged.connect(self.on_workspace) + self.ui.general_defaults_form.general_app_set_group.workspace_cb.stateChanged.connect(self.on_workspace) self.ui.general_defaults_form.general_gui_group.layout_combo.activated.connect(self.on_layout) # ############################################################################# # ############################# GUI SETTINGS SIGNALS ########################## # ############################################################################# - - self.ui.general_defaults_form.general_gui_set_group.cursor_radio.activated_custom.connect(self.on_cursor_type) - - # ########## CNC Job related signals ############# - self.ui.cncjob_defaults_form.cncjob_adv_opt_group.tc_variable_combo.currentIndexChanged[str].connect( - self.on_cnc_custom_parameters) - self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_entry.editingFinished.connect( - self.on_annotation_fontcolor_entry) - self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_button.clicked.connect( - self.on_annotation_fontcolor_button) + self.ui.general_defaults_form.general_app_group.ge_radio.activated_custom.connect(self.on_app_restart) + self.ui.general_defaults_form.general_app_set_group.cursor_radio.activated_custom.connect(self.on_cursor_type) # ########## Tools related signals ############# # Film Tool @@ -2114,14 +2061,12 @@ class App(QtCore.QObject): self.object_status_changed.connect(self.on_collection_updated) - # Monitor the checkbox from the Application Defaults Tab and show the TCL shell or not depending on it's value - self.ui.general_defaults_form.general_gui_set_group.shell_startup_cb.clicked.connect(self.on_toggle_shell) - # Make sure that when the Excellon loading parameters are changed, the change is reflected in the # Export Excellon parameters. self.ui.excellon_defaults_form.excellon_gen_group.update_excellon_cb.stateChanged.connect( self.on_update_exc_export ) + # call it once to make sure it is updated at startup self.on_update_exc_export(state=self.defaults["excellon_update"]) @@ -2184,9 +2129,6 @@ class App(QtCore.QObject): self.ui.util_defaults_form.kw_group.del_btn.clicked.connect( lambda: self.del_extension(ext_type='keyword')) - # splash screen button signal - self.ui.general_defaults_form.general_gui_set_group.splash_cb.stateChanged.connect(self.on_splash_changed) - # connect the abort_all_tasks related slots to the related signals self.proc_container.idle_flag.connect(self.app_is_idle) @@ -5175,20 +5117,20 @@ class App(QtCore.QObject): ) stgs.setValue( 'notebook_font_size', - self.ui.general_defaults_form.general_gui_set_group.notebook_font_size_spinner.get_value() + self.ui.general_defaults_form.general_app_set_group.notebook_font_size_spinner.get_value() ) stgs.setValue( 'axis_font_size', - self.ui.general_defaults_form.general_gui_set_group.axis_font_size_spinner.get_value() + self.ui.general_defaults_form.general_app_set_group.axis_font_size_spinner.get_value() ) stgs.setValue( 'textbox_font_size', - self.ui.general_defaults_form.general_gui_set_group.textbox_font_size_spinner.get_value() + self.ui.general_defaults_form.general_app_set_group.textbox_font_size_spinner.get_value() ) stgs.setValue('toolbar_lock', self.ui.lock_action.isChecked()) stgs.setValue( 'machinist', - 1 if self.ui.general_defaults_form.general_app_group.machinist_cb.get_value() else 0 + 1 if self.ui.general_defaults_form.general_app_set_group.machinist_cb.get_value() else 0 ) # This will write the setting to the platform specific storage. @@ -6283,7 +6225,7 @@ class App(QtCore.QObject): # self.options2form() def init_color_pickers_in_preferences_gui(self): - # Init Plot Colors + # Init Gerber Plot Colors self.ui.gerber_defaults_form.gerber_gen_group.pf_color_entry.set_value(self.defaults['gerber_plot_fill']) self.ui.gerber_defaults_form.gerber_gen_group.pf_color_button.setStyleSheet( "background-color:%s;" @@ -6298,6 +6240,60 @@ class App(QtCore.QObject): "background-color:%s;" "border-color: dimgray" % str(self.defaults['gerber_plot_line'])[:7]) + # Init Excellon Plot Colors + self.ui.excellon_defaults_form.excellon_gen_group.fill_color_entry.set_value( + self.defaults['excellon_plot_fill']) + self.ui.excellon_defaults_form.excellon_gen_group.fill_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['excellon_plot_fill'])[:7]) + self.ui.excellon_defaults_form.excellon_gen_group.color_alpha_spinner.set_value( + int(self.defaults['excellon_plot_fill'][7:9], 16)) + self.ui.excellon_defaults_form.excellon_gen_group.color_alpha_slider.setValue( + int(self.defaults['excellon_plot_fill'][7:9], 16)) + + self.ui.excellon_defaults_form.excellon_gen_group.line_color_entry.set_value( + self.defaults['excellon_plot_line']) + self.ui.excellon_defaults_form.excellon_gen_group.line_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['excellon_plot_line'])[:7]) + + # Init Geometry Plot Colors + self.ui.geometry_defaults_form.geometry_gen_group.line_color_entry.set_value( + self.defaults['geometry_plot_line']) + self.ui.geometry_defaults_form.geometry_gen_group.line_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['geometry_plot_line'])[:7]) + + # Init CNCJob Travel Line Colors + self.ui.cncjob_defaults_form.cncjob_gen_group.tfill_color_entry.set_value( + self.defaults['cncjob_travel_fill']) + self.ui.cncjob_defaults_form.cncjob_gen_group.tfill_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['cncjob_travel_fill'])[:7]) + self.ui.cncjob_defaults_form.cncjob_gen_group.tcolor_alpha_spinner.set_value( + int(self.defaults['cncjob_travel_fill'][7:9], 16)) + self.ui.cncjob_defaults_form.cncjob_gen_group.tcolor_alpha_slider.setValue( + int(self.defaults['cncjob_travel_fill'][7:9], 16)) + + self.ui.cncjob_defaults_form.cncjob_gen_group.tline_color_entry.set_value( + self.defaults['cncjob_travel_line']) + self.ui.cncjob_defaults_form.cncjob_gen_group.tline_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['cncjob_travel_line'])[:7]) + + # Init CNCJob Plot Colors + self.ui.cncjob_defaults_form.cncjob_gen_group.fill_color_entry.set_value( + self.defaults['cncjob_plot_fill']) + self.ui.cncjob_defaults_form.cncjob_gen_group.fill_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['cncjob_plot_fill'])[:7]) + + self.ui.cncjob_defaults_form.cncjob_gen_group.line_color_entry.set_value( + self.defaults['cncjob_plot_line']) + self.ui.cncjob_defaults_form.cncjob_gen_group.line_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['cncjob_plot_line'])[:7]) + # Init Left-Right Selection colors self.ui.general_defaults_form.general_gui_group.sf_color_entry.set_value(self.defaults['global_sel_fill']) self.ui.general_defaults_form.general_gui_group.sf_color_button.setStyleSheet( @@ -6358,9 +6354,9 @@ class App(QtCore.QObject): "border-color: dimgray" % str(self.defaults['global_proj_item_dis_color'])[:7]) # Init Project Disabled Items color - self.ui.general_defaults_form.general_gui_set_group.mouse_cursor_entry.set_value( + self.ui.general_defaults_form.general_app_set_group.mouse_cursor_entry.set_value( self.defaults['global_cursor_color']) - self.ui.general_defaults_form.general_gui_set_group.mouse_cursor_button.setStyleSheet( + self.ui.general_defaults_form.general_app_set_group.mouse_cursor_button.setStyleSheet( "background-color:%s;" "border-color: dimgray" % str(self.defaults['global_cursor_color'])[:7]) @@ -6529,238 +6525,6 @@ class App(QtCore.QObject): ) self.on_excellon_format_changed() - # Setting selection colors (left - right) handlers - def on_sf_color_entry(self): - self.defaults['global_sel_fill'] = \ - self.ui.general_defaults_form.general_gui_group.sf_color_entry.get_value()[:7] + \ - self.defaults['global_sel_fill'][7:9] - self.ui.general_defaults_form.general_gui_group.sf_color_button.setStyleSheet( - "background-color:%s" % str(self.defaults['global_sel_fill'])[:7]) - - def on_sf_color_button(self): - current_color = QtGui.QColor(self.defaults['global_sel_fill'][:7]) - - c_dialog = QtWidgets.QColorDialog() - plot_fill_color = c_dialog.getColor(initial=current_color) - - if plot_fill_color.isValid() is False: - return - - self.ui.general_defaults_form.general_gui_group.sf_color_button.setStyleSheet( - "background-color:%s" % str(plot_fill_color.name())) - - new_val = str(plot_fill_color.name()) + str(self.defaults['global_sel_fill'][7:9]) - self.ui.general_defaults_form.general_gui_group.sf_color_entry.set_value(new_val) - self.defaults['global_sel_fill'] = new_val - - def on_sf_color_spinner(self): - spinner_value = self.ui.general_defaults_form.general_gui_group.sf_color_alpha_spinner.value() - self.ui.general_defaults_form.general_gui_group.sf_color_alpha_slider.setValue(spinner_value) - self.defaults['global_sel_fill'] = \ - self.defaults['global_sel_fill'][:7] + \ - (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') - self.defaults['global_sel_line'] = \ - self.defaults['global_sel_line'][:7] + \ - (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') - - def on_sf_color_slider(self): - slider_value = self.ui.general_defaults_form.general_gui_group.sf_color_alpha_slider.value() - self.ui.general_defaults_form.general_gui_group.sf_color_alpha_spinner.setValue(slider_value) - - def on_sl_color_entry(self): - self.defaults['global_sel_line'] = \ - self.ui.general_defaults_form.general_gui_group.sl_color_entry.get_value()[:7] + \ - self.defaults['global_sel_line'][7:9] - self.ui.general_defaults_form.general_gui_group.sl_color_button.setStyleSheet( - "background-color:%s" % str(self.defaults['global_sel_line'])[:7]) - - def on_sl_color_button(self): - current_color = QtGui.QColor(self.defaults['global_sel_line'][:7]) - - c_dialog = QtWidgets.QColorDialog() - plot_line_color = c_dialog.getColor(initial=current_color) - - if plot_line_color.isValid() is False: - return - - self.ui.general_defaults_form.general_gui_group.sl_color_button.setStyleSheet( - "background-color:%s" % str(plot_line_color.name())) - - new_val_line = str(plot_line_color.name()) + str(self.defaults['global_sel_line'][7:9]) - self.ui.general_defaults_form.general_gui_group.sl_color_entry.set_value(new_val_line) - self.defaults['global_sel_line'] = new_val_line - - # Setting selection colors (right - left) handlers - def on_alt_sf_color_entry(self): - self.defaults['global_alt_sel_fill'] = self.ui.general_defaults_form.general_gui_group \ - .alt_sf_color_entry.get_value()[:7] + self.defaults['global_alt_sel_fill'][7:9] - self.ui.general_defaults_form.general_gui_group.alt_sf_color_button.setStyleSheet( - "background-color:%s" % str(self.defaults['global_alt_sel_fill'])[:7]) - - def on_alt_sf_color_button(self): - current_color = QtGui.QColor(self.defaults['global_alt_sel_fill'][:7]) - - c_dialog = QtWidgets.QColorDialog() - plot_fill_color = c_dialog.getColor(initial=current_color) - - if plot_fill_color.isValid() is False: - return - - self.ui.general_defaults_form.general_gui_group.alt_sf_color_button.setStyleSheet( - "background-color:%s" % str(plot_fill_color.name())) - - new_val = str(plot_fill_color.name()) + str(self.defaults['global_alt_sel_fill'][7:9]) - self.ui.general_defaults_form.general_gui_group.alt_sf_color_entry.set_value(new_val) - self.defaults['global_alt_sel_fill'] = new_val - - def on_alt_sf_color_spinner(self): - spinner_value = self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_spinner.value() - self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_slider.setValue(spinner_value) - self.defaults['global_alt_sel_fill'] = \ - self.defaults['global_alt_sel_fill'][:7] + \ - (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') - self.defaults['global_alt_sel_line'] = \ - self.defaults['global_alt_sel_line'][:7] + \ - (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') - - def on_alt_sf_color_slider(self): - slider_value = self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_slider.value() - self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_spinner.setValue(slider_value) - - def on_alt_sl_color_entry(self): - self.defaults['global_alt_sel_line'] = \ - self.ui.general_defaults_form.general_gui_group.alt_sl_color_entry.get_value()[:7] + \ - self.defaults['global_alt_sel_line'][7:9] - self.ui.general_defaults_form.general_gui_group.alt_sl_color_button.setStyleSheet( - "background-color:%s" % str(self.defaults['global_alt_sel_line'])[:7]) - - def on_alt_sl_color_button(self): - current_color = QtGui.QColor(self.defaults['global_alt_sel_line'][:7]) - - c_dialog = QtWidgets.QColorDialog() - plot_line_color = c_dialog.getColor(initial=current_color) - - if plot_line_color.isValid() is False: - return - - self.ui.general_defaults_form.general_gui_group.alt_sl_color_button.setStyleSheet( - "background-color:%s" % str(plot_line_color.name())) - - new_val_line = str(plot_line_color.name()) + str(self.defaults['global_alt_sel_line'][7:9]) - self.ui.general_defaults_form.general_gui_group.alt_sl_color_entry.set_value(new_val_line) - self.defaults['global_alt_sel_line'] = new_val_line - - # Setting Editor colors - def on_draw_color_entry(self): - self.defaults['global_draw_color'] = self.ui.general_defaults_form.general_gui_group \ - .draw_color_entry.get_value() - self.ui.general_defaults_form.general_gui_group.draw_color_button.setStyleSheet( - "background-color:%s" % str(self.defaults['global_draw_color'])) - - def on_draw_color_button(self): - current_color = QtGui.QColor(self.defaults['global_draw_color']) - - c_dialog = QtWidgets.QColorDialog() - draw_color = c_dialog.getColor(initial=current_color) - - if draw_color.isValid() is False: - return - - self.ui.general_defaults_form.general_gui_group.draw_color_button.setStyleSheet( - "background-color:%s" % str(draw_color.name())) - - new_val = str(draw_color.name()) - self.ui.general_defaults_form.general_gui_group.draw_color_entry.set_value(new_val) - self.defaults['global_draw_color'] = new_val - - def on_sel_draw_color_entry(self): - self.defaults['global_sel_draw_color'] = self.ui.general_defaults_form.general_gui_group \ - .sel_draw_color_entry.get_value() - self.ui.general_defaults_form.general_gui_group.sel_draw_color_button.setStyleSheet( - "background-color:%s" % str(self.defaults['global_sel_draw_color'])) - - def on_sel_draw_color_button(self): - current_color = QtGui.QColor(self.defaults['global_sel_draw_color']) - - c_dialog = QtWidgets.QColorDialog() - sel_draw_color = c_dialog.getColor(initial=current_color) - - if sel_draw_color.isValid() is False: - return - - self.ui.general_defaults_form.general_gui_group.sel_draw_color_button.setStyleSheet( - "background-color:%s" % str(sel_draw_color.name())) - - new_val_sel = str(sel_draw_color.name()) - self.ui.general_defaults_form.general_gui_group.sel_draw_color_entry.set_value(new_val_sel) - self.defaults['global_sel_draw_color'] = new_val_sel - - def on_proj_color_entry(self): - self.defaults['global_proj_item_color'] = self.ui.general_defaults_form.general_gui_group \ - .proj_color_entry.get_value() - self.ui.general_defaults_form.general_gui_group.proj_color_button.setStyleSheet( - "background-color:%s" % str(self.defaults['global_proj_item_color'])) - - def on_proj_color_button(self): - current_color = QtGui.QColor(self.defaults['global_proj_item_color']) - - c_dialog = QtWidgets.QColorDialog() - proj_color = c_dialog.getColor(initial=current_color) - - if proj_color.isValid() is False: - return - - self.ui.general_defaults_form.general_gui_group.proj_color_button.setStyleSheet( - "background-color:%s" % str(proj_color.name())) - - new_val_sel = str(proj_color.name()) - self.ui.general_defaults_form.general_gui_group.proj_color_entry.set_value(new_val_sel) - self.defaults['global_proj_item_color'] = new_val_sel - - def on_proj_color_dis_entry(self): - self.defaults['global_proj_item_dis_color'] = self.ui.general_defaults_form.general_gui_group \ - .proj_color_dis_entry.get_value() - self.ui.general_defaults_form.general_gui_group.proj_color_dis_button.setStyleSheet( - "background-color:%s" % str(self.defaults['global_proj_item_dis_color'])) - - def on_proj_color_dis_button(self): - current_color = QtGui.QColor(self.defaults['global_proj_item_dis_color']) - - c_dialog = QtWidgets.QColorDialog() - proj_color = c_dialog.getColor(initial=current_color) - - if proj_color.isValid() is False: - return - - self.ui.general_defaults_form.general_gui_group.proj_color_dis_button.setStyleSheet( - "background-color:%s" % str(proj_color.name())) - - new_val_sel = str(proj_color.name()) - self.ui.general_defaults_form.general_gui_set_group.proj_color_dis_entry.set_value(new_val_sel) - self.defaults['global_proj_item_dis_color'] = new_val_sel - - def on_annotation_fontcolor_entry(self): - self.defaults['cncjob_annotation_fontcolor'] = \ - self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_entry.get_value() - self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_button.setStyleSheet( - "background-color:%s" % str(self.defaults['cncjob_annotation_fontcolor'])) - - def on_annotation_fontcolor_button(self): - current_color = QtGui.QColor(self.defaults['cncjob_annotation_fontcolor']) - - c_dialog = QtWidgets.QColorDialog() - annotation_color = c_dialog.getColor(initial=current_color) - - if annotation_color.isValid() is False: - return - - self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_button.setStyleSheet( - "background-color:%s" % str(annotation_color.name())) - - new_val_sel = str(annotation_color.name()) - self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_entry.set_value(new_val_sel) - self.defaults['cncjob_annotation_fontcolor'] = new_val_sel - def on_film_color_entry(self): self.defaults['tools_film_color'] = \ self.ui.tools_defaults_form.tools_film_group.film_color_entry.get_value() @@ -6850,13 +6614,6 @@ class App(QtCore.QObject): self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_entry.set_value(new_val_sel) self.defaults['tools_qrcode_back_color'] = new_val_sel - def on_splash_changed(self, state): - settings = QSettings("Open Source", "FlatCAM") - settings.setValue('splash_screen', 1) if state else settings.setValue('splash_screen', 0) - - # This will write the setting to the platform specific storage. - del settings - def on_tab_rmb_click(self, checked): self.ui.notebook.set_detachable(val=checked) self.defaults["global_tabs_detachable"] = checked @@ -7060,12 +6817,12 @@ class App(QtCore.QObject): self.app_cursor.enabled = False if val == 'small': - self.ui.general_defaults_form.general_gui_set_group.cursor_size_entry.setDisabled(False) - self.ui.general_defaults_form.general_gui_set_group.cursor_size_lbl.setDisabled(False) + self.ui.general_defaults_form.general_app_set_group.cursor_size_entry.setDisabled(False) + self.ui.general_defaults_form.general_app_set_group.cursor_size_lbl.setDisabled(False) self.app_cursor = self.plotcanvas.new_cursor() else: - self.ui.general_defaults_form.general_gui_set_group.cursor_size_entry.setDisabled(True) - self.ui.general_defaults_form.general_gui_set_group.cursor_size_lbl.setDisabled(True) + self.ui.general_defaults_form.general_app_set_group.cursor_size_entry.setDisabled(True) + self.ui.general_defaults_form.general_app_set_group.cursor_size_lbl.setDisabled(True) self.app_cursor = self.plotcanvas.new_cursor(big=True) if self.ui.grid_snap_btn.isChecked(): @@ -7073,12 +6830,6 @@ class App(QtCore.QObject): else: self.app_cursor.enabled = False - def on_cnc_custom_parameters(self, signal_text): - if signal_text == 'Parameters': - return - else: - self.ui.cncjob_defaults_form.cncjob_adv_opt_group.toolchange_text.insertPlainText('%%%s%%' % signal_text) - def on_save_button(self, save_to_file=True): log.debug("App.on_save_button() --> Applying preferences to file.") @@ -7106,20 +6857,20 @@ class App(QtCore.QObject): settgs = QSettings("Open Source", "FlatCAM") # save the notebook font size - fsize = self.ui.general_defaults_form.general_gui_set_group.notebook_font_size_spinner.get_value() + fsize = self.ui.general_defaults_form.general_app_set_group.notebook_font_size_spinner.get_value() settgs.setValue('notebook_font_size', fsize) # save the axis font size - g_fsize = self.ui.general_defaults_form.general_gui_set_group.axis_font_size_spinner.get_value() + g_fsize = self.ui.general_defaults_form.general_app_set_group.axis_font_size_spinner.get_value() settgs.setValue('axis_font_size', g_fsize) # save the textbox font size - tb_fsize = self.ui.general_defaults_form.general_gui_set_group.textbox_font_size_spinner.get_value() + tb_fsize = self.ui.general_defaults_form.general_app_set_group.textbox_font_size_spinner.get_value() settgs.setValue('textbox_font_size', tb_fsize) settgs.setValue( 'machinist', - 1 if self.ui.general_defaults_form.general_app_group.machinist_cb.get_value() else 0 + 1 if self.ui.general_defaults_form.general_app_set_group.machinist_cb.get_value() else 0 ) # This will write the setting to the platform specific storage. @@ -12411,22 +12162,22 @@ class App(QtCore.QObject): if act_name == 'red': new_color = '#FF0000' + \ - str(hex(self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.value())[2:]) + str(hex(self.ui.gerber_defaults_form.gerber_gen_group.pf_color_alpha_slider.value())[2:]) if act_name == 'blue': new_color = '#0000FF' + \ - str(hex(self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.value())[2:]) + str(hex(self.ui.gerber_defaults_form.gerber_gen_group.pf_color_alpha_slider.value())[2:]) if act_name == 'yellow': new_color = '#FFDF00' + \ - str(hex(self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.value())[2:]) + str(hex(self.ui.gerber_defaults_form.gerber_gen_group.pf_color_alpha_slider.value())[2:]) if act_name == 'green': new_color = '#00FF00' + \ - str(hex(self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.value())[2:]) + str(hex(self.ui.gerber_defaults_form.gerber_gen_group.pf_color_alpha_slider.value())[2:]) if act_name == 'purple': new_color = '#FF00FF' + \ - str(hex(self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.value())[2:]) + str(hex(self.ui.gerber_defaults_form.gerber_gen_group.pf_color_alpha_slider.value())[2:]) if act_name == 'brown': new_color = '#A52A2A' + \ - str(hex(self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.value())[2:]) + str(hex(self.ui.gerber_defaults_form.gerber_gen_group.pf_color_alpha_slider.value())[2:]) if act_name == 'custom': new_color = QtGui.QColor(self.defaults['gerber_plot_fill'][:7]) @@ -12437,7 +12188,7 @@ class App(QtCore.QObject): return new_color = str(plot_fill_color.name()) + \ - str(hex(self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.value())[2:]) + str(hex(self.ui.gerber_defaults_form.gerber_gen_group.pf_color_alpha_slider.value())[2:]) new_line_color = color_variant(new_color[:7], 0.7) diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 9021140c..70f6c20f 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -3536,7 +3536,9 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): # Plot Excellon (All polygons?) if self.options["solid"]: for geo in self.solid_geometry: - self.add_shape(shape=geo, color='#750000BF', face_color='#C40000BF', + self.add_shape(shape=geo, + color=self.app.defaults["excellon_plot_line"], + face_color=self.app.defaults["excellon_plot_fill"], visible=visible, layer=2) else: @@ -4074,7 +4076,6 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # I use lambda's because the connected functions have parameters that could be used in certain scenarios self.ui.addtool_btn.clicked.connect(lambda: self.on_tool_add()) - self.ui.addtool_entry.returnPressed.connect(self.on_tool_add) self.ui.copytool_btn.clicked.connect(lambda: self.on_tool_copy()) self.ui.deltool_btn.clicked.connect(lambda: self.on_tool_delete()) @@ -4127,11 +4128,6 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): except (TypeError, AttributeError): pass - try: - self.ui.addtool_entry.returnPressed.disconnect() - except (TypeError, AttributeError): - pass - try: self.ui.copytool_btn.clicked.disconnect() except (TypeError, AttributeError): @@ -5793,12 +5789,15 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): return factor - def plot_element(self, element, color='#FF0000FF', visible=None): + def plot_element(self, element, color=None, visible=None): + + if color is None: + color = '#FF0000FF' visible = visible if visible else self.options['plot'] try: for sub_el in element: - self.plot_element(sub_el) + self.plot_element(sub_el, color=color) except TypeError: # Element is not iterable... # if self.app.is_legacy is False: @@ -5825,12 +5824,14 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): if self.multigeo is True: # geo multi tool usage for tooluid_key in self.tools: solid_geometry = self.tools[tooluid_key]['solid_geometry'] - self.plot_element(solid_geometry, visible=visible) + self.plot_element(solid_geometry, visible=visible, + color=self.app.defaults["geometry_plot_line"]) else: # plot solid geometry that may be an direct attribute of the geometry object # for SingleGeo if self.solid_geometry: - self.plot_element(self.solid_geometry, visible=visible) + self.plot_element(self.solid_geometry, visible=visible, + color=self.app.defaults["geometry_plot_line"]) # self.plot_element(self.solid_geometry, visible=self.options['plot']) diff --git a/README.md b/README.md index db9f9c71..63059c61 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,9 @@ CAD program, and create G-Code for Isolation routing. - further modifications in Preferences -> General GUI - extended the changes - in Legacy(2D) graphic engine made to work the mouse color change - theme changing is no longer auto-reboot upon change; it require now to press a button +- cleaned the Preferences classes and added the signals and signal slots in those classes, removing them from the main app class +- each FlatCAM object found in Preferences has it's own set of controls for changing the colors +- added a set of gray icons to be used when the theme is complete dark (for now it is useful only for MacOS with dark theme because at the moment the app is not styled to dark UI except the plot area) 25.12.2019 diff --git a/camlib.py b/camlib.py index c234d1a8..99b7f0d7 100644 --- a/camlib.py +++ b/camlib.py @@ -4252,8 +4252,7 @@ class CNCjob(Geometry): # return fig def plot2(self, tooldia=None, dpi=75, margin=0.1, gcode_parsed=None, - color={"T": ["#F0E24D4C", "#B5AB3A4C"], "C": ["#5E6CFFFF", "#4650BDFF"]}, - alpha={"T": 0.3, "C": 1.0}, tool_tolerance=0.0005, obj=None, visible=False, kind='all'): + color=None, alpha={"T": 0.3, "C": 1.0}, tool_tolerance=0.0005, obj=None, visible=False, kind='all'): """ Plots the G-code job onto the given axes. @@ -4270,6 +4269,12 @@ class CNCjob(Geometry): """ # units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() + if color is None: + color = { + "T": [self.app.defaults["cncjob_travel_fill"], self.app.defaults["cncjob_travel_line"]], + "C": [self.app.defaults["cncjob_plot_fill"], self.app.defaults["cncjob_plot_line"]] + } + gcode_parsed = gcode_parsed if gcode_parsed else self.gcode_parsed path_num = 0 diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index 9940486b..b5dfc724 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -2333,7 +2333,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): :param event: QT event to filter :return: """ - if self.general_defaults_form.general_gui_set_group.toggle_tooltips_cb.get_value() is False: + if self.general_defaults_form.general_app_set_group.toggle_tooltips_cb.get_value() is False: if event.type() == QtCore.QEvent.ToolTip: return True else: diff --git a/flatcamGUI/PreferencesUI.py b/flatcamGUI/PreferencesUI.py index de7e3e0b..b72f3d73 100644 --- a/flatcamGUI/PreferencesUI.py +++ b/flatcamGUI/PreferencesUI.py @@ -56,12 +56,12 @@ class GeneralPreferencesUI(QtWidgets.QWidget): self.general_gui_group = GeneralGUIPrefGroupUI(decimals=self.decimals) self.general_gui_group.setMinimumWidth(250) - self.general_gui_set_group = GeneralGUISetGroupUI(decimals=self.decimals) - self.general_gui_set_group.setMinimumWidth(250) + self.general_app_set_group = GeneralAPPSetGroupUI(decimals=self.decimals) + self.general_app_set_group.setMinimumWidth(250) self.layout.addWidget(self.general_app_group) self.layout.addWidget(self.general_gui_group) - self.layout.addWidget(self.general_gui_set_group) + self.layout.addWidget(self.general_app_set_group) self.layout.addStretch() @@ -678,6 +678,39 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.theme_button.clicked.connect(self.on_theme_change) + # ############################################################################# + # ############################# GUI COLORS SIGNALS ############################ + # ############################################################################# + + # Setting selection (left - right) colors signals + self.sf_color_entry.editingFinished.connect(self.on_sf_color_entry) + self.sf_color_button.clicked.connect(self.on_sf_color_button) + self.sf_color_alpha_spinner.valueChanged.connect(self.on_sf_color_spinner) + self.sf_color_alpha_slider.valueChanged.connect(self.on_sf_color_slider) + self.sl_color_entry.editingFinished.connect(self.on_sl_color_entry) + self.sl_color_button.clicked.connect(self.on_sl_color_button) + + # Setting selection (right - left) colors signals + self.alt_sf_color_entry.editingFinished.connect(self.on_alt_sf_color_entry) + self.alt_sf_color_button.clicked.connect(self.on_alt_sf_color_button) + self.alt_sf_color_alpha_spinner.valueChanged.connect(self.on_alt_sf_color_spinner) + self.alt_sf_color_alpha_slider.valueChanged.connect(self.on_alt_sf_color_slider) + self.alt_sl_color_entry.editingFinished.connect(self.on_alt_sl_color_entry) + self.alt_sl_color_button.clicked.connect(self.on_alt_sl_color_button) + + # Setting Editor Draw colors signals + self.draw_color_entry.editingFinished.connect(self.on_draw_color_entry) + self.draw_color_button.clicked.connect( self.on_draw_color_button) + + self.sel_draw_color_entry.editingFinished.connect(self.on_sel_draw_color_entry) + self.sel_draw_color_button.clicked.connect(self.on_sel_draw_color_button) + + self.proj_color_entry.editingFinished.connect(self.on_proj_color_entry) + self.proj_color_button.clicked.connect(self.on_proj_color_button) + + self.proj_color_dis_entry.editingFinished.connect(self.on_proj_color_dis_entry) + self.proj_color_dis_button.clicked.connect(self.on_proj_color_dis_button) + def on_theme_change(self): val = self.theme_radio.get_value() t_settings = QSettings("Open Source", "FlatCAM") @@ -704,12 +737,201 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # This will write the setting to the platform specific storage. del settings + # Setting selection colors (left - right) handlers + def on_sf_color_entry(self): + self.app.defaults['global_sel_fill'] = self.app.defaults['global_sel_fill'][7:9] + self.sf_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['global_sel_fill'])[:7]) -class GeneralGUISetGroupUI(OptionsGroupUI): + def on_sf_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_sel_fill'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) + + if plot_fill_color.isValid() is False: + return + + self.sf_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['global_sel_fill'][7:9]) + self.sf_color_entry.set_value(new_val) + self.app.defaults['global_sel_fill'] = new_val + + def on_sf_color_spinner(self): + spinner_value = self.sf_color_alpha_spinner.value() + self.sf_color_alpha_slider.setValue(spinner_value) + self.app.defaults['global_sel_fill'] = self.app.defaults['global_sel_fill'][:7] + \ + (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + self.app.defaults['global_sel_line'] = self.app.defaults['global_sel_line'][:7] + \ + (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + + def on_sf_color_slider(self): + slider_value = self.sf_color_alpha_slider.value() + self.sf_color_alpha_spinner.setValue(slider_value) + + def on_sl_color_entry(self): + self.app.defaults['global_sel_line'] = self.sl_color_entry.get_value()[:7] + \ + self.app.defaults['global_sel_line'][7:9] + self.sl_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['global_sel_line'])[:7]) + + def on_sl_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_sel_line'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.sl_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['global_sel_line'][7:9]) + self.sl_color_entry.set_value(new_val_line) + self.app.defaults['global_sel_line'] = new_val_line + + # Setting selection colors (right - left) handlers + def on_alt_sf_color_entry(self): + self.app.defaults['global_alt_sel_fill'] = self.alt_sf_color_entry.get_value()[:7] + \ + self.app.defaults['global_alt_sel_fill'][7:9] + self.alt_sf_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_alt_sel_fill'])[:7] + ) + + def on_alt_sf_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_alt_sel_fill'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) + + if plot_fill_color.isValid() is False: + return + + self.alt_sf_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['global_alt_sel_fill'][7:9]) + self.alt_sf_color_entry.set_value(new_val) + self.app.defaults['global_alt_sel_fill'] = new_val + + def on_alt_sf_color_spinner(self): + spinner_value = self.alt_sf_color_alpha_spinner.value() + self.alt_sf_color_alpha_slider.setValue(spinner_value) + self.app.defaults['global_alt_sel_fill'] = self.app.defaults['global_alt_sel_fill'][:7] + \ + (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + self.app.defaults['global_alt_sel_line'] = self.app.defaults['global_alt_sel_line'][:7] + \ + (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + + def on_alt_sf_color_slider(self): + slider_value = self.alt_sf_color_alpha_slider.value() + self.alt_sf_color_alpha_spinner.setValue(slider_value) + + def on_alt_sl_color_entry(self): + self.app.defaults['global_alt_sel_line'] = self.alt_sl_color_entry.get_value()[:7] + \ + self.app.defaults['global_alt_sel_line'][7:9] + self.alt_sl_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_alt_sel_line'])[:7] + ) + + def on_alt_sl_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_alt_sel_line'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.alt_sl_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['global_alt_sel_line'][7:9]) + self.alt_sl_color_entry.set_value(new_val_line) + self.app.defaults['global_alt_sel_line'] = new_val_line + + # Setting Editor colors + def on_draw_color_entry(self): + self.app.defaults['global_draw_color'] = self.draw_color_entry.get_value() + self.draw_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['global_draw_color'])) + + def on_draw_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_draw_color']) + + c_dialog = QtWidgets.QColorDialog() + draw_color = c_dialog.getColor(initial=current_color) + + if draw_color.isValid() is False: + return + + self.draw_color_button.setStyleSheet("background-color:%s" % str(draw_color.name())) + + new_val = str(draw_color.name()) + self.draw_color_entry.set_value(new_val) + self.app.defaults['global_draw_color'] = new_val + + def on_sel_draw_color_entry(self): + self.app.defaults['global_sel_draw_color'] = self.sel_draw_color_entry.get_value() + self.sel_draw_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_sel_draw_color'])) + + def on_sel_draw_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_sel_draw_color']) + + c_dialog = QtWidgets.QColorDialog() + sel_draw_color = c_dialog.getColor(initial=current_color) + + if sel_draw_color.isValid() is False: + return + + self.sel_draw_color_button.setStyleSheet("background-color:%s" % str(sel_draw_color.name())) + + new_val_sel = str(sel_draw_color.name()) + self.sel_draw_color_entry.set_value(new_val_sel) + self.app.defaults['global_sel_draw_color'] = new_val_sel + + def on_proj_color_entry(self): + self.app.defaults['global_proj_item_color'] = self.proj_color_entry.get_value() + self.proj_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_proj_item_color'])) + + def on_proj_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_proj_item_color']) + + c_dialog = QtWidgets.QColorDialog() + proj_color = c_dialog.getColor(initial=current_color) + + if proj_color.isValid() is False: + return + + self.proj_color_button.setStyleSheet("background-color:%s" % str(proj_color.name())) + + new_val_sel = str(proj_color.name()) + self.proj_color_entry.set_value(new_val_sel) + self.app.defaults['global_proj_item_color'] = new_val_sel + + def on_proj_color_dis_entry(self): + self.app.defaults['global_proj_item_dis_color'] = self.proj_color_dis_entry.get_value() + self.proj_color_dis_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_proj_item_dis_color'])) + + def on_proj_color_dis_button(self): + current_color = QtGui.QColor(self.app.defaults['global_proj_item_dis_color']) + + c_dialog = QtWidgets.QColorDialog() + proj_color = c_dialog.getColor(initial=current_color) + + if proj_color.isValid() is False: + return + + self.proj_color_dis_button.setStyleSheet("background-color:%s" % str(proj_color.name())) + + new_val_sel = str(proj_color.name()) + self.proj_color_dis_entry.set_value(new_val_sel) + self.app.defaults['global_proj_item_dis_color'] = new_val_sel + + +class GeneralAPPSetGroupUI(OptionsGroupUI): def __init__(self, decimals=4, parent=None): - super(GeneralGUISetGroupUI, self).__init__(self) + super(GeneralAPPSetGroupUI, self).__init__(self) - self.setTitle(str(_("GUI Settings"))) + self.setTitle(str(_("App Settings"))) self.decimals = decimals theme_settings = QtCore.QSettings("Open Source", "FlatCAM") @@ -941,65 +1163,15 @@ class GeneralGUISetGroupUI(OptionsGroupUI): grid0.addWidget(self.textbox_font_size_label, 13, 0) grid0.addWidget(self.textbox_font_size_spinner, 13, 1) - # ----------------------------------------------------------- - # ----------- APPLICATION STARTUP SETTINGS ------------------ - # ----------------------------------------------------------- - separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) grid0.addWidget(separator_line, 14, 0, 1, 2) - self.startup_label = QtWidgets.QLabel('%s' % _('Startup Settings')) - grid0.addWidget(self.startup_label, 15, 0, 1, 2) - - # Splash Screen - self.splash_cb = FCCheckBox('%s' % _('Splash Screen')) - self.splash_cb.setToolTip( - _("Enable display of the splash screen at application startup.") - ) - - settings = QSettings("Open Source", "FlatCAM") - if settings.value("splash_screen"): - self.splash_cb.set_value(True) - else: - self.splash_cb.set_value(False) - - grid0.addWidget(self.splash_cb, 16, 0, 1, 2) - - # Sys Tray Icon - self.systray_cb = FCCheckBox('%s' % _('Sys Tray Icon')) - self.systray_cb.setToolTip( - _("Enable display of FlatCAM icon in Sys Tray.") - ) - grid0.addWidget(self.systray_cb, 17, 0, 1, 2) - - # Shell StartUp CB - self.shell_startup_cb = FCCheckBox(label='%s' % _('Show Shell')) - self.shell_startup_cb.setToolTip( - _("Check this box if you want the shell to\n" - "start automatically at startup.") - ) - - grid0.addWidget(self.shell_startup_cb, 18, 0, 1, 2) - - # Project at StartUp CB - self.project_startup_cb = FCCheckBox(label='%s' % _('Show Project')) - self.project_startup_cb.setToolTip( - _("Check this box if you want the project/selected/tool tab area to\n" - "to be shown automatically at startup.") - ) - grid0.addWidget(self.project_startup_cb, 19, 0, 1, 2) - # ----------------------------------------------------------- # -------------- MOUSE SETTINGS ----------------------------- # ----------------------------------------------------------- - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 20, 0, 1, 2) - self.mouse_lbl = QtWidgets.QLabel('%s' % _('Mouse Settings')) grid0.addWidget(self.mouse_lbl, 21, 0, 1, 2) @@ -1115,6 +1287,17 @@ class GeneralGUISetGroupUI(OptionsGroupUI): ) grid0.addWidget(self.delete_conf_cb, 30, 0, 1, 2) + # Open behavior + self.open_style_cb = FCCheckBox('%s' % _('"Open" behavior')) + self.open_style_cb.setToolTip( + _("When checked the path for the last saved file is used when saving files,\n" + "and the path for the last opened file is used when opening files.\n\n" + "When unchecked the path for opening files is the one used last: either the\n" + "path for saving files or the path for opening files.") + ) + + grid0.addWidget(self.open_style_cb, 31, 0, 1, 2) + # Enable/Disable ToolTips globally self.toggle_tooltips_cb = FCCheckBox(label='Enable ToolTips') self.toggle_tooltips_cb.setToolTip( @@ -1122,7 +1305,31 @@ class GeneralGUISetGroupUI(OptionsGroupUI): "when hovering with mouse over items throughout the App.") ) - grid0.addWidget(self.toggle_tooltips_cb, 31, 0, 1, 2) + grid0.addWidget(self.toggle_tooltips_cb, 32, 0, 1, 2) + + # Machinist settings that allow unsafe settings + self.machinist_cb = FCCheckBox(_("Allow Machinist Unsafe Settings")) + self.machinist_cb.setToolTip( + _("If checked, some of the application settings will be allowed\n" + "to have values that are usually unsafe to use.\n" + "Like Z travel negative values or Z Cut positive values.\n" + "It will applied at the next application start.\n" + "<>: Don't change this unless you know what you are doing !!!") + ) + + grid0.addWidget(self.machinist_cb, 33, 0, 1, 2) + + # Bookmarks Limit in the Help Menu + self.bm_limit_spinner = FCSpinner() + self.bm_limit_label = QtWidgets.QLabel('%s:' % _('Bookmarks limit')) + self.bm_limit_label.setToolTip( + _("The maximum number of bookmarks that may be installed in the menu.\n" + "The number of bookmarks in the bookmark manager may be greater\n" + "but the menu will hold only so much.") + ) + + grid0.addWidget(self.bm_limit_label, 34, 0) + grid0.addWidget(self.bm_limit_spinner, 34, 1) # Activity monitor icon self.activity_label = QtWidgets.QLabel('%s:' % _("Activity Icon")) @@ -1132,8 +1339,8 @@ class GeneralGUISetGroupUI(OptionsGroupUI): self.activity_combo = FCComboBox() self.activity_combo.addItems(['Ball black', 'Ball green', 'Arrow green', 'Eclipse green']) - grid0.addWidget(self.activity_label, 32, 0) - grid0.addWidget(self.activity_combo, 32, 1) + grid0.addWidget(self.activity_label, 35, 0) + grid0.addWidget(self.activity_combo, 35, 1) self.layout.addStretch() @@ -1301,38 +1508,76 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) grid0.addWidget(separator_line, 16, 0, 1, 2) - # Version Check CB - self.version_check_label = QtWidgets.QLabel('%s:' % _('Version Check')) - self.version_check_label.setToolTip( - _("Check this box if you want to check\n" - "for a new version automatically at startup.") + # ----------------------------------------------------------- + # ----------- APPLICATION STARTUP SETTINGS ------------------ + # ----------------------------------------------------------- + + self.startup_label = QtWidgets.QLabel('%s' % _('Startup Settings')) + grid0.addWidget(self.startup_label, 17, 0, 1, 2) + + # Splash Screen + self.splash_cb = FCCheckBox('%s' % _('Splash Screen')) + self.splash_cb.setToolTip( + _("Enable display of the splash screen at application startup.") ) - self.version_check_cb = FCCheckBox(label='') + + settings = QSettings("Open Source", "FlatCAM") + if settings.value("splash_screen"): + self.splash_cb.set_value(True) + else: + self.splash_cb.set_value(False) + + grid0.addWidget(self.splash_cb, 18, 0, 1, 2) + + # Sys Tray Icon + self.systray_cb = FCCheckBox('%s' % _('Sys Tray Icon')) + self.systray_cb.setToolTip( + _("Enable display of FlatCAM icon in Sys Tray.") + ) + grid0.addWidget(self.systray_cb, 19, 0, 1, 2) + + # Shell StartUp CB + self.shell_startup_cb = FCCheckBox(label='%s' % _('Show Shell')) + self.shell_startup_cb.setToolTip( + _("Check this box if you want the shell to\n" + "start automatically at startup.") + ) + + grid0.addWidget(self.shell_startup_cb, 20, 0, 1, 2) + + # Project at StartUp CB + self.project_startup_cb = FCCheckBox(label='%s' % _('Show Project')) + self.project_startup_cb.setToolTip( + _("Check this box if you want the project/selected/tool tab area to\n" + "to be shown automatically at startup.") + ) + grid0.addWidget(self.project_startup_cb, 21, 0, 1, 2) + + # Version Check CB + self.version_check_cb = FCCheckBox(label='%s' % _('Version Check')) self.version_check_cb.setToolTip( _("Check this box if you want to check\n" "for a new version automatically at startup.") ) - grid0.addWidget(self.version_check_label, 17, 0) - grid0.addWidget(self.version_check_cb, 17, 1) + grid0.addWidget(self.version_check_cb, 22, 0, 1, 2) # Send Stats CB - self.send_stats_label = QtWidgets.QLabel('%s:' % _('Send Stats')) - self.send_stats_label.setToolTip( - _("Check this box if you agree to send anonymous\n" - "stats automatically at startup, to help improve FlatCAM.") - ) - self.send_stats_cb = FCCheckBox(label='') + self.send_stats_cb = FCCheckBox(label='%s' % _('Send Statistics')) self.send_stats_cb.setToolTip( _("Check this box if you agree to send anonymous\n" "stats automatically at startup, to help improve FlatCAM.") ) - grid0.addWidget(self.send_stats_label, 18, 0) - grid0.addWidget(self.send_stats_cb, 18, 1) + grid0.addWidget(self.send_stats_cb, 23, 0, 1, 2) self.ois_version_check = OptionalInputSection(self.version_check_cb, [self.send_stats_cb]) + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + grid0.addWidget(separator_line, 24, 0, 1, 2) + # Worker Numbers self.worker_number_label = QtWidgets.QLabel('%s:' % _('Workers number')) self.worker_number_label.setToolTip( @@ -1354,8 +1599,8 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): ) self.worker_number_sb.set_range(2, 16) - grid0.addWidget(self.worker_number_label, 19, 0) - grid0.addWidget(self.worker_number_sb, 19, 1) + grid0.addWidget(self.worker_number_label, 25, 0) + grid0.addWidget(self.worker_number_sb, 25, 1) # Geometric tolerance tol_label = QtWidgets.QLabel('%s:' % _("Geo Tolerance")) @@ -1379,24 +1624,17 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): self.tol_entry.setSingleStep(0.001) self.tol_entry.set_precision(6) - grid0.addWidget(tol_label, 20, 0) - grid0.addWidget(self.tol_entry, 20, 1) + grid0.addWidget(tol_label, 26, 0) + grid0.addWidget(self.tol_entry, 26, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 21, 0, 1, 2) + grid0.addWidget(separator_line, 27, 0, 1, 2) - # Open behavior - self.open_style_cb = FCCheckBox('%s' % _('"Open" behavior')) - self.open_style_cb.setToolTip( - _("When checked the path for the last saved file is used when saving files,\n" - "and the path for the last opened file is used when opening files.\n\n" - "When unchecked the path for opening files is the one used last: either the\n" - "path for saving files or the path for opening files.") - ) - - grid0.addWidget(self.open_style_cb, 22, 0, 1, 2) + # Save Settings + self.save_label = QtWidgets.QLabel('%s' % _("Save Settings")) + grid0.addWidget(self.save_label, 28, 0, 1, 2) # Save compressed project CB self.save_type_cb = FCCheckBox(_('Save Compressed Project')) @@ -1405,7 +1643,7 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): "When checked it will save a compressed FlatCAM project.") ) - grid0.addWidget(self.save_type_cb, 23, 0, 1, 2) + grid0.addWidget(self.save_type_cb, 29, 0, 1, 2) # Project LZMA Comppression Level self.compress_spinner = FCSpinner() @@ -1417,42 +1655,16 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): "but require more RAM usage and more processing time.") ) - grid0.addWidget(self.compress_label, 24, 0) - grid0.addWidget(self.compress_spinner, 24, 1) + grid0.addWidget(self.compress_label, 30, 0) + grid0.addWidget(self.compress_spinner, 30, 1) self.proj_ois = OptionalInputSection(self.save_type_cb, [self.compress_label, self.compress_spinner], True) - # Bookmarks Limit in the Help Menu - self.bm_limit_spinner = FCSpinner() - self.bm_limit_label = QtWidgets.QLabel('%s:' % _('Bookmarks limit')) - self.bm_limit_label.setToolTip( - _("The maximum number of bookmarks that may be installed in the menu.\n" - "The number of bookmarks in the bookmark manager may be greater\n" - "but the menu will hold only so much.") - ) - - grid0.addWidget(self.bm_limit_label, 25, 0) - grid0.addWidget(self.bm_limit_spinner, 25, 1) - - # Machinist settings that allow unsafe settings - self.machinist_cb = FCCheckBox(_("Allow Machinist Unsafe Settings")) - self.machinist_cb.setToolTip( - _("If checked, some of the application settings will be allowed\n" - "to have values that are usually unsafe to use.\n" - "Like Z travel negative values or Z Cut positive values.\n" - "It will applied at the next application start.\n" - "<>: Don't change this unless you know what you are doing !!!") - ) - - grid0.addWidget(self.machinist_cb, 26, 0, 1, 2) - separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) self.layout.addWidget(separator_line) - self.layout.addWidget(QtWidgets.QLabel('')) - grid1 = QtWidgets.QGridLayout() self.layout.addLayout(grid1) grid1.setColumnStretch(0, 0) @@ -1522,6 +1734,21 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): self.portability_label.hide() self.portability_cb.hide() + # splash screen button signal + self.splash_cb.stateChanged.connect(self.on_splash_changed) + + # Monitor the checkbox from the Application Defaults Tab and show the TCL shell or not depending on it's value + self.shell_startup_cb.clicked.connect(self.app.on_toggle_shell) + + self.language_apply_btn.clicked.connect(lambda: fcTranslate.on_language_apply_click(app=self.app, restart=True)) + + def on_splash_changed(self, state): + settings = QSettings("Open Source", "FlatCAM") + settings.setValue('splash_screen', 1) if state else settings.setValue('splash_screen', 0) + + # This will write the setting to the platform specific storage. + del settings + class GerberGenPrefGroupUI(OptionsGroupUI): def __init__(self, decimals=4, parent=None): @@ -2654,8 +2881,77 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.optimization_time_entry = FCSpinner() self.optimization_time_entry.set_range(0, 999) + grid2.addWidget(self.optimization_time_entry, 6, 1) + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + grid2.addWidget(separator_line, 9, 0, 1, 2) + + # Excellon Object Color + self.gerber_color_label = QtWidgets.QLabel('%s' % _('Excellon Object Color')) + grid2.addWidget(self.gerber_color_label, 10, 0, 1, 2) + + # Plot Line Color + self.line_color_label = QtWidgets.QLabel('%s:' % _('Outline')) + self.line_color_label.setToolTip( + _("Set the line color for plotted objects.") + ) + self.line_color_entry = FCEntry() + self.line_color_button = QtWidgets.QPushButton() + self.line_color_button.setFixedSize(15, 15) + + self.form_box_child_2 = QtWidgets.QHBoxLayout() + self.form_box_child_2.addWidget(self.line_color_entry) + self.form_box_child_2.addWidget(self.line_color_button) + self.form_box_child_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + grid2.addWidget(self.line_color_label, 11, 0) + grid2.addLayout(self.form_box_child_2, 11, 1) + + # Plot Fill Color + self.fill_color_label = QtWidgets.QLabel('%s:' % _('Fill')) + self.fill_color_label.setToolTip( + _("Set the fill color for plotted objects.\n" + "First 6 digits are the color and the last 2\n" + "digits are for alpha (transparency) level.") + ) + self.fill_color_entry = FCEntry() + self.fill_color_button = QtWidgets.QPushButton() + self.fill_color_button.setFixedSize(15, 15) + + self.form_box_child_1 = QtWidgets.QHBoxLayout() + self.form_box_child_1.addWidget(self.fill_color_entry) + self.form_box_child_1.addWidget(self.fill_color_button) + self.form_box_child_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + grid2.addWidget(self.fill_color_label, 12, 0) + grid2.addLayout(self.form_box_child_1, 12, 1) + + # Plot Fill Transparency Level + self.alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) + self.alpha_label.setToolTip( + _("Set the fill transparency for plotted objects.") + ) + self.color_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) + self.color_alpha_slider.setMinimum(0) + self.color_alpha_slider.setMaximum(255) + self.color_alpha_slider.setSingleStep(1) + + self.color_alpha_spinner = FCSpinner() + self.color_alpha_spinner.setMinimumWidth(70) + self.color_alpha_spinner.set_range(0, 255) + + self.form_box_child_3 = QtWidgets.QHBoxLayout() + self.form_box_child_3.addWidget(self.color_alpha_slider) + self.form_box_child_3.addWidget(self.color_alpha_spinner) + + grid2.addWidget(self.alpha_label, 13, 0) + grid2.addLayout(self.form_box_child_3, 13, 1) + + self.layout.addStretch() + current_platform = platform.architecture()[0] if current_platform == '64bit': self.excellon_optimization_label.setDisabled(False) @@ -2670,7 +2966,13 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.optimization_time_label.setDisabled(True) self.optimization_time_entry.setDisabled(True) - self.layout.addStretch() + # Setting plot colors signals + self.line_color_entry.editingFinished.connect(self.on_line_color_entry) + self.line_color_button.clicked.connect(self.on_line_color_button) + self.fill_color_entry.editingFinished.connect(self.on_fill_color_entry) + self.fill_color_button.clicked.connect(self.on_fill_color_button) + self.color_alpha_spinner.valueChanged.connect(self.on_color_spinner) + self.color_alpha_slider.valueChanged.connect(self.on_color_slider) def optimization_selection(self): if self.excellon_optimization_radio.get_value() == 'M': @@ -2680,6 +2982,62 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.optimization_time_label.setDisabled(True) self.optimization_time_entry.setDisabled(True) + # Setting plot colors handlers + def on_fill_color_entry(self): + self.app.defaults['excellon_plot_fill'] = self.fill_color_entry.get_value()[:7] + \ + self.app.defaults['excellon_plot_fill'][7:9] + self.fill_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['excellon_plot_fill'])[:7]) + + def on_fill_color_button(self): + current_color = QtGui.QColor(self.app.defaults['excellon_plot_fill'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) + + if plot_fill_color.isValid() is False: + return + + self.fill_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['excellon_plot_fill'][7:9]) + self.fill_color_entry.set_value(new_val) + self.app.defaults['excellon_plot_fill'] = new_val + + def on_color_spinner(self): + spinner_value = self.color_alpha_spinner.value() + self.color_alpha_slider.setValue(spinner_value) + self.app.defaults['excellon_plot_fill'] = \ + self.app.defaults['excellon_plot_fill'][:7] + \ + (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + self.app.defaults['excellon_plot_line'] = \ + self.app.defaults['excellon_plot_line'][:7] + \ + (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + + def on_color_slider(self): + slider_value = self.color_alpha_slider.value() + self.color_alpha_spinner.setValue(slider_value) + + def on_line_color_entry(self): + self.app.defaults['excellon_plot_line'] = self.line_color_entry.get_value()[:7] + \ + self.app.defaults['excellon_plot_line'][7:9] + self.line_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['excellon_plot_line'])[:7]) + + def on_line_color_button(self): + current_color = QtGui.QColor(self.app.defaults['excellon_plot_line'][:7]) + # print(current_color) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.line_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['excellon_plot_line'][7:9]) + self.line_color_entry.set_value(new_val_line) + self.app.defaults['excellon_plot_line'] = new_val_line + class ExcellonOptPrefGroupUI(OptionsGroupUI): @@ -3521,8 +3879,57 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(tdlabel, 3, 0) grid0.addWidget(self.cnctooldia_entry, 3, 1) + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + grid0.addWidget(separator_line, 9, 0, 1, 2) + + # Geometry Object Color + self.gerber_color_label = QtWidgets.QLabel('%s' % _('Geometry Object Color')) + grid0.addWidget(self.gerber_color_label, 10, 0, 1, 2) + + # Plot Line Color + self.line_color_label = QtWidgets.QLabel('%s:' % _('Outline')) + self.line_color_label.setToolTip( + _("Set the line color for plotted objects.") + ) + self.line_color_entry = FCEntry() + self.line_color_button = QtWidgets.QPushButton() + self.line_color_button.setFixedSize(15, 15) + + self.form_box_child_2 = QtWidgets.QHBoxLayout() + self.form_box_child_2.addWidget(self.line_color_entry) + self.form_box_child_2.addWidget(self.line_color_button) + self.form_box_child_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + grid0.addWidget(self.line_color_label, 11, 0) + grid0.addLayout(self.form_box_child_2, 11, 1) + self.layout.addStretch() + # Setting plot colors signals + self.line_color_entry.editingFinished.connect(self.on_line_color_entry) + self.line_color_button.clicked.connect(self.on_line_color_button) + + def on_line_color_entry(self): + self.app.defaults['geometry_plot_line'] = self.line_color_entry.get_value()[:7] + 'FF' + self.line_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['geometry_plot_line'])[:7]) + + def on_line_color_button(self): + current_color = QtGui.QColor(self.app.defaults['geometry_plot_line'][:7]) + # print(current_color) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.line_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['geometry_plot_line'][7:9]) + self.line_color_entry.set_value(new_val_line) + class GeometryOptPrefGroupUI(OptionsGroupUI): def __init__(self, decimals=4, parent=None): @@ -4114,8 +4521,238 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.line_ending_cb, 9, 0, 1, 3) + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + grid0.addWidget(separator_line, 12, 0, 1, 2) + + # Travel Line Color + self.travel_color_label = QtWidgets.QLabel('%s' % _('Travel Line Color')) + grid0.addWidget(self.travel_color_label, 13, 0, 1, 2) + + # Plot Line Color + self.tline_color_label = QtWidgets.QLabel('%s:' % _('Outline')) + self.tline_color_label.setToolTip( + _("Set the travel line color for plotted objects.") + ) + self.tline_color_entry = FCEntry() + self.tline_color_button = QtWidgets.QPushButton() + self.tline_color_button.setFixedSize(15, 15) + + self.form_box_child_2 = QtWidgets.QHBoxLayout() + self.form_box_child_2.addWidget(self.tline_color_entry) + self.form_box_child_2.addWidget(self.tline_color_button) + self.form_box_child_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + grid0.addWidget(self.tline_color_label, 14, 0) + grid0.addLayout(self.form_box_child_2, 14, 1) + + # Plot Fill Color + self.tfill_color_label = QtWidgets.QLabel('%s:' % _('Fill')) + self.tfill_color_label.setToolTip( + _("Set the fill color for plotted objects.\n" + "First 6 digits are the color and the last 2\n" + "digits are for alpha (transparency) level.") + ) + self.tfill_color_entry = FCEntry() + self.tfill_color_button = QtWidgets.QPushButton() + self.tfill_color_button.setFixedSize(15, 15) + + self.form_box_child_1 = QtWidgets.QHBoxLayout() + self.form_box_child_1.addWidget(self.tfill_color_entry) + self.form_box_child_1.addWidget(self.tfill_color_button) + self.form_box_child_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + grid0.addWidget(self.tfill_color_label, 15, 0) + grid0.addLayout(self.form_box_child_1, 15, 1) + + # Plot Fill Transparency Level + self.alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) + self.alpha_label.setToolTip( + _("Set the fill transparency for plotted objects.") + ) + self.tcolor_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) + self.tcolor_alpha_slider.setMinimum(0) + self.tcolor_alpha_slider.setMaximum(255) + self.tcolor_alpha_slider.setSingleStep(1) + + self.tcolor_alpha_spinner = FCSpinner() + self.tcolor_alpha_spinner.setMinimumWidth(70) + self.tcolor_alpha_spinner.set_range(0, 255) + + self.form_box_child_3 = QtWidgets.QHBoxLayout() + self.form_box_child_3.addWidget(self.tcolor_alpha_slider) + self.form_box_child_3.addWidget(self.tcolor_alpha_spinner) + + grid0.addWidget(self.alpha_label, 16, 0) + grid0.addLayout(self.form_box_child_3, 16, 1) + + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + grid0.addWidget(separator_line, 17, 0, 1, 2) + + # CNCJob Object Color + self.cnc_color_label = QtWidgets.QLabel('%s' % _('CNCJob Object Color')) + grid0.addWidget(self.cnc_color_label, 18, 0, 1, 2) + + # Plot Line Color + self.line_color_label = QtWidgets.QLabel('%s:' % _('Outline')) + self.line_color_label.setToolTip( + _("Set the travel line color for plotted objects.") + ) + self.line_color_entry = FCEntry() + self.line_color_button = QtWidgets.QPushButton() + self.line_color_button.setFixedSize(15, 15) + + self.form_box_child_2 = QtWidgets.QHBoxLayout() + self.form_box_child_2.addWidget(self.line_color_entry) + self.form_box_child_2.addWidget(self.line_color_button) + self.form_box_child_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + grid0.addWidget(self.line_color_label, 19, 0) + grid0.addLayout(self.form_box_child_2, 19, 1) + + # Plot Fill Color + self.fill_color_label = QtWidgets.QLabel('%s:' % _('Fill')) + self.fill_color_label.setToolTip( + _("Set the fill color for plotted objects.\n" + "First 6 digits are the color and the last 2\n" + "digits are for alpha (transparency) level.") + ) + self.fill_color_entry = FCEntry() + self.fill_color_button = QtWidgets.QPushButton() + self.fill_color_button.setFixedSize(15, 15) + + self.form_box_child_1 = QtWidgets.QHBoxLayout() + self.form_box_child_1.addWidget(self.fill_color_entry) + self.form_box_child_1.addWidget(self.fill_color_button) + self.form_box_child_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + grid0.addWidget(self.fill_color_label, 20, 0) + grid0.addLayout(self.form_box_child_1, 20, 1) + self.layout.addStretch() + # Setting plot colors signals + self.tline_color_entry.editingFinished.connect(self.on_tline_color_entry) + self.tline_color_button.clicked.connect(self.on_tline_color_button) + self.tfill_color_entry.editingFinished.connect(self.on_tfill_color_entry) + self.tfill_color_button.clicked.connect(self.on_tfill_color_button) + self.tcolor_alpha_spinner.valueChanged.connect(self.on_tcolor_spinner) + self.tcolor_alpha_slider.valueChanged.connect(self.on_tcolor_slider) + + self.line_color_entry.editingFinished.connect(self.on_line_color_entry) + self.line_color_button.clicked.connect(self.on_line_color_button) + self.fill_color_entry.editingFinished.connect(self.on_fill_color_entry) + self.fill_color_button.clicked.connect(self.on_fill_color_button) + + # ------------------------------------------------------ + # Setting travel colors handlers + # ------------------------------------------------------ + def on_tfill_color_entry(self): + self.app.defaults['cncjob_travel_fill'] = self.tfill_color_entry.get_value()[:7] + \ + self.app.defaults['cncjob_travel_fill'][7:9] + self.tfill_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_travel_fill'])[:7]) + + def on_tfill_color_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_travel_fill'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) + + if plot_fill_color.isValid() is False: + return + + self.tfill_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['cncjob_travel_fill'][7:9]) + self.tfill_color_entry.set_value(new_val) + self.app.defaults['cncjob_travel_fill'] = new_val + + def on_tcolor_spinner(self): + spinner_value = self.tcolor_alpha_spinner.value() + self.tcolor_alpha_slider.setValue(spinner_value) + self.app.defaults['cncjob_travel_fill'] = \ + self.app.defaults['cncjob_travel_fill'][:7] + \ + (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + self.app.defaults['cncjob_travel_line'] = \ + self.app.defaults['cncjob_travel_line'][:7] + \ + (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + + def on_tcolor_slider(self): + slider_value = self.tcolor_alpha_slider.value() + self.tcolor_alpha_spinner.setValue(slider_value) + + def on_tline_color_entry(self): + self.app.defaults['cncjob_travel_line'] = self.tline_color_entry.get_value()[:7] + \ + self.app.defaults['cncjob_travel_line'][7:9] + self.tline_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_travel_line'])[:7]) + + def on_tline_color_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_travel_line'][:7]) + # print(current_color) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.tline_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['cncjob_travel_line'][7:9]) + self.tline_color_entry.set_value(new_val_line) + self.app.defaults['cncjob_travel_line'] = new_val_line + + # ------------------------------------------------------ + # Setting plot colors handlers + # ------------------------------------------------------ + def on_fill_color_entry(self): + self.app.defaults['cncjob_plot_fill'] = self.fill_color_entry.get_value()[:7] + \ + self.app.defaults['cncjob_plot_fill'][7:9] + self.fill_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_plot_fill'])[:7]) + + def on_fill_color_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_plot_fill'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) + + if plot_fill_color.isValid() is False: + return + + self.fill_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['cncjob_plot_fill'][7:9]) + self.fill_color_entry.set_value(new_val) + self.app.defaults['cncjob_plot_fill'] = new_val + + def on_line_color_entry(self): + self.app.defaults['cncjob_plot_line'] = self.line_color_entry.get_value()[:7] + \ + self.app.defaults['cncjob_plot_line'][7:9] + self.line_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_plot_line'])[:7]) + + def on_line_color_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_plot_line'][:7]) + # print(current_color) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.line_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['cncjob_plot_line'][7:9]) + self.line_color_entry.set_value(new_val_line) + self.app.defaults['cncjob_plot_line'] = new_val_line + class CNCJobOptPrefGroupUI(OptionsGroupUI): def __init__(self, decimals=4, parent=None): @@ -4330,6 +4967,37 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): self.layout.addStretch() + self.tc_variable_combo.currentIndexChanged[str].connect(self.on_cnc_custom_parameters) + + self.annotation_fontcolor_entry.editingFinished.connect(self.on_annotation_fontcolor_entry) + self.annotation_fontcolor_button.clicked.connect(self.on_annotation_fontcolor_button) + + def on_cnc_custom_parameters(self, signal_text): + if signal_text == 'Parameters': + return + else: + self.toolchange_text.insertPlainText('%%%s%%' % signal_text) + + def on_annotation_fontcolor_entry(self): + self.app.defaults['cncjob_annotation_fontcolor'] = self.annotation_fontcolor_entry.get_value() + self.annotation_fontcolor_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_annotation_fontcolor'])) + + def on_annotation_fontcolor_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_annotation_fontcolor']) + + c_dialog = QtWidgets.QColorDialog() + annotation_color = c_dialog.getColor(initial=current_color) + + if annotation_color.isValid() is False: + return + + self.annotation_fontcolor_button.setStyleSheet("background-color:%s" % str(annotation_color.name())) + + new_val_sel = str(annotation_color.name()) + self.annotation_fontcolor_entry.set_value(new_val_sel) + self.app.defaults['cncjob_annotation_fontcolor'] = new_val_sel + class ToolsNCCPrefGroupUI(OptionsGroupUI): def __init__(self, decimals=4, parent=None): diff --git a/share/dark_resources/about32.png b/share/dark_resources/about32.png new file mode 100644 index 00000000..91c2caf1 Binary files /dev/null and b/share/dark_resources/about32.png differ diff --git a/share/dark_resources/active.gif b/share/dark_resources/active.gif new file mode 100644 index 00000000..b2db1071 Binary files /dev/null and b/share/dark_resources/active.gif differ diff --git a/share/dark_resources/active_2.gif b/share/dark_resources/active_2.gif new file mode 100644 index 00000000..b9b7f7ba Binary files /dev/null and b/share/dark_resources/active_2.gif differ diff --git a/share/dark_resources/active_2_static.png b/share/dark_resources/active_2_static.png new file mode 100644 index 00000000..86783b03 Binary files /dev/null and b/share/dark_resources/active_2_static.png differ diff --git a/share/dark_resources/active_3.gif b/share/dark_resources/active_3.gif new file mode 100644 index 00000000..e8e440a9 Binary files /dev/null and b/share/dark_resources/active_3.gif differ diff --git a/share/dark_resources/active_3_static.png b/share/dark_resources/active_3_static.png new file mode 100644 index 00000000..dfa05202 Binary files /dev/null and b/share/dark_resources/active_3_static.png differ diff --git a/share/dark_resources/active_4.gif b/share/dark_resources/active_4.gif new file mode 100644 index 00000000..98a32918 Binary files /dev/null and b/share/dark_resources/active_4.gif differ diff --git a/share/dark_resources/active_4_static.png b/share/dark_resources/active_4_static.png new file mode 100644 index 00000000..364901ca Binary files /dev/null and b/share/dark_resources/active_4_static.png differ diff --git a/share/dark_resources/active_static.png b/share/dark_resources/active_static.png new file mode 100644 index 00000000..6c98a7ec Binary files /dev/null and b/share/dark_resources/active_static.png differ diff --git a/share/dark_resources/addarray16.png b/share/dark_resources/addarray16.png new file mode 100644 index 00000000..8b26c310 Binary files /dev/null and b/share/dark_resources/addarray16.png differ diff --git a/share/dark_resources/addarray20.png b/share/dark_resources/addarray20.png new file mode 100644 index 00000000..f5892d5c Binary files /dev/null and b/share/dark_resources/addarray20.png differ diff --git a/share/dark_resources/addarray32.png b/share/dark_resources/addarray32.png new file mode 100644 index 00000000..7e855a71 Binary files /dev/null and b/share/dark_resources/addarray32.png differ diff --git a/share/dark_resources/aero.png b/share/dark_resources/aero.png new file mode 100644 index 00000000..4b17865e Binary files /dev/null and b/share/dark_resources/aero.png differ diff --git a/share/dark_resources/aero_arc.png b/share/dark_resources/aero_arc.png new file mode 100644 index 00000000..729f6523 Binary files /dev/null and b/share/dark_resources/aero_arc.png differ diff --git a/share/dark_resources/aero_array.png b/share/dark_resources/aero_array.png new file mode 100644 index 00000000..b8efdcb2 Binary files /dev/null and b/share/dark_resources/aero_array.png differ diff --git a/share/dark_resources/aero_buffer.png b/share/dark_resources/aero_buffer.png new file mode 100644 index 00000000..41f26dd7 Binary files /dev/null and b/share/dark_resources/aero_buffer.png differ diff --git a/share/dark_resources/aero_circle.png b/share/dark_resources/aero_circle.png new file mode 100644 index 00000000..63e0c9ba Binary files /dev/null and b/share/dark_resources/aero_circle.png differ diff --git a/share/dark_resources/aero_circle_geo.png b/share/dark_resources/aero_circle_geo.png new file mode 100644 index 00000000..e8fe8029 Binary files /dev/null and b/share/dark_resources/aero_circle_geo.png differ diff --git a/share/dark_resources/aero_disc.png b/share/dark_resources/aero_disc.png new file mode 100644 index 00000000..59f32773 Binary files /dev/null and b/share/dark_resources/aero_disc.png differ diff --git a/share/dark_resources/aero_drill.png b/share/dark_resources/aero_drill.png new file mode 100644 index 00000000..0f166d95 Binary files /dev/null and b/share/dark_resources/aero_drill.png differ diff --git a/share/dark_resources/aero_drill_array.png b/share/dark_resources/aero_drill_array.png new file mode 100644 index 00000000..0cd39bc3 Binary files /dev/null and b/share/dark_resources/aero_drill_array.png differ diff --git a/share/dark_resources/aero_path1.png b/share/dark_resources/aero_path1.png new file mode 100644 index 00000000..e3b24dfd Binary files /dev/null and b/share/dark_resources/aero_path1.png differ diff --git a/share/dark_resources/aero_path2.png b/share/dark_resources/aero_path2.png new file mode 100644 index 00000000..80a83881 Binary files /dev/null and b/share/dark_resources/aero_path2.png differ diff --git a/share/dark_resources/aero_path3.png b/share/dark_resources/aero_path3.png new file mode 100644 index 00000000..4a7da0d5 Binary files /dev/null and b/share/dark_resources/aero_path3.png differ diff --git a/share/dark_resources/aero_path4.png b/share/dark_resources/aero_path4.png new file mode 100644 index 00000000..5cca6e2e Binary files /dev/null and b/share/dark_resources/aero_path4.png differ diff --git a/share/dark_resources/aero_path5.png b/share/dark_resources/aero_path5.png new file mode 100644 index 00000000..1185bbbb Binary files /dev/null and b/share/dark_resources/aero_path5.png differ diff --git a/share/dark_resources/aero_semidisc.png b/share/dark_resources/aero_semidisc.png new file mode 100644 index 00000000..498d6fee Binary files /dev/null and b/share/dark_resources/aero_semidisc.png differ diff --git a/share/dark_resources/aero_slot.png b/share/dark_resources/aero_slot.png new file mode 100644 index 00000000..19fc6f42 Binary files /dev/null and b/share/dark_resources/aero_slot.png differ diff --git a/share/dark_resources/aero_text.png b/share/dark_resources/aero_text.png new file mode 100644 index 00000000..62862d14 Binary files /dev/null and b/share/dark_resources/aero_text.png differ diff --git a/share/dark_resources/align_center32.png b/share/dark_resources/align_center32.png new file mode 100644 index 00000000..3abaae9c Binary files /dev/null and b/share/dark_resources/align_center32.png differ diff --git a/share/dark_resources/align_justify32.png b/share/dark_resources/align_justify32.png new file mode 100644 index 00000000..a2e329a3 Binary files /dev/null and b/share/dark_resources/align_justify32.png differ diff --git a/share/dark_resources/align_left32.png b/share/dark_resources/align_left32.png new file mode 100644 index 00000000..14aafdf8 Binary files /dev/null and b/share/dark_resources/align_left32.png differ diff --git a/share/dark_resources/align_right32.png b/share/dark_resources/align_right32.png new file mode 100644 index 00000000..3044f6ac Binary files /dev/null and b/share/dark_resources/align_right32.png differ diff --git a/share/dark_resources/aperture16.png b/share/dark_resources/aperture16.png new file mode 100644 index 00000000..f836c9b0 Binary files /dev/null and b/share/dark_resources/aperture16.png differ diff --git a/share/dark_resources/aperture32.png b/share/dark_resources/aperture32.png new file mode 100644 index 00000000..c155cf1a Binary files /dev/null and b/share/dark_resources/aperture32.png differ diff --git a/share/dark_resources/arc16.png b/share/dark_resources/arc16.png new file mode 100644 index 00000000..658b41f6 Binary files /dev/null and b/share/dark_resources/arc16.png differ diff --git a/share/dark_resources/arc24.png b/share/dark_resources/arc24.png new file mode 100644 index 00000000..a6e15d91 Binary files /dev/null and b/share/dark_resources/arc24.png differ diff --git a/share/dark_resources/arc32.png b/share/dark_resources/arc32.png new file mode 100644 index 00000000..391325ed Binary files /dev/null and b/share/dark_resources/arc32.png differ diff --git a/share/dark_resources/axis32.png b/share/dark_resources/axis32.png new file mode 100644 index 00000000..2d4259eb Binary files /dev/null and b/share/dark_resources/axis32.png differ diff --git a/share/dark_resources/backup24.png b/share/dark_resources/backup24.png new file mode 100644 index 00000000..6ed19d28 Binary files /dev/null and b/share/dark_resources/backup24.png differ diff --git a/share/dark_resources/backup_export24.png b/share/dark_resources/backup_export24.png new file mode 100644 index 00000000..5e12a21c Binary files /dev/null and b/share/dark_resources/backup_export24.png differ diff --git a/share/dark_resources/backup_import24.png b/share/dark_resources/backup_import24.png new file mode 100644 index 00000000..9c510a76 Binary files /dev/null and b/share/dark_resources/backup_import24.png differ diff --git a/share/dark_resources/blocked16.png b/share/dark_resources/blocked16.png new file mode 100644 index 00000000..79e31c3f Binary files /dev/null and b/share/dark_resources/blocked16.png differ diff --git a/share/dark_resources/blue32.png b/share/dark_resources/blue32.png new file mode 100644 index 00000000..ec85382b Binary files /dev/null and b/share/dark_resources/blue32.png differ diff --git a/share/dark_resources/bluelight12.png b/share/dark_resources/bluelight12.png new file mode 100644 index 00000000..41142a5c Binary files /dev/null and b/share/dark_resources/bluelight12.png differ diff --git a/share/dark_resources/bold32.png b/share/dark_resources/bold32.png new file mode 100644 index 00000000..46a46d9a Binary files /dev/null and b/share/dark_resources/bold32.png differ diff --git a/share/dark_resources/bookmarks16.png b/share/dark_resources/bookmarks16.png new file mode 100644 index 00000000..63304362 Binary files /dev/null and b/share/dark_resources/bookmarks16.png differ diff --git a/share/dark_resources/bookmarks32.png b/share/dark_resources/bookmarks32.png new file mode 100644 index 00000000..5bf9f698 Binary files /dev/null and b/share/dark_resources/bookmarks32.png differ diff --git a/share/dark_resources/brown32.png b/share/dark_resources/brown32.png new file mode 100644 index 00000000..3e2c6245 Binary files /dev/null and b/share/dark_resources/brown32.png differ diff --git a/share/dark_resources/buffer16-2.png b/share/dark_resources/buffer16-2.png new file mode 100644 index 00000000..7ac3b940 Binary files /dev/null and b/share/dark_resources/buffer16-2.png differ diff --git a/share/dark_resources/buffer16.png b/share/dark_resources/buffer16.png new file mode 100644 index 00000000..1e215e85 Binary files /dev/null and b/share/dark_resources/buffer16.png differ diff --git a/share/dark_resources/buffer20.png b/share/dark_resources/buffer20.png new file mode 100644 index 00000000..27208f5c Binary files /dev/null and b/share/dark_resources/buffer20.png differ diff --git a/share/dark_resources/buffer24.png b/share/dark_resources/buffer24.png new file mode 100644 index 00000000..1f71ecb2 Binary files /dev/null and b/share/dark_resources/buffer24.png differ diff --git a/share/dark_resources/bug16.png b/share/dark_resources/bug16.png new file mode 100644 index 00000000..3fb1429a Binary files /dev/null and b/share/dark_resources/bug16.png differ diff --git a/share/dark_resources/bug32.png b/share/dark_resources/bug32.png new file mode 100644 index 00000000..166aeca0 Binary files /dev/null and b/share/dark_resources/bug32.png differ diff --git a/share/dark_resources/calculator16.png b/share/dark_resources/calculator16.png new file mode 100644 index 00000000..2ed0b8ce Binary files /dev/null and b/share/dark_resources/calculator16.png differ diff --git a/share/dark_resources/calculator24.png b/share/dark_resources/calculator24.png new file mode 100644 index 00000000..b539177d Binary files /dev/null and b/share/dark_resources/calculator24.png differ diff --git a/share/dark_resources/calibrate_16.png b/share/dark_resources/calibrate_16.png new file mode 100644 index 00000000..a05ce1d3 Binary files /dev/null and b/share/dark_resources/calibrate_16.png differ diff --git a/share/dark_resources/calibrate_32.png b/share/dark_resources/calibrate_32.png new file mode 100644 index 00000000..182e8a99 Binary files /dev/null and b/share/dark_resources/calibrate_32.png differ diff --git a/share/dark_resources/cancel_edit16.png b/share/dark_resources/cancel_edit16.png new file mode 100644 index 00000000..6e20773f Binary files /dev/null and b/share/dark_resources/cancel_edit16.png differ diff --git a/share/dark_resources/cancel_edit32.png b/share/dark_resources/cancel_edit32.png new file mode 100644 index 00000000..64a2a7eb Binary files /dev/null and b/share/dark_resources/cancel_edit32.png differ diff --git a/share/dark_resources/circle32.png b/share/dark_resources/circle32.png new file mode 100644 index 00000000..e0cb877d Binary files /dev/null and b/share/dark_resources/circle32.png differ diff --git a/share/dark_resources/clear_plot16.png b/share/dark_resources/clear_plot16.png new file mode 100644 index 00000000..9c5332e8 Binary files /dev/null and b/share/dark_resources/clear_plot16.png differ diff --git a/share/dark_resources/clear_plot32.png b/share/dark_resources/clear_plot32.png new file mode 100644 index 00000000..10274a2f Binary files /dev/null and b/share/dark_resources/clear_plot32.png differ diff --git a/share/dark_resources/close_edit_file16.png b/share/dark_resources/close_edit_file16.png new file mode 100644 index 00000000..9ace7014 Binary files /dev/null and b/share/dark_resources/close_edit_file16.png differ diff --git a/share/dark_resources/close_edit_file32.png b/share/dark_resources/close_edit_file32.png new file mode 100644 index 00000000..1b3f4777 Binary files /dev/null and b/share/dark_resources/close_edit_file32.png differ diff --git a/share/dark_resources/cnc16.png b/share/dark_resources/cnc16.png new file mode 100644 index 00000000..3e4f1583 Binary files /dev/null and b/share/dark_resources/cnc16.png differ diff --git a/share/dark_resources/cnc32.png b/share/dark_resources/cnc32.png new file mode 100644 index 00000000..c8028727 Binary files /dev/null and b/share/dark_resources/cnc32.png differ diff --git a/share/dark_resources/code.png b/share/dark_resources/code.png new file mode 100644 index 00000000..0d75a631 Binary files /dev/null and b/share/dark_resources/code.png differ diff --git a/share/dark_resources/code_editor32.png b/share/dark_resources/code_editor32.png new file mode 100644 index 00000000..9a301ee5 Binary files /dev/null and b/share/dark_resources/code_editor32.png differ diff --git a/share/dark_resources/convert24.png b/share/dark_resources/convert24.png new file mode 100644 index 00000000..ccfb3255 Binary files /dev/null and b/share/dark_resources/convert24.png differ diff --git a/share/dark_resources/copperfill16.png b/share/dark_resources/copperfill16.png new file mode 100644 index 00000000..15fec13e Binary files /dev/null and b/share/dark_resources/copperfill16.png differ diff --git a/share/dark_resources/copperfill32.png b/share/dark_resources/copperfill32.png new file mode 100644 index 00000000..3df2a768 Binary files /dev/null and b/share/dark_resources/copperfill32.png differ diff --git a/share/dark_resources/copy.png b/share/dark_resources/copy.png new file mode 100644 index 00000000..70f8aff3 Binary files /dev/null and b/share/dark_resources/copy.png differ diff --git a/share/dark_resources/copy16.png b/share/dark_resources/copy16.png new file mode 100644 index 00000000..fec837b7 Binary files /dev/null and b/share/dark_resources/copy16.png differ diff --git a/share/dark_resources/copy32.png b/share/dark_resources/copy32.png new file mode 100644 index 00000000..ec949509 Binary files /dev/null and b/share/dark_resources/copy32.png differ diff --git a/share/dark_resources/copy_16.png b/share/dark_resources/copy_16.png new file mode 100644 index 00000000..fec837b7 Binary files /dev/null and b/share/dark_resources/copy_16.png differ diff --git a/share/dark_resources/copy_file16.png b/share/dark_resources/copy_file16.png new file mode 100644 index 00000000..e2440052 Binary files /dev/null and b/share/dark_resources/copy_file16.png differ diff --git a/share/dark_resources/copy_file32.png b/share/dark_resources/copy_file32.png new file mode 100644 index 00000000..480325ad Binary files /dev/null and b/share/dark_resources/copy_file32.png differ diff --git a/share/dark_resources/copy_geo.png b/share/dark_resources/copy_geo.png new file mode 100644 index 00000000..994999ee Binary files /dev/null and b/share/dark_resources/copy_geo.png differ diff --git a/share/dark_resources/corner32.png b/share/dark_resources/corner32.png new file mode 100644 index 00000000..a8998182 Binary files /dev/null and b/share/dark_resources/corner32.png differ diff --git a/share/dark_resources/cut16.png b/share/dark_resources/cut16.png new file mode 100644 index 00000000..a33fe87f Binary files /dev/null and b/share/dark_resources/cut16.png differ diff --git a/share/dark_resources/cut16_bis.png b/share/dark_resources/cut16_bis.png new file mode 100644 index 00000000..28066699 Binary files /dev/null and b/share/dark_resources/cut16_bis.png differ diff --git a/share/dark_resources/cut32.png b/share/dark_resources/cut32.png new file mode 100644 index 00000000..fa1ce92a Binary files /dev/null and b/share/dark_resources/cut32.png differ diff --git a/share/dark_resources/cut32_bis.png b/share/dark_resources/cut32_bis.png new file mode 100644 index 00000000..b669d007 Binary files /dev/null and b/share/dark_resources/cut32_bis.png differ diff --git a/share/dark_resources/cutpath16.png b/share/dark_resources/cutpath16.png new file mode 100644 index 00000000..9c92c0a2 Binary files /dev/null and b/share/dark_resources/cutpath16.png differ diff --git a/share/dark_resources/cutpath24.png b/share/dark_resources/cutpath24.png new file mode 100644 index 00000000..68d283de Binary files /dev/null and b/share/dark_resources/cutpath24.png differ diff --git a/share/dark_resources/cutpath32.png b/share/dark_resources/cutpath32.png new file mode 100644 index 00000000..e0d7a6fb Binary files /dev/null and b/share/dark_resources/cutpath32.png differ diff --git a/share/dark_resources/database32.png b/share/dark_resources/database32.png new file mode 100644 index 00000000..131dc8ac Binary files /dev/null and b/share/dark_resources/database32.png differ diff --git a/share/dark_resources/defaults.png b/share/dark_resources/defaults.png new file mode 100644 index 00000000..a4402b82 Binary files /dev/null and b/share/dark_resources/defaults.png differ diff --git a/share/dark_resources/delete32.png b/share/dark_resources/delete32.png new file mode 100644 index 00000000..76ab5ce9 Binary files /dev/null and b/share/dark_resources/delete32.png differ diff --git a/share/dark_resources/delete_file16.png b/share/dark_resources/delete_file16.png new file mode 100644 index 00000000..b2391fbd Binary files /dev/null and b/share/dark_resources/delete_file16.png differ diff --git a/share/dark_resources/delete_file32.png b/share/dark_resources/delete_file32.png new file mode 100644 index 00000000..9eeaa32d Binary files /dev/null and b/share/dark_resources/delete_file32.png differ diff --git a/share/dark_resources/deleteshape16.png b/share/dark_resources/deleteshape16.png new file mode 100644 index 00000000..03f99dd9 Binary files /dev/null and b/share/dark_resources/deleteshape16.png differ diff --git a/share/dark_resources/deleteshape24.png b/share/dark_resources/deleteshape24.png new file mode 100644 index 00000000..b0c1afcd Binary files /dev/null and b/share/dark_resources/deleteshape24.png differ diff --git a/share/dark_resources/deleteshape32.png b/share/dark_resources/deleteshape32.png new file mode 100644 index 00000000..c06640a5 Binary files /dev/null and b/share/dark_resources/deleteshape32.png differ diff --git a/share/dark_resources/deselect_all32.png b/share/dark_resources/deselect_all32.png new file mode 100644 index 00000000..9071fac1 Binary files /dev/null and b/share/dark_resources/deselect_all32.png differ diff --git a/share/dark_resources/disable16.png b/share/dark_resources/disable16.png new file mode 100644 index 00000000..fe65737a Binary files /dev/null and b/share/dark_resources/disable16.png differ diff --git a/share/dark_resources/disable32.png b/share/dark_resources/disable32.png new file mode 100644 index 00000000..762a9270 Binary files /dev/null and b/share/dark_resources/disable32.png differ diff --git a/share/dark_resources/disc32.png b/share/dark_resources/disc32.png new file mode 100644 index 00000000..bdbbaa8e Binary files /dev/null and b/share/dark_resources/disc32.png differ diff --git a/share/dark_resources/distance16.png b/share/dark_resources/distance16.png new file mode 100644 index 00000000..8355b17b Binary files /dev/null and b/share/dark_resources/distance16.png differ diff --git a/share/dark_resources/distance32.png b/share/dark_resources/distance32.png new file mode 100644 index 00000000..f61d0900 Binary files /dev/null and b/share/dark_resources/distance32.png differ diff --git a/share/dark_resources/distance_min16.png b/share/dark_resources/distance_min16.png new file mode 100644 index 00000000..8e1c8520 Binary files /dev/null and b/share/dark_resources/distance_min16.png differ diff --git a/share/dark_resources/distance_min32.png b/share/dark_resources/distance_min32.png new file mode 100644 index 00000000..cfc8c020 Binary files /dev/null and b/share/dark_resources/distance_min32.png differ diff --git a/share/dark_resources/doubleside16.png b/share/dark_resources/doubleside16.png new file mode 100644 index 00000000..92e873fc Binary files /dev/null and b/share/dark_resources/doubleside16.png differ diff --git a/share/dark_resources/doubleside32.png b/share/dark_resources/doubleside32.png new file mode 100644 index 00000000..a159a4c5 Binary files /dev/null and b/share/dark_resources/doubleside32.png differ diff --git a/share/dark_resources/draw32.png b/share/dark_resources/draw32.png new file mode 100644 index 00000000..58f7edb2 Binary files /dev/null and b/share/dark_resources/draw32.png differ diff --git a/share/dark_resources/drill16.png b/share/dark_resources/drill16.png new file mode 100644 index 00000000..496fa44e Binary files /dev/null and b/share/dark_resources/drill16.png differ diff --git a/share/dark_resources/drill32.png b/share/dark_resources/drill32.png new file mode 100644 index 00000000..6b0696b3 Binary files /dev/null and b/share/dark_resources/drill32.png differ diff --git a/share/dark_resources/dxf16.png b/share/dark_resources/dxf16.png new file mode 100644 index 00000000..97f3c3f2 Binary files /dev/null and b/share/dark_resources/dxf16.png differ diff --git a/share/dark_resources/edit16.png b/share/dark_resources/edit16.png new file mode 100644 index 00000000..a8e5661b Binary files /dev/null and b/share/dark_resources/edit16.png differ diff --git a/share/dark_resources/edit32.png b/share/dark_resources/edit32.png new file mode 100644 index 00000000..18bdd611 Binary files /dev/null and b/share/dark_resources/edit32.png differ diff --git a/share/dark_resources/edit_file16.png b/share/dark_resources/edit_file16.png new file mode 100644 index 00000000..6b58fa5e Binary files /dev/null and b/share/dark_resources/edit_file16.png differ diff --git a/share/dark_resources/edit_file32.png b/share/dark_resources/edit_file32.png new file mode 100644 index 00000000..8a78241b Binary files /dev/null and b/share/dark_resources/edit_file32.png differ diff --git a/share/dark_resources/edit_ok16.png b/share/dark_resources/edit_ok16.png new file mode 100644 index 00000000..5af14cf2 Binary files /dev/null and b/share/dark_resources/edit_ok16.png differ diff --git a/share/dark_resources/edit_ok32.png b/share/dark_resources/edit_ok32.png new file mode 100644 index 00000000..710ccd5f Binary files /dev/null and b/share/dark_resources/edit_ok32.png differ diff --git a/share/dark_resources/edit_ok32_bis.png b/share/dark_resources/edit_ok32_bis.png new file mode 100644 index 00000000..5a554def Binary files /dev/null and b/share/dark_resources/edit_ok32_bis.png differ diff --git a/share/dark_resources/eraser26.png b/share/dark_resources/eraser26.png new file mode 100644 index 00000000..561a3605 Binary files /dev/null and b/share/dark_resources/eraser26.png differ diff --git a/share/dark_resources/explode32.png b/share/dark_resources/explode32.png new file mode 100644 index 00000000..d1753113 Binary files /dev/null and b/share/dark_resources/explode32.png differ diff --git a/share/dark_resources/export.png b/share/dark_resources/export.png new file mode 100644 index 00000000..c1034ac7 Binary files /dev/null and b/share/dark_resources/export.png differ diff --git a/share/dark_resources/export_png32.png b/share/dark_resources/export_png32.png new file mode 100644 index 00000000..9bff090f Binary files /dev/null and b/share/dark_resources/export_png32.png differ diff --git a/share/dark_resources/fiducials_32.png b/share/dark_resources/fiducials_32.png new file mode 100644 index 00000000..8df8779c Binary files /dev/null and b/share/dark_resources/fiducials_32.png differ diff --git a/share/dark_resources/file16.png b/share/dark_resources/file16.png new file mode 100644 index 00000000..4f219db2 Binary files /dev/null and b/share/dark_resources/file16.png differ diff --git a/share/dark_resources/file32.png b/share/dark_resources/file32.png new file mode 100644 index 00000000..2ea2f86b Binary files /dev/null and b/share/dark_resources/file32.png differ diff --git a/share/dark_resources/film16.png b/share/dark_resources/film16.png new file mode 100644 index 00000000..d54ad486 Binary files /dev/null and b/share/dark_resources/film16.png differ diff --git a/share/dark_resources/film32.png b/share/dark_resources/film32.png new file mode 100644 index 00000000..8b5bf323 Binary files /dev/null and b/share/dark_resources/film32.png differ diff --git a/share/dark_resources/flatcam_icon128.png b/share/dark_resources/flatcam_icon128.png new file mode 100644 index 00000000..20e3d97a Binary files /dev/null and b/share/dark_resources/flatcam_icon128.png differ diff --git a/share/dark_resources/flatcam_icon16.ico b/share/dark_resources/flatcam_icon16.ico new file mode 100644 index 00000000..3c109e37 Binary files /dev/null and b/share/dark_resources/flatcam_icon16.ico differ diff --git a/share/dark_resources/flatcam_icon16.png b/share/dark_resources/flatcam_icon16.png new file mode 100644 index 00000000..0bcc34ab Binary files /dev/null and b/share/dark_resources/flatcam_icon16.png differ diff --git a/share/dark_resources/flatcam_icon24.png b/share/dark_resources/flatcam_icon24.png new file mode 100644 index 00000000..8125531e Binary files /dev/null and b/share/dark_resources/flatcam_icon24.png differ diff --git a/share/dark_resources/flatcam_icon256.ico b/share/dark_resources/flatcam_icon256.ico new file mode 100644 index 00000000..b9a6b7bf Binary files /dev/null and b/share/dark_resources/flatcam_icon256.ico differ diff --git a/share/dark_resources/flatcam_icon256.png b/share/dark_resources/flatcam_icon256.png new file mode 100644 index 00000000..77d3840f Binary files /dev/null and b/share/dark_resources/flatcam_icon256.png differ diff --git a/share/dark_resources/flatcam_icon32.ico b/share/dark_resources/flatcam_icon32.ico new file mode 100644 index 00000000..b8509b32 Binary files /dev/null and b/share/dark_resources/flatcam_icon32.ico differ diff --git a/share/dark_resources/flatcam_icon32.png b/share/dark_resources/flatcam_icon32.png new file mode 100644 index 00000000..13e40335 Binary files /dev/null and b/share/dark_resources/flatcam_icon32.png differ diff --git a/share/dark_resources/flatcam_icon32_green.png b/share/dark_resources/flatcam_icon32_green.png new file mode 100644 index 00000000..e100c6aa Binary files /dev/null and b/share/dark_resources/flatcam_icon32_green.png differ diff --git a/share/dark_resources/flatcam_icon48.ico b/share/dark_resources/flatcam_icon48.ico new file mode 100644 index 00000000..84c1c5e3 Binary files /dev/null and b/share/dark_resources/flatcam_icon48.ico differ diff --git a/share/dark_resources/flatcam_icon48.png b/share/dark_resources/flatcam_icon48.png new file mode 100644 index 00000000..2f86c7b2 Binary files /dev/null and b/share/dark_resources/flatcam_icon48.png differ diff --git a/share/dark_resources/flipx.png b/share/dark_resources/flipx.png new file mode 100644 index 00000000..b86b99c2 Binary files /dev/null and b/share/dark_resources/flipx.png differ diff --git a/share/dark_resources/flipy.png b/share/dark_resources/flipy.png new file mode 100644 index 00000000..a4a0392b Binary files /dev/null and b/share/dark_resources/flipy.png differ diff --git a/share/dark_resources/floppy16.png b/share/dark_resources/floppy16.png new file mode 100644 index 00000000..c3beb9c7 Binary files /dev/null and b/share/dark_resources/floppy16.png differ diff --git a/share/dark_resources/floppy32.png b/share/dark_resources/floppy32.png new file mode 100644 index 00000000..0c1e4852 Binary files /dev/null and b/share/dark_resources/floppy32.png differ diff --git a/share/dark_resources/folder16.png b/share/dark_resources/folder16.png new file mode 100644 index 00000000..3da9da26 Binary files /dev/null and b/share/dark_resources/folder16.png differ diff --git a/share/dark_resources/folder32.png b/share/dark_resources/folder32.png new file mode 100644 index 00000000..10eb3f36 Binary files /dev/null and b/share/dark_resources/folder32.png differ diff --git a/share/dark_resources/folder32_Excellon.png b/share/dark_resources/folder32_Excellon.png new file mode 100644 index 00000000..3467b86d Binary files /dev/null and b/share/dark_resources/folder32_Excellon.png differ diff --git a/share/dark_resources/folder32_bis.png b/share/dark_resources/folder32_bis.png new file mode 100644 index 00000000..ce7b5720 Binary files /dev/null and b/share/dark_resources/folder32_bis.png differ diff --git a/share/dark_resources/folder32_gerber.png b/share/dark_resources/folder32_gerber.png new file mode 100644 index 00000000..a3a0763b Binary files /dev/null and b/share/dark_resources/folder32_gerber.png differ diff --git a/share/dark_resources/fscreen32.png b/share/dark_resources/fscreen32.png new file mode 100644 index 00000000..a7738ada Binary files /dev/null and b/share/dark_resources/fscreen32.png differ diff --git a/share/dark_resources/gear32.png b/share/dark_resources/gear32.png new file mode 100644 index 00000000..0977265b Binary files /dev/null and b/share/dark_resources/gear32.png differ diff --git a/share/dark_resources/gear48.png b/share/dark_resources/gear48.png new file mode 100644 index 00000000..9f6ab714 Binary files /dev/null and b/share/dark_resources/gear48.png differ diff --git a/share/dark_resources/geometry16.png b/share/dark_resources/geometry16.png new file mode 100644 index 00000000..5c275bfb Binary files /dev/null and b/share/dark_resources/geometry16.png differ diff --git a/share/dark_resources/globe16.png b/share/dark_resources/globe16.png new file mode 100644 index 00000000..e403b62b Binary files /dev/null and b/share/dark_resources/globe16.png differ diff --git a/share/dark_resources/goemetry32.png b/share/dark_resources/goemetry32.png new file mode 100644 index 00000000..a1f4fc68 Binary files /dev/null and b/share/dark_resources/goemetry32.png differ diff --git a/share/dark_resources/graylight12.png b/share/dark_resources/graylight12.png new file mode 100644 index 00000000..0e7251db Binary files /dev/null and b/share/dark_resources/graylight12.png differ diff --git a/share/dark_resources/green32.png b/share/dark_resources/green32.png new file mode 100644 index 00000000..d9b31db3 Binary files /dev/null and b/share/dark_resources/green32.png differ diff --git a/share/dark_resources/greenlight12.png b/share/dark_resources/greenlight12.png new file mode 100644 index 00000000..a90860e5 Binary files /dev/null and b/share/dark_resources/greenlight12.png differ diff --git a/share/dark_resources/grid16.png b/share/dark_resources/grid16.png new file mode 100644 index 00000000..0b4be5f5 Binary files /dev/null and b/share/dark_resources/grid16.png differ diff --git a/share/dark_resources/grid32.png b/share/dark_resources/grid32.png new file mode 100644 index 00000000..d7ac5083 Binary files /dev/null and b/share/dark_resources/grid32.png differ diff --git a/share/dark_resources/grid32_menu.png b/share/dark_resources/grid32_menu.png new file mode 100644 index 00000000..ae0952f5 Binary files /dev/null and b/share/dark_resources/grid32_menu.png differ diff --git a/share/dark_resources/help.png b/share/dark_resources/help.png new file mode 100644 index 00000000..0bf6b9be Binary files /dev/null and b/share/dark_resources/help.png differ diff --git a/share/dark_resources/home16.png b/share/dark_resources/home16.png new file mode 100644 index 00000000..ac795df4 Binary files /dev/null and b/share/dark_resources/home16.png differ diff --git a/share/dark_resources/image16.png b/share/dark_resources/image16.png new file mode 100644 index 00000000..dd546bed Binary files /dev/null and b/share/dark_resources/image16.png differ diff --git a/share/dark_resources/image32.png b/share/dark_resources/image32.png new file mode 100644 index 00000000..3503791a Binary files /dev/null and b/share/dark_resources/image32.png differ diff --git a/share/dark_resources/import.png b/share/dark_resources/import.png new file mode 100644 index 00000000..f42002d7 Binary files /dev/null and b/share/dark_resources/import.png differ diff --git a/share/dark_resources/info16.png b/share/dark_resources/info16.png new file mode 100644 index 00000000..11847e5b Binary files /dev/null and b/share/dark_resources/info16.png differ diff --git a/share/dark_resources/intersection16.png b/share/dark_resources/intersection16.png new file mode 100644 index 00000000..f05e252f Binary files /dev/null and b/share/dark_resources/intersection16.png differ diff --git a/share/dark_resources/intersection24.png b/share/dark_resources/intersection24.png new file mode 100644 index 00000000..d89dd33d Binary files /dev/null and b/share/dark_resources/intersection24.png differ diff --git a/share/dark_resources/intersection32.png b/share/dark_resources/intersection32.png new file mode 100644 index 00000000..4ac94675 Binary files /dev/null and b/share/dark_resources/intersection32.png differ diff --git a/share/dark_resources/italic32.png b/share/dark_resources/italic32.png new file mode 100644 index 00000000..85a77e27 Binary files /dev/null and b/share/dark_resources/italic32.png differ diff --git a/share/dark_resources/join16.png b/share/dark_resources/join16.png new file mode 100644 index 00000000..720e86e4 Binary files /dev/null and b/share/dark_resources/join16.png differ diff --git a/share/dark_resources/join32.png b/share/dark_resources/join32.png new file mode 100644 index 00000000..266b104a Binary files /dev/null and b/share/dark_resources/join32.png differ diff --git a/share/dark_resources/jump_to16.png b/share/dark_resources/jump_to16.png new file mode 100644 index 00000000..e0417351 Binary files /dev/null and b/share/dark_resources/jump_to16.png differ diff --git a/share/dark_resources/jump_to32.png b/share/dark_resources/jump_to32.png new file mode 100644 index 00000000..bbef66ad Binary files /dev/null and b/share/dark_resources/jump_to32.png differ diff --git a/share/dark_resources/language32.png b/share/dark_resources/language32.png new file mode 100644 index 00000000..2a6af89c Binary files /dev/null and b/share/dark_resources/language32.png differ diff --git a/share/dark_resources/letter_t_32.png b/share/dark_resources/letter_t_32.png new file mode 100644 index 00000000..0f673c48 Binary files /dev/null and b/share/dark_resources/letter_t_32.png differ diff --git a/share/dark_resources/link16.png b/share/dark_resources/link16.png new file mode 100644 index 00000000..5c9c0046 Binary files /dev/null and b/share/dark_resources/link16.png differ diff --git a/share/dark_resources/machine16.png b/share/dark_resources/machine16.png new file mode 100644 index 00000000..40397a7c Binary files /dev/null and b/share/dark_resources/machine16.png differ diff --git a/share/dark_resources/makearea32.png b/share/dark_resources/makearea32.png new file mode 100644 index 00000000..0a7dcade Binary files /dev/null and b/share/dark_resources/makearea32.png differ diff --git a/share/dark_resources/move16.png b/share/dark_resources/move16.png new file mode 100644 index 00000000..cbe0bbc7 Binary files /dev/null and b/share/dark_resources/move16.png differ diff --git a/share/dark_resources/move32.png b/share/dark_resources/move32.png new file mode 100644 index 00000000..60f1063c Binary files /dev/null and b/share/dark_resources/move32.png differ diff --git a/share/dark_resources/move32_bis.png b/share/dark_resources/move32_bis.png new file mode 100644 index 00000000..f464fa53 Binary files /dev/null and b/share/dark_resources/move32_bis.png differ diff --git a/share/dark_resources/ncc16.png b/share/dark_resources/ncc16.png new file mode 100644 index 00000000..d17e27b2 Binary files /dev/null and b/share/dark_resources/ncc16.png differ diff --git a/share/dark_resources/new_exc32.png b/share/dark_resources/new_exc32.png new file mode 100644 index 00000000..2410ecc3 Binary files /dev/null and b/share/dark_resources/new_exc32.png differ diff --git a/share/dark_resources/new_file16.png b/share/dark_resources/new_file16.png new file mode 100644 index 00000000..cc054b8e Binary files /dev/null and b/share/dark_resources/new_file16.png differ diff --git a/share/dark_resources/new_file32.png b/share/dark_resources/new_file32.png new file mode 100644 index 00000000..5e403c24 Binary files /dev/null and b/share/dark_resources/new_file32.png differ diff --git a/share/dark_resources/new_file_exc16.png b/share/dark_resources/new_file_exc16.png new file mode 100644 index 00000000..4053f6dd Binary files /dev/null and b/share/dark_resources/new_file_exc16.png differ diff --git a/share/dark_resources/new_file_exc32.png b/share/dark_resources/new_file_exc32.png new file mode 100644 index 00000000..4252d051 Binary files /dev/null and b/share/dark_resources/new_file_exc32.png differ diff --git a/share/dark_resources/new_file_geo16.png b/share/dark_resources/new_file_geo16.png new file mode 100644 index 00000000..da9bcbed Binary files /dev/null and b/share/dark_resources/new_file_geo16.png differ diff --git a/share/dark_resources/new_file_geo32.png b/share/dark_resources/new_file_geo32.png new file mode 100644 index 00000000..5d96f0c5 Binary files /dev/null and b/share/dark_resources/new_file_geo32.png differ diff --git a/share/dark_resources/new_file_grb16.png b/share/dark_resources/new_file_grb16.png new file mode 100644 index 00000000..49840289 Binary files /dev/null and b/share/dark_resources/new_file_grb16.png differ diff --git a/share/dark_resources/new_file_grb32.png b/share/dark_resources/new_file_grb32.png new file mode 100644 index 00000000..a47b28a2 Binary files /dev/null and b/share/dark_resources/new_file_grb32.png differ diff --git a/share/dark_resources/new_geo16.png b/share/dark_resources/new_geo16.png new file mode 100644 index 00000000..286910c6 Binary files /dev/null and b/share/dark_resources/new_geo16.png differ diff --git a/share/dark_resources/new_geo32.png b/share/dark_resources/new_geo32.png new file mode 100644 index 00000000..8030150c Binary files /dev/null and b/share/dark_resources/new_geo32.png differ diff --git a/share/dark_resources/new_geo32_bis.png b/share/dark_resources/new_geo32_bis.png new file mode 100644 index 00000000..d21d8495 Binary files /dev/null and b/share/dark_resources/new_geo32_bis.png differ diff --git a/share/dark_resources/notebook16.png b/share/dark_resources/notebook16.png new file mode 100644 index 00000000..91dad310 Binary files /dev/null and b/share/dark_resources/notebook16.png differ diff --git a/share/dark_resources/notebook32.png b/share/dark_resources/notebook32.png new file mode 100644 index 00000000..4f8ad4bb Binary files /dev/null and b/share/dark_resources/notebook32.png differ diff --git a/share/dark_resources/notes16.png b/share/dark_resources/notes16.png new file mode 100644 index 00000000..ac73e890 Binary files /dev/null and b/share/dark_resources/notes16.png differ diff --git a/share/dark_resources/notes16_1.png b/share/dark_resources/notes16_1.png new file mode 100644 index 00000000..bc9a6e02 Binary files /dev/null and b/share/dark_resources/notes16_1.png differ diff --git a/share/dark_resources/offset32.png b/share/dark_resources/offset32.png new file mode 100644 index 00000000..b32b117c Binary files /dev/null and b/share/dark_resources/offset32.png differ diff --git a/share/dark_resources/offsetx32.png b/share/dark_resources/offsetx32.png new file mode 100644 index 00000000..b32b117c Binary files /dev/null and b/share/dark_resources/offsetx32.png differ diff --git a/share/dark_resources/offsety32.png b/share/dark_resources/offsety32.png new file mode 100644 index 00000000..9174daad Binary files /dev/null and b/share/dark_resources/offsety32.png differ diff --git a/share/dark_resources/open_excellon32.png b/share/dark_resources/open_excellon32.png new file mode 100644 index 00000000..4f71b3a7 Binary files /dev/null and b/share/dark_resources/open_excellon32.png differ diff --git a/share/dark_resources/open_script32.png b/share/dark_resources/open_script32.png new file mode 100644 index 00000000..f8b02677 Binary files /dev/null and b/share/dark_resources/open_script32.png differ diff --git a/share/dark_resources/origin.png b/share/dark_resources/origin.png new file mode 100644 index 00000000..b8b4e317 Binary files /dev/null and b/share/dark_resources/origin.png differ diff --git a/share/dark_resources/origin16.png b/share/dark_resources/origin16.png new file mode 100644 index 00000000..02dc6937 Binary files /dev/null and b/share/dark_resources/origin16.png differ diff --git a/share/dark_resources/origin32.png b/share/dark_resources/origin32.png new file mode 100644 index 00000000..423af08d Binary files /dev/null and b/share/dark_resources/origin32.png differ diff --git a/share/dark_resources/padarray32.png b/share/dark_resources/padarray32.png new file mode 100644 index 00000000..6a2078bd Binary files /dev/null and b/share/dark_resources/padarray32.png differ diff --git a/share/dark_resources/paint16.png b/share/dark_resources/paint16.png new file mode 100644 index 00000000..038ca1f1 Binary files /dev/null and b/share/dark_resources/paint16.png differ diff --git a/share/dark_resources/paint20.png b/share/dark_resources/paint20.png new file mode 100644 index 00000000..4f6ee1f9 Binary files /dev/null and b/share/dark_resources/paint20.png differ diff --git a/share/dark_resources/paint20_1.png b/share/dark_resources/paint20_1.png new file mode 100644 index 00000000..25046740 Binary files /dev/null and b/share/dark_resources/paint20_1.png differ diff --git a/share/dark_resources/panel16.png b/share/dark_resources/panel16.png new file mode 100644 index 00000000..60878d09 Binary files /dev/null and b/share/dark_resources/panel16.png differ diff --git a/share/dark_resources/panel32.png b/share/dark_resources/panel32.png new file mode 100644 index 00000000..4f0aadff Binary files /dev/null and b/share/dark_resources/panel32.png differ diff --git a/share/dark_resources/panelize16.png b/share/dark_resources/panelize16.png new file mode 100644 index 00000000..fdd3a40e Binary files /dev/null and b/share/dark_resources/panelize16.png differ diff --git a/share/dark_resources/panelize32.png b/share/dark_resources/panelize32.png new file mode 100644 index 00000000..c9ce43a6 Binary files /dev/null and b/share/dark_resources/panelize32.png differ diff --git a/share/dark_resources/path32.png b/share/dark_resources/path32.png new file mode 100644 index 00000000..a83693df Binary files /dev/null and b/share/dark_resources/path32.png differ diff --git a/share/dark_resources/pdf32.png b/share/dark_resources/pdf32.png new file mode 100644 index 00000000..2f2b4f45 Binary files /dev/null and b/share/dark_resources/pdf32.png differ diff --git a/share/dark_resources/pdf_link16.png b/share/dark_resources/pdf_link16.png new file mode 100644 index 00000000..acec32fc Binary files /dev/null and b/share/dark_resources/pdf_link16.png differ diff --git a/share/dark_resources/plot32.png b/share/dark_resources/plot32.png new file mode 100644 index 00000000..4e61b5af Binary files /dev/null and b/share/dark_resources/plot32.png differ diff --git a/share/dark_resources/plus16.png b/share/dark_resources/plus16.png new file mode 100644 index 00000000..bc2b71e1 Binary files /dev/null and b/share/dark_resources/plus16.png differ diff --git a/share/dark_resources/plus32.png b/share/dark_resources/plus32.png new file mode 100644 index 00000000..ff0f9472 Binary files /dev/null and b/share/dark_resources/plus32.png differ diff --git a/share/dark_resources/pointer.png b/share/dark_resources/pointer.png new file mode 100644 index 00000000..c1f410e4 Binary files /dev/null and b/share/dark_resources/pointer.png differ diff --git a/share/dark_resources/pointer32.png b/share/dark_resources/pointer32.png new file mode 100644 index 00000000..99e0ce51 Binary files /dev/null and b/share/dark_resources/pointer32.png differ diff --git a/share/dark_resources/poligonize32.png b/share/dark_resources/poligonize32.png new file mode 100644 index 00000000..2f454536 Binary files /dev/null and b/share/dark_resources/poligonize32.png differ diff --git a/share/dark_resources/polygon32.png b/share/dark_resources/polygon32.png new file mode 100644 index 00000000..afa05504 Binary files /dev/null and b/share/dark_resources/polygon32.png differ diff --git a/share/dark_resources/power16.png b/share/dark_resources/power16.png new file mode 100644 index 00000000..04cc2c6b Binary files /dev/null and b/share/dark_resources/power16.png differ diff --git a/share/dark_resources/pref.png b/share/dark_resources/pref.png new file mode 100644 index 00000000..3bd655ed Binary files /dev/null and b/share/dark_resources/pref.png differ diff --git a/share/dark_resources/printer16.png b/share/dark_resources/printer16.png new file mode 100644 index 00000000..1b98d2fb Binary files /dev/null and b/share/dark_resources/printer16.png differ diff --git a/share/dark_resources/printer32.png b/share/dark_resources/printer32.png new file mode 100644 index 00000000..9d952ff3 Binary files /dev/null and b/share/dark_resources/printer32.png differ diff --git a/share/dark_resources/project16.png b/share/dark_resources/project16.png new file mode 100644 index 00000000..5290735a Binary files /dev/null and b/share/dark_resources/project16.png differ diff --git a/share/dark_resources/project_save16.png b/share/dark_resources/project_save16.png new file mode 100644 index 00000000..1690afac Binary files /dev/null and b/share/dark_resources/project_save16.png differ diff --git a/share/dark_resources/project_save32.png b/share/dark_resources/project_save32.png new file mode 100644 index 00000000..f6369880 Binary files /dev/null and b/share/dark_resources/project_save32.png differ diff --git a/share/dark_resources/properties32.png b/share/dark_resources/properties32.png new file mode 100644 index 00000000..362759aa Binary files /dev/null and b/share/dark_resources/properties32.png differ diff --git a/share/dark_resources/qrcode32.png b/share/dark_resources/qrcode32.png new file mode 100644 index 00000000..80c1c65c Binary files /dev/null and b/share/dark_resources/qrcode32.png differ diff --git a/share/dark_resources/recent_files.png b/share/dark_resources/recent_files.png new file mode 100644 index 00000000..15ac385d Binary files /dev/null and b/share/dark_resources/recent_files.png differ diff --git a/share/dark_resources/rectangle32.png b/share/dark_resources/rectangle32.png new file mode 100644 index 00000000..a95ba1ec Binary files /dev/null and b/share/dark_resources/rectangle32.png differ diff --git a/share/dark_resources/recycle16.png b/share/dark_resources/recycle16.png new file mode 100644 index 00000000..cc32de8e Binary files /dev/null and b/share/dark_resources/recycle16.png differ diff --git a/share/dark_resources/red32.png b/share/dark_resources/red32.png new file mode 100644 index 00000000..6216f450 Binary files /dev/null and b/share/dark_resources/red32.png differ diff --git a/share/dark_resources/redlight12.png b/share/dark_resources/redlight12.png new file mode 100644 index 00000000..01166dec Binary files /dev/null and b/share/dark_resources/redlight12.png differ diff --git a/share/dark_resources/replot16.png b/share/dark_resources/replot16.png new file mode 100644 index 00000000..c48abc04 Binary files /dev/null and b/share/dark_resources/replot16.png differ diff --git a/share/dark_resources/replot32.png b/share/dark_resources/replot32.png new file mode 100644 index 00000000..7d4f47dd Binary files /dev/null and b/share/dark_resources/replot32.png differ diff --git a/share/dark_resources/resize16.png b/share/dark_resources/resize16.png new file mode 100644 index 00000000..2694b84a Binary files /dev/null and b/share/dark_resources/resize16.png differ diff --git a/share/dark_resources/rotate.png b/share/dark_resources/rotate.png new file mode 100644 index 00000000..21efb72a Binary files /dev/null and b/share/dark_resources/rotate.png differ diff --git a/share/dark_resources/rules32.png b/share/dark_resources/rules32.png new file mode 100644 index 00000000..6df220b7 Binary files /dev/null and b/share/dark_resources/rules32.png differ diff --git a/share/dark_resources/save_as.png b/share/dark_resources/save_as.png new file mode 100644 index 00000000..10a63091 Binary files /dev/null and b/share/dark_resources/save_as.png differ diff --git a/share/dark_resources/scale32.png b/share/dark_resources/scale32.png new file mode 100644 index 00000000..c959b49c Binary files /dev/null and b/share/dark_resources/scale32.png differ diff --git a/share/dark_resources/script14.png b/share/dark_resources/script14.png new file mode 100644 index 00000000..b35fc125 Binary files /dev/null and b/share/dark_resources/script14.png differ diff --git a/share/dark_resources/script16.png b/share/dark_resources/script16.png new file mode 100644 index 00000000..e4e5c545 Binary files /dev/null and b/share/dark_resources/script16.png differ diff --git a/share/dark_resources/script_new16.png b/share/dark_resources/script_new16.png new file mode 100644 index 00000000..3b583fba Binary files /dev/null and b/share/dark_resources/script_new16.png differ diff --git a/share/dark_resources/script_new24.png b/share/dark_resources/script_new24.png new file mode 100644 index 00000000..f8e14ad8 Binary files /dev/null and b/share/dark_resources/script_new24.png differ diff --git a/share/dark_resources/script_open16.png b/share/dark_resources/script_open16.png new file mode 100644 index 00000000..190cd041 Binary files /dev/null and b/share/dark_resources/script_open16.png differ diff --git a/share/dark_resources/script_open18.png b/share/dark_resources/script_open18.png new file mode 100644 index 00000000..6df220b7 Binary files /dev/null and b/share/dark_resources/script_open18.png differ diff --git a/share/dark_resources/script_open24.png b/share/dark_resources/script_open24.png new file mode 100644 index 00000000..28c5b15e Binary files /dev/null and b/share/dark_resources/script_open24.png differ diff --git a/share/dark_resources/select_all.png b/share/dark_resources/select_all.png new file mode 100644 index 00000000..efa8eb31 Binary files /dev/null and b/share/dark_resources/select_all.png differ diff --git a/share/dark_resources/semidisc32.png b/share/dark_resources/semidisc32.png new file mode 100644 index 00000000..8bce9b13 Binary files /dev/null and b/share/dark_resources/semidisc32.png differ diff --git a/share/dark_resources/set_color16.png b/share/dark_resources/set_color16.png new file mode 100644 index 00000000..a68dde64 Binary files /dev/null and b/share/dark_resources/set_color16.png differ diff --git a/share/dark_resources/set_color32.png b/share/dark_resources/set_color32.png new file mode 100644 index 00000000..a3578a0b Binary files /dev/null and b/share/dark_resources/set_color32.png differ diff --git a/share/dark_resources/shell16.png b/share/dark_resources/shell16.png new file mode 100644 index 00000000..37201d70 Binary files /dev/null and b/share/dark_resources/shell16.png differ diff --git a/share/dark_resources/shell32.png b/share/dark_resources/shell32.png new file mode 100644 index 00000000..c930c890 Binary files /dev/null and b/share/dark_resources/shell32.png differ diff --git a/share/dark_resources/shortcuts24.png b/share/dark_resources/shortcuts24.png new file mode 100644 index 00000000..56b5217f Binary files /dev/null and b/share/dark_resources/shortcuts24.png differ diff --git a/share/dark_resources/skewX.png b/share/dark_resources/skewX.png new file mode 100644 index 00000000..7d9571f0 Binary files /dev/null and b/share/dark_resources/skewX.png differ diff --git a/share/dark_resources/skewY.png b/share/dark_resources/skewY.png new file mode 100644 index 00000000..7f02f9be Binary files /dev/null and b/share/dark_resources/skewY.png differ diff --git a/share/dark_resources/slot26.png b/share/dark_resources/slot26.png new file mode 100644 index 00000000..58168047 Binary files /dev/null and b/share/dark_resources/slot26.png differ diff --git a/share/dark_resources/slot_array26.png b/share/dark_resources/slot_array26.png new file mode 100644 index 00000000..6bef0951 Binary files /dev/null and b/share/dark_resources/slot_array26.png differ diff --git a/share/dark_resources/snap_16.png b/share/dark_resources/snap_16.png new file mode 100644 index 00000000..25bf01dd Binary files /dev/null and b/share/dark_resources/snap_16.png differ diff --git a/share/dark_resources/snap_filled_16.png b/share/dark_resources/snap_filled_16.png new file mode 100644 index 00000000..0db6956a Binary files /dev/null and b/share/dark_resources/snap_filled_16.png differ diff --git a/share/dark_resources/solderpaste32.png b/share/dark_resources/solderpaste32.png new file mode 100644 index 00000000..c93c0711 Binary files /dev/null and b/share/dark_resources/solderpaste32.png differ diff --git a/share/dark_resources/solderpastebis32.png b/share/dark_resources/solderpastebis32.png new file mode 100644 index 00000000..8e1ea130 Binary files /dev/null and b/share/dark_resources/solderpastebis32.png differ diff --git a/share/dark_resources/source32.png b/share/dark_resources/source32.png new file mode 100644 index 00000000..b04fab9b Binary files /dev/null and b/share/dark_resources/source32.png differ diff --git a/share/dark_resources/splash.png b/share/dark_resources/splash.png new file mode 100644 index 00000000..8acb82bd Binary files /dev/null and b/share/dark_resources/splash.png differ diff --git a/share/dark_resources/sub32.png b/share/dark_resources/sub32.png new file mode 100644 index 00000000..73540a29 Binary files /dev/null and b/share/dark_resources/sub32.png differ diff --git a/share/dark_resources/subtract16.png b/share/dark_resources/subtract16.png new file mode 100644 index 00000000..8fd86055 Binary files /dev/null and b/share/dark_resources/subtract16.png differ diff --git a/share/dark_resources/subtract24.png b/share/dark_resources/subtract24.png new file mode 100644 index 00000000..09ab3aa4 Binary files /dev/null and b/share/dark_resources/subtract24.png differ diff --git a/share/dark_resources/subtract32.png b/share/dark_resources/subtract32.png new file mode 100644 index 00000000..b460e0d2 Binary files /dev/null and b/share/dark_resources/subtract32.png differ diff --git a/share/dark_resources/svg16.png b/share/dark_resources/svg16.png new file mode 100644 index 00000000..05962ac8 Binary files /dev/null and b/share/dark_resources/svg16.png differ diff --git a/share/dark_resources/svg32.png b/share/dark_resources/svg32.png new file mode 100644 index 00000000..3e9e6d21 Binary files /dev/null and b/share/dark_resources/svg32.png differ diff --git a/share/dark_resources/text32.png b/share/dark_resources/text32.png new file mode 100644 index 00000000..7cc4998f Binary files /dev/null and b/share/dark_resources/text32.png differ diff --git a/share/dark_resources/toggle_units16.png b/share/dark_resources/toggle_units16.png new file mode 100644 index 00000000..2da61f42 Binary files /dev/null and b/share/dark_resources/toggle_units16.png differ diff --git a/share/dark_resources/toggle_units32.png b/share/dark_resources/toggle_units32.png new file mode 100644 index 00000000..dddacdf5 Binary files /dev/null and b/share/dark_resources/toggle_units32.png differ diff --git a/share/dark_resources/track32.png b/share/dark_resources/track32.png new file mode 100644 index 00000000..d9ae2ebe Binary files /dev/null and b/share/dark_resources/track32.png differ diff --git a/share/dark_resources/transform.png b/share/dark_resources/transform.png new file mode 100644 index 00000000..b8950bf1 Binary files /dev/null and b/share/dark_resources/transform.png differ diff --git a/share/dark_resources/trash16.png b/share/dark_resources/trash16.png new file mode 100644 index 00000000..137f8392 Binary files /dev/null and b/share/dark_resources/trash16.png differ diff --git a/share/dark_resources/trash32.png b/share/dark_resources/trash32.png new file mode 100644 index 00000000..b9a4f14b Binary files /dev/null and b/share/dark_resources/trash32.png differ diff --git a/share/dark_resources/tv16.png b/share/dark_resources/tv16.png new file mode 100644 index 00000000..d21417f7 Binary files /dev/null and b/share/dark_resources/tv16.png differ diff --git a/share/dark_resources/underline32.png b/share/dark_resources/underline32.png new file mode 100644 index 00000000..f3ec119a Binary files /dev/null and b/share/dark_resources/underline32.png differ diff --git a/share/dark_resources/union16.png b/share/dark_resources/union16.png new file mode 100644 index 00000000..d1766607 Binary files /dev/null and b/share/dark_resources/union16.png differ diff --git a/share/dark_resources/union32.png b/share/dark_resources/union32.png new file mode 100644 index 00000000..07d4bd69 Binary files /dev/null and b/share/dark_resources/union32.png differ diff --git a/share/dark_resources/videohelp24.png b/share/dark_resources/videohelp24.png new file mode 100644 index 00000000..6676a417 Binary files /dev/null and b/share/dark_resources/videohelp24.png differ diff --git a/share/dark_resources/view64.png b/share/dark_resources/view64.png new file mode 100644 index 00000000..63d2cbca Binary files /dev/null and b/share/dark_resources/view64.png differ diff --git a/share/dark_resources/violet32.png b/share/dark_resources/violet32.png new file mode 100644 index 00000000..862622a7 Binary files /dev/null and b/share/dark_resources/violet32.png differ diff --git a/share/dark_resources/warning.png b/share/dark_resources/warning.png new file mode 100644 index 00000000..b14b8458 Binary files /dev/null and b/share/dark_resources/warning.png differ diff --git a/share/dark_resources/workspace24.png b/share/dark_resources/workspace24.png new file mode 100644 index 00000000..4ca990e7 Binary files /dev/null and b/share/dark_resources/workspace24.png differ diff --git a/share/dark_resources/yellow32.png b/share/dark_resources/yellow32.png new file mode 100644 index 00000000..5a2c7a9d Binary files /dev/null and b/share/dark_resources/yellow32.png differ diff --git a/share/dark_resources/yellowlight12.png b/share/dark_resources/yellowlight12.png new file mode 100644 index 00000000..328da65e Binary files /dev/null and b/share/dark_resources/yellowlight12.png differ diff --git a/share/dark_resources/youtube32.png b/share/dark_resources/youtube32.png new file mode 100644 index 00000000..bf8c753b Binary files /dev/null and b/share/dark_resources/youtube32.png differ diff --git a/share/dark_resources/zoom_fit32.png b/share/dark_resources/zoom_fit32.png new file mode 100644 index 00000000..6145c1b2 Binary files /dev/null and b/share/dark_resources/zoom_fit32.png differ diff --git a/share/dark_resources/zoom_in32.png b/share/dark_resources/zoom_in32.png new file mode 100644 index 00000000..6d5cc2e2 Binary files /dev/null and b/share/dark_resources/zoom_in32.png differ diff --git a/share/dark_resources/zoom_out32.png b/share/dark_resources/zoom_out32.png new file mode 100644 index 00000000..38c13e2b Binary files /dev/null and b/share/dark_resources/zoom_out32.png differ