aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaarten Vanraes <alien@mageia.org>2016-08-07 21:26:00 +0200
committerMaarten Vanraes <alien@mageia.org>2016-08-07 21:26:00 +0200
commitdd37b99c2e32b3357edcd64f0f11aba0d6e2e5d0 (patch)
tree547d0cdf7d22b2c52a0279b2d947916ffc560b47
parent19eb7c865e69f6954a1aa4bc79d4b4146e8abf8d (diff)
downloadmanatools-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.pm14
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;