Timer 추가
git-svn-id: svn://192.168.0.12/source@203 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user