Keep Splitter items on the stack.

This commit is contained in:
Teo Mrnjavac 2016-02-22 18:51:44 +01:00
parent 7bf0fa2575
commit bafaa6a225
2 changed files with 52 additions and 49 deletions

View file

@ -31,6 +31,11 @@ struct PartitionSplitterItem
qint64 size;
QVector< PartitionSplitterItem > children;
static PartitionSplitterItem null() { return { QString(), QColor(), false, 0 }; }
bool isNull() const { return itemPath.isEmpty() && size == 0; }
operator bool() const { return !isNull(); }
};
class PartitionSplitterWidget : public QWidget
@ -75,16 +80,15 @@ private:
int x );
template < typename F >
PartitionSplitterItem* _findItem( QVector< PartitionSplitterItem >& items,
F condition );
PartitionSplitterItem _findItem( QVector< PartitionSplitterItem >& items, F condition );
QPair< QVector< PartitionSplitterItem >, qreal >
computeItemsVector( const QVector< PartitionSplitterItem >& originalItems ) const;
QVector< PartitionSplitterItem > m_items;
QString m_itemToResizePath;
PartitionSplitterItem* m_itemToResize;
PartitionSplitterItem* m_itemToResizeNext;
PartitionSplitterItem m_itemToResize;
PartitionSplitterItem m_itemToResizeNext;
qint64 m_itemMinSize;
qint64 m_itemMaxSize;