1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-22 07:10:06 +02:00

Bug 1467 - New pref for pinned head should move to the Prefs>Tracks

Also updated the wording as per comment #2 in Bug 1467.
This commit is contained in:
James Crook 2016-08-10 18:38:37 +01:00
parent 8089bd484a
commit 8dd93ef2a8
8 changed files with 43 additions and 42 deletions

View File

@ -1882,7 +1882,7 @@ void AudacityProject::ModifyToolbarMenus()
mCommandManager.Check(wxT("AutomatedInputLevelAdjustmentOnOff"), active);
#endif
active = PlaybackPrefs::GetPinnedHeadPreference();
active = TracksPrefs::GetPinnedHeadPreference();
mCommandManager.Check(wxT("PinnedHead"), active);
gPrefs->Read(wxT("/AudioIO/Duplex"),&active, true);
@ -2411,8 +2411,8 @@ void AudacityProject::OnToggleSoundActivated()
void AudacityProject::OnTogglePinnedHead()
{
bool value = !PlaybackPrefs::GetPinnedHeadPreference();
PlaybackPrefs::SetPinnedHeadPreference(value, true);
bool value = !TracksPrefs::GetPinnedHeadPreference();
TracksPrefs::SetPinnedHeadPreference(value, true);
ModifyAllProjectToolbarMenus();
// Change what happens in case transport is in progress right now

View File

@ -27,18 +27,6 @@
#include "../ShuttleGui.h"
#include "../Prefs.h"
namespace {
const wxChar *PinnedHeadPreferenceKey()
{
return wxT("/AudioIO/PinnedHead");
}
bool PinnedHeadPreferenceDefault()
{
return false;
}
}
PlaybackPrefs::PlaybackPrefs(wxWindow * parent)
: PrefsPanel(parent, _("Playback"))
{
@ -125,11 +113,6 @@ void PlaybackPrefs::PopulateOrExchange(ShuttleGui & S)
S.EndThreeColumn();
}
S.EndStatic();
// This affects recording too, though it is in playback preferences.
S.TieCheckBox(_("Pinned playback/recording head"),
PinnedHeadPreferenceKey(),
PinnedHeadPreferenceDefault());
}
bool PlaybackPrefs::Apply()
@ -140,18 +123,6 @@ bool PlaybackPrefs::Apply()
return true;
}
bool PlaybackPrefs::GetPinnedHeadPreference()
{
return gPrefs->ReadBool(PinnedHeadPreferenceKey(), PinnedHeadPreferenceDefault());
}
void PlaybackPrefs::SetPinnedHeadPreference(bool value, bool flush)
{
gPrefs->Write(PinnedHeadPreferenceKey(), value);
if(flush)
gPrefs->Flush();
}
PrefsPanel *PlaybackPrefsFactory::Create(wxWindow *parent)
{
wxASSERT(parent); // to justify safenew

View File

@ -27,9 +27,6 @@ class PlaybackPrefs final : public PrefsPanel
virtual ~PlaybackPrefs();
bool Apply() override;
static bool GetPinnedHeadPreference();
static void SetPinnedHeadPreference(bool value, bool flush = false);
private:
void Populate();
void PopulateOrExchange(ShuttleGui & S);

View File

@ -30,6 +30,20 @@
#include "../Experimental.h"
namespace {
const wxChar *PinnedHeadPreferenceKey()
{
return wxT("/AudioIO/PinnedHead");
}
bool PinnedHeadPreferenceDefault()
{
return false;
}
}
TracksPrefs::TracksPrefs(wxWindow * parent)
: PrefsPanel(parent, _("Tracks"))
{
@ -89,9 +103,13 @@ void TracksPrefs::PopulateOrExchange(ShuttleGui & S)
S.StartStatic(_("Display"));
{
S.TieCheckBox(_("&Update display while playing"),
S.TieCheckBox(_("&Update display while when Recording/Playback head unpinned"),
wxT("/GUI/AutoScroll"),
true);
S.TieCheckBox(_("Pinned Recording/Playback head"),
PinnedHeadPreferenceKey(),
PinnedHeadPreferenceDefault());
S.TieCheckBox(_("Automatically &fit tracks vertically zoomed"),
wxT("/GUI/TracksFitVerticallyZoomed"),
false);
@ -160,6 +178,19 @@ void TracksPrefs::PopulateOrExchange(ShuttleGui & S)
S.EndStatic();
}
bool TracksPrefs::GetPinnedHeadPreference()
{
return gPrefs->ReadBool(PinnedHeadPreferenceKey(), PinnedHeadPreferenceDefault());
}
void TracksPrefs::SetPinnedHeadPreference(bool value, bool flush)
{
gPrefs->Write(PinnedHeadPreferenceKey(), value);
if(flush)
gPrefs->Flush();
}
bool TracksPrefs::Apply()
{
ShuttleGui S(this, eIsSavingToPrefs);

View File

@ -29,6 +29,8 @@ class TracksPrefs final : public PrefsPanel
~TracksPrefs();
bool Apply() override;
static bool GetPinnedHeadPreference();
static void SetPinnedHeadPreference(bool value, bool flush = false);
static const wxChar *ScrollingPreferenceKey();
static inline bool ScrollingPreferenceDefault() { return false; }

View File

@ -68,7 +68,7 @@
#include "../widgets/Meter.h"
#include "../tracks/ui/Scrubbing.h"
#include "../prefs/PlaybackPrefs.h"
#include "../prefs/TracksPrefs.h"
#include "../toolbars/ToolManager.h"
IMPLEMENT_CLASS(ControlToolBar, ToolBar);
@ -1260,7 +1260,7 @@ void ControlToolBar::UpdateStatusBar(AudacityProject *pProject)
void ControlToolBar::StartScrollingIfPreferred()
{
if (PlaybackPrefs::GetPinnedHeadPreference())
if (TracksPrefs::GetPinnedHeadPreference())
StartScrolling();
#ifdef __WXMAC__
else if (::GetActiveProject()->GetScrubber().HasStartedScrubbing()) {

View File

@ -19,7 +19,7 @@ Paul Licameli split from TrackPanel.cpp
#include "../../TrackPanelCell.h"
#include "../../TrackPanelCellIterator.h"
#include "../../commands/CommandFunctors.h"
#include "../../prefs/PlaybackPrefs.h"
#include "../../prefs/TracksPrefs.h"
#include "../../toolbars/ControlToolBar.h"
#include "../../toolbars/ScrubbingToolBar.h"
#include "../../toolbars/ToolManager.h"
@ -852,7 +852,7 @@ Scrubber &ScrubbingOverlay::GetScrubber()
void Scrubber::DoScrub(bool seek)
{
const bool wasScrubbing = HasStartedScrubbing() || IsScrubbing();
const bool scroll = PlaybackPrefs::GetPinnedHeadPreference();
const bool scroll = TracksPrefs::GetPinnedHeadPreference();
if (!wasScrubbing) {
auto tp = mProject->GetTrackPanel();
wxCoord xx = tp->ScreenToClient(::wxGetMouseState().GetPosition()).x;

View File

@ -2429,7 +2429,7 @@ void AdornedRulerPanel::OnMouseEvents(wxMouseEvent &evt)
else if (!HasCapture() && inScrubZone) {
if (evt.LeftDown()) {
scrubber.MarkScrubStart(evt.m_x,
PlaybackPrefs::GetPinnedHeadPreference(), false);
TracksPrefs::GetPinnedHeadPreference(), false);
UpdateStatusBarAndTooltips(StatusChoice::EnteringScrubZone);
}
ShowQuickPlayIndicator();
@ -2785,7 +2785,7 @@ void AdornedRulerPanel::UpdateButtonStates()
};
{
bool state = PlaybackPrefs::GetPinnedHeadPreference();
bool state = TracksPrefs::GetPinnedHeadPreference();
auto pinButton = static_cast<AButton*>(FindWindow(OnTogglePinnedStateID));
pinButton->PopUp();
pinButton->SetAlternateIdx(state ? 0 : 1);