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