Dissolving class EditorLineEditFileChooser into EditorAutoloadSettings.
This commit is contained in:
parent
321ce4d4c4
commit
600f7cb97c
@ -48,8 +48,6 @@ void EditorAutoloadSettings::_notification(int p_what) {
|
|||||||
ResourceLoader::get_recognized_extensions_for_type("Script", &afn);
|
ResourceLoader::get_recognized_extensions_for_type("Script", &afn);
|
||||||
ResourceLoader::get_recognized_extensions_for_type("PackedScene", &afn);
|
ResourceLoader::get_recognized_extensions_for_type("PackedScene", &afn);
|
||||||
|
|
||||||
EditorFileDialog *file_dialog = autoload_add_path->get_file_dialog();
|
|
||||||
|
|
||||||
for (List<String>::Element *E = afn.front(); E; E = E->next()) {
|
for (List<String>::Element *E = afn.front(); E; E = E->next()) {
|
||||||
|
|
||||||
file_dialog->add_filter("*." + E->get());
|
file_dialog->add_filter("*." + E->get());
|
||||||
@ -61,6 +59,9 @@ void EditorAutoloadSettings::_notification(int p_what) {
|
|||||||
get_tree()->get_root()->call_deferred("add_child", info.node);
|
get_tree()->get_root()->call_deferred("add_child", info.node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
browse_button->set_icon(get_theme_icon("Folder", "EditorIcons"));
|
||||||
|
} else if (p_what == NOTIFICATION_THEME_CHANGED) {
|
||||||
|
browse_button->set_icon(get_theme_icon("Folder", "EditorIcons"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,8 +117,8 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String &p_name, Strin
|
|||||||
|
|
||||||
void EditorAutoloadSettings::_autoload_add() {
|
void EditorAutoloadSettings::_autoload_add() {
|
||||||
|
|
||||||
if (autoload_add(autoload_add_name->get_text(), autoload_add_path->get_line_edit()->get_text()))
|
if (autoload_add(autoload_add_name->get_text(), autoload_add_path->get_text()))
|
||||||
autoload_add_path->get_line_edit()->set_text("");
|
autoload_add_path->set_text("");
|
||||||
|
|
||||||
autoload_add_name->set_text("");
|
autoload_add_name->set_text("");
|
||||||
add_autoload->set_disabled(true);
|
add_autoload->set_disabled(true);
|
||||||
@ -326,7 +327,7 @@ void EditorAutoloadSettings::_autoload_file_callback(const String &p_path) {
|
|||||||
|
|
||||||
void EditorAutoloadSettings::_autoload_text_entered(const String p_name) {
|
void EditorAutoloadSettings::_autoload_text_entered(const String p_name) {
|
||||||
|
|
||||||
if (autoload_add_path->get_line_edit()->get_text() != "" && _autoload_name_is_valid(p_name, nullptr)) {
|
if (autoload_add_path->get_text() != "" && _autoload_name_is_valid(p_name, nullptr)) {
|
||||||
_autoload_add();
|
_autoload_add();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -340,7 +341,7 @@ void EditorAutoloadSettings::_autoload_path_text_changed(const String p_path) {
|
|||||||
void EditorAutoloadSettings::_autoload_text_changed(const String p_name) {
|
void EditorAutoloadSettings::_autoload_text_changed(const String p_name) {
|
||||||
|
|
||||||
add_autoload->set_disabled(
|
add_autoload->set_disabled(
|
||||||
autoload_add_path->get_line_edit()->get_text() == "" || !_autoload_name_is_valid(p_name, nullptr));
|
autoload_add_path->get_text() == "" || !_autoload_name_is_valid(p_name, nullptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
Node *EditorAutoloadSettings::_create_autoload(const String &p_path) {
|
Node *EditorAutoloadSettings::_create_autoload(const String &p_path) {
|
||||||
@ -823,13 +824,24 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
|
|||||||
l->set_text(TTR("Path:"));
|
l->set_text(TTR("Path:"));
|
||||||
hbc->add_child(l);
|
hbc->add_child(l);
|
||||||
|
|
||||||
autoload_add_path = memnew(EditorLineEditFileChooser);
|
autoload_add_path = memnew(LineEdit);
|
||||||
autoload_add_path->set_h_size_flags(SIZE_EXPAND_FILL);
|
|
||||||
autoload_add_path->get_file_dialog()->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE);
|
|
||||||
autoload_add_path->get_file_dialog()->connect("file_selected", callable_mp(this, &EditorAutoloadSettings::_autoload_file_callback));
|
|
||||||
autoload_add_path->get_line_edit()->connect("text_changed", callable_mp(this, &EditorAutoloadSettings::_autoload_path_text_changed));
|
|
||||||
|
|
||||||
hbc->add_child(autoload_add_path);
|
hbc->add_child(autoload_add_path);
|
||||||
|
autoload_add_path->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
||||||
|
autoload_add_path->connect("text_changed", callable_mp(this, &EditorAutoloadSettings::_autoload_path_text_changed));
|
||||||
|
|
||||||
|
browse_button = memnew(Button);
|
||||||
|
hbc->add_child(browse_button);
|
||||||
|
browse_button->connect("pressed", callable_mp(this, &EditorAutoloadSettings::_browse_autoload_add_path));
|
||||||
|
|
||||||
|
file_dialog = memnew(EditorFileDialog);
|
||||||
|
hbc->add_child(file_dialog);
|
||||||
|
file_dialog->connect("file_selected", callable_mp(this, &EditorAutoloadSettings::_set_autoload_add_path));
|
||||||
|
file_dialog->connect("dir_selected", callable_mp(this, &EditorAutoloadSettings::_set_autoload_add_path));
|
||||||
|
file_dialog->connect("files_selected", callable_mp(this, &EditorAutoloadSettings::_set_autoload_add_path));
|
||||||
|
|
||||||
|
hbc->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||||
|
file_dialog->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE);
|
||||||
|
file_dialog->connect("file_selected", callable_mp(this, &EditorAutoloadSettings::_autoload_file_callback));
|
||||||
|
|
||||||
l = memnew(Label);
|
l = memnew(Label);
|
||||||
l->set_text(TTR("Node Name:"));
|
l->set_text(TTR("Node Name:"));
|
||||||
@ -890,3 +902,14 @@ EditorAutoloadSettings::~EditorAutoloadSettings() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EditorAutoloadSettings::_set_autoload_add_path(const String &p_text) {
|
||||||
|
|
||||||
|
autoload_add_path->set_text(p_text);
|
||||||
|
autoload_add_path->emit_signal("text_entered", p_text);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditorAutoloadSettings::_browse_autoload_add_path() {
|
||||||
|
|
||||||
|
file_dialog->popup_centered_ratio();
|
||||||
|
}
|
@ -74,9 +74,11 @@ class EditorAutoloadSettings : public VBoxContainer {
|
|||||||
String selected_autoload;
|
String selected_autoload;
|
||||||
|
|
||||||
Tree *tree;
|
Tree *tree;
|
||||||
EditorLineEditFileChooser *autoload_add_path;
|
|
||||||
LineEdit *autoload_add_name;
|
LineEdit *autoload_add_name;
|
||||||
Button *add_autoload;
|
Button *add_autoload;
|
||||||
|
LineEdit *autoload_add_path;
|
||||||
|
Button *browse_button;
|
||||||
|
EditorFileDialog *file_dialog;
|
||||||
|
|
||||||
bool _autoload_name_is_valid(const String &p_name, String *r_error = nullptr);
|
bool _autoload_name_is_valid(const String &p_name, String *r_error = nullptr);
|
||||||
|
|
||||||
@ -96,6 +98,9 @@ class EditorAutoloadSettings : public VBoxContainer {
|
|||||||
bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_control) const;
|
bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_control) const;
|
||||||
void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_control);
|
void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_control);
|
||||||
|
|
||||||
|
void _set_autoload_add_path(const String &p_text);
|
||||||
|
void _browse_autoload_add_path();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void _notification(int p_what);
|
void _notification(int p_what);
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
@ -1733,42 +1733,3 @@ EditorFileDialog::~EditorFileDialog() {
|
|||||||
unregister_func(this);
|
unregister_func(this);
|
||||||
memdelete(dir_access);
|
memdelete(dir_access);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorLineEditFileChooser::_notification(int p_what) {
|
|
||||||
|
|
||||||
if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED)
|
|
||||||
button->set_icon(get_theme_icon("Folder", "EditorIcons"));
|
|
||||||
}
|
|
||||||
|
|
||||||
void EditorLineEditFileChooser::_bind_methods() {
|
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("get_button"), &EditorLineEditFileChooser::get_button);
|
|
||||||
ClassDB::bind_method(D_METHOD("get_line_edit"), &EditorLineEditFileChooser::get_line_edit);
|
|
||||||
ClassDB::bind_method(D_METHOD("get_file_dialog"), &EditorLineEditFileChooser::get_file_dialog);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EditorLineEditFileChooser::_chosen(const String &p_text) {
|
|
||||||
|
|
||||||
line_edit->set_text(p_text);
|
|
||||||
line_edit->emit_signal("text_entered", p_text);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EditorLineEditFileChooser::_browse() {
|
|
||||||
|
|
||||||
dialog->popup_centered_ratio();
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorLineEditFileChooser::EditorLineEditFileChooser() {
|
|
||||||
|
|
||||||
line_edit = memnew(LineEdit);
|
|
||||||
add_child(line_edit);
|
|
||||||
line_edit->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
|
||||||
button = memnew(Button);
|
|
||||||
add_child(button);
|
|
||||||
button->connect("pressed", callable_mp(this, &EditorLineEditFileChooser::_browse));
|
|
||||||
dialog = memnew(EditorFileDialog);
|
|
||||||
add_child(dialog);
|
|
||||||
dialog->connect("file_selected", callable_mp(this, &EditorLineEditFileChooser::_chosen));
|
|
||||||
dialog->connect("dir_selected", callable_mp(this, &EditorLineEditFileChooser::_chosen));
|
|
||||||
dialog->connect("files_selected", callable_mp(this, &EditorLineEditFileChooser::_chosen));
|
|
||||||
}
|
|
||||||
|
@ -245,28 +245,6 @@ public:
|
|||||||
~EditorFileDialog();
|
~EditorFileDialog();
|
||||||
};
|
};
|
||||||
|
|
||||||
class EditorLineEditFileChooser : public HBoxContainer {
|
|
||||||
|
|
||||||
GDCLASS(EditorLineEditFileChooser, HBoxContainer);
|
|
||||||
Button *button;
|
|
||||||
LineEdit *line_edit;
|
|
||||||
EditorFileDialog *dialog;
|
|
||||||
|
|
||||||
void _chosen(const String &p_text);
|
|
||||||
void _browse();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void _notification(int p_what);
|
|
||||||
static void _bind_methods();
|
|
||||||
|
|
||||||
public:
|
|
||||||
Button *get_button() { return button; }
|
|
||||||
LineEdit *get_line_edit() { return line_edit; }
|
|
||||||
EditorFileDialog *get_file_dialog() { return dialog; }
|
|
||||||
|
|
||||||
EditorLineEditFileChooser();
|
|
||||||
};
|
|
||||||
|
|
||||||
VARIANT_ENUM_CAST(EditorFileDialog::FileMode);
|
VARIANT_ENUM_CAST(EditorFileDialog::FileMode);
|
||||||
VARIANT_ENUM_CAST(EditorFileDialog::Access);
|
VARIANT_ENUM_CAST(EditorFileDialog::Access);
|
||||||
VARIANT_ENUM_CAST(EditorFileDialog::DisplayMode);
|
VARIANT_ENUM_CAST(EditorFileDialog::DisplayMode);
|
||||||
|
Loading…
Reference in New Issue
Block a user