From 0a2fe3e53cbdd48f253d3623fdea1b0a733ebf5e Mon Sep 17 00:00:00 2001 From: lxnay Date: Sat, 6 Sep 2008 20:59:52 +0000 Subject: [PATCH] Entropy/Spritz: - avoid using 100% CPU and messing with threads while voting git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2374 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- spritz/src/etpgui/widgets.py | 1 + spritz/src/views.py | 25 ++++++++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/spritz/src/etpgui/widgets.py b/spritz/src/etpgui/widgets.py index 6f9561107..4f767c569 100644 --- a/spritz/src/etpgui/widgets.py +++ b/spritz/src/etpgui/widgets.py @@ -169,6 +169,7 @@ class CellRendererStars(gtk.GenericCellRenderer): return getattr(self, pspec.name) def on_render(self, window, widget, background_area, cell_area, expose_area, flags): + (x_offset, y_offset, width, height) = self.on_get_size(widget, cell_area) widget.style.paint_box(window, gtk.STATE_NORMAL, diff --git a/spritz/src/views.py b/spritz/src/views.py index f80d83794..2f25b2aca 100644 --- a/spritz/src/views.py +++ b/spritz/src/views.py @@ -17,6 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +import time import gtk import gobject from spritz_setup import const, cleanMarkupString, SpritzConf @@ -493,23 +494,21 @@ class EntropyPackageView: obj = model.get_value( myiter, 0 ) if not obj: return try: - voted = getattr( obj, 'voted' ) + voted = int(getattr( obj, 'voted' )) except self.Equo.dbapi2.ProgrammingError: return - #print obj.name,mydata - if voted: - cell.value_voted = int(voted) - return + #if voted: + # cell.value_voted = int(voted) + # return try: - mydata = getattr( obj, 'vote' ) + mydata = int(getattr( obj, 'vote' )) except self.Equo.dbapi2.ProgrammingError: return cell.value = int(mydata) cell.value_voted = int(voted) - self.queueView.refresh() - self.view.queue_draw() def spawn_vote_submit(self, obj): + if self.Equo.UGC == None: obj.voted = 0 return @@ -520,12 +519,20 @@ class EntropyPackageView: atom = obj.name key = self.Equo.entropyTools.dep_getkey(atom) + self.queueView.refresh() + self.view.queue_draw() + + t = self.Equo.entropyTools.parallelTask(self.vote_submit_thread, repository, key, obj) + t.parallel_wait() + t.start() + + + def vote_submit_thread(self, repository, key, obj): status, err_msg = self.Equo.UGC.add_vote(repository, key, obj.voted) if status: msg = "%s: %s" % (_("Vote registered successfully"),obj.voted,) else: msg = "%s: %s" % (_("Error registering vote"),err_msg,) - self.ui.UGCMessageLabel.set_markup(msg) t = self.Equo.entropyTools.parallelTask(self.refresh_vote_info, obj) t.parallel_wait()