Handle empty files better in the translation assistant
Originally committed to SVN as r6167.
This commit is contained in:
parent
92254a9806
commit
ae3895fb8e
3 changed files with 19 additions and 6 deletions
|
@ -49,6 +49,7 @@
|
|||
#include "../dialog_fonts_collector.h"
|
||||
#include "../standard_paths.h" // tool_assdraw
|
||||
#include "../video_context.h" // tool_font_collector
|
||||
#include "../compat.h"
|
||||
#include "../dialog_export.h"
|
||||
#include "../dialog_resample.h"
|
||||
#include "../dialog_selection.h"
|
||||
|
@ -227,10 +228,16 @@ struct tool_translation_assistant : public Command {
|
|||
|
||||
void operator()(agi::Context *c) {
|
||||
c->videoController->Stop();
|
||||
DialogTranslation d(c);
|
||||
c->translationAssistant = &d;
|
||||
d.ShowModal();
|
||||
c->translationAssistant = 0;
|
||||
try {
|
||||
DialogTranslation d(c);
|
||||
c->translationAssistant = &d;
|
||||
d.ShowModal();
|
||||
c->translationAssistant = 0;
|
||||
}
|
||||
catch (agi::Exception const& e) {
|
||||
c->translationAssistant = 0;
|
||||
wxMessageBox(lagi_wxString(e.GetChainedMessage()));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "ass_file.h"
|
||||
#include "audio_controller.h"
|
||||
#include "command/command.h"
|
||||
#include "compat.h"
|
||||
#include "help_button.h"
|
||||
#include "libresrc/libresrc.h"
|
||||
#include "persist_location.h"
|
||||
|
@ -157,8 +158,10 @@ DialogTranslation::DialogTranslation(agi::Context *c)
|
|||
Bind(wxEVT_KEY_DOWN, &DialogTranslation::OnKeyDown, this);
|
||||
|
||||
active_line->ParseASSTags();
|
||||
if (bad_block(active_line->Blocks[0]))
|
||||
NextBlock();
|
||||
if (bad_block(active_line->Blocks[0])) {
|
||||
if (!NextBlock())
|
||||
throw NothingToTranslate(STD_STR(_("There is nothing to translate in the file.")));
|
||||
}
|
||||
else
|
||||
UpdateDisplay();
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <wx/dialog.h>
|
||||
#endif
|
||||
|
||||
#include <libaegisub/exception.h>
|
||||
#include <libaegisub/scoped_ptr.h>
|
||||
|
||||
namespace agi { struct Context; }
|
||||
|
@ -71,4 +72,6 @@ public:
|
|||
bool PrevBlock();
|
||||
void Commit(bool next);
|
||||
void InsertOriginal();
|
||||
|
||||
DEFINE_SIMPLE_EXCEPTION_NOINNER(NothingToTranslate, agi::Exception, "dialog/translation/nothing_to_translate");
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue