scantool去掉dialog_button类
This commit is contained in:
parent
fd18cb5234
commit
7553fd9e85
|
@ -1,12 +1,12 @@
|
|||
#include "dialog_add.h"
|
||||
#include "ui_dialog_add.h"
|
||||
#include "dialog_button.h"
|
||||
#include "mainwindow.h"
|
||||
#include <QMessageBox>
|
||||
|
||||
Dialog_Add::Dialog_Add(class Dialog_Button *btnDlg)
|
||||
: QDialog(btnDlg)
|
||||
Dialog_Add::Dialog_Add(class MainWindow *mainWnd)
|
||||
: QDialog(mainWnd)
|
||||
, ui(new Ui::Dialog_Add)
|
||||
, m_btnDlg(btnDlg)
|
||||
, m_mainWnd(mainWnd)
|
||||
, m_index(-1)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
@ -34,10 +34,10 @@ Dialog_Add::Dialog_Add(class Dialog_Button *btnDlg)
|
|||
ui->stackedWidget->setCurrentIndex(0);
|
||||
}
|
||||
|
||||
Dialog_Add::Dialog_Add(class Dialog_Button *btnDlg, const ScanParam &scanParam, int index)
|
||||
: QDialog(btnDlg)
|
||||
Dialog_Add::Dialog_Add(class MainWindow *mainWnd, const ScanParam &scanParam, int index)
|
||||
: QDialog(mainWnd)
|
||||
, ui(new Ui::Dialog_Add)
|
||||
, m_btnDlg(btnDlg)
|
||||
, m_mainWnd(mainWnd)
|
||||
, m_index(index)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
@ -100,7 +100,7 @@ void Dialog_Add::on_comboBoxButtonType_currentIndexChanged(int index)
|
|||
|
||||
void Dialog_Add::on_pushButtonOK_clicked()
|
||||
{
|
||||
if (m_btnDlg->FindScanParam(m_scanParam.deviceType, m_scanParam.buttonType, m_index))
|
||||
if (m_mainWnd->FindScanParam(m_scanParam.deviceType, m_scanParam.buttonType, m_index))
|
||||
{
|
||||
QMessageBox::information(this, tr("Tips"), tr("Item find in list"));
|
||||
return;
|
||||
|
|
|
@ -29,8 +29,8 @@ class Dialog_Add : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Dialog_Add(class Dialog_Button *btnDlg);
|
||||
Dialog_Add(class Dialog_Button *btnDlg, const ScanParam &scanParam, int index);
|
||||
explicit Dialog_Add(class MainWindow *mainWnd);
|
||||
Dialog_Add(class MainWindow *mainWnd, const ScanParam &scanParam, int index);
|
||||
~Dialog_Add();
|
||||
|
||||
ScanParam GetScanParam();
|
||||
|
@ -50,7 +50,7 @@ private slots:
|
|||
|
||||
private:
|
||||
Ui::Dialog_Add *ui;
|
||||
class Dialog_Button *m_btnDlg;
|
||||
class MainWindow *m_mainWnd;
|
||||
ScanParam m_scanParam;
|
||||
int m_index;
|
||||
Form_DeviceConfig *m_formDeviceConfig;
|
||||
|
|
|
@ -1,205 +0,0 @@
|
|||
#include "dialog_button.h"
|
||||
#include "ui_dialog_button.h"
|
||||
#include <QCloseEvent>
|
||||
#include <QCheckBox>
|
||||
#include <QHBoxLayout>
|
||||
#include <QMessageBox>
|
||||
#include "cJSON.h"
|
||||
#include "sqlite3.h"
|
||||
|
||||
Dialog_Button::Dialog_Button(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
, ui(new Ui::Dialog_Button)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
||||
|
||||
ui->tableWidget->setColumnCount(5);
|
||||
ui->tableWidget->setColumnWidth(0, 20);
|
||||
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
ui->tableWidget->setStyleSheet("selection-background-color:rgb(0, 120, 215)");
|
||||
ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
ui->tableWidget->horizontalHeader()->setFixedHeight(40);
|
||||
ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
|
||||
ui->tableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem(""));
|
||||
ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("Device Type"));
|
||||
ui->tableWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("Button Type"));
|
||||
ui->tableWidget->setHorizontalHeaderItem(3, new QTableWidgetItem("Device Config"));
|
||||
ui->tableWidget->setHorizontalHeaderItem(4, new QTableWidgetItem("Save Param"));
|
||||
ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
|
||||
|
||||
// TODO 读取配置文件,设置m_vScanParams
|
||||
|
||||
ui->tableWidget->setRowCount((int)m_vScanParams.size());
|
||||
|
||||
for (int index = 0; index < (int)m_vScanParams.size(); ++index)
|
||||
{
|
||||
ui->tableWidget->setRowHeight(index, 30);
|
||||
|
||||
QCheckBox *checkBox = new QCheckBox(ui->tableWidget);
|
||||
connect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(on_listItemCheckbox_stateChanged(int)));
|
||||
QHBoxLayout *layout = new QHBoxLayout(ui->tableWidget);
|
||||
layout->addWidget(checkBox, 0, Qt::AlignCenter);
|
||||
layout->setMargin(0);
|
||||
QWidget *widget = new QWidget(ui->tableWidget);
|
||||
widget->setLayout(layout);
|
||||
ui->tableWidget->setCellWidget(index, 0, widget);
|
||||
|
||||
const char *devTypeStr[] = {NULL, "G100", "G200", "G300", "G400"};
|
||||
ui->tableWidget->setItem(index, 1, new QTableWidgetItem(devTypeStr[m_vScanParams[index].deviceType]));
|
||||
ui->tableWidget->item(index, 1)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 1)->setFlags(ui->tableWidget->item(index, 1)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
const char *btnTypeStr[] = {NULL, "Button 1", "Button 2", "Button 3"};
|
||||
ui->tableWidget->setItem(index, 2, new QTableWidgetItem(btnTypeStr[m_vScanParams[index].buttonType]));
|
||||
ui->tableWidget->item(index, 2)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 2)->setFlags(ui->tableWidget->item(index, 2)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->setItem(index, 3, new QTableWidgetItem("-"));
|
||||
ui->tableWidget->item(index, 3)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 3)->setFlags(ui->tableWidget->item(index, 3)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->setItem(index, 4, new QTableWidgetItem("-"));
|
||||
ui->tableWidget->item(index, 4)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 4)->setFlags(ui->tableWidget->item(index, 4)->flags() & ~Qt::ItemIsEditable);
|
||||
}
|
||||
|
||||
ui->tableWidget->selectRow(0);
|
||||
}
|
||||
|
||||
Dialog_Button::~Dialog_Button()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
bool Dialog_Button::GetScanParam(DeviceType deviceType, ButtonType buttonType, ScanParam &scanParam)
|
||||
{
|
||||
for (int i = 0; i < (int)m_vScanParams.size(); ++i)
|
||||
{
|
||||
if (deviceType == m_vScanParams[i].deviceType && buttonType == m_vScanParams[i].buttonType)
|
||||
{
|
||||
scanParam = m_vScanParams[i];
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Dialog_Button::FindScanParam(DeviceType deviceType, ButtonType buttonType, int ignoreIndex)
|
||||
{
|
||||
for (int i = 0; i < (int)m_vScanParams.size(); ++i)
|
||||
{
|
||||
if (deviceType == m_vScanParams[i].deviceType && buttonType == m_vScanParams[i].buttonType)
|
||||
{
|
||||
if (-1 == ignoreIndex) // 表示均不忽略
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (i != ignoreIndex)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void Dialog_Button::closeEvent(QCloseEvent *e)
|
||||
{
|
||||
hide(); // 隐藏主窗口
|
||||
e->ignore(); //忽略关闭事件,这样才不会关闭程序
|
||||
}
|
||||
|
||||
void Dialog_Button::on_pushButtonAdd_clicked()
|
||||
{
|
||||
Dialog_Add dlg(this);
|
||||
if (dlg.exec())
|
||||
{
|
||||
ScanParam scanParam = dlg.GetScanParam();
|
||||
m_vScanParams.push_back(scanParam);
|
||||
// TODO 保存m_vScanParams
|
||||
|
||||
ui->tableWidget->setRowCount((int)m_vScanParams.size());
|
||||
int index = (int)m_vScanParams.size() - 1;
|
||||
|
||||
ui->tableWidget->setRowHeight(index, 30);
|
||||
|
||||
QCheckBox *checkBox = new QCheckBox(ui->tableWidget);
|
||||
connect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(on_listItemCheckbox_stateChanged(int)));
|
||||
QHBoxLayout *layout = new QHBoxLayout(ui->tableWidget);
|
||||
layout->addWidget(checkBox, 0, Qt::AlignCenter);
|
||||
layout->setMargin(0);
|
||||
QWidget *widget = new QWidget(ui->tableWidget);
|
||||
widget->setLayout(layout);
|
||||
ui->tableWidget->setCellWidget(index, 0, widget);
|
||||
|
||||
const char *devTypeStr[] = {NULL, "G100", "G200", "G300", "G400"};
|
||||
ui->tableWidget->setItem(index, 1, new QTableWidgetItem(devTypeStr[m_vScanParams[index].deviceType]));
|
||||
ui->tableWidget->item(index, 1)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 1)->setFlags(ui->tableWidget->item(index, 1)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
const char *btnTypeStr[] = {NULL, "Button 1", "Button 2", "Button 3"};
|
||||
ui->tableWidget->setItem(index, 2, new QTableWidgetItem(btnTypeStr[m_vScanParams[index].buttonType]));
|
||||
ui->tableWidget->item(index, 2)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 2)->setFlags(ui->tableWidget->item(index, 2)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->setItem(index, 3, new QTableWidgetItem("-"));
|
||||
ui->tableWidget->item(index, 3)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 3)->setFlags(ui->tableWidget->item(index, 3)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->setItem(index, 4, new QTableWidgetItem("-"));
|
||||
ui->tableWidget->item(index, 4)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 4)->setFlags(ui->tableWidget->item(index, 4)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->selectRow(index);
|
||||
}
|
||||
}
|
||||
|
||||
void Dialog_Button::on_pushButtonModify_clicked()
|
||||
{
|
||||
int index = ui->tableWidget->currentRow();
|
||||
if (-1 == index)
|
||||
{
|
||||
QMessageBox::information(this, tr("Tips"), tr("No item selected"));
|
||||
return;
|
||||
}
|
||||
|
||||
Dialog_Add dlg(this, m_vScanParams[index], index);
|
||||
if (dlg.exec())
|
||||
{
|
||||
ScanParam scanParam = dlg.GetScanParam();
|
||||
m_vScanParams[index] = scanParam;
|
||||
// TODO 保存m_vScanParams
|
||||
|
||||
const char *devTypeStr[] = {NULL, "G100", "G200", "G300", "G400"};
|
||||
ui->tableWidget->item(index, 1)->setText(QString::fromStdString(devTypeStr[m_vScanParams[index].deviceType]));
|
||||
|
||||
const char *btnTypeStr[] = {NULL, "Button 1", "Button 2", "Button 3"};
|
||||
ui->tableWidget->item(index, 2)->setText(QString::fromStdString(btnTypeStr[m_vScanParams[index].buttonType]));
|
||||
}
|
||||
}
|
||||
|
||||
void Dialog_Button::on_pushButtonRemove_clicked()
|
||||
{
|
||||
int index = ui->tableWidget->currentRow();
|
||||
if (-1 == index)
|
||||
{
|
||||
QMessageBox::information(this, tr("Tips"), tr("No item selected"));
|
||||
return;
|
||||
}
|
||||
|
||||
QMessageBox msg(QMessageBox::Question, tr("Question"),
|
||||
tr("Are you sure you want to remove the item?"),
|
||||
QMessageBox::Yes | QMessageBox::No, this);
|
||||
msg.exec();
|
||||
if (msg.clickedButton() != msg.button(QMessageBox::Yes))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_vScanParams.erase(m_vScanParams.begin() + index);
|
||||
// TODO 保存m_vScanParams
|
||||
ui->tableWidget->removeRow(index);
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
#ifndef DIALOG_BUTTON_H
|
||||
#define DIALOG_BUTTON_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "dialog_add.h"
|
||||
|
||||
namespace Ui {
|
||||
class Dialog_Button;
|
||||
}
|
||||
|
||||
class Dialog_Button : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Dialog_Button(QWidget *parent = nullptr);
|
||||
~Dialog_Button();
|
||||
|
||||
bool GetScanParam(DeviceType deviceType, ButtonType buttonType, ScanParam &scanParam);
|
||||
bool FindScanParam(DeviceType deviceType, ButtonType buttonType, int ignoreIndex);
|
||||
|
||||
protected:
|
||||
virtual void closeEvent(QCloseEvent *e) override;
|
||||
|
||||
private slots:
|
||||
void on_pushButtonAdd_clicked();
|
||||
|
||||
void on_pushButtonModify_clicked();
|
||||
|
||||
void on_pushButtonRemove_clicked();
|
||||
|
||||
private:
|
||||
Ui::Dialog_Button *ui;
|
||||
std::vector<ScanParam> m_vScanParams;
|
||||
};
|
||||
|
||||
#endif // DIALOG_BUTTON_H
|
|
@ -1,62 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog_Button</class>
|
||||
<widget class="QDialog" name="Dialog_Button">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1023</width>
|
||||
<height>677</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Button Setting</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<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="pushButtonAdd">
|
||||
<property name="text">
|
||||
<string>Add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButtonModify">
|
||||
<property name="text">
|
||||
<string>Modify</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButtonRemove">
|
||||
<property name="text">
|
||||
<string>Remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableWidget" name="tableWidget"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -1,12 +1,12 @@
|
|||
#include "dialog_scan.h"
|
||||
#include "ui_dialog_scan.h"
|
||||
#include <QCloseEvent>
|
||||
#include "dialog_button.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
Dialog_Scan::Dialog_Scan(class Dialog_Button *btnDlg, QWidget *parent)
|
||||
: QDialog(parent)
|
||||
Dialog_Scan::Dialog_Scan(class MainWindow *mainWnd)
|
||||
: QDialog(mainWnd)
|
||||
, ui(new Ui::Dialog_Scan)
|
||||
, m_btnDlg(btnDlg)
|
||||
, m_mainWnd(mainWnd)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
||||
|
|
|
@ -12,7 +12,7 @@ class Dialog_Scan : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Dialog_Scan(class Dialog_Button *btnDlg, QWidget *parent = nullptr);
|
||||
explicit Dialog_Scan(class MainWindow *mainWnd);
|
||||
~Dialog_Scan();
|
||||
|
||||
protected:
|
||||
|
@ -20,7 +20,7 @@ protected:
|
|||
|
||||
private:
|
||||
Ui::Dialog_Scan *ui;
|
||||
class Dialog_Button *m_btnDlg;
|
||||
class MainWindow *m_mainWnd;
|
||||
};
|
||||
|
||||
#endif // DIALOG_SCAN_H
|
||||
|
|
|
@ -1,21 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<author/>
|
||||
<comment/>
|
||||
<exportmacro/>
|
||||
<class>Form_DeviceConfig</class>
|
||||
<widget name="Form_DeviceConfig" class="QWidget">
|
||||
<widget class="QWidget" name="Form_DeviceConfig">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
<width>691</width>
|
||||
<height>471</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
</widget>
|
||||
<pixmapfunction/>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
|
|
@ -9,9 +9,7 @@ MainWindow::MainWindow(QWidget *parent)
|
|||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_btnDlg = new Dialog_Button(this);
|
||||
m_scanDlg = new Dialog_Scan(m_btnDlg, this);
|
||||
|
||||
m_scanDlg = new Dialog_Scan(this);
|
||||
m_trayIcon = new QSystemTrayIcon(this);
|
||||
m_trayIcon->setIcon(QIcon(":images/image_rsc/png/logo.png"));
|
||||
m_trayIcon->show();
|
||||
|
@ -23,7 +21,7 @@ MainWindow::MainWindow(QWidget *parent)
|
|||
m_scanAction = new QAction(tr("Scan Setting"), this);
|
||||
connect(m_scanAction, &QAction::triggered, this, &MainWindow::on_showScanSettingDlg);
|
||||
m_btnAction = new QAction(tr("Button Setting"), this);
|
||||
connect(m_btnAction, &QAction::triggered, this, &MainWindow::on_showButtonSettingDlg);
|
||||
connect(m_btnAction, &QAction::triggered, this, &MainWindow::show);
|
||||
m_quitAction = new QAction(tr("Exit"), this);
|
||||
connect(m_quitAction, &QAction::triggered, this, &QCoreApplication::quit); //应用程序的退出
|
||||
|
||||
|
@ -35,15 +33,116 @@ MainWindow::MainWindow(QWidget *parent)
|
|||
m_trayIconMenu->addAction(m_quitAction);
|
||||
//给系统托盘添加右键菜单
|
||||
m_trayIcon->setContextMenu(m_trayIconMenu);
|
||||
|
||||
ui->tableWidget->setColumnCount(4);
|
||||
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
ui->tableWidget->setStyleSheet("selection-background-color:rgb(0, 120, 215)");
|
||||
ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
ui->tableWidget->horizontalHeader()->setFixedHeight(40);
|
||||
ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
|
||||
ui->tableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem("Device Type"));
|
||||
ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("Button Type"));
|
||||
ui->tableWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("Device Config"));
|
||||
ui->tableWidget->setHorizontalHeaderItem(3, new QTableWidgetItem("Save Param"));
|
||||
ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
|
||||
ui->tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Fixed);
|
||||
ui->tableWidget->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch);
|
||||
ui->tableWidget->horizontalHeader()->setSectionResizeMode(3, QHeaderView::Stretch);
|
||||
|
||||
// TODO 读取配置文件,设置m_vScanParams
|
||||
|
||||
ui->tableWidget->setRowCount((int)m_vScanParams.size());
|
||||
|
||||
for (int index = 0; index < (int)m_vScanParams.size(); ++index)
|
||||
{
|
||||
ui->tableWidget->setRowHeight(index, 30);
|
||||
|
||||
const char *devTypeStr[] = {NULL, "G100", "G200", "G300", "G400"};
|
||||
ui->tableWidget->setItem(index, 0, new QTableWidgetItem(devTypeStr[m_vScanParams[index].deviceType]));
|
||||
ui->tableWidget->item(index, 0)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 0)->setFlags(ui->tableWidget->item(index, 0)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
const char *btnTypeStr[] = {NULL, "Button 1", "Button 2", "Button 3"};
|
||||
ui->tableWidget->setItem(index, 1, new QTableWidgetItem(btnTypeStr[m_vScanParams[index].buttonType]));
|
||||
ui->tableWidget->item(index, 1)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 1)->setFlags(ui->tableWidget->item(index, 1)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->setItem(index, 2, new QTableWidgetItem(GetDesc(m_vScanParams[index].deviceConfig)));
|
||||
ui->tableWidget->item(index, 2)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 2)->setFlags(ui->tableWidget->item(index, 2)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->setItem(index, 3, new QTableWidgetItem(GetDesc(m_vScanParams[index].saveParam)));
|
||||
ui->tableWidget->item(index, 3)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 3)->setFlags(ui->tableWidget->item(index, 3)->flags() & ~Qt::ItemIsEditable);
|
||||
}
|
||||
|
||||
ui->tableWidget->selectRow(0);
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
delete m_scanDlg;
|
||||
delete m_btnDlg;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
bool MainWindow::GetScanParam(DeviceType deviceType, ButtonType buttonType, ScanParam &scanParam)
|
||||
{
|
||||
for (int i = 0; i < (int)m_vScanParams.size(); ++i)
|
||||
{
|
||||
if (deviceType == m_vScanParams[i].deviceType && buttonType == m_vScanParams[i].buttonType)
|
||||
{
|
||||
scanParam = m_vScanParams[i];
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MainWindow::FindScanParam(DeviceType deviceType, ButtonType buttonType, int ignoreIndex)
|
||||
{
|
||||
for (int i = 0; i < (int)m_vScanParams.size(); ++i)
|
||||
{
|
||||
if (deviceType == m_vScanParams[i].deviceType && buttonType == m_vScanParams[i].buttonType)
|
||||
{
|
||||
if (-1 == ignoreIndex) // 表示均不忽略
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (i != ignoreIndex)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
QString MainWindow::GetDesc(const std::string &deviceConfig)
|
||||
{
|
||||
QString desc;
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
QString MainWindow::GetDesc(const SaveParam &saveParam)
|
||||
{
|
||||
QString desc;
|
||||
|
||||
desc += "[";
|
||||
desc += tr("Save path:");
|
||||
desc += saveParam.m_savePath;
|
||||
desc += "]";
|
||||
desc += " ";
|
||||
desc += "[";
|
||||
desc += tr("Image format:");
|
||||
desc += saveParam.m_fileNameExt;
|
||||
desc += "]";
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
void MainWindow::closeEvent(QCloseEvent *e)
|
||||
{
|
||||
if (m_trayIcon->isVisible()) //托盘是显示的
|
||||
|
@ -61,7 +160,7 @@ void MainWindow::on_trayActivated(QSystemTrayIcon::ActivationReason reason)
|
|||
}
|
||||
else if (QSystemTrayIcon::DoubleClick == reason)
|
||||
{
|
||||
m_btnDlg->show();
|
||||
show();
|
||||
}
|
||||
else if (QSystemTrayIcon::MiddleClick == reason)
|
||||
{
|
||||
|
@ -74,7 +173,88 @@ void MainWindow::on_showScanSettingDlg()
|
|||
m_scanDlg->show();
|
||||
}
|
||||
|
||||
void MainWindow::on_showButtonSettingDlg()
|
||||
void MainWindow::on_pushButtonAdd_clicked()
|
||||
{
|
||||
m_btnDlg->show();
|
||||
Dialog_Add dlg(this);
|
||||
if (dlg.exec())
|
||||
{
|
||||
ScanParam scanParam = dlg.GetScanParam();
|
||||
m_vScanParams.push_back(scanParam);
|
||||
// TODO 保存m_vScanParams
|
||||
|
||||
ui->tableWidget->setRowCount((int)m_vScanParams.size());
|
||||
int index = (int)m_vScanParams.size() - 1;
|
||||
|
||||
ui->tableWidget->setRowHeight(index, 30);
|
||||
|
||||
const char *devTypeStr[] = {NULL, "G100", "G200", "G300", "G400"};
|
||||
ui->tableWidget->setItem(index, 0, new QTableWidgetItem(devTypeStr[m_vScanParams[index].deviceType]));
|
||||
ui->tableWidget->item(index, 0)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 0)->setFlags(ui->tableWidget->item(index, 0)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
const char *btnTypeStr[] = {NULL, "Button 1", "Button 2", "Button 3"};
|
||||
ui->tableWidget->setItem(index, 1, new QTableWidgetItem(btnTypeStr[m_vScanParams[index].buttonType]));
|
||||
ui->tableWidget->item(index, 1)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 1)->setFlags(ui->tableWidget->item(index, 1)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->setItem(index, 2, new QTableWidgetItem(GetDesc(m_vScanParams[index].deviceConfig)));
|
||||
ui->tableWidget->item(index, 2)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 2)->setFlags(ui->tableWidget->item(index, 2)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->setItem(index, 3, new QTableWidgetItem(GetDesc(m_vScanParams[index].saveParam)));
|
||||
ui->tableWidget->item(index, 3)->setTextAlignment(Qt::AlignCenter);
|
||||
ui->tableWidget->item(index, 3)->setFlags(ui->tableWidget->item(index, 3)->flags() & ~Qt::ItemIsEditable);
|
||||
|
||||
ui->tableWidget->selectRow(index);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_pushButtonModify_clicked()
|
||||
{
|
||||
int index = ui->tableWidget->currentRow();
|
||||
if (-1 == index)
|
||||
{
|
||||
QMessageBox::information(this, tr("Tips"), tr("No item selected"));
|
||||
return;
|
||||
}
|
||||
|
||||
Dialog_Add dlg(this, m_vScanParams[index], index);
|
||||
if (dlg.exec())
|
||||
{
|
||||
ScanParam scanParam = dlg.GetScanParam();
|
||||
m_vScanParams[index] = scanParam;
|
||||
// TODO 保存m_vScanParams
|
||||
|
||||
const char *devTypeStr[] = {NULL, "G100", "G200", "G300", "G400"};
|
||||
ui->tableWidget->item(index, 0)->setText(QString::fromStdString(devTypeStr[m_vScanParams[index].deviceType]));
|
||||
|
||||
const char *btnTypeStr[] = {NULL, "Button 1", "Button 2", "Button 3"};
|
||||
ui->tableWidget->item(index, 1)->setText(QString::fromStdString(btnTypeStr[m_vScanParams[index].buttonType]));
|
||||
|
||||
ui->tableWidget->item(index, 2)->setText(GetDesc(m_vScanParams[index].deviceConfig));
|
||||
ui->tableWidget->item(index, 3)->setText(GetDesc(m_vScanParams[index].saveParam));
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_pushButtonRemove_clicked()
|
||||
{
|
||||
int index = ui->tableWidget->currentRow();
|
||||
if (-1 == index)
|
||||
{
|
||||
QMessageBox::information(this, tr("Tips"), tr("No item selected"));
|
||||
return;
|
||||
}
|
||||
|
||||
QMessageBox msg(QMessageBox::Question, tr("Question"),
|
||||
tr("Are you sure you want to remove the item?"),
|
||||
QMessageBox::Yes | QMessageBox::No, this);
|
||||
msg.exec();
|
||||
if (msg.clickedButton() != msg.button(QMessageBox::Yes))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_vScanParams.erase(m_vScanParams.begin() + index);
|
||||
// TODO 保存m_vScanParams
|
||||
ui->tableWidget->removeRow(index);
|
||||
}
|
||||
|
|
|
@ -3,8 +3,11 @@
|
|||
|
||||
#include <QMainWindow>
|
||||
#include <QSystemTrayIcon>
|
||||
#include <QMenu>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "dialog_scan.h"
|
||||
#include "dialog_button.h"
|
||||
#include "dialog_add.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class MainWindow; }
|
||||
|
@ -18,24 +21,32 @@ public:
|
|||
MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
|
||||
bool GetScanParam(DeviceType deviceType, ButtonType buttonType, ScanParam &scanParam);
|
||||
bool FindScanParam(DeviceType deviceType, ButtonType buttonType, int ignoreIndex);
|
||||
|
||||
private:
|
||||
QString GetDesc(const std::string &deviceConfig);
|
||||
QString GetDesc(const SaveParam &saveParam);
|
||||
|
||||
protected:
|
||||
virtual void closeEvent(QCloseEvent *e) override;
|
||||
|
||||
private slots:
|
||||
void on_trayActivated(QSystemTrayIcon::ActivationReason reason);
|
||||
void on_showScanSettingDlg();
|
||||
void on_showButtonSettingDlg();
|
||||
void on_pushButtonAdd_clicked();
|
||||
void on_pushButtonModify_clicked();
|
||||
void on_pushButtonRemove_clicked();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
|
||||
Dialog_Button *m_btnDlg;
|
||||
Dialog_Scan *m_scanDlg;
|
||||
|
||||
QSystemTrayIcon* m_trayIcon;
|
||||
QAction *m_scanAction;
|
||||
QAction *m_btnAction;
|
||||
QAction *m_quitAction;
|
||||
QMenu *m_trayIconMenu;
|
||||
std::vector<ScanParam> m_vScanParams;
|
||||
};
|
||||
#endif // MAINWINDOW_H
|
||||
|
|
|
@ -6,25 +6,62 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>706</width>
|
||||
<height>506</height>
|
||||
<width>907</width>
|
||||
<height>575</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
<string>Scan Tool</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget"/>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>706</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<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="pushButtonAdd">
|
||||
<property name="text">
|
||||
<string>Add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButtonModify">
|
||||
<property name="text">
|
||||
<string>Modify</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButtonRemove">
|
||||
<property name="text">
|
||||
<string>Remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableWidget" name="tableWidget"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="act_selectDevice">
|
||||
<property name="text">
|
||||
<string>act_selectDevice</string>
|
||||
|
|
|
@ -98,7 +98,6 @@ SOURCES += \
|
|||
../../../app/scantool/HGUIGlobal.cpp \
|
||||
../../../app/scantool/app_cfg.cpp \
|
||||
../../../app/scantool/dialog_add.cpp \
|
||||
../../../app/scantool/dialog_button.cpp \
|
||||
../../../app/scantool/dialog_scan.cpp \
|
||||
../../../app/scantool/dialog_writesettings.cpp \
|
||||
../../../app/scantool/form_deviceconfig.cpp \
|
||||
|
@ -114,7 +113,6 @@ HEADERS += \
|
|||
../../../app/scantool/HGUIGlobal.h \
|
||||
../../../app/scantool/app_cfg.h \
|
||||
../../../app/scantool/dialog_add.h \
|
||||
../../../app/scantool/dialog_button.h \
|
||||
../../../app/scantool/dialog_scan.h \
|
||||
../../../app/scantool/dialog_writesettings.h \
|
||||
../../../app/scantool/form_deviceconfig.h \
|
||||
|
@ -126,7 +124,6 @@ HEADERS += \
|
|||
|
||||
FORMS += \
|
||||
../../../app/scantool/dialog_add.ui \
|
||||
../../../app/scantool/dialog_button.ui \
|
||||
../../../app/scantool/dialog_scan.ui \
|
||||
../../../app/scantool/dialog_writesettings.ui \
|
||||
../../../app/scantool/form_deviceconfig.ui \
|
||||
|
|
Loading…
Reference in New Issue