aboutsummaryrefslogtreecommitdiff
blob: 64c28afe690ead7386cbd5ad6bd6fb82703b7f9a (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
#
# mirrorselect-sync_gui.py: gui mirrorselect.
#
# 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 os
from mirrorselect_gui import MirrorselectWindow

from iw_gui import *

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

class MirrorselectSyncWindow(InstallWindow):
	def getNext(self):
		for button in self.buttons:
			if button.get_property("active"):
				self.anaconda.mirrors_sync.append(button.get_property("label"))
		return None

	def getScreen(self, anaconda):
		self.anaconda = anaconda
		self.intf = anaconda.intf  
		ms = MirrorselectWindow(InstallWindow)
		
		(self.xml, self.align) = gui.getGladeWidget("mirrorselect.glade", "mirrorselect_align")
		
		self.intro_label = self.xml.get_widget("intro_label")
		self.intro_label.set_label(_("Choose your Portage sync mirror(s).\nThese are used to sync your Portage tree."))
		
		mirrorsf = None
		
		while mirrorsf == None:
			# Try downloading the mirrorlist
			mirrorsf = ms.downloadMirrorlist()
			# if failed, 
			if mirrorsf == None:
				md = gtk.MessageDialog(buttons=gtk.BUTTONS_YES_NO)
				md.set_property("title", _("Failed to download mirrorlist"))
				md.set_property("text", _("Failed to download the mirror list. Would you like to try again?\nPressing 'No' will abort the installation."))
				if md.run() == gtk.RESPONSE_NO:
					md.destroy()
					InstallControlWindow._doExit([])
					
		mirrors_parsed = ms.parseMirrors(mirrorsf)
		self.mirrors = ms.mirrorList(mirrors_parsed, "rsync")
	
		ms.addMirrors(self.mirrors, mirrors_parsed)
		self.buttons = ms.buttons
	
		return self.align