#include "clientmainwindow.h"
#include "ui_clientmainwindow.h"

#pragma execution_character_set("utf-8")

ClientMainWindow::ClientMainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::ClientMainWindow)
{
    ui->setupUi(this);
    // 启动界面初始化的函数
    initUi();

}

ClientMainWindow::~ClientMainWindow()
{
    delete ui;
}

void ClientMainWindow::initUi()
{
    ui->tabWidget->clear(); // 清除无用的前2个tab页面

    // 实例化获取股票列表的界面对象
    m_getStockList = new GetStockList(this);
    // 将股票界面对象放到主界面的tab选项卡里面来
    ui->tabWidget->addTab(m_getStockList,"获取信息");

    m_stockPolicy = new StockPolicy(this);
    ui->tabWidget->addTab(m_stockPolicy,"股票策略");

    m_leadingCom = new LeadingCompany(this);
    ui->tabWidget->addTab(m_leadingCom,"龙头公司");

    m_showInfoMess = new ShowInfoMessage(this);
    ui->tabWidget->addTab(m_showInfoMess,"信息提示");

    m_regular = new RegularInvestment(this);
    ui->tabWidget->addTab(m_regular,"定投设置");

    m_history = new HistoryData(this);
    ui->tabWidget->addTab(m_history,"历史分析");


    // 关联一下2个界面的信号和槽,用来传递图表所需的数据及展示
    connect(m_getStockList,SIGNAL(sendChartData(QLineSeries*)),m_stockPolicy,SLOT(showNewStockData(QLineSeries*)));
    connect(m_getStockList,SIGNAL(sendChartData(QSplineSeries*)),m_stockPolicy,SLOT(showNewStockData(QSplineSeries*)));

    connect(m_getStockList,SIGNAL(sendInfoMess(QString)),m_showInfoMess,SLOT(showInfo(QString)));

    connect(m_regular,SIGNAL(getClosePriceSignal(QString)),m_getStockList,SLOT(getLastClosePrice(QString)));
    connect(m_getStockList,SIGNAL(sendClosePrice(QString,QString)),m_regular,SLOT(showClosePrice(QString,QString)));

    connect(m_getStockList,SIGNAL(sendCodeNames(QMap<QString,QString>&)),m_history,SLOT(putCodeNames(QMap<QString,QString>&)));

    connect(m_history,SIGNAL(sendHistoryModel(QVector<QVector<QString>> &)),m_getStockList,SLOT(showHistoryModelData(QVector<QVector<QString>> &)));
    connect(m_history,SIGNAL(sendHistoryModel(QStandardItemModel*)),m_getStockList,SLOT(showHistoryModelData(QStandardItemModel*)));

}