From 8504793a7eb37aa0a49dbe313590c4cb8dc6f284 Mon Sep 17 00:00:00 2001 From: supermerill Date: Mon, 26 Apr 2021 15:47:58 +0200 Subject: [PATCH] fix more app name errors - icons - gcodeviewer name&key now include the slic3r name - instance check now depends on hte slic3r name, and not always prusaslicer - possible fix for 3Dmouse on macos - error text - CWS now output the slicer name & version separately and the slicer config in the slicer.ini field - re-add some of the 'about' credentials from slic3r (icon, manual) --- src/CMakeLists.txt | 11 +++++++---- src/PrusaSlicer.cpp | 2 +- src/libslic3r/Format/CWS.cpp | 5 +++-- src/libslic3r/libslic3r_version.h.in | 2 +- src/platform/msw/gcodeviewer.rc.in | 12 ++++++------ src/platform/unix/Gcodeviewer.desktop.in | 2 +- src/slic3r/Config/Snapshot.cpp | 4 ++-- src/slic3r/GUI/AboutDialog.cpp | 14 ++++++++++---- src/slic3r/GUI/ConfigWizard.cpp | 2 +- src/slic3r/GUI/GUI_App.cpp | 14 +++++++------- src/slic3r/GUI/InstanceCheck.cpp | 17 ++++++++++------- src/slic3r/GUI/InstanceCheckMac.mm | 4 ++-- src/slic3r/GUI/KBShortcutsDialog.cpp | 2 +- src/slic3r/GUI/MainFrame.cpp | 10 +++++----- src/slic3r/GUI/Mouse3DHandlerMac.mm | 2 +- src/slic3r/GUI/MsgDialog.cpp | 4 ++-- src/slic3r/GUI/OG_CustomCtrl.cpp | 6 +++--- src/slic3r/GUI/OpenGLManager.cpp | 8 ++++---- src/slic3r/GUI/Plater.cpp | 2 +- src/slic3r/GUI/SysInfoDialog.cpp | 2 +- src/slic3r/GUI/UnsavedChangesDialog.cpp | 8 ++++---- src/slic3r/GUI/UpdateDialogs.cpp | 6 +++--- src/slic3r/GUI/wxExtensions.cpp | 2 +- version.inc | 8 ++++---- 24 files changed, 81 insertions(+), 68 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 427a25346..c2938dfaf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -221,14 +221,17 @@ else () add_custom_command(TARGET Slic3r POST_BUILD COMMAND ls # COMMAND ln -sf Slic3r slic3r - COMMAND ln -sf Slic3r prusa-gcodeviewer - COMMAND ln -sf Slic3r PrusaGCodeViewer + #was: COMMAND ln -sf Slic3r prusa-gcodeviewer + COMMAND ln -sf Slic3r ${GCODEVIEWER_APP_CMD} + #was: COMMAND ln -sf Slic3r PrusaGCodeViewer + COMMAND ln -sf Slic3r ${GCODEVIEWER_APP_KEY} WORKING_DIRECTORY "$" COMMENT "Symlinking the G-code viewer to Slic3r, symlinking to slic3r and gcodeviewer" VERBATIM) else () add_custom_command(TARGET Slic3r POST_BUILD - COMMAND ln -sf slic3r prusa-gcodeviewer + #was: COMMAND ln -sf Slic3r prusa-gcodeviewer + COMMAND ln -sf slic3r ${GCODEVIEWER_APP_CMD} WORKING_DIRECTORY "$" COMMENT "Symlinking the G-code viewer to Slic3r" VERBATIM) @@ -257,5 +260,5 @@ else () install(TARGETS Slic3r RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") # Install the symlink for gcodeviewer - install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink slic3r slic3rgcodeviewer WORKING_DIRECTORY \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})") + install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink slic3r ${GCODEVIEWER_APP_CMD} WORKING_DIRECTORY \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})") endif () diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index 0d73fd433..34cc0fd71 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -103,7 +103,7 @@ int CLI::run(int argc, char **argv) false; #else // On Unix systems, the superslicer binary may be symlinked to give the application a different meaning. - boost::algorithm::iends_with(boost::filesystem::path(argv[0]).filename().string(), "gcodeviewer"); + boost::algorithm::iends_with(boost::filesystem::path(argv[0]).filename().string(), GCODEVIEWER_APP_CMD); #endif // _WIN32 const std::vector &load_configs = m_config.option("load", true)->values; diff --git a/src/libslic3r/Format/CWS.cpp b/src/libslic3r/Format/CWS.cpp index f83ad204a..b28a47f50 100644 --- a/src/libslic3r/Format/CWS.cpp +++ b/src/libslic3r/Format/CWS.cpp @@ -47,7 +47,8 @@ void fill_iniconf(ConfMap &m, const SLAPrint &print) m["printerProfile"] = get_cfg_value(cfg, "printer_settings_id"); m["printProfile"] = get_cfg_value(cfg, "sla_print_settings_id"); m["fileCreationTimestamp"] = Utils::utc_timestamp(); - m["prusaSlicerVersion"] = SLIC3R_BUILD_ID; + m["slicerName"] = SLIC3R_APP_NAME; + m["slicerVersion"] = SLIC3R_VERSION_FULL; SLAPrintStatistics stats = print.print_statistics(); // Set statistics values to the printer @@ -116,7 +117,7 @@ void MaskedCWSArchive::export_print(Zipper& zipper, zipper.add_entry("default.slicing"); zipper << to_ini(iniconf); - zipper.add_entry("prusaslicer.ini"); + zipper.add_entry("slicer.ini"); zipper << to_ini(slicerconf); size_t i = 0; diff --git a/src/libslic3r/libslic3r_version.h.in b/src/libslic3r/libslic3r_version.h.in index f2eaa68bc..3b6a997bc 100644 --- a/src/libslic3r/libslic3r_version.h.in +++ b/src/libslic3r/libslic3r_version.h.in @@ -15,7 +15,7 @@ #define GCODEVIEWER_APP_KEY "@GCODEVIEWER_APP_KEY@" #define GCODEVIEWER_APP_CMD "@GCODEVIEWER_APP_CMD@" #define GCODEVIEWER_APP_WCMD L"@GCODEVIEWER_APP_CMD@" -#define GCODEVIEWER_BUILD_ID GCODEVIEWER_APP_NAME "-" SLIC3R_VERSION "-UNKNOWN" +#define GCODEVIEWER_BUILD_ID GCODEVIEWER_APP_NAME "-" SLIC3R_VERSION_FULL "-UNKNOWN" #define SLIC3R_BASED_ON "@SLIC3R_BASED_ON@" #define SLIC3R_GITHUB "@SLIC3R_GITHUB@" diff --git a/src/platform/msw/gcodeviewer.rc.in b/src/platform/msw/gcodeviewer.rc.in index 272e8a6fd..9487d4cc6 100644 --- a/src/platform/msw/gcodeviewer.rc.in +++ b/src/platform/msw/gcodeviewer.rc.in @@ -7,13 +7,13 @@ PRODUCTVERSION @SLIC3R_RC_VERSION@ BLOCK "040904E4" { VALUE "CompanyName", "Prusa Research" - VALUE "FileDescription", "@SLIC3R_APP_NAME@ G-code Viewer" + VALUE "FileDescription", "@GCODEVIEWER_APP_NAME@" VALUE "FileVersion", "@SLIC3R_BUILD_ID@" - VALUE "ProductName", "@SLIC3R_APP_NAME@ G-code Viewer" + VALUE "ProductName", "@GCODEVIEWER_APP_NAME@" VALUE "ProductVersion", "@SLIC3R_BUILD_ID@" - VALUE "InternalName", "@SLIC3R_APP_NAME@ G-code Viewer" - VALUE "LegalCopyright", "Copyright \251 2016-2020 Prusa Research, \251 2011-2018 Alessandro Ranellucci" - VALUE "OriginalFilename", "prusa-gcodeviewer.exe" + VALUE "InternalName", "@GCODEVIEWER_APP_NAME@" + VALUE "LegalCopyright", "Copyright \251 2018-2021 Joseph Lenox, \251 2019-2021 Durand Remi, \251 2016-2021 Prusa Research, \251 2011-2018 Alessandro Ranellucci" + VALUE "OriginalFilename", "@GCODEVIEWER_APP_CMD@.exe" } } BLOCK "VarFileInfo" @@ -21,5 +21,5 @@ PRODUCTVERSION @SLIC3R_RC_VERSION@ VALUE "Translation", 0x409, 1252 } } -2 ICON "@SLIC3R_RESOURCES_DIR@/icons/PrusaSlicer-gcodeviewer.ico" +2 ICON "@SLIC3R_RESOURCES_DIR@/icons/@GCODEVIEWER_APP_KEY@.ico" 1 24 "@SLIC3R_APP_KEY@.manifest" diff --git a/src/platform/unix/Gcodeviewer.desktop.in b/src/platform/unix/Gcodeviewer.desktop.in index 1de2805fa..520dfc854 100644 --- a/src/platform/unix/Gcodeviewer.desktop.in +++ b/src/platform/unix/Gcodeviewer.desktop.in @@ -2,7 +2,7 @@ Name=@GCODEVIEWER_APP_NAME@ Comment=G-code viewer of Slic3r Exec=@SLIC3R_APP_CMD@ --gcodeviewer %F -Icon=@SLIC3R_APP_KEY@-gcodeviewer +Icon=@GCODEVIEWER_APP_KEY@ Terminal=false Type=Application MimeType=text/x.gcode; diff --git a/src/slic3r/Config/Snapshot.cpp b/src/slic3r/Config/Snapshot.cpp index 900172d3e..47b8384ec 100644 --- a/src/slic3r/Config/Snapshot.cpp +++ b/src/slic3r/Config/Snapshot.cpp @@ -358,7 +358,7 @@ static void copy_config_dir_single_level(const boost::filesystem::path &path_src { if (! boost::filesystem::is_directory(path_dst) && ! boost::filesystem::create_directory(path_dst)) - throw Slic3r::RuntimeError(std::string("Slic3r was unable to create a directory at ") + path_dst.string()); + throw Slic3r::RuntimeError(std::string(SLIC3R_APP_NAME " was unable to create a directory at ") + path_dst.string()); for (auto &dir_entry : boost::filesystem::directory_iterator(path_src)) if (Slic3r::is_ini_file(dir_entry)) @@ -526,7 +526,7 @@ boost::filesystem::path SnapshotDB::create_db_dir() subdir.make_preferred(); if (! boost::filesystem::is_directory(subdir) && ! boost::filesystem::create_directory(subdir)) - throw Slic3r::RuntimeError(std::string("Slic3r was unable to create a directory at ") + subdir.string()); + throw Slic3r::RuntimeError(std::string(SLIC3R_APP_NAME " was unable to create a directory at ") + subdir.string()); } return snapshots_dir; } diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index d5e1fab90..b31b5a881 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -16,7 +16,7 @@ AboutDialogLogo::AboutDialogLogo(wxWindow* parent) : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize) { this->SetBackgroundColour(*wxWHITE); - this->logo = wxBitmap(from_u8(Slic3r::var("Slic3r_192px.png")), wxBITMAP_TYPE_PNG); + this->logo = wxBitmap(from_u8(Slic3r::var(SLIC3R_APP_KEY"_192px.png")), wxBITMAP_TYPE_PNG); this->SetMinSize(this->logo.GetSize()); this->Bind(wxEVT_PAINT, &AboutDialogLogo::onRepaint, this); @@ -220,7 +220,7 @@ AboutDialog::AboutDialog() main_sizer->Add(hsizer, 0, wxEXPAND | wxALL, 20); // logo - m_logo_bitmap = ScalableBitmap(this, wxGetApp().is_editor() ? "Slic3r_192px.png" : "PrusaSlicer-gcodeviewer_192px.png", 192); + m_logo_bitmap = ScalableBitmap(this, wxGetApp().is_editor() ? SLIC3R_APP_KEY "_192px.png" : GCODEVIEWER_APP_KEY "_192px.png", 192); m_logo = new wxStaticBitmap(this, wxID_ANY, m_logo_bitmap.bmp()); hsizer->Add(m_logo, 1, wxALIGN_CENTER_VERTICAL); @@ -270,6 +270,8 @@ AboutDialog::AboutDialog() const std::string license_str = _utf8(L("GNU Affero General Public License, version 3")); const std::string based_on_str = _utf8(L(SLIC3R_INTRO)); const std::string contributors_str = _utf8(L("Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik, Durand Rémi and numerous others.")); + const std::string manual_str = _utf8(L("Manual by Gary Hodgson. Inspired by the RepRap community.")); + const std::string icon_str = _utf8(L("Slic3r logo designed by Corey Daniels.")); const auto text = from_u8( (boost::format( "" @@ -283,7 +285,9 @@ AboutDialog::AboutDialog() "

" "%8%" "

" - "%9%" + "%9%
" + "%10%
" + "%11%" "" "" "") % bgr_clr_str % text_clr_str % text_clr_str @@ -291,7 +295,9 @@ AboutDialog::AboutDialog() % is_lecensed_str % license_str % based_on_str - % contributors_str).str()); + % contributors_str + % manual_str + % icon_str).str()); m_html->SetPage(text); vsizer->Add(m_html, 1, wxEXPAND | wxBOTTOM, 10); m_html->Bind(wxEVT_HTML_LINK_CLICKED, &AboutDialog::onLinkClicked, this); diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index b158c5f8e..798464cf7 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -1480,7 +1480,7 @@ void PageTemperatures::apply_custom_config(DynamicPrintConfig &config) ConfigWizardIndex::ConfigWizardIndex(wxWindow *parent) : wxPanel(parent) - , bg(ScalableBitmap(parent, "Slic3r_192px_transparent.png", 192)) + , bg(ScalableBitmap(parent, SLIC3R_APP_KEY "_192px_transparent.png", 192)) , bullet_black(ScalableBitmap(parent, "bullet_black.png")) , bullet_blue(ScalableBitmap(parent, "bullet_blue.png")) , bullet_white(ScalableBitmap(parent, "bullet_white.png")) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 6073e3d0f..9a22ddd5e 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -604,8 +604,8 @@ static void generic_exception_handle() BOOST_LOG_TRIVIAL(error) << boost::format("std::bad_alloc exception: %1%") % ex.what(); std::terminate(); } catch (const boost::io::bad_format_string& ex) { - wxString errmsg = _L("PrusaSlicer has encountered a localization error. " - "Please report to PrusaSlicer team, what language was active and in which scenario " + wxString errmsg = _L(SLIC3R_APP_NAME " has encountered a localization error. " + "Please report to " SLIC3R_APP_NAME " team, what language was active and in which scenario " "this issue happened. Thank you.\n\nThe application will now terminate."); wxMessageBox(errmsg + "\n\n" + wxString(ex.what()), _L("Critical error"), wxOK | wxICON_ERROR); BOOST_LOG_TRIVIAL(error) << boost::format("Uncaught exception: %1%") % ex.what(); @@ -739,13 +739,13 @@ void GUI_App::init_app_config() // Error while parsing config file. We'll customize the error message and rethrow to be displayed. if (is_editor()) { throw Slic3r::RuntimeError( - _u8L("Error parsing PrusaSlicer config file, it is probably corrupted. " + _u8L("Error parsing " SLIC3R_APP_NAME " config file, it is probably corrupted. " "Try to manually delete the file to recover from the error. Your user profiles will not be affected.") + "\n\n" + app_config->config_path() + "\n\n" + error); } else { throw Slic3r::RuntimeError( - _u8L("Error parsing PrusaGCodeViewer config file, it is probably corrupted. " + _u8L("Error parsing " GCODEVIEWER_APP_NAME " config file, it is probably corrupted. " "Try to manually delete the file to recover from the error.") + "\n\n" + app_config->config_path() + "\n\n" + error); } @@ -800,7 +800,7 @@ bool GUI_App::on_init_inner() wxRichMessageDialog dlg(nullptr, wxString::Format(_L("%s\nDo you want to continue?"), msg), - "PrusaSlicer", wxICON_QUESTION | wxYES_NO); + SLIC3R_APP_NAME, wxICON_QUESTION | wxYES_NO); dlg.ShowCheckBox(_L("Remember my choice")); if (dlg.ShowModal() != wxID_YES) return false; @@ -2438,8 +2438,8 @@ void GUI_App::associate_gcode_files() ::GetModuleFileNameW(nullptr, app_path, sizeof(app_path)); std::wstring prog_path = L"\"" + std::wstring(app_path) + L"\""; - std::wstring prog_id = L"PrusaSlicer.GCodeViewer.1"; - std::wstring prog_desc = L"PrusaSlicerGCodeViewer"; + std::wstring prog_id = SLIC3R_APP_WKEY L".GCodeViewer.1"; + std::wstring prog_desc = L"" GCODEVIEWER_APP_NAME; std::wstring prog_command = prog_path + L" \"%1\""; std::wstring reg_base = L"Software\\Classes"; std::wstring reg_extension = reg_base + L"\\.gcode"; diff --git a/src/slic3r/GUI/InstanceCheck.cpp b/src/slic3r/GUI/InstanceCheck.cpp index 74761574f..02455f01b 100644 --- a/src/slic3r/GUI/InstanceCheck.cpp +++ b/src/slic3r/GUI/InstanceCheck.cpp @@ -186,10 +186,10 @@ namespace instance_check_internal dbus_uint32_t serial = 0; const char* sigval = message_text.c_str(); //std::string interface_name = "com.prusa3d.prusaslicer.InstanceCheck"; - std::string interface_name = "com.prusa3d.prusaslicer.InstanceCheck.Object" + version; + std::string interface_name = "org.slic3r." SLIC3R_APP_CMD ".InstanceCheck.Object" + version; std::string method_name = "AnotherInstance"; //std::string object_name = "/com/prusa3d/prusaslicer/InstanceCheck"; - std::string object_name = "/com/prusa3d/prusaslicer/InstanceCheck/Object" + version; + std::string object_name = "/org/slic3r/" SLIC3R_APP_CMD "/InstanceCheck/Object" + version; // initialise the error value @@ -490,7 +490,8 @@ namespace MessageHandlerDBusInternal " " " " " " - " " +// " " + " " " " " " " " @@ -528,7 +529,8 @@ namespace MessageHandlerDBusInternal { const char* interface_name = dbus_message_get_interface(message); const char* member_name = dbus_message_get_member(message); - std::string our_interface = "com.prusa3d.prusaslicer.InstanceCheck.Object" + wxGetApp().get_instance_hash_string(); +// std::string our_interface = "com.prusa3d.prusaslicer.InstanceCheck.Object" + wxGetApp().get_instance_hash_string(); + std::string our_interface = "org.slic3r." SLIC3R_APP_CMD ".InstanceCheck.Object" + wxGetApp().get_instance_hash_string(); BOOST_LOG_TRIVIAL(trace) << "DBus message received: interface: " << interface_name << ", member: " << member_name; if (0 == strcmp("org.freedesktop.DBus.Introspectable", interface_name) && 0 == strcmp("Introspect", member_name)) { respond_to_introspect(connection, message); @@ -548,8 +550,9 @@ void OtherInstanceMessageHandler::listen() int name_req_val; DBusObjectPathVTable vtable; std::string instance_hash = wxGetApp().get_instance_hash_string(); - std::string interface_name = "com.prusa3d.prusaslicer.InstanceCheck.Object" + instance_hash; - std::string object_name = "/com/prusa3d/prusaslicer/InstanceCheck/Object" + instance_hash; +// std::string interface_name = "com.prusa3d.prusaslicer.InstanceCheck.Object" + instance_hash; + std::string interface_name = "org.slic3r." SLIC3R_APP_CMD ".InstanceCheck.Object" + instance_hash; + std::string object_name = "/org/slic3r/" SLIC3R_APP_CMD "/InstanceCheck/Object" + instance_hash; //BOOST_LOG_TRIVIAL(debug) << "init dbus listen " << interface_name << " " << object_name; dbus_error_init(&err); @@ -577,7 +580,7 @@ void OtherInstanceMessageHandler::listen() return; } if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != name_req_val) { - BOOST_LOG_TRIVIAL(error) << "Not primary owner of DBus name - probably another PrusaSlicer instance is running."; + BOOST_LOG_TRIVIAL(error) << "Not primary owner of DBus name - probably another " SLIC3R_APP_KEY " instance is running."; BOOST_LOG_TRIVIAL(error) << "Dbus Messages listening terminating."; dbus_connection_unref(conn); return; diff --git a/src/slic3r/GUI/InstanceCheckMac.mm b/src/slic3r/GUI/InstanceCheckMac.mm index 9969b1a7b..d3a73ef47 100644 --- a/src/slic3r/GUI/InstanceCheckMac.mm +++ b/src/slic3r/GUI/InstanceCheckMac.mm @@ -13,7 +13,7 @@ { //NSLog(@"adding observer"); //NSString *nsver = @"OtherPrusaSlicerInstanceMessage" + version_hash; - NSString *nsver = [NSString stringWithFormat: @"%@%@", @"OtherPrusaSlicerInstanceMessage", version_hash]; + NSString *nsver = [NSString stringWithFormat: @"%@%@", @"Other" SLIC3R_APP_KEY "InstanceMessage", version_hash]; [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(message_update:) name:nsver object:nil suspensionBehavior:NSNotificationSuspensionBehaviorDeliverImmediately]; } @@ -47,7 +47,7 @@ void send_message_mac(const std::string &msg, const std::string &version) NSString *nsmsg = [NSString stringWithCString:msg.c_str() encoding:[NSString defaultCStringEncoding]]; //NSString *nsver = @"OtherPrusaSlicerInstanceMessage" + [NSString stringWithCString:version.c_str() encoding:[NSString defaultCStringEncoding]]; NSString *nsver = [NSString stringWithCString:version.c_str() encoding:[NSString defaultCStringEncoding]]; - NSString *notifname = [NSString stringWithFormat: @"%@%@", @"OtherPrusaSlicerInstanceMessage", nsver]; + NSString *notifname = [NSString stringWithFormat: @"%@%@", @"Other" SLIC3R_APP_KEY "InstanceMessage", nsver]; [[NSDistributedNotificationCenter defaultCenter] postNotificationName:notifname object:nil userInfo:[NSDictionary dictionaryWithObject:nsmsg forKey:@"data"] deliverImmediately:YES]; } diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index aafc3ff20..2bc3eddfc 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -268,7 +268,7 @@ wxPanel* KBShortcutsDialog::create_header(wxWindow* parent, const wxFont& bold_f sizer->AddStretchSpacer(); // logo - m_logo_bmp = ScalableBitmap(this, wxGetApp().is_editor() ? "Slic3r_32px.png" : "PrusaSlicer-gcodeviewer_32px.png", 32); + m_logo_bmp = ScalableBitmap(this, wxGetApp().is_editor() ? SLIC3R_APP_KEY "_32px.png" : GCODEVIEWER_APP_KEY "_32px.png", 32); m_header_bitmap = new wxStaticBitmap(panel, wxID_ANY, m_logo_bmp.bmp()); sizer->Add(m_header_bitmap, 0, wxEXPAND | wxLEFT | wxRIGHT, 10); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index ee1eec002..e4a6bb5cd 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -106,7 +106,7 @@ static wxIcon main_frame_icon(GUI_App::EAppMode app_mode) } return wxIcon(path, wxBITMAP_TYPE_ICO); #else // _WIN32 - return wxIcon(Slic3r::var(app_mode == GUI_App::EAppMode::Editor ? "Slic3r_128px.png" : "PrusaSlicer-gcodeviewer_128px.png"), wxBITMAP_TYPE_PNG); + return wxIcon(Slic3r::var(app_mode == GUI_App::EAppMode::Editor ? SLIC3R_APP_KEY "_128px.png" : GCODEVIEWER_APP_KEY "_128px.png"), wxBITMAP_TYPE_PNG); #endif // _WIN32 } @@ -131,11 +131,11 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_S default: case GUI_App::EAppMode::Editor: m_taskbar_icon = std::make_unique(wxTBI_DOCK); - m_taskbar_icon->SetIcon(wxIcon(Slic3r::var("Slic3r_128px.png"), wxBITMAP_TYPE_PNG), SLIC3R_APP_KEY); + m_taskbar_icon->SetIcon(wxIcon(Slic3r::var(SLIC3R_APP_KEY "_128px.png"), wxBITMAP_TYPE_PNG), SLIC3R_APP_KEY); break; case GUI_App::EAppMode::GCodeViewer: m_taskbar_icon = std::make_unique(wxTBI_DOCK); - m_taskbar_icon->SetIcon(wxIcon(Slic3r::var("PrusaSlicer-gcodeviewer_128px.png"), wxBITMAP_TYPE_PNG), GCODEVIEWER_APP_NAME); + m_taskbar_icon->SetIcon(wxIcon(Slic3r::var(GCODEVIEWER_APP_KEY "_128px.png"), wxBITMAP_TYPE_PNG), GCODEVIEWER_APP_NAME); break; } #endif // __APPLE__ @@ -1399,7 +1399,7 @@ void MainFrame::init_menubar_as_editor() [this](wxCommandEvent&) { m_printhost_queue_dlg->Show(); }, "upload_queue", nullptr, []() {return true; }, this); windowMenu->AppendSeparator(); - append_menu_item(windowMenu, wxID_ANY, _L("Open new instance") + "\tCtrl+Shift+I", _L("Open a new PrusaSlicer instance"), + append_menu_item(windowMenu, wxID_ANY, _L("Open new instance") + "\tCtrl+Shift+I", _L("Open a new " SLIC3R_APP_NAME " instance"), [this](wxCommandEvent&) { start_new_slicer(); }, "", nullptr, [this]() {return m_plater != nullptr && wxGetApp().app_config->get("single_instance") != "1"; }, this); } @@ -2149,7 +2149,7 @@ SettingsDialog::SettingsDialog(MainFrame* mainframe) SetIcon(wxIcon(szExeFileName, wxBITMAP_TYPE_ICO)); } #else - SetIcon(wxIcon(var("Slic3r_128px.png"), wxBITMAP_TYPE_PNG)); + SetIcon(wxIcon(var(SLIC3R_APP_KEY "_128px.png"), wxBITMAP_TYPE_PNG)); #endif // _WIN32 this->Bind(wxEVT_SHOW, [this](wxShowEvent& evt) { diff --git a/src/slic3r/GUI/Mouse3DHandlerMac.mm b/src/slic3r/GUI/Mouse3DHandlerMac.mm index b2d07a4e0..92262a922 100644 --- a/src/slic3r/GUI/Mouse3DHandlerMac.mm +++ b/src/slic3r/GUI/Mouse3DHandlerMac.mm @@ -204,7 +204,7 @@ void Mouse3DController::init() //If no packets are recieved the name might be different - check cmake. If debugging try commenting // set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer") clientID = RegisterConnexionClient( - 0, "\013PrusaSlicer", kConnexionClientModeTakeOver, kConnexionMaskAxis); + 0, "\013" SLIC3R_APP_CMD, kConnexionClientModeTakeOver, kConnexionMaskAxis); BOOST_LOG_TRIVIAL(info) << "3dx mac handler registered"; } } diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 43a1b4d84..36abe4616 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -53,7 +53,7 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he rightsizer->Add(btn_sizer, 0, wxALIGN_RIGHT); if (! bitmap.IsOk()) { - bitmap = create_scaled_bitmap("Slic3r_192px.png", this, 192); + bitmap = create_scaled_bitmap(SLIC3R_APP_KEY "_192px.png", this, 192); } logo = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap); @@ -101,7 +101,7 @@ ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &msg, bool monospaced_ btn_sizer->Add(btn_ok, 0, wxRIGHT, HORIZ_SPACING); // Use a small bitmap with monospaced font, as the error text will not be wrapped. - logo->SetBitmap(create_scaled_bitmap("Slic3r_192px.png", this, monospaced_font ? 48 : 192)); + logo->SetBitmap(create_scaled_bitmap(SLIC3R_APP_KEY "_192px.png", this, monospaced_font ? 48 : 192)); SetMaxSize(wxSize(-1, CONTENT_MAX_HEIGHT*wxGetApp().em_unit())); Fit(); diff --git a/src/slic3r/GUI/OG_CustomCtrl.cpp b/src/slic3r/GUI/OG_CustomCtrl.cpp index cdb22d1a9..134e27b79 100644 --- a/src/slic3r/GUI/OG_CustomCtrl.cpp +++ b/src/slic3r/GUI/OG_CustomCtrl.cpp @@ -778,7 +778,7 @@ bool OG_CustomCtrl::CtrlLine::launch_browser() const bool launch = true; if (get_app_config()->get("suppress_hyperlinks").empty()) { - RememberChoiceDialog dialog(nullptr, _L("Should we open this hyperlink in your default browser?"), _L("PrusaSlicer: Open hyperlink")); + RememberChoiceDialog dialog(nullptr, _L("Should we open this hyperlink in your default browser?"), _L(SLIC3R_APP_NAME ": Open hyperlink")); int answer = dialog.ShowModal(); launch = answer == wxID_YES; @@ -807,11 +807,11 @@ RememberChoiceDialog::RememberChoiceDialog(wxWindow* parent, const wxString& msg return; wxString preferences_item = _L("Suppress to open hyperlink in browser"); wxString msg = - _L("PrusaSlicer will remember your choice.") + "\n\n" + + _L(SLIC3R_APP_NAME " will remember your choice.") + "\n\n" + _L("You will not be asked about it again on label hovering.") + "\n\n" + format_wxstr(_L("Visit \"Preferences\" and check \"%1%\"\nto changes your choice."), preferences_item); - wxMessageDialog dialog(nullptr, msg, _L("PrusaSlicer: Don't ask me again"), wxOK | wxCANCEL | wxICON_INFORMATION); + wxMessageDialog dialog(nullptr, msg, _L(SLIC3R_APP_NAME ": Don't ask me again"), wxOK | wxCANCEL | wxICON_INFORMATION); if (dialog.ShowModal() == wxID_CANCEL) m_remember_choice->SetValue(false); }); diff --git a/src/slic3r/GUI/OpenGLManager.cpp b/src/slic3r/GUI/OpenGLManager.cpp index 4f1e00793..b0830a751 100644 --- a/src/slic3r/GUI/OpenGLManager.cpp +++ b/src/slic3r/GUI/OpenGLManager.cpp @@ -256,15 +256,15 @@ bool OpenGLManager::init_gl() if (!valid_version) { // Complain about the OpenGL version. wxString message = from_u8((boost::format( - _utf8(L("PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \n" + _utf8(L(SLIC3R_APP_NAME " requires OpenGL 2.0 capable graphics driver to run correctly, \n" "while OpenGL version %s, render %s, vendor %s was detected."))) % s_gl_info.get_version() % s_gl_info.get_renderer() % s_gl_info.get_vendor()).str()); message += "\n"; message += _L("You may need to update your graphics card driver."); #ifdef _WIN32 message += "\n"; - message += _L("As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter."); + message += _L("As a workaround, you may run " SLIC3R_APP_NAME " with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter."); #endif - wxMessageBox(message, wxString("PrusaSlicer - ") + _L("Unsupported OpenGL version"), wxOK | wxICON_ERROR); + wxMessageBox(message, wxString(SLIC3R_APP_NAME " - ") + _L("Unsupported OpenGL version"), wxOK | wxICON_ERROR); } if (valid_version) { @@ -273,7 +273,7 @@ bool OpenGLManager::init_gl() if (!result) { wxString message = from_u8((boost::format( _utf8(L("Unable to load the following shaders:\n%s"))) % error).str()); - wxMessageBox(message, wxString("PrusaSlicer - ") + _L("Error loading shaders"), wxOK | wxICON_ERROR); + wxMessageBox(message, wxString(SLIC3R_APP_NAME " - ") + _L("Error loading shaders"), wxOK | wxICON_ERROR); } } } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 0788fb4ed..3b28c1339 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -4789,7 +4789,7 @@ void Plater::priv::bring_instance_forward() const BOOST_LOG_TRIVIAL(debug) << "Couldnt bring instance forward - mainframe is null"; return; } - BOOST_LOG_TRIVIAL(debug) << "prusaslicer window going forward"; + BOOST_LOG_TRIVIAL(debug) << SLIC3R_APP_CMD " window going forward"; //this code maximize app window on Fedora { main_frame->Iconize(false); diff --git a/src/slic3r/GUI/SysInfoDialog.cpp b/src/slic3r/GUI/SysInfoDialog.cpp index 23f36f80e..300d8a9b0 100644 --- a/src/slic3r/GUI/SysInfoDialog.cpp +++ b/src/slic3r/GUI/SysInfoDialog.cpp @@ -92,7 +92,7 @@ SysInfoDialog::SysInfoDialog() main_sizer->Add(hsizer, 1, wxEXPAND | wxALL, 10); // logo - m_logo_bmp = ScalableBitmap(this, wxGetApp().is_editor() ? "Slic3r_192px.png" : "PrusaSlicer-gcodeviewer_192px.png", 192); + m_logo_bmp = ScalableBitmap(this, wxGetApp().is_editor() ? SLIC3R_APP_KEY "_192px.png" : GCODEVIEWER_APP_KEY "_192px.png", 192); m_logo = new wxStaticBitmap(this, wxID_ANY, m_logo_bmp.bmp()); hsizer->Add(m_logo, 0, wxALIGN_CENTER_VERTICAL); diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp index 052fa6b60..5d4322ffb 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.cpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp @@ -534,7 +534,7 @@ void UnsavedChangesModel::Rescale() //------------------------------------------ UnsavedChangesDialog::UnsavedChangesDialog(const wxString& header) - : DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY, _L("PrusaSlicer is closing: Unsaved Changes"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) + : DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY, _L(SLIC3R_APP_NAME " is closing: Unsaved Changes"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { m_app_config_key = "default_action_on_close_application"; @@ -671,13 +671,13 @@ void UnsavedChangesDialog::build(Preset::Type type, PresetCollection* dependent_ wxString preferences_item = type == Preset::TYPE_INVALID ? _L("Ask for unsaved changes when closing application") : _L("Ask for unsaved changes when selecting new preset"); wxString msg = - _L("PrusaSlicer will remember your action.") + "\n\n" + + _L(SLIC3R_APP_NAME " will remember your action.") + "\n\n" + (type == Preset::TYPE_INVALID ? - _L("You will not be asked about the unsaved changes the next time you close PrusaSlicer.") : + _L("You will not be asked about the unsaved changes the next time you close " SLIC3R_APP_NAME ".") : _L("You will not be asked about the unsaved changes the next time you switch a preset.")) + "\n\n" + format_wxstr(_L("Visit \"Preferences\" and check \"%1%\"\nto be asked about unsaved changes again."), preferences_item); - wxMessageDialog dialog(nullptr, msg, _L("PrusaSlicer: Don't ask me again"), wxOK | wxCANCEL | wxICON_INFORMATION); + wxMessageDialog dialog(nullptr, msg, _L(SLIC3R_APP_NAME ": Don't ask me again"), wxOK | wxCANCEL | wxICON_INFORMATION); if (dialog.ShowModal() == wxID_CANCEL) m_remember_choice->SetValue(false); }); diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index 20f148130..44e39990b 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -154,7 +154,7 @@ MsgUpdateForced::MsgUpdateForced(const std::vector& updates) : "Updated configuration bundles:" )), SLIC3R_APP_NAME)); - logo->SetBitmap(create_scaled_bitmap("Slic3r_192px.png", this, 192)); + logo->SetBitmap(create_scaled_bitmap(SLIC3R_APP_KEY "_192px.png", this, 192)); text->Wrap(CONTENT_WIDTH * wxGetApp().em_unit()); content_sizer->Add(text); @@ -210,7 +210,7 @@ MsgDataIncompatible::MsgDataIncompatible(const std::unordered_mapSetBitmap(create_scaled_bitmap("Slic3r_192px.png", this, 192)); + logo->SetBitmap(create_scaled_bitmap(SLIC3R_APP_KEY "_192px.png", this, 192)); auto *text = new wxStaticText(this, wxID_ANY, wxString::Format(_(L( "This version of %s is not compatible with currently installed configuration bundles.\n" @@ -313,7 +313,7 @@ MsgNoUpdates::MsgNoUpdates() : content_sizer->Add(text); content_sizer->AddSpacer(VERT_SPACING); - logo->SetBitmap(create_scaled_bitmap("Slic3r_192px.png", this, 192)); + logo->SetBitmap(create_scaled_bitmap(SLIC3R_APP_KEY "_192px.png", this, 192)); Fit(); } diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index e38408ca6..ac6a3f18d 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -384,7 +384,7 @@ void wxDataViewTreeCtrlComboPopup::OnDataViewTreeCtrlSelection(wxCommandEvent& e // Temporary workaround for localization void edit_tooltip(wxString& tooltip) { - tooltip.Replace("Slic3r", SLIC3R_APP_KEY, true); + tooltip.Replace("Slic3r", SLIC3R_APP_NAME, true); } /* Function for rescale of buttons in Dialog under MSW if dpi is changed. diff --git a/version.inc b/version.inc index 81d4bd988..9d68ed5a8 100644 --- a/version.inc +++ b/version.inc @@ -3,7 +3,7 @@ # name of the slicer set(SLIC3R_APP_NAME "Slic3r") -# Key fo the slicer, must only contains ascii chars and no spaces +# Key fo the slicer, must only contains ascii chars and no spaces (be valid in all filesystems) set(SLIC3R_APP_KEY "Slic3r") # exe name of the slicer, should be lowercase and valid in all os set(SLIC3R_APP_CMD "Slic3r") @@ -15,9 +15,9 @@ set(SLIC3R_RC_VERSION "2,4,00,0") set(SLIC3R_RC_VERSION_DOTS "${SLIC3R_VERSION_FULL}") # Same as the slicer name but for gcodeviewer -set(GCODEVIEWER_APP_NAME "G-code Viewer") -set(GCODEVIEWER_APP_KEY "GCodeViewer") -set(GCODEVIEWER_APP_CMD "gcodeviewer") +set(GCODEVIEWER_APP_NAME "${SLIC3R_APP_NAME} G-code Viewer") +set(GCODEVIEWER_APP_KEY "${SLIC3R_APP_KEY}-gcodeviewer") +set(GCODEVIEWER_APP_CMD "${SLIC3R_APP_CMD}-gcodeviewer") # string to be added after the SLIC3R_APP_NAME on some places set(SLIC3R_BASED_ON "")