forked from mia/Aegisub
Merge branch 'fixes' into feature
This commit is contained in:
commit
fde3dd0dbf
3 changed files with 24 additions and 32 deletions
|
@ -221,13 +221,6 @@ namespace Automation4 {
|
|||
});
|
||||
}
|
||||
|
||||
int ProgressSink::ShowDialog(wxDialog *dialog)
|
||||
{
|
||||
int ret = 0;
|
||||
agi::dispatch::Main().Sync([&] { ret = dialog->ShowModal(); });
|
||||
return ret;
|
||||
}
|
||||
|
||||
BackgroundScriptRunner::BackgroundScriptRunner(wxWindow *parent, std::string const& title)
|
||||
: impl(new DialogProgress(parent, to_wx(title)))
|
||||
{
|
||||
|
|
|
@ -133,7 +133,6 @@ namespace Automation4 {
|
|||
/// Show the passed dialog on the GUI thread, blocking the calling
|
||||
/// thread until it closes
|
||||
void ShowDialog(ScriptDialog *config_dialog);
|
||||
int ShowDialog(wxDialog *dialog);
|
||||
wxWindow *GetParentWindow() const { return bsr->GetParentWindow(); }
|
||||
|
||||
/// Get the current automation trace level
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "compat.h"
|
||||
|
||||
#include <libaegisub/dispatch.h>
|
||||
#include <libaegisub/lua/utils.h>
|
||||
|
||||
#include <wx/filedlg.h>
|
||||
|
@ -197,7 +198,6 @@ namespace Automation4 {
|
|||
|
||||
int LuaProgressSink::LuaDisplayOpenDialog(lua_State *L)
|
||||
{
|
||||
ProgressSink *ps = GetObjPointer(L, lua_upvalueindex(1));
|
||||
wxString message(check_wxstring(L, 1));
|
||||
wxString dir(check_wxstring(L, 2));
|
||||
wxString file(check_wxstring(L, 3));
|
||||
|
@ -211,26 +211,24 @@ namespace Automation4 {
|
|||
if (must_exist)
|
||||
flags |= wxFD_FILE_MUST_EXIST;
|
||||
|
||||
wxFileDialog diag(nullptr, message, dir, file, wildcard, flags);
|
||||
if (ps->ShowDialog(&diag) == wxID_CANCEL) {
|
||||
lua_pushnil(L);
|
||||
return 1;
|
||||
}
|
||||
agi::dispatch::Main().Sync([&] {
|
||||
wxFileDialog diag(nullptr, message, dir, file, wildcard, flags);
|
||||
if (diag.ShowModal() == wxID_CANCEL) {
|
||||
lua_pushnil(L);
|
||||
} else if (multiple) {
|
||||
wxArrayString files;
|
||||
diag.GetPaths(files);
|
||||
|
||||
if (multiple) {
|
||||
wxArrayString files;
|
||||
diag.GetPaths(files);
|
||||
|
||||
lua_createtable(L, files.size(), 0);
|
||||
for (size_t i = 0; i < files.size(); ++i) {
|
||||
lua_pushstring(L, files[i].utf8_str());
|
||||
lua_rawseti(L, -2, i + 1);
|
||||
lua_createtable(L, files.size(), 0);
|
||||
for (size_t i = 0; i < files.size(); ++i) {
|
||||
lua_pushstring(L, files[i].utf8_str());
|
||||
lua_rawseti(L, -2, i + 1);
|
||||
}
|
||||
} else {
|
||||
lua_pushstring(L, diag.GetPath().utf8_str());
|
||||
}
|
||||
});
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
lua_pushstring(L, diag.GetPath().utf8_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -247,13 +245,15 @@ namespace Automation4 {
|
|||
if (prompt_overwrite)
|
||||
flags |= wxFD_OVERWRITE_PROMPT;
|
||||
|
||||
wxFileDialog diag(ps->GetParentWindow(), message, dir, file, wildcard, flags);
|
||||
if (ps->ShowDialog(&diag) == wxID_CANCEL) {
|
||||
lua_pushnil(L);
|
||||
return 1;
|
||||
}
|
||||
agi::dispatch::Main().Sync([&] {
|
||||
wxFileDialog diag(ps->GetParentWindow(), message, dir, file, wildcard, flags);
|
||||
if (diag.ShowModal() == wxID_CANCEL) {
|
||||
lua_pushnil(L);
|
||||
} else {
|
||||
lua_pushstring(L, diag.GetPath().utf8_str());
|
||||
}
|
||||
});
|
||||
|
||||
lua_pushstring(L, diag.GetPath().utf8_str());
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue