Audacity 3.2.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
HistoryDialog Class Referencefinal

Works with UndoManager to allow user to see descriptions of and undo previous commands. Also allows you to selectively clear the undo memory so as to free up space. More...

#include <HistoryWindow.h>

Inheritance diagram for HistoryDialog:
[legend]
Collaboration diagram for HistoryDialog:
[legend]

Public Member Functions

 HistoryDialog (AudacityProject *parent, UndoManager *manager)
 
void UpdateDisplayForClipboard (struct ClipboardChangeMessage)
 
void UpdateDisplay (struct UndoRedoMessage)
 
void DoUpdateDisplay ()
 
bool Show (bool show=true) override
 
- Public Member Functions inherited from wxDialogWrapper
 wxDialogWrapper ()
 
 wxDialogWrapper (wxWindow *parent, wxWindowID id, const TranslatableString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const TranslatableString &name=XO("Dialog"))
 
bool Create (wxWindow *parent, wxWindowID id, const TranslatableString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const TranslatableString &name=XO("Dialog"))
 
void SetTitle (const TranslatableString &title)
 
void SetLabel (const TranslatableString &title)
 
void SetName (const TranslatableString &title)
 
void SetName ()
 
- Public Member Functions inherited from wxTabTraversalWrapper< wxDialog >
 wxTabTraversalWrapper (Args &&... args)
 
 wxTabTraversalWrapper (const wxTabTraversalWrapper &)=delete
 
 wxTabTraversalWrapper (wxTabTraversalWrapper &&)=delete
 
wxTabTraversalWrapperoperator= (const wxTabTraversalWrapper &)=delete
 
wxTabTraversalWrapperoperator= (wxTabTraversalWrapper &&)=delete
 
- Public Member Functions inherited from PrefsListener
 PrefsListener ()
 
virtual ~PrefsListener ()
 
virtual void UpdatePrefs ()=0
 

Private Member Functions

void Populate (ShuttleGui &S)
 
void OnAudioIO (AudioIOEvent)
 
void DoUpdate ()
 
void UpdateLevels ()
 
void OnShow (wxShowEvent &event)
 
void OnSize (wxSizeEvent &event)
 
void OnCloseWindow (wxCloseEvent &event)
 
void OnListKeyDown (wxKeyEvent &event)
 
void OnItemSelected (wxListEvent &event)
 
void OnDiscard (wxCommandEvent &event)
 
void OnDiscardClipboard (wxCommandEvent &event)
 
void OnCompact (wxCommandEvent &event)
 
void OnGetURL (wxCommandEvent &event)
 
void UpdatePrefs () override
 

Private Attributes

Observer::Subscription mAudioIOSubscription
 
Observer::Subscription mUndoSubscription
 
Observer::Subscription mClipboardSubscription
 
AudacityProjectmProject
 
UndoManagermManager
 
wxListCtrl * mList
 
wxTextCtrl * mTotal
 
wxTextCtrl * mClipboard
 
wxTextCtrl * mAvail
 
wxSpinCtrl * mLevels
 
wxButton * mDiscard
 
wxButton * mCompact
 
int mSelected
 
bool mAudioIOBusy
 

Additional Inherited Members

- Static Public Member Functions inherited from PrefsListener
static void Broadcast (int id=0)
 Call this static function to notify all PrefsListener objects. More...
 
- Protected Member Functions inherited from PrefsListener
virtual void UpdateSelectedPrefs (int id)
 

Detailed Description

Works with UndoManager to allow user to see descriptions of and undo previous commands. Also allows you to selectively clear the undo memory so as to free up space.

Definition at line 28 of file HistoryWindow.h.

Constructor & Destructor Documentation

◆ HistoryDialog()

HistoryDialog::HistoryDialog ( AudacityProject parent,
UndoManager manager 
)

Definition at line 133 of file HistoryWindow.cpp.

133 :
134 wxDialogWrapper(FindProjectFrame( parent ), wxID_ANY, HistoryTitle,
135 wxDefaultPosition, wxDefaultSize,
136 wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER )
137{
138 SetName();
139
141 mProject = parent;
142 mSelected = 0;
143 mAudioIOBusy = false;
144
145 //------------------------- Main section --------------------
146 // Construct the GUI.
147 ShuttleGui S(this, eIsCreating);
148 Populate(S);
149
151
154
155 if (parent)
158}
#define HistoryTitle
wxFrame * FindProjectFrame(AudacityProject *project)
Get a pointer to the window associated with a project, or null if the given pointer is null,...
static const AttachedProjectObjects::RegisteredFactory manager
@ eIsCreating
Definition: ShuttleGui.h:39
#define S(N)
Definition: ToChars.cpp:64
static AudioIO * Get()
Definition: AudioIO.cpp:147
static Clipboard & Get()
Definition: Clipboard.cpp:28
void UpdateDisplayForClipboard(struct ClipboardChangeMessage)
AudacityProject * mProject
Definition: HistoryWindow.h:66
Observer::Subscription mClipboardSubscription
Definition: HistoryWindow.h:64
void OnAudioIO(AudioIOEvent)
Observer::Subscription mUndoSubscription
Definition: HistoryWindow.h:63
void UpdateDisplay(struct UndoRedoMessage)
void Populate(ShuttleGui &S)
UndoManager * mManager
Definition: HistoryWindow.h:67
Observer::Subscription mAudioIOSubscription
Definition: HistoryWindow.h:62
Subscription Subscribe(Callback callback)
Connect a callback to the Publisher; later-connected are called earlier.
Definition: Observer.h:199
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Definition: ShuttleGui.h:628
static UndoManager & Get(AudacityProject &project)
Definition: UndoManager.cpp:67

References eIsCreating, AudioIO::Get(), Clipboard::Get(), UndoManager::Get(), manager, mAudioIOBusy, mAudioIOSubscription, mClipboardSubscription, mManager, mProject, mSelected, mUndoSubscription, OnAudioIO(), Populate(), S, wxDialogWrapper::SetName(), Observer::Publisher< Message, NotifyAll >::Subscribe(), UpdateDisplay(), and UpdateDisplayForClipboard().

Here is the call graph for this function:

Member Function Documentation

◆ DoUpdate()

void HistoryDialog::DoUpdate ( )
private

Definition at line 281 of file HistoryWindow.cpp.

282{
283 int i = 0;
284
285 SpaceUsageCalculator calculator;
286 calculator.Calculate( *mManager );
287
288 // point to size for oldest state
289 auto iter = calculator.space.rbegin();
290
291 mList->DeleteAllItems();
292
293 wxLongLong_t total = 0;
296 [&]( const UndoStackElem &elem ){
297 const auto space = *iter++;
298 total += space;
299 const auto size = Internat::FormatSize(space);
300 const auto &desc = elem.description;
301 mList->InsertItem(i, desc.Translation(), i == mSelected ? 1 : 0);
302 mList->SetItem(i, 1, size.Translation());
303 ++i;
304 },
305 false // oldest state first
306 );
307
308 mTotal->SetValue(Internat::FormatSize(total).Translation());
309
310 auto clipboardUsage = calculator.clipboardSpaceUsage;
311 mClipboard->SetValue(Internat::FormatSize(clipboardUsage).Translation());
312#if defined(ALLOW_DISCARD)
313 FindWindowById(ID_DISCARD_CLIPBOARD)->Enable(clipboardUsage > 0);
314#endif
315
316 mList->EnsureVisible(mSelected);
317
318 mList->SetItemState(mSelected,
319 wxLIST_STATE_FOCUSED | wxLIST_STATE_SELECTED,
320 wxLIST_STATE_FOCUSED | wxLIST_STATE_SELECTED);
321
322 UpdateLevels();
323}
const TranslatableString desc
Definition: ExportPCM.cpp:55
@ ID_DISCARD_CLIPBOARD
wxTextCtrl * mTotal
Definition: HistoryWindow.h:69
wxTextCtrl * mClipboard
Definition: HistoryWindow.h:70
wxListCtrl * mList
Definition: HistoryWindow.h:68
static TranslatableString FormatSize(wxLongLong size)
Convert a number to a string while formatting it in bytes, KB, MB, GB.
Definition: Internat.cpp:203
wxString Translation() const
void VisitStates(const Consumer &consumer, bool newestFirst)
Give read-only access to all states.
unsigned int GetCurrentState()
Holds one item with description and time range for the UndoManager.
Definition: UndoManager.h:127
TranslatableString description
Definition: UndoManager.h:141

References desc, UndoStackElem::description, Internat::FormatSize(), UndoManager::GetCurrentState(), ID_DISCARD_CLIPBOARD, mClipboard, mList, mManager, mSelected, mTotal, size, TranslatableString::Translation(), UpdateLevels(), and UndoManager::VisitStates().

Referenced by DoUpdateDisplay(), OnDiscard(), and Show().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DoUpdateDisplay()

void HistoryDialog::DoUpdateDisplay ( )

Definition at line 268 of file HistoryWindow.cpp.

269{
270 if(IsShown())
271 DoUpdate();
272}

References DoUpdate().

Referenced by UpdateDisplay(), and UpdateDisplayForClipboard().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnAudioIO()

void HistoryDialog::OnAudioIO ( AudioIOEvent  evt)
private

Definition at line 236 of file HistoryWindow.cpp.

237{
238 if (evt.type == AudioIOEvent::MONITOR)
239 return;
240 mAudioIOBusy = evt.on;
241
242#if defined(ALLOW_DISCARD)
243 mDiscard->Enable(!mAudioIOBusy);
244 mCompact->Enable(!mAudioIOBusy);
245#endif
246}
wxButton * mCompact
Definition: HistoryWindow.h:74
wxButton * mDiscard
Definition: HistoryWindow.h:73
bool on
Definition: AudioIO.h:77
enum AudioIOEvent::Type type

References mAudioIOBusy, mCompact, mDiscard, AudioIOEvent::MONITOR, AudioIOEvent::on, and AudioIOEvent::type.

Referenced by HistoryDialog().

Here is the caller graph for this function:

◆ OnCloseWindow()

void HistoryDialog::OnCloseWindow ( wxCloseEvent &  event)
private

Definition at line 446 of file HistoryWindow.cpp.

447{
448 this->Show(false);
449}
bool Show(bool show=true) override

References Show().

Here is the call graph for this function:

◆ OnCompact()

void HistoryDialog::OnCompact ( wxCommandEvent &  event)
private

Definition at line 373 of file HistoryWindow.cpp.

374{
375 auto &projectFileIO = ProjectFileIO::Get(*mProject);
376
377 projectFileIO.ReopenProject();
378
379 auto baseFile = wxFileName(projectFileIO.GetFileName());
380 auto walFile = wxFileName(projectFileIO.GetFileName() + wxT("-wal"));
381 auto before = baseFile.GetSize() + walFile.GetSize();
382
383 projectFileIO.Compact({}, true);
384
385 auto after = baseFile.GetSize() + walFile.GetSize();
386
388 XO("Compacting actually freed %s of disk space.")
389 .Format(Internat::FormatSize((before - after).GetValue())),
390 XO("History"));
391}
wxT("CloseDown"))
int AudacityMessageBox(const TranslatableString &message, const TranslatableString &caption, long style, wxWindow *parent, int x, int y)
XO("Cut/Copy/Paste")
Abstract base class used in importing a file.
static ProjectFileIO & Get(AudacityProject &project)

References AudacityMessageBox(), Internat::FormatSize(), ProjectFileIO::Get(), mProject, wxT(), and XO().

Here is the call graph for this function:

◆ OnDiscard()

void HistoryDialog::OnDiscard ( wxCommandEvent &  event)
private

Definition at line 354 of file HistoryWindow.cpp.

355{
356 int i = mLevels->GetValue();
357
358 mSelected -= i;
359 mManager->RemoveStates(0, i);
361
362 while(--i >= 0)
363 mList->DeleteItem(i);
364
365 DoUpdate();
366}
wxSpinCtrl * mLevels
Definition: HistoryWindow.h:72
void SetStateTo(unsigned int n, bool doAutosave=true)
static ProjectHistory & Get(AudacityProject &project)
void RemoveStates(size_t begin, size_t end)

References DoUpdate(), ProjectHistory::Get(), mLevels, mList, mManager, mSelected, UndoManager::RemoveStates(), and ProjectHistory::SetStateTo().

Here is the call graph for this function:

◆ OnDiscardClipboard()

void HistoryDialog::OnDiscardClipboard ( wxCommandEvent &  event)
private

Definition at line 368 of file HistoryWindow.cpp.

369{
371}
void Clear()
Definition: Clipboard.cpp:40

References Clipboard::Clear(), and Clipboard::Get().

Here is the call graph for this function:

◆ OnGetURL()

void HistoryDialog::OnGetURL ( wxCommandEvent &  event)
private

Definition at line 393 of file HistoryWindow.cpp.

394{
395 HelpSystem::ShowHelp(this, L"Undo,_Redo_and_History");
396}
static void ShowHelp(wxWindow *parent, const FilePath &localFileName, const URLString &remoteURL, bool bModal=false, bool alwaysDefaultBrowser=false)
Definition: HelpSystem.cpp:234

References HelpSystem::ShowHelp().

Here is the call graph for this function:

◆ OnItemSelected()

void HistoryDialog::OnItemSelected ( wxListEvent &  event)
private

Definition at line 398 of file HistoryWindow.cpp.

399{
400 if (mAudioIOBusy) {
401 mList->SetItemState(mSelected,
402 wxLIST_STATE_FOCUSED | wxLIST_STATE_SELECTED,
403 wxLIST_STATE_FOCUSED | wxLIST_STATE_SELECTED);
404 return;
405 }
406
407 int selected = event.GetIndex();
408 int i;
409
410 for (i = 0; i < mList->GetItemCount(); i++) {
411 mList->SetItemImage(i, 0);
412 if (i > selected)
413 mList->SetItemTextColour(i, *wxLIGHT_GREY);
414 else
415 mList->SetItemTextColour(i, mList->GetTextColour());
416 }
417 mList->SetItemImage(selected, 1);
418
419 // Do not do a SetStateTo() if we're not actually changing the selected
420 // entry. Doing so can cause unnecessary delays upon initial load or while
421 // clicking the same entry over and over.
422 if (selected != mSelected) {
423 ProjectHistory::Get( *mProject ).SetStateTo(selected);
424 }
425 mSelected = selected;
426
427 UpdateLevels();
428}

References ProjectHistory::Get(), mAudioIOBusy, mList, mSelected, ProjectHistory::SetStateTo(), and UpdateLevels().

Here is the call graph for this function:

◆ OnListKeyDown()

void HistoryDialog::OnListKeyDown ( wxKeyEvent &  event)
private

Definition at line 430 of file HistoryWindow.cpp.

431{
432 switch (event.GetKeyCode())
433 {
434 case WXK_RETURN:
435 // Don't know why wxListCtrls prevent default dialog action,
436 // but they do, so handle it.
437 EmulateButtonClickIfPresent(GetAffirmativeId());
438 break;
439
440 default:
441 event.Skip();
442 break;
443 }
444}

Referenced by Populate().

Here is the caller graph for this function:

◆ OnShow()

void HistoryDialog::OnShow ( wxShowEvent &  event)
private

Definition at line 451 of file HistoryWindow.cpp.

452{
453 if (event.IsShown())
454 {
455 mList->SetFocus();
456 }
457}

References mList.

◆ OnSize()

void HistoryDialog::OnSize ( wxSizeEvent &  event)
private

Definition at line 459 of file HistoryWindow.cpp.

460{
461 Layout();
462 mList->SetColumnWidth(0, mList->GetClientSize().x - mList->GetColumnWidth(1));
463 if (mList->GetItemCount() > 0)
464 mList->EnsureVisible(mSelected);
465}

References mList, and mSelected.

◆ Populate()

void HistoryDialog::Populate ( ShuttleGui S)
private

Definition at line 160 of file HistoryWindow.cpp.

161{
162 auto imageList = std::make_unique<wxImageList>(9, 16);
163 imageList->Add(wxIcon(empty9x16_xpm));
164 imageList->Add(wxIcon(arrow_xpm));
165
166 S.SetBorder(5);
167 S.StartVerticalLay(true);
168 {
169 S.StartStatic(XO("&Manage History"), 1);
170 {
171 mList = S
172 .MinSize()
173 .ConnectRoot(wxEVT_KEY_DOWN, &HistoryDialog::OnListKeyDown)
174 .AddListControlReportMode(
175 { { XO("Action"), wxLIST_FORMAT_LEFT, 260 },
176 { XO("Used Space"), wxLIST_FORMAT_LEFT, 125 } },
177 wxLC_SINGLE_SEL
178 );
179
180 //Assign rather than set the image list, so that it is deleted later.
181 // AssignImageList takes ownership
182 mList->AssignImageList(imageList.release(), wxIMAGE_LIST_SMALL);
183
184 S.StartMultiColumn(3, wxCENTRE);
185 {
186 S.AddPrompt(XXO("&Total space used"));
187 mTotal = S.Id(ID_TOTAL).Style(wxTE_READONLY).AddTextBox({}, wxT(""), 10);
188 S.AddVariableText( {} )->Hide();
189
190#if defined(ALLOW_DISCARD)
191 S.AddPrompt(XXO("&Undo levels available"));
192 mAvail = S.Id(ID_AVAIL).Style(wxTE_READONLY).AddTextBox({}, wxT(""), 10);
193 S.AddVariableText( {} )->Hide();
194
195 S.AddPrompt(XXO("&Levels to discard"));
196 mLevels = safenew wxSpinCtrl(S.GetParent(),
197 ID_LEVELS,
198 wxT("1"),
199 wxDefaultPosition,
200 wxDefaultSize,
201 wxSP_ARROW_KEYS,
202 0,
204 0);
205 S.AddWindow(mLevels);
206 /* i18n-hint: (verb)*/
207 mDiscard = S.Id(ID_DISCARD).AddButton(XXO("&Discard"));
208#endif
209 S.AddPrompt(XXO("Clip&board space used"));
210 mClipboard = S.Style(wxTE_READONLY).AddTextBox({}, wxT(""), 10);
211
212#if defined(ALLOW_DISCARD)
213 S.Id(ID_DISCARD_CLIPBOARD).AddButton(XXO("D&iscard"));
214#endif
215 }
216 S.EndMultiColumn();
217 }
218 S.EndStatic();
219#if defined(ALLOW_DISCARD)
220 mCompact = safenew wxButton(this, ID_COMPACT, _("&Compact"));
221 S.AddStandardButtons(eOkButton | eHelpButton, mCompact);
222#else
223 S.AddStandardButtons(eOkButton | eHelpButton);
224#endif
225 }
226 S.EndVerticalLay();
227 // ----------------------- End of main section --------------
228
229 Layout();
230 Fit();
231 SetMinSize(GetSize());
232 mList->SetColumnWidth(0, mList->GetClientSize().x - mList->GetColumnWidth(1));
233 mList->SetTextColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));
234}
XXO("&Cut/Copy/Paste Toolbar")
@ ID_COMPACT
@ ID_TOTAL
@ ID_AVAIL
@ ID_DISCARD
@ ID_LEVELS
#define _(s)
Definition: Internat.h:75
#define safenew
Definition: MemoryX.h:10
@ eOkButton
Definition: ShuttleGui.h:597
@ eHelpButton
Definition: ShuttleGui.h:601
void OnListKeyDown(wxKeyEvent &event)
wxTextCtrl * mAvail
Definition: HistoryWindow.h:71

References _, eHelpButton, eOkButton, UndoManager::GetCurrentState(), ID_AVAIL, ID_COMPACT, ID_DISCARD, ID_DISCARD_CLIPBOARD, ID_LEVELS, ID_TOTAL, mAvail, mClipboard, mCompact, mDiscard, mLevels, mList, mManager, mTotal, OnListKeyDown(), S, safenew, wxT(), XO(), and XXO().

Referenced by HistoryDialog(), and UpdatePrefs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Show()

bool HistoryDialog::Show ( bool  show = true)
override

Definition at line 274 of file HistoryWindow.cpp.

275{
276 if ( show && !IsShown())
277 DoUpdate();
278 return wxDialogWrapper::Show( show );
279}

References DoUpdate().

Referenced by OnCloseWindow(), and UpdatePrefs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateDisplay()

void HistoryDialog::UpdateDisplay ( struct UndoRedoMessage  message)

Definition at line 253 of file HistoryWindow.cpp.

254{
255 switch (message.type) {
261 break;
262 default:
263 return;
264 }
266}
void DoUpdateDisplay()
@ Purge
Undo or redo states eliminated.
Definition: UndoManager.h:75
enum UndoRedoMessage::Type type

References DoUpdateDisplay(), UndoRedoMessage::Modified, UndoRedoMessage::Purge, UndoRedoMessage::Pushed, UndoRedoMessage::Reset, UndoRedoMessage::type, and UndoRedoMessage::UndoOrRedo.

Referenced by HistoryDialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateDisplayForClipboard()

void HistoryDialog::UpdateDisplayForClipboard ( struct ClipboardChangeMessage  )

Definition at line 248 of file HistoryWindow.cpp.

249{
251}

References DoUpdateDisplay().

Referenced by HistoryDialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateLevels()

void HistoryDialog::UpdateLevels ( )
private

Definition at line 325 of file HistoryWindow.cpp.

326{
327#if defined(ALLOW_DISCARD)
328 wxWindow *focus;
329 int value = mLevels->GetValue();
330
331 if (value > mSelected) {
332 value = mSelected;
333 }
334
335 if (value == 0) {
336 value = 1;
337 }
338
339 mLevels->SetValue(value);
340 mLevels->SetRange(1, mSelected);
341
342 mAvail->SetValue(wxString::Format(wxT("%d"), mSelected));
343
344 focus = FindFocus();
345 if ((focus == mDiscard || focus == mLevels) && mSelected == 0) {
346 mList->SetFocus();
347 }
348
349 mLevels->Enable(mSelected > 0);
350 mDiscard->Enable(!mAudioIOBusy && mSelected > 0);
351#endif
352}

References mAudioIOBusy, mAvail, mDiscard, mLevels, mList, mSelected, and wxT().

Referenced by DoUpdate(), and OnItemSelected().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdatePrefs()

void HistoryDialog::UpdatePrefs ( )
overrideprivatevirtual

Implements PrefsListener.

Definition at line 468 of file HistoryWindow.cpp.

469{
470 bool shown = IsShown();
471 if (shown) {
472 Show(false);
473 }
474
475 SetSizer(nullptr);
476 DestroyChildren();
477
479 ShuttleGui S(this, eIsCreating);
480 Populate(S);
481
482 if (shown) {
483 Show(true);
484 }
485}
void SetTitle(const TranslatableString &title)

References eIsCreating, HistoryTitle, Populate(), S, wxDialogWrapper::SetTitle(), and Show().

Here is the call graph for this function:

Member Data Documentation

◆ mAudioIOBusy

bool HistoryDialog::mAudioIOBusy
private

Definition at line 77 of file HistoryWindow.h.

Referenced by HistoryDialog(), OnAudioIO(), OnItemSelected(), and UpdateLevels().

◆ mAudioIOSubscription

Observer::Subscription HistoryDialog::mAudioIOSubscription
private

Definition at line 61 of file HistoryWindow.h.

Referenced by HistoryDialog().

◆ mAvail

wxTextCtrl* HistoryDialog::mAvail
private

Definition at line 71 of file HistoryWindow.h.

Referenced by Populate(), and UpdateLevels().

◆ mClipboard

wxTextCtrl* HistoryDialog::mClipboard
private

Definition at line 70 of file HistoryWindow.h.

Referenced by DoUpdate(), and Populate().

◆ mClipboardSubscription

Observer::Subscription HistoryDialog::mClipboardSubscription
private

Definition at line 63 of file HistoryWindow.h.

Referenced by HistoryDialog().

◆ mCompact

wxButton* HistoryDialog::mCompact
private

Definition at line 74 of file HistoryWindow.h.

Referenced by OnAudioIO(), and Populate().

◆ mDiscard

wxButton* HistoryDialog::mDiscard
private

Definition at line 73 of file HistoryWindow.h.

Referenced by OnAudioIO(), Populate(), and UpdateLevels().

◆ mLevels

wxSpinCtrl* HistoryDialog::mLevels
private

Definition at line 72 of file HistoryWindow.h.

Referenced by OnDiscard(), Populate(), and UpdateLevels().

◆ mList

wxListCtrl* HistoryDialog::mList
private

Definition at line 68 of file HistoryWindow.h.

Referenced by DoUpdate(), OnDiscard(), OnItemSelected(), OnShow(), OnSize(), Populate(), and UpdateLevels().

◆ mManager

UndoManager* HistoryDialog::mManager
private

Definition at line 67 of file HistoryWindow.h.

Referenced by DoUpdate(), HistoryDialog(), OnDiscard(), and Populate().

◆ mProject

AudacityProject* HistoryDialog::mProject
private

Definition at line 66 of file HistoryWindow.h.

Referenced by HistoryDialog(), and OnCompact().

◆ mSelected

int HistoryDialog::mSelected
private

Definition at line 76 of file HistoryWindow.h.

Referenced by DoUpdate(), HistoryDialog(), OnDiscard(), OnItemSelected(), OnSize(), and UpdateLevels().

◆ mTotal

wxTextCtrl* HistoryDialog::mTotal
private

Definition at line 69 of file HistoryWindow.h.

Referenced by DoUpdate(), and Populate().

◆ mUndoSubscription

Observer::Subscription HistoryDialog::mUndoSubscription
private

Definition at line 62 of file HistoryWindow.h.

Referenced by HistoryDialog().


The documentation for this class was generated from the following files: