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)
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)
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)
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)
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())
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()
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)
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)
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)
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)
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)
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)