summaryrefslogtreecommitdiffstats
path: root/gui.py
diff options
context:
space:
mode:
Diffstat (limited to 'gui.py')
-rwxr-xr-xgui.py139
1 files changed, 83 insertions, 56 deletions
diff --git a/gui.py b/gui.py
index 363b642b8..63703fe3d 100755
--- a/gui.py
+++ b/gui.py
@@ -562,33 +562,6 @@ class ProgressWindow:
self.window.destroy ()
rootPopBusyCursor()
-class ScpWindow:
- def __init__(self, screen=None):
- self.scpxml = gtk.glade.XML(findGladeFile("scp.glade"),
- domain="anaconda")
- self.win = self.scpxml.get_widget("saveRemoteDlg")
-
- addFrame(self.win)
- self.win.show_all()
- self.window = self.win
-
- def getrc(self):
- if self.rc == 0:
- return None
- else:
- host = self.scpxml.get_widget("hostEntry")
- remotePath = self.scpxml.get_widget("remotePathEntry")
- userName = self.scpxml.get_widget("userNameEntry")
- password = self.scpxml.get_widget("passwordEntry")
- return (host.get_text(), remotePath.get_text(),
- userName.get_text(), password.get_text())
-
- def run(self):
- self.rc = self.window.run()
-
- def pop(self):
- self.window.destroy()
-
class InstallKeyWindow:
def __init__(self, anaconda, key):
(keyxml, self.win) = getGladeWidget("instkey.glade", "instkeyDialog")
@@ -644,9 +617,79 @@ class InstallKeyWindow:
def destroy(self):
self.win.destroy()
-
-class ExceptionWindow:
+class SaveExceptionWindow:
+ def __init__(self, anaconda, longTracebackFile=None, screen=None):
+ exnxml = gtk.glade.XML(findGladeFile("exnSave.glade"), domain="anaconda")
+
+ self.hostEntry = exnxml.get_widget("hostEntry")
+ self.destEntry = exnxml.get_widget("destEntry")
+ self.usernameEntry = exnxml.get_widget("usernameEntry")
+ self.passwordEntry = exnxml.get_widget("passwordEntry")
+
+ self.diskButton = exnxml.get_widget("diskButton")
+ self.diskCombo = exnxml.get_widget("diskCombo")
+ self.remoteButton = exnxml.get_widget("remoteButton")
+ self.remoteBox = exnxml.get_widget("remoteHBox")
+ self.win = exnxml.get_widget("saveDialog")
+
+ self.diskButton.connect("toggled", self.diskButton_changed)
+
+ cell = gtk.CellRendererText()
+ self.diskCombo.pack_start(cell, True)
+ self.diskCombo.set_attributes(cell, text=1)
+
+ store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
+
+ dests = anaconda.id.diskset.exceptionDisks(anaconda)
+
+ if len(dests) > 0:
+ for d in dests:
+ iter = store.append(None)
+ store[iter] = (d[0], "/dev/%s - %s" % (d[0], d[1]))
+
+ self.diskCombo.set_model(store)
+ self.diskCombo.set_active(0)
+ else:
+ self.diskButton.set_sensitive(False)
+ self.remoteButton.set_active(True)
+ self.diskCombo.set_sensitive(False)
+ self.remoteBox.set_sensitive(True)
+
+ addFrame(self.win)
+ self.win.show_all()
+ self.window = self.win
+
+ def diskButton_changed(self, args):
+ self.diskCombo.set_sensitive(self.diskButton.get_active())
+ self.remoteBox.set_sensitive(not self.diskButton.get_active())
+
+ def getrc(self):
+ if self.rc == gtk.RESPONSE_OK:
+ return EXN_OK
+ elif self.rc == gtk.RESPONSE_CANCEL:
+ return EXN_CANCEL
+
+ def getDest(self):
+ if self.saveToDisk():
+ active = self.diskCombo.get_active()
+ if active < 0:
+ return None
+
+ return self.diskCombo.get_model()[active][0]
+ else:
+ return map(lambda e: e.get_text(), [self.hostEntry, self.destEntry, self.usernameEntry, self.passwordEntry])
+
+ def pop(self):
+ self.window.destroy()
+
+ def run(self):
+ self.rc = self.window.run ()
+
+ def saveToDisk(self):
+ return self.diskButton.get_active()
+
+class MainExceptionWindow:
def __init__ (self, shortTraceback, longTracebackFile=None, screen=None):
# Get a bunch of widgets from the XML file.
exnxml = gtk.glade.XML(findGladeFile("exn.glade"), domain="anaconda")
@@ -669,21 +712,11 @@ class ExceptionWindow:
textbuf = gtk.TextBuffer()
textbuf.set_text(shortTraceback)
- # Remove the debug button since it doesn't work in livecd mode anyway
+ # Remove the debug button since it doesn't work in livecd mode anyway.
if flags.livecdInstall:
debugButton = exnxml.get_widget("debugButton")
buttonBox.remove(debugButton)
- # Remove the floppy button if we don't need it.
- if not floppy.hasFloppyDevice() and not flags.debug:
- floppyButton = exnxml.get_widget("floppyButton")
- buttonBox.remove(floppyButton)
-
- # Remove the remote button if there's no network.
- if not hasActiveNetDev() and not flags.debug:
- remoteButton = exnxml.get_widget("remoteButton")
- buttonBox.remove(remoteButton)
-
# If there's an anacdump.txt file, add it to the lower view in the
# expander. If not, remove the expander.
if longTracebackFile:
@@ -708,32 +741,25 @@ class ExceptionWindow:
vbox.remove(expander)
addFrame(self.win)
- self.win.show_all ()
+ self.win.show_all()
self.window = self.win
def run(self):
self.rc = self.window.run ()
def getrc (self):
- # I did it this way for future expantion
- # 0 is debug
if self.rc == 0:
try:
# switch to VC1 so we can debug
isys.vtActivate (1)
except SystemError:
pass
- return 1
- # 1 is save to floppy
+ return EXN_DEBUG
if self.rc == 1:
- return 2
- # 2 is OK
+ return EXN_SAVE
elif self.rc == 2:
- return 0
- # 3 is save to remote host
- elif self.rc == 3:
- return 3
-
+ return EXN_OK
+
def pop(self):
self.window.destroy()
@@ -942,13 +968,14 @@ class InstallInterface:
d.destroy()
return rc
- def exceptionWindow(self, shortText, longTextFile):
+ def mainExceptionWindow(self, shortText, longTextFile):
log.critical(shortText)
- win = ExceptionWindow (shortText, longTextFile)
+ win = MainExceptionWindow (shortText, longTextFile)
return win
- def scpWindow(self):
- return ScpWindow()
+ def saveExceptionWindow(self, anaconda, longTextFile):
+ win = SaveExceptionWindow (anaconda, longTextFile)
+ return win
def getInstallKey(self, anaconda, key = ""):
d = InstallKeyWindow(anaconda, key)