mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-14 19:05:54 +08:00
Fixes in phrases
This commit is contained in:
parent
2b667ffb6b
commit
5998e2f78d
@ -532,6 +532,7 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->set_default_value(new ConfigOptionInts { 0 });
|
def->set_default_value(new ConfigOptionInts { 0 });
|
||||||
|
|
||||||
def = this->add("chamber_temperature", coInts);
|
def = this->add("chamber_temperature", coInts);
|
||||||
|
// TRN: Label of a configuration parameter: Nominal chamber temperature.
|
||||||
def->label = L("Nominal");
|
def->label = L("Nominal");
|
||||||
def->full_label = L("Chamber temperature");
|
def->full_label = L("Chamber temperature");
|
||||||
def->tooltip = L("Required chamber temperature for the print.\nWhen set to zero, "
|
def->tooltip = L("Required chamber temperature for the print.\nWhen set to zero, "
|
||||||
@ -543,6 +544,7 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->set_default_value(new ConfigOptionInts{ 0 });
|
def->set_default_value(new ConfigOptionInts{ 0 });
|
||||||
|
|
||||||
def = this->add("chamber_minimal_temperature", coInts);
|
def = this->add("chamber_minimal_temperature", coInts);
|
||||||
|
// TRN: Label of a configuration parameter: Minimal chamber temperature
|
||||||
def->label = L("Minimal");
|
def->label = L("Minimal");
|
||||||
def->full_label = L("Chamber minimal temperature");
|
def->full_label = L("Chamber minimal temperature");
|
||||||
def->tooltip = L("Minimal chamber temperature that the printer waits for before the print starts. This allows "
|
def->tooltip = L("Minimal chamber temperature that the printer waits for before the print starts. This allows "
|
||||||
@ -635,12 +637,12 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->set_default_value(new ConfigOptionFloat(1));
|
def->set_default_value(new ConfigOptionFloat(1));
|
||||||
|
|
||||||
def = this->add("top_one_perimeter_type", coEnum);
|
def = this->add("top_one_perimeter_type", coEnum);
|
||||||
def->label = L("Only one perimeter type");
|
def->label = L("Single perimeter on top surfaces");
|
||||||
def->category = L("Layers and Perimeters");
|
def->category = L("Layers and Perimeters");
|
||||||
def->tooltip = L("Use only one perimeter on flat top surface, to give more space to the top infill pattern. Could be applied on topmost surface or all top surface.");
|
def->tooltip = L("Use only one perimeter on flat top surface, to give more space to the top infill pattern. Could be applied on topmost surface or all top surfaces.");
|
||||||
def->mode = comExpert;
|
def->mode = comExpert;
|
||||||
def->set_enum<TopOnePerimeterType>({
|
def->set_enum<TopOnePerimeterType>({
|
||||||
{ "none", L("None surfaces") },
|
{ "none", L("Disabled") },
|
||||||
{ "top", L("All top surfaces") },
|
{ "top", L("All top surfaces") },
|
||||||
{ "topmost", L("Topmost surface only") }
|
{ "topmost", L("Topmost surface only") }
|
||||||
});
|
});
|
||||||
@ -649,7 +651,7 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def = this->add("only_one_perimeter_first_layer", coBool);
|
def = this->add("only_one_perimeter_first_layer", coBool);
|
||||||
def->label = L("Only one perimeter on first layer");
|
def->label = L("Only one perimeter on first layer");
|
||||||
def->category = L("Layers and Perimeters");
|
def->category = L("Layers and Perimeters");
|
||||||
def->tooltip = L("Use only one perimeter on the first layer of model.");
|
def->tooltip = L("Use only one perimeter on the first layer.");
|
||||||
def->mode = comExpert;
|
def->mode = comExpert;
|
||||||
def->set_default_value(new ConfigOptionBool(false));
|
def->set_default_value(new ConfigOptionBool(false));
|
||||||
|
|
||||||
@ -1138,10 +1140,10 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->set_default_value(new ConfigOptionFloats { 0. });
|
def->set_default_value(new ConfigOptionFloats { 0. });
|
||||||
|
|
||||||
def = this->add("filament_infill_max_speed", coFloats);
|
def = this->add("filament_infill_max_speed", coFloats);
|
||||||
def->label = L("Max simple infill speed");
|
def->label = L("Max non-crossing infill speed");
|
||||||
def->tooltip = L("Maximum speed allowed for this filament while printing simple infill. "
|
def->tooltip = L("Maximum speed allowed for this filament while printing infill without "
|
||||||
"The term \"simple infill\" means infill without any self intersections in a single layer. "
|
"any self intersections in a single layer. "
|
||||||
"Set to zero for no limit.");
|
"Set to zero for no limit.");
|
||||||
def->sidetext = L("mm/s");
|
def->sidetext = L("mm/s");
|
||||||
def->min = 0;
|
def->min = 0;
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
@ -1149,9 +1151,9 @@ void PrintConfigDef::init_fff_params()
|
|||||||
|
|
||||||
def = this->add("filament_infill_max_crossing_speed", coFloats);
|
def = this->add("filament_infill_max_crossing_speed", coFloats);
|
||||||
def->label = L("Max crossing infill speed");
|
def->label = L("Max crossing infill speed");
|
||||||
def->tooltip = L("Maximum speed allowed for this filament while printing crossing infill. "
|
def->tooltip = L("Maximum speed allowed for this filament while printing infill with "
|
||||||
"The term \"crossing infill\" means infill with self intersections in a single layer. "
|
"self intersections in a single layer. "
|
||||||
"Set to zero for no limit.");
|
"Set to zero for no limit.");
|
||||||
def->sidetext = L("mm/s");
|
def->sidetext = L("mm/s");
|
||||||
def->min = 0;
|
def->min = 0;
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
@ -1388,10 +1390,10 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->cli = ConfigOptionDef::nocli;
|
def->cli = ConfigOptionDef::nocli;
|
||||||
|
|
||||||
def = this->add("filament_shrinkage_compensation_xy", coPercents);
|
def = this->add("filament_shrinkage_compensation_xy", coPercents);
|
||||||
def->label = L("Shrinkage XY");
|
def->label = L("Shrinkage compensation XY");
|
||||||
def->tooltip = L("Enter your filament shrinkage percentages for the X and Y axes here to apply scaling of the object to "
|
def->tooltip = L("Enter your filament shrinkage percentages for the X and Y axes here to apply scaling of the object to "
|
||||||
"compensate for shrinkage in the X and Y axes. For example, if you measured 99mm instead of 100mm, "
|
"compensate for shrinkage in the X and Y axes. For example, if you measured 99mm instead of 100mm, "
|
||||||
"then you should put here 1%.");
|
"enter 1%.");
|
||||||
def->sidetext = L("%");
|
def->sidetext = L("%");
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->min = -10.;
|
def->min = -10.;
|
||||||
@ -1399,10 +1401,10 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->set_default_value(new ConfigOptionPercents { 0 });
|
def->set_default_value(new ConfigOptionPercents { 0 });
|
||||||
|
|
||||||
def = this->add("filament_shrinkage_compensation_z", coPercents);
|
def = this->add("filament_shrinkage_compensation_z", coPercents);
|
||||||
def->label = L("Shrinkage Z");
|
def->label = L("Shrinkage compensation Z");
|
||||||
def->tooltip = L("Enter your filament shrinkage percentages for the Z axis here to apply scaling of the object to "
|
def->tooltip = L("Enter your filament shrinkage percentages for the Z axis here to apply scaling of the object to "
|
||||||
"compensate for shrinkage in the Z axis. For example, if you measured 99mm instead of 100mm, "
|
"compensate for shrinkage in the Z axis. For example, if you measured 99mm instead of 100mm, "
|
||||||
"then you should put here 1%.");
|
"enter 1%.");
|
||||||
def->sidetext = L("%");
|
def->sidetext = L("%");
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->min = -10.;
|
def->min = -10.;
|
||||||
@ -5453,8 +5455,8 @@ CLIActionsConfigDef::CLIActionsConfigDef()
|
|||||||
def->set_default_value(new ConfigOptionBool(false));
|
def->set_default_value(new ConfigOptionBool(false));
|
||||||
|
|
||||||
def = this->add("opengl-aa", coBool);
|
def = this->add("opengl-aa", coBool);
|
||||||
def->label = L("Automatic OpenGL antialising samples number selection");
|
def->label = L("Automatic OpenGL antialiasing samples number selection");
|
||||||
def->tooltip = L("Automatically select the highest number of samples for OpenGL antialising.");
|
def->tooltip = L("Automatically select the highest number of samples for OpenGL antialiasing.");
|
||||||
def->cli = "opengl-aa";
|
def->cli = "opengl-aa";
|
||||||
def->set_default_value(new ConfigOptionBool(false));
|
def->set_default_value(new ConfigOptionBool(false));
|
||||||
|
|
||||||
|
@ -1888,7 +1888,7 @@ wxString repo_title(const std::string& repo_id, const std::string& repo_name)
|
|||||||
{
|
{
|
||||||
if (repo_name.empty())
|
if (repo_name.empty())
|
||||||
{
|
{
|
||||||
return repo_id.empty() ? _L("Other Vendors") : format_wxstr(_L("%1% Vendors"), repo_id);
|
return repo_id.empty() ? wxString::FromUTF8("Unknown repo") : format_wxstr("Unnamed repo (ID %1%)", repo_id);
|
||||||
}
|
}
|
||||||
return repo_name;
|
return repo_name;
|
||||||
}
|
}
|
||||||
@ -1947,12 +1947,12 @@ PageVendors::PageVendors(ConfigWizard* parent, std::string repo_id /*= wxEmptySt
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!user_presets_list.IsEmpty()) {
|
if (!user_presets_list.IsEmpty()) {
|
||||||
wxString message = format_wxstr(_L_PLURAL("Following user preset has a same name as one of added system presets from '%1%' vendor:\n"
|
wxString message = format_wxstr(_L_PLURAL("Existing user preset '%2%' has the same name as one of new system presets from vendor '%1%'.\n"
|
||||||
"%2%Please note that this user preset will be rewrite by system preset.\n\n"
|
"Please note that this user preset will be rewritten by the system preset.\n\n"
|
||||||
"Do you still wish to add presets from '%1%'?",
|
"Do you still wish to add presets from vendor '%1%'?",
|
||||||
"Following user presets have same names as some of added system presets from '%1%' vendor:\n"
|
"Existing user presets (%2%) have the same names as some of new system presets from vendor '%1%'.\n"
|
||||||
"%2%Please note that these user presets will be rewrite by system presets.\n\n"
|
"Please note that these user presets will be rewritten by the system presets.\n\n"
|
||||||
"Do you still wish to add presets from '%1%'?",
|
"Do you still wish to add presets from vendor '%1%'?",
|
||||||
user_presets_cnt), vendor->name, user_presets_list);
|
user_presets_cnt), vendor->name, user_presets_list);
|
||||||
|
|
||||||
MessageDialog msg(this->GetParent(), message, _L("Notice"), wxYES_NO);
|
MessageDialog msg(this->GetParent(), message, _L("Notice"), wxYES_NO);
|
||||||
@ -3775,9 +3775,10 @@ bool ConfigWizard::priv::can_clear_printer_pages()
|
|||||||
if (msg.IsEmpty())
|
if (msg.IsEmpty())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
wxString message = format_wxstr( _L("Next pages will be deleted after configuration update:%1%\n"
|
// TRN: %1% contains list of pages to be removed, each on its own line and ending with a line break.
|
||||||
"Installed presets will be uninstalled.\n"
|
wxString message = format_wxstr( _L("Following Configuration Wizard pages will be removed after the configuration update:\n\n%1%\n"
|
||||||
"Would you like to process it?"), "\n\n"+ msg);
|
"Installed presets for the respective printers will also be removed.\n"
|
||||||
|
"Do you want to continue?"), msg);
|
||||||
|
|
||||||
MessageDialog msg_dlg(this->q, message, _L("Notice"), wxYES_NO);
|
MessageDialog msg_dlg(this->q, message, _L("Notice"), wxYES_NO);
|
||||||
return msg_dlg.ShowModal() == wxID_YES;
|
return msg_dlg.ShowModal() == wxID_YES;
|
||||||
|
@ -504,7 +504,7 @@ bool DSForLayers::render_multi_extruders_menu(bool switch_current_code/* = false
|
|||||||
void DSForLayers::render_color_picker()
|
void DSForLayers::render_color_picker()
|
||||||
{
|
{
|
||||||
ImGuiContext& context = *GImGui;
|
ImGuiContext& context = *GImGui;
|
||||||
const std::string title = _u8L("Select color for color change");
|
const std::string title = _u8L("Select color for Color Change");
|
||||||
if (m_show_color_picker) {
|
if (m_show_color_picker) {
|
||||||
|
|
||||||
ImGuiPureWrap::set_next_window_pos(1200, 200, ImGuiCond_Always, 0.5f, 0.0f);
|
ImGuiPureWrap::set_next_window_pos(1200, 200, ImGuiCond_Always, 0.5f, 0.0f);
|
||||||
@ -532,7 +532,7 @@ void DSForLayers::render_cog_menu()
|
|||||||
if (ImGuiPureWrap::menu_item_with_icon(_u8L("Jump to height").c_str(), "Shift+G")) {
|
if (ImGuiPureWrap::menu_item_with_icon(_u8L("Jump to height").c_str(), "Shift+G")) {
|
||||||
jump_to_value();
|
jump_to_value();
|
||||||
}
|
}
|
||||||
if (ImGuiPureWrap::menu_item_with_icon(_u8L("Show estimated print time on mouse moving").c_str(), "", icon_sz, 0, m_show_estimated_times)) {
|
if (ImGuiPureWrap::menu_item_with_icon(_u8L("Show estimated print time on hover").c_str(), "", icon_sz, 0, m_show_estimated_times)) {
|
||||||
m_show_estimated_times = !m_show_estimated_times;
|
m_show_estimated_times = !m_show_estimated_times;
|
||||||
}
|
}
|
||||||
if (m_mode == MultiAsSingle && m_draw_mode == dmRegular &&
|
if (m_mode == MultiAsSingle && m_draw_mode == dmRegular &&
|
||||||
|
@ -256,6 +256,7 @@ static std::string to_string(libvgcode::EMoveType type)
|
|||||||
{
|
{
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
|
// TRN: Following strings are labels in the G-code Viewer legend.
|
||||||
case libvgcode::EMoveType::Noop: { return _u8L("Noop"); }
|
case libvgcode::EMoveType::Noop: { return _u8L("Noop"); }
|
||||||
case libvgcode::EMoveType::Retract: { return _u8L("Retract"); }
|
case libvgcode::EMoveType::Retract: { return _u8L("Retract"); }
|
||||||
case libvgcode::EMoveType::Unretract: { return _u8L("Unretract"); }
|
case libvgcode::EMoveType::Unretract: { return _u8L("Unretract"); }
|
||||||
@ -275,6 +276,7 @@ static std::string to_string(libvgcode::EGCodeExtrusionRole role)
|
|||||||
{
|
{
|
||||||
switch (role)
|
switch (role)
|
||||||
{
|
{
|
||||||
|
// TRN: Following strings are labels in the G-code Viewer legend.
|
||||||
case libvgcode::EGCodeExtrusionRole::None: { return _u8L("Unknown"); }
|
case libvgcode::EGCodeExtrusionRole::None: { return _u8L("Unknown"); }
|
||||||
case libvgcode::EGCodeExtrusionRole::Perimeter: { return _u8L("Perimeter"); }
|
case libvgcode::EGCodeExtrusionRole::Perimeter: { return _u8L("Perimeter"); }
|
||||||
case libvgcode::EGCodeExtrusionRole::ExternalPerimeter: { return _u8L("External perimeter"); }
|
case libvgcode::EGCodeExtrusionRole::ExternalPerimeter: { return _u8L("External perimeter"); }
|
||||||
@ -326,6 +328,7 @@ void GCodeViewer::SequentialView::Marker::render_position_window(const libvgcode
|
|||||||
ImGuiPureWrap::text(std::string(buf));
|
ImGuiPureWrap::text(std::string(buf));
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
// TRN: Show/hide properties is a tooltip on a button which toggles an extra window in the G-code Viewer, showing properties of current G-code segment.
|
||||||
if (imgui.image_button(properties_shown ? ImGui::HorizontalHide : ImGui::HorizontalShow, properties_shown ? _u8L("Hide properties") : _u8L("Show properties"))) {
|
if (imgui.image_button(properties_shown ? ImGui::HorizontalHide : ImGui::HorizontalShow, properties_shown ? _u8L("Hide properties") : _u8L("Show properties"))) {
|
||||||
properties_shown = !properties_shown;
|
properties_shown = !properties_shown;
|
||||||
imgui.requires_extra_frame();
|
imgui.requires_extra_frame();
|
||||||
|
@ -3268,6 +3268,7 @@ bool GUI_App::run_wizard(ConfigWizard::RunReason reason, ConfigWizard::StartPage
|
|||||||
// ConfigWizard can take some time to start. Because it is a wxWidgets window, it has to be done
|
// ConfigWizard can take some time to start. Because it is a wxWidgets window, it has to be done
|
||||||
// in UI thread, so displaying a nice modal dialog and letting the CW start in a worker thread
|
// in UI thread, so displaying a nice modal dialog and letting the CW start in a worker thread
|
||||||
// is not an option. Let's at least show a modeless dialog before the UI thread freezes.
|
// is not an option. Let's at least show a modeless dialog before the UI thread freezes.
|
||||||
|
// TRN: Text showing while the ConfigWizard is loading, so the user knows something is happening.
|
||||||
auto cw_loading_dlg = new ConfigWizardLoadingDialog(mainframe, _L("Loading Configuration Wizard..."));
|
auto cw_loading_dlg = new ConfigWizardLoadingDialog(mainframe, _L("Loading Configuration Wizard..."));
|
||||||
cw_loading_dlg->CenterOnParent();
|
cw_loading_dlg->CenterOnParent();
|
||||||
cw_loading_dlg->Show();
|
cw_loading_dlg->Show();
|
||||||
@ -3516,10 +3517,13 @@ bool GUI_App::check_updates(const bool invoked_by_user)
|
|||||||
// for preset_updater sync we need to sync archive database first
|
// for preset_updater sync we need to sync archive database first
|
||||||
plater()->get_preset_archive_database()->sync_blocking();
|
plater()->get_preset_archive_database()->sync_blocking();
|
||||||
// Now re-extract offline repos
|
// Now re-extract offline repos
|
||||||
std::string extract_msg;
|
std::string failed_paths;
|
||||||
if (!plater()->get_preset_archive_database()->extract_archives_with_check(extract_msg)) {
|
if (!plater()->get_preset_archive_database()->extract_archives_with_check(failed_paths)) {
|
||||||
extract_msg = GUI::format("%1%\n\n%2%", _L("Following repositories won't be updated:"), extract_msg);
|
int cnt = std::count(failed_paths.begin(), failed_paths.end(), '\n') + 1;
|
||||||
show_error(nullptr, extract_msg);
|
// TRN: %1% contains paths from which loading failed. They are separated by \n, there is no \n at the end.
|
||||||
|
failed_paths = GUI::format(_L_PLURAL("It was not possible to extract data from %1%. The repository will not be updated.",
|
||||||
|
"It was not possible to extract data for following local repositories. They will not be updated.\n\n %1%", cnt), failed_paths);
|
||||||
|
show_error(nullptr, failed_paths);
|
||||||
}
|
}
|
||||||
// then its time for preset_updater sync
|
// then its time for preset_updater sync
|
||||||
preset_updater->sync_blocking(preset_bundle, this, plater()->get_preset_archive_database()->get_selected_archive_repositories());
|
preset_updater->sync_blocking(preset_bundle, this, plater()->get_preset_archive_database()->get_selected_archive_repositories());
|
||||||
@ -3592,7 +3596,7 @@ bool GUI_App::open_login_browser_with_dialog(const wxString& url, wxWindow* pare
|
|||||||
{
|
{
|
||||||
bool auth_login_dialog_confirmed = app_config->get_bool("auth_login_dialog_confirmed");
|
bool auth_login_dialog_confirmed = app_config->get_bool("auth_login_dialog_confirmed");
|
||||||
if (!auth_login_dialog_confirmed) {
|
if (!auth_login_dialog_confirmed) {
|
||||||
RichMessageDialog dialog(parent, _L("Open default browser with Prusa Account Log in page?\n(On Yes, You will not be asked again.)"), _L("PrusaSlicer: Open Log in page"), wxICON_QUESTION | wxYES_NO);
|
RichMessageDialog dialog(parent, _L("Open default browser with Prusa Account Log in page?\n(If you select 'Yes', you will not be asked again.)"), _L("PrusaSlicer: Open Log in page"), wxICON_QUESTION | wxYES_NO);
|
||||||
if (dialog.ShowModal() != wxID_YES)
|
if (dialog.ShowModal() != wxID_YES)
|
||||||
return false;
|
return false;
|
||||||
app_config->set("auth_login_dialog_confirmed", "1");
|
app_config->set("auth_login_dialog_confirmed", "1");
|
||||||
@ -3852,8 +3856,8 @@ bool GUI_App::select_printer_from_connect(const std::string& msg)
|
|||||||
bool is_installed = printer_preset && select_printer_preset(printer_preset);
|
bool is_installed = printer_preset && select_printer_preset(printer_preset);
|
||||||
// notification
|
// notification
|
||||||
std::string out = printer_preset ?
|
std::string out = printer_preset ?
|
||||||
(is_installed ? GUI::format(_L("Installed and Selected Printer:\n%1%"), printer_preset->name) :
|
(is_installed ? GUI::format(_L("Installed and selected printer:\n%1%"), printer_preset->name) :
|
||||||
GUI::format(_L("Selected Printer:\n%1%"), printer_preset->name)) :
|
GUI::format(_L("Selected printer:\n%1%"), printer_preset->name)) :
|
||||||
GUI::format(_L("Printer not found:\n%1%"), model_name);
|
GUI::format(_L("Printer not found:\n%1%"), model_name);
|
||||||
this->plater()->get_notification_manager()->close_notification_of_type(NotificationType::SelectPrinterFromConnect);
|
this->plater()->get_notification_manager()->close_notification_of_type(NotificationType::SelectPrinterFromConnect);
|
||||||
this->plater()->get_notification_manager()->push_notification(
|
this->plater()->get_notification_manager()->push_notification(
|
||||||
@ -3898,7 +3902,7 @@ void GUI_App::search_and_select_filaments(const std::string& material, size_t ex
|
|||||||
{
|
{
|
||||||
out_message += /*(extruder_count == 1)
|
out_message += /*(extruder_count == 1)
|
||||||
? GUI::format(_L("Selected Filament:\n%1%"), filament_preset.preset->name)
|
? GUI::format(_L("Selected Filament:\n%1%"), filament_preset.preset->name)
|
||||||
: */GUI::format(_L("Extruder %1%: Selected Filament %2%\n"), extruder_index + 1, filament.preset->name);
|
: */GUI::format(_L("Extruder %1%: Selected filament %2%\n"), extruder_index + 1, filament.preset->name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3930,11 +3934,11 @@ void GUI_App::search_and_select_filaments(const std::string& material, size_t ex
|
|||||||
&& filament.preset->name.compare(0, 9, "Prusament") == 0
|
&& filament.preset->name.compare(0, 9, "Prusament") == 0
|
||||||
&& select_filament_preset(filament.preset, extruder_index))
|
&& select_filament_preset(filament.preset, extruder_index))
|
||||||
{
|
{
|
||||||
out_message += GUI::format(_L("Extruder %1%: Selected and Installed Filament %2%\n"), extruder_index + 1, filament.preset->name);
|
out_message += GUI::format(_L("Extruder %1%: Selected and installed filament %2%\n"), extruder_index + 1, filament.preset->name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
out_message += GUI::format(_L("Extruder %2%: Failed to Find and Select Filament type: %1%\n"), material, extruder_index + 1);
|
out_message += GUI::format(_L("Extruder %2%: Failed to find and select filament type: %1%\n"), material, extruder_index + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUI_App::select_filament_from_connect(const std::string& msg)
|
void GUI_App::select_filament_from_connect(const std::string& msg)
|
||||||
|
@ -1867,9 +1867,8 @@ void MainFrame::export_configbundle(bool export_physical_printers /*= false*/)
|
|||||||
#if wxUSE_SECRETSTORE
|
#if wxUSE_SECRETSTORE
|
||||||
// First password prompts user with dialog
|
// First password prompts user with dialog
|
||||||
if (!passwords_dialog_shown) {
|
if (!passwords_dialog_shown) {
|
||||||
//wxString msg = GUI::format_wxstr(L"%1%\n%2%", _L("Some of the exported printers contains passwords, which are stored in the system password store."), _L("Do you wish to include the passwords to the exported file in the plain text form?"));
|
wxString msg = _L("Some of the exported printers contain passwords, which are stored in the system password store."
|
||||||
wxString msg = _L("Some of the exported printers contains passwords, which are stored in the system password store."
|
" Do you want to include the passwords in the plain text form in the exported file?");
|
||||||
" Do you wish to include the passwords in the plain text form to the exported file?");
|
|
||||||
MessageDialog dlg_psswd(this, msg, wxMessageBoxCaptionStr, wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION);
|
MessageDialog dlg_psswd(this, msg, wxMessageBoxCaptionStr, wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION);
|
||||||
if (dlg_psswd.ShowModal() == wxID_YES)
|
if (dlg_psswd.ShowModal() == wxID_YES)
|
||||||
passwords_to_plain = true;
|
passwords_to_plain = true;
|
||||||
@ -1891,7 +1890,7 @@ void MainFrame::export_configbundle(bool export_physical_printers /*= false*/)
|
|||||||
wxString username;
|
wxString username;
|
||||||
wxSecretValue password;
|
wxSecretValue password;
|
||||||
if (!store.Load(service, username, password)) {
|
if (!store.Load(service, username, password)) {
|
||||||
std::string msg = GUI::format(_u8L("Failed to load credentials from the system secret store for the printer %1%."), printer_id);
|
std::string msg = GUI::format(_u8L("Failed to load credentials from the system secret store for printer %1%."), printer_id);
|
||||||
BOOST_LOG_TRIVIAL(error) << msg;
|
BOOST_LOG_TRIVIAL(error) << msg;
|
||||||
show_error(nullptr, msg);
|
show_error(nullptr, msg);
|
||||||
return false;
|
return false;
|
||||||
|
@ -917,7 +917,8 @@ private:
|
|||||||
{NotificationType::URLNotRegistered
|
{NotificationType::URLNotRegistered
|
||||||
, NotificationLevel::RegularNotificationLevel
|
, NotificationLevel::RegularNotificationLevel
|
||||||
, 10
|
, 10
|
||||||
, _u8L("PrusaSlicer recieved a download request from Printables.com, but it's not allowed. You can allow it")
|
// TRN: The text is followed by a hyperlink saying "here." It is necessary to split it in two phrases, sorry.
|
||||||
|
, _u8L("PrusaSlicer received a download request from Printables.com, but it's not allowed. You can allow it")
|
||||||
, _u8L("here.")
|
, _u8L("here.")
|
||||||
, [](wxEvtHandler* evnthndlr) {
|
, [](wxEvtHandler* evnthndlr) {
|
||||||
wxGetApp().open_preferences("downloader_url_registered", "Other");
|
wxGetApp().open_preferences("downloader_url_registered", "Other");
|
||||||
|
@ -381,10 +381,10 @@ bool OpenGLManager::init_gl()
|
|||||||
wxString message = format_wxstr(
|
wxString message = format_wxstr(
|
||||||
#if SLIC3R_OPENGL_ES
|
#if SLIC3R_OPENGL_ES
|
||||||
_L("PrusaSlicer requires OpenGL ES 3.0 capable graphics driver to run correctly, \n"
|
_L("PrusaSlicer requires OpenGL ES 3.0 capable graphics driver to run correctly, \n"
|
||||||
"while OpenGL version %s, render %s, vendor %s was detected."), s_gl_info.get_version_string(), s_gl_info.get_renderer(), s_gl_info.get_vendor());
|
"while OpenGL version %s, renderer %s, vendor %s was detected."), s_gl_info.get_version_string(), s_gl_info.get_renderer(), s_gl_info.get_vendor());
|
||||||
#else
|
#else
|
||||||
_L("PrusaSlicer requires OpenGL 3.2 capable graphics driver to run correctly,\n"
|
_L("PrusaSlicer requires OpenGL 3.2 capable graphics driver to run correctly,\n"
|
||||||
"while OpenGL version %s, render %s, vendor %s was detected."), s_gl_info.get_version_string(), s_gl_info.get_renderer(), s_gl_info.get_vendor());
|
"while OpenGL version %s, renderer %s, vendor %s was detected."), s_gl_info.get_version_string(), s_gl_info.get_renderer(), s_gl_info.get_vendor());
|
||||||
#endif // SLIC3R_OPENGL_ES
|
#endif // SLIC3R_OPENGL_ES
|
||||||
message += "\n";
|
message += "\n";
|
||||||
message += _L("You may need to update your graphics card driver.");
|
message += _L("You may need to update your graphics card driver.");
|
||||||
|
@ -889,7 +889,7 @@ void PhysicalPrinterDialog::OnOK(wxEvent& event)
|
|||||||
const auto opt = m_config->option<ConfigOptionEnum<PrintHostType>>("host_type");
|
const auto opt = m_config->option<ConfigOptionEnum<PrintHostType>>("host_type");
|
||||||
if (opt->value == htPrusaConnect) {
|
if (opt->value == htPrusaConnect) {
|
||||||
if (printhost_win && printhost_win->GetValue() != L"https://connect.prusa3d.com"){
|
if (printhost_win && printhost_win->GetValue() != L"https://connect.prusa3d.com"){
|
||||||
InfoDialog msg(this, _L("Warning"), _L("URL of PrusaConnect is different from https://connect.prusa3d.com. Do you want to continue?"), true, wxYES_NO);
|
InfoDialog msg(this, _L("Warning"), _L("URL of Prusa Connect is different from https://connect.prusa3d.com. Do you want to continue?"), true, wxYES_NO);
|
||||||
if(msg.ShowModal() != wxID_YES){
|
if(msg.ShowModal() != wxID_YES){
|
||||||
printhost_win->SetValue(L"https://connect.prusa3d.com");
|
printhost_win->SetValue(L"https://connect.prusa3d.com");
|
||||||
return;
|
return;
|
||||||
|
@ -991,7 +991,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||||||
this->q->Bind(EVT_UA_PRUSACONNECT_PRINTER_DATA_FAIL, [this](UserAccountFailEvent& evt) {
|
this->q->Bind(EVT_UA_PRUSACONNECT_PRINTER_DATA_FAIL, [this](UserAccountFailEvent& evt) {
|
||||||
BOOST_LOG_TRIVIAL(error) << "Failed communication with Prusa Account: " << evt.data;
|
BOOST_LOG_TRIVIAL(error) << "Failed communication with Prusa Account: " << evt.data;
|
||||||
user_account->on_communication_fail();
|
user_account->on_communication_fail();
|
||||||
std::string msg = _u8L("Failed to select printer from PrusaConnect.");
|
std::string msg = _u8L("Failed to select printer from Prusa Connect.");
|
||||||
this->notification_manager->close_notification_of_type(NotificationType::SelectFilamentFromConnect);
|
this->notification_manager->close_notification_of_type(NotificationType::SelectFilamentFromConnect);
|
||||||
this->notification_manager->push_notification(NotificationType::SelectFilamentFromConnect, NotificationManager::NotificationLevel::WarningNotificationLevel, msg);
|
this->notification_manager->push_notification(NotificationType::SelectFilamentFromConnect, NotificationManager::NotificationLevel::WarningNotificationLevel, msg);
|
||||||
});
|
});
|
||||||
@ -1461,8 +1461,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
|||||||
if (!found) {
|
if (!found) {
|
||||||
// return to original print profile
|
// return to original print profile
|
||||||
wxGetApp().get_tab(Preset::Type::TYPE_SLA_PRINT)->select_preset(edited_print_name, false);
|
wxGetApp().get_tab(Preset::Type::TYPE_SLA_PRINT)->select_preset(edited_print_name, false);
|
||||||
std::string notif_text = into_u8(_L("Material preset was not loaded:"));
|
std::string notif_text = GUI::format(_L("Material preset was not loaded:\n - %1%"), preset_name);
|
||||||
notif_text += "\n - " + preset_name;
|
|
||||||
q->get_notification_manager()->push_notification(NotificationType::CustomNotification,
|
q->get_notification_manager()->push_notification(NotificationType::CustomNotification,
|
||||||
NotificationManager::NotificationLevel::PrintInfoNotificationLevel, notif_text);
|
NotificationManager::NotificationLevel::PrintInfoNotificationLevel, notif_text);
|
||||||
break;
|
break;
|
||||||
@ -5987,7 +5986,7 @@ void Plater::connect_gcode()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (dialog_msg.empty()) {
|
if (dialog_msg.empty()) {
|
||||||
show_error(this, _L("Failed to select a printer. PrusaConnect did not return a value."));
|
show_error(this, _L("Failed to select a printer."));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
BOOST_LOG_TRIVIAL(debug) << "Message from Printer pick webview: " << dialog_msg;
|
BOOST_LOG_TRIVIAL(debug) << "Message from Printer pick webview: " << dialog_msg;
|
||||||
@ -6008,7 +6007,7 @@ void Plater::connect_gcode()
|
|||||||
|
|
||||||
std::string data_subtree = p->user_account->get_print_data_from_json(dialog_msg, "data");
|
std::string data_subtree = p->user_account->get_print_data_from_json(dialog_msg, "data");
|
||||||
if (filename.empty() || team_id.empty() || data_subtree.empty()) {
|
if (filename.empty() || team_id.empty() || data_subtree.empty()) {
|
||||||
std::string msg = _u8L("Failed to read response from Connect server. Upload is canceled.");
|
std::string msg = _u8L("Failed to read response from Prusa Connect server. Upload is cancelled.");
|
||||||
BOOST_LOG_TRIVIAL(error) << msg;
|
BOOST_LOG_TRIVIAL(error) << msg;
|
||||||
BOOST_LOG_TRIVIAL(error) << "Response: " << dialog_msg;
|
BOOST_LOG_TRIVIAL(error) << "Response: " << dialog_msg;
|
||||||
show_error(this, msg);
|
show_error(this, msg);
|
||||||
|
@ -353,7 +353,7 @@ bool PresetArchiveDatabase::set_selected_repositories(const std::vector<std::str
|
|||||||
if (!archive->is_extracted()) {
|
if (!archive->is_extracted()) {
|
||||||
// non existent local repo since start selected
|
// non existent local repo since start selected
|
||||||
msg = GUI::format(
|
msg = GUI::format(
|
||||||
_L("Cannot select offline repository from path: %1%. It was not extracted."),
|
_L("Cannot select local repository from path: %1%. It was not extracted."),
|
||||||
archive->get_manifest().source_path
|
archive->get_manifest().source_path
|
||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
@ -380,12 +380,12 @@ bool PresetArchiveDatabase::set_selected_repositories(const std::vector<std::str
|
|||||||
bool PresetArchiveDatabase::extract_archives_with_check(std::string &msg)
|
bool PresetArchiveDatabase::extract_archives_with_check(std::string &msg)
|
||||||
{
|
{
|
||||||
extract_local_archives();
|
extract_local_archives();
|
||||||
for (auto &pair : m_selected_repositories_uuid) {
|
for (const std::pair<std::string, bool>& pair : m_selected_repositories_uuid) {
|
||||||
if (!pair.second) {
|
if (!pair.second) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
std::string uuid = pair.first;
|
const std::string uuid = pair.first;
|
||||||
auto compare_repo = [uuid](const std::unique_ptr<ArchiveRepository> &repo) {
|
auto compare_repo = [&uuid](const std::unique_ptr<ArchiveRepository> &repo) {
|
||||||
return repo->get_uuid() == uuid;
|
return repo->get_uuid() == uuid;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -393,10 +393,7 @@ bool PresetArchiveDatabase::extract_archives_with_check(std::string &msg)
|
|||||||
assert(archives_it != m_archive_repositories.end());
|
assert(archives_it != m_archive_repositories.end());
|
||||||
if (!archives_it->get()->is_extracted()) {
|
if (!archives_it->get()->is_extracted()) {
|
||||||
// non existent local repo since start selected
|
// non existent local repo since start selected
|
||||||
msg += GUI::format(
|
msg += std::string(msg.empty() ? "" : "\n") + archives_it->get()->get_manifest().source_path.string();
|
||||||
_L("Offline repository from path: %1% was not extracted.\n"),
|
|
||||||
archives_it->get()->get_manifest().source_path
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return msg.empty();
|
return msg.empty();
|
||||||
|
@ -740,14 +740,17 @@ PlaterPresetComboBox::PlaterPresetComboBox(wxWindow *parent, Preset::Type preset
|
|||||||
|
|
||||||
connect_info_sizer->Add(new wxStaticBitmap(parent, wxID_ANY, *get_bmp_bundle("connect_status", 14, 14, "#5CD800")), 0, wxALIGN_CENTER_VERTICAL | wxTOP, 1);
|
connect_info_sizer->Add(new wxStaticBitmap(parent, wxID_ANY, *get_bmp_bundle("connect_status", 14, 14, "#5CD800")), 0, wxALIGN_CENTER_VERTICAL | wxTOP, 1);
|
||||||
connect_info_sizer->Add(connect_available_info, 0, wxALIGN_CENTER_VERTICAL);
|
connect_info_sizer->Add(connect_available_info, 0, wxALIGN_CENTER_VERTICAL);
|
||||||
|
// TRN: this is part of the infoline below Printer Settings dropdown, informing about number of printers available/offline/printing in Prusa Connect.
|
||||||
connect_info_sizer->Add(new wxStaticText(parent, wxID_ANY, _L("available")), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
connect_info_sizer->Add(new wxStaticText(parent, wxID_ANY, _L("available")), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
||||||
|
|
||||||
connect_info_sizer->Add(new wxStaticBitmap(parent, wxID_ANY, *get_bmp_bundle("connect_status", 14, 14, "#FB3636")), 0, wxALIGN_CENTER_VERTICAL | wxTOP, 1);
|
connect_info_sizer->Add(new wxStaticBitmap(parent, wxID_ANY, *get_bmp_bundle("connect_status", 14, 14, "#FB3636")), 0, wxALIGN_CENTER_VERTICAL | wxTOP, 1);
|
||||||
connect_info_sizer->Add(connect_offline_info, 0, wxALIGN_CENTER_VERTICAL);
|
connect_info_sizer->Add(connect_offline_info, 0, wxALIGN_CENTER_VERTICAL);
|
||||||
|
// TRN: this is part of the infoline below Printer Settings dropdown, informing about number of printers available/offline/printing in Prusa Connect.
|
||||||
connect_info_sizer->Add(new wxStaticText(parent, wxID_ANY, _L("offline")), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
connect_info_sizer->Add(new wxStaticText(parent, wxID_ANY, _L("offline")), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
||||||
|
|
||||||
connect_info_sizer->Add(new wxStaticBitmap(parent, wxID_ANY, *get_bmp_bundle("connect_status", 14, 14, "#2E9BFF")), 0, wxALIGN_CENTER_VERTICAL | wxTOP, 1);
|
connect_info_sizer->Add(new wxStaticBitmap(parent, wxID_ANY, *get_bmp_bundle("connect_status", 14, 14, "#2E9BFF")), 0, wxALIGN_CENTER_VERTICAL | wxTOP, 1);
|
||||||
connect_info_sizer->Add(connect_printing_info, 0, wxALIGN_CENTER_VERTICAL);
|
connect_info_sizer->Add(connect_printing_info, 0, wxALIGN_CENTER_VERTICAL);
|
||||||
|
// TRN: this is part of the infoline below Printer Settings dropdown, informing about number of printers available/offline/printing in Prusa Connect.
|
||||||
connect_info_sizer->Add(new wxStaticText(parent, wxID_ANY, _L("printing")), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
connect_info_sizer->Add(new wxStaticText(parent, wxID_ANY, _L("printing")), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -471,7 +471,7 @@ TopBarItemsCtrl::TopBarItemsCtrl(wxWindow *parent, TopBarMenus* menus/* = nullpt
|
|||||||
|
|
||||||
wxBoxSizer* right_sizer = new wxBoxSizer(wxHORIZONTAL);
|
wxBoxSizer* right_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
|
||||||
m_workspace_btn = new ButtonWithPopup(this, _L("Workspace"), "mode_simple");
|
m_workspace_btn = new ButtonWithPopup(this, "Workspace", "mode_simple");
|
||||||
right_sizer->AddStretchSpacer(20);
|
right_sizer->AddStretchSpacer(20);
|
||||||
right_sizer->Add(m_workspace_btn, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, m_btn_margin);
|
right_sizer->Add(m_workspace_btn, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, m_btn_margin);
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ RepositoryUpdateUIManager::RepositoryUpdateUIManager(wxWindow* parent, PresetArc
|
|||||||
|
|
||||||
m_main_sizer->AddSpacer(em);
|
m_main_sizer->AddSpacer(em);
|
||||||
|
|
||||||
auto offline_label = new wxStaticText(m_parent, wxID_ANY, _L("Offline Repositories"));
|
auto offline_label = new wxStaticText(m_parent, wxID_ANY, _L("Local Repositories"));
|
||||||
offline_label->SetFont(wxGetApp().bold_font());
|
offline_label->SetFont(wxGetApp().bold_font());
|
||||||
|
|
||||||
m_main_sizer->Add(offline_label, 0, wxTOP | wxLEFT, 2 * em);
|
m_main_sizer->Add(offline_label, 0, wxTOP | wxLEFT, 2 * em);
|
||||||
@ -97,7 +97,8 @@ void RepositoryUpdateUIManager::fill_grids()
|
|||||||
|
|
||||||
// header
|
// header
|
||||||
|
|
||||||
for (const wxString& l : std::initializer_list<wxString>{ _L("Use"), "", _L("Name"), _L("Descrition") }) {
|
// TRN: This string appears in Configuration Wizard in the 'Configuration Manager' step.
|
||||||
|
for (const wxString& l : std::initializer_list<wxString>{ _L("Use"), "", _L("Name"), _L("Description") }) {
|
||||||
auto text = new wxStaticText(m_parent, wxID_ANY, l);
|
auto text = new wxStaticText(m_parent, wxID_ANY, l);
|
||||||
text->SetFont(wxGetApp().bold_font());
|
text->SetFont(wxGetApp().bold_font());
|
||||||
add(text);
|
add(text);
|
||||||
@ -165,7 +166,7 @@ void RepositoryUpdateUIManager::fill_grids()
|
|||||||
|
|
||||||
{
|
{
|
||||||
wxStaticBitmap* bmp = new wxStaticBitmap(m_parent, wxID_ANY, *get_bmp_bundle(entry.is_ok ? "tick_mark" : "exclamation"));
|
wxStaticBitmap* bmp = new wxStaticBitmap(m_parent, wxID_ANY, *get_bmp_bundle(entry.is_ok ? "tick_mark" : "exclamation"));
|
||||||
bmp->SetToolTip(entry.is_ok ? _L("Exists") : _L("Doesn't exist"));
|
bmp->SetToolTip(entry.is_ok ? _L("File exists") : _L("File does NOT exist"));
|
||||||
add(bmp);
|
add(bmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -240,7 +241,7 @@ void RepositoryUpdateUIManager::remove_offline_repos(const std::string& id)
|
|||||||
void RepositoryUpdateUIManager::load_offline_repos()
|
void RepositoryUpdateUIManager::load_offline_repos()
|
||||||
{
|
{
|
||||||
wxArrayString input_files;
|
wxArrayString input_files;
|
||||||
wxFileDialog dialog(m_parent, _L("Choose one or more ZIP-files") + ":",
|
wxFileDialog dialog(m_parent, _L("Choose one or more ZIP files") + ":",
|
||||||
from_u8(wxGetApp().app_config->get_last_dir()), "",
|
from_u8(wxGetApp().app_config->get_last_dir()), "",
|
||||||
file_wildcards(FT_ZIP), wxFD_OPEN | /*wxFD_MULTIPLE | */wxFD_FILE_MUST_EXIST);
|
file_wildcards(FT_ZIP), wxFD_OPEN | /*wxFD_MULTIPLE | */wxFD_FILE_MUST_EXIST);
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ namespace {
|
|||||||
|
|
||||||
bool UserAccount::on_connect_printers_success(const std::string& data, AppConfig* app_config, bool& out_printers_changed)
|
bool UserAccount::on_connect_printers_success(const std::string& data, AppConfig* app_config, bool& out_printers_changed)
|
||||||
{
|
{
|
||||||
BOOST_LOG_TRIVIAL(debug) << "PrusaConnect printers message: " << data;
|
BOOST_LOG_TRIVIAL(debug) << "Prusa Connect printers message: " << data;
|
||||||
pt::ptree ptree;
|
pt::ptree ptree;
|
||||||
try {
|
try {
|
||||||
std::stringstream ss(data);
|
std::stringstream ss(data);
|
||||||
|
@ -86,19 +86,19 @@ WebViewPanel::WebViewPanel(wxWindow *parent, const wxString& default_url, const
|
|||||||
#ifdef DEBUG_URL_PANEL
|
#ifdef DEBUG_URL_PANEL
|
||||||
// Create the Tools menu
|
// Create the Tools menu
|
||||||
m_tools_menu = new wxMenu();
|
m_tools_menu = new wxMenu();
|
||||||
wxMenuItem* viewSource = m_tools_menu->Append(wxID_ANY, _L("View Source"));
|
wxMenuItem* viewSource = m_tools_menu->Append(wxID_ANY, "View Source");
|
||||||
wxMenuItem* viewText = m_tools_menu->Append(wxID_ANY, _L("View Text"));
|
wxMenuItem* viewText = m_tools_menu->Append(wxID_ANY, "View Text");
|
||||||
m_tools_menu->AppendSeparator();
|
m_tools_menu->AppendSeparator();
|
||||||
|
|
||||||
wxMenu* script_menu = new wxMenu;
|
wxMenu* script_menu = new wxMenu;
|
||||||
|
|
||||||
m_script_custom = script_menu->Append(wxID_ANY, "Custom script");
|
m_script_custom = script_menu->Append(wxID_ANY, "Custom script");
|
||||||
m_tools_menu->AppendSubMenu(script_menu, _L("Run Script"));
|
m_tools_menu->AppendSubMenu(script_menu, "Run Script");
|
||||||
wxMenuItem* addUserScript = m_tools_menu->Append(wxID_ANY, _L("Add user script"));
|
wxMenuItem* addUserScript = m_tools_menu->Append(wxID_ANY, "Add user script");
|
||||||
wxMenuItem* setCustomUserAgent = m_tools_menu->Append(wxID_ANY, _L("Set custom user agent"));
|
wxMenuItem* setCustomUserAgent = m_tools_menu->Append(wxID_ANY, "Set custom user agent");
|
||||||
|
|
||||||
m_context_menu = m_tools_menu->AppendCheckItem(wxID_ANY, _L("Enable Context Menu"));
|
m_context_menu = m_tools_menu->AppendCheckItem(wxID_ANY, "Enable Context Menu");
|
||||||
m_dev_tools = m_tools_menu->AppendCheckItem(wxID_ANY, _L("Enable Dev Tools"));
|
m_dev_tools = m_tools_menu->AppendCheckItem(wxID_ANY, "Enable Dev Tools");
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -443,7 +443,7 @@ case type: \
|
|||||||
BOOST_LOG_TRIVIAL(error) << "WebViewPanel error: " << category;
|
BOOST_LOG_TRIVIAL(error) << "WebViewPanel error: " << category;
|
||||||
load_error_page();
|
load_error_page();
|
||||||
#ifdef DEBUG_URL_PANEL
|
#ifdef DEBUG_URL_PANEL
|
||||||
m_info->ShowMessage(_L("An error occurred loading ") + evt.GetURL() + "\n" +
|
m_info->ShowMessage(wxString("An error occurred loading ") + evt.GetURL() + "\n" +
|
||||||
"'" + category + "'", wxICON_ERROR);
|
"'" + category + "'", wxICON_ERROR);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -637,7 +637,7 @@ void ConnectWebViewPanel::on_user_token(UserAccountSuccessEvent& e)
|
|||||||
|
|
||||||
void ConnectWebViewPanel::on_script_message(wxWebViewEvent& evt)
|
void ConnectWebViewPanel::on_script_message(wxWebViewEvent& evt)
|
||||||
{
|
{
|
||||||
BOOST_LOG_TRIVIAL(debug) << "recieved message from PrusaConnect FE: " << evt.GetString();
|
BOOST_LOG_TRIVIAL(debug) << "received message from Prusa Connect FE: " << evt.GetString();
|
||||||
handle_message(into_u8(evt.GetString()));
|
handle_message(into_u8(evt.GetString()));
|
||||||
}
|
}
|
||||||
void ConnectWebViewPanel::on_navigation_request(wxWebViewEvent &evt)
|
void ConnectWebViewPanel::on_navigation_request(wxWebViewEvent &evt)
|
||||||
@ -819,19 +819,19 @@ WebViewDialog::WebViewDialog(wxWindow* parent, const wxString& url, const wxStri
|
|||||||
#ifdef DEBUG_URL_PANEL
|
#ifdef DEBUG_URL_PANEL
|
||||||
// Create the Tools menu
|
// Create the Tools menu
|
||||||
m_tools_menu = new wxMenu();
|
m_tools_menu = new wxMenu();
|
||||||
wxMenuItem* viewSource = m_tools_menu->Append(wxID_ANY, _L("View Source"));
|
wxMenuItem* viewSource = m_tools_menu->Append(wxID_ANY, "View Source");
|
||||||
wxMenuItem* viewText = m_tools_menu->Append(wxID_ANY, _L("View Text"));
|
wxMenuItem* viewText = m_tools_menu->Append(wxID_ANY, "View Text");
|
||||||
m_tools_menu->AppendSeparator();
|
m_tools_menu->AppendSeparator();
|
||||||
|
|
||||||
wxMenu* script_menu = new wxMenu;
|
wxMenu* script_menu = new wxMenu;
|
||||||
|
|
||||||
m_script_custom = script_menu->Append(wxID_ANY, "Custom script");
|
m_script_custom = script_menu->Append(wxID_ANY, "Custom script");
|
||||||
m_tools_menu->AppendSubMenu(script_menu, _L("Run Script"));
|
m_tools_menu->AppendSubMenu(script_menu, "Run Script");
|
||||||
wxMenuItem* addUserScript = m_tools_menu->Append(wxID_ANY, _L("Add user script"));
|
wxMenuItem* addUserScript = m_tools_menu->Append(wxID_ANY, "Add user script");
|
||||||
wxMenuItem* setCustomUserAgent = m_tools_menu->Append(wxID_ANY, _L("Set custom user agent"));
|
wxMenuItem* setCustomUserAgent = m_tools_menu->Append(wxID_ANY, "Set custom user agent");
|
||||||
|
|
||||||
m_context_menu = m_tools_menu->AppendCheckItem(wxID_ANY, _L("Enable Context Menu"));
|
m_context_menu = m_tools_menu->AppendCheckItem(wxID_ANY, "Enable Context Menu");
|
||||||
m_dev_tools = m_tools_menu->AppendCheckItem(wxID_ANY, _L("Enable Dev Tools"));
|
m_dev_tools = m_tools_menu->AppendCheckItem(wxID_ANY, "Enable Dev Tools");
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ bool PrusaConnectNew::upload(PrintHostUpload upload_data, ProgressFn progress_fn
|
|||||||
std::string init_out;
|
std::string init_out;
|
||||||
if (!init_upload(upload_data, init_out))
|
if (!init_upload(upload_data, init_out))
|
||||||
{
|
{
|
||||||
error_fn(std::move(GUI::from_u8(init_out)));
|
error_fn(GUI::from_u8(init_out));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,14 +149,14 @@ bool PrusaConnectNew::upload(PrintHostUpload upload_data, ProgressFn progress_fn
|
|||||||
pt::read_json(ss, ptree);
|
pt::read_json(ss, ptree);
|
||||||
const auto id_opt = ptree.get_optional<std::string>("id");
|
const auto id_opt = ptree.get_optional<std::string>("id");
|
||||||
if (!id_opt) {
|
if (!id_opt) {
|
||||||
error_fn(std::move(_L("Failed to extract upload id from server reply.")));
|
error_fn(wxString("Failed to extract upload id from server reply."));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
upload_id = *id_opt;
|
upload_id = *id_opt;
|
||||||
}
|
}
|
||||||
catch (const std::exception&)
|
catch (const std::exception&)
|
||||||
{
|
{
|
||||||
error_fn(std::move(_L("Failed to extract upload id from server reply.")));
|
error_fn(wxString("Failed to extract upload id from server reply."));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const std::string name = get_name();
|
const std::string name = get_name();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user