mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-16 08:09:32 +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 "ProjectHistory.h"
|
||||
#include "ShuttleGui.h"
|
||||
#include "widgets/AudacityMessageBox.h"
|
||||
#include "widgets/HelpSystem.h"
|
||||
|
||||
enum {
|
||||
ID_AVAIL = 1000,
|
||||
@ -50,7 +52,8 @@ enum {
|
||||
ID_TOTAL,
|
||||
ID_LEVELS,
|
||||
ID_DISCARD,
|
||||
ID_DISCARD_CLIPBOARD
|
||||
ID_DISCARD_CLIPBOARD,
|
||||
ID_COMPACT
|
||||
};
|
||||
|
||||
BEGIN_EVENT_TABLE(HistoryDialog, wxDialogWrapper)
|
||||
@ -59,6 +62,8 @@ BEGIN_EVENT_TABLE(HistoryDialog, wxDialogWrapper)
|
||||
EVT_LIST_ITEM_SELECTED(wxID_ANY, HistoryDialog::OnItemSelected)
|
||||
EVT_BUTTON(ID_DISCARD, HistoryDialog::OnDiscard)
|
||||
EVT_BUTTON(ID_DISCARD_CLIPBOARD, HistoryDialog::OnDiscardClipboard)
|
||||
EVT_BUTTON(ID_COMPACT, HistoryDialog::OnCompact)
|
||||
EVT_BUTTON(wxID_HELP, HistoryDialog::OnGetURL)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
|
||||
@ -126,19 +131,15 @@ HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
|
||||
|
||||
mClipboard = S
|
||||
.ConnectRoot(wxEVT_KEY_DOWN, &HistoryDialog::OnChar)
|
||||
.AddTextBox(XXO("Clipboard space used"), wxT("0"), 10);
|
||||
S.Id(ID_DISCARD_CLIPBOARD).AddButton(XXO("Discard"));
|
||||
.AddTextBox(XXO("Clip&board space used"), wxT("0"), 10);
|
||||
S.Id(ID_DISCARD_CLIPBOARD).AddButton(XXO("D&iscard"));
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
}
|
||||
S.EndStatic();
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_RIGHT, false);
|
||||
{
|
||||
S.SetBorder(10);
|
||||
S.Id(wxID_OK).AddButton(XXO("&OK"), wxALIGN_CENTER, true);
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
mCompact = safenew wxButton(this, ID_COMPACT, _("&Compact"));
|
||||
S.AddStandardButtons(eOkButton | eHelpButton, mCompact);
|
||||
}
|
||||
S.EndVerticalLay();
|
||||
// ----------------------- End of main section --------------
|
||||
@ -179,6 +180,7 @@ void HistoryDialog::OnAudioIO(wxCommandEvent& evt)
|
||||
mAudioIOBusy = false;
|
||||
|
||||
mDiscard->Enable(!mAudioIOBusy);
|
||||
mCompact->Enable(!mAudioIOBusy);
|
||||
}
|
||||
|
||||
void HistoryDialog::UpdateDisplay(wxEvent& e)
|
||||
@ -274,6 +276,31 @@ void HistoryDialog::OnDiscardClipboard(wxCommandEvent & WXUNUSED(event))
|
||||
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)
|
||||
{
|
||||
if (mAudioIOBusy) {
|
||||
|
@ -42,6 +42,8 @@ class HistoryDialog final : public wxDialogWrapper {
|
||||
void OnItemSelected(wxListEvent & event);
|
||||
void OnDiscard(wxCommandEvent & event);
|
||||
void OnDiscardClipboard(wxCommandEvent & event);
|
||||
void OnCompact(wxCommandEvent & event);
|
||||
void OnGetURL(wxCommandEvent & event);
|
||||
|
||||
AudacityProject *mProject;
|
||||
UndoManager *mManager;
|
||||
@ -51,6 +53,7 @@ class HistoryDialog final : public wxDialogWrapper {
|
||||
wxTextCtrl *mAvail;
|
||||
wxSpinCtrl *mLevels;
|
||||
wxButton *mDiscard;
|
||||
wxButton *mCompact;
|
||||
|
||||
int mSelected;
|
||||
bool mAudioIOBusy;
|
||||
|
@ -1022,8 +1022,9 @@ void ProjectFileIO::Compact(const std::shared_ptr<TrackList> &tracks, bool force
|
||||
wxString backName = origName + "_compact_back";
|
||||
wxString tempName = origName + "_compact_temp";
|
||||
|
||||
// Copy the original database to a new database while pruning unused sample blocks
|
||||
if (CopyTo(tempName, XO("Compacting project"), mTemporary, true, tracks))
|
||||
// Copy the original database to a new database. Only prune sample blocks if
|
||||
// we have a tracklist.
|
||||
if (CopyTo(tempName, XO("Compacting project"), mTemporary, tracks != nullptr, tracks))
|
||||
{
|
||||
// Must close the database to rename it
|
||||
if (CloseConnection())
|
||||
|
Loading…
x
Reference in New Issue
Block a user