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 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 #ifndef KPMCORE_DEACTIVATEVOLUMEGROUPOPERATION_H 0010 #define KPMCORE_DEACTIVATEVOLUMEGROUPOPERATION_H 0011 0012 #include "util/libpartitionmanagerexport.h" 0013 0014 #include "ops/operation.h" 0015 0016 #include <QString> 0017 0018 class DeactivateLogicalVolumeJob; 0019 class DeactivateVolumeGroupJob; 0020 class VolumeManagerDevice; 0021 class OperationStack; 0022 class PartitionTable; 0023 0024 class LIBKPMCORE_EXPORT DeactivateVolumeGroupOperation : public Operation 0025 { 0026 Q_DISABLE_COPY(DeactivateVolumeGroupOperation) 0027 0028 friend class OperationStack; 0029 0030 public: 0031 explicit DeactivateVolumeGroupOperation(VolumeManagerDevice& d); 0032 0033 public: 0034 QString iconName() const override { 0035 return QStringLiteral("edit-delete"); 0036 } 0037 0038 QString description() const override; 0039 0040 virtual bool targets(const Device&) const override { 0041 return true; 0042 } 0043 virtual bool targets(const Partition&) const override { 0044 return false; 0045 } 0046 0047 virtual void preview() override; 0048 virtual void undo() override; 0049 0050 static bool isDeactivatable(const VolumeManagerDevice* dev); 0051 0052 protected: 0053 DeactivateVolumeGroupJob* deactivateVolumeGroupJob() { 0054 return m_DeactivateVolumeGroupJob; 0055 } 0056 0057 DeactivateLogicalVolumeJob* deactivateLogicalVolumeJob() { 0058 return m_DeactivateLogicalVolumeJob; 0059 } 0060 0061 VolumeManagerDevice& device() { 0062 return m_Device; 0063 } 0064 0065 private: 0066 DeactivateVolumeGroupJob* m_DeactivateVolumeGroupJob; 0067 DeactivateLogicalVolumeJob* m_DeactivateLogicalVolumeJob; 0068 VolumeManagerDevice& m_Device; 0069 PartitionTable* m_PartitionTable; 0070 }; 0071 0072 #endif