twainui调整settingui为非阻塞模态窗口

This commit is contained in:
yangjiaxuan 2023-05-08 15:35:46 +08:00
parent f033330641
commit b9fbebff98
3 changed files with 17 additions and 11 deletions

View File

@ -1,5 +1,4 @@
#include "hg_settingdialog.h"
#include <QDebug>
#include <QLatin1String>
#include "cutpapertool.h"
@ -13,7 +12,7 @@
#include <typeinfo>
#include "device_menu.h"
#include "dialog_device_scan.h"
hg_settingdialog * hg_setting_ui_ =NULL;
std::string hg_settingdialog::property_combox_data_type_ = "combox_value_type";
hg_settingdialog::hg_settingdialog(SANE_Handle handle, const SANEAPI* saneApi, bool showScan, const char* devName,
@ -93,7 +92,7 @@ hg_settingdialog::hg_settingdialog(SANE_Handle handle, const SANEAPI* saneApi, b
m_gammaData.table[i] = i & 0x0ff;
memcpy(&m_saneAPI, saneApi, sizeof(SANEAPI));
m_closeButton = closeButtonCancel;
m_closeButton = closeButtonNormal;
initUi();
on_current_scheme_changed();
@ -108,6 +107,7 @@ hg_settingdialog::~hg_settingdialog()
cur_scheme_->release();
cur_cfg_->release();
hg_setting_ui_ = NULL;
}
void hg_settingdialog::initUi()
@ -1469,7 +1469,7 @@ void hg_settingdialog::slot_buttonOkClicked()
void hg_settingdialog::slot_buttonCancelClicked()
{
m_closeButton = closeButtonCancel;
m_callback(UI_RESULT_CLOSE_CANCEL);
m_callback(UI_RESULT_CLOSE_NORMAL);
close();
}
@ -1544,6 +1544,11 @@ void hg_settingdialog::closeEvent(QCloseEvent* e)
cancel_setting();
}
if (closeButtonNormal == m_closeButton)
{
m_callback(UI_RESULT_CLOSE_NORMAL);
}
e->accept();
}

View File

@ -67,6 +67,7 @@ public:
{
closeButtonOk = 0,
closeButtonCancel,
closeButtonNormal,
closeButtonScan,
};

View File

@ -11,7 +11,7 @@
extern HINSTANCE g_hInst;
extern bool g_ownApplication;
#endif
extern hg_settingdialog * hg_setting_ui_;
int choose_scanner(const std::vector<DEVQUEUI> &devs)
{
QWidget* qParent = nullptr;
@ -84,7 +84,6 @@ void twain_ui_free(void *buf)
}
}
hg_settingdialog *hg_setting_ui = nullptr;
int show_setting_ui(SANE_Handle device, HWND parent, LPSANEAPI api, const char *devName, bool with_scan, std::function<void(ui_result)> callback)
{
if (nullptr == api || nullptr == device)
@ -104,9 +103,9 @@ int show_setting_ui(SANE_Handle device, HWND parent, LPSANEAPI api, const char *
qParent = parent;
#endif
hg_setting_ui = new hg_settingdialog(device, api, with_scan, devName, callback, qParent);
hg_setting_ui->show();
hg_setting_ui_ = new hg_settingdialog(device, api, with_scan, devName, callback, qParent);
hg_setting_ui_->setModal(true);
hg_setting_ui_->show();
return 0;
}
@ -127,12 +126,13 @@ int show_progress_ui(HWND parent, std::function<void (ui_result)> callback, std:
#endif
if(nullptr != hg_setting_ui)
if(nullptr != hg_setting_ui_)
{
qParent = hg_setting_ui;
qParent = hg_setting_ui_;
}
Dialog_progress_ui *dlg = new Dialog_progress_ui(callback, notify, qParent);
dlg->setModal(true);
dlg->show();
return 0;