summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/editor/icons/SCsub5
-rw-r--r--tools/editor/icons/make_icons.py48
-rw-r--r--tools/editor/project_manager.cpp56
-rw-r--r--tools/editor/project_manager.h1
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);