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