From f5cfcf38b7a094f9719ffe0f5a1e6a09b3118c4b Mon Sep 17 00:00:00 2001 From: luoliangyi <87842688@qq.com> Date: Wed, 28 Jun 2023 18:14:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3twainui=E9=87=8C=E9=9D=A2?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E9=87=8A=E6=94=BE=E5=90=8E=E9=87=8E=E6=8C=87?= =?UTF-8?q?=E9=92=88=E5=8F=AF=E8=83=BD=E9=80=A0=E6=88=90=E7=9A=84=E9=A3=8E?= =?UTF-8?q?=E9=99=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/twainui/Manager.cpp | 9 ++++----- modules/twainui/Manager.h | 2 +- modules/twainui/dialog_progress_ui.cpp | 13 ++++++------- modules/twainui/dialog_progress_ui.h | 6 ++---- modules/twainui/hg_settingdialog.cpp | 14 +++++--------- modules/twainui/hg_settingdialog.h | 5 ++--- 6 files changed, 20 insertions(+), 29 deletions(-) diff --git a/modules/twainui/Manager.cpp b/modules/twainui/Manager.cpp index 93a688c6..b3314e22 100644 --- a/modules/twainui/Manager.cpp +++ b/modules/twainui/Manager.cpp @@ -79,9 +79,8 @@ int Manager::showSettingUi(bool qt, SANE_Handle device, HWND parent, LPSANEAPI a int Manager::showProgressUi(bool qt, HWND parent, std::function callback, std::function *notify) { m_progressUiparent = parent; - hg_settingdialog *settingDlg = hg_settingdialog::GetSettingDialog(); - if (nullptr != settingDlg) - m_progressUiparent = (HWND)settingDlg->winId(); + if (nullptr != m_settingUi) + m_progressUiparent = (HWND)m_settingUi->winId(); m_progressUiCallback = callback; m_notify = notify; @@ -237,7 +236,7 @@ void Manager::on_createSettingUi(bool qt) }; if (m_settingUi == nullptr) - m_settingUi = new hg_settingdialog(m_device, &m_api, m_with_scan, m_devName.c_str(), close_prog, qParent); + m_settingUi = new hg_settingdialog(this, m_device, &m_api, m_with_scan, m_devName.c_str(), close_prog, qParent); m_settingUi->setModal(true); m_settingUi->show(); } @@ -267,7 +266,7 @@ void Manager::on_createProgressUi(bool qt) m_progressUiCallback = std::function(); }; if (m_progressUi == nullptr) - m_progressUi = new Dialog_progress_ui(close_prog, m_notify, qParent); + m_progressUi = new Dialog_progress_ui(this, close_prog, m_notify, qParent); m_progressUi->setModal(true); m_progressUi->show(); diff --git a/modules/twainui/Manager.h b/modules/twainui/Manager.h index 3522480a..52a89cf4 100644 --- a/modules/twainui/Manager.h +++ b/modules/twainui/Manager.h @@ -56,7 +56,7 @@ private slots: void on_deleteMessageBoxUi(); void on_deleteManager(); -private: +public: QTranslator m_translator; QTranslator m_translator_qt; int m_langCode; diff --git a/modules/twainui/dialog_progress_ui.cpp b/modules/twainui/dialog_progress_ui.cpp index db5c9536..0510abcb 100644 --- a/modules/twainui/dialog_progress_ui.cpp +++ b/modules/twainui/dialog_progress_ui.cpp @@ -1,3 +1,4 @@ +#include "Manager.h" #include "dialog_progress_ui.h" #include "ui_dialog_progress_ui.h" #include "lang/app_language.h" @@ -6,11 +7,10 @@ #include #include -Dialog_progress_ui *Dialog_progress_ui::m_param = nullptr; - +extern Manager* g_manager; static int imageRecivedCount = 0; -Dialog_progress_ui::Dialog_progress_ui(std::function callback, std::function *notify, QWidget *parent) : +Dialog_progress_ui::Dialog_progress_ui(class Manager *mgr, std::function callback, std::function *notify, QWidget *parent) : QDialog(parent), ui(new Ui::Dialog_progress_ui) , m_isScanning(false) @@ -30,11 +30,10 @@ Dialog_progress_ui::Dialog_progress_ui(std::function callback, ui->label_totalImgRecived->setVisible(false); ui->lineEdit_imgRecived->setText(QString::number(imageRecivedCount)); + m_mgr = mgr; m_callback = callback; *notify = FuncNotify; - m_param = this; - m_timer = new QTimer(this); connect(this, SIGNAL(scan_status(QString,bool)), this, SLOT(on_scan_status(QString,bool)), Qt::QueuedConnection); @@ -44,7 +43,7 @@ Dialog_progress_ui::Dialog_progress_ui(std::function callback, Dialog_progress_ui::~Dialog_progress_ui() { - m_param = nullptr; + m_mgr->m_progressUi = nullptr; imageRecivedCount = 0; @@ -120,7 +119,7 @@ void Dialog_progress_ui::on_image_recived() void Dialog_progress_ui::FuncNotify(int event, void *msg, int flag) { - Dialog_progress_ui *p = (Dialog_progress_ui *)m_param; + Dialog_progress_ui *p = (Dialog_progress_ui *)g_manager->m_progressUi; if (nullptr == p) { return; diff --git a/modules/twainui/dialog_progress_ui.h b/modules/twainui/dialog_progress_ui.h index 59dc89c2..af34edb7 100644 --- a/modules/twainui/dialog_progress_ui.h +++ b/modules/twainui/dialog_progress_ui.h @@ -15,15 +15,12 @@ class Dialog_progress_ui : public QDialog bool quit_ = false; public: - explicit Dialog_progress_ui(std::function callback, std::function *notify, QWidget *parent = nullptr); + explicit Dialog_progress_ui(class Manager *mgr, std::function callback, std::function *notify, QWidget *parent = nullptr); ~Dialog_progress_ui(); protected: void keyPressEvent(QKeyEvent *e) override; -private: - static Dialog_progress_ui *m_param; - signals: void scan_status(QString finishInfo, bool isScanning); void scan_finish(int flag, QString finishInfo); @@ -48,6 +45,7 @@ public: private: Ui::Dialog_progress_ui *ui; + class Manager *m_mgr; std::function m_callback; QTimer *m_timer; bool m_isScanning; diff --git a/modules/twainui/hg_settingdialog.cpp b/modules/twainui/hg_settingdialog.cpp index 1443604f..15575fe0 100644 --- a/modules/twainui/hg_settingdialog.cpp +++ b/modules/twainui/hg_settingdialog.cpp @@ -1,3 +1,4 @@ +#include "Manager.h" #include "hg_settingdialog.h" #include #include @@ -15,10 +16,10 @@ #include "dialog_device_scan.h" #include "app_cfg.h" #include "base/HGBase64.h" -hg_settingdialog * 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, +hg_settingdialog::hg_settingdialog(class Manager *mgr, SANE_Handle handle, const SANEAPI* saneApi, bool showScan, const char* devName, std::function callback, QWidget *parent) : QDialog(parent) , save_(false) @@ -29,7 +30,7 @@ hg_settingdialog::hg_settingdialog(SANE_Handle handle, const SANEAPI* saneApi, b , m_devName(devName) , m_callback(callback) { - hg_setting_ui_ = this; + m_mgr = mgr; m_langCode = lang_get_cur_code_page(); if (20127 == m_langCode) { @@ -134,17 +135,12 @@ hg_settingdialog::~hg_settingdialog() cur_scheme_->release(); cur_cfg_->release(); - hg_setting_ui_ = NULL; + m_mgr->m_settingUi = NULL; if(!quit_) m_callback(UI_RESULT_CLOSE_SETTING); } -hg_settingdialog *hg_settingdialog::GetSettingDialog() -{ - return hg_setting_ui_; -} - void hg_settingdialog::initUi() { updateOpt(); diff --git a/modules/twainui/hg_settingdialog.h b/modules/twainui/hg_settingdialog.h index 6c81975e..d01f39d4 100644 --- a/modules/twainui/hg_settingdialog.h +++ b/modules/twainui/hg_settingdialog.h @@ -47,12 +47,11 @@ class hg_settingdialog : public QDialog }; public: - explicit hg_settingdialog(SANE_Handle handle, const SANEAPI* saneApi, bool showScan, const char* devName, + explicit hg_settingdialog(class Manager *mgr, SANE_Handle handle, const SANEAPI* saneApi, bool showScan, const char* devName, std::function callback, QWidget *parent = nullptr); ~hg_settingdialog(); public: - static hg_settingdialog *GetSettingDialog(); void initUi(); void updateOpt(); void createUI(); @@ -82,7 +81,7 @@ public: private: gb::sane_config_schm* m_scheme; - static hg_settingdialog *hg_setting_ui_; + class Manager *m_mgr; SANEAPI m_saneAPI; SANE_Handle m_devHandle; bool m_showScan;