134 lines
3.3 KiB
C++
134 lines
3.3 KiB
C++
|
#include "dialog_log.h"
|
|||
|
#include "ui_dialog_log.h"
|
|||
|
#include <QDateTime>
|
|||
|
#include "app_cfg.h"
|
|||
|
|
|||
|
dialog_log::dialog_log(QWidget *parent)
|
|||
|
: QDialog(parent)
|
|||
|
, ui(new Ui::dialog_log)
|
|||
|
{
|
|||
|
ui->setupUi(this);
|
|||
|
QHBoxLayout *bottom = new QHBoxLayout();
|
|||
|
|
|||
|
pbtn_clear = new QPushButton(this);
|
|||
|
cBox_autoScroll = new QCheckBox(this);
|
|||
|
pbtn_stop = new QPushButton(this);
|
|||
|
pbtn_continueScan = new QPushButton(this);
|
|||
|
pbtn_finishScan = new QPushButton(this);
|
|||
|
|
|||
|
pbtn_stop->setVisible(false);
|
|||
|
pbtn_continueScan->setVisible(false);
|
|||
|
pbtn_finishScan->setVisible(false);
|
|||
|
|
|||
|
pbtn_stop->setText(tr("cancel scan"));
|
|||
|
cBox_autoScroll->setText(tr("auto scroll"));
|
|||
|
pbtn_clear->setText(tr("clear"));
|
|||
|
pbtn_continueScan->setText(tr("continue scan"));
|
|||
|
pbtn_finishScan->setText(tr("finish scan"));
|
|||
|
|
|||
|
bottom->addWidget(pbtn_clear);
|
|||
|
bottom->addWidget(cBox_autoScroll);
|
|||
|
bottom->addStretch();
|
|||
|
bottom->addWidget(pbtn_stop);
|
|||
|
bottom->addWidget(pbtn_continueScan);
|
|||
|
bottom->addWidget(pbtn_finishScan);
|
|||
|
|
|||
|
ui->verticalLayout->addItem(bottom);
|
|||
|
|
|||
|
cBox_autoScroll->setChecked(getCfgValue("log", "autoScroll", false));
|
|||
|
|
|||
|
connect(cBox_autoScroll, SIGNAL(stateChanged(int)), this, SLOT(on_cbox_autoScroll_stateChanged(int)));
|
|||
|
connect(pbtn_stop, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_stop_clicked()));
|
|||
|
connect(pbtn_clear, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_clear_clicked()));
|
|||
|
connect(pbtn_continueScan, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_continuScan_cliked()));
|
|||
|
connect(pbtn_finishScan, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_finishScan_cliked()));
|
|||
|
}
|
|||
|
|
|||
|
dialog_log::~dialog_log()
|
|||
|
{
|
|||
|
delete ui;
|
|||
|
}
|
|||
|
|
|||
|
void dialog_log::addLog(const QString &log, bool err)
|
|||
|
{
|
|||
|
if (ui->listWidget->count() > 1000)
|
|||
|
{
|
|||
|
for(int i = 0; i < 100; ++i)
|
|||
|
{
|
|||
|
QListWidgetItem *item = ui->listWidget->takeItem(0);
|
|||
|
delete item;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
QDateTime timeCurrent = QDateTime::currentDateTime();
|
|||
|
QString time = timeCurrent.toString("[yy-MM-dd hh:mm:ss]");
|
|||
|
ui->listWidget->addItem(time + " " + log);
|
|||
|
|
|||
|
int idx = ui->listWidget->count() - 1;
|
|||
|
if (idx >= 0)
|
|||
|
ui->listWidget->item(idx)->setTextColor(err ? Qt::red : Qt::black);
|
|||
|
|
|||
|
if (cBox_autoScroll->isChecked())
|
|||
|
{
|
|||
|
ui->listWidget->scrollToItem(ui->listWidget->item(idx));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void dialog_log::updateStatus(bool online, bool isScanning)
|
|||
|
{
|
|||
|
if (!online)
|
|||
|
{
|
|||
|
pbtn_stop->hide();
|
|||
|
pbtn_continueScan->hide();
|
|||
|
pbtn_finishScan->hide();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (isScanning)
|
|||
|
{
|
|||
|
pbtn_stop->show();
|
|||
|
pbtn_continueScan->hide();
|
|||
|
pbtn_finishScan->hide();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
pbtn_stop->hide();
|
|||
|
pbtn_continueScan->show();
|
|||
|
pbtn_finishScan->show();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void dialog_log::closeEvent(QCloseEvent *event)
|
|||
|
{
|
|||
|
(void)event;
|
|||
|
on_pbtn_stop_clicked();
|
|||
|
}
|
|||
|
|
|||
|
void dialog_log::on_pbtn_continuScan_cliked()
|
|||
|
{
|
|||
|
emit continueScan();
|
|||
|
}
|
|||
|
|
|||
|
void dialog_log::on_pbtn_finishScan_cliked()
|
|||
|
{
|
|||
|
close();
|
|||
|
}
|
|||
|
|
|||
|
void dialog_log::on_cbox_autoScroll_stateChanged(int state)
|
|||
|
{
|
|||
|
saveCfgValue("log", "autoScroll", cBox_autoScroll->isChecked());
|
|||
|
}
|
|||
|
|
|||
|
void dialog_log::on_pbtn_stop_clicked(void)
|
|||
|
{
|
|||
|
emit stopScan();
|
|||
|
}
|
|||
|
|
|||
|
void dialog_log::on_pbtn_clear_clicked()
|
|||
|
{
|
|||
|
ui->listWidget->clear();
|
|||
|
}
|
|||
|
|
|||
|
|