From 28f078dcf706a62e07278f4fc063ce39e0001795 Mon Sep 17 00:00:00 2001 From: James Crook Date: Sat, 20 Aug 2016 14:59:36 +0100 Subject: [PATCH] Bug 1486 - Show/Hide scrub-bar does not persist. --- src/widgets/Ruler.cpp | 13 ++++++++++--- src/widgets/Ruler.h | 2 ++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/widgets/Ruler.cpp b/src/widgets/Ruler.cpp index 0db548346..6d827921b 100644 --- a/src/widgets/Ruler.cpp +++ b/src/widgets/Ruler.cpp @@ -2008,7 +2008,7 @@ AdornedRulerPanel::~AdornedRulerPanel() this); } -#if 0 +#if 1 namespace { static const wxChar *scrubEnabledPrefName = wxT("/QuickPlay/ScrubbingEnabled"); @@ -2042,9 +2042,10 @@ void AdornedRulerPanel::UpdatePrefs() #endif #endif - // mShowScrubbing = ReadScrubEnabledPref(); + mShowScrubbing = ReadScrubEnabledPref(); // Affected by the last UpdateRects(); + SetPanelSize(); RegenerateTooltips(mPrevZone); } @@ -2213,6 +2214,7 @@ void AdornedRulerPanel::OnPaint(wxPaintEvent & WXUNUSED(evt)) // Do this first time setting of button status texts // when we are sure the CommandManager is initialized. ReCreateButtons(); + // Sends a resize event, which will cause a second paint. UpdatePrefs(); } @@ -2796,8 +2798,13 @@ void AdornedRulerPanel::UpdateStatusBarAndTooltips(StatusChoice choice) void AdornedRulerPanel::OnToggleScrubBar(/*wxCommandEvent&*/) { mShowScrubbing = !mShowScrubbing; - //WriteScrubEnabledPref(mShowScrubbing); + WriteScrubEnabledPref(mShowScrubbing); gPrefs->Flush(); + SetPanelSize(); +} + +void AdornedRulerPanel::SetPanelSize() +{ wxSize size { GetSize().GetWidth(), GetRulerHeight(mShowScrubbing) }; SetSize(size); SetMinSize(size); diff --git a/src/widgets/Ruler.h b/src/widgets/Ruler.h index ad8082d72..db642219f 100644 --- a/src/widgets/Ruler.h +++ b/src/widgets/Ruler.h @@ -331,6 +331,8 @@ public: bool ShowingScrubBar() const { return mShowScrubbing; } void OnToggleScrubBar(/*wxCommandEvent&*/); + void SetPanelSize(); + private: void OnCapture(wxCommandEvent & evt);