mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-18 00:50:05 +02:00
AUP3: UP-33 History window shows misleading "space used"
I've added compact and help buttons.
This commit is contained in:
parent
c29c6b1b15
commit
9f058dc308
@ -43,6 +43,8 @@ undo memory so as to free up space.
|
|||||||
#include "ProjectFileIO.h"
|
#include "ProjectFileIO.h"
|
||||||
#include "ProjectHistory.h"
|
#include "ProjectHistory.h"
|
||||||
#include "ShuttleGui.h"
|
#include "ShuttleGui.h"
|
||||||
|
#include "widgets/AudacityMessageBox.h"
|
||||||
|
#include "widgets/HelpSystem.h"
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
ID_AVAIL = 1000,
|
ID_AVAIL = 1000,
|
||||||
@ -50,7 +52,8 @@ enum {
|
|||||||
ID_TOTAL,
|
ID_TOTAL,
|
||||||
ID_LEVELS,
|
ID_LEVELS,
|
||||||
ID_DISCARD,
|
ID_DISCARD,
|
||||||
ID_DISCARD_CLIPBOARD
|
ID_DISCARD_CLIPBOARD,
|
||||||
|
ID_COMPACT
|
||||||
};
|
};
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(HistoryDialog, wxDialogWrapper)
|
BEGIN_EVENT_TABLE(HistoryDialog, wxDialogWrapper)
|
||||||
@ -59,6 +62,8 @@ BEGIN_EVENT_TABLE(HistoryDialog, wxDialogWrapper)
|
|||||||
EVT_LIST_ITEM_SELECTED(wxID_ANY, HistoryDialog::OnItemSelected)
|
EVT_LIST_ITEM_SELECTED(wxID_ANY, HistoryDialog::OnItemSelected)
|
||||||
EVT_BUTTON(ID_DISCARD, HistoryDialog::OnDiscard)
|
EVT_BUTTON(ID_DISCARD, HistoryDialog::OnDiscard)
|
||||||
EVT_BUTTON(ID_DISCARD_CLIPBOARD, HistoryDialog::OnDiscardClipboard)
|
EVT_BUTTON(ID_DISCARD_CLIPBOARD, HistoryDialog::OnDiscardClipboard)
|
||||||
|
EVT_BUTTON(ID_COMPACT, HistoryDialog::OnCompact)
|
||||||
|
EVT_BUTTON(wxID_HELP, HistoryDialog::OnGetURL)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
|
HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
|
||||||
@ -126,19 +131,15 @@ HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
|
|||||||
|
|
||||||
mClipboard = S
|
mClipboard = S
|
||||||
.ConnectRoot(wxEVT_KEY_DOWN, &HistoryDialog::OnChar)
|
.ConnectRoot(wxEVT_KEY_DOWN, &HistoryDialog::OnChar)
|
||||||
.AddTextBox(XXO("Clipboard space used"), wxT("0"), 10);
|
.AddTextBox(XXO("Clip&board space used"), wxT("0"), 10);
|
||||||
S.Id(ID_DISCARD_CLIPBOARD).AddButton(XXO("Discard"));
|
S.Id(ID_DISCARD_CLIPBOARD).AddButton(XXO("D&iscard"));
|
||||||
}
|
}
|
||||||
S.EndMultiColumn();
|
S.EndMultiColumn();
|
||||||
}
|
}
|
||||||
S.EndStatic();
|
S.EndStatic();
|
||||||
|
|
||||||
S.StartHorizontalLay(wxALIGN_RIGHT, false);
|
mCompact = safenew wxButton(this, ID_COMPACT, _("&Compact"));
|
||||||
{
|
S.AddStandardButtons(eOkButton | eHelpButton, mCompact);
|
||||||
S.SetBorder(10);
|
|
||||||
S.Id(wxID_OK).AddButton(XXO("&OK"), wxALIGN_CENTER, true);
|
|
||||||
}
|
|
||||||
S.EndHorizontalLay();
|
|
||||||
}
|
}
|
||||||
S.EndVerticalLay();
|
S.EndVerticalLay();
|
||||||
// ----------------------- End of main section --------------
|
// ----------------------- End of main section --------------
|
||||||
@ -179,6 +180,7 @@ void HistoryDialog::OnAudioIO(wxCommandEvent& evt)
|
|||||||
mAudioIOBusy = false;
|
mAudioIOBusy = false;
|
||||||
|
|
||||||
mDiscard->Enable(!mAudioIOBusy);
|
mDiscard->Enable(!mAudioIOBusy);
|
||||||
|
mCompact->Enable(!mAudioIOBusy);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistoryDialog::UpdateDisplay(wxEvent& e)
|
void HistoryDialog::UpdateDisplay(wxEvent& e)
|
||||||
@ -274,6 +276,31 @@ void HistoryDialog::OnDiscardClipboard(wxCommandEvent & WXUNUSED(event))
|
|||||||
Clipboard::Get().Clear();
|
Clipboard::Get().Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HistoryDialog::OnCompact(wxCommandEvent & WXUNUSED(event))
|
||||||
|
{
|
||||||
|
auto &projectFileIO = ProjectFileIO::Get(*mProject);
|
||||||
|
|
||||||
|
projectFileIO.ReopenProject();
|
||||||
|
|
||||||
|
auto baseFile = wxFileName(projectFileIO.GetFileName());
|
||||||
|
auto walFile = wxFileName(projectFileIO.GetFileName() + wxT("-wal"));
|
||||||
|
auto before = baseFile.GetSize() + walFile.GetSize();
|
||||||
|
|
||||||
|
projectFileIO.Compact(nullptr, true);
|
||||||
|
|
||||||
|
auto after = baseFile.GetSize() + walFile.GetSize();
|
||||||
|
|
||||||
|
AudacityMessageBox(
|
||||||
|
XO("Compacting actually freed %s of disk space.")
|
||||||
|
.Format(Internat::FormatSize((before - after).GetValue())),
|
||||||
|
XO("History"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void HistoryDialog::OnGetURL(wxCommandEvent & WXUNUSED(event))
|
||||||
|
{
|
||||||
|
HelpSystem::ShowHelp(this, wxT("View_Menu#history"));
|
||||||
|
}
|
||||||
|
|
||||||
void HistoryDialog::OnItemSelected(wxListEvent &event)
|
void HistoryDialog::OnItemSelected(wxListEvent &event)
|
||||||
{
|
{
|
||||||
if (mAudioIOBusy) {
|
if (mAudioIOBusy) {
|
||||||
|
@ -42,6 +42,8 @@ class HistoryDialog final : public wxDialogWrapper {
|
|||||||
void OnItemSelected(wxListEvent & event);
|
void OnItemSelected(wxListEvent & event);
|
||||||
void OnDiscard(wxCommandEvent & event);
|
void OnDiscard(wxCommandEvent & event);
|
||||||
void OnDiscardClipboard(wxCommandEvent & event);
|
void OnDiscardClipboard(wxCommandEvent & event);
|
||||||
|
void OnCompact(wxCommandEvent & event);
|
||||||
|
void OnGetURL(wxCommandEvent & event);
|
||||||
|
|
||||||
AudacityProject *mProject;
|
AudacityProject *mProject;
|
||||||
UndoManager *mManager;
|
UndoManager *mManager;
|
||||||
@ -51,6 +53,7 @@ class HistoryDialog final : public wxDialogWrapper {
|
|||||||
wxTextCtrl *mAvail;
|
wxTextCtrl *mAvail;
|
||||||
wxSpinCtrl *mLevels;
|
wxSpinCtrl *mLevels;
|
||||||
wxButton *mDiscard;
|
wxButton *mDiscard;
|
||||||
|
wxButton *mCompact;
|
||||||
|
|
||||||
int mSelected;
|
int mSelected;
|
||||||
bool mAudioIOBusy;
|
bool mAudioIOBusy;
|
||||||
|
@ -1022,8 +1022,9 @@ void ProjectFileIO::Compact(const std::shared_ptr<TrackList> &tracks, bool force
|
|||||||
wxString backName = origName + "_compact_back";
|
wxString backName = origName + "_compact_back";
|
||||||
wxString tempName = origName + "_compact_temp";
|
wxString tempName = origName + "_compact_temp";
|
||||||
|
|
||||||
// Copy the original database to a new database while pruning unused sample blocks
|
// Copy the original database to a new database. Only prune sample blocks if
|
||||||
if (CopyTo(tempName, XO("Compacting project"), mTemporary, true, tracks))
|
// we have a tracklist.
|
||||||
|
if (CopyTo(tempName, XO("Compacting project"), mTemporary, tracks != nullptr, tracks))
|
||||||
{
|
{
|
||||||
// Must close the database to rename it
|
// Must close the database to rename it
|
||||||
if (CloseConnection())
|
if (CloseConnection())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user