⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myppp.ui.h

📁 在qt环境下开发的PPP拨号程序,具有良好的操作界面,方便开发通信程序
💻 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 + -