You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-14 13:41:12 +00:00
Project Manager: Fix and improve unhandled input
This commit is contained in:
@@ -519,11 +519,11 @@ void ProjectManager::_panel_draw(Node *p_hb) {
|
|||||||
void ProjectManager::_update_project_buttons()
|
void ProjectManager::_update_project_buttons()
|
||||||
{
|
{
|
||||||
for(int i=0;i<scroll_childs->get_child_count();i++) {
|
for(int i=0;i<scroll_childs->get_child_count();i++) {
|
||||||
|
|
||||||
CanvasItem *item = scroll_childs->get_child(i)->cast_to<CanvasItem>();
|
CanvasItem *item = scroll_childs->get_child(i)->cast_to<CanvasItem>();
|
||||||
item->update();
|
item->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool has_runnable_scene = false;
|
bool has_runnable_scene = false;
|
||||||
for (Map<String,String>::Element *E=selected_list.front(); E; E=E->next()) {
|
for (Map<String,String>::Element *E=selected_list.front(); E; E=E->next()) {
|
||||||
const String &selected_main = E->get();
|
const String &selected_main = E->get();
|
||||||
@@ -534,7 +534,7 @@ void ProjectManager::_update_project_buttons()
|
|||||||
|
|
||||||
erase_btn->set_disabled(selected_list.size()<1);
|
erase_btn->set_disabled(selected_list.size()<1);
|
||||||
open_btn->set_disabled(selected_list.size()<1);
|
open_btn->set_disabled(selected_list.size()<1);
|
||||||
run_btn->set_disabled(!has_runnable_scene);
|
run_btn->set_disabled(!has_runnable_scene);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectManager::_panel_input(const InputEvent& p_ev,Node *p_hb) {
|
void ProjectManager::_panel_input(const InputEvent& p_ev,Node *p_hb) {
|
||||||
@@ -605,6 +605,10 @@ void ProjectManager::_unhandled_input(const InputEvent& p_ev) {
|
|||||||
|
|
||||||
switch (k.scancode) {
|
switch (k.scancode) {
|
||||||
|
|
||||||
|
case KEY_RETURN: {
|
||||||
|
|
||||||
|
_open_project();
|
||||||
|
} break;
|
||||||
case KEY_HOME: {
|
case KEY_HOME: {
|
||||||
|
|
||||||
for (int i=0; i<scroll_childs->get_child_count(); i++) {
|
for (int i=0; i<scroll_childs->get_child_count(); i++) {
|
||||||
@@ -614,6 +618,7 @@ void ProjectManager::_unhandled_input(const InputEvent& p_ev) {
|
|||||||
selected_list.clear();
|
selected_list.clear();
|
||||||
selected_list.insert(hb->get_meta("name"), hb->get_meta("main_scene"));
|
selected_list.insert(hb->get_meta("name"), hb->get_meta("main_scene"));
|
||||||
scroll->set_v_scroll(0);
|
scroll->set_v_scroll(0);
|
||||||
|
_update_project_buttons();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -628,6 +633,7 @@ void ProjectManager::_unhandled_input(const InputEvent& p_ev) {
|
|||||||
selected_list.clear();
|
selected_list.clear();
|
||||||
selected_list.insert(hb->get_meta("name"), hb->get_meta("main_scene"));
|
selected_list.insert(hb->get_meta("name"), hb->get_meta("main_scene"));
|
||||||
scroll->set_v_scroll(scroll_childs->get_size().y);
|
scroll->set_v_scroll(scroll_childs->get_size().y);
|
||||||
|
_update_project_buttons();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -658,6 +664,8 @@ void ProjectManager::_unhandled_input(const InputEvent& p_ev) {
|
|||||||
if (offset_diff > 0)
|
if (offset_diff > 0)
|
||||||
scroll->set_v_scroll(scroll->get_v_scroll() - offset_diff);
|
scroll->set_v_scroll(scroll->get_v_scroll() - offset_diff);
|
||||||
|
|
||||||
|
_update_project_buttons();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
} else if (current==selected_list.back()->key()) {
|
} else if (current==selected_list.back()->key()) {
|
||||||
@@ -694,6 +702,8 @@ void ProjectManager::_unhandled_input(const InputEvent& p_ev) {
|
|||||||
if (offset_diff > 0)
|
if (offset_diff > 0)
|
||||||
scroll->set_v_scroll(scroll->get_v_scroll() + offset_diff);
|
scroll->set_v_scroll(scroll->get_v_scroll() + offset_diff);
|
||||||
|
|
||||||
|
_update_project_buttons();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
} else if (current==selected_list.back()->key()) {
|
} else if (current==selected_list.back()->key()) {
|
||||||
@@ -714,12 +724,6 @@ void ProjectManager::_unhandled_input(const InputEvent& p_ev) {
|
|||||||
|
|
||||||
if (scancode_handled) {
|
if (scancode_handled) {
|
||||||
accept_event();
|
accept_event();
|
||||||
|
|
||||||
for(int i=0;i<scroll_childs->get_child_count();i++) {
|
|
||||||
CanvasItem *item = scroll_childs->get_child(i)->cast_to<CanvasItem>();
|
|
||||||
if (item)
|
|
||||||
item->update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -897,14 +901,14 @@ void ProjectManager::_load_recent_projects() {
|
|||||||
|
|
||||||
scroll_childs->add_child(hb);
|
scroll_childs->add_child(hb);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Map<String,String>::Element *E = selected_list_copy.front();E;E = E->next()) {
|
for (Map<String,String>::Element *E = selected_list_copy.front();E;E = E->next()) {
|
||||||
String key = E->key();
|
String key = E->key();
|
||||||
selected_list.erase(key);
|
selected_list.erase(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
scroll->set_v_scroll(0);
|
scroll->set_v_scroll(0);
|
||||||
|
|
||||||
_update_project_buttons();
|
_update_project_buttons();
|
||||||
|
|
||||||
EditorSettings::get_singleton()->save();
|
EditorSettings::get_singleton()->save();
|
||||||
@@ -943,7 +947,7 @@ void ProjectManager::_open_project() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (selected_list.size()>1) {
|
if (selected_list.size()>1) {
|
||||||
multi_open_ask->set_text(TTR("Are you sure to open more than one projects?"));
|
multi_open_ask->set_text(TTR("Are you sure to open more than one project?"));
|
||||||
multi_open_ask->popup_centered_minsize();
|
multi_open_ask->popup_centered_minsize();
|
||||||
} else {
|
} else {
|
||||||
_open_project_confirm();
|
_open_project_confirm();
|
||||||
@@ -983,7 +987,7 @@ void ProjectManager::_run_project() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (selected_list.size()>1) {
|
if (selected_list.size()>1) {
|
||||||
multi_run_ask->set_text(TTR("Are you sure to run more than one projects?"));
|
multi_run_ask->set_text(TTR("Are you sure to run more than one project?"));
|
||||||
multi_run_ask->popup_centered_minsize();
|
multi_run_ask->popup_centered_minsize();
|
||||||
} else {
|
} else {
|
||||||
_run_project_confirm();
|
_run_project_confirm();
|
||||||
@@ -1367,9 +1371,9 @@ ProjectManager::ProjectManager() {
|
|||||||
multi_run_ask = memnew( ConfirmationDialog );
|
multi_run_ask = memnew( ConfirmationDialog );
|
||||||
multi_run_ask->get_ok()->set_text(TTR("Run"));
|
multi_run_ask->get_ok()->set_text(TTR("Run"));
|
||||||
multi_run_ask->get_ok()->connect("pressed", this, "_run_project_confirm");
|
multi_run_ask->get_ok()->connect("pressed", this, "_run_project_confirm");
|
||||||
|
|
||||||
gui_base->add_child(multi_run_ask);
|
gui_base->add_child(multi_run_ask);
|
||||||
|
|
||||||
multi_scan_ask = memnew( ConfirmationDialog );
|
multi_scan_ask = memnew( ConfirmationDialog );
|
||||||
multi_scan_ask->get_ok()->set_text(TTR("Scan"));
|
multi_scan_ask->get_ok()->set_text(TTR("Scan"));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user