MonitorWidget::MonitorWidget(QTabWidget* parent):QTabWidget(parent) { // setTabShape(QTabWidget::Triangular); // setFocusPolicy(Qt::NoFocus); setStyleSheet("QTabBar::tab{background: #D1EEEE;min-width:135;min-height:40;} \ QTabBar::tab:hover{background: white} \ QTabBar::tab:selected{background:lightseagreen;border-color: #EE0000}"); widget1 = new MoniFileWidget; widget1->setFocusPolicy(Qt::NoFocus); widget1->setFrameShape(QListWidget::NoFrame);//无边框 widget1->setStyleSheet("QListWidget::item:selected{background-color:#C1FFC1;color:black;} "); //开始或暂停监控 connect(widget1,SIGNAL(StartSig(QString,int)),this,SLOT(StartMonitorSlot(QString,int))); InotifyFilter itmp; string s,sname; int b; ifstream in("./etc/gaoyuan/record.txt"); //监控文件 while(!in.eof()) { in>>s; if(in.fail()) break; cout<<s<<endl; sname = s; widget1->SetSelectedFile(QString::fromStdString(s)); //以下读取过滤 in>>s; itmp.startdate = s; in>>s; itmp.enddate = s; in>>s; itmp.suffix = s; in>>s; itmp.startsize = s; in>>s; itmp.endsize = s; in>>b; itmp.isfolder = b; in>>b; itmp.isfile = b; //读取起始监控日期 in>>s; cout<<s<<endl; itmp.idate = s; widget1->AddListItem(QString::fromStdString(s)); //加入监控列表 fnotify.InotifyListAdd(sname,itmp); } in.close(); addMonitorButton = new QPushButton(tr("添加监控项")); addMonitorButton->setFocusPolicy(Qt::NoFocus); addMonitorButton->setStyleSheet("background-color:white"); connect(addMonitorButton,SIGNAL(clicked()),this,SLOT(ShowAddMonitorSlot())); // widget2 = new QWidget; widget3 = new VersionWidget; widget3->setFocusPolicy(Qt::NoFocus); widget3->setFrameShape(QListWidget::NoFrame);//无边框 widget3->setStyleSheet("QListWidget::item:selected{background-color:#C1FFC1;color:black;} "); connect(&fnotify,SIGNAL(VersionAlterSig(string,string,string)),widget3,SLOT(VersionAlterSlot(string,string,string))); setFocusPolicy(Qt::NoFocus); addTab(widget1,tr("监控列表")); addTab(addMonitorButton,tr("添加监控")); addTab(widget3,tr("版本回退")); } //add monitor void MonitorWidget::ShowAddMonitorSlot() { AddMonitorWidget* w = new AddMonitorWidget; connect(w,SIGNAL(AddMonitorItemSig(string,InotifyFilter)),this,SLOT(AddMonitorItemSlot(string,InotifyFilter))); w->resize(800,600); w->show(); }
void AddMonitorWidget::okSlot() { QDateTime time = QDateTime::currentDateTime(); QString stime = time.toString("yyyy-MM-dd|hh:mm:ss|ddd"); ofstream out; out.open("./etc/lyh/record.txt",ios::app); set<string>::iterator it; for(it = fileSet.begin();it != fileSet.end();it++) { cout<<*it<<endl; //文件名 out<<*it<<" "; if(startdate->text() == "") { out<<"null"<<" "; filter.startdate = "null"; } else { out<<(startdate->text()).toStdString()<<" "; filter.startdate = (startdate->text()).toStdString(); } if(enddate->text() == "") { out<<"null"<<" "; filter.enddate = "null"; } else { out<<(enddate->text()).toStdString()<<" "; filter.enddate = (enddate->text()).toStdString(); } if(suffix->text() == "") { out<<"null"<<" "; filter.suffix = "null"; } else { out<<(suffix->text()).toStdString()<<" "; filter.suffix = (suffix->text()).toStdString(); } if(startsize->text() == "") { out<<"null"<<" "; filter.startsize = "null"; } else { out<<(startsize->text()).toStdString()<<" "; filter.startsize = (startsize->text()).toStdString(); } if(endsize->text() == "") { out<<"null"<<" "; filter.endsize = "null"; } else { out<<(endsize->text()).toStdString()<<" "; filter.endsize = (endsize->text()).toStdString(); } out<<folderCBox->isChecked()<<" "; filter.isfolder = folderCBox->isChecked(); out<<fileCBox->isChecked()<<" "; filter.isfile = fileCBox->isChecked(); out<<stime.toStdString()<<"\n"; filter.idate = stime.toStdString(); //拷贝监控文件的副本 string command = "cp -r " + (*it) + " ./etc/lyh" + getRoadFolder(*it); system(command.c_str()); emit(AddMonitorItemSig(*it,filter)); } out.close(); this->close(); }