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

View File

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

View File

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

View File

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

View File

@ -9,10 +9,10 @@
#include "dialog_uploadcfgfile.h"
#include "hgscanner.h"
MainWindow::MainWindow(HGPdtToolDbUserMgr userMgr, QWidget *parent)
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
, m_pdtToolDbuserMgr(userMgr)
, m_pdtToolDbuserMgr(nullptr)
, m_form_mainInterface(nullptr)
, m_top_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_remove(QString)), this, SLOT(on_sane_dev_remove(QString)), 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);
connect(this, SIGNAL(user_event(int)), this, SLOT(on_user_event(int)), Qt::QueuedConnection);
m_top_splitter = new QSplitter(Qt::Horizontal);
m_bot_splitter = new QSplitter(Qt::Horizontal);
@ -53,10 +42,37 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr userMgr, QWidget *parent)
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);
m_pdtToolDbuserMgr = NULL;
delete ui;
}
bool MainWindow::isExitApp()
@ -64,6 +80,16 @@ bool MainWindow::isExitApp()
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)
{
(void)hdev;
@ -109,12 +135,12 @@ std::vector<std::string> MainWindow::getDevices()
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;
hgscanner* hg = new hgscanner(m_handle);
helper = dynamic_cast<hgscanner*>(hg);
func_test_go(L"test-31", L"null", helper);
// ui_helper* helper;
// hgscanner* hg = new hgscanner(m_handle);
// helper = dynamic_cast<hgscanner*>(hg);
// func_test_go(L"test-31", L"null", helper);
}
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()
{
m_splitterCount++;
@ -182,7 +232,6 @@ void MainWindow::on_act_export_triggered()
void MainWindow::on_act_logOut_triggered()
{
HGPdtToolDb_DestroyUserMgr(m_pdtToolDbuserMgr);
m_isLogOut = true;
close();
}
@ -222,6 +271,6 @@ QString MainWindow::getLogInfo(HGResult ret)
void MainWindow::on_act_upload_triggered()
{
// Dialog_uploadCfgFile dlg(m_pdtToolDbuserMgr, this);
//dlg.exec();
Dialog_uploadCfgFile dlg(m_pdtToolDbuserMgr, this);
dlg.exec();
}

View File

@ -12,18 +12,23 @@ namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
{
friend class Dialog_logIn;
Q_OBJECT
public:
MainWindow(HGPdtToolDbUserMgr userMgr, QWidget *parent = nullptr);
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void Init();
void Deinit();
static QString getLogInfo(HGResult ret);
bool isExitApp();
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);
std::vector<std::string> getDevices();
@ -31,10 +36,12 @@ private:
signals:
void sane_dev_arrive(QString devName);
void sane_dev_remove(QString devName);
void user_event(int event);
private slots:
void on_sane_dev_arrive(QString devName);
void on_sane_dev_remove(QString devName);
void on_user_event(int event);
private slots:
void on_act_newDevice_triggered();