diff options
author | Maarten Vanraes <alien@mageia.org> | 2016-08-07 21:26:00 +0200 |
---|---|---|
committer | Maarten Vanraes <alien@mageia.org> | 2016-08-07 21:26:00 +0200 |
commit | dd37b99c2e32b3357edcd64f0f11aba0d6e2e5d0 (patch) | |
tree | 547d0cdf7d22b2c52a0279b2d947916ffc560b47 | |
parent | 19eb7c865e69f6954a1aa4bc79d4b4146e8abf8d (diff) | |
download | manatools-dd37b99c2e32b3357edcd64f0f11aba0d6e2e5d0.tar manatools-dd37b99c2e32b3357edcd64f0f11aba0d6e2e5d0.tar.gz manatools-dd37b99c2e32b3357edcd64f0f11aba0d6e2e5d0.tar.bz2 manatools-dd37b99c2e32b3357edcd64f0f11aba0d6e2e5d0.tar.xz manatools-dd37b99c2e32b3357edcd64f0f11aba0d6e2e5d0.zip |
manadisk buttonbox: calculate size from children if parent doesn't have a size property
-rw-r--r-- | lib/ManaTools/Module/Disk.pm | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/ManaTools/Module/Disk.pm b/lib/ManaTools/Module/Disk.pm index 83ed4d65..8fd1232b 100644 --- a/lib/ManaTools/Module/Disk.pm +++ b/lib/ManaTools/Module/Disk.pm @@ -364,8 +364,18 @@ sub _rebuildButtonBox { my $totalWeight = $maxparts * $minsize; # TODO: dependant upon disk types, etc... $offset = $alignment; - $self->W("$self: parent $parent does not have a size property") if !defined($parent->prop('size')); - my $totalWidth = $parent->prop('size') - $boundary - $offset; # offset at beginning, boundary at end + my $size = 0; + if (!defined($parent->prop('size')) || !$parent->hasProp('size')) { + $self->W("$self: parent $parent does not have a size property, calculation from children"); + for my $i (@items) { + $size = $i->prop('start') + $i->prop('sectors') if ($i->prop('start') + $i->prop('sectors')) > $size; + } + $size = $size + $boundary; + } + else { + $size = $parent->prop('size'); + } + my $totalWidth = $size - $boundary - $offset; # offset at beginning, boundary at end my $start = $offset; my $buttonWidths = []; my $count = 0; |