diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2016-07-31 20:14:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-31 20:14:44 +0200 |
commit | 3ca08d2a0fc48ac5e073fe586ae47d1fbcda47e2 (patch) | |
tree | a09eabf09faa5fc1daea458c942322814a5512b9 | |
parent | 37ce4387875e66c1d212c626ba9b4f13e98e6e1c (diff) | |
parent | a1c0fdac9a4ec1e8c2097b457a52e568f983c7d0 (diff) |
Merge pull request #5980 from profelis/PR-run-btn-availability
Run button availability check
-rw-r--r-- | tools/editor/project_manager.cpp | 21 | ||||
-rw-r--r-- | tools/editor/project_manager.h | 3 |
2 files changed, 10 insertions, 14 deletions
diff --git a/tools/editor/project_manager.cpp b/tools/editor/project_manager.cpp index 28d9738fee..f885fbba07 100644 --- a/tools/editor/project_manager.cpp +++ b/tools/editor/project_manager.cpp @@ -518,23 +518,23 @@ void ProjectManager::_panel_draw(Node *p_hb) { void ProjectManager::_update_project_buttons() { - String single_selected = ""; - if (selected_list.size() == 1) { - single_selected = selected_list.front()->key(); - } - - single_selected_main = ""; for(int i=0;i<scroll_childs->get_child_count();i++) { + CanvasItem *item = scroll_childs->get_child(i)->cast_to<CanvasItem>(); item->update(); - - if (single_selected!="" && single_selected == item->get_meta("name")) - single_selected_main = item->get_meta("main_scene"); + } + + bool has_runnable_scene = false; + for (Map<String,String>::Element *E=selected_list.front(); E; E=E->next()) { + const String &selected_main = E->get(); + if (selected_main == "") continue; + has_runnable_scene = true; + break; } erase_btn->set_disabled(selected_list.size()<1); open_btn->set_disabled(selected_list.size()<1); - run_btn->set_disabled(selected_list.size()<1 || (selected_list.size()==1 && single_selected_main=="")); + run_btn->set_disabled(!has_runnable_scene); } void ProjectManager::_panel_input(const InputEvent& p_ev,Node *p_hb) { @@ -1072,7 +1072,6 @@ void ProjectManager::_erase_project_confirm() { EditorSettings::get_singleton()->save(); selected_list.clear(); last_clicked = ""; - single_selected_main=""; _load_recent_projects(); } diff --git a/tools/editor/project_manager.h b/tools/editor/project_manager.h index 50bd7d94c8..da57033905 100644 --- a/tools/editor/project_manager.h +++ b/tools/editor/project_manager.h @@ -60,7 +60,6 @@ class ProjectManager : public Control { VBoxContainer *scroll_childs; Map<String, String> selected_list; // name -> main_scene String last_clicked; - String single_selected_main; bool importing; HBoxContainer *projects_hb; @@ -69,8 +68,6 @@ class ProjectManager : public Control { Control *gui_base; - void _item_doubleclicked(); - void _scan_projects(); |