#include "MainWindow.hpp"
#include "tmp/ui_MainWindow.h"
MainWindow::MainWindow( QWidget* parent) :
    QMainWindow( parent),
    _ui( new Ui::MainWindow)
{
    _ui->setupUi( this);
    _ui->userEdit->setFocus();
    connect( _ui->lineEdit, SIGNAL(returnPressed()), this, SLOT(doSendLine()));
    _arnClient.addMountPoint("//");
    _arnClient.setAutoConnect(true);
    _arnTime.open("//Chat/Time/value");
    connect( &_arnTime, SIGNAL(changed(QString)), this, SLOT(doTimeUpdate(QString)));
    _commonSapi.open("//Chat/Pipes/pipeCommon");
    _commonSapi.batchConnectTo( this, "sapi");
    _soleSapi.batchConnectTo( this, "sapi");
    _soleSapi.pv_infoQ();
    _soleSapi.pv_list();
}
MainWindow::~MainWindow()
{
    delete _ui;
}
void  MainWindow::doTimeUpdate( QString timeStr)
{
    _ui->timeEdit->setTime( QTime::fromString( timeStr));
}
void  MainWindow::doSendLine()
{
    QString  myName = _ui->userEdit->text();
    QString  line   = _ui->lineEdit->text();
    _ui->lineEdit->clear();
    _soleSapi.pv_newMsg( myName, line);
}
void  MainWindow::sapiUpdateMsg( int seq, QString name, QString msg)
{
    if (seq >= _chatNameList.size()) {
        _chatNameList.resize( seq + 1);
        _chatMsgList.resize(  seq + 1);
    }
    _chatNameList[ seq] = name;
    _chatMsgList[  seq] = msg;
    QString  text;
    for (int i = 0; i < _chatNameList.size(); ++i) {
        text += _chatNameList.at(i) + ":  " + _chatMsgList.at(i) + "\n";
    }
    _ui->textEdit->setText( text);
}
void  MainWindow::sapiInfo( QString name, QString ver)
{
    _ui->appNameLabel->setText( name);
    _ui->verLabel->setText( ver);
}