mirror of
https://gitlab.gnome.org/GNOME/gparted
synced 2024-08-27 11:40:03 +00:00
![Mike Fleetwood](/assets/img/avatar_default.png)
Now use a pointer to the Partition object in Dialog_Base_Partition class and derived classes, Dialog_Partition_{Copy,New,Resize_Move}. This is equivalent to how the Partition objects are managed in the Operation and derived classes. The Partition object is allocated and copy constructed in each derived classes' set_data() method, called from each constructor and deallocated in the destructors. Considering the remaining Big 3, these classes are never copy constructed or copy assigned so provide private definitions and no implementations so the compiler enforces this. Bug 759726 - Implement Partition object polymorphism
46 lines
1.7 KiB
C++
46 lines
1.7 KiB
C++
/* Copyright (C) 2004 Bart
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef GPARTED_DIALOG_PARTITION_RESIZE_MOVE_H
|
|
#define GPARTED_DIALOG_PARTITION_RESIZE_MOVE_H
|
|
|
|
#include "../include/Dialog_Base_Partition.h"
|
|
#include "../include/Partition.h"
|
|
#include "../include/PartitionVector.h"
|
|
|
|
namespace GParted
|
|
{
|
|
|
|
class Dialog_Partition_Resize_Move : public Dialog_Base_Partition
|
|
{
|
|
public:
|
|
Dialog_Partition_Resize_Move( const FS & fs, const Partition & selected_partition,
|
|
const PartitionVector & partitions );
|
|
~Dialog_Partition_Resize_Move();
|
|
|
|
private:
|
|
Dialog_Partition_Resize_Move( const Dialog_Partition_Resize_Move & src ); // Not implemented copy constructor
|
|
Dialog_Partition_Resize_Move & operator=( const Dialog_Partition_Resize_Move & rhs ); // Not implemented assignment operator
|
|
|
|
void set_data( const Partition & selected_partition, const PartitionVector & partitions );
|
|
void Resize_Move_Normal( const PartitionVector & partitions );
|
|
void Resize_Move_Extended( const PartitionVector & partitions );
|
|
};
|
|
|
|
} //GParted
|
|
|
|
#endif /* GPARTED_DIALOG_PARTITION_RESIZE_MOVE_H */
|