This commit is contained in:
luoliangyi 2022-12-15 17:46:49 +08:00
commit 96ba574f68
6 changed files with 96 additions and 48 deletions

View File

@ -3,10 +3,10 @@
#include <QMessageBox> #include <QMessageBox>
#include "mainwindow.h" #include "mainwindow.h"
Dialog_logIn::Dialog_logIn(QWidget *parent) : Dialog_logIn::Dialog_logIn(class MainWindow *mainwindow) :
QDialog(parent), QDialog(nullptr),
m_pdtToolDbuserMgr(nullptr),
ui(new Ui::Dialog_logIn) ui(new Ui::Dialog_logIn)
, m_mainwindow(mainwindow)
{ {
ui->setupUi(this); ui->setupUi(this);
@ -36,11 +36,6 @@ Dialog_logIn::~Dialog_logIn()
delete ui; delete ui;
} }
HGPdtToolDbUserMgr Dialog_logIn::GetUserMgr()
{
return m_pdtToolDbuserMgr;
}
void Dialog_logIn::mousePressEvent(QMouseEvent *event) void Dialog_logIn::mousePressEvent(QMouseEvent *event)
{ {
if(event->button()==Qt::LeftButton) if(event->button()==Qt::LeftButton)
@ -74,9 +69,9 @@ void Dialog_logIn::on_pbtn_login_clicked()
QString host = ui->lineEdit_host->text(); QString host = ui->lineEdit_host->text();
QString port = ui->lineEdit_port->text(); QString port = ui->lineEdit_port->text();
HGResult ret = HGPdtToolDb_CreateUserMgr(host.toStdString().c_str(), port.toInt(), HGResult ret = HGPdtToolDb_CreateUserMgr(host.toStdString().c_str(), port.toInt(), account.toStdString().c_str(), password.toStdString().c_str(),
account.toStdString().c_str(), password.toStdString().c_str(), &m_pdtToolDbuserMgr); MainWindow::PdtToolDbUserEventFunc, m_mainwindow, &m_mainwindow->m_pdtToolDbuserMgr);
if (NULL != m_pdtToolDbuserMgr) if (NULL != m_mainwindow->m_pdtToolDbuserMgr)
{ {
accept(); accept();
} }

View File

@ -13,11 +13,9 @@ class Dialog_logIn : public QDialog
Q_OBJECT Q_OBJECT
public: public:
explicit Dialog_logIn(QWidget *parent = nullptr); explicit Dialog_logIn(class MainWindow *mainwindow);
~Dialog_logIn(); ~Dialog_logIn();
HGPdtToolDbUserMgr GetUserMgr();
void mousePressEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event);
@ -35,8 +33,8 @@ private slots:
private: private:
Ui::Dialog_logIn *ui; Ui::Dialog_logIn *ui;
class MainWindow *m_mainwindow;
HGPdtToolDbUserMgr m_pdtToolDbuserMgr;
QPoint m_startPos; QPoint m_startPos;
QPoint m_endPos; QPoint m_endPos;
bool m_leftMousePressed; bool m_leftMousePressed;

View File

@ -17,7 +17,7 @@ Form_mainInterface::Form_mainInterface(QWidget *parent)
ui->stackedWidget->addWidget(m_textTips); ui->stackedWidget->addWidget(m_textTips);
ui->stackedWidget->addWidget(m_view); ui->stackedWidget->addWidget(m_view);
QString path("../../doc/newconfig.json"); QString path("../../doc/config.json");
AnalysisJson analysisJson(path); AnalysisJson analysisJson(path);
std::vector<AnalysisJson::json_node> list_jsonNode = analysisJson.GetNode(); std::vector<AnalysisJson::json_node> list_jsonNode = analysisJson.GetNode();

View File

@ -15,16 +15,15 @@ int main(int argc, char *argv[])
while (1) while (1)
{ {
Dialog_logIn login; MainWindow w;
Dialog_logIn login(&w);
if (login.exec()) if (login.exec())
{ {
HGPdtToolDbUserMgr userMgr = login.GetUserMgr(); w.Init();
assert(nullptr != userMgr);
MainWindow w(userMgr);
w.showMaximized(); w.showMaximized();
a.exec(); a.exec();
w.Deinit();
if (w.isExitApp()) if (w.isExitApp())
{ {
break; break;

View File

@ -9,10 +9,10 @@
#include "dialog_uploadcfgfile.h" #include "dialog_uploadcfgfile.h"
#include "hgscanner.h" #include "hgscanner.h"
MainWindow::MainWindow(HGPdtToolDbUserMgr userMgr, QWidget *parent) MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
, ui(new Ui::MainWindow) , ui(new Ui::MainWindow)
, m_pdtToolDbuserMgr(userMgr) , m_pdtToolDbuserMgr(nullptr)
, m_form_mainInterface(nullptr) , m_form_mainInterface(nullptr)
, m_top_splitter(nullptr) , m_top_splitter(nullptr)
, m_bot_splitter(nullptr) , m_bot_splitter(nullptr)
@ -25,18 +25,7 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr userMgr, QWidget *parent)
connect(this, SIGNAL(sane_dev_arrive(QString)), this, SLOT(on_sane_dev_arrive(QString)), Qt::QueuedConnection); connect(this, SIGNAL(sane_dev_arrive(QString)), this, SLOT(on_sane_dev_arrive(QString)), Qt::QueuedConnection);
connect(this, SIGNAL(sane_dev_remove(QString)), this, SLOT(on_sane_dev_remove(QString)), Qt::QueuedConnection); connect(this, SIGNAL(sane_dev_remove(QString)), this, SLOT(on_sane_dev_remove(QString)), Qt::QueuedConnection);
connect(this, SIGNAL(user_event(int)), this, SLOT(on_user_event(int)), Qt::QueuedConnection);
SANE_Int v = 0;
sane_init_ex(&v, sane_ex_callback, this);
HGUInt userType = 0;
HGPdtToolDb_GetUserType(m_pdtToolDbuserMgr, &userType);
if (userType == HGPDTTOOLDB_USERTYPE_NORMAL)
ui->act_manage->setVisible(false);
HGChar userName[128];
HGPdtToolDb_GetUserName(m_pdtToolDbuserMgr, userName, 128);
setWindowTitle(userName);
m_top_splitter = new QSplitter(Qt::Horizontal); m_top_splitter = new QSplitter(Qt::Horizontal);
m_bot_splitter = new QSplitter(Qt::Horizontal); m_bot_splitter = new QSplitter(Qt::Horizontal);
@ -53,10 +42,37 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr userMgr, QWidget *parent)
MainWindow::~MainWindow() MainWindow::~MainWindow()
{ {
delete ui;
}
void MainWindow::Init()
{
assert(nullptr != m_pdtToolDbuserMgr);
HGUInt userType = 0;
HGPdtToolDb_GetUserType(m_pdtToolDbuserMgr, &userType);
if (userType == HGPDTTOOLDB_USERTYPE_NORMAL)
ui->act_manage->setVisible(false);
HGChar userName[128];
HGPdtToolDb_GetUserName(m_pdtToolDbuserMgr, userName, 128);
setWindowTitle(userName);
SANE_Int v = 0;
sane_init_ex(&v, sane_ex_callback, this);
}
void MainWindow::Deinit()
{
// if (nullptr != m_handle)
// {
// sane_close(m_handle);
// m_handle = nullptr;
// }
// sane_exit();
HGPdtToolDb_DestroyUserMgr(m_pdtToolDbuserMgr); HGPdtToolDb_DestroyUserMgr(m_pdtToolDbuserMgr);
m_pdtToolDbuserMgr = NULL; m_pdtToolDbuserMgr = NULL;
delete ui;
} }
bool MainWindow::isExitApp() bool MainWindow::isExitApp()
@ -64,6 +80,16 @@ bool MainWindow::isExitApp()
return !m_isLogOut; return !m_isLogOut;
} }
void HGAPI MainWindow::PdtToolDbUserEventFunc(HGPdtToolDbUserMgr userMgr, HGUInt event, HGPointer param)
{
MainWindow *p = (MainWindow *)param;
if (0 != event)
{
emit p->user_event(event);
}
}
int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigned int *len, void *param) int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigned int *len, void *param)
{ {
(void)hdev; (void)hdev;
@ -109,12 +135,12 @@ std::vector<std::string> MainWindow::getDevices()
void MainWindow::on_sane_dev_arrive(QString devName) void MainWindow::on_sane_dev_arrive(QString devName)
{ {
SANE_Status ret = sane_open(devName.toStdString().c_str(), &m_handle); // SANE_Status ret = sane_open(devName.toStdString().c_str(), &m_handle);
ui_helper* helper; // ui_helper* helper;
hgscanner* hg = new hgscanner(m_handle); // hgscanner* hg = new hgscanner(m_handle);
helper = dynamic_cast<hgscanner*>(hg); // helper = dynamic_cast<hgscanner*>(hg);
func_test_go(L"test-31", L"null", helper); // func_test_go(L"test-31", L"null", helper);
} }
void MainWindow::on_sane_dev_remove(QString devName) void MainWindow::on_sane_dev_remove(QString devName)
@ -122,6 +148,30 @@ void MainWindow::on_sane_dev_remove(QString devName)
} }
void MainWindow::on_user_event(int event)
{
QString tips;
switch (event)
{
case 1:
tips = tr("Account login elsewhere");
break;
case 2:
tips = tr("Network connection lost");
break;
case 3:
tips = tr("You have been forced offline by the administrator account");
break;
default:
break;
}
QMessageBox::information(this, (tr("tips")), tips);
m_isLogOut = true;
close();
}
void MainWindow::on_act_newDevice_triggered() void MainWindow::on_act_newDevice_triggered()
{ {
m_splitterCount++; m_splitterCount++;
@ -182,7 +232,6 @@ void MainWindow::on_act_export_triggered()
void MainWindow::on_act_logOut_triggered() void MainWindow::on_act_logOut_triggered()
{ {
HGPdtToolDb_DestroyUserMgr(m_pdtToolDbuserMgr);
m_isLogOut = true; m_isLogOut = true;
close(); close();
} }
@ -222,6 +271,6 @@ QString MainWindow::getLogInfo(HGResult ret)
void MainWindow::on_act_upload_triggered() void MainWindow::on_act_upload_triggered()
{ {
// Dialog_uploadCfgFile dlg(m_pdtToolDbuserMgr, this); Dialog_uploadCfgFile dlg(m_pdtToolDbuserMgr, this);
//dlg.exec(); dlg.exec();
} }

View File

@ -13,17 +13,22 @@ QT_END_NAMESPACE
class MainWindow : public QMainWindow class MainWindow : public QMainWindow
{ {
friend class Dialog_logIn;
Q_OBJECT Q_OBJECT
public: public:
MainWindow(HGPdtToolDbUserMgr userMgr, QWidget *parent = nullptr); MainWindow(QWidget *parent = nullptr);
~MainWindow(); ~MainWindow();
void Init();
void Deinit();
static QString getLogInfo(HGResult ret); static QString getLogInfo(HGResult ret);
bool isExitApp(); bool isExitApp();
private: private:
static void HGAPI PdtToolDbUserEventFunc(HGPdtToolDbUserMgr userMgr, HGUInt event, HGPointer param);
static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param); static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param);
std::vector<std::string> getDevices(); std::vector<std::string> getDevices();
@ -31,10 +36,12 @@ private:
signals: signals:
void sane_dev_arrive(QString devName); void sane_dev_arrive(QString devName);
void sane_dev_remove(QString devName); void sane_dev_remove(QString devName);
void user_event(int event);
private slots: private slots:
void on_sane_dev_arrive(QString devName); void on_sane_dev_arrive(QString devName);
void on_sane_dev_remove(QString devName); void on_sane_dev_remove(QString devName);
void on_user_event(int event);
private slots: private slots:
void on_act_newDevice_triggered(); void on_act_newDevice_triggered();