# # upgrade_migratefs_gui.py: dialog for migrating filesystems on upgrades # # Mike Fulbright # # Copyright 2001 Red Hat, Inc. # # This software may be freely redistributed under the terms of the GNU # library public license. # # You should have received a copy of the GNU Library Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # from gtk import * from iw_gui import * from translate import _, N_ from constants import * import string import isys import iutil from log import log import upgrade from gnome.ui import * from fsset import * import gui class UpgradeMigrateFSWindow (InstallWindow): windowTitle = N_("Migrate Filesystems") htmlTag = "upmigfs" def getNext (self): for entry in self.migent: entry.setFormat(0) entry.setMigrate(0) entry.fsystem = entry.origfsystem for (cb, entry) in self.cbs: if cb.get_active(): entry.setFileSystemType(fileSystemTypeGet("ext3")) entry.setFormat(0) entry.setMigrate(1) return None def getScreen (self, fsset): self.migent = fsset.getMigratableEntries() self.fsset = fsset box = GtkVBox (FALSE, 5) box.set_border_width (5) text = N_("This release of %s supports " "the ext3 journalling filesystem. It has several " "benefits over the ext2 filesystem traditionally shipped " "in %s. It is possible to migrate the ext2 " "formatted partitions to ext3 without data loss.\n\n" "Which of these partitions would you like to migrate?" % (productName, productName)) label = GtkLabel (_(text)) label.set_alignment (0.5, 0.0) label.set_usize(400, -1) label.set_line_wrap (TRUE) box.pack_start(label, FALSE) cbox = GtkVBox(FALSE, 5) self.cbs = [] for entry in self.migent: if entry.fsystem.getName() != entry.origfsystem.getName(): migrating = 1 else: migrating = 0 cb = GtkCheckButton("/dev/%s - %s - %s" % (entry.device.getDevice(), entry.origfsystem.getName(), entry.mountpoint)) cb.set_active(migrating) cbox.pack_start(cb, FALSE) self.cbs.append((cb, entry)) sw = GtkScrolledWindow() sw.set_policy(POLICY_NEVER, POLICY_AUTOMATIC) sw.add_with_viewport(cbox) sw.set_usize(-1, 175) viewport = sw.children()[0] viewport.set_shadow_type(SHADOW_ETCHED_IN) a = GtkAlignment(0.25, 0.5) a.add(sw) box.pack_start(a, TRUE) a = GtkAlignment(0.5, 0.5) a.add(box) return a