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

0001 /*
0002     SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
0003     SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
0004 
0005     SPDX-License-Identifier: GPL-3.0-or-later
0006 */
0007 
0008 #if !defined(RESIZEDIALOG_H)
0009 
0010 #define RESIZEDIALOG_H
0011 
0012 #include "gui/sizedialogbase.h"
0013 
0014 class Partition;
0015 class Device;
0016 
0017 /** Let the user resize or move a Partition.
0018 
0019     @author Volker Lanz <vl@fidra.de>
0020 */
0021 class ResizeDialog : public SizeDialogBase
0022 {
0023 public:
0024     ResizeDialog(QWidget* parent, Device& device, Partition& p, qint64 minFirst, qint64 maxLast);
0025     ~ResizeDialog();
0026 
0027 public:
0028     bool isModified() const;
0029     qint64 resizedFirstSector() const {
0030         return m_ResizedFirstSector;
0031     }
0032     qint64 resizedLastSector() const {
0033         return m_ResizedLastSector;
0034     }
0035 
0036     void accept() override;
0037     void reject() override;
0038 
0039 protected:
0040     bool canGrow() const override;
0041     bool canShrink() const override;
0042     bool canMove() const override;
0043     void setupDialog() override;
0044     void setDirty() override;
0045     void rollback();
0046     void setResizedFirstSector(qint64 s) {
0047         m_ResizedFirstSector = s;
0048     }
0049     void setResizedLastSector(qint64 s) {
0050         m_ResizedLastSector = s;
0051     }
0052 
0053     qint64 originalFirstSector() const {
0054         return m_OriginalFirstSector;
0055     }
0056     qint64 originalLastSector() const {
0057         return m_OriginalLastSector;
0058     }
0059 
0060 private:
0061     qint64 m_OriginalFirstSector;
0062     qint64 m_OriginalLastSector;
0063     qint64 m_ResizedFirstSector;
0064     qint64 m_ResizedLastSector;
0065 };
0066 
0067 #endif