aboutsummaryrefslogtreecommitdiff
blob: 4081e2e0656adddf2f7af914eaa2c983d9ffb9d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#
# profile_gui.py: gui profile selection.
#
# Copyright (C) 2011 wiktor w brodlo
# Copyright (C) 2011 Gentoo Foundation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

import string
import gtk
import gtk.glade
import gtk.gdk
import gobject
import pango
import sys
import gui
import subprocess

from iw_gui import *

from constants import *
import gettext
_ = lambda x: gettext.ldgettext("anaconda", x)

class ProfileWindow(InstallWindow):
	def getNext(self):
		for button in self.buttons:
			if button.get_property("active"):
				self.anaconda.profile = button.get_property("label")
		# We need this for the USE flags
		subprocess.call(["eselect", "profile", "set", self.anaconda.profile])
		if self.anaconda.profile == None:
			self.anaconda.intf.messageWindow(_("Select profile"), _("You must select a profile!"))
			raise gui.StayOnScreen
		return None

	def getScreen(self, anaconda):
		self.anaconda = anaconda
		self.intf = anaconda.intf        

		(self.xml, self.align) = gui.getGladeWidget("profile.glade", "profile_align")
		
		out = subprocess.check_output(["eselect", "profile", "list"])
		lines = out.split("\n")
		del lines[0]
		
		profiles = []
		for line in lines:
			s = line.split()
			if s != []:
				profiles.append(s[1])
				
		box = self.xml.get_widget("profiles_box")
		
		# This isn't on the page but is required to make a group dynamically.
		dummy = gtk.RadioButton()
		
		for profile in profiles:
			cb = gtk.RadioButton(group=dummy, label=profile, use_underline=False)
			box.pack_start(cb)
		
		self.buttons = dummy.get_group()
		
		return self.align