Allow to disable History Dock via feature profile
This commit is contained in:
parent
f814e15c7f
commit
c89100e571
|
@ -116,7 +116,10 @@
|
|||
<constant name="FEATURE_IMPORT_DOCK" value="6" enum="Feature">
|
||||
The Import dock. If this feature is disabled, the Import dock won't be visible.
|
||||
</constant>
|
||||
<constant name="FEATURE_MAX" value="7" enum="Feature">
|
||||
<constant name="FEATURE_HISTORY_DOCK" value="7" enum="Feature">
|
||||
The History dock. If this feature is disabled, the History dock won't be visible.
|
||||
</constant>
|
||||
<constant name="FEATURE_MAX" value="8" enum="Feature">
|
||||
Represents the size of the [enum Feature] enum.
|
||||
</constant>
|
||||
</constants>
|
||||
|
|
|
@ -47,6 +47,7 @@ const char *EditorFeatureProfile::feature_names[FEATURE_MAX] = {
|
|||
TTRC("Node Dock"),
|
||||
TTRC("FileSystem Dock"),
|
||||
TTRC("Import Dock"),
|
||||
TTRC("History Dock"),
|
||||
};
|
||||
|
||||
const char *EditorFeatureProfile::feature_descriptions[FEATURE_MAX] = {
|
||||
|
@ -57,6 +58,7 @@ const char *EditorFeatureProfile::feature_descriptions[FEATURE_MAX] = {
|
|||
TTRC("Allows to work with signals and groups of the node selected in the Scene dock."),
|
||||
TTRC("Allows to browse the local file system via a dedicated dock."),
|
||||
TTRC("Allows to configure import settings for individual assets. Requires the FileSystem dock to function."),
|
||||
TTRC("Provides an overview of the editor's and each scene's undo history."),
|
||||
};
|
||||
|
||||
const char *EditorFeatureProfile::feature_identifiers[FEATURE_MAX] = {
|
||||
|
@ -67,6 +69,7 @@ const char *EditorFeatureProfile::feature_identifiers[FEATURE_MAX] = {
|
|||
"node_dock",
|
||||
"filesystem_dock",
|
||||
"import_dock",
|
||||
"history_dock",
|
||||
};
|
||||
|
||||
void EditorFeatureProfile::set_disable_class(const StringName &p_class, bool p_disabled) {
|
||||
|
@ -302,6 +305,7 @@ void EditorFeatureProfile::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(FEATURE_NODE_DOCK);
|
||||
BIND_ENUM_CONSTANT(FEATURE_FILESYSTEM_DOCK);
|
||||
BIND_ENUM_CONSTANT(FEATURE_IMPORT_DOCK);
|
||||
BIND_ENUM_CONSTANT(FEATURE_HISTORY_DOCK);
|
||||
BIND_ENUM_CONSTANT(FEATURE_MAX);
|
||||
}
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ public:
|
|||
FEATURE_NODE_DOCK,
|
||||
FEATURE_FILESYSTEM_DOCK,
|
||||
FEATURE_IMPORT_DOCK,
|
||||
FEATURE_HISTORY_DOCK,
|
||||
FEATURE_MAX
|
||||
};
|
||||
|
||||
|
|
|
@ -5976,12 +5976,14 @@ void EditorNode::_feature_profile_changed() {
|
|||
TabContainer *import_tabs = cast_to<TabContainer>(ImportDock::get_singleton()->get_parent());
|
||||
TabContainer *node_tabs = cast_to<TabContainer>(NodeDock::get_singleton()->get_parent());
|
||||
TabContainer *fs_tabs = cast_to<TabContainer>(FileSystemDock::get_singleton()->get_parent());
|
||||
TabContainer *history_tabs = cast_to<TabContainer>(history_dock->get_parent());
|
||||
if (profile.is_valid()) {
|
||||
node_tabs->set_tab_hidden(node_tabs->get_tab_idx_from_control(NodeDock::get_singleton()), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_NODE_DOCK));
|
||||
// The Import dock is useless without the FileSystem dock. Ensure the configuration is valid.
|
||||
bool fs_dock_disabled = profile->is_feature_disabled(EditorFeatureProfile::FEATURE_FILESYSTEM_DOCK);
|
||||
fs_tabs->set_tab_hidden(fs_tabs->get_tab_idx_from_control(FileSystemDock::get_singleton()), fs_dock_disabled);
|
||||
import_tabs->set_tab_hidden(import_tabs->get_tab_idx_from_control(ImportDock::get_singleton()), fs_dock_disabled || profile->is_feature_disabled(EditorFeatureProfile::FEATURE_IMPORT_DOCK));
|
||||
history_tabs->set_tab_hidden(history_tabs->get_tab_idx_from_control(history_dock), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_HISTORY_DOCK));
|
||||
|
||||
main_editor_buttons[EDITOR_3D]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D));
|
||||
main_editor_buttons[EDITOR_SCRIPT]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT));
|
||||
|
@ -5997,6 +5999,8 @@ void EditorNode::_feature_profile_changed() {
|
|||
import_tabs->set_tab_hidden(import_tabs->get_tab_idx_from_control(ImportDock::get_singleton()), false);
|
||||
node_tabs->set_tab_hidden(node_tabs->get_tab_idx_from_control(NodeDock::get_singleton()), false);
|
||||
fs_tabs->set_tab_hidden(fs_tabs->get_tab_idx_from_control(FileSystemDock::get_singleton()), false);
|
||||
history_tabs->set_tab_hidden(history_tabs->get_tab_idx_from_control(history_dock), false);
|
||||
history_dock->set_visible(true);
|
||||
ImportDock::get_singleton()->set_visible(true);
|
||||
NodeDock::get_singleton()->set_visible(true);
|
||||
FileSystemDock::get_singleton()->set_visible(true);
|
||||
|
@ -7108,7 +7112,7 @@ EditorNode::EditorNode() {
|
|||
filesystem_dock->connect("display_mode_changed", callable_mp(this, &EditorNode::_save_docks));
|
||||
get_project_settings()->connect_filesystem_dock_signals(filesystem_dock);
|
||||
|
||||
HistoryDock *hd = memnew(HistoryDock);
|
||||
history_dock = memnew(HistoryDock);
|
||||
|
||||
// Scene: Top left.
|
||||
dock_slot[DOCK_SLOT_LEFT_UR]->add_child(SceneTreeDock::get_singleton());
|
||||
|
@ -7131,8 +7135,8 @@ EditorNode::EditorNode() {
|
|||
dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(dock_slot[DOCK_SLOT_RIGHT_UL]->get_tab_idx_from_control(NodeDock::get_singleton()), TTR("Node"));
|
||||
|
||||
// History: Full height right, behind Node.
|
||||
dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(hd);
|
||||
dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(dock_slot[DOCK_SLOT_RIGHT_UL]->get_tab_idx_from_control(hd), TTR("History"));
|
||||
dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(history_dock);
|
||||
dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(dock_slot[DOCK_SLOT_RIGHT_UL]->get_tab_idx_from_control(history_dock), TTR("History"));
|
||||
|
||||
// Hide unused dock slots and vsplits.
|
||||
dock_slot[DOCK_SLOT_LEFT_UL]->hide();
|
||||
|
|
|
@ -77,6 +77,7 @@ class EditorUndoRedoManager;
|
|||
class ExportTemplateManager;
|
||||
class FileDialog;
|
||||
class FileSystemDock;
|
||||
class HistoryDock;
|
||||
class HSplitContainer;
|
||||
class ImportDock;
|
||||
class LinkButton;
|
||||
|
@ -274,6 +275,7 @@ private:
|
|||
EditorRunNative *run_native = nullptr;
|
||||
EditorSelection *editor_selection = nullptr;
|
||||
EditorSettingsDialog *editor_settings_dialog = nullptr;
|
||||
HistoryDock *history_dock = nullptr;
|
||||
|
||||
ProjectExportDialog *project_export = nullptr;
|
||||
ProjectSettingsEditor *project_settings_editor = nullptr;
|
||||
|
|
Loading…
Reference in New Issue