File indexing completed on 2024-05-05 05:48:51
0001 /* 0002 SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com> 0003 SPDX-FileCopyrightText: 2016-2017 Andrius Štikonas <andrius@stikonas.eu> 0004 SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho <caiojcarvalho@gmail.com> 0005 0006 SPDX-License-Identifier: GPL-3.0-or-later 0007 */ 0008 0009 #ifndef KPMCORE_CREATEVOLUMEGROUPOPERATION_H 0010 #define KPMCORE_CREATEVOLUMEGROUPOPERATION_H 0011 0012 #include "util/libpartitionmanagerexport.h" 0013 0014 #include "ops/operation.h" 0015 0016 #include "core/lvmdevice.h" 0017 0018 #include <QString> 0019 0020 class CreateVolumeGroupJob; 0021 class OperationStack; 0022 0023 class LIBKPMCORE_EXPORT CreateVolumeGroupOperation : public Operation 0024 { 0025 Q_DISABLE_COPY(CreateVolumeGroupOperation) 0026 0027 friend class OperationStack; 0028 0029 public: 0030 CreateVolumeGroupOperation(const QString& vgName, const QVector<const Partition*>& pvList, const qint32 peSize = 4); 0031 0032 public: 0033 QString iconName() const override { 0034 return QStringLiteral("document-new"); 0035 } 0036 0037 QString description() const override; 0038 0039 virtual bool targets(const Device&) const override { 0040 return true; 0041 } 0042 virtual bool targets(const Partition&) const override; 0043 0044 virtual void preview() override; 0045 virtual void undo() override; 0046 0047 static bool canCreate(); 0048 0049 protected: 0050 CreateVolumeGroupJob* createVolumeGroupJob() { 0051 return m_CreateVolumeGroupJob; 0052 } 0053 0054 const QVector<const Partition*>& PVList() { 0055 return m_PVList; 0056 } 0057 0058 private: 0059 CreateVolumeGroupJob* m_CreateVolumeGroupJob; 0060 const QVector<const Partition*> m_PVList; 0061 QString m_vgName; 0062 }; 0063 0064 #endif