Disable the Delete and Extract buttons in the attachment dialog after deleting the selected attachments

Originally committed to SVN as r6041.
This commit is contained in:
Thomas Goyne 2011-12-22 21:15:56 +00:00
parent 38e2403001
commit 384d2bc9c2
1 changed files with 20 additions and 22 deletions

View File

@ -226,34 +226,30 @@ void DialogAttachments::OnAttachGraphics(wxCommandEvent &) {
} }
void DialogAttachments::OnExtract(wxCommandEvent &) { void DialogAttachments::OnExtract(wxCommandEvent &) {
// Check if there's a selection
int i = listView->GetFirstSelected(); int i = listView->GetFirstSelected();
if (i == -1) return;
// Get path
if (i != -1) {
wxString path; wxString path;
bool fullPath = false; bool fullPath = false;
// Multiple or single? // Multiple or single?
if (listView->GetNextSelected(i) != -1) path = wxDirSelector(_("Select the path to save the files to:"),lagi_wxString(OPT_GET("Path/Fonts Collector Destination")->GetString())) + "/"; if (listView->GetNextSelected(i) != -1)
path = wxDirSelector(_("Select the path to save the files to:"),lagi_wxString(OPT_GET("Path/Fonts Collector Destination")->GetString())) + "/";
else { else {
// Default path // Default path
wxString defPath = ((AssAttachment*)wxUIntToPtr(listView->GetItemData(i)))->GetFileName(); wxString defPath = ((AssAttachment*)wxUIntToPtr(listView->GetItemData(i)))->GetFileName();
path = wxFileSelector(_("Select the path to save the file to:"),lagi_wxString(OPT_GET("Path/Fonts Collector Destination")->GetString()),defPath); path = wxFileSelector(_("Select the path to save the file to:"),lagi_wxString(OPT_GET("Path/Fonts Collector Destination")->GetString()),defPath);
fullPath = true; fullPath = true;
} }
if (path.IsEmpty()) return; if (!path) return;
// Loop through items in list // Loop through items in list
while (i != -1) { while (i != -1) {
AssAttachment *attach = (AssAttachment*)wxUIntToPtr(listView->GetItemData(i)); AssAttachment *attach = (AssAttachment*)wxUIntToPtr(listView->GetItemData(i));
wxString filename = path; attach->Extract(fullPath ? path : path + attach->GetFileName());
if (!fullPath) filename += attach->GetFileName();
attach->Extract(filename);
i = listView->GetNextSelected(i); i = listView->GetNextSelected(i);
} }
} }
}
void DialogAttachments::OnDelete(wxCommandEvent &) { void DialogAttachments::OnDelete(wxCommandEvent &) {
// Loop through items in list // Loop through items in list
@ -266,6 +262,8 @@ void DialogAttachments::OnDelete(wxCommandEvent &) {
ass->Commit(_("remove attachment"), AssFile::COMMIT_ATTACHMENT); ass->Commit(_("remove attachment"), AssFile::COMMIT_ATTACHMENT);
UpdateList(); UpdateList();
extractButton->Enable(false);
deleteButton->Enable(false);
} }
void DialogAttachments::OnListClick(wxListEvent &) { void DialogAttachments::OnListClick(wxListEvent &) {