[PATCH 1/2] Use integer numbers of megabytes in the Reclaim dialog (#1040012)

Vratislav Podzimek vpodzime at redhat.com
Wed Dec 11 11:09:22 UTC 2013


Float numbers caused a number of bugs and issues that were really painful to
fix. It's time to stop playing with tenths and hundredths of megabytes nobody
really cares about in the year 2013.

Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
 pyanaconda/ui/gui/spokes/lib/resize.glade |  2 +-
 pyanaconda/ui/gui/spokes/lib/resize.py    | 32 +++++++++++++++----------------
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/pyanaconda/ui/gui/spokes/lib/resize.glade b/pyanaconda/ui/gui/spokes/lib/resize.glade
index 45489d2..0a4bce9 100644
--- a/pyanaconda/ui/gui/spokes/lib/resize.glade
+++ b/pyanaconda/ui/gui/spokes/lib/resize.glade
@@ -18,7 +18,7 @@
       <!-- column-name diskTooltip -->
       <column type="gchararray"/>
       <!-- column-name diskResizeTarget -->
-      <column type="gfloat"/>
+      <column type="gint"/>
       <!-- column-name diskName -->
       <column type="gchararray"/>
     </columns>
diff --git a/pyanaconda/ui/gui/spokes/lib/resize.py b/pyanaconda/ui/gui/spokes/lib/resize.py
index a18f09d..ee5cdbe 100644
--- a/pyanaconda/ui/gui/spokes/lib/resize.py
+++ b/pyanaconda/ui/gui/spokes/lib/resize.py
@@ -133,13 +133,13 @@ class ResizeDialog(GUIObject):
                 diskReclaimableSpace = disk.size
 
             itr = self._diskStore.append(None, [disk.id,
-                                                "%s %s" % (size_str(disk.size), disk.description),
+                                                "%s %s" % (size_str(int(disk.size)), disk.description),
                                                 fstype,
                                                 "<span foreground='grey' style='italic'>%s total</span>",
                                                 _(PRESERVE),
                                                 editable,
                                                 self._get_tooltip(disk),
-                                                disk.size,
+                                                int(disk.size),
                                                 disk.name])
 
             if disk.partitioned:
@@ -152,7 +152,7 @@ class ResizeDialog(GUIObject):
                     if dev.resizable:
                         freeSize = dev.size - dev.minSize
                         resizeString = _("%(freeSize)s of %(devSize)s") \
-                                       % {"freeSize": size_str(freeSize), "devSize": size_str(dev.size)}
+                                       % {"freeSize": size_str(int(freeSize)), "devSize": size_str(int(dev.size))}
                         if not dev.protected:
                             canShrinkSomething = True
                     else:
@@ -166,7 +166,7 @@ class ResizeDialog(GUIObject):
                                                  _(PRESERVE),
                                                  not dev.protected,
                                                  self._get_tooltip(dev),
-                                                 dev.size,
+                                                 int(dev.size),
                                                  dev.name])
                     diskReclaimableSpace += freeSize
 
@@ -178,17 +178,17 @@ class ResizeDialog(GUIObject):
                 self._diskStore.append(itr, [disk.id,
                                              _("""<span foreground='grey' style='italic'>Free space</span>"""),
                                              "",
-                                             "<span foreground='grey' style='italic'>%s</span>" % size_str(diskFree),
+                                             "<span foreground='grey' style='italic'>%s</span>" % size_str(int(diskFree)),
                                              _(PRESERVE),
                                              False,
                                              self._get_tooltip(disk),
-                                             float(converted),
+                                             int(converted),
                                              ""])
                 self._initialFreeSpace += diskFree
 
             # And then go back and fill in the total reclaimable space for the
             # disk, now that we know what each partition has reclaimable.
-            self._diskStore[itr][RECLAIMABLE_COL] = self._diskStore[itr][RECLAIMABLE_COL] % size_str(diskReclaimableSpace)
+            self._diskStore[itr][RECLAIMABLE_COL] = self._diskStore[itr][RECLAIMABLE_COL] % size_str(int(diskReclaimableSpace))
 
             totalDisks += 1
             totalReclaimableSpace += diskReclaimableSpace
@@ -227,19 +227,19 @@ class ResizeDialog(GUIObject):
            with here.
         """
         self._resizeSlider.handler_block_by_func(self.on_resize_value_changed)
-        self._resizeSlider.set_range(device.minSize, device.size)
+        self._resizeSlider.set_range(device.minSize, int(device.size))
         self._resizeSlider.handler_unblock_by_func(self.on_resize_value_changed)
         self._resizeSlider.set_value(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
+        distance = int(device.size) - int(device.minSize)
         onePercent = distance*0.01
         fivePercent = distance*0.05
         twentyPercent = distance*0.2
 
         adjustment = self.builder.get_object("resizeAdjustment")
-        adjustment.configure(value, device.minSize, device.size, onePercent, fivePercent, 0)
+        adjustment.configure(value, device.minSize, int(device.size), onePercent, fivePercent, 0)
 
         # And then the slider needs a couple tick marks for easier navigation.
         self._resizeSlider.clear_marks()
@@ -248,7 +248,7 @@ class ResizeDialog(GUIObject):
 
         # Finally, add tick marks for the ends.
         self._resizeSlider.add_mark(device.minSize, Gtk.PositionType.BOTTOM, size_str(device.minSize))
-        self._resizeSlider.add_mark(device.size, Gtk.PositionType.BOTTOM, size_str(device.size))
+        self._resizeSlider.add_mark(int(device.size), Gtk.PositionType.BOTTOM, size_str(int(device.size)))
 
     def _update_action_buttons(self, row):
         obj = PartStoreRow(*row)
@@ -325,9 +325,9 @@ class ResizeDialog(GUIObject):
         if obj.action == _(PRESERVE):
             return False
         if obj.action == _(SHRINK):
-            self._selectedReclaimableSpace += device.size - obj.target
+            self._selectedReclaimableSpace += int(device.size) - obj.target
         elif obj.action == _(DELETE):
-            self._selectedReclaimableSpace += device.size
+            self._selectedReclaimableSpace += int(device.size)
 
         return False
 
@@ -446,14 +446,14 @@ class ResizeDialog(GUIObject):
     def on_resize_value_changed(self, rng):
         (model, itr) = self._selection.get_selected()
 
-        old_delta = rng.get_adjustment().get_upper()- round(model[itr][RESIZE_TARGET_COL], 2)
+        old_delta = int(rng.get_adjustment().get_upper())- model[itr][RESIZE_TARGET_COL]
         self._selectedReclaimableSpace -= old_delta
 
         # Update the target size in the store.
-        model[itr][RESIZE_TARGET_COL] = round(rng.get_value(), 2)
+        model[itr][RESIZE_TARGET_COL] = int(rng.get_value())
 
         # Update the "Total selected space" label.
-        delta = rng.get_adjustment().get_upper() - round(rng.get_value(), 2)
+        delta = int(rng.get_adjustment().get_upper()) - int(rng.get_value())
         self._selectedReclaimableSpace += delta
         self._update_labels(selectedReclaimable=self._selectedReclaimableSpace)
 
-- 
1.8.4.2



More information about the anaconda-patches mailing list