调整界面流程

This commit is contained in:
yangjiaxuan 2022-12-23 18:32:57 +08:00
parent d4433e1d0b
commit cac3f6cabb
8 changed files with 326 additions and 203 deletions

View File

@ -6,61 +6,69 @@
<message> <message>
<location filename="dialog_inputserialnum.ui" line="14"/> <location filename="dialog_inputserialnum.ui" line="14"/>
<source>Dialog</source> <source>Dialog</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.ui" line="35"/>
<source>Input SN:</source> <source>Input SN:</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.ui" line="82"/>
<source>Select devType:</source> <source>Select devType:</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.ui" line="96"/> <location filename="dialog_inputserialnum.ui" line="59"/>
<source>G100</source> <source>G100</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.ui" line="101"/> <location filename="dialog_inputserialnum.ui" line="64"/>
<source>G200</source> <source>G200</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.ui" line="106"/> <location filename="dialog_inputserialnum.ui" line="69"/>
<source>G300</source> <source>G300</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.ui" line="111"/> <location filename="dialog_inputserialnum.ui" line="74"/>
<source>G400</source> <source>G400</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.ui" line="149"/> <location filename="dialog_inputserialnum.ui" line="88"/>
<source>devType :</source>
<translation></translation>
</message>
<message>
<location filename="dialog_inputserialnum.ui" line="101"/>
<source>serialNum:</source>
<translation></translation>
</message>
<message>
<location filename="dialog_inputserialnum.ui" line="26"/>
<source>OK</source> <source>OK</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.ui" line="156"/> <location filename="dialog_inputserialnum.ui" line="39"/>
<source>Cancel</source> <source>Cancel</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="43"/> <location filename="dialog_inputserialnum.cpp" line="47"/>
<location filename="dialog_inputserialnum.cpp" line="49"/> <location filename="dialog_inputserialnum.cpp" line="53"/>
<source>tips</source> <source>tips</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="43"/> <location filename="dialog_inputserialnum.cpp" line="47"/>
<source>Serial num is empty</source> <source>Serial num is empty</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="49"/> <location filename="dialog_inputserialnum.cpp" line="53"/>
<source>The device is testing</source> <source>The device is testing</source>
<translation></translation> <translation></translation>
</message> </message>
@ -428,47 +436,62 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="form_maininterface.cpp" line="71"/> <location filename="form_maininterface.cpp" line="75"/>
<source>Device has connected</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="77"/>
<source>Device hasnot connected</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="78"/>
<source>Device type:</source> <source>Device type:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="form_maininterface.cpp" line="71"/> <location filename="form_maininterface.cpp" line="78"/>
<source> SerialNum:</source> <source> SerialNum:</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="form_maininterface.cpp" line="185"/> <location filename="form_maininterface.cpp" line="78"/>
<source> connect status:</source>
<translation> </translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="180"/>
<source>ID</source> <source>ID</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="form_maininterface.cpp" line="185"/> <location filename="form_maininterface.cpp" line="180"/>
<source>Test items</source> <source>Test items</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="form_maininterface.cpp" line="185"/> <location filename="form_maininterface.cpp" line="180"/>
<source>status</source> <source>status</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="form_maininterface.cpp" line="272"/> <location filename="form_maininterface.cpp" line="323"/>
<source>not test</source> <source>not test</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="form_maininterface.cpp" line="272"/> <location filename="form_maininterface.cpp" line="323"/>
<source>not pass</source> <source>not pass</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="form_maininterface.cpp" line="272"/> <location filename="form_maininterface.cpp" line="323"/>
<source>not support</source> <source>not support</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="form_maininterface.cpp" line="272"/> <location filename="form_maininterface.cpp" line="323"/>
<source>pass</source> <source>pass</source>
<translation></translation> <translation></translation>
</message> </message>
@ -534,7 +557,7 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="284"/> <location filename="mainwindow.cpp" line="330"/>
<source>Account login elsewhere</source> <source>Account login elsewhere</source>
<translation></translation> <translation></translation>
</message> </message>
@ -543,76 +566,94 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="287"/> <location filename="mainwindow.cpp" line="333"/>
<source>You have been forced offline by the administrator account</source> <source>You have been forced offline by the administrator account</source>
<translation>线</translation> <translation>线</translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="290"/> <location filename="mainwindow.cpp" line="336"/>
<source>Data base error</source> <source>Data base error</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="239"/> <location filename="mainwindow.cpp" line="279"/>
<location filename="mainwindow.cpp" line="259"/> <location filename="mainwindow.cpp" line="300"/>
<location filename="mainwindow.cpp" line="298"/>
<location filename="mainwindow.cpp" line="316"/> <location filename="mainwindow.cpp" line="316"/>
<location filename="mainwindow.cpp" line="344"/>
<location filename="mainwindow.cpp" line="362"/>
<location filename="mainwindow.cpp" line="387"/>
<location filename="mainwindow.cpp" line="391"/>
<source>tips</source> <source>tips</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="240"/> <location filename="mainwindow.cpp" line="280"/>
<source>Are you sure to connect the new device</source> <source>Are you sure to connect the new device</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="242"/> <location filename="mainwindow.cpp" line="282"/>
<source>yes</source> <source>yes</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="243"/> <location filename="mainwindow.cpp" line="283"/>
<source>no</source> <source>no</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="259"/> <location filename="mainwindow.cpp" line="300"/>
<location filename="mainwindow.cpp" line="316"/> <location filename="mainwindow.cpp" line="362"/>
<source>cannot create more table</source> <source>cannot create more table</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="336"/> <location filename="mainwindow.cpp" line="316"/>
<source>The device has disconnected</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="382"/>
<source>save</source> <source>save</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="336"/> <location filename="mainwindow.cpp" line="382"/>
<source>xls(*.xls)</source> <source>xls(*.xls)</source>
<translation>xls表格(*.xls)</translation> <translation>xls表格(*.xls)</translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="360"/> <location filename="mainwindow.cpp" line="387"/>
<source>export succeed</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="391"/>
<source>export failed</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="413"/>
<source>Illegal user</source> <source>Illegal user</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="364"/> <location filename="mainwindow.cpp" line="417"/>
<source>Wrong password</source> <source>Wrong password</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="368"/> <location filename="mainwindow.cpp" line="421"/>
<source>Database error</source> <source>Database error</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="372"/> <location filename="mainwindow.cpp" line="425"/>
<source>connect error</source> <source>connect error</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainwindow.cpp" line="376"/> <location filename="mainwindow.cpp" line="429"/>
<source>Failed</source> <source>Failed</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -14,11 +14,15 @@ Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, const QS
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
ui->lineEdit_sn->setValidator(new QRegExpValidator(QRegExp("[a-zA-Z0-9]+$"))); ui->lineEdit_sn->setValidator(new QRegExpValidator(QRegExp("[a-zA-Z0-9]+$")));
ui->lineEdit_sn->setText(serialNum); ui->lineEdit_sn->setText(m_serialNum);
if (devType.isEmpty()) if (m_devType.isEmpty() || m_serialNum.isEmpty())
ui->cbox_devType->setCurrentIndex(0); ui->cbox_devType->setCurrentIndex(0);
else else
{
ui->cbox_devType->setCurrentText(devType); ui->cbox_devType->setCurrentText(devType);
ui->lineEdit_sn->setEnabled(false);
ui->cbox_devType->setEnabled(false);
}
} }
Dialog_InputSerialNum::~Dialog_InputSerialNum() Dialog_InputSerialNum::~Dialog_InputSerialNum()

View File

@ -6,85 +6,48 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>413</width> <width>474</width>
<height>175</height> <height>206</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Dialog</string> <string>Dialog</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <widget class="QPushButton" name="pbtn_ok">
<item> <property name="geometry">
<layout class="QHBoxLayout" name="horizontalLayout"> <rect>
<item> <x>210</x>
<spacer name="horizontalSpacer"> <y>150</y>
<property name="orientation"> <width>75</width>
<enum>Qt::Horizontal</enum> <height>23</height>
</rect>
</property> </property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_sn">
<property name="text"> <property name="text">
<string>Input SN:</string> <string>OK</string>
</property> </property>
</widget> </widget>
</item> <widget class="QPushButton" name="pbtn_cancel">
<item> <property name="geometry">
<widget class="QLineEdit" name="lineEdit_sn"> <rect>
<property name="minimumSize"> <x>330</x>
<size> <y>150</y>
<width>130</width> <width>75</width>
<height>0</height> <height>23</height>
</size> </rect>
</property> </property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_type">
<property name="text"> <property name="text">
<string>Select devType:</string> <string>Cancel</string>
</property> </property>
</widget> </widget>
</item>
<item>
<widget class="QComboBox" name="cbox_devType"> <widget class="QComboBox" name="cbox_devType">
<property name="geometry">
<rect>
<x>190</x>
<y>80</y>
<width>150</width>
<height>20</height>
</rect>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>130</width> <width>130</width>
@ -112,54 +75,48 @@
</property> </property>
</item> </item>
</widget> </widget>
</item> <widget class="QLabel" name="label_type">
<item> <property name="geometry">
<spacer name="horizontalSpacer_3"> <rect>
<property name="orientation"> <x>120</x>
<enum>Qt::Horizontal</enum> <y>80</y>
<width>61</width>
<height>16</height>
</rect>
</property> </property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pbtn_ok">
<property name="text"> <property name="text">
<string>OK</string> <string>devType :</string>
</property> </property>
</widget> </widget>
</item> <widget class="QLabel" name="label_sn">
<item> <property name="geometry">
<widget class="QPushButton" name="pbtn_cancel"> <rect>
<x>123</x>
<y>30</y>
<width>61</width>
<height>20</height>
</rect>
</property>
<property name="text"> <property name="text">
<string>Cancel</string> <string>serialNum:</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_sn">
<property name="geometry">
<rect>
<x>190</x>
<y>30</y>
<width>150</width>
<height>20</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>130</width>
<height>0</height>
</size>
</property> </property>
</widget> </widget>
</item>
</layout>
</item>
</layout>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

View File

@ -56,7 +56,7 @@ static const RELA Rela[] = {
}; };
Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle handle, HGPdtToolDbUserMgr pdtToolDbuserMgr, HGPdtToolDbDevice pdtToolDbDevice, Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle handle, HGPdtToolDbUserMgr pdtToolDbuserMgr, HGPdtToolDbDevice pdtToolDbDevice,
const QString &serialNum, const QString &devType) const QString &serialNum, const QString &devType, const QString &devName, const QString &devFwNum)
: QWidget(mainwnd) : QWidget(mainwnd)
, ui(new Ui::Form_mainInterface) , ui(new Ui::Form_mainInterface)
, m_mainwnd(mainwnd) , m_mainwnd(mainwnd)
@ -65,22 +65,36 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle ha
, m_pdtToolDbDevice(pdtToolDbDevice) , m_pdtToolDbDevice(pdtToolDbDevice)
, m_serialNum(serialNum) , m_serialNum(serialNum)
, m_devType(devType) , m_devType(devType)
, m_devName(devName)
, m_devFwNum(devFwNum)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->label_sn->setText(tr("Device type:") + m_devType + tr(" SerialNum:") + m_serialNum); QString str;
this->setMinimumWidth(400); if (m_handle)
str = tr("Device has connected");
else
str = tr("Device hasnot connected");
ui->label_sn->setText(tr("Device type:") + m_devType + tr(" SerialNum:") + m_serialNum + tr(" connect status:") + str);
setMinimumWidth(500);
ui->tableWidget->setMinimumWidth(300);
ui->tableWidget->setMaximumWidth(300);
m_textTips = new Form_textTips(); m_textTips = new Form_textTips();
m_view = new HGImgView(); m_view = new HGImgView();
ui->stackedWidget->addWidget(m_textTips); ui->stackedWidget->addWidget(m_textTips);
ui->stackedWidget->addWidget(m_view); ui->stackedWidget->addWidget(m_view);
initTableWidgetUi(); initTableWidgetUi();
HGPdtToolDb_SetDeviceType(m_pdtToolDbDevice, m_devType.toStdString().c_str());
HGPdtToolDb_SetDeviceVersion(m_pdtToolDbDevice, m_devFwNum.toStdString().c_str());
HGPdtToolDb_SetDeviceName(m_pdtToolDbDevice, m_devName.toStdString().c_str());
} }
Form_mainInterface::~Form_mainInterface() Form_mainInterface::~Form_mainInterface()
{ {
//sane_close(m_handle); sane_close(m_handle);
HGPdtToolDb_CloseDevice(m_pdtToolDbDevice); HGPdtToolDb_CloseDevice(m_pdtToolDbDevice);
delete ui; delete ui;
@ -91,6 +105,11 @@ QString Form_mainInterface::getSn()
return m_serialNum; return m_serialNum;
} }
QString Form_mainInterface::getDevName()
{
return m_devName;
}
void Form_mainInterface::paintEvent(QPaintEvent *event) void Form_mainInterface::paintEvent(QPaintEvent *event)
{ {
(void)event; (void)event;
@ -189,6 +208,14 @@ void Form_mainInterface::initTableWidgetUi()
{ {
AnalysisJson analysisJson(QString::fromStdString(cfgPath)); AnalysisJson analysisJson(QString::fromStdString(cfgPath));
std::map<HGUInt, bool> dbEntryItems;
for (int i = HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH; i <= HGPDTTOOLDB_ENTRYNAME_SCANNING_SENSOR; ++i)
dbEntryItems[i] = false;
for (int i = HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE; i <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION; ++i)
dbEntryItems[i] = false;
for (int i = HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_1; i <= HGPDTTOOLDB_ENTRYNAME_CLEAR_ROLLER_COUNT; ++i)
dbEntryItems[i] = false;
std::vector<AnalysisJson::json_node> list_jsonNode = analysisJson.GetNode(); std::vector<AnalysisJson::json_node> list_jsonNode = analysisJson.GetNode();
int count = list_jsonNode.size(); int count = list_jsonNode.size();
ui->tableWidget->setRowCount(count); ui->tableWidget->setRowCount(count);
@ -219,12 +246,47 @@ void Form_mainInterface::initTableWidgetUi()
{ {
ui->tableWidget->item(i, 2)->setBackgroundColor(QColor(0,255,0)); ui->tableWidget->item(i, 2)->setBackgroundColor(QColor(0,255,0));
} }
HGUInt entry = getTestItem(node.title);
std::map<HGUInt, bool>::iterator iter;
for (iter = dbEntryItems.begin(); iter != dbEntryItems.end(); ++iter)
{
if (entry == iter->first)
{
iter->second = true;
break;
}
}
}
std::map<HGUInt, bool>::iterator iter;
for (iter = dbEntryItems.begin(); iter != dbEntryItems.end(); ++iter)
{
if (!iter->second)
{
HGPdtToolDb_SetDeviceEntryStatus(m_pdtToolDbDevice, iter->first, HGPDTTOOLDB_ENTRYSTATUS_NOTSUPP);
}
} }
ui->tableWidget->selectRow(0); ui->tableWidget->selectRow(0);
} }
} }
HGUInt Form_mainInterface::getTestItem(const QString &title)
{
HGUInt entry = 0;
for (int i = 0; i < sizeof(Rela) / sizeof(RELA); ++i)
{
if (0 == wcscmp(title.toStdWString().c_str(), Rela[i].title))
{
entry = Rela[i].entryName;
break;
}
}
return entry;
}
HGUInt Form_mainInterface::getTestItemStatus(const QString &title) HGUInt Form_mainInterface::getTestItemStatus(const QString &title)
{ {
HGUInt status = 0; HGUInt status = 0;

View File

@ -20,10 +20,11 @@ class Form_mainInterface : public QWidget
public: public:
explicit Form_mainInterface(class MainWindow *mainwnd, SANE_Handle handle, HGPdtToolDbUserMgr pdtToolDbuserMgr, HGPdtToolDbDevice pdtToolDbDevice, explicit Form_mainInterface(class MainWindow *mainwnd, SANE_Handle handle, HGPdtToolDbUserMgr pdtToolDbuserMgr, HGPdtToolDbDevice pdtToolDbDevice,
const QString &serialNum, const QString &devType); const QString &serialNum, const QString &devType, const QString &devName, const QString &devFwNum);
~Form_mainInterface(); ~Form_mainInterface();
QString getSn(); QString getSn();
QString getDevName();
protected: protected:
void paintEvent(QPaintEvent *event) override; void paintEvent(QPaintEvent *event) override;
@ -43,6 +44,7 @@ private slots:
private: private:
void initTableWidgetUi(); void initTableWidgetUi();
HGUInt getTestItem(const QString &title);
HGUInt getTestItemStatus(const QString &title); HGUInt getTestItemStatus(const QString &title);
bool setTestItemStatus(const QString &title, HGUInt status); bool setTestItemStatus(const QString &title, HGUInt status);
QString getItemStatusStr(HGUInt status); QString getItemStatusStr(HGUInt status);
@ -60,6 +62,8 @@ private:
HGPdtToolDbDevice m_pdtToolDbDevice; HGPdtToolDbDevice m_pdtToolDbDevice;
QString m_serialNum; QString m_serialNum;
QString m_devType; QString m_devType;
QString m_devName;
QString m_devFwNum;
QMap<QString, AnalysisJson::json_node> m_map_title_name; QMap<QString, AnalysisJson::json_node> m_map_title_name;
}; };

View File

@ -27,6 +27,10 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, QWidget *parent)
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);
m_top_splitter->setMinimumWidth(600);
m_bot_splitter->setMinimumWidth(600);
m_top_splitter->setChildrenCollapsible(false);
m_bot_splitter->setChildrenCollapsible(false);
QVBoxLayout *vLayout = new QVBoxLayout; QVBoxLayout *vLayout = new QVBoxLayout;
vLayout->addWidget(m_top_splitter); vLayout->addWidget(m_top_splitter);
@ -72,7 +76,7 @@ MainWindow::~MainWindow()
delete interface; delete interface;
} }
//sane_exit(); sane_exit();
HGPdtToolDb_DestroyUserMgr(m_pdtToolDbuserMgr); HGPdtToolDb_DestroyUserMgr(m_pdtToolDbuserMgr);
m_pdtToolDbuserMgr = NULL; m_pdtToolDbuserMgr = NULL;
@ -132,6 +136,29 @@ Form_mainInterface* MainWindow::FindInterface(const QString &sn)
return nullptr; return nullptr;
} }
Form_mainInterface *MainWindow::FindInterfaceByDevName(const QString &devName)
{
for (int i = 0; i < m_top_splitter->count(); ++i)
{
Form_mainInterface *interface = (Form_mainInterface *)m_top_splitter->widget(i);
if (devName == interface->getDevName())
{
return interface;
}
}
for (int i = 0; i < m_bot_splitter->count(); ++i)
{
Form_mainInterface *interface = (Form_mainInterface *)m_bot_splitter->widget(i);
if (devName == interface->getDevName())
{
return interface;
}
}
return nullptr;
}
bool MainWindow::AddInterface(Form_mainInterface *interface) bool MainWindow::AddInterface(Form_mainInterface *interface)
{ {
assert(nullptr != interface); assert(nullptr != interface);
@ -181,11 +208,11 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigne
break; break;
} }
if (!hdev) // if (!hdev)
{ // {
return -1; // return -1;
} // }
p->hg->cb_(hdev, code, data, len, NULL); // p->hg->cb_(hdev, code, data, len, NULL);
return 0; return 0;
} }
@ -234,6 +261,19 @@ QString MainWindow::getDevType(SANE_Handle handle)
return str.left(2) + "00"; return str.left(2) + "00";
} }
QString MainWindow::getDevFwNum(SANE_Handle handle)
{
std::string firmWareNum;
unsigned int firmWareNumLen = 0;
if(SANE_STATUS_NO_MEM == sane_io_control(handle, IO_CTRL_CODE_GET_HARDWARE_VERSION, nullptr, &firmWareNumLen) && firmWareNumLen)
{
firmWareNum.resize(firmWareNumLen);
sane_io_control(handle, IO_CTRL_CODE_GET_HARDWARE_VERSION, &firmWareNum[0], &firmWareNumLen);
}
return QString::fromStdString(firmWareNum.c_str());
}
void MainWindow::on_sane_dev_arrive(QString devName) void MainWindow::on_sane_dev_arrive(QString devName)
{ {
QMessageBox msg(QMessageBox::Question, tr("tips"), QMessageBox msg(QMessageBox::Question, tr("tips"),
@ -253,7 +293,8 @@ void MainWindow::on_sane_dev_arrive(QString devName)
HGPdtToolDbDevice pdtToolDbDevice = nullptr; HGPdtToolDbDevice pdtToolDbDevice = nullptr;
HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, dlg.GetSn().toStdString().c_str(), &pdtToolDbDevice); HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, dlg.GetSn().toStdString().c_str(), &pdtToolDbDevice);
Form_mainInterface *mainInterface = new Form_mainInterface(this, devHandle, m_pdtToolDbuserMgr, pdtToolDbDevice, dlg.GetSn(), dlg.GetDevType()); Form_mainInterface *mainInterface = new Form_mainInterface(this, devHandle, m_pdtToolDbuserMgr, pdtToolDbDevice,
dlg.GetSn(), dlg.GetDevType(), devName, getDevFwNum(devHandle));
if (!AddInterface(mainInterface)) if (!AddInterface(mainInterface))
{ {
QMessageBox::information(this, tr("tips"), tr("cannot create more table")); QMessageBox::information(this, tr("tips"), tr("cannot create more table"));
@ -262,14 +303,19 @@ void MainWindow::on_sane_dev_arrive(QString devName)
} }
else else
{ {
// sane_close(devHandle); sane_close(devHandle);
} }
} }
} }
void MainWindow::on_sane_dev_remove(QString devName) void MainWindow::on_sane_dev_remove(QString devName)
{ {
Form_mainInterface *interface = FindInterfaceByDevName(devName);
if (interface != nullptr)
{
QMessageBox::information(this, tr("tips"), tr("The device has disconnected"));
RemoveInterface(interface);
}
} }
void MainWindow::on_update_userStatus() void MainWindow::on_update_userStatus()
@ -310,7 +356,7 @@ void MainWindow::on_act_newDevice_triggered()
HGPdtToolDbDevice pdtToolDbDevice = nullptr; HGPdtToolDbDevice pdtToolDbDevice = nullptr;
HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, dlg.GetSn().toStdString().c_str(), &pdtToolDbDevice); HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, dlg.GetSn().toStdString().c_str(), &pdtToolDbDevice);
Form_mainInterface *mainInterface = new Form_mainInterface(this, nullptr, m_pdtToolDbuserMgr, pdtToolDbDevice, dlg.GetSn(), dlg.GetDevType()); Form_mainInterface *mainInterface = new Form_mainInterface(this, nullptr, m_pdtToolDbuserMgr, pdtToolDbDevice, dlg.GetSn(), dlg.GetDevType(), nullptr, nullptr);
if (!AddInterface(mainInterface)) if (!AddInterface(mainInterface))
{ {
QMessageBox::information(this, tr("tips"), tr("cannot create more table")); QMessageBox::information(this, tr("tips"), tr("cannot create more table"));
@ -336,7 +382,14 @@ void MainWindow::on_act_export_triggered()
QString filename = QFileDialog::getSaveFileName(this, tr("save"), "test.xls", tr("xls(*.xls)")); QString filename = QFileDialog::getSaveFileName(this, tr("save"), "test.xls", tr("xls(*.xls)"));
if (!filename.isEmpty()) if (!filename.isEmpty())
{ {
HGPdtToolDb_Export(m_pdtToolDbuserMgr, getStdString(filename).c_str()); if (HGBASE_ERR_OK == HGPdtToolDb_Export(m_pdtToolDbuserMgr, getStdString(filename).c_str()))
{
QMessageBox::information(this, tr("tips"), tr("export succeed"));
}
else
{
QMessageBox::information(this, tr("tips"), tr("export failed"));
}
} }
} }

View File

@ -25,6 +25,7 @@ public:
void updateSplitter(); void updateSplitter();
Form_mainInterface* FindInterface(const QString &sn); Form_mainInterface* FindInterface(const QString &sn);
Form_mainInterface* FindInterfaceByDevName(const QString &devName);
bool AddInterface(Form_mainInterface *interface); bool AddInterface(Form_mainInterface *interface);
bool RemoveInterface(Form_mainInterface *interface); bool RemoveInterface(Form_mainInterface *interface);
@ -34,6 +35,7 @@ private:
std::vector<std::string> getDevices(); std::vector<std::string> getDevices();
QString getDevSn(SANE_Handle handle); QString getDevSn(SANE_Handle handle);
QString getDevType(SANE_Handle handle); QString getDevType(SANE_Handle handle);
QString getDevFwNum(SANE_Handle handle);
signals: signals:
void sane_dev_arrive(QString devName); void sane_dev_arrive(QString devName);