diff options
-rw-r--r-- | tools/editor/icons/SCsub | 5 | ||||
-rw-r--r-- | tools/editor/icons/make_icons.py | 48 | ||||
-rw-r--r-- | tools/editor/project_manager.cpp | 56 | ||||
-rw-r--r-- | tools/editor/project_manager.h | 1 |
4 files changed, 36 insertions, 74 deletions
diff --git a/tools/editor/icons/SCsub b/tools/editor/icons/SCsub index f2f5dcca48..bc104294cb 100644 --- a/tools/editor/icons/SCsub +++ b/tools/editor/icons/SCsub @@ -37,12 +37,9 @@ def make_editor_icons_action(target, source, env): pngf.close(); var_str=os.path.basename(x)[:-4]+"_hidpi_png"; -#print("TRY OPEN: "+os.path.dirname(x)+"/2x/"+os.path.basename(x)+"\n") try: - pngf = open(os.path.dirname(x)+"/2x/"+os.path.basename(x)) - - #print(var_str) + pngf = open(os.path.dirname(x)+"/2x/"+os.path.basename(x), "rb") s.write("static const unsigned char "+ var_str +"[]={\n"); diff --git a/tools/editor/icons/make_icons.py b/tools/editor/icons/make_icons.py deleted file mode 100644 index e06cbac720..0000000000 --- a/tools/editor/icons/make_icons.py +++ /dev/null @@ -1,48 +0,0 @@ - -import glob - -pixmaps = glob.glob("*.png") - -f = open("../editor_icons.cpp","wb") - - -f.write("#include \"editor_icons.h\"\n\n") -f.write("#include \"scene/resources/theme.h\"\n\n") - -for x in pixmaps: - - var_str=x[:-4]+"_png"; - - f.write("static const unsigned char "+ var_str +"[]={\n"); - - pngf=open(x,"rb"); - - b=pngf.read(1); - while(len(b)==1): - f.write(hex(ord(b))) - b=pngf.read(1); - if (len(b)==1): - f.write(",") - - f.write("\n};\n\n\n"); - pngf.close(); - -f.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png) {\n") -f.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n") -f.write("\ttexture->create_from_image( Image(p_png),ImageTexture::FLAG_FILTER );\n") -f.write("\treturn texture;\n") -f.write("}\n\n") - -f.write("void editor_register_icons(Ref<Theme> p_theme) {\n\n") - - -for x in pixmaps: - - type=x[5:-4].title().replace("_",""); - var_str=x[:-4]+"_png"; - f.write("\tp_theme->set_icon(\""+type+"\",\"EditorIcons\",make_icon("+var_str+"));\n"); - -f.write("\n\n}\n\n"); -f.close() - - diff --git a/tools/editor/project_manager.cpp b/tools/editor/project_manager.cpp index dd634e51ee..9ca69935da 100644 --- a/tools/editor/project_manager.cpp +++ b/tools/editor/project_manager.cpp @@ -510,6 +510,27 @@ 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"); + } + + 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=="")); +} + void ProjectManager::_panel_input(const InputEvent& p_ev,Node *p_hb) { if (p_ev.type==InputEvent::MOUSE_BUTTON && p_ev.mouse_button.pressed && p_ev.mouse_button.button_index==BUTTON_LEFT) { @@ -557,23 +578,7 @@ void ProjectManager::_panel_input(const InputEvent& p_ev,Node *p_hb) { } } - 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"); - } - - 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=="")); + _update_project_buttons(); if (p_ev.mouse_button.doubleclick) _open_project(); //open if doubleclicked @@ -739,6 +744,8 @@ void ProjectManager::_load_recent_projects() { memdelete( scroll_childs->get_child(0)); } + Map<String, String> selected_list_copy = selected_list; + List<PropertyInfo> properties; EditorSettings::get_singleton()->get_property_list(&properties); @@ -845,6 +852,8 @@ void ProjectManager::_load_recent_projects() { main_scene = cf->get_value("application","main_scene"); } + selected_list_copy.erase(project); + HBoxContainer *hb = memnew( HBoxContainer ); hb->set_meta("name",project); hb->set_meta("main_scene",main_scene); @@ -882,12 +891,15 @@ void ProjectManager::_load_recent_projects() { scroll_childs->add_child(hb); } - + + for (Map<String,String>::Element *E = selected_list_copy.front();E;E = E->next()) { + String key = E->key(); + selected_list.erase(key); + } + scroll->set_v_scroll(0); - - 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=="")); + + _update_project_buttons(); EditorSettings::get_singleton()->save(); diff --git a/tools/editor/project_manager.h b/tools/editor/project_manager.h index 74d1d3693c..fac1fc7745 100644 --- a/tools/editor/project_manager.h +++ b/tools/editor/project_manager.h @@ -82,6 +82,7 @@ class ProjectManager : public Control { void _new_project(); void _erase_project(); void _erase_project_confirm(); + void _update_project_buttons(); void _exit_dialog(); void _scan_begin(const String& p_base); |