mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-01-05 10:29:39 +01:00
Now custom controls can be added to the top bar of the plugin settings page.
This commit is contained in:
parent
4faf01a1c1
commit
fb02d16983
@ -30,25 +30,32 @@
|
|||||||
|
|
||||||
#include "editor_plugin_settings.h"
|
#include "editor_plugin_settings.h"
|
||||||
|
|
||||||
#include "core/io/config_file.h"
|
|
||||||
#include "core/os/file_access.h"
|
|
||||||
#include "core/os/main_loop.h"
|
|
||||||
#include "editor_node.h"
|
|
||||||
#include "editor_scale.h"
|
|
||||||
#include "core/class_db.h"
|
#include "core/class_db.h"
|
||||||
#include "core/error_list.h"
|
#include "core/error_list.h"
|
||||||
#include "core/error_macros.h"
|
#include "core/error_macros.h"
|
||||||
|
#include "core/io/config_file.h"
|
||||||
#include "core/os/dir_access.h"
|
#include "core/os/dir_access.h"
|
||||||
|
#include "core/os/file_access.h"
|
||||||
|
#include "core/os/main_loop.h"
|
||||||
#include "core/os/memory.h"
|
#include "core/os/memory.h"
|
||||||
#include "core/reference.h"
|
#include "core/reference.h"
|
||||||
#include "core/variant.h"
|
#include "core/variant.h"
|
||||||
#include "editor/plugin_config_dialog.h"
|
#include "editor/plugin_config_dialog.h"
|
||||||
|
#include "editor_node.h"
|
||||||
|
#include "editor_scale.h"
|
||||||
#include "scene/gui/button.h"
|
#include "scene/gui/button.h"
|
||||||
#include "scene/gui/control.h"
|
#include "scene/gui/control.h"
|
||||||
#include "scene/gui/label.h"
|
#include "scene/gui/label.h"
|
||||||
#include "scene/gui/tree.h"
|
#include "scene/gui/tree.h"
|
||||||
#include "scene/main/node.h"
|
#include "scene/main/node.h"
|
||||||
|
|
||||||
|
void EditorPluginSettings::add_control_to_top_bar(Control *p_control) {
|
||||||
|
_custom_top_bar_control_container->add_child(p_control);
|
||||||
|
}
|
||||||
|
void EditorPluginSettings::remove_control_from_top_bar(Control *p_control) {
|
||||||
|
_custom_top_bar_control_container->remove_child(p_control);
|
||||||
|
}
|
||||||
|
|
||||||
void EditorPluginSettings::_notification(int p_what) {
|
void EditorPluginSettings::_notification(int p_what) {
|
||||||
if (p_what == MainLoop::NOTIFICATION_WM_FOCUS_IN) {
|
if (p_what == MainLoop::NOTIFICATION_WM_FOCUS_IN) {
|
||||||
update_plugins();
|
update_plugins();
|
||||||
@ -209,6 +216,8 @@ EditorPluginSettings::EditorPluginSettings() {
|
|||||||
HBoxContainer *title_hb = memnew(HBoxContainer);
|
HBoxContainer *title_hb = memnew(HBoxContainer);
|
||||||
title_hb->add_child(memnew(Label(TTR("Installed Plugins:"))));
|
title_hb->add_child(memnew(Label(TTR("Installed Plugins:"))));
|
||||||
title_hb->add_spacer();
|
title_hb->add_spacer();
|
||||||
|
_custom_top_bar_control_container = memnew(HBoxContainer);
|
||||||
|
title_hb->add_child(_custom_top_bar_control_container);
|
||||||
create_plugin = memnew(Button(TTR("Create")));
|
create_plugin = memnew(Button(TTR("Create")));
|
||||||
create_plugin->connect("pressed", this, "_create_clicked");
|
create_plugin->connect("pressed", this, "_create_clicked");
|
||||||
title_hb->add_child(create_plugin);
|
title_hb->add_child(create_plugin);
|
||||||
|
@ -36,14 +36,27 @@
|
|||||||
#include "core/ustring.h"
|
#include "core/ustring.h"
|
||||||
#include "core/vector.h"
|
#include "core/vector.h"
|
||||||
|
|
||||||
|
|
||||||
class Button;
|
class Button;
|
||||||
class PluginConfigDialog;
|
class PluginConfigDialog;
|
||||||
class Tree;
|
class Tree;
|
||||||
|
class HBoxContainer;
|
||||||
|
|
||||||
class EditorPluginSettings : public VBoxContainer {
|
class EditorPluginSettings : public VBoxContainer {
|
||||||
GDCLASS(EditorPluginSettings, VBoxContainer);
|
GDCLASS(EditorPluginSettings, VBoxContainer);
|
||||||
|
|
||||||
|
public:
|
||||||
|
void add_control_to_top_bar(Control *p_control);
|
||||||
|
void remove_control_from_top_bar(Control *p_control);
|
||||||
|
|
||||||
|
void update_plugins();
|
||||||
|
|
||||||
|
EditorPluginSettings();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void _notification(int p_what);
|
||||||
|
|
||||||
|
static void _bind_methods();
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
BUTTON_PLUGIN_EDIT
|
BUTTON_PLUGIN_EDIT
|
||||||
};
|
};
|
||||||
@ -54,21 +67,13 @@ class EditorPluginSettings : public VBoxContainer {
|
|||||||
Tree *plugin_list;
|
Tree *plugin_list;
|
||||||
bool updating;
|
bool updating;
|
||||||
|
|
||||||
|
HBoxContainer *_custom_top_bar_control_container;
|
||||||
|
|
||||||
void _plugin_activity_changed();
|
void _plugin_activity_changed();
|
||||||
void _create_clicked();
|
void _create_clicked();
|
||||||
void _cell_button_pressed(Object *p_item, int p_column, int p_id);
|
void _cell_button_pressed(Object *p_item, int p_column, int p_id);
|
||||||
|
|
||||||
static Vector<String> _get_plugins(const String &p_dir);
|
static Vector<String> _get_plugins(const String &p_dir);
|
||||||
|
|
||||||
protected:
|
|
||||||
void _notification(int p_what);
|
|
||||||
|
|
||||||
static void _bind_methods();
|
|
||||||
|
|
||||||
public:
|
|
||||||
void update_plugins();
|
|
||||||
|
|
||||||
EditorPluginSettings();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // EDITORPLUGINSETTINGS_H
|
#endif // EDITORPLUGINSETTINGS_H
|
||||||
|
@ -219,6 +219,7 @@ public:
|
|||||||
void update_plugins();
|
void update_plugins();
|
||||||
|
|
||||||
EditorAutoloadSettings *get_autoload_settings() { return autoload_settings; }
|
EditorAutoloadSettings *get_autoload_settings() { return autoload_settings; }
|
||||||
|
EditorPluginSettings *get_plugin_settings() { return plugin_settings; }
|
||||||
|
|
||||||
TabContainer *get_tabs();
|
TabContainer *get_tabs();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user