#include "datalist_page.h" #include "ui_datalist_page.h" #include "DataForm/filecopydialog.h" #include #include "CustomClass/mymessagebox.h" #include DataList_Page::DataList_Page(QWidget *parent,Work_Thread *workthread) : custom_dialog(parent), ui(new Ui::DataList_Page) { ui->setupUi(this); work_thread = workthread; initUi(); // set_btn_beep(ui->pushButton_name0,SIGNAL(pressed())); // set_btn_beep(ui->pushButton_name1,SIGNAL(pressed())); // set_btn_beep(ui->pushButton_name2,SIGNAL(pressed())); // set_btn_beep(ui->pushButton_name3,SIGNAL(pressed())); // set_btn_beep(ui->pushButton_name4,SIGNAL(pressed())); // set_btn_beep(ui->pushButton_name5,SIGNAL(pressed())); // set_btn_beep(ui->pushButton_name6,SIGNAL(pressed())); // set_btn_beep(ui->pushButton_name7,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check0,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check1,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check2,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check3,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check4,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check5,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check6,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check7,SIGNAL(pressed())); set_btn_beep(ui->pushButton_CheckDischarge,SIGNAL(pressed())); set_btn_beep(ui->pushButton_CheckCharge,SIGNAL(pressed())); set_btn_beep(ui->pushButton_CheckAllSelect,SIGNAL(pressed())); set_btn_beep(ui->pushButton_USB,SIGNAL(pressed())); set_btn_beep(ui->pushButton_Delete,SIGNAL(pressed())); set_btn_beep(ui->pushButton_prepage,SIGNAL(pressed())); set_btn_beep(ui->pushButton_nextpage,SIGNAL(pressed())); set_btn_beep(ui->pushButton_Exit,SIGNAL(pressed())); // connect(ui->pushButton_name0,SIGNAL(released()),this,SLOT(DataBtnSlot())); // connect(ui->pushButton_name1,SIGNAL(released()),this,SLOT(DataBtnSlot())); // connect(ui->pushButton_name2,SIGNAL(released()),this,SLOT(DataBtnSlot())); // connect(ui->pushButton_name3,SIGNAL(released()),this,SLOT(DataBtnSlot())); // connect(ui->pushButton_name4,SIGNAL(released()),this,SLOT(DataBtnSlot())); // connect(ui->pushButton_name5,SIGNAL(released()),this,SLOT(DataBtnSlot())); // connect(ui->pushButton_name6,SIGNAL(released()),this,SLOT(DataBtnSlot())); // connect(ui->pushButton_name7,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check0,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check1,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check2,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check3,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check4,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check5,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check6,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check7,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_CheckCharge,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_CheckDischarge,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_CheckAllSelect,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_USB,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_Delete,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_prepage,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_nextpage,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_Exit,SIGNAL(released()),this,SLOT(DataBtnSlot())); t_timer = new QTimer(this); connect(t_timer,SIGNAL(timeout()),this,SLOT(SystemTime())); } DataList_Page::~DataList_Page() { delete ui; delete t_timer; } void DataList_Page::showDataListPage() { initDataListButton(); set_MemoryRest(); updateDataNameList(); updateDataListButton(); SystemTime(); t_timer->start(500); this->exec(); } void DataList_Page::closeDataListPage() { t_timer->stop(); close(); } void DataList_Page::SystemTime(void) { checkIcon(); QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间 QString str = time.toString("yyyy-MM-dd hh:mm:ss"); //设置显示格式 ui->label_Time->setText(str); if(1 == work_thread->remoteState.to_workpage){ closeDataListPage(); } } bool DataList_Page::isMemoryIsFull(void) { int filecount = FileManage::FindLocalFileFromPath(testDataDir,"*.FBO"); if((filecount+10) >= File_Count_Max) { return true; } return false; } void DataList_Page::set_MemoryRest() { int filecount = fileManage.FindLocalFileFromPath(testDataDir,"*.FBO"); float rest_per = filecount; rest_per /= File_Count_Max; rest_per = 1-rest_per; //qDebug("filecount = %d,rest_per = %f",filecount,rest_per); if((filecount+10) >= File_Count_Max) { ui->label_testing->setText(tr("存储已满")); } else if(rest_per < 0.4) { ui->label_testing->setText(tr("存储余量:")+QString::number(rest_per*100,'f',1)+"%"); } } void DataList_Page::checkIcon() { if(work_thread->iconState.usbState) ui->label_USB->setPixmap(QPixmap(":new/prefix1/usb.png")); else { ui->label_USB->setPixmap(QPixmap("")); } } void DataList_Page::DataBtnSlot() { QPushButton *pb = dynamic_cast(sender()); if(ui->pushButton_Exit == pb) { closeDataListPage(); } else if(ui->pushButton_prepage == pb) { currentDataPageIndex--; for(int i=0;i<8;i++) { if(checkFlag[i]) checkFlag[i] = !checkFlag[i]; } checkedAllSelect = false; updateDataListButton(); } else if(ui->pushButton_nextpage == pb) { currentDataPageIndex++; for(int i=0;i<8;i++) { if(checkFlag[i]) checkFlag[i] = !checkFlag[i]; } checkedAllSelect = false; updateDataListButton(); } else if(listNameButton[0] == pb || listNameButton[1] == pb || listNameButton[2] == pb || listNameButton[3] == pb || listNameButton[4] == pb || listNameButton[5] == pb || listNameButton[6] == pb || listNameButton[7] == pb) { ; } else if(listCheckButton[0] == pb || listCheckButton[1] == pb || listCheckButton[2] == pb || listCheckButton[3] == pb || listCheckButton[4] == pb || listCheckButton[5] == pb || listCheckButton[6] == pb || listCheckButton[7] == pb) { /* for(int i=0;i<8;i++) { if(listCheckButton[i] == pb) { checkFlag[i] = !checkFlag[i]; if(!checkFlag[i]) { checkedAllSelect = false; } } } */ checkedAllSelect = true; for(int i=0;ipushButton_CheckDischarge == pb) { checkedDischarge = !checkedDischarge; currentDataPageIndex = 1; for(int i=0;i<8;i++) { checkFlag[i] = false; } updateDataNameList(); updateDataListButton(); } else if(ui->pushButton_CheckCharge == pb) { checkedCharge = !checkedCharge; currentDataPageIndex = 1; for(int i=0;i<8;i++) { checkFlag[i] = false; } updateDataNameList(); updateDataListButton(); } else if(ui->pushButton_CheckAllSelect == pb) { checkedAllSelect = !checkedAllSelect; for(int i=0;i<8;i++) { checkFlag[i] = checkedAllSelect; } updateDataListButton(); } else if(ui->pushButton_USB == pb) { usbSaveCheckData(); } else if(ui->pushButton_Delete == pb) { deleteCheckData(); } } QStringList DataList_Page::getCheckDataList() { QStringList nlst; for(int i=0;i<8;i++) { if(checkFlag[i]) { nlst.append(testDataDir+listNameButton[i]->text()); } } return nlst; } void DataList_Page::usbSaveCheckData() { if(0 == work_thread->iconState.usbState) { popBox(tr("U盘不存在!")); return; } QDir dir; if(!(dir.exists(usbDir+USBDataDir))) { if(false == dir.mkdir(usbDir+USBDataDir)) { popBox(tr("创建‘数据文件夹’失败!")); return; } } FileCopyDialog fcd; QStringList sl = getCheckDataList(); //fcd.CopyFiles(sl,usbDir+USBDataDir,true); bool ret = fcd.CopyFiles(sl,usbDir+USBDataDir,true); if(ret) popBox(tr("转存完成!")); else popBox(tr("转存失败!")); } void DataList_Page::deleteCheckData() { QStringList cd = getCheckDataList(); //QString fn; MessageBox box(this,tr("确定删除选中的文件吗?"),MessageBox::Yes|MessageBox::No,work_thread); if(box.exec()==MessageBox::Yes){ /* for(int i=0;i1){ currentDataPageIndex -= 1; } } //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ for(int i=0;i<8;i++) { checkFlag[i] = false; } checkedAllSelect = false; updateDataNameList(); updateDataListButton(); } } void DataList_Page::initUi() { listNameButton[0] = ui->pushButton_name0; listNameButton[1] = ui->pushButton_name1; listNameButton[2] = ui->pushButton_name2; listNameButton[3] = ui->pushButton_name3; listNameButton[4] = ui->pushButton_name4; listNameButton[5] = ui->pushButton_name5; listNameButton[6] = ui->pushButton_name6; listNameButton[7] = ui->pushButton_name7; listCheckButton[0] = ui->pushButton_check0; listCheckButton[1] = ui->pushButton_check1; listCheckButton[2] = ui->pushButton_check2; listCheckButton[3] = ui->pushButton_check3; listCheckButton[4] = ui->pushButton_check4; listCheckButton[5] = ui->pushButton_check5; listCheckButton[6] = ui->pushButton_check6; listCheckButton[7] = ui->pushButton_check7; } void DataList_Page::initDataListButton() { currentDataPageIndex = 1; ui->pushButton_USB->setEnabled(false); ui->pushButton_Delete->setEnabled(false); checkedDischarge = false; checkedCharge = false; checkedCycle = false; checkedAllSelect = false; for(int i=0;i<8;i++) { checkFlag[i] = false; } dataAllShow = true; } void DataList_Page::updateDataListButton() { nameNum = nameList.count(); //int dataNumOnCurrentPage; //当前页数据数量 if(nameNum>DataNumEachPage*currentDataPageIndex) dataNumOnCurrentPage = DataNumEachPage; else dataNumOnCurrentPage = nameNum-DataNumEachPage*(currentDataPageIndex-1); for(int i=0;isetEnabled(false); listNameButton[i]->setText(""); listCheckButton[i]->setEnabled(false); listCheckButton[i]->setIcon(QIcon("")); } int checkCount = 0; for(int i=0;isetEnabled(true); listNameButton[i]->setText(nameList.at(i+DataNumEachPage*(currentDataPageIndex-1))); listCheckButton[i]->setEnabled(true); if(checkFlag[i]) //|| checkedAllSelect) { checkCount++; listCheckButton[i]->setIcon(QIcon(":new/prefix1/check.png")); } else listCheckButton[i]->setIcon(QIcon(":new/prefix1/uncheck.png")); } if(currentDataPageIndex>1) ui->pushButton_prepage->setEnabled(true); else ui->pushButton_prepage->setEnabled(false); if(nameNum>DataNumEachPage*currentDataPageIndex) ui->pushButton_nextpage->setEnabled(true); else ui->pushButton_nextpage->setEnabled(false); if(nameNum%DataNumEachPage == 0) pageNum = nameNum/DataNumEachPage; else pageNum = (nameNum/DataNumEachPage)+1; if(pageNum<1) pageNum = 1; ui->label_page->setText(QString::number(currentDataPageIndex) +" / "+QString::number(pageNum)+tr(" 页")); if(checkCount==0) { ui->pushButton_USB->setEnabled(false); ui->pushButton_Delete->setEnabled(false); } else { ui->pushButton_USB->setEnabled(true); ui->pushButton_Delete->setEnabled(true); } if(checkedDischarge) ui->pushButton_CheckDischarge->setIcon(QIcon(":new/prefix1/check.png")); else ui->pushButton_CheckDischarge->setIcon(QIcon(":new/prefix1/uncheck.png")); if(checkedCharge) ui->pushButton_CheckCharge->setIcon(QIcon(":new/prefix1/check.png")); else ui->pushButton_CheckCharge->setIcon(QIcon(":new/prefix1/uncheck.png")); if(checkedAllSelect) ui->pushButton_CheckAllSelect->setIcon(QIcon(":new/prefix1/check.png")); else ui->pushButton_CheckAllSelect->setIcon(QIcon(":new/prefix1/uncheck.png")); } void DataList_Page::updateDataNameList() { QStringList tmpNameList; tmpNameList = fileManage.getFiles(testDataDir); nameList.clear(); if(!checkedDischarge && !checkedCharge) { dataAllShow = true; } if(dataAllShow) //全部数据 { nameList = tmpNameList; dataAllShow = false; } else { for(int i=0;i