diff --git a/aegisub/src/frame_main.cpp b/aegisub/src/frame_main.cpp index a9de83074..279f04e0d 100644 --- a/aegisub/src/frame_main.cpp +++ b/aegisub/src/frame_main.cpp @@ -241,11 +241,24 @@ FrameMain::~FrameMain () { SubsGrid->Destroy(); } -/// @brief Initialize toolbar -void FrameMain::InitToolbar () { +void FrameMain::InitToolbar() { wxSystemOptions::SetOption("msw.remap", 0); - toolbar::AttachToolbar(this, "main", context.get(), "Default"); - GetToolBar()->Realize(); + OPT_SUB("App/Show Toolbar", &FrameMain::EnableToolBar, this); + EnableToolBar(*OPT_GET("App/Show Toolbar")); +} + +void FrameMain::EnableToolBar(agi::OptionValue const& opt) { + if (opt.GetBool()) { + if (!GetToolBar()) { + toolbar::AttachToolbar(this, "main", context.get(), "Default"); + GetToolBar()->Realize(); + } + } + else if (wxToolBar *old_tb = GetToolBar()) { + SetToolBar(0); + delete old_tb; + Layout(); + } } void FrameMain::InitContents() { diff --git a/aegisub/src/frame_main.h b/aegisub/src/frame_main.h index 45c20afd0..13c5d1314 100644 --- a/aegisub/src/frame_main.h +++ b/aegisub/src/frame_main.h @@ -113,6 +113,8 @@ class FrameMain: public wxFrame { void OnSubtitlesOpen(); + void EnableToolBar(agi::OptionValue const& opt); + SubtitlesGrid *SubsGrid; ///< The subtitle editing area AudioBox *audioBox; ///< The audio area VideoBox *videoBox; ///< The video area diff --git a/aegisub/src/libresrc/default_config.json b/aegisub/src/libresrc/default_config.json index 9af6fbaae..31aaa5a0c 100644 --- a/aegisub/src/libresrc/default_config.json +++ b/aegisub/src/libresrc/default_config.json @@ -13,6 +13,7 @@ "Locale" : -1, "Maximized" : false, "Save Charset" : "UTF-8", + "Show Toolbar" : true, "Toolbar Icon Size" : 16 }, diff --git a/aegisub/src/preferences.cpp b/aegisub/src/preferences.cpp index 14455ac13..6527cff90 100644 --- a/aegisub/src/preferences.cpp +++ b/aegisub/src/preferences.cpp @@ -105,12 +105,12 @@ General::General(wxTreebook *book, Preferences *parent): OptionPage(book, parent wxFlexGridSizer *general = PageSizer(_("General")); OptionAdd(general, _("Check for updates on startup"), "App/Auto/Check For Updates"); - CellSkip(general); + OptionAdd(general, _("Show main toolbar"), "App/Show Toolbar"); + OptionAdd(general, _("Toolbar Icon Size"), "App/Toolbar Icon Size"); wxString autoload_modes[] = { _("Never"), _("Always"), _("Ask") }; wxArrayString autoload_modes_arr(3, autoload_modes); OptionChoice(general, _("Automatically load linked files"), autoload_modes_arr, "App/Auto/Load Linked Files"); - OptionAdd(general, _("Toolbar Icon Size"), "App/Toolbar Icon Size"); OptionAdd(general, _("Undo Levels"), "Limits/Undo Levels", 2); wxFlexGridSizer *recent = PageSizer(_("Recently Used Lists"));