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

0001 /*
0002     SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
0003     SPDX-FileCopyrightText: 2016-2017 Andrius Štikonas <andrius@stikonas.eu>
0004 
0005     SPDX-License-Identifier: GPL-3.0-or-later
0006 */
0007 
0008 #if !defined(VOLUMEGROUPDIALOG_H)
0009 
0010 #define VOLUMEGROUPDIALOG_H
0011 
0012 #include <QVector>
0013 
0014 #include <QDialog>
0015 #include <QDialogButtonBox>
0016 #include <QPushButton>
0017 #include <QVBoxLayout>
0018 
0019 class VolumeGroupWidget;
0020 class Partition;
0021 
0022 class VolumeGroupDialog : public QDialog
0023 {
0024     Q_DISABLE_COPY(VolumeGroupDialog)
0025 
0026 public:
0027     VolumeGroupDialog(QWidget* parent, QString& vgName, QVector<const Partition*>& pvList);
0028     ~VolumeGroupDialog();
0029 
0030 protected:
0031     virtual void setupDialog();
0032     virtual void setupConstraints();
0033     virtual void setupConnections();
0034 
0035     virtual void updateOkButtonStatus();
0036     virtual void updateSizeInfos();
0037     virtual void updateSectorInfos();
0038     virtual void updatePartitionList();
0039 
0040     virtual void onVolumeTypeChanged(int index);
0041 
0042     VolumeGroupWidget& dialogWidget() {
0043         Q_ASSERT(m_DialogWidget);
0044         return *m_DialogWidget;
0045     }
0046     const VolumeGroupWidget& dialogWidget() const {
0047         Q_ASSERT(m_DialogWidget);
0048         return *m_DialogWidget;
0049     }
0050 
0051     QString& targetName() {
0052         return m_TargetName;
0053     }
0054 
0055     const QString& targetName() const {
0056         return m_TargetName;
0057     }
0058 
0059     QVector<const Partition*>& targetPVList() {
0060         return m_TargetPVList;
0061     }
0062 
0063     const QVector<const Partition*>& targetPVList() const {
0064         return m_TargetPVList;
0065     }
0066 
0067     bool isValidSize() const {
0068         return m_IsValidSize;
0069     }
0070 
0071     bool isValidName() const {
0072         return m_IsValidName;
0073     }
0074 
0075 protected:
0076     virtual void onPartitionListChanged();
0077 
0078 protected:
0079     VolumeGroupWidget* m_DialogWidget;
0080     QString& m_TargetName;
0081     QVector<const Partition*>& m_TargetPVList;
0082     bool m_IsValidSize;
0083     bool m_IsValidName;
0084 
0085     qint64 m_TotalSize;
0086     qint64 m_TotalUsedSize;
0087     qint32 m_ExtentSize;
0088 
0089     QDialogButtonBox* dialogButtonBox;
0090     QPushButton* okButton;
0091     QPushButton* cancelButton;
0092     QVBoxLayout *mainLayout;
0093 };
0094 
0095 #endif