mirror of https://github.com/odrling/Aegisub
Move some stuff from AssFile::Load to FrameMain::LoadSubtitles
This is still not a very good place for it, but AssFile really shouldn't be mucking around in global program state.
This commit is contained in:
parent
a53432736c
commit
9547bc4ef2
|
@ -78,7 +78,7 @@ AssFile::~AssFile() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @brief Load generic subs
|
/// @brief Load generic subs
|
||||||
void AssFile::Load(const wxString &_filename, wxString charset, bool addToRecent) {
|
void AssFile::Load(const wxString &_filename, wxString const& charset) {
|
||||||
try {
|
try {
|
||||||
// Get proper format reader
|
// Get proper format reader
|
||||||
const SubtitleFormat *reader = SubtitleFormat::GetReader(_filename);
|
const SubtitleFormat *reader = SubtitleFormat::GetReader(_filename);
|
||||||
|
@ -113,23 +113,6 @@ void AssFile::Load(const wxString &_filename, wxString charset, bool addToRecent
|
||||||
// Set general data
|
// Set general data
|
||||||
loaded = true;
|
loaded = true;
|
||||||
filename = _filename;
|
filename = _filename;
|
||||||
StandardPaths::SetPathValue("?script", wxFileName(filename).GetPath());
|
|
||||||
|
|
||||||
// Save backup of file
|
|
||||||
if (CanSave() && OPT_GET("App/Auto/Backup")->GetBool()) {
|
|
||||||
wxFileName file(filename);
|
|
||||||
if (file.FileExists()) {
|
|
||||||
wxString path = lagi_wxString(OPT_GET("Path/Auto/Backup")->GetString());
|
|
||||||
if (path.empty()) path = file.GetPath();
|
|
||||||
wxFileName dstpath(StandardPaths::DecodePath(path + "/"));
|
|
||||||
if (!dstpath.DirExists())
|
|
||||||
wxMkdir(dstpath.GetPath());
|
|
||||||
|
|
||||||
dstpath.SetFullName(file.GetName() + ".ORIGINAL." + file.GetExt());
|
|
||||||
|
|
||||||
wxCopyFile(file.GetFullPath(), dstpath.GetFullPath(), true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add comments and set vars
|
// Add comments and set vars
|
||||||
AddComment(wxString("Script generated by Aegisub ") + GetAegisubLongVersionString());
|
AddComment(wxString("Script generated by Aegisub ") + GetAegisubLongVersionString());
|
||||||
|
@ -143,8 +126,6 @@ void AssFile::Load(const wxString &_filename, wxString charset, bool addToRecent
|
||||||
autosavedCommitId = savedCommitId = commitId + 1;
|
autosavedCommitId = savedCommitId = commitId + 1;
|
||||||
Commit("", COMMIT_NEW);
|
Commit("", COMMIT_NEW);
|
||||||
|
|
||||||
// Add to recent
|
|
||||||
if (addToRecent) AddToRecent(filename);
|
|
||||||
FileOpen(filename);
|
FileOpen(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -122,8 +122,7 @@ public:
|
||||||
/// @brief Load from a file
|
/// @brief Load from a file
|
||||||
/// @param file File name
|
/// @param file File name
|
||||||
/// @param charset Character set of file or empty to autodetect
|
/// @param charset Character set of file or empty to autodetect
|
||||||
/// @param addToRecent Should the file be added to the MRU list?
|
void Load(const wxString &file, wxString const& charset="");
|
||||||
void Load(const wxString &file,wxString charset="",bool addToRecent=true);
|
|
||||||
|
|
||||||
/// @brief Save to a file
|
/// @brief Save to a file
|
||||||
/// @param file Path to save to
|
/// @param file Path to save to
|
||||||
|
|
|
@ -598,7 +598,7 @@ void DialogStyleManager::OnCurrentImport() {
|
||||||
|
|
||||||
AssFile temp;
|
AssFile temp;
|
||||||
try {
|
try {
|
||||||
temp.Load(filename, "", false);
|
temp.Load(filename);
|
||||||
}
|
}
|
||||||
catch (const char *err) {
|
catch (const char *err) {
|
||||||
wxMessageBox(err, "Error", wxOK | wxICON_ERROR | wxCENTER, this);
|
wxMessageBox(err, "Error", wxOK | wxICON_ERROR | wxCENTER, this);
|
||||||
|
|
|
@ -408,7 +408,7 @@ void FrameMain::InitContents() {
|
||||||
StartupLog("Leaving InitContents");
|
StartupLog("Leaving InitContents");
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameMain::LoadSubtitles(wxString filename,wxString charset) {
|
void FrameMain::LoadSubtitles(wxString const& filename, wxString const& charset) {
|
||||||
if (context->ass->loaded) {
|
if (context->ass->loaded) {
|
||||||
if (TryToCloseSubs() == wxCANCEL) return;
|
if (TryToCloseSubs() == wxCANCEL) return;
|
||||||
}
|
}
|
||||||
|
@ -416,7 +416,7 @@ void FrameMain::LoadSubtitles(wxString filename,wxString charset) {
|
||||||
try {
|
try {
|
||||||
// Make sure that file isn't actually a timecode file
|
// Make sure that file isn't actually a timecode file
|
||||||
try {
|
try {
|
||||||
TextFileReader testSubs(filename,charset);
|
TextFileReader testSubs(filename, charset);
|
||||||
wxString cur = testSubs.ReadLineFromFile();
|
wxString cur = testSubs.ReadLineFromFile();
|
||||||
if (cur.Left(10) == "# timecode") {
|
if (cur.Left(10) == "# timecode") {
|
||||||
context->videoController->LoadTimecodes(filename);
|
context->videoController->LoadTimecodes(filename);
|
||||||
|
@ -428,7 +428,27 @@ void FrameMain::LoadSubtitles(wxString filename,wxString charset) {
|
||||||
// safe to assume that it is in fact not a timecode file
|
// safe to assume that it is in fact not a timecode file
|
||||||
}
|
}
|
||||||
|
|
||||||
context->ass->Load(filename,charset);
|
context->ass->Load(filename, charset);
|
||||||
|
|
||||||
|
wxFileName file(filename);
|
||||||
|
StandardPaths::SetPathValue("?script", file.GetPath());
|
||||||
|
config::mru->Add("Subtitle", STD_STR(filename));
|
||||||
|
OPT_SET("Path/Last/Subtitles")->SetString(STD_STR(file.GetPath()));
|
||||||
|
|
||||||
|
// Save backup of file
|
||||||
|
if (context->ass->CanSave() && OPT_GET("App/Auto/Backup")->GetBool()) {
|
||||||
|
if (file.FileExists()) {
|
||||||
|
wxString path = lagi_wxString(OPT_GET("Path/Auto/Backup")->GetString());
|
||||||
|
if (path.empty()) path = file.GetPath();
|
||||||
|
wxFileName dstpath(StandardPaths::DecodePath(path + "/"));
|
||||||
|
if (!dstpath.DirExists())
|
||||||
|
wxMkdir(dstpath.GetPath());
|
||||||
|
|
||||||
|
dstpath.SetFullName(file.GetName() + ".ORIGINAL." + file.GetExt());
|
||||||
|
|
||||||
|
wxCopyFile(file.GetFullPath(), dstpath.GetFullPath(), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (agi::FileNotFoundError const&) {
|
catch (agi::FileNotFoundError const&) {
|
||||||
wxMessageBox(filename + " not found.", "Error", wxOK | wxICON_ERROR | wxCENTER, this);
|
wxMessageBox(filename + " not found.", "Error", wxOK | wxICON_ERROR | wxCENTER, this);
|
||||||
|
|
|
@ -146,7 +146,7 @@ public:
|
||||||
/// @param enableCancel Should the user be able to cancel the close?
|
/// @param enableCancel Should the user be able to cancel the close?
|
||||||
int TryToCloseSubs(bool enableCancel=true);
|
int TryToCloseSubs(bool enableCancel=true);
|
||||||
|
|
||||||
void LoadSubtitles(wxString filename,wxString charset="");
|
void LoadSubtitles(wxString const& filename, wxString const& charset="");
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue