1
0
Fork 0

Add Quick Open to POT generator

This commit is contained in:
kobewi 2025-02-23 12:38:39 +01:00
parent 0e3dbba6a5
commit 61a8cbed5f
2 changed files with 23 additions and 5 deletions

View File

@ -32,10 +32,12 @@
#include "core/config/project_settings.h" #include "core/config/project_settings.h"
#include "core/string/translation_server.h" #include "core/string/translation_server.h"
#include "editor/editor_node.h"
#include "editor/editor_translation_parser.h" #include "editor/editor_translation_parser.h"
#include "editor/editor_undo_redo_manager.h" #include "editor/editor_undo_redo_manager.h"
#include "editor/filesystem_dock.h" #include "editor/filesystem_dock.h"
#include "editor/gui/editor_file_dialog.h" #include "editor/gui/editor_file_dialog.h"
#include "editor/gui/editor_quick_open_dialog.h"
#include "editor/pot_generator.h" #include "editor/pot_generator.h"
#include "scene/gui/control.h" #include "scene/gui/control.h"
#include "scene/gui/tab_container.h" #include "scene/gui/tab_container.h"
@ -359,6 +361,12 @@ void LocalizationEditor::_pot_add(const PackedStringArray &p_paths) {
undo_redo->commit_action(); undo_redo->commit_action();
} }
void LocalizationEditor::_pot_add_one(const String &p_path) {
if (!p_path.is_empty()) {
_pot_add({ p_path });
}
}
void LocalizationEditor::_pot_delete(Object *p_item, int p_column, int p_button, MouseButton p_mouse_button) { void LocalizationEditor::_pot_delete(Object *p_item, int p_column, int p_button, MouseButton p_mouse_button) {
if (p_mouse_button != MouseButton::LEFT) { if (p_mouse_button != MouseButton::LEFT) {
return; return;
@ -390,6 +398,10 @@ void LocalizationEditor::_pot_file_open() {
pot_file_open_dialog->popup_file_dialog(); pot_file_open_dialog->popup_file_dialog();
} }
void LocalizationEditor::_pot_file_quick_open() {
EditorNode::get_singleton()->get_quick_open_dialog()->popup_dialog({ SNAME("PackedScene") }, callable_mp(this, &LocalizationEditor::_pot_add_one));
}
void LocalizationEditor::_pot_generate_open() { void LocalizationEditor::_pot_generate_open() {
pot_generate_dialog->popup_file_dialog(); pot_generate_dialog->popup_file_dialog();
} }
@ -738,17 +750,21 @@ LocalizationEditor::LocalizationEditor() {
translations->add_child(tvb); translations->add_child(tvb);
HBoxContainer *thb = memnew(HBoxContainer); HBoxContainer *thb = memnew(HBoxContainer);
Label *l = memnew(Label(TTR("Files with translation strings:"))); Label *l = memnew(Label(TTRC("Files with translation strings:")));
l->set_theme_type_variation("HeaderSmall"); l->set_theme_type_variation("HeaderSmall");
thb->add_child(l); thb->add_child(l);
thb->add_spacer(); thb->add_spacer();
tvb->add_child(thb); tvb->add_child(thb);
Button *addtr = memnew(Button(TTR("Add..."))); Button *addtr = memnew(Button(TTRC("Add...")));
addtr->connect(SceneStringName(pressed), callable_mp(this, &LocalizationEditor::_pot_file_open)); addtr->connect(SceneStringName(pressed), callable_mp(this, &LocalizationEditor::_pot_file_open));
thb->add_child(addtr); thb->add_child(addtr);
pot_generate_button = memnew(Button(TTR("Generate POT"))); addtr = memnew(Button(TTRC("Quick Add...")));
addtr->connect(SceneStringName(pressed), callable_mp(this, &LocalizationEditor::_pot_file_quick_open));
thb->add_child(addtr);
pot_generate_button = memnew(Button(TTRC("Generate POT")));
pot_generate_button->connect(SceneStringName(pressed), callable_mp(this, &LocalizationEditor::_pot_generate_open)); pot_generate_button->connect(SceneStringName(pressed), callable_mp(this, &LocalizationEditor::_pot_generate_open));
thb->add_child(pot_generate_button); thb->add_child(pot_generate_button);
@ -756,8 +772,8 @@ LocalizationEditor::LocalizationEditor() {
translation_pot_list->set_v_size_flags(Control::SIZE_EXPAND_FILL); translation_pot_list->set_v_size_flags(Control::SIZE_EXPAND_FILL);
tvb->add_child(translation_pot_list); tvb->add_child(translation_pot_list);
translation_pot_add_builtin = memnew(CheckBox(TTR("Add Built-in Strings to POT"))); translation_pot_add_builtin = memnew(CheckBox(TTRC("Add Built-in Strings to POT")));
translation_pot_add_builtin->set_tooltip_text(TTR("Add strings from built-in components such as certain Control nodes.")); translation_pot_add_builtin->set_tooltip_text(TTRC("Add strings from built-in components such as certain Control nodes."));
translation_pot_add_builtin->connect(SceneStringName(pressed), callable_mp(this, &LocalizationEditor::_pot_add_builtin_toggled)); translation_pot_add_builtin->connect(SceneStringName(pressed), callable_mp(this, &LocalizationEditor::_pot_add_builtin_toggled));
tvb->add_child(translation_pot_add_builtin); tvb->add_child(translation_pot_add_builtin);

View File

@ -77,8 +77,10 @@ class LocalizationEditor : public VBoxContainer {
void _translation_res_option_selected(const String &p_locale); void _translation_res_option_selected(const String &p_locale);
void _pot_add(const PackedStringArray &p_paths); void _pot_add(const PackedStringArray &p_paths);
void _pot_add_one(const String &p_path);
void _pot_delete(Object *p_item, int p_column, int p_button, MouseButton p_mouse_button); void _pot_delete(Object *p_item, int p_column, int p_button, MouseButton p_mouse_button);
void _pot_file_open(); void _pot_file_open();
void _pot_file_quick_open();
void _pot_generate_open(); void _pot_generate_open();
void _pot_add_builtin_toggled(); void _pot_add_builtin_toggled();
void _pot_generate(const String &p_file); void _pot_generate(const String &p_file);