调整twainui进度窗口非模态崩溃问题
This commit is contained in:
parent
3397106b7d
commit
d26bc873f9
|
@ -1,5 +1,7 @@
|
|||
#include "dialog_progress_ui.h"
|
||||
#include "ui_dialog_progress_ui.h"
|
||||
#include "lang/app_language.h"
|
||||
#include <QCloseEvent>
|
||||
|
||||
Dialog_progress_ui *Dialog_progress_ui::m_param = nullptr;
|
||||
|
||||
|
@ -7,6 +9,15 @@ Dialog_progress_ui::Dialog_progress_ui(std::function<void (ui_result)> callback,
|
|||
QDialog(parent),
|
||||
ui(new Ui::Dialog_progress_ui)
|
||||
{
|
||||
int cp = lang_get_cur_code_page();
|
||||
if (20127 == cp)
|
||||
m_translator.load(":translation/TwainUI_zh_EN.qm");
|
||||
else
|
||||
m_translator.load(":translation/TwainUI_zh_CN.qm");
|
||||
QCoreApplication::installTranslator(&m_translator);
|
||||
|
||||
setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
|
||||
ui->setupUi(this);
|
||||
|
||||
m_callback = callback;
|
||||
|
@ -19,6 +30,8 @@ Dialog_progress_ui::Dialog_progress_ui(std::function<void (ui_result)> callback,
|
|||
Dialog_progress_ui::~Dialog_progress_ui()
|
||||
{
|
||||
delete ui;
|
||||
|
||||
QCoreApplication::removeTranslator(&m_translator);
|
||||
}
|
||||
|
||||
void Dialog_progress_ui::on_pbtn_cancelScan_clicked()
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define DIALOG_PROGRESS_UI_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <qtranslator.h>
|
||||
#include "twainui.h"
|
||||
|
||||
namespace Ui {
|
||||
|
@ -30,6 +31,7 @@ private:
|
|||
static void FuncNotify(int event, void *msg, int flag);
|
||||
|
||||
private:
|
||||
QTranslator m_translator;
|
||||
Ui::Dialog_progress_ui *ui;
|
||||
|
||||
std::function<void (ui_result)> m_callback;
|
||||
|
|
|
@ -11,9 +11,13 @@ extern bool g_ownApplication;
|
|||
|
||||
int choose_scanner(const std::vector<DEVQUE> &devs)
|
||||
{
|
||||
QWidget* qParent = nullptr;
|
||||
#ifdef HG_CMP_MSC
|
||||
if (!g_ownApplication)
|
||||
g_ownApplication = QMfcApp::pluginInstance(g_hInst);
|
||||
QWinWidget win(nullptr);
|
||||
#else
|
||||
qParent = parent;
|
||||
#endif
|
||||
|
||||
QTranslator translator;
|
||||
|
@ -25,16 +29,10 @@ int choose_scanner(const std::vector<DEVQUE> &devs)
|
|||
QCoreApplication::installTranslator(&translator);
|
||||
|
||||
Dialog_device_select dlg(devs);
|
||||
if (dlg.exec())
|
||||
{
|
||||
dlg.exec();
|
||||
QCoreApplication::removeTranslator(&translator);
|
||||
|
||||
return dlg.getDevId();
|
||||
QCoreApplication::removeTranslator(&translator);
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
QCoreApplication::removeTranslator(&translator);
|
||||
}
|
||||
}
|
||||
|
||||
char *apply_current_config(const char *dev_name, SANE_Handle device, LPSANEAPI api)
|
||||
|
@ -97,27 +95,18 @@ int show_progress_ui(HWND parent, std::function<void (ui_result)> callback, std:
|
|||
#ifdef HG_CMP_MSC
|
||||
if (!g_ownApplication)
|
||||
g_ownApplication = QMfcApp::pluginInstance(g_hInst);
|
||||
QWinWidget win(parent);
|
||||
QWinWidget *win = new QWinWidget(parent);
|
||||
if (nullptr != parent)
|
||||
{
|
||||
win.showCentered();
|
||||
qParent = &win;
|
||||
win->showCentered();
|
||||
qParent = win;
|
||||
}
|
||||
#else
|
||||
qParent = parent;
|
||||
#endif
|
||||
|
||||
QTranslator translator;
|
||||
int cp = lang_get_cur_code_page();
|
||||
if (20127 == cp)
|
||||
translator.load(":translation/TwainUI_zh_EN.qm");
|
||||
else
|
||||
translator.load(":translation/TwainUI_zh_CN.qm");
|
||||
QCoreApplication::installTranslator(&translator);
|
||||
|
||||
Dialog_progress_ui dlg(callback, notify, qParent);
|
||||
dlg.show();
|
||||
QCoreApplication::removeTranslator(&translator);
|
||||
Dialog_progress_ui *dlg = new Dialog_progress_ui(callback, notify, qParent);
|
||||
dlg->show();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue