97 lines
3.1 KiB
C++
97 lines
3.1 KiB
C++
#include "uft3functionsearchpage.h"
|
|
#include "src/utils/datacache.h"
|
|
#include <QVBoxLayout>
|
|
#include <QHBoxLayout>
|
|
#include <QLabel>
|
|
#include <QTableWidgetItem>
|
|
#include <QHeaderView>
|
|
#include <QMessageBox>
|
|
#include "ElaComboBox.h"
|
|
#include "ElaLineEdit.h"
|
|
#include "ElaPushButton.h"
|
|
|
|
UFT3FunctionSearchPage::UFT3FunctionSearchPage(QWidget *parent)
|
|
: QWidget(parent)
|
|
{
|
|
initUI();
|
|
}
|
|
|
|
UFT3FunctionSearchPage::~UFT3FunctionSearchPage()
|
|
{
|
|
}
|
|
|
|
void UFT3FunctionSearchPage::initUI()
|
|
{
|
|
QVBoxLayout *layout = new QVBoxLayout(this);
|
|
layout->setContentsMargins(30, 30, 30, 30);
|
|
layout->setSpacing(20);
|
|
|
|
QHBoxLayout *searchLayout = new QHBoxLayout;
|
|
searchLayout->setSpacing(10);
|
|
|
|
m_searchComboBox = new ElaComboBox;
|
|
m_searchComboBox->addItem("功能名称", "cname");
|
|
m_searchComboBox->addItem("功能编号", "function_no");
|
|
searchLayout->addWidget(m_searchComboBox);
|
|
|
|
m_searchEdit = new ElaLineEdit;
|
|
m_searchEdit->setPlaceholderText("输入查询内容");
|
|
m_searchEdit->setMinimumWidth(300);
|
|
searchLayout->addWidget(m_searchEdit);
|
|
|
|
ElaPushButton *searchBtn = new ElaPushButton("搜索");
|
|
connect(searchBtn, &QPushButton::clicked, this, &UFT3FunctionSearchPage::onSearch);
|
|
searchLayout->addWidget(searchBtn);
|
|
|
|
searchLayout->addStretch();
|
|
layout->addLayout(searchLayout);
|
|
|
|
m_resultTable = new QTableWidget;
|
|
m_resultTable->setColumnCount(3);
|
|
m_resultTable->setHorizontalHeaderLabels({"英文名", "功能编号", "功能名称"});
|
|
m_resultTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
|
m_resultTable->setMinimumHeight(400);
|
|
m_resultTable->setSelectionBehavior(QAbstractItemView::SelectRows);
|
|
m_resultTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
|
layout->addWidget(m_resultTable);
|
|
}
|
|
|
|
void UFT3FunctionSearchPage::onSearch()
|
|
{
|
|
QString keyword = m_searchEdit->text().trimmed();
|
|
|
|
m_resultTable->setRowCount(0);
|
|
|
|
if (keyword.isEmpty()) {
|
|
QMessageBox::information(this, "提示", "请输入查询内容");
|
|
return;
|
|
}
|
|
|
|
QString field = m_searchComboBox->currentData().toString();
|
|
QList<FunctionInfo> results = DataCache::instance()->searchUFT3Functions(keyword, field);
|
|
|
|
if (results.isEmpty()) {
|
|
QMessageBox::information(this, "提示", "未找到匹配的功能");
|
|
return;
|
|
}
|
|
|
|
int row = 0;
|
|
for (const FunctionInfo& info : results) {
|
|
m_resultTable->insertRow(row);
|
|
|
|
QTableWidgetItem *cnameItem = new QTableWidgetItem(info.cname);
|
|
cnameItem->setFlags(cnameItem->flags() & ~Qt::ItemIsEditable);
|
|
m_resultTable->setItem(row, 0, cnameItem);
|
|
|
|
QTableWidgetItem *eNameItem = new QTableWidgetItem(info.eName);
|
|
eNameItem->setFlags(eNameItem->flags() & ~Qt::ItemIsEditable);
|
|
m_resultTable->setItem(row, 1, eNameItem);
|
|
|
|
QTableWidgetItem *funcNoItem = new QTableWidgetItem(info.functionNo);
|
|
funcNoItem->setFlags(funcNoItem->flags() & ~Qt::ItemIsEditable);
|
|
m_resultTable->setItem(row, 2, funcNoItem);
|
|
|
|
row++;
|
|
}
|
|
}
|