Entropy/Spritz:
- beautified the new 'up-to-date' message Entropy/Equo: - avoid crashing when it's impossible to write queue cache to disk git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@1859 cd1c1023-2f26-0410-ae45-c471fc1f0318
This commit is contained in:
+69
-39
@@ -148,17 +148,20 @@ def worldUpdate(onlyfetch = False, replay = False, upgradeTo = None, resume = Fa
|
||||
|
||||
# clear old resume information
|
||||
if etpConst['uid'] == 0:
|
||||
Equo.dumpTools.dumpobj(etpCache['world'],{})
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],[])
|
||||
if (not etpUi['pretend']):
|
||||
# store resume information
|
||||
resume_cache = {}
|
||||
resume_cache['ask'] = etpUi['ask']
|
||||
resume_cache['verbose'] = etpUi['verbose']
|
||||
resume_cache['onlyfetch'] = onlyfetch
|
||||
resume_cache['remove'] = remove
|
||||
Equo.dumpTools.dumpobj(etpCache['world'],resume_cache)
|
||||
try:
|
||||
Equo.dumpTools.dumpobj(etpCache['world'],{})
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],[])
|
||||
if (not etpUi['pretend']):
|
||||
# store resume information
|
||||
resume_cache = {}
|
||||
resume_cache['ask'] = etpUi['ask']
|
||||
resume_cache['verbose'] = etpUi['verbose']
|
||||
resume_cache['onlyfetch'] = onlyfetch
|
||||
resume_cache['remove'] = remove
|
||||
Equo.dumpTools.dumpobj(etpCache['world'],resume_cache)
|
||||
except (OSError,IOError):
|
||||
pass
|
||||
|
||||
else: # if resume, load cache if possible
|
||||
|
||||
@@ -175,11 +178,14 @@ def worldUpdate(onlyfetch = False, replay = False, upgradeTo = None, resume = Fa
|
||||
etpUi['verbose'] = resume_cache['verbose']
|
||||
onlyfetch = resume_cache['onlyfetch']
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],list(remove))
|
||||
except (IOError,KeyError):
|
||||
except (OSError,IOError,KeyError):
|
||||
print_error(red("Resume cache corrupted."))
|
||||
Equo.dumpTools.dumpobj(etpCache['world'],{})
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],[])
|
||||
try:
|
||||
Equo.dumpTools.dumpobj(etpCache['world'],{})
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],[])
|
||||
except (OSError,IOError):
|
||||
pass
|
||||
return 128,-1
|
||||
|
||||
# disable collisions protection, better
|
||||
@@ -575,17 +581,20 @@ def installPackages(packages = [], atomsdata = [], deps = True, emptydeps = Fals
|
||||
dirscleanup()
|
||||
return 0,0
|
||||
|
||||
# clear old resume information
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
# store resume information
|
||||
if not tbz2: # .tbz2 install resume not supported
|
||||
resume_cache = {}
|
||||
#resume_cache['removalQueue'] = removalQueue[:]
|
||||
resume_cache['runQueue'] = runQueue[:]
|
||||
resume_cache['onlyfetch'] = onlyfetch
|
||||
resume_cache['emptydeps'] = emptydeps
|
||||
resume_cache['deepdeps'] = deepdeps
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],resume_cache)
|
||||
try:
|
||||
# clear old resume information
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
# store resume information
|
||||
if not tbz2: # .tbz2 install resume not supported
|
||||
resume_cache = {}
|
||||
#resume_cache['removalQueue'] = removalQueue[:]
|
||||
resume_cache['runQueue'] = runQueue[:]
|
||||
resume_cache['onlyfetch'] = onlyfetch
|
||||
resume_cache['emptydeps'] = emptydeps
|
||||
resume_cache['deepdeps'] = deepdeps
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],resume_cache)
|
||||
except (IOError,OSError):
|
||||
pass
|
||||
|
||||
else: # if resume, load cache if possible
|
||||
|
||||
@@ -607,7 +616,10 @@ def installPackages(packages = [], atomsdata = [], deps = True, emptydeps = Fals
|
||||
print_warning(red("Resuming previous operations..."))
|
||||
except:
|
||||
print_error(red("Resume cache corrupted."))
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
try:
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
except (IOError,OSError):
|
||||
pass
|
||||
return 128,-1
|
||||
|
||||
if skipfirst and runQueue:
|
||||
@@ -616,7 +628,10 @@ def installPackages(packages = [], atomsdata = [], deps = True, emptydeps = Fals
|
||||
# save new queues
|
||||
resume_cache['runQueue'] = runQueue[:]
|
||||
#resume_cache['removalQueue'] = removalQueue[:]
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],resume_cache)
|
||||
try:
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],resume_cache)
|
||||
except (IOError,OSError):
|
||||
pass
|
||||
|
||||
# running tasks
|
||||
totalqueue = str(len(runQueue))
|
||||
@@ -736,7 +751,10 @@ def installPackages(packages = [], atomsdata = [], deps = True, emptydeps = Fals
|
||||
# update resume cache
|
||||
if not tbz2: # tbz2 caching not supported
|
||||
resume_cache['runQueue'].remove(packageInfo)
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],resume_cache)
|
||||
try:
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],resume_cache)
|
||||
except (IOError,OSError):
|
||||
pass
|
||||
|
||||
Package.kill()
|
||||
del metaopts
|
||||
@@ -744,8 +762,11 @@ def installPackages(packages = [], atomsdata = [], deps = True, emptydeps = Fals
|
||||
|
||||
|
||||
print_info(red(" @@ ")+blue("Install Complete."))
|
||||
# clear resume information
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
try:
|
||||
# clear resume information
|
||||
Equo.dumpTools.dumpobj(etpCache['install'],{})
|
||||
except (IOError,OSError):
|
||||
pass
|
||||
dirscleanup()
|
||||
return 0,0
|
||||
|
||||
@@ -875,12 +896,15 @@ def removePackages(packages = [], atomsdata = [], deps = True, deep = False, sys
|
||||
removalQueue.append(idpackage)
|
||||
|
||||
# clear old resume information
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],{})
|
||||
# store resume information
|
||||
resume_cache = {}
|
||||
resume_cache['doSelectiveRemoval'] = doSelectiveRemoval
|
||||
resume_cache['removalQueue'] = removalQueue[:]
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],resume_cache)
|
||||
try:
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],{})
|
||||
# store resume information
|
||||
resume_cache = {}
|
||||
resume_cache['doSelectiveRemoval'] = doSelectiveRemoval
|
||||
resume_cache['removalQueue'] = removalQueue[:]
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],resume_cache)
|
||||
except (OSError, IOError):
|
||||
pass
|
||||
|
||||
else: # if resume, load cache if possible
|
||||
|
||||
@@ -896,7 +920,10 @@ def removePackages(packages = [], atomsdata = [], deps = True, deep = False, sys
|
||||
print_warning(red("Resuming previous operations..."))
|
||||
except:
|
||||
print_error(red("Resume cache corrupted."))
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],{})
|
||||
try:
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],{})
|
||||
except (OSError, IOError):
|
||||
pass
|
||||
return 128,-1
|
||||
|
||||
# validate removalQueue
|
||||
@@ -944,7 +971,10 @@ def removePackages(packages = [], atomsdata = [], deps = True, deep = False, sys
|
||||
|
||||
# update resume cache
|
||||
resume_cache['removalQueue'].remove(Package.infoDict['removeidpackage'])
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],resume_cache)
|
||||
try:
|
||||
Equo.dumpTools.dumpobj(etpCache['remove'],resume_cache)
|
||||
except (OSError,IOError):
|
||||
pass
|
||||
|
||||
Package.kill()
|
||||
del metaopts
|
||||
|
||||
@@ -164,7 +164,9 @@ class PkgInfoMenu:
|
||||
|
||||
pkg = self.pkg
|
||||
dbconn = self.pkg.dbconn
|
||||
avail = dbconn.isIDPackageAvailable(pkg.matched_atom[0])
|
||||
avail = False
|
||||
if dbconn:
|
||||
avail = dbconn.isIDPackageAvailable(pkg.matched_atom[0])
|
||||
if not avail:
|
||||
return
|
||||
if type(pkg.matched_atom[1]) is not int and pkg.matched_atom[1] not in self.Entropy.validRepositories:
|
||||
|
||||
@@ -197,6 +197,26 @@ class EntropyPackages:
|
||||
yp.action = 'rr'
|
||||
yp.color = color_install
|
||||
yield yp
|
||||
elif mask == "fake_updates":
|
||||
# load a pixmap inside the treeview
|
||||
class emptyobj:
|
||||
def __init__(self):
|
||||
self.matched_atom = (0,0)
|
||||
self.namedesc = "<big><b><span foreground='#FF0000'>%s</span></b></big>\n<span foreground='darkblue'>%s.\n%s</span>" % (
|
||||
_('No updates available'),
|
||||
_("It seems that your system is already up-to-date. Good!"),
|
||||
_("Try clicking the %s button in the %s page") % (
|
||||
_("Update Repositories"),
|
||||
_("Repository Selection"),
|
||||
),
|
||||
)
|
||||
self.queued = None
|
||||
self.repoid = ''
|
||||
self.color = None
|
||||
self.action = None
|
||||
self.dbconn = None
|
||||
myobj = emptyobj()
|
||||
yield myobj
|
||||
|
||||
def getCategories(self):
|
||||
catlist = []
|
||||
|
||||
@@ -1143,7 +1143,12 @@ class SpritzApplication(SpritzController,SpritzGUI):
|
||||
if bootstrap:
|
||||
self.endWorking()
|
||||
|
||||
self.pkgView.populate(allpkgs)
|
||||
empty = False
|
||||
if not allpkgs and action == "updates":
|
||||
allpkgs = self.etpbase.getPackages('fake_updates')
|
||||
empty = True
|
||||
|
||||
self.pkgView.populate(allpkgs, empty = empty)
|
||||
self.progress.total.show()
|
||||
|
||||
if self.doProgress: self.progress.hide() #Hide Progress
|
||||
|
||||
+17
-4
@@ -428,7 +428,7 @@ class EntropyPackageView:
|
||||
def clear(self):
|
||||
self.store.clear()
|
||||
|
||||
def populate(self, pkgs, widget = None):
|
||||
def populate(self, pkgs, widget = None, empty = False):
|
||||
self.clear()
|
||||
search_col = 0
|
||||
if widget == None:
|
||||
@@ -437,9 +437,16 @@ class EntropyPackageView:
|
||||
widget.set_model(None)
|
||||
for po in pkgs:
|
||||
self.store.append( None, (po,) ) # str(po)) )
|
||||
|
||||
widget.set_model(self.store)
|
||||
widget.set_search_column( search_col )
|
||||
widget.set_search_equal_func(self.atom_search)
|
||||
if not empty:
|
||||
widget.set_search_column( search_col )
|
||||
widget.set_search_equal_func(self.atom_search)
|
||||
widget.set_property('headers-visible',True)
|
||||
widget.set_property('enable-search',True)
|
||||
else:
|
||||
widget.set_property('headers-visible',False)
|
||||
widget.set_property('enable-search',False)
|
||||
|
||||
def atom_search(self, model, column, key, iterator):
|
||||
obj = model.get_value( iterator, 0 )
|
||||
@@ -474,7 +481,8 @@ class EntropyPackageView:
|
||||
obj = model.get_value( iter, 0 )
|
||||
if obj:
|
||||
cell.set_property('markup',getattr( obj, property ))
|
||||
cell.set_property('foreground',obj.color)
|
||||
if obj.color:
|
||||
cell.set_property('foreground',obj.color)
|
||||
|
||||
def selectAll(self):
|
||||
list = [x[0] for x in self.store if not x[0].queued == x[0].action]
|
||||
@@ -522,6 +530,11 @@ class EntropyPackageView:
|
||||
"""
|
||||
pkg = model.get_value( iter, 0 )
|
||||
if pkg:
|
||||
|
||||
if not pkg.dbconn:
|
||||
cell.set_property( 'stock-id', 'gtk-apply' )
|
||||
return
|
||||
|
||||
if not pkg.queued:
|
||||
if pkg.action in ["r","rr"]:
|
||||
self.set_pixbuf_to_cell(cell, self.pkg_install_ok)
|
||||
|
||||
Reference in New Issue
Block a user