File indexing completed on 2024-04-28 05:45:54

0001 /*
0002     SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
0003     SPDX-FileCopyrightText: 2016 Andrius Štikonas <andrius@stikonas.eu>
0004 
0005     SPDX-License-Identifier: GPL-3.0-or-later
0006 */
0007 
0008 #ifndef KPMCORE_SETPARTFLAGSJOB_H
0009 #define KPMCORE_SETPARTFLAGSJOB_H
0010 
0011 #include "jobs/job.h"
0012 
0013 #include "core/partitiontable.h"
0014 
0015 class Device;
0016 class Partition;
0017 class Report;
0018 
0019 class QString;
0020 
0021 /** Set a Partition's flags.
0022 
0023     Set the Partition flags for a given Partition on a given Device.
0024 
0025     @author Volker Lanz <vl@fidra.de>
0026 */
0027 class SetPartFlagsJob : public Job
0028 {
0029 public:
0030     SetPartFlagsJob(Device& d, Partition& p, PartitionTable::Flags flags);
0031 
0032 public:
0033     bool run(Report& parent) override;
0034     qint32 numSteps() const override;
0035     QString description() const override;
0036 
0037 protected:
0038     Device& device() {
0039         return m_Device;
0040     }
0041     const Device& device() const {
0042         return m_Device;
0043     }
0044 
0045     Partition& partition() {
0046         return m_Partition;
0047     }
0048     const Partition& partition() const {
0049         return m_Partition;
0050     }
0051 
0052     PartitionTable::Flags flags() const {
0053         return m_Flags;
0054     }
0055 
0056 private:
0057     Device& m_Device;
0058     Partition& m_Partition;
0059     PartitionTable::Flags m_Flags;
0060 };
0061 
0062 #endif