|
@@ -41,6 +41,7 @@
|
|
|
#include "editor/gui/editor_bottom_panel.h"
|
|
|
#include "editor/gui/editor_quick_open_dialog.h"
|
|
|
#include "editor/gui/editor_toaster.h"
|
|
|
+#include "editor/project_settings_editor.h"
|
|
|
#include "editor/themes/editor_scale.h"
|
|
|
#include "scene/gui/box_container.h"
|
|
|
#include "scene/gui/button.h"
|
|
@@ -95,20 +96,18 @@ void EditorRunBar::_notification(int p_what) {
|
|
|
|
|
|
if (is_movie_maker_enabled()) {
|
|
|
main_panel->add_theme_style_override(SceneStringName(panel), get_theme_stylebox(SNAME("LaunchPadMovieMode"), EditorStringName(EditorStyles)));
|
|
|
+ write_movie_button->set_theme_type_variation("RunBarButtonMovieMakerEnabled");
|
|
|
+
|
|
|
write_movie_panel->add_theme_style_override(SceneStringName(panel), get_theme_stylebox(SNAME("MovieWriterButtonPressed"), EditorStringName(EditorStyles)));
|
|
|
} else {
|
|
|
main_panel->add_theme_style_override(SceneStringName(panel), get_theme_stylebox(SNAME("LaunchPadNormal"), EditorStringName(EditorStyles)));
|
|
|
+ write_movie_button->set_theme_type_variation("RunBarButtonMovieMakerDisabled");
|
|
|
+
|
|
|
write_movie_panel->add_theme_style_override(SceneStringName(panel), get_theme_stylebox(SNAME("MovieWriterButtonNormal"), EditorStringName(EditorStyles)));
|
|
|
}
|
|
|
|
|
|
write_movie_button->set_button_icon(get_editor_theme_icon(SNAME("MainMovieWrite")));
|
|
|
- // This button behaves differently, so color it as such.
|
|
|
- write_movie_button->begin_bulk_theme_override();
|
|
|
- write_movie_button->add_theme_color_override("icon_normal_color", get_theme_color(SNAME("movie_writer_icon_normal"), EditorStringName(EditorStyles)));
|
|
|
- write_movie_button->add_theme_color_override("icon_pressed_color", get_theme_color(SNAME("movie_writer_icon_pressed"), EditorStringName(EditorStyles)));
|
|
|
- write_movie_button->add_theme_color_override("icon_hover_color", get_theme_color(SNAME("movie_writer_icon_hover"), EditorStringName(EditorStyles)));
|
|
|
- write_movie_button->add_theme_color_override("icon_hover_pressed_color", get_theme_color(SNAME("movie_writer_icon_hover_pressed"), EditorStringName(EditorStyles)));
|
|
|
- write_movie_button->end_bulk_theme_override();
|
|
|
+
|
|
|
} break;
|
|
|
}
|
|
|
}
|
|
@@ -157,6 +156,23 @@ void EditorRunBar::_update_play_buttons() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void EditorRunBar::_movie_maker_item_pressed(int p_id) {
|
|
|
+ switch (p_id) {
|
|
|
+ case MOVIE_MAKER_TOGGLE: {
|
|
|
+ bool new_enabled = !is_movie_maker_enabled();
|
|
|
+ set_movie_maker_enabled(new_enabled);
|
|
|
+ write_movie_button->get_popup()->set_item_checked(0, new_enabled);
|
|
|
+ write_movie_button->set_pressed(new_enabled);
|
|
|
+ _write_movie_toggled(new_enabled);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case MOVIE_MAKER_OPEN_SETTINGS:
|
|
|
+ ProjectSettingsEditor::get_singleton()->popup_project_settings(true);
|
|
|
+ ProjectSettingsEditor::get_singleton()->set_general_page("editor/movie_writer");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void EditorRunBar::_write_movie_toggled(bool p_enabled) {
|
|
|
if (p_enabled) {
|
|
|
add_theme_style_override(SceneStringName(panel), get_theme_stylebox(SNAME("LaunchPadMovieMode"), EditorStringName(EditorStyles)));
|
|
@@ -454,11 +470,12 @@ OS::ProcessID EditorRunBar::get_current_process() const {
|
|
|
}
|
|
|
|
|
|
void EditorRunBar::set_movie_maker_enabled(bool p_enabled) {
|
|
|
- write_movie_button->set_pressed(p_enabled);
|
|
|
+ movie_maker_enabled = p_enabled;
|
|
|
+ write_movie_button->get_popup()->set_item_checked(0, p_enabled);
|
|
|
}
|
|
|
|
|
|
bool EditorRunBar::is_movie_maker_enabled() const {
|
|
|
- return write_movie_button->is_pressed();
|
|
|
+ return movie_maker_enabled;
|
|
|
}
|
|
|
|
|
|
void EditorRunBar::update_profiler_autostart_indicator() {
|
|
@@ -655,13 +672,15 @@ EditorRunBar::EditorRunBar() {
|
|
|
write_movie_panel = memnew(PanelContainer);
|
|
|
main_hbox->add_child(write_movie_panel);
|
|
|
|
|
|
- write_movie_button = memnew(Button);
|
|
|
+ write_movie_button = memnew(MenuButton);
|
|
|
+ PopupMenu *write_movie_popup = write_movie_button->get_popup();
|
|
|
+ write_movie_popup->add_check_item(TTRC("Enable Movie Maker Mode"), MOVIE_MAKER_TOGGLE);
|
|
|
+ write_movie_popup->add_item(TTRC("Open Movie Maker Settings..."), MOVIE_MAKER_OPEN_SETTINGS);
|
|
|
+ write_movie_popup->connect(SceneStringName(id_pressed), callable_mp(this, &EditorRunBar::_movie_maker_item_pressed));
|
|
|
+
|
|
|
write_movie_panel->add_child(write_movie_button);
|
|
|
- write_movie_button->set_theme_type_variation("RunBarButton");
|
|
|
- write_movie_button->set_toggle_mode(true);
|
|
|
- write_movie_button->set_pressed(false);
|
|
|
+ write_movie_button->set_theme_type_variation("RunBarButtonMovieMakerDisabled");
|
|
|
write_movie_button->set_focus_mode(Control::FOCUS_NONE);
|
|
|
write_movie_button->set_tooltip_text(TTR("Enable Movie Maker mode.\nThe project will run at stable FPS and the visual and audio output will be recorded to a video file."));
|
|
|
write_movie_button->set_accessibility_name(TTRC("Enable Movie Maker Mode"));
|
|
|
- write_movie_button->connect(SceneStringName(toggled), callable_mp(this, &EditorRunBar::_write_movie_toggled));
|
|
|
}
|