Code refactoring for better maintainability

This commit is contained in:
Lam Wei Lun
2026-09-11 17:15:57 +08:00
parent c57b74731e
commit 966e029b95
36 changed files with 938 additions and 517 deletions
+18 -6
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -5035,16 +5035,13 @@ msgstr ""
msgid "System agents" msgid "System agents"
msgstr "" msgstr ""
msgid "No plugin selected"
msgstr ""
msgid "Add plugin" msgid "Add plugin"
msgstr "" msgstr ""
msgid "Select plugin" msgid "Remove plugin"
msgstr "" msgstr ""
msgid "Remove plugin" msgid "No plugin selected"
msgstr "" msgstr ""
msgid "Configure" msgid "Configure"
@@ -7197,6 +7194,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "" msgstr ""
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "" msgstr ""
@@ -8591,6 +8594,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "" msgstr ""
+24 -9
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2025-03-15 10:55+0100\n" "PO-Revision-Date: 2025-03-15 10:55+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@@ -5473,22 +5473,18 @@ msgstr "Format no vàlid. Format vectorial esperat: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Agents del sistema" msgstr "Agents del sistema"
# AI Translated
msgid "No plugin selected"
msgstr "Cap connector seleccionat"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Afegir connector" msgstr "Afegir connector"
# AI Translated
msgid "Select plugin"
msgstr "Seleccionar connector"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Eliminar connector" msgstr "Eliminar connector"
# AI Translated
msgid "No plugin selected"
msgstr "Cap connector seleccionat"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Configurar" msgstr "Configurar"
@@ -7723,6 +7719,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Inferior" msgstr "Inferior"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Selecció de connectors" msgstr "Selecció de connectors"
@@ -9259,6 +9261,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Finestra emergent per seleccionar el mode d'agrupació de filaments" msgstr "Finestra emergent per seleccionar el mode d'agrupació de filaments"
@@ -22233,6 +22244,10 @@ msgstr ""
"Evitar la deformació( warping )\n" "Evitar la deformació( warping )\n"
"Sabíeu que quan imprimiu materials propensos a deformar-se, com ara l'ABS, augmentar adequadament la temperatura del llit pot reduir la probabilitat de deformació?" "Sabíeu que quan imprimiu materials propensos a deformar-se, com ara l'ABS, augmentar adequadament la temperatura del llit pot reduir la probabilitat de deformació?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Seleccionar connector"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Seleccioneu l'idioma" #~ msgstr "Seleccioneu l'idioma"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Jakub Hencl\n" "Last-Translator: Jakub Hencl\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5430,22 +5430,18 @@ msgstr "Neplatný formát. Očekávaný vektorový formát: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Systémoví agenti" msgstr "Systémoví agenti"
# AI Translated
msgid "No plugin selected"
msgstr "Není vybrán žádný plugin"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Přidat plugin" msgstr "Přidat plugin"
# AI Translated
msgid "Select plugin"
msgstr "Vybrat plugin"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Odebrat plugin" msgstr "Odebrat plugin"
# AI Translated
msgid "No plugin selected"
msgstr "Není vybrán žádný plugin"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Konfigurovat" msgstr "Konfigurovat"
@@ -7690,6 +7686,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Spodní" msgstr "Spodní"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Výběr pluginů" msgstr "Výběr pluginů"
@@ -9213,6 +9215,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Zobrazit dialog pro výběr režimu seskupení filamentů" msgstr "Zobrazit dialog pro výběr režimu seskupení filamentů"
@@ -22214,6 +22225,10 @@ msgstr ""
"Zamezte kroucení\n" "Zamezte kroucení\n"
"Víte, že při tisku materiálů náchylných ke kroucení, jako je ABS, může vhodné zvýšení teploty vyhřívané desky snížit pravděpodobnost kroucení?" "Víte, že při tisku materiálů náchylných ke kroucení, jako je ABS, může vhodné zvýšení teploty vyhřívané desky snížit pravděpodobnost kroucení?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Vybrat plugin"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Zvolte jazyk" #~ msgstr "Zvolte jazyk"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Heiko Liebscher <hliebschergmail.com>\n" "Last-Translator: Heiko Liebscher <hliebschergmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5335,22 +5335,18 @@ msgstr "Ungültiges Format. Erwartetes Vektorformat: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Systemagenten" msgstr "Systemagenten"
# AI Translated
msgid "No plugin selected"
msgstr "Kein Plugin ausgewählt"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Plugin hinzufügen" msgstr "Plugin hinzufügen"
# AI Translated
msgid "Select plugin"
msgstr "Plugin auswählen"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Plugin entfernen" msgstr "Plugin entfernen"
# AI Translated
msgid "No plugin selected"
msgstr "Kein Plugin ausgewählt"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Konfigurieren" msgstr "Konfigurieren"
@@ -7560,6 +7556,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Untere" msgstr "Untere"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Plugin-Auswahl" msgstr "Plugin-Auswahl"
@@ -9084,6 +9086,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Popup zum Auswählen des Filament-Gruppierungsmodus" msgstr "Popup zum Auswählen des Filament-Gruppierungsmodus"
@@ -21634,6 +21645,10 @@ msgstr ""
"Verwerfungen vermeiden\n" "Verwerfungen vermeiden\n"
"Wussten Sie, dass beim Drucken von Materialien, die zu Verwerfungen neigen, wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die Wahrscheinlichkeit von Verwerfungen verringert werden kann?" "Wussten Sie, dass beim Drucken von Materialien, die zu Verwerfungen neigen, wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die Wahrscheinlichkeit von Verwerfungen verringert werden kann?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Plugin auswählen"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Sprache wählen" #~ msgstr "Sprache wählen"
+18 -6
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2026-06-17 15:44-0300\n" "PO-Revision-Date: 2026-06-17 15:44-0300\n"
"Last-Translator: Alexandre Folle de Menezes\n" "Last-Translator: Alexandre Folle de Menezes\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5031,16 +5031,13 @@ msgstr ""
msgid "System agents" msgid "System agents"
msgstr "" msgstr ""
msgid "No plugin selected"
msgstr ""
msgid "Add plugin" msgid "Add plugin"
msgstr "" msgstr ""
msgid "Select plugin" msgid "Remove plugin"
msgstr "" msgstr ""
msgid "Remove plugin" msgid "No plugin selected"
msgstr "" msgstr ""
msgid "Configure" msgid "Configure"
@@ -7193,6 +7190,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "" msgstr ""
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "" msgstr ""
@@ -8587,6 +8590,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "" msgstr ""
+22 -7
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Ian A. Bassi <>\n" "Last-Translator: Ian A. Bassi <>\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5198,18 +5198,15 @@ msgstr "Formato inválido. Formato de vector esperado: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Agentes del sistema" msgstr "Agentes del sistema"
msgid "No plugin selected"
msgstr "Ningún plugin seleccionado"
msgid "Add plugin" msgid "Add plugin"
msgstr "Añadir plugin" msgstr "Añadir plugin"
msgid "Select plugin"
msgstr "Seleccionar plugin"
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Eliminar plugin" msgstr "Eliminar plugin"
msgid "No plugin selected"
msgstr "Ningún plugin seleccionado"
msgid "Configure" msgid "Configure"
msgstr "Configurar" msgstr "Configurar"
@@ -7405,6 +7402,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Inferior" msgstr "Inferior"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Selección de plugins" msgstr "Selección de plugins"
@@ -8851,6 +8854,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Ventana emergente para seleccionar el modo de agrupación de filamentos" msgstr "Ventana emergente para seleccionar el modo de agrupación de filamentos"
@@ -21180,6 +21192,9 @@ msgstr ""
"Evita la deformación\n" "Evita la deformación\n"
"¿Sabías que al imprimir materiales propensos a la deformación como el ABS, aumentar adecuadamente la temperatura de la cama térmica puede reducir la probabilidad de deformaciones?" "¿Sabías que al imprimir materiales propensos a la deformación como el ABS, aumentar adecuadamente la temperatura de la cama térmica puede reducir la probabilidad de deformaciones?"
#~ msgid "Select plugin"
#~ msgstr "Seleccionar plugin"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Seleccionar el idioma" #~ msgstr "Seleccionar el idioma"
+22 -7
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2026-07-20 13:33+0200\n" "PO-Revision-Date: 2026-07-20 13:33+0200\n"
"Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n" "Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5247,18 +5247,15 @@ msgstr "Formatuak ez du balio. Espero den formatu bektoriala: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Sistema-agenteak" msgstr "Sistema-agenteak"
msgid "No plugin selected"
msgstr "Ez da pluginik hautatu"
msgid "Add plugin" msgid "Add plugin"
msgstr "Gehitu plugina" msgstr "Gehitu plugina"
msgid "Select plugin"
msgstr "Hautatu plugina"
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Kendu plugina" msgstr "Kendu plugina"
msgid "No plugin selected"
msgstr "Ez da pluginik hautatu"
msgid "Configure" msgid "Configure"
msgstr "Konfiguratu" msgstr "Konfiguratu"
@@ -7452,6 +7449,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Behea" msgstr "Behea"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Plugin-hautaketa" msgstr "Plugin-hautaketa"
@@ -8932,6 +8935,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Erakutsi filamentuak taldekatzeko modua hautatzeko leihoa" msgstr "Erakutsi filamentuak taldekatzeko modua hautatzeko leihoa"
@@ -21367,6 +21379,9 @@ msgstr ""
"Saihestu okertzea\n" "Saihestu okertzea\n"
"Ba al zenekien ABS bezalako okertzeko joera duten materialak inprimatzean ohe beroaren tenperatura egoki igotzeak okertzeko probabilitatea murriztu dezakeela?" "Ba al zenekien ABS bezalako okertzeko joera duten materialak inprimatzean ohe beroaren tenperatura egoki igotzeak okertzeko probabilitatea murriztu dezakeela?"
#~ msgid "Select plugin"
#~ msgstr "Hautatu plugina"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Hautatu hizkuntza" #~ msgstr "Hautatu hizkuntza"
+24 -9
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Guislain Cyril, Thomas Lété\n" "Language-Team: Guislain Cyril, Thomas Lété\n"
@@ -5285,22 +5285,18 @@ msgstr "Format invalide. Format vectoriel attendu : \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Agents système" msgstr "Agents système"
# AI Translated
msgid "No plugin selected"
msgstr "Aucun plugin sélectionné"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Ajouter un plugin" msgstr "Ajouter un plugin"
# AI Translated
msgid "Select plugin"
msgstr "Sélectionner un plugin"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Supprimer le plugin" msgstr "Supprimer le plugin"
# AI Translated
msgid "No plugin selected"
msgstr "Aucun plugin sélectionné"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Configurer" msgstr "Configurer"
@@ -7503,6 +7499,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Inférieur" msgstr "Inférieur"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Sélection des plugins" msgstr "Sélection des plugins"
@@ -9000,6 +9002,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Fenêtre contextuelle pour sélectionner le mode de regroupement des filaments" msgstr "Fenêtre contextuelle pour sélectionner le mode de regroupement des filaments"
@@ -21524,6 +21535,10 @@ msgstr ""
"Éviter la déformation\n" "Éviter la déformation\n"
"Saviez-vous que lors de l’impression de matériaux susceptibles de se déformer, tels que l’ABS, une augmentation appropriée de la température du plateau chauffant peut réduire la probabilité de déformation?" "Saviez-vous que lors de l’impression de matériaux susceptibles de se déformer, tels que l’ABS, une augmentation appropriée de la température du plateau chauffant peut réduire la probabilité de déformation?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Sélectionner un plugin"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Sélectionner la langue" #~ msgstr "Sélectionner la langue"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"Language: hu\n" "Language: hu\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -5382,22 +5382,18 @@ msgstr "Érvénytelen formátum. Elvárt vektor formátum: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Rendszerügynökök" msgstr "Rendszerügynökök"
# AI Translated
msgid "No plugin selected"
msgstr "Nincs kiválasztott bővítmény"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Bővítmény hozzáadása" msgstr "Bővítmény hozzáadása"
# AI Translated
msgid "Select plugin"
msgstr "Bővítmény kiválasztása"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Bővítmény eltávolítása" msgstr "Bővítmény eltávolítása"
# AI Translated
msgid "No plugin selected"
msgstr "Nincs kiválasztott bővítmény"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Konfigurálás" msgstr "Konfigurálás"
@@ -7617,6 +7613,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Alsó" msgstr "Alsó"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Bővítmény kiválasztása" msgstr "Bővítmény kiválasztása"
@@ -9136,6 +9138,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Felugró ablak a filamentcsoportosítási mód kiválasztásához" msgstr "Felugró ablak a filamentcsoportosítási mód kiválasztásához"
@@ -21955,6 +21966,10 @@ msgstr ""
"Kunkorodás elkerülése\n" "Kunkorodás elkerülése\n"
"Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor az asztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?" "Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor az asztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Bővítmény kiválasztása"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Válaszd ki a nyelvet" #~ msgstr "Válaszd ki a nyelvet"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@@ -5383,22 +5383,18 @@ msgstr "Formato non valido. Formato vettoriale previsto: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Agenti di sistema" msgstr "Agenti di sistema"
# AI Translated
msgid "No plugin selected"
msgstr "Nessun plugin selezionato"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Aggiungi plugin" msgstr "Aggiungi plugin"
# AI Translated
msgid "Select plugin"
msgstr "Seleziona plugin"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Rimuovi plugin" msgstr "Rimuovi plugin"
# AI Translated
msgid "No plugin selected"
msgstr "Nessun plugin selezionato"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Configura" msgstr "Configura"
@@ -7621,6 +7617,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Inferiore" msgstr "Inferiore"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Selezione plugin" msgstr "Selezione plugin"
@@ -9138,6 +9140,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Popup per selezionare la modalità di raggruppamento filamenti" msgstr "Popup per selezionare la modalità di raggruppamento filamenti"
@@ -21979,6 +21990,10 @@ msgstr ""
"Evita le deformazioni\n" "Evita le deformazioni\n"
"Sapevi che quando si stampano materiali soggetti a deformazioni come l'ABS, aumentare in modo appropriato la temperatura del piano riscaldato può ridurre la probabilità di deformazione?" "Sapevi che quando si stampano materiali soggetti a deformazioni come l'ABS, aumentare in modo appropriato la temperatura del piano riscaldato può ridurre la probabilità di deformazione?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Seleziona plugin"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Seleziona la lingua" #~ msgstr "Seleziona la lingua"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@@ -5396,22 +5396,18 @@ msgstr "無効なフォーマット、%1%であるはずです。"
msgid "System agents" msgid "System agents"
msgstr "システムエージェント" msgstr "システムエージェント"
# AI Translated
msgid "No plugin selected"
msgstr "プラグインが選択されていません"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "プラグインを追加" msgstr "プラグインを追加"
# AI Translated
msgid "Select plugin"
msgstr "プラグインを選択"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "プラグインを削除" msgstr "プラグインを削除"
# AI Translated
msgid "No plugin selected"
msgstr "プラグインが選択されていません"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "設定" msgstr "設定"
@@ -7627,6 +7623,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "底面" msgstr "底面"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "プラグインの選択" msgstr "プラグインの選択"
@@ -9158,6 +9160,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "フィラメントグルーピングモード選択のポップアップ" msgstr "フィラメントグルーピングモード選択のポップアップ"
@@ -22534,6 +22545,10 @@ msgstr ""
"反りを避ける\n" "反りを避ける\n"
"ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げることで、反りが発生する確率を下げることができることをご存知ですか?" "ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げることで、反りが発生する確率を下げることができることをご存知ですか?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "プラグインを選択"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "言語を選択" #~ msgstr "言語を選択"
+24 -9
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2025-06-02 17:12+0900\n" "PO-Revision-Date: 2025-06-02 17:12+0900\n"
"Last-Translator: crwusiz <crwusiz@gmail.com>\n" "Last-Translator: crwusiz <crwusiz@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5408,22 +5408,18 @@ msgstr "잘못된 형식입니다. 필요한 벡터 형식: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "시스템 에이전트" msgstr "시스템 에이전트"
# AI Translated
msgid "No plugin selected"
msgstr "선택된 플러그인 없음"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "플러그인 추가" msgstr "플러그인 추가"
# AI Translated
msgid "Select plugin"
msgstr "플러그인 선택"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "플러그인 제거" msgstr "플러그인 제거"
# AI Translated
msgid "No plugin selected"
msgstr "선택된 플러그인 없음"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "구성" msgstr "구성"
@@ -7640,6 +7636,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "하부" msgstr "하부"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "플러그인 선택" msgstr "플러그인 선택"
@@ -9220,6 +9222,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "필라멘트 그룹화 모드를 선택하기 위한 팝업" msgstr "필라멘트 그룹화 모드를 선택하기 위한 팝업"
@@ -22401,6 +22412,10 @@ msgstr ""
"뒤틀림 방지\n" "뒤틀림 방지\n"
"ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" "ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "플러그인 선택"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "언어 선택" #~ msgstr "언어 선택"
+1
View File
@@ -179,6 +179,7 @@ src/slic3r/GUI/PublishDialog.cpp
src/slic3r/GUI/PublishSettingsDialog.cpp src/slic3r/GUI/PublishSettingsDialog.cpp
src/slic3r/GUI/SavePresetDialog.cpp src/slic3r/GUI/SavePresetDialog.cpp
src/slic3r/GUI/Search.cpp src/slic3r/GUI/Search.cpp
src/slic3r/GUI/SettingsIndex.cpp
src/slic3r/GUI/Selection.cpp src/slic3r/GUI/Selection.cpp
src/slic3r/GUI/SelectMachine.cpp src/slic3r/GUI/SelectMachine.cpp
src/slic3r/GUI/PrePrintChecker.cpp src/slic3r/GUI/PrePrintChecker.cpp
+24 -9
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2026-07-02 14:13+0300\n" "PO-Revision-Date: 2026-07-02 14:13+0300\n"
"Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n" "Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5369,22 +5369,18 @@ msgstr "Netinkamas formatas. Tinkamas vektorinis formatas: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Sisteminiai agentai" msgstr "Sisteminiai agentai"
# AI Translated
msgid "No plugin selected"
msgstr "Nepasirinktas joks papildinys"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Pridėti papildinį" msgstr "Pridėti papildinį"
# AI Translated
msgid "Select plugin"
msgstr "Pasirinkti papildinį"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Pašalinti papildinį" msgstr "Pašalinti papildinį"
# AI Translated
msgid "No plugin selected"
msgstr "Nepasirinktas joks papildinys"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Konfigūruoti" msgstr "Konfigūruoti"
@@ -7604,6 +7600,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Apatinis" msgstr "Apatinis"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Papildinio pasirinkimas" msgstr "Papildinio pasirinkimas"
@@ -9119,6 +9121,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Iššokantis langas gijų grupavimo režimui pasirinkti" msgstr "Iššokantis langas gijų grupavimo režimui pasirinkti"
@@ -21681,6 +21692,10 @@ msgstr ""
"Venkite deformacijų (warping)\n" "Venkite deformacijų (warping)\n"
"Ar žinojote, kad spausdinant medžiagas, kurios yra linkusios trauktis ir riestis (pvz., ABS), tinkamas kaitinamojo pagrindo temperatūros padidinimas gali sumažinti deformacijų (warping) tikimybę?" "Ar žinojote, kad spausdinant medžiagas, kurios yra linkusios trauktis ir riestis (pvz., ABS), tinkamas kaitinamojo pagrindo temperatūros padidinimas gali sumažinti deformacijų (warping) tikimybę?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Pasirinkti papildinį"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Pasirinkite kalbą" #~ msgstr "Pasirinkite kalbą"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@@ -5878,22 +5878,18 @@ msgstr "Onjuist formaat. Het Vector formaat wordt verwacht: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Systeemagenten" msgstr "Systeemagenten"
# AI Translated
msgid "No plugin selected"
msgstr "Geen plug-in geselecteerd"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Plug-in toevoegen" msgstr "Plug-in toevoegen"
# AI Translated
msgid "Select plugin"
msgstr "Plug-in selecteren"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Plug-in verwijderen" msgstr "Plug-in verwijderen"
# AI Translated
msgid "No plugin selected"
msgstr "Geen plug-in geselecteerd"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Configureren" msgstr "Configureren"
@@ -8292,6 +8288,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Onderste" msgstr "Onderste"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Plug-inselectie" msgstr "Plug-inselectie"
@@ -9969,6 +9971,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
# AI Translated # AI Translated
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Pop-up om de filamentgroeperingsmodus te kiezen" msgstr "Pop-up om de filamentgroeperingsmodus te kiezen"
@@ -24121,6 +24132,10 @@ msgstr ""
"Kromtrekken voorkomen\n" "Kromtrekken voorkomen\n"
"Wist je dat bij het printen van materialen die gevoelig zijn voor kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het warmtebed de kans op kromtrekken kan verkleinen?" "Wist je dat bij het printen van materialen die gevoelig zijn voor kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het warmtebed de kans op kromtrekken kan verkleinen?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Plug-in selecteren"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Kies de taal" #~ msgstr "Kies de taal"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OrcaSlicer 2.3.0-rc\n" "Project-Id-Version: OrcaSlicer 2.3.0-rc\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n" "Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5498,22 +5498,18 @@ msgstr "Nieprawidłowy format. Oczekiwano formatu wektorowego: „%1%”"
msgid "System agents" msgid "System agents"
msgstr "Agenci systemowi" msgstr "Agenci systemowi"
# AI Translated
msgid "No plugin selected"
msgstr "Nie wybrano wtyczki"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Dodaj wtyczkę" msgstr "Dodaj wtyczkę"
# AI Translated
msgid "Select plugin"
msgstr "Wybierz wtyczkę"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Usuń wtyczkę" msgstr "Usuń wtyczkę"
# AI Translated
msgid "No plugin selected"
msgstr "Nie wybrano wtyczki"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Konfiguruj" msgstr "Konfiguruj"
@@ -7798,6 +7794,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Dół" msgstr "Dół"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Wybór wtyczek" msgstr "Wybór wtyczek"
@@ -9375,6 +9377,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Okno dialogowe do wyboru trybu grupowania filamentów" msgstr "Okno dialogowe do wyboru trybu grupowania filamentów"
@@ -22578,6 +22589,10 @@ msgstr ""
"Unikaj odkształceń\n" "Unikaj odkształceń\n"
"Czy wiesz, że podczas drukowania filamentami podatnymi na odkształcenia, takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może zmniejszyć prawdopodobieństwo odkształceń?" "Czy wiesz, że podczas drukowania filamentami podatnymi na odkształcenia, takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może zmniejszyć prawdopodobieństwo odkształceń?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Wybierz wtyczkę"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Wybierz język" #~ msgstr "Wybierz język"
+22 -7
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2026-07-26 11:14-0300\n" "PO-Revision-Date: 2026-07-26 11:14-0300\n"
"Last-Translator: Alexandre Folle de Menezes\n" "Last-Translator: Alexandre Folle de Menezes\n"
"Language-Team: Portuguese, Brazilian\n" "Language-Team: Portuguese, Brazilian\n"
@@ -5212,18 +5212,15 @@ msgstr "Formato inválido. Formato de vetor esperado: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Agentes do sistema" msgstr "Agentes do sistema"
msgid "No plugin selected"
msgstr "Nenhum plugin selecionado"
msgid "Add plugin" msgid "Add plugin"
msgstr "Adicionar plugin" msgstr "Adicionar plugin"
msgid "Select plugin"
msgstr "Selecionar plugin"
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Remover plugin" msgstr "Remover plugin"
msgid "No plugin selected"
msgstr "Nenhum plugin selecionado"
msgid "Configure" msgid "Configure"
msgstr "Configurar" msgstr "Configurar"
@@ -7423,6 +7420,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Inferior" msgstr "Inferior"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Seleção de plugins" msgstr "Seleção de plugins"
@@ -8902,6 +8905,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Abrir seleção do modo de agrupamento de filamento" msgstr "Abrir seleção do modo de agrupamento de filamento"
@@ -21292,6 +21304,9 @@ msgstr ""
"Evitar empenamento\n" "Evitar empenamento\n"
"Você sabia que ao imprimir materiais propensos ao empenamento como ABS, aumentar adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de empenamento?" "Você sabia que ao imprimir materiais propensos ao empenamento como ABS, aumentar adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de empenamento?"
#~ msgid "Select plugin"
#~ msgstr "Selecionar plugin"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Selecione o idioma" #~ msgstr "Selecione o idioma"
+22 -7
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OrcaSlicer V2.5.0\n" "Project-Id-Version: OrcaSlicer V2.5.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2026-02-25 13:38+0300\n" "PO-Revision-Date: 2026-02-25 13:38+0300\n"
"Last-Translator: Felix14_v2\n" "Last-Translator: Felix14_v2\n"
"Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n" "Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n"
@@ -5378,18 +5378,15 @@ msgstr "Недопустимый формат. Ожидаемый векторн
msgid "System agents" msgid "System agents"
msgstr "Системные агенты" msgstr "Системные агенты"
msgid "No plugin selected"
msgstr "Плагины не выбраны"
msgid "Add plugin" msgid "Add plugin"
msgstr "Добавить плагин" msgstr "Добавить плагин"
msgid "Select plugin"
msgstr "Выбрать плагин"
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Удалить плагин" msgstr "Удалить плагин"
msgid "No plugin selected"
msgstr "Плагины не выбраны"
msgid "Configure" msgid "Configure"
msgstr "Настроить" msgstr "Настроить"
@@ -7681,6 +7678,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Снизу" msgstr "Снизу"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Выбор плагинов" msgstr "Выбор плагинов"
@@ -9182,6 +9185,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
# Запрашивать выбор режима группировки? # Запрашивать выбор режима группировки?
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Всплывающее окно для выбора режима группировки материалов" msgstr "Всплывающее окно для выбора режима группировки материалов"
@@ -22331,6 +22343,9 @@ msgstr ""
"Предотвращение коробления материала\n" "Предотвращение коробления материала\n"
"Знаете ли вы, что при печати материалами, склонными к короблению, таких как ABS, повышение температуры подогреваемого стола может снизить эту вероятность?" "Знаете ли вы, что при печати материалами, склонными к короблению, таких как ABS, повышение температуры подогреваемого стола может снизить эту вероятность?"
#~ msgid "Select plugin"
#~ msgstr "Выбрать плагин"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Выбор языка" #~ msgstr "Выбор языка"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"Language: sv\n" "Language: sv\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -5954,22 +5954,18 @@ msgstr "Ogiltligt format. Förväntat vector format: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Systemagenter" msgstr "Systemagenter"
# AI Translated
msgid "No plugin selected"
msgstr "Ingen insticksmodul vald"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Lägg till insticksmodul" msgstr "Lägg till insticksmodul"
# AI Translated
msgid "Select plugin"
msgstr "Välj insticksmodul"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Ta bort insticksmodul" msgstr "Ta bort insticksmodul"
# AI Translated
msgid "No plugin selected"
msgstr "Ingen insticksmodul vald"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Konfigurera" msgstr "Konfigurera"
@@ -8379,6 +8375,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Bottenlager" msgstr "Bottenlager"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Val av insticksmodul" msgstr "Val av insticksmodul"
@@ -10075,6 +10077,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
# AI Translated # AI Translated
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Visa dialogruta för val av filamentgrupperingsläge" msgstr "Visa dialogruta för val av filamentgrupperingsläge"
@@ -24409,6 +24420,10 @@ msgstr ""
"Undvik vridning\n" "Undvik vridning\n"
"Visste du att när du skriver ut material som är benägna att vrida, såsom ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten för vridning?" "Visste du att när du skriver ut material som är benägna att vrida, såsom ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten för vridning?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Välj insticksmodul"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Välj språk" #~ msgstr "Välj språk"
+24 -9
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2026-06-19 13:40+0700\n" "PO-Revision-Date: 2026-06-19 13:40+0700\n"
"Last-Translator: Icezaza\n" "Last-Translator: Icezaza\n"
"Language-Team: Thai\n" "Language-Team: Thai\n"
@@ -5363,22 +5363,18 @@ msgstr "รูปแบบไม่ถูกต้อง รูปแบบเ
msgid "System agents" msgid "System agents"
msgstr "เอเจนต์ระบบ" msgstr "เอเจนต์ระบบ"
# AI Translated
msgid "No plugin selected"
msgstr "ไม่ได้เลือกปลั๊กอิน"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "เพิ่มปลั๊กอิน" msgstr "เพิ่มปลั๊กอิน"
# AI Translated
msgid "Select plugin"
msgstr "เลือกปลั๊กอิน"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "ลบปลั๊กอิน" msgstr "ลบปลั๊กอิน"
# AI Translated
msgid "No plugin selected"
msgstr "ไม่ได้เลือกปลั๊กอิน"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "กำหนดค่า" msgstr "กำหนดค่า"
@@ -7577,6 +7573,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "ล่าง" msgstr "ล่าง"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "การเลือกปลั๊กอิน" msgstr "การเลือกปลั๊กอิน"
@@ -9088,6 +9090,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "ปรากฏขึ้นเพื่อเลือกโหมดการจัดกลุ่มเส้นพลาสติก" msgstr "ปรากฏขึ้นเพื่อเลือกโหมดการจัดกลุ่มเส้นพลาสติก"
@@ -21709,6 +21720,10 @@ msgstr ""
"หลีกเลี่ยงการบิดเบี้ยว\n" "หลีกเลี่ยงการบิดเบี้ยว\n"
"คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้" "คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "เลือกปลั๊กอิน"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "เลือกภาษา" #~ msgstr "เลือกภาษา"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2026-08-21 23:18+0300\n" "PO-Revision-Date: 2026-08-21 23:18+0300\n"
"Last-Translator: GlauTech\n" "Last-Translator: GlauTech\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5426,22 +5426,18 @@ msgstr "Geçersiz format. Beklenen vektör formatı: \"%1%\""
msgid "System agents" msgid "System agents"
msgstr "Sistem aracıları" msgstr "Sistem aracıları"
# AI Translated
msgid "No plugin selected"
msgstr "Eklenti seçilmedi"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Eklenti ekle" msgstr "Eklenti ekle"
# AI Translated
msgid "Select plugin"
msgstr "Eklenti seç"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Eklentiyi kaldır" msgstr "Eklentiyi kaldır"
# AI Translated
msgid "No plugin selected"
msgstr "Eklenti seçilmedi"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Yapılandır" msgstr "Yapılandır"
@@ -7666,6 +7662,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Alt" msgstr "Alt"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Eklenti Seçimi" msgstr "Eklenti Seçimi"
@@ -9193,6 +9195,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Filament gruplama modunu seçmek için açılır pencere" msgstr "Filament gruplama modunu seçmek için açılır pencere"
@@ -22164,6 +22175,10 @@ msgstr ""
"Eğilmeyi önleyin\n" "Eğilmeyi önleyin\n"
"ABS gibi bükülmeye yatkın malzemelere baskı yaparken, ısıtma yatağı sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını azaltabileceğini biliyor muydunuz?" "ABS gibi bükülmeye yatkın malzemelere baskı yaparken, ısıtma yatağı sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını azaltabileceğini biliyor muydunuz?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Eklenti seç"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Dili seçin" #~ msgstr "Dili seçin"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: orcaslicerua\n" "Project-Id-Version: orcaslicerua\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2026-07-17 16:25+0300\n" "PO-Revision-Date: 2026-07-17 16:25+0300\n"
"Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n" "Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n"
"Language-Team: Ukrainian\n" "Language-Team: Ukrainian\n"
@@ -5375,22 +5375,18 @@ msgstr "Невірний формат. Очікуваний векторний
msgid "System agents" msgid "System agents"
msgstr "Системні агенти" msgstr "Системні агенти"
# AI Translated
msgid "No plugin selected"
msgstr "Плагін не вибрано"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Додати плагін" msgstr "Додати плагін"
# AI Translated
msgid "Select plugin"
msgstr "Вибрати плагін"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Вилучити плагін" msgstr "Вилучити плагін"
# AI Translated
msgid "No plugin selected"
msgstr "Плагін не вибрано"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Налаштувати" msgstr "Налаштувати"
@@ -7650,6 +7646,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Низ" msgstr "Низ"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Вибір плагіна" msgstr "Вибір плагіна"
@@ -9211,6 +9213,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
# AI Translated # AI Translated
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Показувати вікно вибору режиму групування філаментів" msgstr "Показувати вікно вибору режиму групування філаментів"
@@ -22325,6 +22336,10 @@ msgstr ""
"Уникнення деформації\n" "Уникнення деформації\n"
"Чи знаєте ви, що при друку матеріалами, схильними до деформації, такими як ABS, відповідне підвищення температури столу може зменшити ймовірність деформації?" "Чи знаєте ви, що при друку матеріалами, схильними до деформації, такими як ABS, відповідне підвищення температури столу може зменшити ймовірність деформації?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Вибрати плагін"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Вибрати мову" #~ msgstr "Вибрати мову"
+24 -9
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2025-10-02 17:43+0700\n" "PO-Revision-Date: 2025-10-02 17:43+0700\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: hainguyen.ts13@gmail.com\n" "Language-Team: hainguyen.ts13@gmail.com\n"
@@ -5679,22 +5679,18 @@ msgstr "Định dạng không hợp lệ. Mong đợi định dạng vector: \"%
msgid "System agents" msgid "System agents"
msgstr "Tác nhân hệ thống" msgstr "Tác nhân hệ thống"
# AI Translated
msgid "No plugin selected"
msgstr "Chưa chọn plugin"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "Thêm plugin" msgstr "Thêm plugin"
# AI Translated
msgid "Select plugin"
msgstr "Chọn plugin"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "Xóa plugin" msgstr "Xóa plugin"
# AI Translated
msgid "No plugin selected"
msgstr "Chưa chọn plugin"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "Cấu hình" msgstr "Cấu hình"
@@ -8035,6 +8031,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "Dưới" msgstr "Dưới"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "Chọn plugin" msgstr "Chọn plugin"
@@ -9674,6 +9676,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
# AI Translated # AI Translated
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "Hiện cửa sổ để chọn chế độ nhóm filament" msgstr "Hiện cửa sổ để chọn chế độ nhóm filament"
@@ -23048,6 +23059,10 @@ msgstr ""
"Tránh cong vênh\n" "Tránh cong vênh\n"
"Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn nóng một cách thích hợp có thể giảm xác suất cong vênh không?" "Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn nóng một cách thích hợp có thể giảm xác suất cong vênh không?"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "Chọn plugin"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "Chọn ngôn ngữ" #~ msgstr "Chọn ngôn ngữ"
+24 -9
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Slic3rPE\n" "Project-Id-Version: Slic3rPE\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2026-06-11 12:37-0300\n" "PO-Revision-Date: 2026-06-11 12:37-0300\n"
"Last-Translator: Handle <mail@bysb.net>\n" "Last-Translator: Handle <mail@bysb.net>\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5219,22 +5219,18 @@ msgstr "无效格式,应该是\"%1%\"这种数组格式"
msgid "System agents" msgid "System agents"
msgstr "系统代理" msgstr "系统代理"
# AI Translated
msgid "No plugin selected"
msgstr "未选择插件"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "添加插件" msgstr "添加插件"
# AI Translated
msgid "Select plugin"
msgstr "选择插件"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "移除插件" msgstr "移除插件"
# AI Translated
msgid "No plugin selected"
msgstr "未选择插件"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "配置" msgstr "配置"
@@ -7430,6 +7426,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "底部" msgstr "底部"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "插件选择" msgstr "插件选择"
@@ -8910,6 +8912,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "弹出选择耗材丝分组模式" msgstr "弹出选择耗材丝分组模式"
@@ -21457,6 +21468,10 @@ msgstr ""
"避免翘曲\n" "避免翘曲\n"
"您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。" "您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "选择插件"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "选择语言" #~ msgstr "选择语言"
+24 -9
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-11 12:33+0800\n" "POT-Creation-Date: 2026-09-11 17:15+0800\n"
"PO-Revision-Date: 2025-11-28 13:48-0600\n" "PO-Revision-Date: 2025-11-28 13:48-0600\n"
"Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n" "Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n"
"Language-Team: \n" "Language-Team: \n"
@@ -5348,22 +5348,18 @@ msgstr "無效格式,應該是「%1%」這種格式"
msgid "System agents" msgid "System agents"
msgstr "系統代理程式" msgstr "系統代理程式"
# AI Translated
msgid "No plugin selected"
msgstr "未選擇外掛"
# AI Translated # AI Translated
msgid "Add plugin" msgid "Add plugin"
msgstr "新增外掛" msgstr "新增外掛"
# AI Translated
msgid "Select plugin"
msgstr "選擇外掛"
# AI Translated # AI Translated
msgid "Remove plugin" msgid "Remove plugin"
msgstr "移除外掛" msgstr "移除外掛"
# AI Translated
msgid "No plugin selected"
msgstr "未選擇外掛"
# AI Translated # AI Translated
msgid "Configure" msgid "Configure"
msgstr "設定" msgstr "設定"
@@ -7569,6 +7565,12 @@ msgctxt "Layers"
msgid "Bottom" msgid "Bottom"
msgstr "底部" msgstr "底部"
msgid "This setting does not specify a plugin capability type."
msgstr ""
msgid "This setting specifies an unrecognized plugin capability type: "
msgstr ""
# AI Translated # AI Translated
msgid "Plugin Selection" msgid "Plugin Selection"
msgstr "外掛選擇" msgstr "外掛選擇"
@@ -9083,6 +9085,15 @@ msgstr ""
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
msgstr "" msgstr ""
msgid "Recent actions"
msgstr ""
msgid "actions"
msgstr ""
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
msgstr ""
msgid "Pop up to select filament grouping mode" msgid "Pop up to select filament grouping mode"
msgstr "彈出視窗選擇線材分組模式" msgstr "彈出視窗選擇線材分組模式"
@@ -21671,6 +21682,10 @@ msgstr ""
"避免翹曲\n" "避免翹曲\n"
"您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。" "您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。"
# AI Translated
#~ msgid "Select plugin"
#~ msgstr "選擇外掛"
#~ msgid "Select the language" #~ msgid "Select the language"
#~ msgstr "選擇語言" #~ msgstr "選擇語言"
+2
View File
@@ -478,6 +478,8 @@ set(SLIC3R_GUI_SOURCES
GUI/SkipPartCanvas.hpp GUI/SkipPartCanvas.hpp
GUI/Search.cpp GUI/Search.cpp
GUI/Search.hpp GUI/Search.hpp
GUI/SettingsIndex.cpp
GUI/SettingsIndex.hpp
GUI/Selection.cpp GUI/Selection.cpp
GUI/Selection.hpp GUI/Selection.hpp
GUI/SelectMachine.cpp GUI/SelectMachine.cpp
+4 -4
View File
@@ -8,7 +8,7 @@
#include "Notebook.hpp" #include "Notebook.hpp"
#include "OptionsGroup.hpp" #include "OptionsGroup.hpp"
#include "Plater.hpp" #include "Plater.hpp"
#include "Search.hpp" #include "SettingsIndex.hpp"
#include "Tab.hpp" #include "Tab.hpp"
#include "slic3r/plugin/PluginManager.hpp" #include "slic3r/plugin/PluginManager.hpp"
@@ -526,11 +526,11 @@ void ActionRegistry::materialize_setting_actions()
{ {
assert(wxThread::IsMain()); assert(wxThread::IsMain());
// Reuse the Sidebar's live searcher: it's the only OptionsSearcher whose groups_and_categories // Reuse the Sidebar's live settings index: it's the only catalog whose group/category map is
// map is populated (Tab::add_key feeds it at build time), and it already mirrors the current // populated (Tab::add_key feeds it at build time), and it already mirrors the current
// configs/printer-technology. Use the all-modes view so the Speed Dial lists every setting, // configs/printer-technology. Use the all-modes view so the Speed Dial lists every setting,
// including those above the user's current mode, and can prompt to switch before jumping. // including those above the user's current mode, and can prompt to switch before jumping.
const std::vector<Search::Option>& options = wxGetApp().sidebar().get_searcher().all_modes_options(); const std::vector<Search::Option>& options = wxGetApp().sidebar().settings_index().all_options();
// Load the persisted per-action state ONCE (not per-option) so a re-materialised setting keeps // Load the persisted per-action state ONCE (not per-option) so a re-materialised setting keeps
// its recency/favourite; mirroring seed_state but amortised over the whole option set. // its recency/favourite; mirroring seed_state but amortised over the whole option set.
+2 -2
View File
@@ -248,7 +248,7 @@ void OptionsGroup::append_line(const Line& line)
// affordance for it. Settings tabs only; the searcher already exists by the time tabs are built. // affordance for it. Settings tabs only; the searcher already exists by the time tabs are built.
if (m_use_custom_ctrl && !line.label_path.empty()) if (m_use_custom_ctrl && !line.label_path.empty())
for (const auto& opt : line.get_options()) for (const auto& opt : line.get_options())
wxGetApp().sidebar().get_searcher().set_path(opt.opt_id, static_cast<Preset::Type>(config_type()), line.label_path); wxGetApp().sidebar().settings_index().set_path(opt.opt_id, static_cast<Preset::Type>(config_type()), line.label_path);
if (line.full_width && (line.widget != nullptr || !line.get_extra_widgets().empty())) if (line.full_width && (line.widget != nullptr || !line.get_extra_widgets().empty()))
return; return;
@@ -656,7 +656,7 @@ Option ConfigOptionsGroup::get_option(const std::string& opt_key, int opt_index
m_opt_map.emplace(opt_id, pair); m_opt_map.emplace(opt_id, pair);
if (m_use_custom_ctrl) // fill group and category values just for options from Settings Tab if (m_use_custom_ctrl) // fill group and category values just for options from Settings Tab
wxGetApp().sidebar().get_searcher().add_key(opt_id, static_cast<Preset::Type>(this->config_type()), title, this->config_category(), this->icon); wxGetApp().sidebar().settings_index().add_key(opt_id, static_cast<Preset::Type>(this->config_type()), title, this->config_category(), this->icon);
return Option(*m_config->def()->get(opt_key), opt_id); return Option(*m_config->def()->get(opt_key), opt_id);
} }
+5
View File
@@ -6419,6 +6419,11 @@ Search::OptionsSearcher& Sidebar::get_searcher()
return p->searcher; return p->searcher;
} }
Search::SettingsIndex& Sidebar::settings_index()
{
return p->searcher.index();
}
std::string& Sidebar::get_search_line() std::string& Sidebar::get_search_line()
{ {
return p->searcher.search_string(); return p->searcher.search_string();
+1
View File
@@ -282,6 +282,7 @@ public:
std::vector<std::string>& types, std::vector<std::string>& types,
std::vector<size_t>* config_indices = nullptr); std::vector<size_t>* config_indices = nullptr);
Search::OptionsSearcher& get_searcher(); Search::OptionsSearcher& get_searcher();
Search::SettingsIndex& settings_index();
std::string& get_search_line(); std::string& get_search_line();
void update_printer_thumbnail(); void update_printer_thumbnail();
+4 -211
View File
@@ -62,107 +62,12 @@ static char marker_by_type(Preset::Type type, PrinterTechnology pt)
} }
} }
std::string Option::opt_key() const { return into_u8(key).substr(2); }
void FoundOption::get_marked_label_and_tooltip(const char **label_, const char **tooltip_) const void FoundOption::get_marked_label_and_tooltip(const char **label_, const char **tooltip_) const
{ {
*label_ = marked_label.c_str(); *label_ = marked_label.c_str();
*tooltip_ = tooltip.c_str(); *tooltip_ = tooltip.c_str();
} }
template<class T>
// void change_opt_key(std::string& opt_key, DynamicPrintConfig* config)
void change_opt_key(std::string &opt_key, DynamicPrintConfig *config, int &cnt)
{
T *opt_cur = static_cast<T *>(config->option(opt_key));
cnt = opt_cur->values.size();
return;
if (opt_cur->values.size() > 0) opt_key += "#" + std::to_string(0);
}
static std::string get_key(const std::string &opt_key, Preset::Type type) { return std::to_string(int(type)) + ";" + opt_key; }
void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode)
{
auto emplace = [this, type](std::vector<Option> &dst, const std::string &key, const wxString &label, ConfigOptionMode opt_mode, std::string tooltip) {
const GroupAndCategory &gc = groups_and_categories[key];
if (gc.group.IsEmpty() || gc.category.IsEmpty()) return;
wxString suffix;
wxString suffix_local;
if (gc.category == "Machine limits") {
//suffix = key.back() == '1' ? L("Stealth") : L("Normal");
suffix = key.back() == '1' ? wxEmptyString : wxEmptyString;
suffix_local = " " + _(suffix);
suffix = " " + suffix;
}
if (!label.IsEmpty())
dst.emplace_back(Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), gc.group.ToStdWstring(),
_(gc.group).ToStdWstring(), into_u8(gc.icon), gc.category.ToStdWstring(), GUI::Tab::translate_category(gc.category, type).ToStdWstring(),
false, opt_mode, std::move(tooltip), gc.path});
};
for (std::string opt_key : config->keys()) {
const ConfigOptionDef &opt = config->def()->options.at(opt_key);
const bool in_filtered = opt.mode <= mode;
int cnt = 0;
if ((type == Preset::TYPE_SLA_MATERIAL || type == Preset::TYPE_PRINTER || type == Preset::TYPE_PRINT) && opt_key != "printable_area")
switch (config->option(opt_key)->type()) {
case coInts: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break;
case coBools: change_opt_key<ConfigOptionBools>(opt_key, config, cnt); break;
case coFloats: change_opt_key<ConfigOptionFloats>(opt_key, config, cnt); break;
case coStrings: change_opt_key<ConfigOptionStrings>(opt_key, config, cnt); break;
case coPercents: change_opt_key<ConfigOptionPercents>(opt_key, config, cnt); break;
case coPoints: change_opt_key<ConfigOptionPoints>(opt_key, config, cnt); break;
// BBS
case coEnums: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break;
default: break;
}
if (type == Preset::TYPE_FILAMENT && filament_options_with_variant.find(opt_key) != filament_options_with_variant.end())
opt_key += "#0";
wxString label = opt.full_label.empty() ? opt.label : opt.full_label;
std::string key = get_key(opt_key, type);
auto add = [&](const std::string &k) {
if (in_filtered)
emplace(options, k, label, opt.mode, into_u8(_(opt.tooltip)));
emplace(options_all_modes, k, label, opt.mode, into_u8(_(opt.tooltip)));
};
if (cnt == 0)
add(key);
else
for (int i = 0; i < cnt; ++i)
// ! It's very important to use "#". opt_key#n is a real option key used in GroupAndCategory
add(key + "#" + std::to_string(i));
}
}
void OptionsSearcher::sort_options()
{
// Both views are label-sorted and multi_category-marked. They are separate consumers (the sidebar
// search and the Speed Dial); keeping them in sync here prevents the all-modes view from silently
// diverging in order or flags.
auto sort_and_mark = [](std::vector<Option> &v) {
std::sort(v.begin(), v.end(), [](const Option &o1, const Option &o2) { return o1.label < o2.label; });
Option *last = nullptr;
for (auto &opt : v) {
if (last && last->label == opt.label && last->group == opt.group && last->type == opt.type && last->category != opt.category) {
last->multi_category = true;
opt.multi_category = true;
}
last = &opt;
}
};
sort_and_mark(options);
sort_and_mark(options_all_modes);
}
// Mark a string using ColorMarkerStart and ColorMarkerEnd symbols // Mark a string using ColorMarkerStart and ColorMarkerEnd symbols
static std::wstring mark_string(const std::wstring &str, const std::vector<uint16_t> &matches, Preset::Type type, PrinterTechnology pt) static std::wstring mark_string(const std::wstring &str, const std::vector<uint16_t> &matches, Preset::Type type, PrinterTechnology pt)
{ {
@@ -248,6 +153,7 @@ bool OptionsSearcher::search(const std::string &search, bool force /* = false*/,
}; };
std::vector<uint16_t> matches, matches2; std::vector<uint16_t> matches, matches2;
const std::vector<Option> &options = m_index.options();
for (size_t i = 0; i < options.size(); i++) { for (size_t i = 0; i < options.size(); i++) {
const Option &opt = options[i]; const Option &opt = options[i];
if (full_list) { if (full_list) {
@@ -319,117 +225,21 @@ OptionsSearcher::~OptionsSearcher() {}
void OptionsSearcher::init(std::vector<InputInfo> input_values) void OptionsSearcher::init(std::vector<InputInfo> input_values)
{ {
options.clear(); m_index.init(std::move(input_values));
options_all_modes.clear();
for (auto i : input_values) append_options(i.config, i.type, i.mode);
sort_options();
search(search_line, true, search_type); search(search_line, true, search_type);
} }
void OptionsSearcher::apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode) void OptionsSearcher::apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode)
{ {
// options_all_modes is a separate consumer (the Speed Dial), so "nothing initialised yet" means if (m_index.apply(config, type, mode))
// both views are empty - the mode-filtered options can be empty while the all-modes view is not.
if (options.empty() && options_all_modes.empty()) return;
options.erase(std::remove_if(options.begin(), options.end(), [type](Option opt) { return opt.type == type; }), options.end());
options_all_modes.erase(std::remove_if(options_all_modes.begin(), options_all_modes.end(), [type](Option opt) { return opt.type == type; }),
options_all_modes.end());
append_options(config, type, mode);
sort_options();
search(search_line, true, search_type); search(search_line, true, search_type);
} }
const Option &OptionsSearcher::get_option(size_t pos_in_filter) const const Option &OptionsSearcher::get_option(size_t pos_in_filter) const
{ {
assert(pos_in_filter != size_t(-1) && found[pos_in_filter].option_idx != size_t(-1)); assert(pos_in_filter != size_t(-1) && found[pos_in_filter].option_idx != size_t(-1));
return options[found[pos_in_filter].option_idx]; return m_index.option_at(found[pos_in_filter].option_idx);
}
const Option &OptionsSearcher::get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const
{
std::string opt_key2 = opt_key;
if (auto n = opt_key.find('#'); n != std::string::npos) {
variant_index = std::atoi(opt_key.c_str() + n + 1);
opt_key2 = opt_key.substr(0, n);
}
auto it = std::lower_bound(options.begin(), options.end(), Option({boost::nowide::widen(get_key(opt_key2, type))}));
// BBS: return the 0th option when not found in searcher caused by mode difference
// assert(it != options.end());
if (it == options.end()) { variant_index = -2 ; return options[0]; }
if (it->opt_key() == opt_key2) {
variant_index = -1;
} else {
const std::string opt_key3 = opt_key2 + "#";
it = std::lower_bound(it, options.end(), Option({boost::nowide::widen(get_key(opt_key3, type))}));
if (it == options.end() || it->opt_key().compare(0, opt_key3.length(), opt_key3) != 0) {
variant_index = -2; // Not found
return options[0];
}
auto it2 = it;
++it2;
if (it2 != options.end() && it2->opt_key().compare(0, opt_key3.length(), opt_key3) == 0
&& printer_options_with_variant_1.find(opt_key2) == printer_options_with_variant_1.end())
variant_index = -2;
}
return options[it - options.begin()];
}
static Option create_option(const std::string &opt_key, const wxString &label, Preset::Type type, const GroupAndCategory &gc)
{
wxString suffix;
wxString suffix_local;
if (gc.category == "Machine limits") {
//suffix = opt_key.back() == '1' ? L("Stealth") : L("Normal");
suffix = opt_key.back() == '1' ? wxEmptyString : wxEmptyString;
suffix_local = " " + _(suffix);
suffix = " " + suffix;
}
wxString category = gc.category;
if (type == Preset::TYPE_PRINTER && category.Contains("Extruder ")) {
std::string opt_idx = opt_key.substr(opt_key.find("#") + 1);
category = wxString::Format("%s %d", "Extruder", atoi(opt_idx.c_str()) + 1);
}
return Option{boost::nowide::widen(get_key(opt_key, type)),
type,
(label + suffix).ToStdWstring(),
(_(label) + suffix_local).ToStdWstring(),
gc.group.ToStdWstring(),
_(gc.group).ToStdWstring(),
into_u8(gc.icon),
gc.category.ToStdWstring(),
GUI::Tab::translate_category(category, type).ToStdWstring()};
}
Option OptionsSearcher::get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const
{
std::string key = get_key(opt_key, type);
auto it = std::lower_bound(options.begin(), options.end(), Option({boost::nowide::widen(key)}));
// BBS: return the 0th option when not found in searcher caused by mode difference
if (it == options.end()) return options[0];
if (it->key == boost::nowide::widen(key)) return options[it - options.begin()];
if (groups_and_categories.find(key) == groups_and_categories.end()) {
size_t pos = key.find('#');
if (pos == std::string::npos) return options[it - options.begin()];
std::string zero_opt_key = key.substr(0, pos + 1) + "0";
if (groups_and_categories.find(zero_opt_key) == groups_and_categories.end()) return options[it - options.begin()];
return create_option(opt_key, label, type, groups_and_categories.at(zero_opt_key));
}
const GroupAndCategory &gc = groups_and_categories.at(key);
if (gc.group.IsEmpty() || gc.category.IsEmpty()) return options[it - options.begin()];
return create_option(opt_key, label, type, gc);
} }
void OptionsSearcher::show_dialog(Preset::Type type, wxWindow *parent, TextInput *input, wxWindow* ssearch_btn) void OptionsSearcher::show_dialog(Preset::Type type, wxWindow *parent, TextInput *input, wxWindow* ssearch_btn)
@@ -456,23 +266,6 @@ void OptionsSearcher::dlg_msw_rescale()
{ {
if (search_dialog) search_dialog->msw_rescale(); if (search_dialog) search_dialog->msw_rescale();
} }
void OptionsSearcher::add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon)
{
// Update fields in place so a page rebuild (get_option after set_path) doesn't drop the
// previously recorded wiki path.
GroupAndCategory &gc = groups_and_categories[get_key(opt_key, type)];
gc.group = group;
gc.category = category;
gc.icon = icon;
}
void OptionsSearcher::set_path(const std::string &opt_key, Preset::Type type, const std::string &path)
{
if (path.empty())
return;
groups_and_categories[get_key(opt_key, type)].path = path;
}
//------------------------------------------ //------------------------------------------
// SearchItem // SearchItem
//------------------------------------------ //------------------------------------------
+8 -70
View File
@@ -19,6 +19,7 @@
#include "wxExtensions.hpp" #include "wxExtensions.hpp"
#include "GUI_Utils.hpp" #include "GUI_Utils.hpp"
#include "libslic3r/Preset.hpp" #include "libslic3r/Preset.hpp"
#include "SettingsIndex.hpp"
#include "Widgets/ScrolledWindow.hpp" #include "Widgets/ScrolledWindow.hpp"
#include "Widgets/TextInput.hpp" #include "Widgets/TextInput.hpp"
#include "Widgets/PopupWindow.hpp" #include "Widgets/PopupWindow.hpp"
@@ -34,45 +35,6 @@ namespace Search {
class SearchDialog; class SearchDialog;
struct InputInfo
{
DynamicPrintConfig *config{nullptr};
Preset::Type type{Preset::TYPE_INVALID};
ConfigOptionMode mode{comSimple};
};
struct GroupAndCategory
{
wxString group;
wxString category;
wxString icon; // icon of the group's own header, or empty
std::string path; // wiki path (Line::label_path) of the option's line, or empty
};
struct Option
{
// bool operator<(const Option& other) const { return other.label > this->label; }
bool operator<(const Option &other) const { return other.key > this->key; }
// Fuzzy matching works at a character level. Thus matching with wide characters is a safer bet than with short characters,
// though for some languages (Chinese?) it may not work correctly.
std::wstring key;
Preset::Type type{Preset::TYPE_INVALID};
std::wstring label;
std::wstring label_local;
std::wstring group;
std::wstring group_local;
std::string group_icon; // SVG base name of the group's own header icon, or empty
std::wstring category;
std::wstring category_local;
bool multi_category { false };
ConfigOptionMode mode{comSimple}; // option's visibility threshold; drives the Speed Dial's mode prompt
std::string tooltip; // localized ConfigOptionDef::tooltip, or empty
std::string wiki_path; // Line::label_path for the option's row, or empty
std::string opt_key() const;
};
struct FoundOption struct FoundOption
{ {
// UTF8 encoding, to be consumed by ImGUI by reference. // UTF8 encoding, to be consumed by ImGUI by reference.
@@ -96,28 +58,19 @@ struct OptionViewParameters
class OptionsSearcher class OptionsSearcher
{ {
SettingsIndex m_index;
std::string search_line; std::string search_line;
Preset::Type search_type = Preset::TYPE_INVALID; Preset::Type search_type = Preset::TYPE_INVALID;
std::map<std::string, GroupAndCategory> groups_and_categories;
PrinterTechnology printer_technology; PrinterTechnology printer_technology;
std::vector<Option> options{};
// Every option regardless of the current UI mode (Simple/Advanced/Expert/Developer), for the
// Speed Dial. The sidebar search keeps using the mode-filtered `options`.
std::vector<Option> options_all_modes{};
std::vector<FoundOption> found{}; std::vector<FoundOption> found{};
void append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode);
void sort_options();
void sort_found() void sort_found()
{ {
std::sort(found.begin(), found.end(), std::sort(found.begin(), found.end(),
[](const FoundOption &f1, const FoundOption &f2) { return f1.outScore > f2.outScore || (f1.outScore == f2.outScore && f1.label < f2.label); }); [](const FoundOption &f1, const FoundOption &f2) { return f1.outScore > f2.outScore || (f1.outScore == f2.outScore && f1.label < f2.label); });
}; };
size_t options_size() const { return options.size(); }
size_t found_size() const { return found.size(); } size_t found_size() const { return found.size(); }
public: public:
@@ -128,44 +81,29 @@ public:
OptionsSearcher(); OptionsSearcher();
~OptionsSearcher(); ~OptionsSearcher();
SettingsIndex & index() { return m_index; }
const SettingsIndex &index() const { return m_index; }
// Rebuild the catalog and re-run the current query so the cached results track it.
void init(std::vector<InputInfo> input_values); void init(std::vector<InputInfo> input_values);
void apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode); void apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode);
bool search(); bool search();
bool search(const std::string &search, bool force = false, Preset::Type type = Preset::TYPE_INVALID); bool search(const std::string &search, bool force = false, Preset::Type type = Preset::TYPE_INVALID);
void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category,
const wxString &icon = wxEmptyString);
// Records the wiki path of an option's row (Line::label_path) so the Speed Dial can offer a
// "open wiki" affordance. Empty paths are ignored.
void set_path(const std::string &opt_key, Preset::Type type, const std::string &path);
size_t size() const { return found_size(); } size_t size() const { return found_size(); }
const FoundOption &operator[](const size_t pos) const noexcept { return found[pos]; } const FoundOption &operator[](const size_t pos) const noexcept { return found[pos]; }
const Option & get_option(size_t pos_in_filter) const; const Option & get_option(size_t pos_in_filter) const;
const Option & get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const;
Option get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const;
const std::vector<FoundOption> &found_options() { return found; } const std::vector<FoundOption> &found_options() { return found; }
const GroupAndCategory & get_group_and_category(const std::string &opt_key) { return groups_and_categories[opt_key]; }
std::string & search_string() { return search_line; } std::string & search_string() { return search_line; }
void set_printer_technology(PrinterTechnology pt) { printer_technology = pt; } void set_printer_technology(PrinterTechnology pt) { printer_technology = pt; }
void sort_options_by_key()
{
std::sort(options.begin(), options.end(), [](const Option &o1, const Option &o2) { return o1.key < o2.key; });
}
void sort_options_by_label() { sort_options(); }
void show_dialog(Preset::Type type, wxWindow *parent, TextInput *input, wxWindow *ssearch_btn); void show_dialog(Preset::Type type, wxWindow *parent, TextInput *input, wxWindow *ssearch_btn);
void dlg_sys_color_changed(); void dlg_sys_color_changed();
void dlg_msw_rescale(); void dlg_msw_rescale();
// Every option across all UI modes (Developer included), regardless of the current mode.
// Used by the Speed Dial so it can list settings the user would have to switch mode to edit.
const std::vector<Option>& all_modes_options() const { return options_all_modes; }
}; };
//------------------------------------------ //------------------------------------------
+229
View File
@@ -0,0 +1,229 @@
#include "SettingsIndex.hpp"
#include <algorithm>
#include <cstddef>
#include <cstdlib>
#include <string>
#include <vector>
#include <boost/nowide/convert.hpp>
#include "GUI.hpp"
#include "I18N.hpp"
#include "Tab.hpp"
#include "libslic3r/PrintConfig.hpp"
namespace Slic3r {
using GUI::into_u8;
namespace Search {
static std::string get_key(const std::string &opt_key, Preset::Type type) { return std::to_string(int(type)) + ";" + opt_key; }
std::string Option::opt_key() const { return into_u8(key).substr(2); }
template<class T>
// void change_opt_key(std::string& opt_key, DynamicPrintConfig* config)
void change_opt_key(std::string &opt_key, DynamicPrintConfig *config, int &cnt)
{
T *opt_cur = static_cast<T *>(config->option(opt_key));
cnt = opt_cur->values.size();
return;
if (opt_cur->values.size() > 0) opt_key += "#" + std::to_string(0);
}
// Single assembler for an indexed Option, shared by append_options() and create_option(), so a new
// Option field is only wired up in one place.
static Option make_option(const std::string &key, Preset::Type type, const wxString &label, const GroupAndCategory &gc,
ConfigOptionMode mode, const std::string &tooltip, bool rewrite_extruder_category)
{
wxString suffix;
wxString suffix_local;
if (gc.category == "Machine limits") {
//suffix = key.back() == '1' ? L("Stealth") : L("Normal");
suffix = key.back() == '1' ? wxEmptyString : wxEmptyString;
suffix_local = " " + _(suffix);
suffix = " " + suffix;
}
wxString category = gc.category;
if (rewrite_extruder_category && type == Preset::TYPE_PRINTER && category.Contains("Extruder ")) {
std::string opt_idx = key.substr(key.find("#") + 1);
category = wxString::Format("%s %d", "Extruder", atoi(opt_idx.c_str()) + 1);
}
return Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(),
gc.group.ToStdWstring(), _(gc.group).ToStdWstring(), into_u8(gc.icon), gc.category.ToStdWstring(),
GUI::Tab::translate_category(category, type).ToStdWstring(), false, mode, tooltip, gc.path};
}
void SettingsIndex::append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode)
{
for (std::string opt_key : config->keys()) {
const ConfigOptionDef &opt = config->def()->options.at(opt_key);
const bool in_filtered = opt.mode <= mode;
int cnt = 0;
if ((type == Preset::TYPE_SLA_MATERIAL || type == Preset::TYPE_PRINTER || type == Preset::TYPE_PRINT) && opt_key != "printable_area")
switch (config->option(opt_key)->type()) {
case coInts: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break;
case coBools: change_opt_key<ConfigOptionBools>(opt_key, config, cnt); break;
case coFloats: change_opt_key<ConfigOptionFloats>(opt_key, config, cnt); break;
case coStrings: change_opt_key<ConfigOptionStrings>(opt_key, config, cnt); break;
case coPercents: change_opt_key<ConfigOptionPercents>(opt_key, config, cnt); break;
case coPoints: change_opt_key<ConfigOptionPoints>(opt_key, config, cnt); break;
// BBS
case coEnums: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break;
default: break;
}
if (type == Preset::TYPE_FILAMENT && filament_options_with_variant.find(opt_key) != filament_options_with_variant.end())
opt_key += "#0";
wxString label = opt.full_label.empty() ? opt.label : opt.full_label;
std::string key = get_key(opt_key, type);
auto add = [&](const std::string &k) {
const GroupAndCategory &gc = m_groups_and_categories[k];
if (gc.group.IsEmpty() || gc.category.IsEmpty() || label.IsEmpty()) return;
const std::string tooltip = into_u8(_(opt.tooltip));
if (in_filtered)
m_options.emplace_back(make_option(k, type, label, gc, opt.mode, tooltip, false));
m_all_modes.emplace_back(make_option(k, type, label, gc, opt.mode, tooltip, false));
};
if (cnt == 0)
add(key);
else
for (int i = 0; i < cnt; ++i)
// ! It's very important to use "#". opt_key#n is a real option key used in GroupAndCategory
add(key + "#" + std::to_string(i));
}
}
void SettingsIndex::sort_options()
{
// Both views are label-sorted and multi_category-marked. They are separate consumers (the sidebar
// search and the Speed Dial); keeping them in sync here prevents the all-modes view from silently
// diverging in order or flags.
auto sort_and_mark = [](std::vector<Option> &v) {
std::sort(v.begin(), v.end(), [](const Option &o1, const Option &o2) { return o1.label < o2.label; });
Option *last = nullptr;
for (auto &opt : v) {
if (last && last->label == opt.label && last->group == opt.group && last->type == opt.type && last->category != opt.category) {
last->multi_category = true;
opt.multi_category = true;
}
last = &opt;
}
};
sort_and_mark(m_options);
sort_and_mark(m_all_modes);
}
void SettingsIndex::init(std::vector<InputInfo> input_values)
{
m_options.clear();
m_all_modes.clear();
for (auto i : input_values) append_options(i.config, i.type, i.mode);
sort_options();
}
bool SettingsIndex::apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode)
{
// m_all_modes is a separate consumer (the Speed Dial), so "nothing initialised yet" means both
// views are empty - the mode-filtered m_options can be empty while m_all_modes is not.
if (m_options.empty() && m_all_modes.empty()) return false;
m_options.erase(std::remove_if(m_options.begin(), m_options.end(), [type](Option opt) { return opt.type == type; }), m_options.end());
m_all_modes.erase(std::remove_if(m_all_modes.begin(), m_all_modes.end(), [type](Option opt) { return opt.type == type; }), m_all_modes.end());
append_options(config, type, mode);
sort_options();
return true;
}
const Option &SettingsIndex::get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const
{
std::string opt_key2 = opt_key;
if (auto n = opt_key.find('#'); n != std::string::npos) {
variant_index = std::atoi(opt_key.c_str() + n + 1);
opt_key2 = opt_key.substr(0, n);
}
auto it = std::lower_bound(m_options.begin(), m_options.end(), Option({boost::nowide::widen(get_key(opt_key2, type))}));
// BBS: return the 0th option when not found in searcher caused by mode difference
// assert(it != options.end());
if (it == m_options.end()) { variant_index = -2 ; return m_options[0]; }
if (it->opt_key() == opt_key2) {
variant_index = -1;
} else {
const std::string opt_key3 = opt_key2 + "#";
it = std::lower_bound(it, m_options.end(), Option({boost::nowide::widen(get_key(opt_key3, type))}));
if (it == m_options.end() || it->opt_key().compare(0, opt_key3.length(), opt_key3) != 0) {
variant_index = -2; // Not found
return m_options[0];
}
auto it2 = it;
++it2;
if (it2 != m_options.end() && it2->opt_key().compare(0, opt_key3.length(), opt_key3) == 0
&& printer_options_with_variant_1.find(opt_key2) == printer_options_with_variant_1.end())
variant_index = -2;
}
return m_options[it - m_options.begin()];
}
static Option create_option(const std::string &opt_key, const wxString &label, Preset::Type type, const GroupAndCategory &gc)
{
return make_option(get_key(opt_key, type), type, label, gc, comSimple, std::string(), true);
}
Option SettingsIndex::get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const
{
std::string key = get_key(opt_key, type);
auto it = std::lower_bound(m_options.begin(), m_options.end(), Option({boost::nowide::widen(key)}));
// BBS: return the 0th option when not found in searcher caused by mode difference
if (it == m_options.end()) return m_options[0];
if (it->key == boost::nowide::widen(key)) return m_options[it - m_options.begin()];
if (m_groups_and_categories.find(key) == m_groups_and_categories.end()) {
size_t pos = key.find('#');
if (pos == std::string::npos) return m_options[it - m_options.begin()];
std::string zero_opt_key = key.substr(0, pos + 1) + "0";
if (m_groups_and_categories.find(zero_opt_key) == m_groups_and_categories.end()) return m_options[it - m_options.begin()];
return create_option(opt_key, label, type, m_groups_and_categories.at(zero_opt_key));
}
const GroupAndCategory &gc = m_groups_and_categories.at(key);
if (gc.group.IsEmpty() || gc.category.IsEmpty()) return m_options[it - m_options.begin()];
return create_option(opt_key, label, type, gc);
}
void SettingsIndex::add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon)
{
// Update fields in place so a page rebuild (get_option after set_path) doesn't drop the
// previously recorded wiki path.
GroupAndCategory &gc = m_groups_and_categories[get_key(opt_key, type)];
gc.group = group;
gc.category = category;
gc.icon = icon;
}
void SettingsIndex::set_path(const std::string &opt_key, Preset::Type type, const std::string &path)
{
if (path.empty())
return;
m_groups_and_categories[get_key(opt_key, type)].path = path;
}
} // namespace Search
} // namespace Slic3r
+98
View File
@@ -0,0 +1,98 @@
#ifndef slic3r_SettingsIndex_hpp_
#define slic3r_SettingsIndex_hpp_
#include <algorithm>
#include <cstddef>
#include <map>
#include <string>
#include <vector>
#include <wx/string.h>
#include <libslic3r/Config.hpp>
#include <libslic3r/Preset.hpp>
namespace Slic3r {
namespace Search {
struct InputInfo
{
DynamicPrintConfig *config{nullptr};
Preset::Type type{Preset::TYPE_INVALID};
ConfigOptionMode mode{comSimple};
};
struct GroupAndCategory
{
wxString group;
wxString category;
wxString icon; // icon of the group's own header, or empty
std::string path; // wiki path (Line::label_path) of the option's line, or empty
};
struct Option
{
// bool operator<(const Option& other) const { return other.label > this->label; }
bool operator<(const Option &other) const { return other.key > this->key; }
// Fuzzy matching works at a character level. Thus matching with wide characters is a safer bet than with short characters,
// though for some languages (Chinese?) it may not work correctly.
std::wstring key;
Preset::Type type{Preset::TYPE_INVALID};
std::wstring label;
std::wstring label_local;
std::wstring group;
std::wstring group_local;
std::string group_icon; // SVG base name of the group's own header icon, or empty
std::wstring category;
std::wstring category_local;
bool multi_category { false };
ConfigOptionMode mode{comSimple}; // option's visibility threshold; drives the Speed Dial's mode prompt
std::string tooltip; // localized ConfigOptionDef::tooltip, or empty
std::string wiki_path; // Line::label_path for the option's row, or empty
std::string opt_key() const;
};
// Catalog of settings and their metadata. Owns the group/category registry populated by the
// settings pages, plus two views of the options: the mode-filtered view the sidebar search
// queries, and every option regardless of mode for the Speed Dial.
class SettingsIndex
{
std::map<std::string, GroupAndCategory> m_groups_and_categories;
std::vector<Option> m_options; // mode-filtered view used by the sidebar search
std::vector<Option> m_all_modes; // every option regardless of mode, for the Speed Dial
void append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode);
void sort_options();
public:
void init(std::vector<InputInfo> input_values);
// Rebuild the given type's options; returns false when the index was never initialised.
bool apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode);
void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category,
const wxString &icon = wxEmptyString);
void set_path(const std::string &opt_key, Preset::Type type, const std::string &path);
const std::vector<Option> &options() const { return m_options; }
const std::vector<Option> &all_options() const { return m_all_modes; }
const Option & option_at(size_t pos) const { return m_options[pos]; }
const Option &get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const;
Option get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const;
const GroupAndCategory &get_group_and_category(const std::string &opt_key) { return m_groups_and_categories[opt_key]; }
void sort_options_by_key()
{
std::sort(m_options.begin(), m_options.end(), [](const Option &o1, const Option &o2) { return o1.key < o2.key; });
}
void sort_options_by_label() { sort_options(); }
};
} // namespace Search
} // namespace Slic3r
#endif // slic3r_SettingsIndex_hpp_
+7 -7
View File
@@ -5049,7 +5049,7 @@ void TabPrinter::build_fff()
} }
// Register by hand so the UnsavedChanges dialog can render a row for it. // Register by hand so the UnsavedChanges dialog can render a row for it.
wxGetApp().sidebar().get_searcher().add_key("printer_agent", m_type, optgroup->title, wxGetApp().sidebar().settings_index().add_key("printer_agent", m_type, optgroup->title,
optgroup->config_category(), optgroup->icon); optgroup->config_category(), optgroup->icon);
} }
} }
@@ -5761,11 +5761,11 @@ if (is_marlin_flavor)
} else if (m_extruders_count_old == 1) { } else if (m_extruders_count_old == 1) {
first_extruder_title = wxString::Format("Extruder %d", 1); first_extruder_title = wxString::Format("Extruder %d", 1);
} }
auto & searcher = wxGetApp().sidebar().get_searcher(); auto & index = wxGetApp().sidebar().settings_index();
for (auto &group : m_pages[n_before_extruders]->m_optgroups) { for (auto &group : m_pages[n_before_extruders]->m_optgroups) {
group->set_config_category_and_type(first_extruder_title, m_type); group->set_config_category_and_type(first_extruder_title, m_type);
for (auto &opt : group->opt_map()) for (auto &opt : group->opt_map())
searcher.add_key(opt.first + "#0", m_type, group->title, first_extruder_title, group->icon); index.add_key(opt.first + "#0", m_type, group->title, first_extruder_title, group->icon);
} }
Thaw(); Thaw();
@@ -7867,10 +7867,10 @@ wxSizer* TabPrinter::create_bed_shape_widget(wxWindow* parent)
})); }));
{ {
Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); Search::SettingsIndex& index = wxGetApp().sidebar().settings_index();
const Search::GroupAndCategory& gc = searcher.get_group_and_category("printable_area"); const Search::GroupAndCategory& gc = index.get_group_and_category("printable_area");
searcher.add_key("bed_custom_texture", m_type, gc.group, gc.category, gc.icon); index.add_key("bed_custom_texture", m_type, gc.group, gc.category, gc.icon);
searcher.add_key("bed_custom_model", m_type, gc.group, gc.category, gc.icon); index.add_key("bed_custom_model", m_type, gc.group, gc.category, gc.icon);
} }
return sizer; return sizer;
+16 -16
View File
@@ -1485,12 +1485,12 @@ std::string UnsavedChangesDialog::subreplace(std::string resource_str, std::stri
void UnsavedChangesDialog::update_tree(Preset::Type type, DynamicConfig * config, int from, int to) void UnsavedChangesDialog::update_tree(Preset::Type type, DynamicConfig * config, int from, int to)
{ {
Search::OptionsSearcher &searcher = wxGetApp().sidebar().get_searcher(); Search::SettingsIndex &index = wxGetApp().sidebar().settings_index();
searcher.sort_options_by_key(); index.sort_options_by_key();
for (const std::string &opt_key : config->keys()) { for (const std::string &opt_key : config->keys()) {
int variant_index = -2; int variant_index = -2;
const Search::Option &option = searcher.get_option(opt_key, type, variant_index); const Search::Option &option = index.get_option(opt_key, type, variant_index);
auto category = option.category_local; auto category = option.category_local;
auto opt = dynamic_cast<ConfigOptionVectorBase*>(config->option(opt_key)); auto opt = dynamic_cast<ConfigOptionVectorBase*>(config->option(opt_key));
std::string value_from = opt->vserialize()[from]; std::string value_from = opt->vserialize()[from];
@@ -1502,8 +1502,8 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, DynamicConfig * config
void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* presets_) void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* presets_)
{ {
Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); Search::SettingsIndex& index = wxGetApp().sidebar().settings_index();
searcher.sort_options_by_key(); index.sort_options_by_key();
// list of the presets with unsaved changes // list of the presets with unsaved changes
std::vector<PresetCollection*> presets_list; std::vector<PresetCollection*> presets_list;
@@ -1558,11 +1558,11 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* pres
for (const std::string& opt_key : dirty_options) { for (const std::string& opt_key : dirty_options) {
int variant_index = -2; int variant_index = -2;
const Search::Option &option = searcher.get_option(opt_key, type, variant_index); const Search::Option &option = index.get_option(opt_key, type, variant_index);
if (option.opt_key() != opt_key && variant_index < -1) { if (option.opt_key() != opt_key && variant_index < -1) {
// When founded option isn't the correct one. // When founded option isn't the correct one.
// It can be for dirty_options: "default_print_profile", "printer_model", "printer_settings_id", // It can be for dirty_options: "default_print_profile", "printer_model", "printer_settings_id",
// because of they don't exist in searcher // because of they don't exist in the index
continue; continue;
} }
auto category = option.category_local; auto category = option.category_local;
@@ -1590,8 +1590,8 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* pres
} }
} }
// Revert sort of searcher back // Revert sort of index back
searcher.sort_options_by_label(); index.sort_options_by_label();
} }
void UnsavedChangesDialog::on_dpi_changed(const wxRect& suggested_rect) void UnsavedChangesDialog::on_dpi_changed(const wxRect& suggested_rect)
@@ -2043,8 +2043,8 @@ void DiffPresetDialog::update_bottom_info(wxString bottom_info)
void DiffPresetDialog::update_tree() void DiffPresetDialog::update_tree()
{ {
Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); Search::SettingsIndex& index = wxGetApp().sidebar().settings_index();
searcher.sort_options_by_key(); index.sort_options_by_key();
m_tree->Clear(); m_tree->Clear();
wxString bottom_info = ""; wxString bottom_info = "";
@@ -2124,14 +2124,14 @@ void DiffPresetDialog::update_tree()
wxString right_val = get_string_value(opt_key, right_congig); wxString right_val = get_string_value(opt_key, right_congig);
const std::string lookup_key = get_pure_opt_key(opt_key); const std::string lookup_key = get_pure_opt_key(opt_key);
Search::Option option = searcher.get_option(lookup_key, get_full_label(lookup_key, left_config), type); Search::Option option = index.get_option(lookup_key, get_full_label(lookup_key, left_config), type);
if (get_pure_opt_key(option.opt_key()) != lookup_key) if (get_pure_opt_key(option.opt_key()) != lookup_key)
option = searcher.get_option(opt_key, get_full_label(opt_key, left_config), type); option = index.get_option(opt_key, get_full_label(opt_key, left_config), type);
if (get_pure_opt_key(option.opt_key()) != lookup_key) { if (get_pure_opt_key(option.opt_key()) != lookup_key) {
// When the found option is not the requested one. // When the found option is not the requested one.
// This can happen for dirty_options such as: // This can happen for dirty_options such as:
// "default_print_profile", "printer_model", "printer_settings_id", // "default_print_profile", "printer_model", "printer_settings_id",
// because they do not exist in the searcher. // because they do not exist in the index.
continue; continue;
} }
m_tree->Append(opt_key, type, option.category_local, option.group_local, option.label_local, m_tree->Append(opt_key, type, option.category_local, option.group_local, option.label_local,
@@ -2155,8 +2155,8 @@ void DiffPresetDialog::update_tree()
Refresh(); Refresh();
} }
// Revert sort of searcher back // Revert sort of index back
searcher.sort_options_by_label(); index.sort_options_by_label();
} }
void DiffPresetDialog::on_dpi_changed(const wxRect&) void DiffPresetDialog::on_dpi_changed(const wxRect&)