Draw nested partition enable/disable support in Splitter widget.

This commit is contained in:
Teo Mrnjavac 2016-02-10 17:02:10 +01:00
parent aaeb28e45e
commit 65f5da5a8d
2 changed files with 18 additions and 7 deletions

View file

@ -54,8 +54,9 @@ PartitionSplitterWidget::PartitionSplitterWidget( QWidget* parent )
void void
PartitionSplitterWidget::init( Device* dev ) PartitionSplitterWidget::init( Device* dev, bool drawNestedPartitions )
{ {
m_drawNestedPartitions = drawNestedPartitions;
QList< PartitionSplitterItem > allPartitionItems; QList< PartitionSplitterItem > allPartitionItems;
PartitionSplitterItem* extendedPartitionItem = nullptr; PartitionSplitterItem* extendedPartitionItem = nullptr;
for ( auto it = PartitionIterator::begin( dev ); for ( auto it = PartitionIterator::begin( dev );
@ -69,13 +70,21 @@ PartitionSplitterWidget::init( Device* dev )
{} {}
}; };
if ( ( *it )->roles().has( PartitionRole::Logical ) && extendedPartitionItem ) if ( drawNestedPartitions )
extendedPartitionItem->children.append( newItem ); {
if ( ( *it )->roles().has( PartitionRole::Logical ) && extendedPartitionItem )
extendedPartitionItem->children.append( newItem );
else
{
allPartitionItems.append( newItem );
if ( ( *it )->roles().has( PartitionRole::Extended ) )
extendedPartitionItem = &allPartitionItems.last();
}
}
else else
{ {
allPartitionItems.append( newItem ); if ( !( *it )->roles().has( PartitionRole::Extended ) )
if ( ( *it )->roles().has( PartitionRole::Extended ) ) allPartitionItems.append( newItem );
extendedPartitionItem = &allPartitionItems.last();
} }
} }

View file

@ -39,7 +39,7 @@ class PartitionSplitterWidget : public QWidget
public: public:
explicit PartitionSplitterWidget( QWidget* parent = nullptr ); explicit PartitionSplitterWidget( QWidget* parent = nullptr );
void init( Device* dev ); void init( Device* dev, bool drawNestedPartitions );
void setSplitPartition( const QString& path, void setSplitPartition( const QString& path,
qint64 minSize, qint64 minSize,
@ -90,6 +90,8 @@ private:
int m_resizeHandleX; int m_resizeHandleX;
const int HANDLE_SNAP; const int HANDLE_SNAP;
bool m_drawNestedPartitions;
}; };
#endif // PARTITIONSPLITTERWIDGET_H #endif // PARTITIONSPLITTERWIDGET_H