コード例 #1
0
ファイル: dlgSkipped.py プロジェクト: pombredanne/aptoncd
 def __init__(self, controller = None, pkg_list = []):
     """
     Constructor
     """
     self.controller = controller
     self.packages = pkg_list
     self.glade = gui.get_glade(constants.PROPERTY_GUI, WINDOW_NAME)
         
     #Main widget
     self.window = gui.get_widget(self.glade, WINDOW_NAME)
     self.window.set_icon_name(constants.APP_ICON_NAME)
     
     self.tvPkgSkipped = gui.get_widget(self.glade, 'tvPkgSkipped')
     self.cellRendererText = gtk.CellRendererText()
     
     # add the check column to the tree view widget
     column = gtk.TreeViewColumn('', self.cellRendererText, text = 0)
     self.tvPkgSkipped.append_column(column)
     self.model = gtk.ListStore(str)
     
     self.lblMessage = gui.get_widget(self.glade, 'lblMessage')
     if self.controller:
         self.window.set_transient_for(self.controller.get_main_window())
         self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
     
     self.load_list()    
     self.window.set_modal(True)
コード例 #2
0
ファイル: burnproperties.py プロジェクト: pombredanne/aptoncd
	def __init__(self, controller = None):
		"""
			Constructor
		"""
		self.controller = controller
		self.glade = gui.get_glade(constants.CREATE_GUI, WINDOW_NAME)

		#Main widget
		self.window = gui.get_widget(self.glade, WINDOW_NAME)
		self.window.set_icon_name(constants.APP_ICON_NAME)

		#get glade widgets
		self.cmbLocation = gui.get_widget(self.glade,'folderlocation')
		self.txtIsoName = gui.get_widget(self.glade,'isoname')
		self.chkCreteMeta = gui.get_widget(self.glade, 'chkcreatemetapackage')
		self.cmdApply = gui.get_widget(self.glade,'cmdApply')
		self.cmdCancel = gui.get_widget(self.glade, 'cmdCancel')
		self.mediaSize = gui.get_widget(self.glade, 'mediasize')
		self.imgmedia = gui.get_widget(self.glade, 'imgmedia')
		
		self.optcd = gui.get_widget(self.glade, 'optcd')
		self.optdvd = gui.get_widget(self.glade, 'optdvd')
		
		cds, dvds = self.controller.get_packages_size()
		cdLabel = gui.get_children(self.optcd, gtk.Label)
		dvdLabel = gui.get_children(self.optdvd, gtk.Label)

		if cdLabel:
		    if cds == 1:
		        cdLabel.set_text(str(cds) + ' CD')
		    else:
		        cdLabel.set_text(str(cds) + ' CDs')
   
		if dvdLabel:
		    if dvds == 1:
		        dvdLabel.set_text(str(dvds) + ' DVD')
		    else:
		        dvdLabel.set_text(str(dvds) + ' DVDs')
			
		self.media_size = constants.CD
		self.media_type = 'CD'
		
		self.imgmedia.set_from_pixbuf(get_icon('gnome-dev-disc-cdr',48))
		
		if self.controller:
			self.window.set_transient_for(self.controller.get_main_window())
			self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)

		#show saved properties
		today = datetime.date.today().strftime('%Y%m%d')
		self.cmbLocation.set_current_folder(os.environ['HOME'])
		self.txtIsoName.set_text('aptoncd-'+today)
		# connect signals
		self.connect_signals()
		self.window.set_modal(True)
コード例 #3
0
	def __init__(self, controller = None, drive_list = []):
		"""
			Constructor
		"""
		self.controller = controller
		self.drivers = drive_list
		self.glade = gui.get_glade(constants.RESTORE_GUI, WINDOW_NAME)
	
		#Main widget
		self.window = gui.get_widget(self.glade, WINDOW_NAME)
		self.window.set_icon_name(constants.APP_ICON_NAME)
		
		self.cmbLocation = gui.get_widget(self.glade, 'cboMountedDevices')
		self.optMedia = gui.get_widget(self.glade, 'optMedia')
		self.optIso = gui.get_widget(self.glade, 'optIso')
		self.filechooserIsoImage = gui.get_widget(self.glade, 'filechooserIsoImage')
		
		#set filter to allow iso file only
		filter = gtk.FileFilter()
		#TODO: make a constant string for this file title 
		filter.set_name(constants.MESSAGE_0068) 
		filter.add_mime_type('application/x-cd-image')
		filter.add_pattern("*.iso")
		self.filechooserIsoImage.add_filter(filter)
		self.filechooserIsoImage.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
  		
		
		if self.controller:
			self.window.set_transient_for(self.controller.get_main_window())
			self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
				# connect signals
		self.load_media()
		
		self.connect_signals()
		self.optMedia.set_active(True)
		if len(self.cmbLocation.get_model()) <= 0:
			self.optMedia.set_sensitive(False)
			self.optIso.set_active(True)
		else:	
			self.filechooserIsoImage.set_sensitive(False)
			self.cmbLocation.set_active_iter(self.cmbLocation.get_model().get_iter_first())
	
		self.window.set_modal(True)
コード例 #4
0
ファイル: quick_guide.py プロジェクト: pombredanne/aptoncd
	def __init__(self, controller = None):
		"""
			Constructor
		"""
		self.controller = controller
		self.glade = gui.get_glade(constants.PROPERTY_GUI, WINDOW_NAME)

		#Main widget
		self.window = gui.get_widget(self.glade, WINDOW_NAME)
		self.window.set_icon_name(constants.APP_ICON_NAME)

		#get glade widgets
		self.chkShowStartup = gui.get_widget(self.glade, 'chkShowStartup')
		self.cmdClose = gui.get_widget(self.glade, 'cmdClose')
		
		if self.controller:
			self.window.set_transient_for(self.controller.get_main_window())
			self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)

		# connect signals
		self.connect_signals()
		self.window.set_modal(True)
コード例 #5
0
ファイル: missingdialog.py プロジェクト: pombredanne/aptoncd
    def __init__(self, controller = None, missing_list = []):
        """
            Constructor.
        """

        self.controller = controller
        self.glade = gui.get_glade(constants.CREATE_GUI, WINDOW_NAME)
        gui.setCursorToBusy(self.controller.get_parent_widget(),True)
        #main widget
        self.window = gui.get_widget(self.glade, WINDOW_NAME)
        self.window.set_icon_name(constants.APP_ICON_NAME)
        self.window.set_transient_for(self.controller.get_main_window())
        self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)

        #get work widgets
        self.tvwNotInstalled = gui.get_widget(self.glade, 'tvwNotInstalled')
        self.store = gtk.ListStore(gobject.TYPE_BOOLEAN, str)

        self.__create_ui()
        if len(missing_list)>0:
            for n in missing_list:
                self.store.append([False, n])
        gui.setCursorToNormal(self.controller.get_parent_widget())
コード例 #6
0
ファイル: propertywindow.py プロジェクト: pombredanne/aptoncd
 def __init__(self, package, controller = None, pixbuf = None):
     """
         Constructor
     """
     self.glade = gui.get_glade(constants.PROPERTY_GUI, WINDOW_NAME)        
     self.package = package
     
     self.window = gui.get_widget(self.glade, WINDOW_NAME)
     self.window.set_title(" %s " % self.package.package + constants.MESSAGE_0072)
     
     if controller:
         self.window.set_transient_for(controller.get_main_window())
     
     self.pixbuf = pixbuf
     self.create_ui()
コード例 #7
0
ファイル: restoreWindow.py プロジェクト: pombredanne/aptoncd
    def __init__(self, controller=None, temp_path="", packages_path="", filename=""):
        """
            Constructor
        """
        self.controller = controller
        self.glade = gui.get_glade(constants.RESTORE_GUI, WINDOW_NAME)

        self.temp_path = temp_path
        self.cd_path = ""
        self.root_shell = None
        if self.temp_path == "" or self.temp_path == None:
            self.temp_path = constants.TEMP_FOLDER
        else:
            self.temp_path = temp_path

        self.packages_path = packages_path
        self.isoFileName = filename
        self.restoretype = constants.RESTORE_TYPE.RESTORE_FROM_NONE

        self.window = gui.get_widget(self.glade, WINDOW_NAME)
        if self.controller:
            self.window.set_decorated(False)
            self.content = gui.set_parent_widget_from_glade(self.glade, WINDOW_NAME, self.controller.restoreContainer)
            self.window.destroy()
            gui.setCursorToBusy(self.controller.get_main_window(), True)
        else:
            # Window Widgets
            self.window.show()
            gui.setCursorToBusy(self.window, True)

        self.ListContainer = gui.get_widget(self.glade, "ListContainer")

        self.lblPkgDesc = gui.get_widget(self.glade, "lblPkgDesc")
        self.pkgImg = gui.get_widget(self.glade, "pkgImg")

        self.btnRestorePackages = gui.get_widget(self.glade, "restorePackages")
        self.btnLoadFrom = gui.get_widget(self.glade, "btnLoadFrom")
        self.btnRestorePackages.set_sensitive(False)

        self.packageList = PackageList.PackageView(self)
        self.ListContainer.add(self.packageList)

        self.ListContainer.show_all()
        gui.processEvents()

        if self.controller:
            self.controller.show_status_message(constants.MESSAGE_0001)

        # self.packageList.load_package_folder(self.packages_path)

        self.bind_signals()

        if self.isoFileName != "":
            self.restoreFromIso(self.isoFileName, self.temp_path)
コード例 #8
0
ファイル: propertywindow.py プロジェクト: pombredanne/aptoncd
 def create_ui(self):
     """
         Setup the user interface.
     """
     gui.get_widget(self.glade, 'lblPackage').set_text(self.package.package)
     gui.get_widget(self.glade, 'lblVersion').set_text(self.package.version)
     
     # FIXME: Use this method to show the lblStatus
     # for a more verbose and elegant label
     #compare = DebPackage()
     #status = compare.compare_version(self.package.version)
     #print status
     #if status == 0:
     #	gui.get_widget(self.glade, 'lblStatus').set_text("This package is the same as the installed")
     #elif status < 0:
     #	gui.get_widget(self.glade, 'lblStatus').set_text("An older version is installed")
     #elif status > 0:
     #	gui.get_widget(self.glade, 'lblStatus').set_text("A later version is already installed")
     #else:
     #	gui.get_widget(self.glade, 'lblStatus').set_text("This package is not installed")
     
    	if self.package.installed == True:
     	gui.get_widget(self.glade, 'lblStatus').set_text(constants.MESSAGE_0058)
     else:
     	gui.get_widget(self.glade, 'lblStatus').set_text(constants.MESSAGE_0059)
     	
     gui.get_widget(self.glade, 'lblFilename').set_text(self.package.deb_filename)
     gui.get_widget(self.glade, 'lblSize').set_text(self.package.size_text)
     
     if self.package.custom == True:
     	gui.get_widget(self.glade, 'lblCustom').set_text(constants.MESSAGE_0060)
     else:
     	gui.get_widget(self.glade, 'lblCustom').set_text(constants.MESSAGE_0061)
     
     gui.get_widget(self.glade, 'lblDescription').set_text(self.package.short_description)
     
     textview = gui.get_widget(self.glade, 'txtvwDesc').get_buffer()
     textview.set_text(self.package.long_description)
     
     if self.pixbuf:
         gui.get_widget(self.glade, 'imgPackage').set_from_pixbuf(self.pixbuf)
     gui.get_widget(self.glade,'button1').connect('clicked', self.on_click)
コード例 #9
0
ファイル: finisheddialog.py プロジェクト: pombredanne/aptoncd
	def __init__(self, controller = None, burn_list = []):
		"""
			Constructor.
		"""
		
		self.controller = controller
		self.glade = gui.get_glade(constants.CREATE_GUI, WINDOW_NAME)
		
		#main widget
		self.window = gui.get_widget(self.glade, WINDOW_NAME)
		self.window.set_icon_name(constants.APP_ICON_NAME)
		self.window.set_transient_for(self.controller.get_main_window())
		self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
		
		#get work widgets
		self.labelquestion = gui.get_widget(self.glade, 'labelquestion')
		self.locationlabel = gui.get_widget(self.glade, 'locationlabel')
		self.btnyes = gui.get_widget(self.glade, 'btnyes')
		self.btnno = gui.get_widget(self.glade, 'btnno')
		self.btnclose = gui.get_widget(self.glade, 'btnclose')
		self.btnOpen = gui.get_widget(self.glade, 'btnOpenIsoLocation')
		self.burnerbox = gui.get_widget(self.glade, 'burnerbox')
		self.cmbburners = gui.get_widget(self.glade, 'cmbburners')

		self.can_burn = False
		
		if len(burn_list) > 0 :
			self.labelquestion.set_markup(constants.MESSAGE_0035)
			self.locationlabel.set_text(self.controller.get_iso_location())
			self.burnerbox.set_property('visible', True)
			self.btnclose.set_property('visible', False)
			self.can_burn = True
			
		else:
			self.burnerbox.set_property('visible', False)
			self.labelquestion.set_property('visible', False)
			self.locationlabel.set_text(self.controller.get_iso_location())
			self.btnclose.set_property('visible', True)
			self.btnyes.set_property('visible', False)
			self.btnno.set_property('visible', False)
		
		self.combo_store = gtk.ListStore(gtk.gdk.Pixbuf ,str,str,str)
		
		textcell = gtk.CellRendererText()
		textcell.set_property('xalign', 0)
		pbcell = gtk.CellRendererPixbuf()
		self.cmbburners.pack_start(pbcell, False)
		self.cmbburners.pack_start(textcell, True)
		
		self.cmbburners.add_attribute(pbcell, 'pixbuf', 0)
		self.cmbburners.add_attribute(textcell, 'text', 1)
		
		#add the burn options to the list
		for itens in burn_list.values():
			self.combo_store.append([get_icon(itens['name'], 22, True),itens['name'],itens['location'],itens['parameter']])
		
		#update the combo model
		self.cmbburners.set_model(self.combo_store)
		
		#select the first item in the combo by default
		if len(burn_list) > 0:
			self.cmbburners.set_active_iter(self.cmbburners.get_model().get_iter_first())

		gui.connect(self.btnOpen, 'clicked', self.on_open_destination)		
コード例 #10
0
ファイル: createWindow.py プロジェクト: pombredanne/aptoncd
    def __init__(self, controller = None, temp_path = '', packages_path = '', packages_file_list='', non_interactive = False):
        """
            Constructor
        """
        self.freespaceneeded = 0
        self.controller = controller
        self.glade = gui.get_glade(constants.CREATE_GUI, WINDOW_NAME)
        
        self.non_interactive = non_interactive
        if temp_path == '':
            self.temp_path = constants.TEMP_FOLDER
        else:
            self.temp_path = temp_path
        self.packages_path = packages_path
        
        self.window = gui.get_widget(self.glade, WINDOW_NAME)
        #self.window.set_icon(get_icon('aptoncd'))
        #if is inside a container
        if self.controller:
            self.window.set_decorated(False)
            self.content = gui.set_parent_widget_from_glade(self.glade, WINDOW_NAME, self.controller.createContainer)
            self.window.destroy()
            gui.setCursorToBusy(self.get_main_window(), True)
        else:
            #Window Widgets
            if packages_file_list =='' or self.non_interactive == False:
                self.window.show()
            gui.setCursorToBusy(self.window, True)
        
        self.tipBox = gui.get_widget(self.glade, 'tipbox')
        self.btnCloseTipBox = gui.get_widget(self.glade, 'btnCloseTipBox')
        self.btnMoreMissing = gui.get_widget(self.glade, 'btnMoreMissing')
        
        self.ListContainer = gui.get_widget(self.glade,'ListContainer')       
        self.lblPkgDesc = gui.get_widget(self.glade, 'lblPkgDesc')
        self.pkgImg = gui.get_widget(self.glade, 'pkgImg')

        self.btnAdd = gui.get_widget(self.glade, 'btnAdd')
        self.btnBurn = gui.get_widget(self.glade, 'createBurn')

        self.packageList = PackageList.PackageView(self)
        self.ListContainer.add(self.packageList)
        self.ListContainer.show_all()
        self.bind_signals()
        #gui.connect(self.tgBtnCreate, 'toggled',self.on_BtnCreate_toggle)
        self.values = {
                        'media_type': 'CD',
                        'media_size': constants.CD,
                        'destination': utils.get_home_folder(),
                        'isoname': '',
                        'createmeta': False
                        }
        if packages_file_list =='':
            #self.packageList.can_select_old = self.ckbtnOldVersions.get_active()
            #self.packageList.auto_select_packages = self.ckbtnAutoSelectDepends.get_active()
        
            gui.processEvents()
        
            if self.controller:
                self.controller.show_status_message(constants.MESSAGE_0001)
        else:
            self.process_list(packages_file_list)
コード例 #11
0
ファイル: createWindow.py プロジェクト: pombredanne/aptoncd
    def create_aptoncd(self):
        
        #this will hold error information.
        errorMsg = ""
        
        self.progress = ProgressDialog(self.get_main_window())
        self.progress.can_cancel_progress = True
        self.progress.title = constants.MESSAGE_0024 
        self.progress.description = constants.MESSAGE_0025 

        #defines the steps to create this iso.
        process = [constants.MESSAGE_0020, constants.MESSAGE_0021, \
                   constants.MESSAGE_0022, constants.MESSAGE_0023]
        self.steps = stepswidget.ProgressSteps(process)
        self.progress.add_widget(self.steps)
        
        #set temp variables for packages locations
        tmpdir = utils.join_path(self.temp_path, 'aptoncd') #"/tmp/aptoncd/"
        tmpmetapackageDir = utils.join_path(tmpdir , 'metapackage')
        tmppackages = utils.join_path(tmpdir , 'packages')
        
        #creates a temporary location to work with .deb files
        utils.mkdir(tmpdir, True)
        
        #get what files will be on each cd
        if self.values['media_type'] == 'CD':
            isoFileList = self.CreateIsoList(constants.CD)
        else:
            isoFileList = self.CreateIsoList(constants.DVD)
        #we will starting changing here to break process in parts
        # first, copy files from cds to locations
        
        result, msg = self.copy_files(isoFileList,tmpdir)
        # the user clicked cancel button
        if not result :
            self.get_main_window().set_sensitive(True)
            return False
            
        result, msg = self.scan_packages(isoFileList,tmpdir)
        if not result :
            self.get_main_window().set_sensitive(True)
            return False 
        
        self.create_iso(isoFileList,tmpdir)
        
        self.steps.set_current(3)
        gui.processEvents()
        #clean folders created previously    
        utils.removePath(tmpdir)
        self.steps.set_done(3)
        
        burn_list = {}
        index=0
        for indx, burns in enumerate(utils.get_burn_applications(constants.BURNS_DATA)):
        	item = utils.whereis(burns[0])
        	
        	if item:
        		burn_list[index]= { 'name':burns[0], 'location':item , 'parameter':burns[1]}
        		index += 1
        		        
        if index >= 1:
        	dlgburn = FinishedDialog(self, burn_list)
        	self.progress.destroy()
        	result, index = dlgburn.run()
        	
        	if result == 1:
        		for iso in self.isos:
        			command = burn_list[index]['location'] + ' '+ burn_list[index]['parameter'] + iso + ' &'
        			utils.run_command(command)
        	dlgburn.destroy()  
        
        self.get_main_window().set_sensitive(True)
        
        self.main_window = gui.get_glade(constants.MAIN_GUI, 'main')
        self.notebook = gui.get_widget(self.main_window, 'notebook')
        self.notebook.set_current_page(0)
コード例 #12
0
ファイル: main_window.py プロジェクト: pombredanne/aptoncd
    def __init__(self, temp_path="", packages_path=""):
        """
            Constructor
        """
        self.temp_path = temp_path
        self.packages_path = packages_path
        self.create = None
        self.restore = None
        self.glade = gui.get_glade(constants.MAIN_GUI, WINDOW_NAME)

        # Main widget
        self.window = gui.get_widget(self.glade, WINDOW_NAME)
        self.window.set_icon_name(constants.APP_ICON_NAME)

        # Window Widgets
        # notebook widget
        self.notebook = gui.get_widget(self.glade, "notebook")

        self.createContainer = gui.get_widget(self.glade, "panelCreate")
        self.restoreContainer = gui.get_widget(self.glade, "panelRestore")
        self.panelCreate = gui.get_widget(self.glade, "createPanel")
        self.panelRestore = gui.get_widget(self.glade, "restorePanel")

        # self.image1 = gui.get_widget(self.glade, 'image1')
        # self.image1.set_from_pixbuf(get_icon(constants.APP_ICON_NAME))

        self.progressbar = gui.get_widget(self.glade, "pb_main")
        self.progressbar.hide()

        # mode menu
        self.mnuModeCreate = gui.get_widget(self.glade, "mnuModeCreate")
        self.mnuModeRestore = gui.get_widget(self.glade, "mnuModeRestore")

        self.mnuReload = gui.get_widget(self.glade, "mnuReload")
        self.mnuSelectAll = gui.get_widget(self.glade, "mnuSelectAll")
        self.mnuUnselectAll = gui.get_widget(self.glade, "mnuUnselectAll")
        self.mnuInvertSelections = gui.get_widget(self.glade, "mnuInvertSelections")

        # CheckMenuItem
        self.mnuSelectDepends = gui.get_widget(self.glade, "mnuSelectDepends")
        self.mnuInsertOldVersions = gui.get_widget(self.glade, "mnuInsertOldVersions")

        # viewMenuItens
        self.chkColumnSize = gui.get_widget(self.glade, "chkColumnSize")
        self.chkColumnVersion = gui.get_widget(self.glade, "chkColumnVersion")

        self.statusbar = gui.get_widget(self.glade, "statusbar")

        # workaround to set pango markup to a statusbar
        self.status_label = self.statusbar.get_children()[0].get_children()[0]
        if not isinstance(self.status_label, gtk.Label):
            self.status_label = self.statusbar.get_children()[0].get_children()[0].get_children()[0]
        self.status_label.set_use_markup(True)

        # signals connection
        gui.connect(gui.get_widget(self.glade, "btnMainCreate"), "clicked", self.on_activate_tab, 0)
        gui.connect(gui.get_widget(self.glade, "btnMainRestore"), "clicked", self.on_activate_tab, 1)
        gui.connect(gui.get_widget(self.glade, "mnuQuit"), "activate", self.on_destroy)
        gui.connect(self.mnuReload, "activate", self.on_reload)
        gui.connect(gui.get_widget(self.glade, "mnuAddMedia"), "activate", self.on_add_media)
        gui.connect(gui.get_widget(self.glade, "mnuHelp"), "activate", self.on_help)
        gui.connect(gui.get_widget(self.glade, "mnuQuickGuide"), "activate", self.on_quick_guide)
        gui.connect(gui.get_widget(self.glade, "btnHelp"), "clicked", self.on_help)
        gui.connect(gui.get_widget(self.glade, "mnuAbout"), "activate", self.on_about)

        gui.connect(self.mnuSelectAll, "activate", self.on_editmenu_select, 0)
        gui.connect(self.mnuUnselectAll, "activate", self.on_editmenu_select, 1)
        gui.connect(self.mnuInvertSelections, "activate", self.on_editmenu_select, 2)

        # mode menu events
        gui.connect(self.mnuModeCreate, "toggled", self.on_change_mode, 0)
        gui.connect(self.mnuModeRestore, "toggled", self.on_change_mode, 1)

        gui.connect(self.mnuSelectDepends, "toggled", self.on_select_depends_old, 0)
        gui.connect(self.mnuInsertOldVersions, "toggled", self.on_select_depends_old, 1)

        gui.connect(self.chkColumnSize, "toggled", self.on_select_view, 0)
        gui.connect(self.chkColumnVersion, "toggled", self.on_select_view, 1)

        gui.connect(self.window, "destroy", self.on_destroy)

        self.show_panel("")

        self.show_status_message(constants.MESSAGE_0066)