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