Also remove timecodes and keyframes from the MRU lists when they cannot be found. Updates #717.

Originally committed to SVN as r4721.
This commit is contained in:
Thomas Goyne 2010-08-02 08:18:53 +00:00
parent 596ad4d65d
commit ce97d995b4
2 changed files with 27 additions and 24 deletions

View File

@ -48,7 +48,6 @@
#include "video_context.h" #include "video_context.h"
std::vector<int> KeyFrameFile::Load(wxString filename) { std::vector<int> KeyFrameFile::Load(wxString filename) {
try {
std::vector<int> keyFrames; std::vector<int> keyFrames;
TextFileReader file(filename,_T("ASCII")); TextFileReader file(filename,_T("ASCII"));
@ -63,15 +62,6 @@ std::vector<int> KeyFrameFile::Load(wxString filename) {
config::mru->Add("Keyframes", STD_STR(filename)); config::mru->Add("Keyframes", STD_STR(filename));
return keyFrames; return keyFrames;
} }
// Fail
catch (const wchar_t *error) {
wxMessageBox(error, _T("Error opening keyframes file"), wxOK | wxICON_ERROR, NULL);
}
catch (...) {
wxMessageBox(_T("Unknown error"), _T("Error opening keyframes file"), wxOK | wxICON_ERROR, NULL);
}
return std::vector<int>();
}
void KeyFrameFile::Save(wxString filename, std::vector<int> const& keyFrames) { void KeyFrameFile::Save(wxString filename, std::vector<int> const& keyFrames) {
TextFileWriter file(filename,_T("ASCII")); TextFileWriter file(filename,_T("ASCII"));

View File

@ -471,10 +471,22 @@ void VideoContext::SetAspectRatio(int type, double value) {
void VideoContext::LoadKeyframes(wxString filename) { void VideoContext::LoadKeyframes(wxString filename) {
if (filename == keyFramesFilename || filename.empty()) return; if (filename == keyFramesFilename || filename.empty()) return;
try {
keyFrames = KeyFrameFile::Load(filename); keyFrames = KeyFrameFile::Load(filename);
keyFramesFilename = filename; keyFramesFilename = filename;
Refresh(); Refresh();
} }
catch (const wchar_t *error) {
wxMessageBox(error, _T("Error opening keyframes file"), wxOK | wxICON_ERROR, NULL);
}
catch (agi::acs::AcsNotFound const&) {
wxLogError(L"Could not open file " + filename);
config::mru->Remove("Keyframes", STD_STR(filename));
}
catch (...) {
wxMessageBox(_T("Unknown error"), _T("Error opening keyframes file"), wxOK | wxICON_ERROR, NULL);
}
}
void VideoContext::SaveKeyframes(wxString filename) { void VideoContext::SaveKeyframes(wxString filename) {
KeyFrameFile::Save(filename, GetKeyFrames()); KeyFrameFile::Save(filename, GetKeyFrames());
@ -501,6 +513,7 @@ void VideoContext::LoadTimecodes(wxString filename) {
} }
catch (const agi::acs::AcsError&) { catch (const agi::acs::AcsError&) {
wxLogError(L"Could not open file " + filename); wxLogError(L"Could not open file " + filename);
config::mru->Remove("Timecodes", STD_STR(filename));
} }
catch (const agi::vfr::Error& e) { catch (const agi::vfr::Error& e) {
wxLogError(L"Timecode file parse error: %s", e.GetMessage().c_str()); wxLogError(L"Timecode file parse error: %s", e.GetMessage().c_str());