summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Marques <george@gmarqu.es>2018-01-30 20:11:07 -0200
committerGeorge Marques <george@gmarqu.es>2018-01-30 20:25:20 -0200
commit87be0bc1101d7cf52ca40c5b3b7fc87b785edfb1 (patch)
tree166879c1e9a3c990d98340b667c641cfc62d2f05
parent20a52aa39db9a6e35738ee486848bd3dd28510cb (diff)
Add interface for plugins to enable/disable other plugins
-rw-r--r--doc/classes/EditorInterface.xml20
-rw-r--r--editor/editor_plugin.cpp11
-rw-r--r--editor/editor_plugin.h3
3 files changed, 34 insertions, 0 deletions
diff --git a/doc/classes/EditorInterface.xml b/doc/classes/EditorInterface.xml
index 4d3b31ae35..61c93becde 100644
--- a/doc/classes/EditorInterface.xml
+++ b/doc/classes/EditorInterface.xml
@@ -100,6 +100,15 @@
Shows the given property on the given [code]object[/code] in the Editor's Inspector dock.
</description>
</method>
+ <method name="is_plugin_enabled" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="plugin" type="String">
+ </argument>
+ <description>
+ Returns the enabled status of a plugin. The plugin name is the same as its directory name.
+ </description>
+ </method>
<method name="make_mesh_previews">
<return type="Array">
</return>
@@ -155,6 +164,17 @@
<description>
</description>
</method>
+ <method name="set_plugin_enabled">
+ <return type="void">
+ </return>
+ <argument index="0" name="plugin" type="String">
+ </argument>
+ <argument index="1" name="enabled" type="bool">
+ </argument>
+ <description>
+ Sets the enabled status of a plugin. The plugin name is the same as its directory name.
+ </description>
+ </method>
</methods>
<constants>
</constants>
diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp
index 9dd8a7232f..b1a0efaea6 100644
--- a/editor/editor_plugin.cpp
+++ b/editor/editor_plugin.cpp
@@ -235,6 +235,14 @@ Control *EditorInterface::get_base_control() {
return EditorNode::get_singleton()->get_gui_base();
}
+void EditorInterface::set_plugin_enabled(const String &p_plugin, bool p_enabled) {
+ EditorNode::get_singleton()->set_addon_plugin_enabled(p_plugin, p_enabled);
+}
+
+bool EditorInterface::is_plugin_enabled(const String &p_plugin) const {
+ return EditorNode::get_singleton()->is_addon_plugin_enabled(p_plugin);
+}
+
Error EditorInterface::save_scene() {
if (!get_edited_scene_root())
return ERR_CANT_CREATE;
@@ -271,6 +279,9 @@ void EditorInterface::_bind_methods() {
ClassDB::bind_method(D_METHOD("select_file", "p_file"), &EditorInterface::select_file);
ClassDB::bind_method(D_METHOD("get_selected_path"), &EditorInterface::get_selected_path);
+ ClassDB::bind_method(D_METHOD("set_plugin_enabled", "plugin", "enabled"), &EditorInterface::set_plugin_enabled);
+ ClassDB::bind_method(D_METHOD("is_plugin_enabled", "plugin"), &EditorInterface::is_plugin_enabled);
+
ClassDB::bind_method(D_METHOD("save_scene"), &EditorInterface::save_scene);
ClassDB::bind_method(D_METHOD("save_scene_as", "path", "with_preview"), &EditorInterface::save_scene_as, DEFVAL(true));
}
diff --git a/editor/editor_plugin.h b/editor/editor_plugin.h
index 145dccc2d5..3d585120c0 100644
--- a/editor/editor_plugin.h
+++ b/editor/editor_plugin.h
@@ -90,6 +90,9 @@ public:
Control *get_base_control();
+ void set_plugin_enabled(const String &p_plugin, bool p_enabled);
+ bool is_plugin_enabled(const String &p_plugin) const;
+
Error save_scene();
void save_scene_as(const String &p_scene, bool p_with_preview = true);