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 
0005     SPDX-License-Identifier: GPL-3.0-or-later
0006 */
0007 
0008 #if !defined(SMARTDIALOG_H)
0009 
0010 #define SMARTDIALOG_H
0011 
0012 #include <QDialog>
0013 
0014 class Device;
0015 class SmartDialogWidget;
0016 
0017 class QWidget;
0018 class QString;
0019 class QPoint;
0020 class QDialogButtonBox;
0021 
0022 /** Show SMART properties.
0023 
0024     Dialog that shows SMART status and properties for a device
0025 
0026     @author Volker Lanz <vl@fidra.de>
0027 */
0028 class SmartDialog : public QDialog
0029 {
0030     Q_DISABLE_COPY(SmartDialog)
0031 
0032 public:
0033     SmartDialog(QWidget* parent, Device& d);
0034     ~SmartDialog();
0035 
0036 protected:
0037     void saveSmartReport();
0038 
0039     void setupDialog();
0040     void setupConnections();
0041 
0042     Device& device() {
0043         return m_Device;
0044     }
0045     const Device& device() const {
0046         return m_Device;
0047     }
0048 
0049     SmartDialogWidget& dialogWidget() {
0050         Q_ASSERT(m_DialogWidget);
0051         return *m_DialogWidget;
0052     }
0053     const SmartDialogWidget& dialogWidget() const {
0054         Q_ASSERT(m_DialogWidget);
0055         return *m_DialogWidget;
0056     }
0057 
0058     QString toHtml() const;
0059 
0060 private:
0061     Device& m_Device;
0062     SmartDialogWidget* m_DialogWidget;
0063     QDialogButtonBox* buttonBox;
0064 };
0065 
0066 #endif