2023-04-20 09:49:48 +00:00
|
|
|
#include "dialog_device_select.h"
|
|
|
|
#include "ui_dialog_device_select.h"
|
|
|
|
|
2023-04-23 14:26:21 +00:00
|
|
|
Dialog_device_select::Dialog_device_select(const std::vector<DEVQUEUI>& devs, QWidget *parent) :
|
2023-04-20 09:49:48 +00:00
|
|
|
QDialog(parent),
|
|
|
|
ui(new Ui::Dialog_device_select)
|
|
|
|
, m_devId(-1)
|
|
|
|
, m_devs(devs)
|
|
|
|
{
|
|
|
|
ui->setupUi(this);
|
2023-05-19 10:41:49 +00:00
|
|
|
setWindowFlags(Qt::SubWindow | Qt::Popup | Qt::WindowStaysOnTopHint);
|
2023-04-20 09:49:48 +00:00
|
|
|
|
|
|
|
for (int i = 0; i < m_devs.size(); ++i)
|
|
|
|
{
|
|
|
|
ui->listWidget->addItem(QString::fromStdString(m_devs[i].name));
|
|
|
|
}
|
2023-05-10 12:30:07 +00:00
|
|
|
|
|
|
|
if (ui->listWidget->count() > 0)
|
|
|
|
{
|
|
|
|
ui->listWidget->item(0)->setSelected(true);
|
|
|
|
}
|
2023-07-31 10:08:18 +00:00
|
|
|
|
|
|
|
if (ui->listWidget->count() > 1)
|
|
|
|
processSameDeviceType();
|
2023-04-20 09:49:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Dialog_device_select::~Dialog_device_select()
|
|
|
|
{
|
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
|
|
|
int Dialog_device_select::getDevId()
|
|
|
|
{
|
|
|
|
return m_devId;
|
|
|
|
}
|
|
|
|
|
2023-07-31 10:08:18 +00:00
|
|
|
void Dialog_device_select::processSameDeviceType()
|
|
|
|
{
|
|
|
|
int len = ui->listWidget->count();
|
|
|
|
for (int i = 0; i < len - 1; ++i)
|
|
|
|
{
|
|
|
|
for (int j = i + 1; j < len; ++j)
|
|
|
|
{
|
|
|
|
QString devName = ui->listWidget->item(i)->text();
|
|
|
|
if (devName.contains(" - "))
|
|
|
|
{
|
|
|
|
devName.truncate(devName.lastIndexOf(" - "));
|
|
|
|
if (!devName.contains(" - "))
|
|
|
|
{
|
|
|
|
devName = ui->listWidget->item(i)->text();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
QString devName2 = ui->listWidget->item(j)->text();
|
|
|
|
if (devName2.contains(" - "))
|
|
|
|
{
|
|
|
|
devName2.truncate(devName2.lastIndexOf(" - "));
|
|
|
|
if (!devName2.contains(" - "))
|
|
|
|
{
|
|
|
|
devName2 = ui->listWidget->item(j)->text();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (devName == devName2)
|
|
|
|
{
|
|
|
|
QString serialNum;
|
|
|
|
QString serialNum2;
|
|
|
|
for (int i = 0; i < m_devs.size(); ++i)
|
|
|
|
{
|
|
|
|
if (devName == QString::fromStdString(m_devs[i].name))
|
|
|
|
serialNum = QString::fromStdString(m_devs[i].name);
|
|
|
|
|
|
|
|
if (devName2 == QString::fromStdString(m_devs[i].name))
|
|
|
|
serialNum2 = QString::fromStdString(m_devs[i].name);
|
|
|
|
}
|
|
|
|
|
|
|
|
ui->listWidget->item(i)->setText(ui->listWidget->item(i)->text() + "(" + serialNum + ")");
|
|
|
|
ui->listWidget->item(j)->setText(ui->listWidget->item(j)->text() + "(" + serialNum2 + ")");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-04-20 09:49:48 +00:00
|
|
|
void Dialog_device_select::on_pbtn_ok_clicked()
|
|
|
|
{
|
2023-04-21 08:03:15 +00:00
|
|
|
if (ui->listWidget->count() == 0)
|
2023-04-20 09:49:48 +00:00
|
|
|
{
|
2023-04-21 08:03:15 +00:00
|
|
|
m_devId = -1;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
std::string selectDev = ui->listWidget->currentItem()->text().toStdString();
|
|
|
|
|
|
|
|
for (int i = 0; i < m_devs.size(); ++i)
|
2023-04-20 09:49:48 +00:00
|
|
|
{
|
2023-04-21 08:03:15 +00:00
|
|
|
if (m_devs[i].name == selectDev)
|
|
|
|
{
|
|
|
|
m_devId = m_devs[i].id;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
m_devId = -1;
|
|
|
|
}
|
2023-04-20 09:49:48 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
accept();
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_device_select::on_pbtn_cancel_clicked()
|
|
|
|
{
|
|
|
|
m_devId = -1;
|
|
|
|
reject();
|
|
|
|
}
|
2023-08-18 04:47:18 +00:00
|
|
|
|
|
|
|
void Dialog_device_select::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
|
|
|
|
{
|
|
|
|
on_pbtn_ok_clicked();
|
|
|
|
}
|