#include "mainwindow.h" #include "ui_mainwindow.h" #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); mpdbclient = new grpcdbclient(); mpdbclient->start(); connect(mpdbclient,SIGNAL(reqres(int)),this,SLOT(onreqres(int))); connect(mpdbclient,SIGNAL(datareqres(int)),this,SLOT(ondatareqres(int))); mpitemmodel = new QStandardItemModel(this); ui->listView->setModel(mpitemmodel); setWindowTitle("Query grpcdb"); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_setbegin_clicked() { QDate date = ui->calendarWidget->selectedDate(); QDateTime datetime; datetime.setDate(date); QTime xTime; xTime.setHMS(0,0,0,0); datetime.setTime(xTime); ui->lineEdit_begin->setText(datetime.toString("yyyy/MM/dd hh:mm:ss:zzz")); } void MainWindow::on_pushButton_setend_clicked() { QDate date = ui->calendarWidget->selectedDate(); QDateTime datetime; datetime.setDate(date); QTime xTime; xTime.setHMS(23,59,59,999); datetime.setTime(xTime); ui->lineEdit_end->setText(datetime.toString("yyyy/MM/dd hh:mm:ss:zzz")); } void MainWindow::on_pushButton_query_clicked() { mpitemmodel->clear(); QString strbegin = ui->lineEdit_begin->text(); if(strbegin == "") { QMessageBox::warning(this,"Warning","Please Set begin time.",QMessageBox::YesAll); ui->lineEdit_begin->setFocus(); return; } QDateTime xfrom = QDateTime::fromString(strbegin,"yyyy/MM/dd hh:mm:ss:zzz"); if(xfrom.isNull() || !xfrom.isValid()) { QMessageBox::warning(this,"Warning","begin time is Not Valid.",QMessageBox::YesAll); ui->lineEdit_begin->setFocus(); return; } QString strto = ui->lineEdit_end->text(); if(strto == "") { QMessageBox::warning(this,"Warning","Please Set end time.",QMessageBox::YesAll); ui->lineEdit_end->setFocus(); return; } QDateTime xto = QDateTime::fromString(strto,"yyyy/MM/dd hh:mm:ss:zzz"); if(xto.isNull() || !xto.isValid()) { QMessageBox::warning(this,"Warning","end time is Not Valid.",QMessageBox::YesAll); ui->lineEdit_end->setFocus(); return; } if((xfrom.toMSecsSinceEpoch() >= xto.toMSecsSinceEpoch())) { QMessageBox::warning(this,"Warning","end time is earlier than start time.",QMessageBox::YesAll); ui->lineEdit_end->setFocus(); return; } QString strvehid = ui->lineEdit_vehid->text(); if(strvehid == "") { QMessageBox::warning(this,"Warning","vehid is Not Valid.",QMessageBox::YesAll); ui->lineEdit_vehid->setFocus(); return; } mpdbclient->requestlist(xfrom.toMSecsSinceEpoch(),xto.toMSecsSinceEpoch(),strvehid.toStdString()); ui->pushButton_query->setEnabled(false); } void MainWindow::onreqres(int nres) { ui->pushButton_query->setEnabled(true); if(nres == -1) { QMessageBox::warning(this,"Warning","Connect to Server Fail.",QMessageBox::YesAll); return; } iv::db::listReply xlistreply; mpdbclient->getlistreply(xlistreply); if(xlistreply.nres() == 0) { unsigned int i; for(i=0;iappendRow(item); } QMessageBox::information(this,"Info","Query List Successfully.",QMessageBox::YesAll); } else { if(xlistreply.nres() == -1) { QMessageBox::warning(this,"Warning","Server Open DataBase Fail.",QMessageBox::YesAll); } if(xlistreply.nres() == -2) { QMessageBox::warning(this,"Waring","Server Database Busy.",QMessageBox::YesAll); } } } void MainWindow::on_pushButton_DownLoad_clicked() { QString strrecord = ui->listView->currentIndex().data().toString(); if(strrecord == "") { QMessageBox::warning(this,"Warning","No Select.",QMessageBox::YesAll); return; } qint64 nrecordid = QDateTime::fromString(strrecord,"yyyy/MM/dd hh:mm:ss:zzz").toMSecsSinceEpoch(); std::string strvehid = ui->lineEdit_vehid->text().toStdString(); mpdbclient->requestfilename(nrecordid,strvehid); } void MainWindow::ondatareqres(int nres) { if(nres == -1) { QMessageBox::warning(this,"Warning","Connect to Server Fail.",QMessageBox::YesAll); return; } iv::db::dataReply xdatareply; mpdbclient->getdatareply(xdatareply); qDebug("file name is %s, size is %d",xdatareply.strfilename().data(),xdatareply.nfilesize()); }