📄 myppp.ui.h
字号:
/****************************************************************************** ui.h extension file, included from the uic-generated form implementation.**** If you wish to add, delete or rename slots use Qt Designer which will** update this file, preserving your code. Create an init() slot in place of** a constructor, and a destroy() slot in place of a destructor.*****************************************************************************/#include "monthlyusageform.h"#include "settingsform.h"MYSQL mysql;int hcnt, mcnt, scnt;QTimer* counter;bool online;int dtr_idx;void updatedb(){ MYSQL_RES *mysql_res; MYSQL_ROW mysql_row; unsigned int numrows; mysql_init(&mysql); mysql_real_connect(&mysql,"localhost","myppp","squirrel", "myppp",0,NULL,0); mysql_query(&mysql,"SELECT * FROM usagelog"); mysql_res=mysql_store_result(&mysql); numrows=mysql_num_rows(mysql_res); for(int i=0;i<numrows;i++) mysql_row=mysql_fetch_row(mysql_res); QVariant yvar(mysql_row[0]); int year = yvar.toInt(); QString month = mysql_row[1]; QDate date = QDate::currentDate(); int this_year = date.year(); QString this_month = QDate::longMonthName(date.month()); if(month==this_month && year==this_year) { QVariant hvar(mysql_row[2]); QVariant mvar(mysql_row[3]); QVariant svar(mysql_row[4]); hcnt=hvar.toInt(); mcnt=mvar.toInt(); scnt=svar.toInt(); } else { QString sqlstr = "INSERT INTO usagelog VALUES (" + QString::number(this_year,10) + ",\"" + this_month + "\",0,0,0)"; mysql_query(&mysql,sqlstr); hcnt=0; mcnt=0; scnt=0; } mysql_query(&mysql,"SELECT * FROM dtr"); mysql_res=mysql_store_result(&mysql); dtr_idx=mysql_num_rows(mysql_res);}void myppp::displayTimer(){ QVariant svar(scnt), mvar(mcnt), hvar(hcnt); QString sstr, mstr, hstr; if(scnt<10) { sstr="0"+svar.toString(); } else sstr=svar.toString(); if(mcnt<10) { mstr="0"+mvar.toString(); } else mstr=mvar.toString(); if(hcnt<100) { if(hcnt<10) { hstr="00"+hvar.toString(); } else hstr="0"+hvar.toString(); } else hstr=hvar.toString(); timeLabel->setText(hstr+":"+mstr+":"+sstr); }void myppp::init(){ glob_t globbuf; char *name; glob("/etc/sysconfig/network-scripts/ifcfg-*", 0, NULL, &globbuf); for(int i=0; i<globbuf.gl_pathc; i++) { name = strrchr(globbuf.gl_pathv[i], '/'); name = strchr(name, '-'); if(!name) continue; name++; if(!name[0]) continue; QString item = name; if(item != "lo") connectcb->insertItem(item,-1); } globfree(&globbuf); updatedb(); displayTimer(); stopButton->setEnabled(FALSE); counter = new QTimer(this); connect(counter, SIGNAL(timeout()), this, SLOT(incTimer())); QSettings settings; connectcb->setCurrentItem(settings.readNumEntry ("/myppp/recent", 0)); online=FALSE;}void myppp::incTimer(){ if(scnt==59) { scnt=0; if(mcnt==59) { mcnt=0; if(hcnt==999) hcnt=0; else hcnt++; } else mcnt++; } else scnt++; displayTimer();}void myppp::toggleConnect(int connect) { QString ifname = connectcb->currentText(); QString sqlstr; QDate dtr_date = QDate::currentDate(); QString dtr_description = QDate::longMonthName(dtr_date.month()) + " " + QString::number(dtr_date.year(),10); QString dtr_user = getenv("USER"); if(connect) { system("/sbin/ifup " + ifname); updatedb(); dtr_idx++; sqlstr = "INSERT INTO dtr VALUES (" + QString::number(dtr_idx,10) + ",\"" + dtr_description + "\",NOW(),NULL,\"" + ifname + "\",\"" + dtr_user + "\")"; mysql_query(&mysql,sqlstr); counter->start(1000); online=TRUE; } else { system("/sbin/ifdown " + ifname); counter->stop(); QDate date = QDate::currentDate(); int this_year = date.year(); QString this_month = QDate::longMonthName(date.month()); QVariant hvar(hcnt), mvar(mcnt), svar(scnt); sqlstr = "UPDATE usagelog SET hours=" + hvar.toString() + ",minutes=" + mvar.toString() + ",seconds=" + svar.toString() + " WHERE month=\"" + this_month + "\" AND year=" + QString::number(this_year,10); mysql_query(&mysql,sqlstr); sqlstr = "UPDATE dtr SET logoff_datetime=NOW() where idx=" + QString::number(dtr_idx,10); mysql_query(&mysql,sqlstr); online=FALSE; }}void myppp::saveAttr(){ QSettings settings; QPoint p = this->pos(); settings.writeEntry("/myppp/PosX", p.x()); settings.writeEntry("/myppp/PosY", p.y()); settings.writeEntry("/myppp/recent", connectcb->currentItem());}void myppp::goButton_clicked(){ QString ifname = connectcb->currentText(); statusBar()->message("Starting interface " + ifname); toggleConnect(1); goButton->setEnabled(FALSE); stopButton->setEnabled(TRUE); connectcb->setEnabled(FALSE); statusBar()->message(ifname + " active");}void myppp::stopButton_clicked(){ statusBar()->message("Shutting down interface " + connectcb->currentText()); toggleConnect(0); goButton->setEnabled(TRUE); stopButton->setEnabled(FALSE); connectcb->setEnabled(TRUE); statusBar()->clear();}void myppp::usageButton_clicked(){ MonthlyUsageForm *frm = new MonthlyUsageForm; frm->show();}void myppp::settingsButton_clicked(){ settingsForm *frm = new settingsForm; frm->exec();}void myppp::closeButton_clicked(){ if(online) toggleConnect(0); saveAttr(); qApp->exit();}void myppp::destroy() { closeButton_clicked(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -