summaryrefslogtreecommitdiffstats
path: root/editor/project_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'editor/project_manager.h')
-rw-r--r--editor/project_manager.h79
1 files changed, 58 insertions, 21 deletions
diff --git a/editor/project_manager.h b/editor/project_manager.h
index 7ed8df8a9d..1c829e971d 100644
--- a/editor/project_manager.h
+++ b/editor/project_manager.h
@@ -41,11 +41,15 @@ class EditorFileDialog;
class HFlowContainer;
class LineEdit;
class LinkButton;
+class MarginContainer;
class OptionButton;
class PanelContainer;
class ProjectDialog;
class ProjectList;
+class QuickSettingsDialog;
+class RichTextLabel;
class TabContainer;
+class VBoxContainer;
class ProjectManager : public Control {
GDCLASS(ProjectManager, Control);
@@ -63,42 +67,79 @@ class ProjectManager : public Control {
// Main layout.
+ Ref<Theme> theme;
+
void _update_size_limits();
+ void _update_theme(bool p_skip_creation = false);
+ MarginContainer *root_container = nullptr;
Panel *background_panel = nullptr;
- Button *about_btn = nullptr;
- LinkButton *version_btn = nullptr;
+ VBoxContainer *main_vbox = nullptr;
- ConfirmationDialog *open_templates = nullptr;
- EditorAbout *about = nullptr;
+ HBoxContainer *title_bar = nullptr;
+ Button *title_bar_logo = nullptr;
+ HBoxContainer *main_view_toggles = nullptr;
+ Button *quick_settings_button = nullptr;
- void _show_about();
- void _version_button_pressed();
+ enum MainViewTab {
+ MAIN_VIEW_PROJECTS,
+ MAIN_VIEW_ASSETLIB,
+ MAIN_VIEW_MAX
+ };
+
+ MainViewTab current_main_view = MAIN_VIEW_PROJECTS;
+ HashMap<MainViewTab, Control *> main_view_map;
+ HashMap<MainViewTab, Button *> main_view_toggle_map;
+
+ PanelContainer *main_view_container = nullptr;
+ Ref<ButtonGroup> main_view_toggles_group;
+
+ Button *_add_main_view(MainViewTab p_id, const String &p_name, const Ref<Texture2D> &p_icon, Control *p_view_control);
+ void _set_main_view_icon(MainViewTab p_id, const Ref<Texture2D> &p_icon);
+ void _select_main_view(int p_id);
- TabContainer *tabs = nullptr;
VBoxContainer *local_projects_vb = nullptr;
EditorAssetLibrary *asset_library = nullptr;
- void _on_tab_changed(int p_tab);
- void _open_asset_library();
+ EditorAbout *about_dialog = nullptr;
- // Quick settings.
+ void _show_about();
+ void _open_asset_library_confirmed();
- OptionButton *language_btn = nullptr;
- ConfirmationDialog *restart_required_dialog = nullptr;
+ AcceptDialog *error_dialog = nullptr;
- void _language_selected(int p_id);
- void _restart_confirm();
+ void _show_error(const String &p_message, const Size2 &p_min_size = Size2());
void _dim_window();
+ // Quick settings.
+
+ QuickSettingsDialog *quick_settings_dialog = nullptr;
+
+ void _show_quick_settings();
+ void _restart_confirmed();
+
+ // Footer.
+
+ LinkButton *version_btn = nullptr;
+
+ void _version_button_pressed();
+
// Project list.
- ProjectList *_project_list = nullptr;
+ VBoxContainer *empty_list_placeholder = nullptr;
+ Button *empty_list_create_project = nullptr;
+ Button *empty_list_import_project = nullptr;
+ Button *empty_list_open_assetlib = nullptr;
+ Label *empty_list_online_warning = nullptr;
+
+ void _update_list_placeholder();
+
+ ProjectList *project_list = nullptr;
LineEdit *search_box = nullptr;
Label *loading_label = nullptr;
OptionButton *filter_option = nullptr;
- PanelContainer *search_panel = nullptr;
+ PanelContainer *project_list_panel = nullptr;
Button *create_btn = nullptr;
Button *import_btn = nullptr;
@@ -121,11 +162,7 @@ class ProjectManager : public Control {
ConfirmationDialog *multi_open_ask = nullptr;
ConfirmationDialog *multi_run_ask = nullptr;
- HBoxContainer *settings_hb = nullptr;
-
- AcceptDialog *run_error_diag = nullptr;
- AcceptDialog *dialog_error = nullptr;
- ProjectDialog *npdialog = nullptr;
+ ProjectDialog *project_dialog = nullptr;
void _scan_projects();
void _run_project();