123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- #include "checkperiodwidget.h"
- #include "ui_checkperiodwidget.h"
- #include "addperioddialog.h"
- #include "UIStyleManager.h"
- #include "customcombobox.h"
- #include <QFile>
- #include <QListWIdgetItem>
- CheckPeriodWidget::CheckPeriodWidget(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::CheckPeriodWidget)
- {
- ui->setupUi(this);
- m_logger = spdlog::get("ACASetting");
- if(m_logger == nullptr)
- {
- fmt::print("CheckPeriodWidget: Logger ACASetting not found\n");
- return;
- }
- /* 下拉框设置阴影 */
- ui->comboBox_selectCompareItem->setViewShadowEffect();
- connect(ui->pBtn_addDetectPlan, &QPushButton::clicked, this, &CheckPeriodWidget::do_pBtn_addDetectPlan_clicked);
- connect(ui->pBtn_addNoDetectPlan, &QPushButton::clicked, this, &CheckPeriodWidget::do_pBtn_addNoDetectPlan_clicked);
- /* 设置UI */
- UIStyle.registerWidget(this);
- QString qssPath = UIStyle.getQSSPath() + "/onedetectplan.qss";
- QFile file(qssPath);
- if(file.open(QFile::ReadOnly))
- {
- m_qssPlan = file.readAll();
- file.close();
- } else
- {
- SPDLOG_LOGGER_WARN(m_logger, "打开QSS文件失败: {}", qssPath.toStdString());
- }
- /* 初始化列表 */
- initListWidget();
- }
- CheckPeriodWidget::~CheckPeriodWidget()
- {
- UIStyle.unregisterWidget(this);
- delete ui;
- }
- /* 获取计划列表 */
- QList<OnePlan_t> CheckPeriodWidget::getDetectPlanList()
- {
- m_planList.clear();
- for(int i = 0; i < ui->listWidget_detectPlan->count(); ++i)
- {
- QListWidgetItem *item = ui->listWidget_detectPlan->item(i);
- OneDetectPlan *detectPlan = qobject_cast<OneDetectPlan*>(ui->listWidget_detectPlan->itemWidget(item));
- if(detectPlan)
- {
- m_planList.append(detectPlan->getPlan());
- }
- }
- return m_planList;
- }
- /* 设置计划列表 */
- void CheckPeriodWidget::setDetectPlanList(const QList<OnePlan_t>& planList)
- {
- m_planList = planList;
- ui->listWidget_detectPlan->clear();
- for(const auto& plan : m_planList)
- {
- addDetectPlan(plan);
- }
- }
- /* 添加一个检测计划 */
- void CheckPeriodWidget::do_pBtn_addDetectPlan_clicked()
- {
- AddPeriodDialog dlg(PERIOD_WEEK);
- /* 更新计划列表 */
- getDetectPlanList();
- /* 设置计划列表 */
- dlg.setPlanList(m_planList);
- dlg.exec();
- if(!dlg.isOK())
- {
- return;
- }
- OnePlan_t plan = dlg.getPlan();
- addDetectPlan(plan);
- }
- /* 添加一个不检测计划 */
- void CheckPeriodWidget::do_pBtn_addNoDetectPlan_clicked()
- {
- AddPeriodDialog dlg(PERIOD_DATE);
- dlg.exec();
- }
- /* 删除一个检测计划 */
- void CheckPeriodWidget::do_pBtn_deleteDetectPlan_clicked()
- {
- }
- /* 删除一个不检测计划 */
- void CheckPeriodWidget::do_pBtn_deleteNoDetectPlan_clicked()
- {
- }
- /* 初始化QListWidget */
- void CheckPeriodWidget::initListWidget()
- {
- ui->listWidget_detectPlan->clear();
- ui->listWidget_noDetectPlan->clear();
- /* 禁用横向滚动条 */
- ui->listWidget_detectPlan->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- ui->listWidget_noDetectPlan->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- /* 设置行间距为16 */
- ui->listWidget_detectPlan->setSpacing(8);
- ui->listWidget_noDetectPlan->setSpacing(8);
- /* 添加检测计划 */
- // for (int i = 0; i < 8; ++i) {
- // OnePlan_t plan;
- // addDetectPlan(plan);
- // }
- }
- /* 添加一个检测计划 */
- void CheckPeriodWidget::addDetectPlan(const OnePlan_t& plan)
- {
- OneDetectPlan *detectPlan = new OneDetectPlan(ui->listWidget_detectPlan);
- detectPlan->setQSS(m_qssPlan);
- detectPlan->setPlan(plan);
- connect(detectPlan, &OneDetectPlan::signal_oneDetectPlanCloseClicked,
- this, &CheckPeriodWidget::do_pBtn_deleteDetectPlan_clicked);
- /* 将数据插入到列表中 */
- QListWidgetItem *item = new QListWidgetItem(ui->listWidget_detectPlan);
- item->setSizeHint(detectPlan->sizeHint());
- ui->listWidget_detectPlan->setItemWidget(item, detectPlan);
- }
|