PowerMaster/source/alarmEventMainDialog.cpp

131 lines
4.2 KiB
C++
Raw Normal View History

#include "alarmEventMainDialog.h"
#include "ui_alarmEventMainDialog.h"
#include "transparentMask.h"
#include "messageDialog.h"
//#include "dashboardFrame.h"
#include "alarmEventDataView.h"
AlarmEventMainDialog::AlarmEventMainDialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::alarmEventMainDialog)
, m_mode(Historical_All)
, m_pTransparentMask(nullptr)
, m_pMessageDialog(nullptr)
{
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
//时间范围初始化
QDateTime endTime = QDateTime::currentDateTime();
QDateTime beginTime = QDateTime::currentDateTime().addDays(-15);
ui->endTime->setDateTime(endTime);
ui->beginTime->setDateTime(beginTime);
m_eventFilter.setTimeRange(beginTime, endTime);
m_tableView = new AlarmEventDataView(Historical_All, this);
m_tableView->model()->setFilter(m_eventFilter);
ui->tableLayout->addWidget(m_tableView);
connect(m_tableView->model(), &AlarmEventDataModel::syncDataStatus, this, &AlarmEventMainDialog::onSyncDataStatus);
connect(m_tableView->model(), &AlarmEventDataModel::loadDataError, this, &AlarmEventMainDialog::onLoadDataError);
connect(ui->btnClose, &QPushButton::clicked, this, &AlarmEventMainDialog::onBtnClicked_close);
}
AlarmEventMainDialog::~AlarmEventMainDialog()
{
delete ui;
}
void AlarmEventMainDialog::showEvent(QShowEvent* event)
{
QDialog::showEvent(event);
}
void AlarmEventMainDialog::resizeEvent(QResizeEvent* event)
{
if(m_pTransparentMask && m_pTransparentMask->isVisible())
m_pTransparentMask->setGeometry(0, 0, this->width(), this->height());
}
void AlarmEventMainDialog::showTransparentMask()
{
if(m_pTransparentMask == nullptr)
m_pTransparentMask = new TransparentMask(this);
m_pTransparentMask->setGeometry(0, 0, this->width(), this->height());
m_pTransparentMask->show();
}
void AlarmEventMainDialog::hideTransparentMask()
{
if(m_pTransparentMask && m_pTransparentMask->isVisible())
m_pTransparentMask->hide();
}
void AlarmEventMainDialog::showMessageDialog(MessageDialogType type,const QString& strTitle,const QString& strContent)
{
if(m_pMessageDialog == nullptr)
{
m_pMessageDialog = new MessageDialog(this);
m_pMessageDialog->installEventFilter(this);
connect(m_pMessageDialog, SIGNAL(sgl_hide()), this, SLOT(onSignal_subDialogClose()));
}
m_pMessageDialog->setMessage(type, strTitle, strContent);
int nX = (this->width() - m_pMessageDialog->width()) * 0.5;
int nY = (this->height() - m_pMessageDialog->height()) * 0.5;
m_pMessageDialog->move(nX, nY);
m_pMessageDialog->raise();
if(type == type_question)
m_pMessageDialog->exec();
else
m_pMessageDialog->show();
}
void AlarmEventMainDialog::setMode(AlarmDataMode mode)
{
if(mode == Historical_Unconfirmed)
{
ui->label_WindowlTitle->setText("实时事件");
ui->conboBox_confirmStatus->setEnabled(false);
ui->conboBox_confirmStatus->setCurrentIndex(1);
m_eventFilter.setConfirmStatusFilter(0);
}
else if(mode == Historical_All)
{
ui->label_WindowlTitle->setText("历史事件");
ui->conboBox_confirmStatus->setEnabled(true);
ui->conboBox_confirmStatus->setCurrentIndex(0);
m_eventFilter.setConfirmStatusFilter(-1); //-1表示所有事件(确认+未确认)
}
m_tableView->model()->setMode(mode);
m_tableView->model()->setFilter(m_eventFilter);
m_mode = mode;
}
void AlarmEventMainDialog::onSignal_subDialogClose()
{
hideTransparentMask();
}
void AlarmEventMainDialog::onSyncDataStatus(const PaginationInfo& paginationInfo)
{
QString recordInfo = QString::fromWCharArray(L"共 %1 条记录").arg(paginationInfo.totalEntries);
ui->recordInfo->setText(recordInfo);
ui->lineEditPage->setText(QString::number(paginationInfo.currentPage));
}
void AlarmEventMainDialog::onLoadDataError(const QString& error)
{
showTransparentMask();
showMessageDialog(type_warning, QString("错误"), QString("加载数据失败(%1)").arg(error));
}
void AlarmEventMainDialog::onBtnClicked_close()
{
//reject();
hide();
emit sgl_hide();
}