From c4151631eca882bab69693ad7ac66ff2e61a81b4 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 31 Mar 2022 11:28:35 +0300 Subject: [PATCH] - changed the app main icons, hopefully they are more visible on black backgrounds than the ones that FlatCAM has --- CHANGELOG.md | 4 + appEditors/AppExcEditor.py | 2 +- appEditors/AppGeoEditor.py | 2 +- appEditors/AppGerberEditor.py | 2 +- appEditors/AppTextEditor.py | 2 +- appEditors/appGCodeEditor.py | 2 +- appGUI/MainGUI.py | 26 +- appGUI/ObjectUI.py | 2 +- appGUI/preferences/PreferencesUIManager.py | 4 +- appMain.py | 31 +- appPlugins/ToolShell.py | 6 +- appTranslation.py | 6 +- assets/resources/app.svg | 337 ++++++++++++++ assets/resources/app128.png | Bin 0 -> 5793 bytes assets/resources/app16.png | Bin 0 -> 746 bytes assets/resources/app24.png | Bin 0 -> 1040 bytes assets/resources/app256.png | Bin 0 -> 11890 bytes assets/resources/app32.png | Bin 0 -> 1516 bytes assets/resources/app48.png | Bin 0 -> 2138 bytes assets/resources/app64.png | Bin 0 -> 2989 bytes assets/resources/app_small.svg | 427 ++++++++++++++++++ assets/resources/dark_resources/app128.png | Bin 0 -> 5793 bytes assets/resources/dark_resources/app16.png | Bin 0 -> 746 bytes assets/resources/dark_resources/app24.png | Bin 0 -> 1040 bytes assets/resources/dark_resources/app256.png | Bin 0 -> 11890 bytes assets/resources/dark_resources/app32.png | Bin 0 -> 1516 bytes assets/resources/dark_resources/app48.png | Bin 0 -> 2138 bytes assets/resources/dark_resources/app64.png | Bin 0 -> 2989 bytes .../dark_resources/flatcam_icon32_green.png | Bin 553 -> 0 bytes assets/resources/flatcam_icon32_green.png | Bin 994 -> 0 bytes 30 files changed, 811 insertions(+), 42 deletions(-) create mode 100644 assets/resources/app.svg create mode 100644 assets/resources/app128.png create mode 100644 assets/resources/app16.png create mode 100644 assets/resources/app24.png create mode 100644 assets/resources/app256.png create mode 100644 assets/resources/app32.png create mode 100644 assets/resources/app48.png create mode 100644 assets/resources/app64.png create mode 100644 assets/resources/app_small.svg create mode 100644 assets/resources/dark_resources/app128.png create mode 100644 assets/resources/dark_resources/app16.png create mode 100644 assets/resources/dark_resources/app24.png create mode 100644 assets/resources/dark_resources/app256.png create mode 100644 assets/resources/dark_resources/app32.png create mode 100644 assets/resources/dark_resources/app48.png create mode 100644 assets/resources/dark_resources/app64.png delete mode 100644 assets/resources/dark_resources/flatcam_icon32_green.png delete mode 100644 assets/resources/flatcam_icon32_green.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 917e7c66..05f21103 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ CHANGELOG for FlatCAM Evo beta ================================================= +31.03.2022 + +- changed the app main icons, hopefully they are more visible on black backgrounds than the ones that FlatCAM has + 30.03.2022 - a minor fix in the Plotcanvas() class diff --git a/appEditors/AppExcEditor.py b/appEditors/AppExcEditor.py index 8d174faf..c10a2f8e 100644 --- a/appEditors/AppExcEditor.py +++ b/appEditors/AppExcEditor.py @@ -4011,7 +4011,7 @@ class AppExcEditorUI: self.ui_vertical_lay.addLayout(self.title_box) # Page Title - pixmap = QtGui.QPixmap(self.app.resource_location + '/flatcam_icon32.png') + pixmap = QtGui.QPixmap(self.app.resource_location + '/app32.png') self.icon = FCLabel() self.icon.setPixmap(pixmap) diff --git a/appEditors/AppGeoEditor.py b/appEditors/AppGeoEditor.py index 7a280fe8..4bac22b8 100644 --- a/appEditors/AppGeoEditor.py +++ b/appEditors/AppGeoEditor.py @@ -3429,7 +3429,7 @@ class AppGeoEditor(QtCore.QObject): self.tools_box.addLayout(self.title_box) # ## Page Title icon - pixmap = QtGui.QPixmap(self.app.resource_location + '/flatcam_icon32.png') + pixmap = QtGui.QPixmap(self.app.resource_location + '/app32.png') self.icon = FCLabel() self.icon.setPixmap(pixmap) self.title_box.addWidget(self.icon, stretch=0) diff --git a/appEditors/AppGerberEditor.py b/appEditors/AppGerberEditor.py index 1c050994..7b9994fc 100644 --- a/appEditors/AppGerberEditor.py +++ b/appEditors/AppGerberEditor.py @@ -6127,7 +6127,7 @@ class AppGerberEditorUI: layout.addLayout(self.title_box) # Page Title icon - pixmap = QtGui.QPixmap(self.app.resource_location + '/flatcam_icon32.png') + pixmap = QtGui.QPixmap(self.app.resource_location + '/app32.png') self.icon = FCLabel() self.icon.setPixmap(pixmap) self.title_box.addWidget(self.icon, stretch=0) diff --git a/appEditors/AppTextEditor.py b/appEditors/AppTextEditor.py index c5f1b598..f0aa2f9b 100644 --- a/appEditors/AppTextEditor.py +++ b/appEditors/AppTextEditor.py @@ -345,7 +345,7 @@ class AppTextEditor(QtWidgets.QWidget): title = _("End of document.") txt = '%s' % _("Start from beginning?") msgbox.setWindowTitle(_('Find')) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.app.resource_location + '/find32.png')) diff --git a/appEditors/appGCodeEditor.py b/appEditors/appGCodeEditor.py index 29a88b18..4370a544 100644 --- a/appEditors/appGCodeEditor.py +++ b/appEditors/appGCodeEditor.py @@ -765,7 +765,7 @@ class AppGCodeEditorUI: self.edit_box.addLayout(self.title_box) # ## Page Title icon - pixmap = QtGui.QPixmap(self.app.resource_location + '/flatcam_icon32.png') + pixmap = QtGui.QPixmap(self.app.resource_location + '/app32.png') self.icon = FCLabel() self.icon.setPixmap(pixmap) self.title_box.addWidget(self.icon, stretch=0) diff --git a/appGUI/MainGUI.py b/appGUI/MainGUI.py index eb62d354..2f3e71a2 100644 --- a/appGUI/MainGUI.py +++ b/appGUI/MainGUI.py @@ -1397,6 +1397,7 @@ class MainGUI(QtWidgets.QMainWindow): # ####################### TCL Shell DOCK ################################ # ####################################################################### self.shell_dock = FCDock(_("TCL Shell"), close_callback=self.toggle_shell_ui) + self.shell_dock.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app24.png')) self.shell_dock.setObjectName('Shell_DockWidget') self.shell_dock.setAllowedAreas(QtCore.Qt.DockWidgetArea.AllDockWidgetAreas) self.shell_dock.setFeatures(QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable | @@ -1913,12 +1914,13 @@ class MainGUI(QtWidgets.QMainWindow): # ########################## SET GUI Elements # ########################## # ######################################################################## self.app_icon = QtGui.QIcon() - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon16.png', QtCore.QSize(16, 16)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon24.png', QtCore.QSize(24, 24)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon32.png', QtCore.QSize(32, 32)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon48.png', QtCore.QSize(48, 48)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon128.png', QtCore.QSize(128, 128)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon256.png', QtCore.QSize(256, 256)) + self.app_icon.addFile(self.app.resource_location + '/app16.png', QtCore.QSize(16, 16)) + self.app_icon.addFile(self.app.resource_location + '/app24.png', QtCore.QSize(24, 24)) + self.app_icon.addFile(self.app.resource_location + '/app32.png', QtCore.QSize(32, 32)) + self.app_icon.addFile(self.app.resource_location + '/app48.png', QtCore.QSize(48, 48)) + self.app_icon.addFile(self.app.resource_location + '/app64.png', QtCore.QSize(64, 64)) + self.app_icon.addFile(self.app.resource_location + '/app128.png', QtCore.QSize(128, 128)) + self.app_icon.addFile(self.app.resource_location + '/app256.png', QtCore.QSize(256, 256)) self.setWindowIcon(self.app_icon) self.setGeometry(100, 100, 1024, 650) @@ -2355,7 +2357,7 @@ class MainGUI(QtWidgets.QMainWindow): title = _("Clear GUI Settings") txt = _("Are you sure you want to delete the GUI Settings? \n") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.app.resource_location + '/trash32.png')) @@ -3414,7 +3416,7 @@ class MainGUI(QtWidgets.QMainWindow): messagebox = FCMessageBox(parent=self) title = _("Warning") messagebox.setWindowTitle(title) # taskbar still shows it - messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) messagebox.setText('%s' % title) messagebox.setInformativeText(msg) messagebox.setIcon(QtWidgets.QMessageBox.Icon.Warning) @@ -3576,7 +3578,7 @@ class MainGUI(QtWidgets.QMainWindow): messagebox = FCMessageBox(parent=self) title = _("Warning") messagebox.setWindowTitle(title) # taskbar still shows it - messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) messagebox.setText('%s' % title) messagebox.setInformativeText(msg) messagebox.setIcon(QtWidgets.QMessageBox.Icon.Warning) @@ -3620,12 +3622,12 @@ class MainGUI(QtWidgets.QMainWindow): else: msg = _( "Please select geometry items \n" - "on which to perform Substraction Tool.") + "on which to perform Subtraction.") messagebox = FCMessageBox(parent=self) title = _("Warning") messagebox.setWindowTitle(title) # taskbar still shows it - messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) messagebox.setText('%s' % title) messagebox.setInformativeText(msg) messagebox.setIcon(QtWidgets.QMessageBox.Icon.Warning) @@ -3649,7 +3651,7 @@ class MainGUI(QtWidgets.QMainWindow): messagebox = FCMessageBox(parent=self) title = _("Warning") messagebox.setWindowTitle(title) # taskbar still shows it - messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) messagebox.setText('%s' % title) messagebox.setInformativeText(msg) messagebox.setIcon(QtWidgets.QMessageBox.Icon.Warning) diff --git a/appGUI/ObjectUI.py b/appGUI/ObjectUI.py index 44eb7615..9544a207 100644 --- a/appGUI/ObjectUI.py +++ b/appGUI/ObjectUI.py @@ -29,7 +29,7 @@ class ObjectUI(QtWidgets.QWidget): put UI elements in ObjectUI.custom_box (QtWidgets.QLayout). """ - def __init__(self, app, icon_file='assets/resources/flatcam_icon32.png', title=_('App Object'), + def __init__(self, app, icon_file='assets/resources/app32.png', title=_('App Object'), parent=None, common=True): QtWidgets.QWidget.__init__(self, parent=parent) diff --git a/appGUI/preferences/PreferencesUIManager.py b/appGUI/preferences/PreferencesUIManager.py index 9773cee0..7802e127 100644 --- a/appGUI/preferences/PreferencesUIManager.py +++ b/appGUI/preferences/PreferencesUIManager.py @@ -1069,7 +1069,7 @@ class PreferencesUIManager(QtCore.QObject): title = _("Application will restart") txt = _("Are you sure you want to continue?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.ui.app.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.ui.app.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIcon(QtWidgets.QMessageBox.Icon.Question) @@ -1302,7 +1302,7 @@ class PreferencesUIManager(QtCore.QObject): txt = _("One or more values are changed.\n" "Do you want to save?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.ui.app.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.ui.app.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.ui.app.resource_location + '/save_as.png')) diff --git a/appMain.py b/appMain.py index 40e17bbf..14804cdf 100644 --- a/appMain.py +++ b/appMain.py @@ -1375,14 +1375,13 @@ class App(QtCore.QObject): # if running headless always have the systray to be able to quit the app correctly self.trayIcon = FlatCAMSystemTray(app=self, icon=QtGui.QIcon(self.resource_location + - '/flatcam_icon32_green.png'), + '/app32.png'), headless=True, parent=self.parent_w) else: if self.options["global_systray_icon"]: self.trayIcon = FlatCAMSystemTray(app=self, - icon=QtGui.QIcon(self.resource_location + - '/flatcam_icon32_green.png'), + icon=QtGui.QIcon(self.resource_location + '/app32.png'), parent=self.parent_w) # ########################################################################################################### @@ -2739,7 +2738,7 @@ class App(QtCore.QObject): title = _("Exit Editor") txt = _("Do you want to save the edited object?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.resource_location + '/save_as.png')) @@ -3221,7 +3220,7 @@ class App(QtCore.QObject): # self.setPalette(palette) logo = FCLabel() - logo.setPixmap(QtGui.QPixmap(self.app.resource_location + '/flatcam_icon256.png')) + logo.setPixmap(QtGui.QPixmap(self.app.resource_location + '/app256.png')) title = FCLabel( "FlatCAM Evo
" @@ -3976,7 +3975,7 @@ class App(QtCore.QObject): "If you can't get any informations about the application\n" "use the YouTube channel link from the Help menu.") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/app128.png')) msgbox.setText('%s\n\n' % title) msgbox.setInformativeText(txt) @@ -4007,7 +4006,7 @@ class App(QtCore.QObject): "\n" "Do you want to Save the project?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.resource_location + '/save_as.png')) @@ -4973,7 +4972,7 @@ class App(QtCore.QObject): "will scale all objects.\n\n" "Do you want to continue?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.resource_location + '/toggle_units32.png')) @@ -5145,7 +5144,7 @@ class App(QtCore.QObject): txt = _("Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options.") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.resource_location + '/warning.png')) @@ -5236,7 +5235,7 @@ class App(QtCore.QObject): txt = _("Are you sure you want to permanently delete\n" "the selected objects?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.resource_location + '/deleteshape32.png')) @@ -6815,7 +6814,7 @@ class App(QtCore.QObject): txt = _("One or more Tools are edited.\n" "Do you want to save?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.resource_location + '/save_as.png')) @@ -9743,7 +9742,7 @@ class MenuFileHandlers(QtCore.QObject): msg = _("Only Geometry, Gerber and CNCJob objects can be used.") msgbox = FCMessageBox(parent=self.app.ui) msgbox.setWindowTitle(msg) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) msgbox.setInformativeText(msg) msgbox.setIconPixmap(QtGui.QPixmap(self.app.resource_location + '/waning.png')) @@ -10094,7 +10093,7 @@ class MenuFileHandlers(QtCore.QObject): msg = _("Only Geometry objects can be used.") msgbox = FCMessageBox(parent=self.app.ui) msgbox.setWindowTitle(msg) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) msgbox.setInformativeText(msg) msgbox.setIconPixmap(QtGui.QPixmap(self.app.resource_location + '/waning.png')) @@ -10207,7 +10206,7 @@ class MenuFileHandlers(QtCore.QObject): "Creating a New project will delete them.\n" "Do you want to Save the project?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.app.resource_location + '/save_as.png')) @@ -11968,7 +11967,7 @@ class MenuFileHandlers(QtCore.QObject): "It may not load correctly.\n\n" "Do you want to continue?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIcon(QtWidgets.QMessageBox.Icon.Question) @@ -12005,7 +12004,7 @@ class MenuFileHandlers(QtCore.QObject): title = _("Import Settings") txt = _("Do you want to import the loaded project settings?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(self.app.resource_location + '/import.png')) diff --git a/appPlugins/ToolShell.py b/appPlugins/ToolShell.py index 6931f398..12ecea25 100644 --- a/appPlugins/ToolShell.py +++ b/appPlugins/ToolShell.py @@ -316,9 +316,9 @@ class FCShell(TermWidget): self._edit.set_model_data(self.app.myKeywords) app_icon = QtGui.QIcon() - app_icon.addFile(self.app.resource_location + '/flatcam_icon16.png', QtCore.QSize(16, 16)) - app_icon.addFile(self.app.resource_location + '/flatcam_icon24.png', QtCore.QSize(24, 24)) - app_icon.addFile(self.app.resource_location + '/flatcam_icon32.png', QtCore.QSize(32, 32)) + app_icon.addFile(self.app.resource_location + '/app16.png', QtCore.QSize(16, 16)) + app_icon.addFile(self.app.resource_location + '/app24.png', QtCore.QSize(24, 24)) + app_icon.addFile(self.app.resource_location + '/app32.png', QtCore.QSize(32, 32)) self.setWindowIcon(app_icon) self.setWindowTitle(_("FlatCAM Evo Shell")) diff --git a/appTranslation.py b/appTranslation.py index 9ed40ed6..470ccaba 100644 --- a/appTranslation.py +++ b/appTranslation.py @@ -112,7 +112,7 @@ def on_language_apply_click(app, restart=False): title = _("The application will restart.") txt = '%s %s?' % (_("Are you sure do you want to change the current language to"), name.capitalize()) msgbox.setWindowTitle('%s ...' % _("Apply Language")) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(resource_loc + '/language32.png')) @@ -218,7 +218,7 @@ def restart_program(app, ask=None): "\n" "Do you want to Save the project?") msgbox.setWindowTitle(title) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIconPixmap(QtGui.QPixmap(resource_loc + '/save_as.png')) @@ -245,7 +245,7 @@ def restart_program(app, ask=None): title = _("The language will be applied at the next application start.") txt = _("The user does not have admin rights or UAC issues.") msgbox.setWindowTitle('%s ...' % _("Quit")) # taskbar still shows it - msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/flatcam_icon128.png')) + msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/app128.png')) msgbox.setText('%s' % title) msgbox.setInformativeText(txt) msgbox.setIcon(QtWidgets.QMessageBox.Icon.Critical) diff --git a/assets/resources/app.svg b/assets/resources/app.svg new file mode 100644 index 00000000..73243919 --- /dev/null +++ b/assets/resources/app.svg @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Evo + + + + diff --git a/assets/resources/app128.png b/assets/resources/app128.png new file mode 100644 index 0000000000000000000000000000000000000000..09a1986433c5484d210be5ac5340436cfff35e53 GIT binary patch literal 5793 zcmV;S7GCLzP)i4T(jv&44d;8E}d4~ZRtNdU3MEJEx;U|ApuA=51hp?&YJ`OzR$-Bs1qix#8$ z&Z%?M^={qwRCViB)qVHf2O1h08X6iJ8X6kih!;_$00F9`BM2pohgEA2<6%OHP$}(y zw=Lc(+Y&<*BUI|v6HPJ@q*A_9(aDzRgO`IL#xvD4HDRe+CtDoLLrmcR7|J9}T<0Q- zILA?0`A7I6<9L(4^ye~r*vE4~n~b!9C-`5+F^_s`$m3Oxu~k-gJX1(u2a&{4$T=?Z z9A8l=E1$+2jN@et7|7*A4zf~KHi{4?@h67!D7U#uF3ZSfkF2~jdSEi}JP;3r0=2+3 z;E%w5pi!+dFZm*$!2})&#SrRb`y{9u(Fk?&<-=IUSSA55lws7cQqcg0u#!kZ07zyo zM!wH^G9+ckGLK}Q!wU!^m^xkp1p|m>1+m24JvNbQmh%;>WuyZc!3qZ6?X|}9L-N?n zEw0GuUQ7ay0?>zOYFX)|0n7t70)cS%|G!TP@DD%}@ZZ2YK#L=V3I+h^`U3-;XrC;C zVyUl9cj!f+qP&5A?SJb5e}ZLY{TV3wFAWa5UhfXN0sL%!i|I!I{o8-_!3RGc0vQAF zxB0&uwdFou!0&-{=un?ML3g*G0}FtefJsTQUS$I`x(^+YiS_PRy7(Ol0LB2PaBv4} z2GH|)14u>f%kh2mKoszWBO#5R%OGGWICvz=;{}WWzAGo789>kGHBflJQAdAZgIu9z z06m+h0fPth^ao<33N!=gxeNq+Jfy2HR^NdgngR4&2BGAra}IxCs8oSw06iCPJZAs^ zeo{L%1L(Qj0?Z!L)q>SkY=>q5Jr|<~byWlBr3y3y=($*cFFmBI1-K+tpcz2V<`=+i zH+9ql|0P$b89>kG5^xA;c0-2=__bW2W&k~(7l9(Ij|68a!#aZ4Dkso03_#~#xY!WV zH3f?Db>z4IT|+(PoRO8i!)fkN+u>Nn6G9~g?JY3_Son#xnL=w&; zRPiSu{;Agx5nn4Gj&A-iap%8(gV74CvF1ZRiO!VSUMy3v2IGy2AkcfK9+7SfgE(BaRfc4w; zRjd)NJ;VRd^B4nc1D*rCn8sQH8G}1LwLmq+yhknfs}z;H&pT=D$|fHy%L z2G>@jlb{x|KO zz8SGb1a}Eqm)y(I44{{z89*;bGk{)BxBKCPgI%Be+S1ZOeSN(LThse+WB}e+9TTo% z!8$3yj_BxU4j(>DY;3H{%FSjo6DLmO{CUYa4-X1~xObygqY&39uQ-i=We6+raWkD+ z6<5e-ITyr^hy@E4xOMRX3EL$1C7`OB^Q$;bGIl?8h z$LX9j@_2htmknQktv0asTZXp>17-a1$1I)gOu7d!lE+1MGKqh}*Uc{lBjptHp(C;D z*RQj5=~Aaux3;!&^r(C~!EZGs{FZ@CCY*t8>1n~jB|gC@J+>qN4sd`M_?nN<6Xj+D z4oP)Aw$#?va^S!Lx2k%eILU5|oW+j`__z@+R!<$*$dW5oe!DD|KTx9!D541Kw6IP? za|HErGy~}6bh{_;K_o0JjEIN`%w{u2qmkRU-JRm!c|1@(z&r1}!|BtfIdS3yyLRm& zCML#d9Z5+^eD>LAWM^k{{P=O6efC+0$N2gAv3T)f4jno~Q&STrlZgu#E|8m>OGQNm zH8nM4WMnXR?p$=b?wpFz{j>*!tY5!g=*ao==iLsbsHmtA>D;_|v(q|u?b;>M@xccl zD9Wd#qzG59UKP}G`0!z2`0(L9CLl!V5fDHMFA%JlE?pS`3ng6SGJkbhhZ7t*azu2; zrl+Snb-b6C7qe!~679>$k)Q3oWXTe?Y}tarpgz!f+O%opBB?96!zn&SCbxi`0qA&|&q-p2+jEEFX(5=O@OQSjsmURknVBL37&>$)qehM5 z>Q$vF{`Z+OWeWZJiS2#w-o28t&p!LC;>EXEEa>&pPuQTKAolIs$CN2kC@7Fgg^9}#4jjm)O$w<89%7!`7ay$Qq+^-MAZNnD>nWtlgLBjxxaBcj3YbhLPMDJf)RWN_=&Ed)WJwzig>oE(-dTgJ?pGpVes zw5w0HeV#mLRg_apu~d=tBcO&#F7jh)SwVmszGyRM?r?>#c-4_;NJt1vmMl@H)@m=Wz6A}{aWS@HKDTiT4t z%J}^A&qc>KH#ZBx!NFQsxU&o%JXmu7g$ozBc~d<0q~-lJZGONrZ;ppO)X;+|2&{`|ae$j~{Qh@8H3Ms@i;ymX;Q>v$L5tZJMIq zuA;{nKz@Ec6DLmeh_0-xEE*ab2ne_zh%{%;99aXfefvLhL8e*L;j?JFuO68*My zK6NDzqyd2aMVvNmny5#(M{sa3$;ruz$KE3-NE{Dc+MPLbCSG3mPeX2QE`^1K zk~(cKlq27Q9JZ5Le0+TH^75jstwZEj4E-6!TLdr)chFHo37g559*>bTfFQ>68wL~Y zR^`JEQs-B6A##RS<;VyXhsq0fs22Se$p#ebvBMZ2X#7~V#*HH?>VD93 zMMVWCPs-<=w*4{)3k!3pUAD(nRY~NRHgb>_4<(7o=L9#UGpft=VP>-V4pl5g@5Wew z0W)_vLk>G#*5L*@IXM`OMj|32+V{%FD||zlRJN;!?Y8 zKl>zytB>*~johRk6R^0ICa#hjY{zpekhw*tMg&Q1AAb0usGhxh_qLZEJa|x4Hh=zn zMP2je&9fV47&&sJ(`_m!C=ls*{q@(iv4GCP_A!u_mWIE-KYjc5W$M(a?fY9=TKMZ< zl>?V9U9w+zD=jU}srC#XKHP3n?Afztozme+9(V)Tzkff?&G!>z`TP5mmX^l!>C;6M zOOG8p=J30|u&|I@x5UHrFTC)AQ|(!_Xp!i5U0t1|+qtWF;0>Uzu8zZp4~zEAo;};{ z?O*Bh?;aM5g-<{IRJ1QOHC1&l5FQ@RiWMtF`~LjrKliF67hV1i00=L=^pdEq{QP{o z=dju_{nXS{yZ3tx>^UjjRFW<>d*(h7EIS zi;0O5bUK~Gixv|TV|USP>vp801-mN#rU}ynQG()m-!(%bjq7fQc{vCxy;N=j~PH-ULK1U zEn>%x9d;KsIXT&GaLJbX`g)#z`f16C<8~66$#~u;f*7Y7XG;T3TxL62{8*}3E?f8r z#ILOS*q^_>cZPgbqO0I)o z$H|i?B|UCCckZ+wh*8N0AACSULIQvL+usx;g2C!%c>n$PiI0z0m(@h@==ryxm-Yn8 z-#(ACff204&&@K;ki=>L@D0{Hjjq3h zTd78233^9wmv`=N8r?%H;9A_7N*;JmpoTJ<0rYY-1L);w2GGmV44{{zv~uWRqFG9y z8*BXu2$XV_lWfEKNvNS79my;qiqRO{xKXRA;yUkhjS{J1IRo%!47(YNI!C(_qY&^R zjHCRA+q!xa(|C=k`~q(e8Y_5@t#0uqdVd06ydf?&%c%vhNsg4CTM1=FGM=n0V zFeVYr1gRpqu<$%?dC&n-iS(>Y4SA|Oc+QLzaudm^*K&`5Ixez^I+nRL9BiE$R?LC+ z6fv!e@)}@0NA;Xz4PYje5$N3*4QQZ}VzvVAkGy$+eRNXT*8{Y5X^3!Fe+F&$Jw>6KNz;AdXAk)5Rjt#HE(zn7^;J-)uaa|a9<@ODH*L~wd~ zdO&P!Y+r-HKuJkSaJeB+St_8^lnvE)fOb&jBbtm!5_RJi^d7KtXIm!Dn(!Px2 zHw?o%+p`bj$YCsU#ygos9o)M!5U_Ba#Rmv-pu2yEa&L5mC@kGNfH=aqKh-yap@cG$a-`R?4PmUvz1v^D zE#A;NSFxe$xP$U{r5Zm#Xn1(|*=^glC1+%0NL~DP0s{ki^UXK=?%TI7E;>5;IFO*S zo#J)~4jxT9n{r3;uF5)+7bMa+dn=yP9=BeMBLnaW3ky5&@y8zzo;Pov>c>T5Vj_nQ z9SRE%56=W#%cG*vB`6v|aB%R;%a$#Rn>A~e(+;D!xHz_L+ZGua8M)2%=4o^`N(SKX z@9+PUHEY(myzuk9dGqvXB^zdRr$B;=pnQlimm z$QnR&boBS0dFC0nlh~%Gr|W%vedoEWN27C)H2|GX7iXKy$Q6QvgVE`9-IokkLlId6 zFq_Rmp2}ivFc^AFT6zsJvIbx<7|K=7W_3uLtMjilIvrU9Xl-r1tab$tB}z(4(ChU^ zw-sr03bF=ZG#YpA+_|$-u3RmjefC*vO-)UPyLvP_2c^%z<5^i*btaR^W#w&cZEW1Q zu}U+5o{N$Jn5(O+fA*sv{YY}SQVkn7ZfvTntJ?t{T!mD_qbRz98yg${c=+()gBv$) zbS@JTkd>7sy!-CE1!ZMr4p$A;=sp~d29}kT{o`A2y_LOo?beXkczb*6ii?ZeE?>Tk zPNzFlT3Y%VNUu&I%hzn9AJd5;fp5sCh^>n9C2S&yHwYk*T>iurK9`j}$4(-c&sfr_ zp^_q$(~90;Gl5JXoS_tu%}wM-GwU&t$5!Hb2_0~mZQQ0*R{k2>>CcnIk%EaLrM5JI z_kV)KQXESuW~GgX?nVWbsEU9x5KR&{xr}lO-N*6Vyp3w$w1;$QXlQ6? fXlQ6?eB1edQ40z#Vd)I)00000NkvXXu0mjfeX;Ga literal 0 HcmV?d00001 diff --git a/assets/resources/app16.png b/assets/resources/app16.png new file mode 100644 index 0000000000000000000000000000000000000000..4e7e32da7638d60ead8419422098587dbc502393 GIT binary patch literal 746 zcmV@~8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10(VJ7 zK~y-6ebF&!oOK+=@z4Lg_wJG?IZG3BL@Oj#Bs~#FmlP}&>R<<5w1^@B2caOuF*K3l zkRi}TbSqg39R$6aSZrxY7t!@%LFc8@ zq61G#Zr=3i8&@StcnPO4CRmd3gO-m($`U=sWbrvJ#G?KuMEwP+yhK)zmFjRvFsmIo zEm?Hz_Pm7`(HTqTmZbNpT8nEkwj`F3H7ga&Vog>}%XN_rI}&_}eV7Wy92exw2?Zl)4+^wp8w5>tIJ^xpLCq zjE;_4SXj_#G;C~an4FvhAp`^Iz=hd#c1z@bEO{xNe8j^&PhD{oxti&))CS|}9mK`xhDxs}}75p+xBLb+Uix3917?MkI` z=ERK?D|Q?ZJTG-t@Byk)KMCHH`cb4Xe#-mZ^sTcQmrAA2`uqD|h@vQK&S^X=RYD{+ zAXvgLQYDc&iSB23KaP)AW%7b@*y7~vq22rovgaI%YCgwR#6i=x%* z(?1*w87x9#3~JpBx>!MjoWqG?!PwY>NVl;?W(=HVndx5T_1VSys9}p1xGy}M^E=OZ z&i9<(Ilte-|BM*OyU-|S-76q-^MTRbrv*M$V80Q2#C<2UOeh~eh-uK|gurJ4duAjn z@ev9m*_{CKRZHZQ7lSZ;HzF@FA{R?dDa2wig<|qeSswYUn$A~HYk-cG|F-s8m0%eiyn!sDw@PY)l1ir?b(YjaQy=OV!M)-oy;J*b*L>07PMP$3VrDIF7 zwYAmw_&BJksWCb_`urLKf!Uq7Bk(~YS~N*U6Ob@bR8+M0(xpod9z6K`pig3fQzjHf z`lHzjVs@L5J!oln=6<(x=T56vuh!DiqPn_TZEdY{=gv8M_N@H;e4U-0_U+rpgj%s^ zCngQy^LRvXL+D4LAJGT(_4V4@+ch^g>+bGWS62si?AW2Fr^k^aM;thCKt)A`($Z3u zm6Zwf&BTdiM>k6_C7ek&p4Bg2ylB_1U5+0=Zg6l=B9Ty7Sg5+XT4!gcva&KgJw2eS zt4n!#c@Cy#;zTj0d$3W=Vh|dD@$qrP!^1QFZEbBD8X61@4N0fdGMS8IGAW%-D<~+? z+uIw8*?`xgIQQ`VG{Kh^%r+UH6c-oUx^?SJhLInZ|c?bV#LA+S=M|-@aXQ zbMvH1Ur9{c=uUS~JK z{jSKQ`~DR7Q0Sh}n9w6JcQpwGeu;eh;5Qyja0_npa6S`#CjJ3Dolcyjk#ME}0000< KMNUMnLSTZAMes=g literal 0 HcmV?d00001 diff --git a/assets/resources/app256.png b/assets/resources/app256.png new file mode 100644 index 0000000000000000000000000000000000000000..046d8c14f2b0e1c98c12cda11527c0d85345eae7 GIT binary patch literal 11890 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 QjsO4v07*qoM6N<$f-@QU*Z=?k literal 0 HcmV?d00001 diff --git a/assets/resources/app64.png b/assets/resources/app64.png new file mode 100644 index 0000000000000000000000000000000000000000..8dcd3c0d5d97a38895d4bde6ee86f6a12f52a08f GIT binary patch literal 2989 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E + + + + diff --git a/assets/resources/dark_resources/app128.png b/assets/resources/dark_resources/app128.png new file mode 100644 index 0000000000000000000000000000000000000000..09a1986433c5484d210be5ac5340436cfff35e53 GIT binary patch literal 5793 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 literal 0 HcmV?d00001 diff --git a/assets/resources/dark_resources/app16.png b/assets/resources/dark_resources/app16.png new file mode 100644 index 0000000000000000000000000000000000000000..4e7e32da7638d60ead8419422098587dbc502393 GIT binary patch literal 746 zcmV@~8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10(VJ7 zK~y-6ebF&!oOK+=@z4Lg_wJG?IZG3BL@Oj#Bs~#FmlP}&>R<<5w1^@B2caOuF*K3l zkRi}TbSqg39R$6aSZrxY7t!@%LFc8@ zq61G#Zr=3i8&@StcnPO4CRmd3gO-m($`U=sWbrvJ#G?KuMEwP+yhK)zmFjRvFsmIo zEm?Hz_Pm7`(HTqTmZbNpT8nEkwj`F3H7ga&Vog>}%XN_rI}&_}eV7Wy92exw2?Zl)4+^wp8w5>tIJ^xpLCq zjE;_4SXj_#G;C~an4FvhAp`^Iz=hd#c1z@bEO{xNe8j^&PhD{oxti&))CS|}9mK`xhDxs}}75p+xBLb+Uix3917?MkI` z=ERK?D|Q?ZJTG-t@Byk)KMCHH`cb4Xe#-mZ^sTcQmrAA2`uqD|h@vQK&S^X=RYD{+ zAXvgLQYDc&iSB23KaP)AW%7b@*y7~vq22rovgaI%YCgwR#6i=x%* z(?1*w87x9#3~JpBx>!MjoWqG?!PwY>NVl;?W(=HVndx5T_1VSys9}p1xGy}M^E=OZ z&i9<(Ilte-|BM*OyU-|S-76q-^MTRbrv*M$V80Q2#C<2UOeh~eh-uK|gurJ4duAjn z@ev9m*_{CKRZHZQ7lSZ;HzF@FA{R?dDa2wig<|qeSswYUn$A~HYk-cG|F-s8m0%eiyn!sDw@PY)l1ir?b(YjaQy=OV!M)-oy;J*b*L>07PMP$3VrDIF7 zwYAmw_&BJksWCb_`urLKf!Uq7Bk(~YS~N*U6Ob@bR8+M0(xpod9z6K`pig3fQzjHf z`lHzjVs@L5J!oln=6<(x=T56vuh!DiqPn_TZEdY{=gv8M_N@H;e4U-0_U+rpgj%s^ zCngQy^LRvXL+D4LAJGT(_4V4@+ch^g>+bGWS62si?AW2Fr^k^aM;thCKt)A`($Z3u zm6Zwf&BTdiM>k6_C7ek&p4Bg2ylB_1U5+0=Zg6l=B9Ty7Sg5+XT4!gcva&KgJw2eS zt4n!#c@Cy#;zTj0d$3W=Vh|dD@$qrP!^1QFZEbBD8X61@4N0fdGMS8IGAW%-D<~+? z+uIw8*?`xgIQQ`VG{Kh^%r+UH6c-oUx^?SJhLInZ|c?bV#LA+S=M|-@aXQ zbMvH1Ur9{c=uUS~JK z{jSKQ`~DR7Q0Sh}n9w6JcQpwGeu;eh;5Qyja0_npa6S`#CjJ3Dolcyjk#ME}0000< KMNUMnLSTZAMes=g literal 0 HcmV?d00001 diff --git a/assets/resources/dark_resources/app256.png b/assets/resources/dark_resources/app256.png new file mode 100644 index 0000000000000000000000000000000000000000..046d8c14f2b0e1c98c12cda11527c0d85345eae7 GIT binary patch literal 11890 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 QjsO4v07*qoM6N<$f-@QU*Z=?k literal 0 HcmV?d00001 diff --git a/assets/resources/dark_resources/app64.png b/assets/resources/dark_resources/app64.png new file mode 100644 index 0000000000000000000000000000000000000000..8dcd3c0d5d97a38895d4bde6ee86f6a12f52a08f GIT binary patch literal 2989 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 rC29vZ-~wEtq87B*?EVVOitzjZh;-?cr zXF0(dcbn%Pv*;U%hPO}LOx30ssrDOB)VOu#tlY&5rJ1I(!9WWclf2zsO77>b$OUpZ z3p^r=85nGV3BtC8@#>oOB|t&;5>H=O_Q#xJLdNWYr}d11Lccs+978nDCnp?W>G4^) z@{A784Tfwj>1r+Zma`|1o^57WX|t!M=Fdu|1j&OTA_`Nc&6_t-lV_5kr?04}a66-6 zXUNGlI{!j6+1N4{$Vo<~?0yood2{g7MxNFXImwW8k8W)(Elp-gt(B{?GWJF{^$Jpq2P;o}k z!j(2F6CLiiC40Ftv?@1RbVUVSbV!^KYd9llW8p{6PS1}gH6@G~UhMI>kTgpKm@ODo zOI#yLQW8s2t&)pUffR$0fuW_Yfu*jIQHY_1m8qeXfw{JUiIstY*Tl>dC>nC}Q!>*k Vaci(Xa}gBu44$rjF6*2UngG!IRtf+B