[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [PATCH 2/2] Use None to indicate use of default value for clearPartType in UI (#503310, #503681).





- do not set clearPartType in parttype dialog just to set preselected combobox value which was stupid, clearPartType should be set only after [Next]


I forgot to modify text UI too, fixed patch 2/2 attached

Radek
>From 879354bcb7f2bc8237a9bd2f0e45d5b91d325235 Mon Sep 17 00:00:00 2001
From: Radek Vykydal <rvykydal redhat com>
Date: Tue, 2 Jun 2009 20:42:36 +0200
Subject: [PATCH 2/2] Use None to indicate use of default value for clearPartType in UI (#503310, #503681).

If we are to set clearPartType in "parttype" UI (there is no clearpart in KS), set it really there,
instead of setting it to CLEARPART_TYPE_NONE just to pass storage device discovery checks
which are done between ks processing and UI parttype.
---
 installclass.py          |    9 +--------
 installclasses/fedora.py |    3 +--
 installclasses/rhel.py   |    3 +--
 iw/autopart_type.py      |   13 +++++++------
 iw/partition_gui.py      |    1 +
 kickstart.py             |    2 +-
 storage/__init__.py      |    4 ++--
 storage/partitioning.py  |    2 +-
 textw/partition_text.py  |    6 +++++-
 9 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/installclass.py b/installclass.py
index 913444f..d0f535d 100644
--- a/installclass.py
+++ b/installclass.py
@@ -187,8 +187,7 @@ class BaseInstallClass(object):
         from backend import AnacondaBackend
         return AnacondaBackend
 
-    def setDefaultPartitioning(self, storage, platform,
-                               clear = CLEARPART_TYPE_LINUX, doClear = True):
+    def setDefaultPartitioning(self, storage, platform):
         autorequests = [PartSpec(mountpoint="/", fstype=storage.defaultFSType,
                                  size=1024, grow=True, asVol=True)]
 
@@ -200,12 +199,6 @@ class BaseInstallClass(object):
         autorequests.append(PartSpec(fstype="swap", size=minswap, maxSize=maxswap,
                                      grow=True, asVol=True))
 
-        if doClear:
-            storage.clearPartType = clear
-            storage.clearPartDisks = []
-        else:
-            storage.clearPartType = CLEARPART_TYPE_NONE
-
         storage.autoPartitionRequests = autorequests
 
 
diff --git a/installclasses/fedora.py b/installclasses/fedora.py
index 9c97390..98002ed 100644
--- a/installclasses/fedora.py
+++ b/installclasses/fedora.py
@@ -63,8 +63,7 @@ class InstallClass(BaseInstallClass):
 	BaseInstallClass.setInstallData(self, anaconda)
         BaseInstallClass.setDefaultPartitioning(self,
                                                 anaconda.id.storage,
-                                                anaconda.platform,
-                                                CLEARPART_TYPE_NONE)
+                                                anaconda.platform)
 
     def setSteps(self, anaconda):
 	BaseInstallClass.setSteps(self, anaconda);
diff --git a/installclasses/rhel.py b/installclasses/rhel.py
index aa3590d..5c0d715 100644
--- a/installclasses/rhel.py
+++ b/installclasses/rhel.py
@@ -89,8 +89,7 @@ class InstallClass(BaseInstallClass):
 	BaseInstallClass.setInstallData(self, anaconda)
         BaseInstallClass.setDefaultPartitioning(self, 
                                                 anaconda.id.storage,
-                                                anaconda.platform,
-                                                CLEARPART_TYPE_NONE)
+                                                anaconda.platform)
 
     def setSteps(self, anaconda):
         dispatch = anaconda.dispatch
diff --git a/iw/autopart_type.py b/iw/autopart_type.py
index bb71401..f192d6a 100644
--- a/iw/autopart_type.py
+++ b/iw/autopart_type.py
@@ -444,15 +444,16 @@ class PartitionTypeWindow(InstallWindow):
                 (_("Use free space"), CLEARPART_TYPE_NONE),
                 (_("Create custom layout"), -1))
 
-        # Default for UI is Remove linux partitions, so if we
-        # haven't specified something else in ks, set this default.
-        # This is not correct if we specify clearpart --none in ks.
-        if self.storage.clearPartType == CLEARPART_TYPE_NONE:
-            self.storage.clearPartType = CLEARPART_TYPE_LINUX
+        # if not set in ks, use UI default
+        if self.storage.clearPartType is None:
+            preselected = CLEARPART_TYPE_LINUX
+        else:
+            preselected = self.storage.clearPartType 
+
         for (txt, val) in opts:
             iter = store.append(None)
             store[iter] = (txt, val)
-            if val == self.storage.clearPartType:
+            if val == preselected:
                 self.combo.set_active_iter(iter)
 
         if ((self.combo.get_active() == -1) or
diff --git a/iw/partition_gui.py b/iw/partition_gui.py
index 9968f07..b97a49b 100644
--- a/iw/partition_gui.py
+++ b/iw/partition_gui.py
@@ -664,6 +664,7 @@ class PartitionWindow(InstallWindow):
 
     def getPrev(self):
         self.diskStripeGraph.shutDown()
+        self.storage.clearPartType = None
         self.storage.reset()
         self.tree.clear()
         del self.parent
diff --git a/kickstart.py b/kickstart.py
index 474ecec..ce63068 100644
--- a/kickstart.py
+++ b/kickstart.py
@@ -147,7 +147,7 @@ class AutoPart(commands.autopart.F9_AutoPart):
 
         # sets up default autopartitioning.  use clearpart separately
         # if you want it
-        self.handler.id.instClass.setDefaultPartitioning(self.handler.id.storage, self.handler.anaconda.platform, doClear=False)
+        self.handler.id.instClass.setDefaultPartitioning(self.handler.id.storage, self.handler.anaconda.platform)
         self.handler.id.storage.doAutoPart = True
 
         if self.encrypted:
diff --git a/storage/__init__.py b/storage/__init__.py
index 41f09e2..a364bf8 100644
--- a/storage/__init__.py
+++ b/storage/__init__.py
@@ -202,7 +202,7 @@ class Storage(object):
         self.ignoredDisks = []
         self.exclusiveDisks = []
         self.doAutoPart = False
-        self.clearPartType = CLEARPART_TYPE_NONE
+        self.clearPartType = None
         self.clearPartDisks = []
         self.encryptedAutoPart = False
         self.encryptionPassphrase = None
@@ -965,7 +965,7 @@ class Storage(object):
         f.write("# not guaranteed to work\n")
 
         # clearpart
-        if self.clearPartType == CLEARPART_TYPE_NONE:
+        if self.clearPartType is None or self.clearPartType == CLEARPART_TYPE_NONE:
             args = ["--none"]
         elif self.clearPartType == CLEARPART_TYPE_LINUX:
             args = ["--linux"]
diff --git a/storage/partitioning.py b/storage/partitioning.py
index 8e9ab3c..de3e3e5 100644
--- a/storage/partitioning.py
+++ b/storage/partitioning.py
@@ -306,7 +306,7 @@ def clearPartitions(storage):
             - Needs some error handling, especially for the parted bits.
 
     """
-    if storage.clearPartType == CLEARPART_TYPE_NONE:
+    if storage.clearPartType is None or storage.clearPartType == CLEARPART_TYPE_NONE:
         # not much to do
         return
 
diff --git a/textw/partition_text.py b/textw/partition_text.py
index 48b7c18..b6960ef 100644
--- a/textw/partition_text.py
+++ b/textw/partition_text.py
@@ -67,7 +67,11 @@ class PartitionTypeWindow:
             for (txt, val) in opts:
                 typebox.append(txt, val)
 
-            typebox.setCurrent(anaconda.id.storage.clearPartType)
+            if anaconda.id.storage.clearPartType is None:
+                preselection = CLEARPART_TYPE_LINUX
+            else:
+                preselection = anaconda.id.storage.clearPartType
+            typebox.setCurrent(preselection)
 
             g.add(typebox, 0, 1, (0, 1, 0, 0))
 
-- 
1.6.0.6


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]