Beispiel #1
0
    def getScreen(self, mouse):
        self.mouse = mouse
        self.flags = flags

        self.ignoreEvents = 0

        self.mice = mouse.mouseModels
        self.serialDevice = None

        currentDev = mouse.getDevice()
        currentMouse, emulate3 = mouse.getMouse()

        # populate the big widgets with the available selections
        self.setupMice()
        self.setupDeviceList()
        self.emulate3 = gtk.CheckButton(_("_Emulate 3 buttons"))
        self.setCurrent(currentDev, currentMouse, emulate3)

        # set up the box for this screen
        box = gtk.VBox(gtk.FALSE, 5)
        box.set_border_width(5)

        # top header, includes graphic and instructions
        hbox = gtk.HBox(gtk.FALSE, 5)
        pix = self.ics.readPixmap("gnome-mouse.png")
        if pix:
            a = gtk.Alignment()
            a.add(pix)
            a.set(0.0, 0.0, 0.0, 0.0)
            hbox.pack_start(a, gtk.FALSE)
        label = gui.MnemonicLabel(
            _("Select the appropriate mouse for the system."))
        label.set_line_wrap(gtk.TRUE)
        label.set_size_request(350, -1)
        hbox.pack_start(label, gtk.FALSE)
        box.pack_start(hbox, gtk.FALSE)

        # next is the mouse tree
        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_IN)
        sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        sw.add(self.mouseview)
        box.pack_start(sw)
        label.set_mnemonic_widget(self.mouseview)

        gui.setupTreeViewFixupIdleHandler(self.mouseview, self.mousestore)

        # then the port list
        serial_sw = gtk.ScrolledWindow()
        serial_sw.set_shadow_type(gtk.SHADOW_IN)
        serial_sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER)
        serial_sw.add(self.devview)
        box.pack_start(serial_sw, gtk.FALSE)

        # finally the emulate 3 buttons
        box.pack_start(self.emulate3, gtk.FALSE)
        return box
Beispiel #2
0
    def getScreen(self, anaconda):
        self.abiquoPassword = anaconda.id.abiquoPassword
        self.intf = anaconda.intf
        self.idata = anaconda.id

        box = gtk.VBox(spacing=6)
        box.set_border_width(5)

        #hbox = gtk.HBox()
        #pix = gui.readImageFromFile ("root-password.png")
        #if pix:
        #    hbox.pack_start (pix, False)

        label = gtk.Label("")
        label.set_markup(
            "<b><big>Abiquo Cloud Administrator (admin) password</big></b>")
        label.set_alignment(0.0, 0.5)
        box.pack_start(label, False)

        #box.pack_start(hbox, False)

        self.forward = lambda widget, box=box: box.emit(
            'focus', gtk.DIR_TAB_FORWARD)

        table = gtk.Table(2, 2)
        table.set_size_request(365, -1)
        table.set_row_spacings(5)
        table.set_col_spacings(5)

        pass1 = gui.MnemonicLabel("Password: "******"Confirm: ")
        pass2.set_alignment(0.0, 0.5)
        table.attach(pass2, 0, 1, 1, 2, gtk.FILL, 0, 10)
        self.pw = gtk.Entry(128)
        pass1.set_mnemonic_widget(self.pw)

        self.pw.connect("activate", self.forward)
        self.pw.connect("map-event", self.setFocus)
        self.pw.set_visibility(False)
        self.confirm = gtk.Entry(128)
        pass2.set_mnemonic_widget(self.confirm)
        self.confirm.connect("activate", self.forward)
        self.confirm.set_visibility(False)
        table.attach(self.pw, 1, 2, 0, 1, gtk.FILL | gtk.EXPAND, 5)
        table.attach(self.confirm, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND, 5)

        hbox = gtk.HBox()
        hbox.pack_start(table, False)
        box.pack_start(hbox, False)

        # Description
        label = gtk.Label("")
        label.set_markup("The Cloud Administrator account is used for "
                         "administering Abiquo.\n\n"
                         "<b>Default user:</b> admin\n"
                         "<b>Default password:</b> xabiquo")
        label.set_line_wrap(True)
        label.set_size_request(400, -1)
        label.set_alignment(0.0, 0.5)
        box.pack_start(label, False)

        # root password statusbar
        self.rootStatus = gtk.Label("")
        wrapper = gtk.HBox(0, False)
        wrapper.pack_start(self.rootStatus)
        box.pack_start(wrapper, False)

        self.pw.set_text(self.abiquoPassword)
        self.confirm.set_text(self.abiquoPassword)

        return box
    def getScreen(self, dispatch, xsetup, videocard, intf):
        self.ics.setHelpEnabled(gtk.TRUE)

        self.dispatch = dispatch
        self.videocard = videocard
        self.xsetup = xsetup
        self.intf = intf

        self.lastvalidselection = None

        box = gtk.VBox(gtk.FALSE, 0)
        box.set_border_width(0)

        self.autoBox = gtk.VBox(gtk.FALSE, 5)

        self.force_ppc_fb = 0
        arch = iutil.getArch()
        # we can only probe video ram on i386
        # and we force frame buffer on ppc currently
        if arch == "ppc":
            label = makeFormattedLabel(
                _("Your system will be setup to "
                  "use the frame buffer driver for "
                  "the X Window System.  If you do "
                  "not want to setup the X Window "
                  "System, choose "
                  "'Skip X Configuration' below."))
            box.pack_start(label, gtk.FALSE, gtk.FALSE)
            self.force_ppc_fb = 1
        elif arch != "i386":
            label = makeFormattedLabel(
                _("Your video ram size can not be "
                  "autodetected.  Choose your video "
                  "ram size from the choices below:"))
            box.pack_start(label, gtk.FALSE)
        else:
            self.autoBox = gtk.VBox(gtk.FALSE, 5)

            label = makeFormattedLabel(
                _("In most cases, the video hardware "
                  "can be automatically detected. "
                  "If the detected settings are not "
                  "correct for the hardware, select "
                  "the right settings."))
            self.autoBox.pack_start(label, gtk.FALSE)

            box.pack_start(self.autoBox, gtk.FALSE)

# load in card database
        self.cards = self.videocard.cardsDB()
        cards = self.cards.keys()
        cards.sort()

        other_cards = copy.copy(cards)
        self.currentCard = None
        self.probedCard = None
        if self.videocard.primaryCard():
            carddata = self.videocard.primaryCard().getCardData(dontResolve=1)
            if carddata:
                self.currentCard = carddata["NAME"]
            else:
                self.currentCard = None

            carddata = self.videocard.primaryCard(useProbed=1).getCardData()
            if carddata:
                self.probedCard = carddata["NAME"]
            else:
                self.probedCard = None

# load images of videocard
        fn = self.ics.findPixmap("videocard.png")
        p = gtk.gdk.pixbuf_new_from_file(fn)
        if p:
            self.videocard_p, self.videocard_b = p.render_pixmap_and_mask()

        # Videocard selection tree - preset 'Generic' and 'Other' nodes
        self.cardstore = gtk.TreeStore(gobject.TYPE_STRING,
                                       gobject.TYPE_STRING)

        toplevels = {}

        # add "Generic" in before "Other" if supporting XFree86 3.x
        # Note other changes in videocard.py and elsewhere required to support
        # XFree86 3.x again
        manufacturers = ["Other"] + self.videocard.manufacturerDB()
        for man in manufacturers:
            toplevels[man] = self.cardstore.append(None)
            self.cardstore.set_value(toplevels[man], 0, man)

# now go through cards and matchup with manufacturers
        for card in cards:
            temp = string.lower(card)

            for man in manufacturers:
                if string.lower(man) == temp[:len(man)]:
                    parent = toplevels.get(man)
                    iter = self.cardstore.append(parent)
                    self.cardstore.set_value(iter, 0, card)
                    other_cards.remove(card)

        # now add cards not categorized into above manufacturers
        for card in other_cards:
            parent = toplevels.get("Other")
            iter = self.cardstore.append(parent)
            self.cardstore.set_value(iter, 0, card)

        self.cardview = gtk.TreeView(self.cardstore)
        self.cardview.set_property("headers-visible", gtk.FALSE)
        col = gtk.TreeViewColumn(None, gtk.CellRendererText(), text=0)
        self.cardview.append_column(col)
        selection = self.cardview.get_selection()
        selection.connect("changed", self.selectCardType)
        selection.set_select_function(self.cardviewSelectCb)

        sw = gtk.ScrolledWindow()
        sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        sw.set_shadow_type(gtk.SHADOW_IN)
        sw.add(self.cardview)

        # only show this option on non-ppc
        if not self.force_ppc_fb:
            box.pack_start(sw, gtk.TRUE)

        #Memory configuration menu
        hbox = gtk.HBox()
        hbox.set_border_width(3)

        label = gui.MnemonicLabel(_("_Video card RAM: "))

        self.ramOption = gtk.OptionMenu()
        label.set_mnemonic_widget(self.ramOption)
        self.ramOption.set_size_request(40, 20)
        self.ramMenu = gtk.Menu()

        for mem in self.videocard.possible_ram_sizes():
            if mem < 1000:
                tag = "%d KB" % (mem)
            else:
                tag = "%d MB" % (mem / 1024)

            memitem = gtk.MenuItem(tag)
            self.ramMenu.add(memitem)

        hbox.pack_start(label, gtk.FALSE)
        hbox.pack_start(self.ramOption, gtk.TRUE, gtk.TRUE, 25)

        self.ramOption.set_menu(self.ramMenu)

        # only show this option on non-ppc
        if not self.force_ppc_fb:
            box.pack_start(hbox, gtk.FALSE)

        restore = gtk.Button(_("Restore _original values"))
        restore.connect("clicked", self.restorePressed)
        hbox.pack_start(restore, gtk.FALSE, 25)

        self.skip = gtk.CheckButton(_("_Skip X configuration"))
        self.skip.connect("toggled", self.skipToggled)

        hbox = gtk.HBox(gtk.TRUE, 5)

        self.topbox = gtk.VBox(gtk.FALSE, 5)
        self.topbox.set_border_width(5)
        if self.force_ppc_fb:
            # tweak packing
            self.topbox.pack_start(box, gtk.FALSE, gtk.FALSE)
            self.topbox.pack_start(self.skip, gtk.FALSE, gtk.FALSE)
        else:
            self.topbox.pack_start(box, gtk.TRUE, gtk.TRUE)
            self.topbox.pack_start(self.skip, gtk.FALSE)

        self.configbox = box

        self.skip.set_active(self.dispatch.stepInSkipList("monitor"))

        # set state
        self.ignoreEvents = 0
        self.currentMem = self.videocard.primaryCard(useProbed=0).getVideoRam()
        self.probedMem = self.videocard.primaryCard(useProbed=1).getVideoRam()
        self.setCurrent(self.currentCard, self.currentMem)

        setupTreeViewFixupIdleHandler(self.cardview, self.cardstore)

        return self.topbox
    def editOther(self, oldDevice, oldLabel, isDefault, isRoot = 0):
        dialog = gtk.Dialog(_("Image"), self.parent)
        dialog.add_button('gtk-cancel', 2)
        dialog.add_button('gtk-ok', 1)
        dialog.set_position(gtk.WIN_POS_CENTER)
        gui.addFrame(dialog)

        dialog.vbox.pack_start(gui.WrappingLabel(
            _("Enter a label to be displayed in the boot loader menu. The "
	      "device (or hard drive and partition number) is the device "
	      "from which it boots.")))

        spacer = gtk.Label("")
        spacer.set_size_request(10, 1)
        dialog.vbox.pack_start(spacer, False)

        table = gtk.Table(2, 5)
        table.set_row_spacings(5)
        table.set_col_spacings(5)

        label = gui.MnemonicLabel(_("_Label"))
        table.attach(label, 0, 1, 1, 2, gtk.FILL, 0, 10)
        labelEntry = gtk.Entry(32)
        label.set_mnemonic_widget(labelEntry)
        table.attach(labelEntry, 1, 2, 1, 2, gtk.FILL, 0, 10)
        if oldLabel:
            labelEntry.set_text(oldLabel)

        label = gui.MnemonicLabel(_("_Device"))
        table.attach(label, 0, 1, 2, 3, gtk.FILL, 0, 10)
        if not isRoot:
            # XXX should potentially abstract this out into a function
            pedparts = []
            parts = []
            disks = self.diskset.disks
            for drive in disks.keys():
                pedparts.extend(partedUtils.get_all_partitions(disks[drive]))
            for part in pedparts:
                parts.append(partedUtils.get_partition_name(part))
            del pedparts
            parts.sort()

            deviceCombo = datacombo.DataComboBox()
            defindex = 0
            i = 0
            for part in  parts:
                deviceCombo.append("/dev/%s" %(part,), part)
                if oldDevice and oldDevice == part:
                    defindex = i
                i = i + 1


            deviceCombo.set_active(defindex)
            
            table.attach(deviceCombo, 1, 2, 2, 3, gtk.FILL, 0, 10)
            label.set_mnemonic_widget(deviceCombo)
        else:
            table.attach(gtk.Label(oldDevice), 1, 2, 2, 3, gtk.FILL, 0, 10)

        default = gtk.CheckButton(_("Default Boot _Target"))
        table.attach(default, 0, 2, 3, 4, gtk.FILL, 0, 10)
        if isDefault != 0:
            default.set_active(True)

        if self.numentries == 1 and oldDevice != None:
            default.set_sensitive(False)
        else:
            default.set_sensitive(True)
        
        dialog.vbox.pack_start(table)
        dialog.show_all()

        while 1:
            rc = dialog.run()

            # cancel
            if rc == 2:
                break

            label = labelEntry.get_text()

            if not isRoot:
                dev = deviceCombo.get_active_value()
            else:
                dev = oldDevice

            if not label:
                self.intf.messageWindow(_("Error"),
                                        _("You must specify a label for the "
                                          "entry"),
                                        type="warning")
                continue

            foundBad = 0
            for char in self.illegalChars:
                if char in label:
                    self.intf.messageWindow(_("Error"),
                                            _("Boot label contains illegal "
                                              "characters"),
                                            type="warning")
                    foundBad = 1
                    break
            if foundBad:
                continue

            # verify that the label hasn't been used
            foundBad = 0
            for key in self.imagelist.keys():
                if dev == key:
                    continue
                if self.blname == "GRUB":
                    thisLabel = self.imagelist[key][1]
                else:
                    thisLabel = self.imagelist[key][0]

                # if the label is the same as it used to be, they must
                # have changed the device which is fine
                if thisLabel == oldLabel:
                    continue

                if thisLabel == label:
                    self.intf.messageWindow(_("Duplicate Label"),
                                            _("This label is already in "
                                              "use for another boot entry."),
                                            type="warning")
                    foundBad = 1
                    break
            if foundBad:
                continue

            # XXX need to do some sort of validation of the device?

            # they could be duplicating a device, which we don't handle
            if dev in self.imagelist.keys() and (not oldDevice or
                                                 dev != oldDevice):
                self.intf.messageWindow(_("Duplicate Device"),
                                        _("This device is already being "
                                          "used for another boot entry."),
                                        type="warning")
                continue

            # if we're editing a previous, get what the old info was for
            # labels.  otherwise, make it something safe for grub and the
            # device name for lilo for lack of any better ideas
            if oldDevice:
                (oldshort, oldlong, oldisroot) = self.imagelist[oldDevice]
            else:
                (oldshort, oldlong, oldisroot) = (dev, label, None)
                
            # if we're editing and the device has changed, delete the old
            if oldDevice and dev != oldDevice:
                del self.imagelist[oldDevice]
                
            # go ahead and add it
            if self.blname == "GRUB":
                self.imagelist[dev] = (oldshort, label, isRoot)
            else:
                self.imagelist[dev] = (label, oldlong, isRoot)

            if default.get_active():
                self.defaultDev = dev

            # refill the os list store
            self.fillOSList()
            break
        
        dialog.destroy()
    def passwordWindow(self, *args):
        dialog = gtk.Dialog(_("Enter Boot Loader Password"), self.parent)
        dialog.add_button('gtk-cancel', 2)
        dialog.add_button('gtk-ok', 1)
        dialog.set_position(gtk.WIN_POS_CENTER)
        gui.addFrame(dialog)
        
        label = gui.WrappingLabel(_("Enter a boot loader password and then confirm it.  (Note that your BIOS keymap may be different than the actual keymap you are used to.)"))
        label.set_alignment(0.0, 0.0)
        dialog.vbox.pack_start(label)

        table = gtk.Table(2, 2)
        table.set_row_spacings(5)
        table.set_col_spacings(5)
        label = gui.MnemonicLabel(_("_Password:"******"Con_firm:"))        
        table.attach(label, 0, 1, 3, 4, gtk.FILL, 0, 10) 
        confirmEntry = gtk.Entry (16)
        confirmEntry.set_visibility (False)
        label.set_mnemonic_widget(confirmEntry)
        table.attach(confirmEntry, 1, 2, 3, 4, gtk.FILL, 0, 10)
        dialog.vbox.pack_start(table)

        # set the default
        if self.password:
            pwEntry.set_text(self.password)
            confirmEntry.set_text(self.password)

        dialog.show_all()

        while 1:
            rc = dialog.run()
            if rc == 2:
                break

            if pwEntry.get_text() != confirmEntry.get_text():
                self.intf.messageWindow(_("Passwords don't match"),
                                        _("Passwords do not match"),
                                        type='warning')
                continue

            thePass = pwEntry.get_text()
            if not thePass:
                continue
            if len(thePass) < 6:
                ret = self.intf.messageWindow(_("Warning"),
                                    _("Your boot loader password is less than "
                                      "six characters.  We recommend a longer "
                                      "boot loader password."
                                      "\n\n"
                                      "Would you like to continue with this "
                                      "password?"),
                                             type = "yesno")
                if ret == 0:
                    continue

            self.password = thePass
            break

        dialog.destroy()
        return rc
    def getScreen(self, xsetup, monitor, intf):

        self.intf = intf
        self.xsetup = xsetup
        self.monitor = monitor

        # some flags to let us know when to ignore callbacks we caused
        self.ignoreEntryChanges = 0
        self.ignoreEvents = 0

        self.lastvalidselection = None

        box = gtk.VBox(gtk.FALSE, 5)

        label = makeFormattedLabel(
            _("In most cases, the monitor can be "
              "automatically detected. If the "
              "detected settings are not correct "
              "for the monitor, select the right "
              "settings."))
        box.pack_start(label, gtk.FALSE)

        # Monitor selection tree
        self.monitorstore = gtk.TreeStore(gobject.TYPE_STRING,
                                          gobject.TYPE_STRING)
        self.hEntry = gtk.Entry()
        self.vEntry = gtk.Entry()

        fn = self.ics.findPixmap("monitor-small.png")
        p = gtk.gdk.pixbuf_new_from_file(fn)
        if p:
            self.monitor_p, self.monitor_b = p.render_pixmap_and_mask()

    # load monitor list and insert into tree
        self.origMonitorID = self.monitor.getMonitorID()
        self.origMonitorName = self.monitor.getMonitorName()
        if not self.origMonitorName:
            self.origMonitorName = self.origMonitorID

        self.origHsync = self.monitor.getMonitorHorizSync()
        self.origVsync = self.monitor.getMonitorVertSync()

        monitorslist = self.monitor.monitorsDB()
        keys = monitorslist.keys()
        keys.sort()

        # treat Generic monitors special
        idx = 0
        for man in ["Generic LCD Display", "Generic CRT Display", "Generic"]:
            if man in keys:
                keys.remove(man)
                keys.insert(idx, man)
                idx += 1

        self.currentMonitor = None
        toplevels = {}

        # Insert DDC probed monitor if it had no match in database
        # or otherwise if we did not detect a monitor at all
        #--Add a category for a DDC probed monitor if a DDC monitor was probed
        self.ddcmon = self.monitor.getDDCProbeResults()
        if self.ddcmon:
            title = ddc_monitor_string
            monentry = title + " - " + self.ddcmon[1]
        else:
            title = unprobed_monitor_string
            monentry = title

        man = title
        toplevels[man] = self.monitorstore.append(None)
        self.monitorstore.set_value(toplevels[man], 0, title)
        iter = self.monitorstore.append(toplevels[man])
        self.monitorstore.set_value(iter, 0, monentry)

        # set as current monitor if necessary
        if self.origMonitorID == "DDCPROBED" or self.origMonitorID == "Unprobed Monitor":
            self.currentMonitor = monentry
            self.origMonitorName = monentry

        # now insert rest of monitors, unless we match the ddc probed id
        for man in keys:
            models = monitorslist[man]
            if man in [
                    "Generic LCD Display", "Generic CRT Display", "Generic"
            ]:
                title = _(man)
        # dont sort generic, present in order in file
            else:
                title = man
                models.sort()

            toplevels[man] = self.monitorstore.append(None)
            self.monitorstore.set_value(toplevels[man], 0, man)

            previous_monitor = ""
            for amonitor in models:
                if previous_monitor != "":
                    if amonitor[0] == previous_monitor:
                        continue

                if self.ddcmon and string.upper(
                        self.ddcmon[0]) == string.upper(amonitor[1]):
                    continue

                previous_monitor = amonitor[0]
                iter = self.monitorstore.append(toplevels[man])
                self.monitorstore.set_value(iter, 0, amonitor[0])

                if amonitor[0] == self.monitor.getMonitorID():
                    self.currentMonitor = amonitor[0]

        self.monitorview = gtk.TreeView(self.monitorstore)
        self.monitorview.set_property("headers-visible", gtk.FALSE)
        col = gtk.TreeViewColumn(None, gtk.CellRendererText(), text=0)
        self.monitorview.append_column(col)

        sw = gtk.ScrolledWindow()
        sw.add(self.monitorview)
        sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        sw.set_shadow_type(gtk.SHADOW_IN)
        box.pack_start(sw, gtk.TRUE, gtk.TRUE)

        self.setCurrent(self.currentMonitor)
        selection = self.monitorview.get_selection()
        selection.connect("changed", self.selectMonitorType)
        selection.set_select_function(self.monitorviewSelectCb)

        self.hEntry.connect("insert_text", self.insertCb,
                            (self.hEntry, self.vEntry))
        self.vEntry.connect("insert_text", self.insertCb,
                            (self.vEntry, self.hEntry))

        self.hEntry.connect("changed", self.changedCb,
                            (self.hEntry, self.vEntry))
        self.vEntry.connect("changed", self.changedCb,
                            (self.vEntry, self.hEntry))

        self.reset = gtk.Button(_("Restore _original values"))
        self.reset.connect("clicked", self.resetCb)
        align = gtk.Alignment

        align = gtk.Alignment(1, 0.5)
        align.add(self.reset)

        synctable = gtk.Table(2, 4, gtk.FALSE)
        hlabel = gui.MnemonicLabel(_("Hori_zontal Sync:"))
        hlabel.set_alignment(0, 0.5)
        hlabel.set_mnemonic_widget(self.hEntry)
        vlabel = gui.MnemonicLabel(_("_Vertical Sync:"))
        vlabel.set_alignment(0, 0.5)
        vlabel.set_mnemonic_widget(self.vEntry)

        self.hEntry.set_size_request(80, -1)
        self.vEntry.set_size_request(80, -1)

        hz = gtk.Label(_("kHz"))
        hz.set_alignment(0, 0.5)

        khz = gtk.Label(_("Hz"))
        khz.set_alignment(0, 0.5)

        synctable.attach(hlabel, 0, 1, 0, 1, gtk.SHRINK, gtk.FILL, 5)
        synctable.attach(self.hEntry, 1, 2, 0, 1, gtk.SHRINK)
        synctable.attach(hz, 2, 3, 0, 1, gtk.FILL, gtk.FILL, 5)
        synctable.attach(vlabel, 0, 1, 1, 2, gtk.SHRINK, gtk.FILL, 5)
        synctable.attach(self.vEntry, 1, 2, 1, 2, gtk.SHRINK)
        synctable.attach(khz, 2, 3, 1, 2, gtk.FILL, gtk.FILL, 5)
        synctable.attach(align, 3, 4, 1, 2)

        box.pack_start(synctable, gtk.FALSE, gtk.FALSE)

        setupTreeViewFixupIdleHandler(self.monitorview, self.monitorstore)

        return box
Beispiel #7
0
    def getScreen (self, anaconda):
	self.rootPassword = anaconda.id.rootPassword
        self.intf = anaconda.intf

	self.passwords = {}

        box = gtk.VBox ()
        box.set_border_width(5)

        hbox = gtk.HBox()
        pix = gui.readImageFromFile ("root-password.png")
        if pix:
            hbox.pack_start (pix, False)

        label = gui.WrappingLabel (_("The root account is used for "
                                     "administering the system.  Enter "
                                     "a password for the root user."))
        label.set_line_wrap(True)
        label.set_size_request(350, -1)
        label.set_alignment(0.0, 0.5)
        hbox.pack_start(label, False)

        box.pack_start(hbox, False)
       
        self.forward = lambda widget, box=box: box.emit('focus', gtk.DIR_TAB_FORWARD)
        
        table = gtk.Table (2, 2)
        table.set_size_request(365, -1)
        table.set_row_spacings (5)
	table.set_col_spacings (5)

        pass1 = gui.MnemonicLabel (_("Root _Password: "******"_Confirm: "))
        pass2.set_alignment (0.0, 0.5)
        table.attach (pass2, 0, 1, 1, 2, gtk.FILL, 0, 10)
        self.pw = gtk.Entry (128)
        pass1.set_mnemonic_widget(self.pw)
        
        self.pw.connect ("activate", self.forward)
        self.pw.connect ("map-event", self.setFocus)
        self.pw.set_visibility (False)
        self.confirm = gtk.Entry (128)
        pass2.set_mnemonic_widget(self.confirm)
        self.confirm.connect ("activate", self.forward)
        self.confirm.set_visibility (False)
        table.attach (self.pw,      1, 2, 0, 1, gtk.FILL|gtk.EXPAND, 5)
        table.attach (self.confirm, 1, 2, 1, 2, gtk.FILL|gtk.EXPAND, 5)

        hbox = gtk.HBox()
        hbox.pack_start(table, False)
        box.pack_start (hbox, False)

        # root password statusbar
        self.rootStatus = gtk.Label ("")
        wrapper = gtk.HBox(0, False)
        wrapper.pack_start (self.rootStatus)
        box.pack_start (wrapper, False)

        if not self.rootPassword["isCrypted"]:
	    self.pw.set_text(self.rootPassword["password"])
	    self.confirm.set_text(self.rootPassword["password"])
        else:
            self.pw.set_text("xxxxxxxx")
            self.confirm.set_text("xxxxxxxx")

        return box
    def getScreen(self, anaconda):
        self.neededSwap = 0
        self.storage = anaconda.storage
        self.intf = anaconda.intf
        self.dispatch = anaconda.dispatch

        rc = anaconda.upgradeSwapInfo

        self.neededSwap = 1
        self.row = 0
        box = gtk.VBox(False, 5)
        box.set_border_width(5)

        label = gtk.Label(
            _("Recent kernels (2.4 or newer) need significantly more "
              "swap than older kernels, up to twice "
              "the amount of RAM on the system.  "
              "You currently have %dMB of swap configured, but "
              "you may create additional swap space on one of "
              "your file systems now.") % (iutil.swapAmount() / 1024) +
            _("\n\nThe installer has detected %s MB of RAM.\n") %
            (iutil.memInstalled() / 1024))

        label.set_alignment(0.5, 0.0)
        #        label.set_size_request(400, 200)
        label.set_line_wrap(True)
        box.pack_start(label, False)

        hs = gtk.HSeparator()
        box.pack_start(hs, False)

        self.option1 = gtk.RadioButton(None,
                                       (_("I _want to create a swap file")))
        box.pack_start(self.option1, False)

        (fsList, suggSize, suggMntPoint) = rc

        self.swapbox = gtk.VBox(False, 5)
        box.pack_start(self.swapbox, False)

        label = gui.MnemonicLabel(
            _("Select the _partition to put the swap file on:"))
        a = gtk.Alignment(0.2, 0.5)
        a.add(label)
        self.swapbox.pack_start(a, False)

        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING,
                                   gobject.TYPE_STRING)

        for (dev, size) in fsList:
            iter = self.store.append()
            self.store.set_value(iter, 0, dev)
            self.store.set_value(iter, 1, str(size))

        self.view = gtk.TreeView(self.store)
        label.set_mnemonic_widget(self.view)

        i = 0
        for title in [(_("Mount Point")), (_("Partition")),
                      (_("Free Space (MB)"))]:
            col = gtk.TreeViewColumn(title, gtk.CellRendererText(), text=i)
            self.view.append_column(col)
            i = i + 1

        sw = gtk.ScrolledWindow()
        sw.add(self.view)
        sw.set_shadow_type(gtk.SHADOW_IN)
        sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        sw.set_size_request(300, 90)
        a = gtk.Alignment(0.5, 0.5)
        a.add(sw)
        self.swapbox.pack_start(a, False, True, 10)

        rootiter = self.store.get_iter_first()
        sel = self.view.get_selection()
        sel.select_iter(rootiter)

        label = gtk.Label(
            _("A minimum swap file size of "
              "%d MB is recommended.  Please enter a size for the swap "
              "file:") % suggSize)
        label.set_size_request(400, 40)
        label.set_line_wrap(True)
        a = gtk.Alignment(0.5, 0.5)
        a.add(label)
        self.swapbox.pack_start(a, False, True, 10)

        hbox = gtk.HBox(False, 5)
        a = gtk.Alignment(0.4, 0.5)
        a.add(hbox)
        self.swapbox.pack_start(a, False)

        label = gui.MnemonicLabel(_("Swap file _size (MB):"))
        hbox.pack_start(label, False)

        self.entry = gtk.Entry(4)
        label.set_mnemonic_widget(self.entry)
        self.entry.set_size_request(40, 25)
        self.entry.set_text(str(suggSize))
        hbox.pack_start(self.entry, False, True, 10)

        self.option2 = gtk.RadioButton(self.option1,
                                       (_("I _don't want to create a swap "
                                          "file")))
        box.pack_start(self.option2, False, True, 20)

        self.option1.connect("toggled", self.toggle)
        return box
Beispiel #9
0
    def getScreen (self, auth):
	self.auth = auth

        box = gtk.VBox (gtk.FALSE, 10)

        nb = gtk.Notebook ()

        self.md5 = gtk.CheckButton (_("Enable _MD5 passwords"))
        self.shadow = gtk.CheckButton (_("Enable shado_w passwords"))

        # nis
        self.nis = gtk.CheckButton (_("Enable N_IS"))
        self.nisBroadcast = gtk.CheckButton (_("Use _broadcast to find NIS server"))
        self.nisDomain = gtk.Entry ()
        self.nisServer = gtk.Entry ()

        self.md5.set_active (self.auth.useMD5)
        self.shadow.set_active (self.auth.useShadow)

        self.nis.set_active (self.auth.useNIS)
        self.nisDomain.set_text (self.auth.nisDomain)
        self.nisBroadcast.set_active (self.auth.nisuseBroadcast)
        self.nisServer.set_text (self.auth.nisServer )

        self.nisDomainLabel = gui.MnemonicLabel (_("NIS _Domain: "))
        self.nisDomainLabel.set_alignment (0, 0)
        self.nisDomainLabel.set_mnemonic_widget(self.nisDomain)
        self.nisServerLabel = gui.MnemonicLabel (_("NIS _Server: "))
        self.nisServerLabel.set_alignment (0, 0)
        self.nisServerLabel.set_mnemonic_widget(self.nisServer)

        self.nis.connect ("toggled", self.setSensitivities)
        self.nisBroadcast.connect ("toggled", self.setSensitivities)

        a = gtk.Alignment (0, 0)
        a.add (self.nisBroadcast)

        nistable = gtk.Table (10, 4, gtk.FALSE)
        nistable.attach (self.nis, 0, 10, 0, 1, gtk.FILL, gtk.SHRINK, 0.0, 0.5)

	spacer = gtk.Label("")
	spacer.set_size_request(10, 1)
        nistable.attach (spacer, 0, 1, 1, 2, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)
        
        nistable.attach (self.nisDomainLabel, 2, 3, 1, 2, gtk.FILL, gtk.SHRINK, 0.0, 0.5)
        nistable.attach (self.nisDomain, 3, 15, 1, 2, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)
        nistable.attach (a, 2, 10, 2, 3, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)
        nistable.attach (self.nisServerLabel, 2, 5, 3, 4, gtk.FILL, gtk.SHRINK, 0.0, 0.5)
        nistable.attach (self.nisServer, 3, 10, 3, 4, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)

        # ldap
        self.ldap = gtk.CheckButton (_("Enable _LDAP"))
        self.ldapServer = gtk.Entry ()
        self.ldapBasedn = gtk.Entry ()
        self.ldapTLS = gtk.CheckButton (_("Use _TLS lookups"))
        self.ldapServerLabel = gui.MnemonicLabel (_("LDAP _Server:"))
        self.ldapServerLabel.set_alignment (0, 0)
        self.ldapServerLabel.set_mnemonic_widget(self.ldapServer)
        self.ldapBasednLabel = gui.MnemonicLabel (_("LDAP _Base DN:"))
        self.ldapBasednLabel.set_alignment (0, 0)
        self.ldapBasednLabel.set_mnemonic_widget(self.ldapBasedn)

	# restore ldap settings
        self.ldap.set_active (self.auth.useLdap)
	self.ldapServer.set_text (self.auth.ldapServer)
        self.ldapBasedn.set_text (self.auth.ldapBasedn)
         
        ldaptable = gtk.Table (10, 4, gtk.FALSE)

        ldaptable.attach (self.ldap, 0, 10, 0, 1, gtk.FILL, gtk.SHRINK, 0.0, 0.5)

	spacer = gtk.Label("")
	spacer.set_size_request(10, 1)
        ldaptable.attach (spacer, 0, 1, 1, 2, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)
        ldaptable.attach (self.ldapServerLabel, 2, 3, 1, 2, gtk.FILL, gtk.SHRINK, 0.0, 0.5)
        ldaptable.attach (self.ldapServer, 3, 10, 1, 2, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)

        ldaptable.attach (self.ldapBasednLabel, 2, 3, 2, 3, gtk.FILL, gtk.SHRINK, 0.0, 0.5)
        ldaptable.attach (self.ldapBasedn, 3, 10, 2, 3, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)
        a = gtk.Alignment (0, 0)
        a.add (self.ldapTLS)
        ldaptable.attach (a, 2, 3, 3, 4, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5) 
        
        self.ldap.connect ("toggled", self.setSensitivities)

        # krb5
        self.krb5 = gtk.CheckButton (_("Enable _Kerberos"))
        self.krb5Realm = gtk.Entry ()
        self.krb5Kdc = gtk.Entry ()
        self.krb5Admin = gtk.Entry ()
        self.krb5RealmLabel = gui.MnemonicLabel (_("R_ealm:"))
        self.krb5RealmLabel.set_alignment (0, 0)
        self.krb5RealmLabel.set_mnemonic_widget(self.krb5Realm)        
        self.krb5KdcLabel = gui.MnemonicLabel (_("K_DC:"))
        self.krb5KdcLabel.set_alignment (0, 0)
        self.krb5KdcLabel.set_mnemonic_widget(self.krb5Kdc)
        self.krb5AdminLabel = gui.MnemonicLabel (_("_Admin Server:"))
        self.krb5AdminLabel.set_alignment (0, 0)
        self.krb5AdminLabel.set_mnemonic_widget(self.krb5Admin)

        # restore krb5 settings
        self.krb5.set_active (self.auth.useKrb5)
        self.krb5Realm.set_text (self.auth.krb5Realm)
        self.krb5Kdc.set_text (self.auth.krb5Kdc)
        self.krb5Admin.set_text (self.auth.krb5Admin)
        
        krb5table = gtk.Table (10, 4, gtk.FALSE)

        krb5table.attach (self.krb5, 0, 10, 0, 1, gtk.FILL, gtk.SHRINK, 0.0, 0.5)

	spacer = gtk.Label("")
	spacer.set_size_request(10, 1)
        krb5table.attach (spacer, 0, 1, 1, 2, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)
        krb5table.attach (self.krb5RealmLabel, 2, 3, 1, 2, gtk.FILL, gtk.SHRINK, 0.0, 0.5)
        krb5table.attach (self.krb5Realm, 3, 10, 1, 2, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)

        krb5table.attach (self.krb5KdcLabel, 2, 3, 2, 3, gtk.FILL, gtk.SHRINK, 0.0, 0.5)
        krb5table.attach (self.krb5Kdc, 3, 10, 2, 3, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)

        krb5table.attach (self.krb5AdminLabel, 2, 3, 3, 4, gtk.FILL, gtk.SHRINK, 0.0, 0.5)
        krb5table.attach (self.krb5Admin, 3, 10, 3, 4, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)

        self.krb5.connect ("toggled", self.setSensitivities)

        # samba
        self.samba = gtk.CheckButton (_("Enable SMB _Authentication"))
        self.sambaServer = gtk.Entry ()
        self.sambaWorkgroup = gtk.Entry ()
        self.sambaLabel1 = gui.MnemonicLabel (_("SMB _Server:"))
        self.sambaLabel1.set_alignment (0, 0)
        self.sambaLabel1.set_mnemonic_widget(self.sambaServer)
        self.sambaLabel2 = gui.MnemonicLabel (_("SMB Work_group:"))
        self.sambaLabel2.set_alignment (0, 0)
        self.sambaLabel2.set_mnemonic_widget(self.sambaWorkgroup)

 	# restore ldap settings
        self.samba.set_active (self.auth.useSamba)
 	self.sambaServer.set_text (self.auth.sambaServer)
        self.sambaWorkgroup.set_text (self.auth.sambaWorkgroup)
         
        sambatable = gtk.Table (10, 3, gtk.FALSE)

        sambatable.attach (self.samba, 0, 10, 0, 1, gtk.FILL, gtk.SHRINK, 0.0, 0.5)

        spacer = gtk.Label("")
        spacer.set_size_request(10, 1)
        sambatable.attach (spacer, 0, 1, 1, 2, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)
        sambatable.attach (self.sambaLabel1, 2, 3, 1, 2, gtk.FILL, gtk.SHRINK, 0.0, 0.5)
        sambatable.attach (self.sambaServer, 3, 10, 1, 2, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)

        sambatable.attach (self.sambaLabel2, 2, 3, 2, 3, gtk.FILL, gtk.SHRINK, 0.0, 0.5)
        sambatable.attach (self.sambaWorkgroup, 3, 10, 2, 3, gtk.SHRINK, gtk.SHRINK, 0.0, 0.5)
        
        self.samba.connect ("toggled", self.setSensitivities)

# pack everything

	self.setSensitivities()

        nisLabel = gtk.Label (_("NIS"))
        ldapLabel = gtk.Label (_("LDAP"))
        krb5Label = gtk.Label (_("Kerberos 5"))
        sambaLabel = gtk.Label (_("SMB"))

        nb.append_page(nistable, nisLabel)
        nb.append_page(ldaptable, ldapLabel)
        nb.append_page(krb5table, krb5Label)
        nb.append_page(sambatable, sambaLabel)


        box.pack_start (self.md5, gtk.FALSE)
        box.pack_start (self.shadow, gtk.FALSE)
        box.pack_start (nb, gtk.TRUE)
        
	box.set_border_width (5)
        
        return box
    def getScreen(self, langs):
        self.langs = langs
        self.languages = self.langs.getAllSupported()
        self.supportedLangs = self.langs.getSupported()
        self.origLangs = []
        for i in self.supportedLangs:
            self.origLangs.append(i)

        self.defaultLang = self.langs.getDefault()
        self.oldDefaultLang = self.defaultLang

        # first time we hit this point in install this is not initialized
        if self.origLangs == []:
            self.origLangs.append(self.defaultLang)

        vbox = gtk.VBox(gtk.FALSE, 10)
        vbox.set_border_width(5)
        hbox = gtk.HBox(gtk.FALSE)

        # create option menu of default langs
        label = gui.MnemonicLabel(
            _("Select the _default language for the system:   "))
        self.deflang_optionmenu = None
        self.deflang_menu = None
        self.deflang_values = None
        self.createDefaultLangMenu(self.supportedLangs)
        label.set_mnemonic_widget(self.deflang_optionmenu)

        hbox.pack_start(label, gtk.FALSE, 20)
        hbox.pack_start(self.deflang_optionmenu, gtk.FALSE, 20)
        vbox.pack_start(hbox, gtk.FALSE, 50)

        sep = gtk.HSeparator()
        vbox.pack_start(sep, gtk.FALSE, 15)

        label = gui.MnemonicLabel(
            _("Select _additional languages to install "
              "on the system:"))

        label.set_alignment(0.0, 0.5)
        label.set_line_wrap(gtk.TRUE)
        label.set_size_request(400, -1)
        vbox.pack_start(label, gtk.FALSE)

        hbox = gtk.HBox(gtk.FALSE, 5)

        # langs we want to support
        self.languageList = checklist.CheckList(1)
        label.set_mnemonic_widget(self.languageList)

        self.maxrows = 0
        list = []

        for locale in self.languages:
            if locale == self.defaultLang or (locale in self.supportedLangs):
                self.languageList.append_row((locale, ""), gtk.TRUE)
                list.append(locale)
            else:
                self.languageList.append_row((locale, ""), gtk.FALSE)

            self.maxrows = self.maxrows + 1

        self.setCurrent(self.defaultLang)

        sw = gtk.ScrolledWindow()
        sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        sw.add(self.languageList)
        sw.set_shadow_type(gtk.SHADOW_IN)

        vbox2 = gtk.VBox(gtk.FALSE, 12)

        all_button = gtk.Button(_("_Select All"))
        all_button.set_size_request(160, -1)
        all_button.connect('clicked', self.select_all)
        a1 = gtk.Alignment(0.5, 0.5)
        a1.add(all_button)

        # this one tends to be too long
        default_button = gtk.Button()
        label = gui.MnemonicLabel(_("Select Default _Only"))
        label.set_size_request(150, -1)
        label.set_line_wrap(gtk.TRUE)
        label.set_justify(gtk.JUSTIFY_CENTER)
        label.set_mnemonic_widget(default_button)
        default_button.add(label)
        default_button.set_size_request(160, -1)
        default_button.connect('clicked', self.select_default)
        a2 = gtk.Alignment(0.5, 0.5)
        a2.add(default_button)

        reset_button = gtk.Button(_("Rese_t"))
        reset_button.set_size_request(160, -1)
        reset_button.connect('clicked', self.reset)
        a3 = gtk.Alignment(0.5, 0.5)
        a3.add(reset_button)

        vbox2.pack_start(a1, gtk.FALSE, 10)
        vbox2.pack_start(a2, gtk.FALSE)
        vbox2.pack_start(a3, gtk.FALSE)
        hbox.pack_start(sw, gtk.TRUE, 10)
        hbox.pack_start(vbox2, gtk.FALSE, 10)
        vbox.pack_start(hbox, gtk.TRUE)

        # default button
        #        alignment = gtk.Alignment (0.0, 0.0)
        #        button = gtk.Button (_("Select as default"))
        #        alignment.add (button)

        # connect CB for when they change selected langs
        self.languageList.checkboxrenderer.connect("toggled",
                                                   self.toggled_language)

        store = self.languageList.get_model()

        setupTreeViewFixupIdleHandler(self.languageList, store)

        return vbox
Beispiel #11
0
    def getScreen(self, intf, rootPw):
        self.rootPw = rootPw
        self.intf = intf

        self.passwords = {}

        box = gtk.VBox()
        box.set_border_width(5)

        hbox = gtk.HBox()
        pix = self.ics.readPixmap("root-password.png")
        if pix:
            hbox.pack_start(pix, gtk.FALSE)

        label = gtk.Label(
            _("Enter the root (administrator) password "
              "for the system."))
        label.set_line_wrap(gtk.TRUE)
        label.set_size_request(350, -1)
        label.set_alignment(0.0, 0.5)
        hbox.pack_start(label, gtk.FALSE)

        box.pack_start(hbox, gtk.FALSE)

        self.forward = lambda widget, box=box: box.emit(
            'focus', gtk.DIR_TAB_FORWARD)

        table = gtk.Table(2, 2)
        table.set_size_request(365, -1)
        table.set_row_spacings(5)
        table.set_col_spacings(5)

        pass1 = gui.MnemonicLabel(_("Root _Password: "******"_Confirm: "))
        pass2.set_alignment(0.0, 0.5)
        table.attach(pass2, 0, 1, 1, 2, gtk.FILL, 0, 10)
        self.pw = gtk.Entry(128)
        pass1.set_mnemonic_widget(self.pw)

        self.pw.connect("activate", self.forward)
        self.pw.connect("map-event", self.setFocus)
        self.pw.set_visibility(gtk.FALSE)
        self.confirm = gtk.Entry(128)
        pass2.set_mnemonic_widget(self.confirm)
        self.confirm.connect("activate", self.forward)
        self.confirm.set_visibility(gtk.FALSE)
        table.attach(self.pw, 1, 2, 0, 1, gtk.FILL | gtk.EXPAND, 5)
        table.attach(self.confirm, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND, 5)

        hbox = gtk.HBox()
        hbox.pack_start(table, gtk.FALSE)
        box.pack_start(hbox, gtk.FALSE)

        # root password statusbar
        self.rootStatus = gtk.Label("")
        wrapper = gtk.HBox(0, gtk.FALSE)
        wrapper.pack_start(self.rootStatus)
        box.pack_start(wrapper, gtk.FALSE)

        pw = self.rootPw.getPure()
        if pw:
            self.pw.set_text(pw)
            self.confirm.set_text(pw)

        return box
    def getScreen (self, intf, network, firewall, security):
	self.firewall = firewall
        self.security = security
	self.network = network
        self.intf = intf

        self.devices = self.network.available().keys()
        self.devices.sort()
        
	self.netCBs = {}

        box = gtk.VBox (gtk.FALSE, 5)
        box.set_border_width (5)

        label = gui.WrappingLabel (_("A firewall can help prevent unauthorized access to your computer from the outside world.  Would you like to enable a firewall?"))
        label.set_alignment (0.0, 0)
	label.set_size_request(450, -1)        

        box.pack_start(label, gtk.FALSE)

        vbox = gtk.VBox (gtk.FALSE)

        self.disabled_radio = gtk.RadioButton (None, (_("N_o firewall")))
        self.enabled_radio = gtk.RadioButton (self.disabled_radio,
                                               (_("_Enable firewall")))
        self.custom_radio = gtk.RadioButton (self.disabled_radio,
                                             (_("_Custom firewall")))
        self.disabled_radio.connect("clicked", self.activate_firewall)
        self.custom_radio.connect("clicked", self.activate_firewall)
        self.enabled_radio.connect("clicked", self.activate_firewall)

        vbox.pack_start (self.disabled_radio)
        vbox.pack_start (self.enabled_radio)

        a = gtk.Alignment ()
        a.add (vbox)
        a.set (0.3, 0, 0.7, 1.0)

        box.pack_start (a, gtk.FALSE, 5)

        self.table = gtk.Table (2, 8)
        box.pack_start (self.table, gtk.FALSE, 5)

        y = 0
        label = gtk.Label (_("What services should be allowed to pass through "
                             "the firewall?"))
	label.set_size_request(450, -1)
        label.set_alignment(0.0, 0.0)
        self.table.attach(label, 0, 2, y, y + 1, gtk.EXPAND | gtk.FILL, gtk.FILL, 5, 5)

        y = y + 1
        hbox = gtk.HBox(gtk.FALSE, 10)        
        self.label2 = gui.MnemonicLabel (_("_Allow incoming:"))
        self.label2.set_alignment (0.2, 0.0)
        self.incoming = checklist.CheckList(1)
	self.incoming.set_size_request(-1, 125)
        self.label2.set_mnemonic_widget(self.incoming)

        incomingSW = gtk.ScrolledWindow()
        incomingSW.set_border_width(5)
        incomingSW.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        incomingSW.set_shadow_type(gtk.SHADOW_IN)
        incomingSW.add(self.incoming)
        
#        self.table.attach (self.label2, 0, 1, y, y + 1, gtk.FILL, gtk.FILL, 5, 5)
        self.table.attach (incomingSW, 0, 2, y, y + 1, gtk.EXPAND|gtk.FILL, gtk.FILL, 5, 5)

        self.knownPorts = {"SSH": self.firewall.ssh,
                           "Telnet": self.firewall.telnet,
                           "WWW (HTTP)": self.firewall.http,
                           "Mail (SMTP)": self.firewall.smtp,
                           "FTP": self.firewall.ftp}

        for item in self.knownPorts.keys():
            self.incoming.append_row ((item, ""), self.knownPorts[item])

        y = y + 1
        self.label3 = gui.MnemonicLabel (_("Other _ports:"))
        self.ports = gtk.Entry ()
        self.label3.set_mnemonic_widget(self.ports)

        self.table.attach (self.label3, 0, 1, y, y + 1, gtk.FILL, gtk.FILL, 5, 5)
        self.table.attach (self.ports, 1, 2, y, y + 1, gtk.EXPAND|gtk.FILL, gtk.FILL, 10, 5)
        y = y + 1

        label = gui.WrappingLabel (_("If you would like to allow all traffic "
                                     "from a device, select it below."))
	label.set_size_request(450, -1)        
        label.set_alignment(0, 1)
        self.table.attach(label, 0, 2, y, y + 1,
                     gtk.FILL, gtk.FILL, 5, 5)

        y = y + 1
        hbox = gtk.HBox(gtk.FALSE, 10)
        self.label1 = gui.MnemonicLabel (_("_Trusted devices:"))
        self.label1.set_alignment (0.2, 0.0)

        self.trusted = checklist.CheckList(1)
	self.trusted.set_size_request(-1, 40)
        self.label1.set_mnemonic_widget(self.trusted)

        trustedSW = gtk.ScrolledWindow()
        trustedSW.set_border_width(5)
        trustedSW.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        trustedSW.set_shadow_type(gtk.SHADOW_IN)
        trustedSW.add(self.trusted)

        if self.devices != []:
#           self.table.attach (self.label1, 0, 1, y, y + 1, gtk.FILL, gtk.FILL, 5, 5)
            self.table.attach (trustedSW, 0, 2, y, y + 1, gtk.EXPAND|gtk.FILL, gtk.FILL, 5, 0)

            for device in self.devices:
                if device in self.firewall.trustdevs:
                    self.trusted.append_row ((device, device), gtk.TRUE)
                else:
                    self.trusted.append_row ((device, device), gtk.FALSE)


        y = y + 1

        if self.firewall.enabled == 0:
            self.disabled_radio.set_active (gtk.TRUE)
        else:
            self.enabled_radio.set_active(gtk.TRUE)
            
        if self.firewall.portlist != "":
            self.ports.set_text (self.firewall.portlist)

        self.activate_firewall(None)

        box.pack_start (gtk.HSeparator(), gtk.FALSE)

        label = gtk.Label(_("_Security Enhanced Linux (SELinux) Extensions:"))
        label.set_use_underline(gtk.TRUE)
        self.se_option_menu = gtk.OptionMenu()
        label.set_mnemonic_widget(self.se_option_menu)
        se_menu = gtk.Menu()

        for i in (_("Disabled"), _("Warn"), _("Active")):
            se_menu.add(gtk.MenuItem(i))

        self.se_option_menu.set_menu(se_menu)

        self.se_option_menu.set_history(self.security.getSELinux())
        
        hbox = gtk.HBox()
        hbox.set_spacing(8)
        hbox.pack_start(label, gtk.FALSE)
        hbox.pack_start(self.se_option_menu, gtk.TRUE)

        if flags.selinux == 0:
            hbox.set_sensitive(gtk.FALSE)

        if (SELINUX_DEFAULT == 1) or flags.selinux:
            box.pack_start(hbox, gtk.FALSE)

        return box
Beispiel #13
0
    def getScreen(self, intf, fsset, instPath, swapInfo, dispatch):

        #
        # use to test function
        #
        #	fslist = [('/', 'hda1', 1000)]
        #	fslist.append(('/var', 'hda2', 100))
        #	fslist.append(('/opt', 'hda3', 500))
        #	swapInfo = (fslist, 1000, '/var')

        self.neededSwap = 0
        self.fsset = fsset
        self.instPath = instPath
        self.intf = intf
        self.dispatch = dispatch

        rc = swapInfo

        self.neededSwap = 1
        self.row = 0
        box = gtk.VBox(gtk.FALSE, 5)
        box.set_border_width(5)

        label = gtk.Label(
            _("The 2.4 kernel needs significantly more "
              "swap than older kernels, as much as twice "
              "as much swap space as RAM on the system.  "
              "You currently have %dMB of swap configured, but "
              "you may create additional swap space on one of "
              "your file systems now.") % (iutil.swapAmount() / 1024) +
            _("\n\nThe installer has detected %s MB of RAM.\n") %
            (iutil.memInstalled() / 1024))

        label.set_alignment(0.5, 0.0)
        #        label.set_size_request(400, 200)
        label.set_line_wrap(gtk.TRUE)
        box.pack_start(label, gtk.FALSE)

        hs = gtk.HSeparator()
        box.pack_start(hs, gtk.FALSE)

        self.option1 = gtk.RadioButton(None,
                                       (_("I _want to create a swap file")))
        box.pack_start(self.option1, gtk.FALSE)

        (fsList, suggSize, suggMntPoint) = rc

        self.swapbox = gtk.VBox(gtk.FALSE, 5)
        box.pack_start(self.swapbox, gtk.FALSE)

        label = gui.MnemonicLabel(
            _("Select the _partition to put the swap file on:"))
        a = gtk.Alignment(0.2, 0.5)
        a.add(label)
        self.swapbox.pack_start(a, gtk.FALSE)

        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING,
                                   gobject.TYPE_STRING)

        for (mnt, part, size) in fsList:
            iter = self.store.append()
            self.store.set_value(iter, 0, mnt)
            self.store.set_value(iter, 1, part)
            self.store.set_value(iter, 2, str(size))

        self.view = gtk.TreeView(self.store)
        label.set_mnemonic_widget(self.view)

        i = 0
        for title in [(_("Mount Point")), (_("Partition")),
                      (_("Free Space (MB)"))]:
            col = gtk.TreeViewColumn(title, gtk.CellRendererText(), text=i)
            self.view.append_column(col)
            i = i + 1

        sw = gtk.ScrolledWindow()
        sw.add(self.view)
        sw.set_shadow_type(gtk.SHADOW_IN)
        sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        sw.set_size_request(300, 90)
        a = gtk.Alignment(0.5, 0.5)
        a.add(sw)
        self.swapbox.pack_start(a, gtk.FALSE, gtk.TRUE, 10)

        rootiter = self.store.get_iter_first()
        sel = self.view.get_selection()
        sel.select_iter(rootiter)

        label = gtk.Label(
            _("It is recommended that your swap file be at "
              "least %d MB.  Please enter a size for the swap "
              "file:") % suggSize)
        label.set_size_request(400, 40)
        label.set_line_wrap(gtk.TRUE)
        a = gtk.Alignment(0.5, 0.5)
        a.add(label)
        self.swapbox.pack_start(a, gtk.FALSE, gtk.TRUE, 10)

        hbox = gtk.HBox(gtk.FALSE, 5)
        a = gtk.Alignment(0.4, 0.5)
        a.add(hbox)
        self.swapbox.pack_start(a, gtk.FALSE)

        label = gui.MnemonicLabel(_("Swap file _size (MB):"))
        hbox.pack_start(label, gtk.FALSE)

        self.entry = gtk.Entry(4)
        label.set_mnemonic_widget(self.entry)
        self.entry.set_size_request(40, 25)
        self.entry.set_text(str(suggSize))
        hbox.pack_start(self.entry, gtk.FALSE, gtk.TRUE, 10)

        self.option2 = gtk.RadioButton(self.option1,
                                       (_("I _don't want to create a swap "
                                          "file")))
        box.pack_start(self.option2, gtk.FALSE, gtk.TRUE, 20)

        self.option1.connect("toggled", self.toggle)
        return box