You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.0 KiB
123 lines
3.0 KiB
#include "addtradedialog.h"
|
|
#include "ui_addtradedialog.h"
|
|
#include <QMessageBox>
|
|
#include <QDebug>
|
|
#include "userdata.h"
|
|
#include <QCompleter>
|
|
|
|
AddTradeDialog::AddTradeDialog(QWidget *parent) :
|
|
QDialog(parent),
|
|
ui(new Ui::AddTradeDialog)
|
|
{
|
|
ui->setupUi(this);
|
|
}
|
|
|
|
AddTradeDialog::~AddTradeDialog()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void AddTradeDialog::SetStockBasicList(const QList<StockBasicInfo> &stockBasicList)
|
|
{
|
|
int count = stockBasicList.count();
|
|
QStringList codeList,nameList;
|
|
for(int i = 0 ; i < count; i++)
|
|
{
|
|
codeList.append(stockBasicList[i].code);
|
|
nameList.append(stockBasicList[i].name);
|
|
}
|
|
m_StockBasicList = stockBasicList;
|
|
InitLineEdit(codeList,nameList);
|
|
}
|
|
|
|
void AddTradeDialog::SetToken(const QString &token)
|
|
{
|
|
m_Token = token;
|
|
}
|
|
|
|
void AddTradeDialog::InitLineEdit(const QStringList& codeList,const QStringList& nameList)
|
|
{
|
|
QCompleter* codeCompleter = new QCompleter(codeList, ui->code);
|
|
ui->code->setCompleter(codeCompleter);
|
|
connect(codeCompleter, QOverload<const QString &>::of(&QCompleter::activated),
|
|
[=](const QString &text){
|
|
on_code_Activated(text);
|
|
});
|
|
|
|
QCompleter* nameCompleter = new QCompleter(nameList, ui->name);
|
|
ui->name->setCompleter(nameCompleter);
|
|
connect(nameCompleter, QOverload<const QString &>::of(&QCompleter::activated),
|
|
[=](const QString &text){
|
|
on_name_Activated(text);
|
|
});}
|
|
|
|
void AddTradeDialog::on_pushButton_OK_clicked()
|
|
{
|
|
TradingRequestParam requestParam;
|
|
requestParam.code = ui->code->text();
|
|
requestParam.name = ui->name->text();
|
|
requestParam.tradeDay = "2023-12-29";
|
|
requestParam.token = m_Token;
|
|
UserData::Instanse()->AddTradeRecord(requestParam);
|
|
this->accept();
|
|
}
|
|
|
|
void AddTradeDialog::on_name_Activated(const QString &text)
|
|
{
|
|
qDebug() << "You selected:" << text;
|
|
QString name = text;
|
|
int count = m_StockBasicList.count();
|
|
for(int i = 0 ; i < count; i++)
|
|
{
|
|
if(m_StockBasicList[i].name == name)
|
|
{
|
|
ui->code->setText(m_StockBasicList[i].code);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void AddTradeDialog::on_code_Activated(const QString &text)
|
|
{
|
|
QString code = text;
|
|
int count = m_StockBasicList.count();
|
|
for(int i = 0 ; i < count; i++)
|
|
{
|
|
if(m_StockBasicList[i].code == code)
|
|
{
|
|
ui->name->setText(m_StockBasicList[i].name);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void AddTradeDialog::on_name_editingFinished()
|
|
{
|
|
QString name = ui->name->text();
|
|
int count = m_StockBasicList.count();
|
|
for(int i = 0 ; i < count; i++)
|
|
{
|
|
if(m_StockBasicList[i].name == name)
|
|
{
|
|
ui->code->setText(m_StockBasicList[i].code);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void AddTradeDialog::on_code_editingFinished()
|
|
{
|
|
QString code = ui->code->text();
|
|
int count = m_StockBasicList.count();
|
|
for(int i = 0 ; i < count; i++)
|
|
{
|
|
if(m_StockBasicList[i].code == code)
|
|
{
|
|
ui->name->setText(m_StockBasicList[i].name);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|