[PATCH] Pass ints to Gtk resize functions (#1065021)
Brian C. Lane
bcl at redhat.com
Fri Feb 14 00:05:37 UTC 2014
When we pass Size objects to Gtk it ends up trying to use their human
readable string instead of an integer. Convert them before we use them.
---
pyanaconda/ui/gui/spokes/lib/resize.py | 35 +++++++++++++++++++++-------------
1 file changed, 22 insertions(+), 13 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/lib/resize.py b/pyanaconda/ui/gui/spokes/lib/resize.py
index 64c11e7..4557523 100644
--- a/pyanaconda/ui/gui/spokes/lib/resize.py
+++ b/pyanaconda/ui/gui/spokes/lib/resize.py
@@ -21,7 +21,6 @@
from __future__ import division
from collections import namedtuple
-from math import ceil
from gi.repository import Gdk, Gtk
@@ -244,30 +243,40 @@ class ResizeDialog(GUIObject):
slider and keyboard support. Any devices that are not resizable
will not have a slider displayed, so they do not need to be worried
with here.
+
+ :param device: The device
+ :type device: PartitionDevice
+ :param value: default value to set
+ :type value: Size
"""
- self._resizeSlider.handler_block_by_func(self.on_resize_value_changed)
- self._resizeSlider.set_range(int(ceil(device.minSize)), int(device.size))
- self._resizeSlider.handler_unblock_by_func(self.on_resize_value_changed)
- self._resizeSlider.set_value(value)
+ # Convert the Sizes to ints
+ minSize = int(device.minSize)
+ size = int(device.size)
+ default_value = int(value)
# The slider needs to be keyboard-accessible. We'll make small movements change in
# 1% increments, and large movements in 5% increments.
- distance = device.size - device.minSize
- onePercent = Size(bytes=distance / 100)
- fivePercent = Size(bytes=distance / 20)
- twentyPercent = Size(bytes=distance / 5)
+ distance = size - minSize
+ onePercent = int(distance / 100)
+ fivePercent = int(distance / 20)
+ twentyPercent = int(distance / 5)
+
+ self._resizeSlider.handler_block_by_func(self.on_resize_value_changed)
+ self._resizeSlider.set_range(minSize, size)
+ self._resizeSlider.handler_unblock_by_func(self.on_resize_value_changed)
+ self._resizeSlider.set_value(default_value)
adjustment = self.builder.get_object("resizeAdjustment")
- adjustment.configure(value, int(ceil(device.minSize)), int(device.size), onePercent, fivePercent, 0)
+ adjustment.configure(default_value, minSize, size, onePercent, fivePercent, 0)
# And then the slider needs a couple tick marks for easier navigation.
self._resizeSlider.clear_marks()
for i in range(1, 5):
- self._resizeSlider.add_mark(int(ceil(device.minSize)) + i*twentyPercent, Gtk.PositionType.BOTTOM, None)
+ self._resizeSlider.add_mark(minSize + i * twentyPercent, Gtk.PositionType.BOTTOM, None)
# Finally, add tick marks for the ends.
- self._resizeSlider.add_mark(device.minSize, Gtk.PositionType.BOTTOM, str(device.minSize))
- self._resizeSlider.add_mark(device.size, Gtk.PositionType.BOTTOM, str(device.size))
+ self._resizeSlider.add_mark(minSize, Gtk.PositionType.BOTTOM, str(device.minSize))
+ self._resizeSlider.add_mark(size, Gtk.PositionType.BOTTOM, str(device.size))
def _update_action_buttons(self, row):
obj = PartStoreRow(*row)
--
1.8.5.3
More information about the anaconda-patches
mailing list