File indexing completed on 2024-04-28 05:46:36

0001 /*
0002     SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
0003     SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
0004     SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
0005 
0006     SPDX-License-Identifier: GPL-3.0-or-later
0007 */
0008 
0009 #if !defined(SMARTDIALOGWIDGET_H)
0010 
0011 #define SMARTDIALOGWIDGET_H
0012 
0013 #include "ui_smartdialogwidgetbase.h"
0014 
0015 class QStyledItemDelegate;
0016 class QPoint;
0017 
0018 /** Central widget in the SmartDialogWidget
0019     @author Volker Lanz <vl@fidra.de>
0020 */
0021 class SmartDialogWidget : public QWidget, public Ui::SmartDialogWidgetBase
0022 {
0023 public:
0024     explicit SmartDialogWidget(QWidget* parent);
0025     ~SmartDialogWidget();
0026 
0027 public:
0028     QLabel& statusText() {
0029         Q_ASSERT(m_LabelSmartStatusText);
0030         return *m_LabelSmartStatusText;
0031     }
0032     QLabel& statusIcon() {
0033         Q_ASSERT(m_LabelSmartStatusIcon);
0034         return *m_LabelSmartStatusIcon;
0035     }
0036     QLabel& modelName() {
0037         Q_ASSERT(m_LabelSmartModelName);
0038         return *m_LabelSmartModelName;
0039     }
0040     QLabel& firmware() {
0041         Q_ASSERT(m_LabelSmartFirmware);
0042         return *m_LabelSmartFirmware;
0043     }
0044     QLabel& serialNumber() {
0045         Q_ASSERT(m_LabelSmartSerialNumber);
0046         return *m_LabelSmartSerialNumber;
0047     }
0048     QLabel& temperature() {
0049         Q_ASSERT(m_LabelSmartTemperature);
0050         return *m_LabelSmartTemperature;
0051     }
0052     QLabel& badSectors() {
0053         Q_ASSERT(m_LabelSmartBadSectors);
0054         return *m_LabelSmartBadSectors;
0055     }
0056     QLabel& poweredOn() {
0057         Q_ASSERT(m_LabelSmartPoweredOn);
0058         return *m_LabelSmartPoweredOn;
0059     }
0060     QLabel& powerCycles() {
0061         Q_ASSERT(m_LabelSmartPowerCycles);
0062         return *m_LabelSmartPowerCycles;
0063     }
0064 
0065     QLabel& selfTests() {
0066         Q_ASSERT(m_LabelSmartSelfTests);
0067         return *m_LabelSmartSelfTests;
0068     }
0069     QLabel& overallAssessment() {
0070         Q_ASSERT(m_LabelSmartOverallAssessment);
0071         return *m_LabelSmartOverallAssessment;
0072     }
0073 
0074     QTreeWidget& treeSmartAttributes() {
0075         Q_ASSERT(m_TreeSmartAttributes);
0076         return *m_TreeSmartAttributes;
0077     }
0078     const QTreeWidget& treeSmartAttributes() const {
0079         Q_ASSERT(m_TreeSmartAttributes);
0080         return *m_TreeSmartAttributes;
0081     }
0082 
0083 protected:
0084     void setupConnections();
0085     void loadConfig();
0086     void saveConfig() const;
0087     void onHeaderContextMenu(const QPoint& p);
0088 
0089 private:
0090     QStyledItemDelegate* m_SmartAttrDelegate;
0091 };
0092 
0093 #endif