mirror of
https://gitlab.gnome.org/GNOME/gparted
synced 2024-08-27 19:50:23 +00:00
![Mike Fleetwood](/assets/img/avatar_default.png)
Win_GParted::Merge_Operations() method was modifying the internals of Operation* objects; in particular the partition_new member variable. This is breaking data hiding and encapsulation tenant of object oriented programming. Implement exactly the same operation merge semantics, but hide the manipulation of the internals of the Operation* objects within the Operation* classes themselves. Bug 755214 - Refactor operation merging
47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
/* Copyright (C) 2004 Bart 'plors' Hakvoort
|
|
*
|
|
* 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_OPERATIONRESIZEMOVE_H
|
|
#define GPARTED_OPERATIONRESIZEMOVE_H
|
|
|
|
#include "../include/Operation.h"
|
|
|
|
namespace GParted
|
|
{
|
|
|
|
class OperationResizeMove : public Operation
|
|
{
|
|
public:
|
|
OperationResizeMove( const Device & device,
|
|
const Partition & partition_orig,
|
|
const Partition & partition_new ) ;
|
|
|
|
void apply_to_visual( std::vector<Partition> & partitions ) ;
|
|
|
|
private:
|
|
void create_description() ;
|
|
bool merge_operations( const Operation & candidate );
|
|
|
|
void apply_normal_to_visual( std::vector<Partition> & partitions ) ;
|
|
void apply_extended_to_visual( std::vector<Partition> & partitions ) ;
|
|
|
|
void remove_adjacent_unallocated( std::vector<Partition> & partitions, int index_orig ) ;
|
|
} ;
|
|
|
|
} //GParted
|
|
|
|
#endif /* GPARTED_OPERATIONRESIZEMOVE_H */
|