mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-25 14:15:20 +00:00
Compare commits
2 Commits
fix/load-3
...
v2.4.0-alp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
42cce5399c | ||
|
|
b17f5e3946 |
@@ -122,7 +122,7 @@ msgid "On highlighted overhangs only"
|
||||
msgstr "Nur an hervorgehobenen Überhängen"
|
||||
|
||||
msgid "Erase all"
|
||||
msgstr "Alles löschen"
|
||||
msgstr ""
|
||||
|
||||
msgid "Highlight overhang areas"
|
||||
msgstr "Bereiche mit Überhang hervorheben"
|
||||
@@ -350,10 +350,10 @@ msgid "Fixed step drag"
|
||||
msgstr "Fester Schritt ziehen"
|
||||
|
||||
msgid "Context Menu"
|
||||
msgstr "Kontextmenü"
|
||||
msgstr ""
|
||||
|
||||
msgid "Toggle Auto-Drop"
|
||||
msgstr "Automatisches Absenken umschalten"
|
||||
msgstr ""
|
||||
|
||||
msgid "Single sided scaling"
|
||||
msgstr "Einseitige Skalierung"
|
||||
@@ -509,10 +509,10 @@ msgid "Multiple"
|
||||
msgstr "Mehrere"
|
||||
|
||||
msgid "Count"
|
||||
msgstr "Anzahl"
|
||||
msgstr ""
|
||||
|
||||
msgid "Gap"
|
||||
msgstr "Spalt"
|
||||
msgstr ""
|
||||
|
||||
msgid "Spacing"
|
||||
msgstr "Abstand"
|
||||
@@ -883,7 +883,7 @@ msgid "Advanced"
|
||||
msgstr "Erweiterte Einstellungen"
|
||||
|
||||
msgid "Reset all options except the text and operation"
|
||||
msgstr "Alle Optionen außer dem Text und der Operation zurücksetzen"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The text cannot be written using the selected font. Please try choosing a "
|
||||
@@ -1805,16 +1805,16 @@ msgid "Info"
|
||||
msgstr "Info"
|
||||
|
||||
msgid "Loading printer & filament profiles"
|
||||
msgstr "Lade Drucker- und Filamentprofile"
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating main window"
|
||||
msgstr "Erstelle Hauptfenster"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loading current preset"
|
||||
msgstr "Lade aktuelles Preset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Showing main window"
|
||||
msgstr "Zeige Hauptfenster"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The OrcaSlicer configuration file may be corrupted and cannot be parsed.\n"
|
||||
@@ -1897,12 +1897,9 @@ msgid ""
|
||||
"Please check your network connectivity\n"
|
||||
"(HTTP %u)"
|
||||
msgstr ""
|
||||
"Verbindung zu OrcaCloud fehlgeschlagen.\n"
|
||||
"Bitte überprüfen Sie Ihre Netzwerkverbindung\n"
|
||||
"(HTTP %u)"
|
||||
|
||||
msgid "Cloud Error"
|
||||
msgstr "Cloud-Fehler"
|
||||
msgstr ""
|
||||
|
||||
msgid "Retrieving printer information, please try again later."
|
||||
msgstr "Empfange Druckerinformationen, bitte später erneut versuchen."
|
||||
@@ -6103,13 +6100,13 @@ msgid "Export"
|
||||
msgstr "Exportieren"
|
||||
|
||||
msgid "Sync Presets"
|
||||
msgstr "Presets synchronisieren"
|
||||
msgstr ""
|
||||
|
||||
msgid "Pull and apply the latest presets from OrcaCloud"
|
||||
msgstr "Die neuesten Presets von OrcaCloud abrufen und anwenden"
|
||||
msgstr ""
|
||||
|
||||
msgid "You must be logged in to sync presets from cloud."
|
||||
msgstr "Sie müssen angemeldet sein, um Presets aus der Cloud zu synchronisieren."
|
||||
msgstr ""
|
||||
|
||||
msgid "Quit"
|
||||
msgstr "Beenden"
|
||||
@@ -6239,7 +6236,7 @@ msgid "Preset Bundle"
|
||||
msgstr "Vorlagen-Bundle"
|
||||
|
||||
msgid "Syncing presets from cloud…"
|
||||
msgstr "Synchronisiere Presets aus der Cloud…"
|
||||
msgstr ""
|
||||
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
@@ -8944,25 +8941,25 @@ msgid "If enabled, reverses the direction of zoom with mouse wheel."
|
||||
msgstr "Wenn aktiviert, wird die Richtung des Zooms mit dem Mausrad umgekehrt."
|
||||
|
||||
msgid "Pan"
|
||||
msgstr "Schwenken"
|
||||
msgstr ""
|
||||
|
||||
msgid "Left Mouse Drag"
|
||||
msgstr "Linke Maustaste drücken"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set the action that dragging the left mouse button should perform."
|
||||
msgstr "Legen Sie die Aktion fest, die das Ziehen der linken Maustaste ausführen soll."
|
||||
msgstr ""
|
||||
|
||||
msgid "Middle Mouse Drag"
|
||||
msgstr "Mittlere Maustaste drücken"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set the action that dragging the middle mouse button should perform."
|
||||
msgstr "Legen Sie die Aktion fest, die das Ziehen der mittleren Maustaste ausführen soll."
|
||||
msgstr ""
|
||||
|
||||
msgid "Right Mouse Drag"
|
||||
msgstr "Rechte Maustaste drücken"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set the action that dragging the right mouse button should perform."
|
||||
msgstr "Legen Sie die Aktion fest, die das Ziehen der rechten Maustaste ausführen soll."
|
||||
msgstr ""
|
||||
|
||||
msgid "Clear my choice on..."
|
||||
msgstr "Meine Auswahl löschen bei ..."
|
||||
@@ -8989,13 +8986,13 @@ msgstr ""
|
||||
"der Datei."
|
||||
|
||||
msgid "Graphics"
|
||||
msgstr "Grafik"
|
||||
msgstr ""
|
||||
|
||||
msgid "Anti-aliasing"
|
||||
msgstr "Kantenglättung"
|
||||
msgstr ""
|
||||
|
||||
msgid "MSAA Multiplier"
|
||||
msgstr "MSAA-Multiplikator"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Set the Multi-Sample Anti-Aliasing level.\n"
|
||||
@@ -9007,19 +9004,12 @@ msgid ""
|
||||
"\n"
|
||||
"Requires application restart."
|
||||
msgstr ""
|
||||
"Stellen Sie die Stufe der Multi-Sample-Kantenglättung ein.\n"
|
||||
"Höhere Werte führen zu glatteren Kanten, aber die Auswirkungen auf die "
|
||||
"Leistung sind exponentiell.\n"
|
||||
"Niedrigere Werte verbessern die Leistung auf Kosten von gezackten Kanten.\n"
|
||||
"Wenn deaktiviert, wird empfohlen, FXAA zu aktivieren, um gezackte Kanten mit minimalen Auswirkungen auf die Leistung zu reduzieren.\n"
|
||||
"\n"
|
||||
"Erfordert einen Neustart der Anwendung."
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktiviert"
|
||||
|
||||
msgid "FXAA post-processing"
|
||||
msgstr "FXAA-Nachbearbeitung"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Applies Fast Approximate Anti-Aliasing as a screen-space pass.\n"
|
||||
@@ -9027,34 +9017,26 @@ msgid ""
|
||||
"\n"
|
||||
"Takes effect immediately."
|
||||
msgstr ""
|
||||
"Führt Fast Approximate Anti-Aliasing als Bildschirmraum-Pass aus.\n"
|
||||
"Nützlich, um die MSAA-Einstellung zu deaktivieren oder zu reduzieren, um die Leistung zu verbessern.\n"
|
||||
"\n"
|
||||
"ist sofort wirksam"
|
||||
|
||||
msgid "FPS"
|
||||
msgstr "FPS"
|
||||
msgstr ""
|
||||
|
||||
msgid "FPS cap"
|
||||
msgstr "FPS-Begrenzung"
|
||||
msgstr ""
|
||||
|
||||
msgid "(0 = unlimited)"
|
||||
msgstr "(0 = unbegrenzt)"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Limits viewport frame rate to reduce GPU load and power usage.\n"
|
||||
"Set to 0 for unlimited frame rate."
|
||||
msgstr ""
|
||||
"Begrenzt die Bildrate des Viewports, um die GPU-Auslastung und den "
|
||||
"Energieverbrauch zu reduzieren.\n"
|
||||
"Auf 0 setzen für unbegrenzte Bildrate."
|
||||
|
||||
|
||||
msgid "Show FPS overlay"
|
||||
msgstr "FPS-Overlay anzeigen"
|
||||
msgstr ""
|
||||
|
||||
msgid "Displays current viewport FPS in the top-right corner."
|
||||
msgstr "Zeigt die aktuelle FPS des Viewports in der oberen rechten Ecke an."
|
||||
msgstr ""
|
||||
|
||||
msgid "Login region"
|
||||
msgstr "Login region"
|
||||
@@ -9225,17 +9207,13 @@ msgid "Skip AMS blacklist check"
|
||||
msgstr "Überspringen der AMS Blacklist-Prüfung"
|
||||
|
||||
msgid "(Experimental) Keep painted feature after mesh change"
|
||||
msgstr "(Experimentell) Behalte bemalte Funktionen nach Mesh-Änderung bei"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Attempt to keep painted features (color/seam/support/fuzzy etc.) after "
|
||||
"changing the object mesh (such as cut/reload from disk/simplify/fix etc.)\n"
|
||||
"Highly experimental! Slow and may create artifact."
|
||||
msgstr ""
|
||||
"Versuchen Sie, bemalte Funktionen (Farbe/Naht/Stütze/unscharf usw.) nach "
|
||||
"Änderung des Objekt-Meshs (z. B. schneiden/neu laden von der Festplatte/vereinfachen/reparieren usw.) beizubehalten\n"
|
||||
"Sehr experimentell! Langsam und kann Artefakte erzeugen."
|
||||
|
||||
|
||||
msgid "Allow Abnormal Storage"
|
||||
msgstr "Fehlerhaften Speicher zulassen"
|
||||
@@ -10961,37 +10939,26 @@ msgid ""
|
||||
" %s first layer %d %s, other layers %d %s\n"
|
||||
" %s max delta %d %s, current delta %d %s\n"
|
||||
msgstr ""
|
||||
" - %s:\n"
|
||||
" %s erste Schicht %d %s, andere Schichten %d %s\n"
|
||||
" %s maximale Delta %d %s, aktuelle Delta %d %s\n"
|
||||
|
||||
msgid ""
|
||||
"Some first-layer and other-layer temperature pairs exceed safety limits.\n"
|
||||
msgstr "Einige Temperaturpaare für die erste und andere Schicht überschreiten die Sicherheitsgrenzen.\n"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"Invalid pairs:\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Ungültige Paare:\n"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"You can go back to edit values, or continue if this is intentional."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Sie können zurückgehen, um die Werte zu bearbeiten, oder fortfahren, wenn dies "
|
||||
"absichtlich ist."
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Continue anyway?"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Trotzdem fortfahren?"
|
||||
|
||||
msgid "Temperature Safety Check"
|
||||
msgstr "Temperatur-Sicherheitsprüfung"
|
||||
@@ -11075,10 +11042,6 @@ msgid ""
|
||||
"\"%1%\"\n"
|
||||
"and \"%2%\" will open without any changes."
|
||||
msgstr ""
|
||||
"Alle \"Neuer Wert\" Einstellungen in\n"
|
||||
"\"%1%\"\n"
|
||||
"werden gespeichert und \"%2%\" wird ohne Änderungen geöffnet."
|
||||
|
||||
|
||||
msgid "Click the right mouse button to display the full text."
|
||||
msgstr ""
|
||||
@@ -11684,7 +11647,7 @@ msgid "Login"
|
||||
msgstr "Anmelden"
|
||||
|
||||
msgid "Login failed. Please try again."
|
||||
msgstr "Anmeldung fehlgeschlagen. Bitte versuchen Sie es erneut."
|
||||
msgstr ""
|
||||
|
||||
msgid "[Action Required] "
|
||||
msgstr "[Aktion erforderlich] "
|
||||
@@ -11724,16 +11687,16 @@ msgid "Global shortcuts"
|
||||
msgstr "Globale Tastaturkürzel"
|
||||
|
||||
msgid "Pan View"
|
||||
msgstr "Ansicht verschieben"
|
||||
msgstr ""
|
||||
|
||||
msgid "Rotate View"
|
||||
msgstr "Ansicht drehen"
|
||||
msgstr ""
|
||||
|
||||
msgid "Middle mouse button"
|
||||
msgstr "Mittlere Maustaste"
|
||||
msgstr ""
|
||||
|
||||
msgid "Zoom View"
|
||||
msgstr "Ansicht zoomen"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Auto orients selected objects or all objects. If there are selected objects, "
|
||||
@@ -12636,8 +12599,6 @@ msgid ""
|
||||
"The Hollow base pattern is not supported by this support type; Rectilinear "
|
||||
"will be used instead."
|
||||
msgstr ""
|
||||
"Das Hohl-Basis-Muster wird von diesem Stütztyp nicht unterstützt; Stattdessen "
|
||||
"wird das Rechteckmuster verwendet."
|
||||
|
||||
msgid ""
|
||||
"Support enforcers are used but support is not enabled. Please enable support."
|
||||
@@ -14885,16 +14846,16 @@ msgid "Auto For Match"
|
||||
msgstr "Automatisch für Übereinstimmung"
|
||||
|
||||
msgid "Enable filament dynamic map"
|
||||
msgstr "Dynamische Filamentzuordnung aktivieren"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable dynamic filament mapping during print."
|
||||
msgstr "Dynamische Filamentzuordnung während des Drucks aktivieren."
|
||||
msgstr ""
|
||||
|
||||
msgid "Has filament switcher"
|
||||
msgstr "Hat Filamentwechsler"
|
||||
msgstr ""
|
||||
|
||||
msgid "Printer has a filament switcher hardware (e.g., AMS)."
|
||||
msgstr "Der Drucker verfügt über eine Filamentwechsler-Hardware (z. B. AMS)."
|
||||
msgstr ""
|
||||
|
||||
msgid "Flush temperature"
|
||||
msgstr "Spültemperatur"
|
||||
@@ -15415,7 +15376,7 @@ msgstr ""
|
||||
"unterstützt."
|
||||
|
||||
msgid "Z-buckling bias optimization (experimental)"
|
||||
msgstr "Z-Buckling-Bias-Optimierung (experimentell)"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
|
||||
@@ -15424,11 +15385,6 @@ msgid ""
|
||||
"~30% sparse infill density and above. Only applies when Sparse infill "
|
||||
"pattern is set to Gyroid."
|
||||
msgstr ""
|
||||
"Strafft die Gyroid-Welle entlang der Z-Achse (vertikal) bei geringer Fülldichte, "
|
||||
"um die effektive vertikale Säulenlänge zu verkürzen und die Z-Achsen-Kompressions-"
|
||||
"Knickfestigkeit zu verbessern. Der Filamentverbrauch bleibt erhalten. Keine "
|
||||
"Auswirkung bei ~30% einfacher Fülldichte und darüber. Gilt nur, wenn das einfache "
|
||||
"Füllmuster auf Gyroid eingestellt ist."
|
||||
|
||||
msgid "Sparse infill pattern"
|
||||
msgstr "Füllmuster"
|
||||
@@ -16318,7 +16274,7 @@ msgstr ""
|
||||
"bringen.Setze den Wert auf 0, um diese Funktion zu deaktivieren."
|
||||
|
||||
msgid "Minimum non-zero part cooling fan speed"
|
||||
msgstr "Minimale nicht-null Lüftergeschwindigkeit für die Teilekühlung"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Some part-cooling fans cannot start spinning when commanded below a certain "
|
||||
@@ -16337,11 +16293,6 @@ msgid ""
|
||||
"below the one you know it can actually spool at.\n"
|
||||
"Set to 0 to deactivate."
|
||||
msgstr ""
|
||||
"Einige Teilekühlventilatoren können nicht zu drehen beginnen, wenn sie unter einem bestimmten PWM-Arbeitszyklus befehligt werden. Wenn dieser Wert über 0 eingestellt ist, wird jeder nicht-null-Teilekühlventilatorbefehl auf mindestens diesen Prozentsatz angehoben, damit der Lüfter zuverlässig startet. Ein Lüfterbefehl von 0 (Lüfter aus) wird immer genau eingehalten. Diese Begrenzung wird nach jeder anderen Lüfterberechnung angewendet (Erstschicht-Ramp-up, Schichtzeit-Interpolation, Überhangs-/Brücken-/Stützstruktur-Schnittstellen-/Glättungsüberschreibungen), sodass die Skalierung weiterhin im Bereich [dieser Wert, 100%] erfolgt.\n"
|
||||
"\n"
|
||||
"Wenn Ihre Firmware den Lüfter bereits unter einem Schwellenwert deaktiviert (z.B. Klipper's [fan] off_below: 0.10 schaltet den Lüfter aus, wenn der befehligte Arbeitszyklus unter 10% liegt), sollten idealerweise dieser Wert und der Firmware-Schwellenwert auf denselben Wert eingestellt werden. Wenn sie übereinstimmen (z.B. off_below: 0.10 in Klipper und 10% hier), garantiert der Slicer, dass er nie einen nicht-null-Wert emittiert, den die Firmware stillschweigend fallen lässt, und der Lüfter nie einen Wert erhält, der unter dem Wert liegt, den er tatsächlich anfahren kann.\n"
|
||||
"\n"
|
||||
"Setze den Wert auf 0, um diese Funktion zu deaktivieren."
|
||||
|
||||
msgid "%"
|
||||
msgstr "%"
|
||||
@@ -18432,7 +18383,7 @@ msgid "Enable filament ramming"
|
||||
msgstr "Erlaube Filamentrammen"
|
||||
|
||||
msgid "Tool change on wipe tower"
|
||||
msgstr "Werkzeugwechsel auf dem Reinigungsturm"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Force the toolhead to travel to the wipe tower before issuing the tool "
|
||||
@@ -18443,8 +18394,6 @@ msgid ""
|
||||
"this option if you want the tool change to always be issued above the wipe "
|
||||
"tower instead."
|
||||
msgstr ""
|
||||
"Erzwinge, dass der Werkzeugkopf zum Reinigungsturm fährt, bevor der Werkzeugwechselbefehl (Tx) ausgegeben wird. Nur relevant für Mehrfach-Extruder (Mehrfach-Werkzeugkopf) Drucker, die einen Typ-2-Reinigungsturm verwenden. Standardmäßig überspringt Orca die Fahrt auf Mehrfach-Werkzeugkopf-Maschinen, da die Firmware den Kopfwechsel übernimmt, was dazu führen kann, dass der Tx-Befehl über dem gedruckten Teil ausgegeben wird. Aktivieren Sie diese Option, wenn Sie möchten, dass der Werkzeugwechsel immer über dem Reinigungsturm ausgegeben wird."
|
||||
|
||||
|
||||
msgid "No sparse layers (beta)"
|
||||
msgstr "Keine dünnen Schichten (Beta)"
|
||||
@@ -19396,7 +19345,7 @@ msgstr ""
|
||||
"verschiedene Materialien aufeinandertreffen."
|
||||
|
||||
msgid "Cool down from interface boost during prime tower"
|
||||
msgstr "Abkühlung von der Schnittstellen-Boost während des Reinigungsturms"
|
||||
msgstr "^"
|
||||
|
||||
msgid ""
|
||||
"When interface-layer temperature boost is active, set the nozzle back to "
|
||||
@@ -22045,18 +21994,12 @@ msgid ""
|
||||
"\n"
|
||||
"Available nozzle profiles for this printer:"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Verfügbare Düsenprofile für diesen Drucker:"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Choose YES to switch existing preset:"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Wählen Sie JA, um das vorhandene Profil zu wechseln:"
|
||||
|
||||
msgid "Printer Created Successfully"
|
||||
msgstr "Drucker erfolgreich erstellt"
|
||||
@@ -23265,16 +23208,16 @@ msgid "Detection radius"
|
||||
msgstr "Erkennungsradius"
|
||||
|
||||
msgid "Selected"
|
||||
msgstr "Ausgewählt"
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-generate"
|
||||
msgstr "Automatisch generieren"
|
||||
msgstr ""
|
||||
|
||||
msgid "Generate brim ears using Max angle and Detection radius"
|
||||
msgstr "Mausohren mit Maximalwinkel und Erkennungsradius generieren"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add or Select"
|
||||
msgstr "Hinzufügen oder auswählen"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Warning: The brim type is not set to \"painted\", the brim ears will not "
|
||||
@@ -23287,7 +23230,7 @@ msgid "Set the brim type of this object to \"painted\""
|
||||
msgstr "Den Brim-Typ dieses Objekts auf \"bemalt\" setzen"
|
||||
|
||||
msgid "invalid brim ears"
|
||||
msgstr "Ungültige Mausohren"
|
||||
msgstr ""
|
||||
|
||||
msgid "Brim Ears"
|
||||
msgstr "Mausohren"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -45,8 +45,8 @@
|
||||
<color type="primary" scheme_preference="dark">#00695C</color>
|
||||
</branding>
|
||||
<releases>
|
||||
<release version="2.4.0-dev" date="2026-05-22" type="development">
|
||||
<url type="details">https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds</url>
|
||||
<release version="2.4.0-alpha" date="2026-05-22" type="development">
|
||||
<url type="details">https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/2.4.0-alpha</url>
|
||||
<description>
|
||||
<p>See the release page for detailed changelog.</p>
|
||||
</description>
|
||||
|
||||
@@ -737,19 +737,6 @@ void GUI_App::post_init()
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", init with input files, size %1%, input_gcode %2%")
|
||||
%this->init_params->input_files.size() %this->init_params->input_gcode;
|
||||
|
||||
bool load_immediately = true;
|
||||
if (app_config->get("sync_user_preset") == "true" && m_agent && m_agent->is_user_login()
|
||||
&& !this->init_params->input_gcode
|
||||
&& !(this->init_params->input_files.size() == 1 && is_supported_open_protocol(this->init_params->input_files.front()))) {
|
||||
// Defer loading until after cloud sync completes, so project settings
|
||||
// from the 3MF override synced presets instead of the reverse.
|
||||
m_pending_input_files = std::move(this->init_params->input_files);
|
||||
this->init_params->input_files.clear();
|
||||
load_immediately = false;
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": deferring input file load until after cloud sync";
|
||||
}
|
||||
|
||||
if (load_immediately) {
|
||||
switch_to_3d = true;
|
||||
|
||||
const auto first_url = this->init_params->input_files.front();
|
||||
@@ -784,7 +771,6 @@ void GUI_App::post_init()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//#if BBL_HAS_FIRST_PAGE
|
||||
bool slow_bootup = false;
|
||||
@@ -901,9 +887,12 @@ void GUI_App::post_init()
|
||||
show_network_plugin_download_dialog(false);
|
||||
}
|
||||
|
||||
// Start preset sync. When input files are present, loading is deferred so
|
||||
// the sync runs first and the 3MF project settings override synced defaults.
|
||||
// Start preset sync after project opened, otherwise we could have preset change during project opening which could cause crash
|
||||
if (app_config->get("sync_user_preset") == "true") {
|
||||
// BBS loading user preset
|
||||
// Always async, not such startup step
|
||||
// BOOST_LOG_TRIVIAL(info) << "Loading user presets...";
|
||||
// scrn->SetText(_L("Loading user presets..."));
|
||||
if (m_agent) {
|
||||
start_sync_user_preset();
|
||||
}
|
||||
@@ -912,12 +901,6 @@ void GUI_App::post_init()
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " sync_user_preset: false";
|
||||
}
|
||||
|
||||
// If input files were deferred but sync wasn't started (not logged in, etc.), load them now
|
||||
if (!m_pending_input_files.empty() && !m_user_sync_token) {
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": sync not started, loading deferred input files directly";
|
||||
CallAfter([this]() { load_pending_input_files(); });
|
||||
}
|
||||
|
||||
// The extra CallAfter() is needed because of Mac, where this is the only way
|
||||
// to popup a modal dialog on start without screwing combo boxes.
|
||||
// This is ugly but I honestly found no better way to do it.
|
||||
@@ -5912,38 +5895,6 @@ void GUI_App::remove_user_presets()
|
||||
}
|
||||
}
|
||||
|
||||
void GUI_App::load_pending_input_files()
|
||||
{
|
||||
if (m_pending_input_files.empty() || is_closing()) return;
|
||||
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": loading " << m_pending_input_files.size() << " deferred input file(s)";
|
||||
|
||||
mainframe->select_tab(size_t(MainFrame::tp3DEditor));
|
||||
plater_->select_view_3D("3D");
|
||||
|
||||
wxArrayString input_files;
|
||||
for (auto& file : m_pending_input_files)
|
||||
input_files.push_back(wxString::FromUTF8(file));
|
||||
|
||||
this->plater()->set_project_filename(_L("Untitled"));
|
||||
this->plater()->load_files(input_files);
|
||||
|
||||
try {
|
||||
if (!input_files.empty()) {
|
||||
std::string file_path = input_files.front().ToStdString();
|
||||
std::filesystem::path path(file_path);
|
||||
m_open_method = "file_" + path.extension().string();
|
||||
}
|
||||
} catch (...) {
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ", file path exception!";
|
||||
m_open_method = "file";
|
||||
}
|
||||
|
||||
plater_->trigger_restore_project(1);
|
||||
m_pending_input_files.clear();
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": deferred input files loaded";
|
||||
}
|
||||
|
||||
// Check if the user's OrcaCloud profile directory is empty and offer to migrate
|
||||
// existing profiles from the default or BambuCloud user folder.
|
||||
// Returns true if migration was performed, false otherwise.
|
||||
@@ -6706,15 +6657,6 @@ void GUI_App::start_sync_user_preset(bool with_progress_dlg)
|
||||
if (ret == 0 && m_agent && !t.expired())
|
||||
reload_settings();
|
||||
|
||||
// After initial sync cycle, load any input files that were deferred
|
||||
// so the 3MF project settings override the freshly-synced cloud defaults.
|
||||
if (!m_pending_input_files.empty()) {
|
||||
CallAfter([this]() {
|
||||
if (!m_pending_input_files.empty())
|
||||
load_pending_input_files();
|
||||
});
|
||||
}
|
||||
|
||||
// For orca specific syncing
|
||||
auto orca_agent = std::dynamic_pointer_cast<OrcaCloudServiceAgent>(m_agent->get_cloud_agent());
|
||||
int tick_tock = -1, sync_count = 0; // tick_tock = -1 to immediately run sync the frist time this thread runs
|
||||
|
||||
@@ -322,7 +322,6 @@ private:
|
||||
boost::thread m_sync_update_thread;
|
||||
std::shared_ptr<int> m_user_sync_token;
|
||||
std::atomic<bool> m_restart_sync_pending {false};
|
||||
std::vector<std::string> m_pending_input_files; // input files deferred until after cloud sync
|
||||
bool m_is_dark_mode{ false };
|
||||
bool m_adding_script_handler { false };
|
||||
bool m_side_popup_status{false};
|
||||
@@ -522,7 +521,6 @@ public:
|
||||
void push_notification(const MachineObject* obj, wxString msg, wxString title = wxEmptyString, UserNotificationStyle style = UserNotificationStyle::UNS_NORMAL);
|
||||
void reload_settings();
|
||||
void remove_user_presets();
|
||||
void load_pending_input_files();
|
||||
|
||||
bool maybe_migrate_user_presets_on_login();
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ set(SLIC3R_APP_KEY "OrcaSlicer")
|
||||
if(NOT DEFINED BBL_INTERNAL_TESTING)
|
||||
set(BBL_INTERNAL_TESTING "0")
|
||||
endif()
|
||||
set(SoftFever_VERSION "2.4.0-dev")
|
||||
set(SoftFever_VERSION "2.4.0-alpha")
|
||||
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)"
|
||||
SoftFever_VERSION_MATCH ${SoftFever_VERSION})
|
||||
set(ORCA_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
|
||||
Reference in New Issue
Block a user