Timer 추가

git-svn-id: svn://192.168.0.12/source@203 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2015-10-13 09:18:11 +00:00
parent bbafe240f3
commit 642843f754
2 changed files with 73 additions and 17 deletions

View File

@@ -13,7 +13,7 @@
#include "../Json/sjson.h"
#include "../common.h"
#define MINUTE 60000
Widget::Widget(QWidget *parent) :
QWidget(parent)
{
@@ -70,6 +70,16 @@ Widget::Widget(QWidget *parent) :
v_0_Layout->addWidget(new QLabel("Process List"));
m_plwProcess = new QListWidget;
v_0_Layout->addWidget(m_plwProcess);
{
QHBoxLayout *hSubLayout = new QHBoxLayout;
hSubLayout->addWidget(new QLabel("Timer(Minute): "));
m_pleExcutionTime = new QLineEdit;
m_pleExcutionTime->setValidator( new QIntValidator(1, 100000, this) );
m_pleExcutionTime->setText("60");
hSubLayout->addWidget(m_pleExcutionTime);
v_0_Layout->addLayout(hSubLayout);
}
{
QHBoxLayout *hSubLayout = new QHBoxLayout;
QPushButton *ppbInsert = new QPushButton("Insert");
@@ -162,7 +172,8 @@ Widget::Widget(QWidget *parent) :
vMainLayout->addWidget(ppbSend);
connect(ppbSend, SIGNAL(released()),this, SLOT(on_send()));
*/
connect(&m_timer, SIGNAL(timeout()), this, SLOT(time_update()));
connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(time_update()));
connect(&m_executionTimer, SIGNAL(timeout()), this, SLOT(time_execute()));
//m_pThread = new SGetThread;
setLayout(vMainLayout);
//m_pPutThread = new SPutThread[QThread::idealThreadCount()];
@@ -171,7 +182,7 @@ Widget::Widget(QWidget *parent) :
InsertLog("setup.ini don't find");
}
m_db = QSqlDatabase::addDatabase("QMYSQL");
m_timer.start(5000);
//m_statusTimer.start(5000);
Refresh();
for(int i = 0; i < D_PROCESS_MAX ;i++)
{
@@ -576,6 +587,11 @@ void Widget::on_refresh()
void Widget::time_update()
{
process_refresh();
}
void Widget::process_refresh()
{
m_plwProcess->clear();
for(int i = 0; i < D_PROCESS_MAX; i++)
{
@@ -583,16 +599,14 @@ void Widget::time_update()
QString str = m_aProcess[i].arguments().at(1);
switch(m_aProcess[i].state())
{
case QProcess::NotRunning:
str += "(Wait)";
m_aProcess[i].start();
break;
case QProcess::NotRunning:str += "(Wait)";break;
case QProcess::Running:str += "(Run)";break;
case QProcess::Starting:str += "(Start)";break;
}
QListWidgetItem *pItem = new QListWidgetItem(str,m_plwProcess);
pItem->setData(Qt::UserRole, QVariant(m_aProcess[i].arguments().at(0)));
}
}
}
void Widget::on_process_insert()
@@ -604,31 +618,50 @@ void Widget::on_process_insert()
strlist.append(item->text().trimmed());
for (int i = 0; i < D_PROCESS_MAX;i++)
{
if (m_aProcess[i].state() == QProcess::NotRunning)
if (m_aProcess[i].arguments().size() == 0)
{
#if defined(Q_OS_WIN32)
m_aProcess[i].setProgram("FilterProcess.exe");
#else
m_aProcess[i].setProgram("./FilterProcess");
#endif
#endif
m_aProcess[i].setArguments(strlist);
break;
}
}
}
process_refresh();
}
void Widget::on_process_start()
{
if (m_timer.isActive() == false)
m_timer.start(5000);
bool ok;
int time = m_pleExcutionTime->text().toInt(&ok);
if(!ok)
return;
if (m_statusTimer.isActive() == false)
m_statusTimer.start(5000);
if (m_executionTimer.isActive() == false)
m_executionTimer.start(time*MINUTE);
time_update();
time_execute();
}
void Widget::on_process_stop()
{
if (m_timer.isActive() == true)
m_timer.stop();
if (m_statusTimer.isActive() == true)
m_statusTimer.stop();
if (m_executionTimer.isActive() == true)
m_executionTimer.stop();
process_refresh();
}
void Widget::on_process_delete()
@@ -637,15 +670,34 @@ void Widget::on_process_delete()
{
for (int i = 0; i < D_PROCESS_MAX;i++)
{
if (m_aProcess[i].arguments().at(0) == item->data(Qt::UserRole).toString())
if (m_aProcess[i].arguments().size() > 0 && m_aProcess[i].arguments().at(0) == item->data(Qt::UserRole).toString())
{
Kill(i);
m_aProcess[i].setArguments(QStringList());
process_refresh();
return;
}
}
}
}
void Widget::time_execute()
{
for(int i = 0; i < D_PROCESS_MAX; i++)
{
if (m_aProcess[i].arguments().size() == 0) continue;
switch(m_aProcess[i].state())
{
case QProcess::NotRunning: m_aProcess[i].start();
break;
}
}
process_refresh();
}
void Widget::process_output()
{
QProcess *pPro = (QProcess*)sender();

View File

@@ -27,14 +27,17 @@ public:
void FilterProcssRefresh(QString _strGroupID);
void Refresh();
bool ReloadSetup();
private:
QListWidget *m_plw;
QListWidget *m_plwLog;
QListWidget *m_plwFilterProcess;
QListWidget *m_plwFilterProcessGroup;
QListWidget *m_plwProcess;
QTimer m_timer;
QTimer m_statusTimer;
QTimer m_executionTimer;
QLineEdit *m_pleFilterProcessGroup;
QLineEdit *m_pleExcutionTime;
QString m_strWebDataBaseHost;
QString m_strWebDataBaseUser;
@@ -68,7 +71,8 @@ private slots:
void on_filter_process_group_delete();
void on_filter_process_group_modify();
void time_update();
void time_execute();
void process_refresh();
void process_output();
void on_process_start();
void on_process_stop();