diff --git a/spritz/gfx/ad.png b/spritz/gfx/ad.png new file mode 100644 index 000000000..ec601eeef Binary files /dev/null and b/spritz/gfx/ad.png differ diff --git a/spritz/src/dialogs.py b/spritz/src/dialogs.py index fff81373e..ec2434ee0 100644 --- a/spritz/src/dialogs.py +++ b/spritz/src/dialogs.py @@ -22,6 +22,7 @@ import gtk import gobject import pango from etpgui.widgets import UI +from etpgui import CURRENT_CURSOR, busyCursor, normalCursor from spritz_setup import const, cleanMarkupString, SpritzConf, unicode2htmlentities from entropy_i18n import _,_LOCALE import packages @@ -408,11 +409,11 @@ class PkgInfoMenu(MenuSkel): self.star_enter(widget, event, 1) def on_starsEvent_leave_notify_event(self, widget, event): - self.pkginfo_ui.pkgInfo.window.set_cursor(None) + normalCursor(self.pkginfo_ui.pkgInfo) self.set_stars(self.vote) def on_starsEvent_enter_notify_event(self, widget, event): - self.pkginfo_ui.pkgInfo.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.CROSSHAIR)) + busyCursor(self.pkginfo_ui.pkgInfo, cur = gtk.gdk.Cursor(gtk.gdk.CROSSHAIR)) def on_starEvent5_button_release_event(self, widget, event): self.vote_click(5) diff --git a/spritz/src/etpgui/__init__.py b/spritz/src/etpgui/__init__.py index 3701ba77b..6c6698634 100644 --- a/spritz/src/etpgui/__init__.py +++ b/spritz/src/etpgui/__init__.py @@ -26,10 +26,13 @@ import time import logging from threading import Thread,Event import thread, random +CURRENT_CURSOR = None -def busyCursor(mainwin,insensitive=False): +def busyCursor(mainwin,insensitive=False, cur = gtk.gdk.Cursor(gtk.gdk.WATCH)): ''' Set busy cursor in mainwin and make it insensitive if selected ''' - mainwin.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) + mainwin.window.set_cursor(cur) + global CURRENT_CURSOR + CURRENT_CURSOR = cur if insensitive: mainwin.set_sensitive(False) doGtkEvents() @@ -39,6 +42,8 @@ def normalCursor(mainwin): if mainwin.window != None: mainwin.window.set_cursor(None) mainwin.set_sensitive(True) + global CURRENT_CURSOR + CURRENT_CURSOR = None doGtkEvents() def doGtkEvents(): diff --git a/spritz/src/spritz.glade b/spritz/src/spritz.glade index 1892b7887..cc35ca2b0 100644 --- a/spritz/src/spritz.glade +++ b/spritz/src/spritz.glade @@ -850,100 +850,155 @@ - + True - 8 - 9 - GTK_BUTTONBOX_END - + True - True - True - 0 - - + + 14 True - 0 - 0 - - - True - 2 - - - True - gtk-add - - - False - False - - - - - True - 0.49000000953674316 - _Add All - True - - - False - False - 1 - - - - + True + True + + False + - - - - - True - True - True - 0 - - + + 468 + 60 True - 0 - 0 - + + 468 + 60 True - 2 + + + - - True - gtk-remove - - - False - False - - - - - True - _Remove All - True - - - False - False - 1 - + + + False + False + 1 + + False + + + + + True + 8 + 9 + GTK_BUTTONBOX_END + + + True + True + True + 0 + + + + True + 0 + 0 + + + True + 2 + + + True + gtk-add + + + False + False + + + + + True + 0.49000000953674316 + _Add All + True + + + False + False + 1 + + + + + + + + + + + True + True + True + 0 + + + + True + 0 + 0 + + + True + 2 + + + True + gtk-remove + + + False + False + + + + + True + _Remove All + True + + + False + False + 1 + + + + + + + + + 1 + + + + + False + False + 5 1 @@ -951,7 +1006,6 @@ False False - 5 2 @@ -2324,126 +2378,33 @@ 9 True - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 3 - 2 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Prevents files belonging to a package being overwritten by another - Disabled -Removal only -Install+Removal - - - - 1 - 2 - 1 - 2 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Collision protection - - - 1 - 2 - - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - This is what they call "nice level" - 3 - 3 - 1 -19 19 1 10 10 - 1 - True - - - - 1 - 2 - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Process priority (nice) - - - - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Entropy can keep a backup of your updated configuration files - Backup configuration files - 0 - True - - - - 2 - 2 - 3 - - - - - - 1 - 2 - 1 - 2 - - - - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Ignored protected files + Protected files and directories False - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -2453,21 +2414,21 @@ Install+Removal - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK GTK_BUTTONBOX_SPREAD - + True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-new @@ -2480,15 +2441,16 @@ Install+Removal - + True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - + + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-edit @@ -2502,16 +2464,16 @@ Install+Removal - + True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-delete @@ -2537,10 +2499,6 @@ Install+Removal - - 1 - 2 - @@ -2671,33 +2629,33 @@ Install+Removal - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Protected files and directories + Ignored protected files False - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -2707,21 +2665,21 @@ Install+Removal - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK GTK_BUTTONBOX_SPREAD - + True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-new @@ -2734,16 +2692,15 @@ Install+Removal - + True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - - + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-edit @@ -2757,16 +2714,16 @@ Install+Removal - + True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-delete @@ -2792,6 +2749,103 @@ Install+Removal + + 1 + 2 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 3 + 2 + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Entropy can keep a backup of your updated configuration files + Backup configuration files + 0 + True + + + + 2 + 2 + 3 + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Process priority (nice) + + + + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + This is what they call "nice level" + 3 + 3 + 1 -19 19 1 10 10 + 1 + True + + + + 1 + 2 + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Collision protection + + + 1 + 2 + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Prevents files belonging to a package being overwritten by another + Disabled +Removal only +Install+Removal + + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + 1 + 2 + 1 + 2 + @@ -2845,74 +2899,67 @@ Install+Removal 5 3 - + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + FTP Proxy + + + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + HTTP Proxy + + + 1 + 2 + GTK_FILL + + + + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - type your password here - False + Example: http://proxy:1234 1 3 - 3 - 4 GTK_FILL - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - type your username here + Example: http://proxy:1234 1 3 - 2 - 3 + 1 + 2 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Proxy Password + Download speed limit - 3 - 4 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Proxy Username - - - 2 - 3 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - kb/sec - - - 2 - 3 4 5 GTK_FILL @@ -2937,69 +2984,76 @@ Install+Removal - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Download speed limit + kb/sec + 2 + 3 4 5 GTK_FILL - + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Proxy Username + + + 2 + 3 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Proxy Password + + + 3 + 4 + GTK_FILL + + + + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Example: http://proxy:1234 + type your username here 1 3 - 1 - 2 + 2 + 3 GTK_FILL - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Example: http://proxy:1234 + type your password here + False 1 3 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - HTTP Proxy - - - 1 - 2 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - FTP Proxy - - + 3 + 4 GTK_FILL @@ -3466,14 +3520,56 @@ Install+Removal 3 2 - + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 150 + + + 1 + 2 + 2 + 3 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 150 + + + 1 + 2 + 1 + 2 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 150 + + + 1 + 2 + + + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 10 - Your Full Name + What you were doing + 2 + 3 GTK_FILL @@ -3492,59 +3588,17 @@ Install+Removal - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 10 - What you were doing + Your Full Name - 2 - 3 GTK_FILL - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 150 - - - 1 - 2 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 150 - - - 1 - 2 - 1 - 2 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 150 - - - 1 - 2 - 2 - 3 - - 3 @@ -4025,6 +4079,177 @@ Install+Removal 4 10 3 + + + True + True + + + 3 + 4 + 4 + 5 + + + + + + True + 0 + Secure Services Port + + + 2 + 3 + 4 + 5 + GTK_FILL + + + + + + True + 0 + Services Port + + + 4 + 5 + GTK_FILL + + + + + + True + True + + + 1 + 2 + 4 + 5 + + + + + + True + bz2 +gz + + + 3 + 4 + 3 + 4 + GTK_FILL + GTK_FILL + + + + + True + 0 + Compression + + + 2 + 3 + 3 + 4 + GTK_FILL + + + + + + True + 0 + Identifier + + + GTK_FILL + + + + + + True + 0 + Description + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + Mirrors + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + URI + + + 3 + 4 + GTK_FILL + + + + + + True + True + + + 1 + 4 + + + + + + True + True + + + 1 + 4 + 1 + 2 + + + + + + True + True + + + 1 + 2 + 3 + 4 + + + 120 @@ -4162,177 +4387,6 @@ Install+Removal GTK_FILL - - - True - True - - - 1 - 2 - 3 - 4 - - - - - - True - True - - - 1 - 4 - 1 - 2 - - - - - - True - True - - - 1 - 4 - - - - - - True - 0 - URI - - - 3 - 4 - GTK_FILL - - - - - - True - 0 - Mirrors - - - 2 - 3 - GTK_FILL - - - - - - True - 0 - Description - - - 1 - 2 - GTK_FILL - - - - - - True - 0 - Identifier - - - GTK_FILL - - - - - - True - 0 - Compression - - - 2 - 3 - 3 - 4 - GTK_FILL - - - - - - True - bz2 -gz - - - 3 - 4 - 3 - 4 - GTK_FILL - GTK_FILL - - - - - True - True - - - 1 - 2 - 4 - 5 - - - - - - True - 0 - Services Port - - - 4 - 5 - GTK_FILL - - - - - - True - 0 - Secure Services Port - - - 2 - 3 - 4 - 5 - GTK_FILL - - - - - - True - True - - - 3 - 4 - 4 - 5 - - - @@ -4916,7 +4970,91 @@ gz 5 5 - + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 12 + 13 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Creation date + True + + + 12 + 13 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 11 + 12 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Install Size + True + + + 11 + 12 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 10 + 11 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Package Size + True + + + 10 + 11 + + + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 @@ -4927,234 +5065,21 @@ gz 1 2 - 1 - 2 + 9 + 10 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Website + MD5 Signature True - 1 - 2 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Location - True - - - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Version - True - - - 2 - 3 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 2 - 3 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Slot - True - - - 3 - 4 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 3 - 4 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Kernel Tag - True - - - 4 - 5 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 4 - 5 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Revision - True - - - 5 - 6 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 5 - 6 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Branch - True - - - 6 - 7 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 6 - 7 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Entropy API - True - - - 7 - 8 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 7 - 8 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Download Path - True - - - 8 - 9 + 9 + 10 @@ -5175,20 +5100,233 @@ gz - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - MD5 Signature + Download Path True - 9 - 10 + 8 + 9 - + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 7 + 8 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Entropy API + True + + + 7 + 8 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 6 + 7 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Branch + True + + + 6 + 7 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 5 + 6 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Revision + True + + + 5 + 6 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 4 + 5 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Kernel Tag + True + + + 4 + 5 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 3 + 4 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Slot + True + + + 3 + 4 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 2 + 3 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Version + True + + + 2 + 3 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Location + True + + + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Website + True + + + 1 + 2 + GTK_FILL + + + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 @@ -5199,92 +5337,8 @@ gz 1 2 - 9 - 10 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Package Size - True - - - 10 - 11 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 10 - 11 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Install Size - True - - - 11 - 12 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 11 - 12 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Creation date - True - - - 12 - 13 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 12 - 13 + 1 + 2 @@ -5317,7 +5371,7 @@ gz 2 15 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 @@ -5328,21 +5382,57 @@ gz 1 2 - 2 - 3 + 3 + 4 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - CXXFLAGS + Masked True - 2 - 3 + 3 + 4 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + CHOST + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + True + + + 1 + 2 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + CFLAGS + True + + + 1 + 2 @@ -5362,20 +5452,20 @@ gz - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - CFLAGS + CXXFLAGS True - 1 - 2 + 2 + 3 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 @@ -5386,44 +5476,8 @@ gz 1 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - CHOST - True - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Masked - True - - - 3 - 4 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - True - - - 1 - 2 - 3 - 4 + 2 + 3 @@ -6844,15 +6898,23 @@ Please read them carefully and <b>make your choice</b>. 2 2 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 1 + 0 + Announced + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Revised True - 1 - 2 1 2 @@ -6870,27 +6932,19 @@ Please read them carefully and <b>make your choice</b>. - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Revised + 1 True + 1 + 2 1 2 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Announced - True - - @@ -7417,108 +7471,28 @@ Please read them carefully and <b>make your choice</b>. 2 3 - + True 0 - Title - - - - - True - 0 - this is the title + this is the size True 1 2 + 5 + 6 - + True 0 - Description + Size - 1 - 2 - - - - - True - 0 - this is the description - True - - - 1 - 2 - 1 - 2 - - - - - True - 0 - Author - - - 2 - 3 - - - - - True - 0 - this is the author - True - - - 1 - 2 - 2 - 3 - - - - - True - 0 - Date - - - 3 - 4 - - - - - True - 0 - this it the date - True - - - 1 - 2 - 3 - 4 - - - - - True - 0 - Keywords - - - 4 - 5 + 5 + 6 @@ -7536,30 +7510,110 @@ Please read them carefully and <b>make your choice</b>. - + True 0 - Size + Keywords - 5 - 6 + 4 + 5 - + True 0 - this is the size + this it the date True 1 2 - 5 - 6 + 3 + 4 + + + True + 0 + Date + + + 3 + 4 + + + + + True + 0 + this is the author + True + + + 1 + 2 + 2 + 3 + + + + + True + 0 + Author + + + 2 + 3 + + + + + True + 0 + this is the description + True + + + 1 + 2 + 1 + 2 + + + + + True + 0 + Description + + + 1 + 2 + + + + + True + 0 + this is the title + True + + + 1 + 2 + + + + + True + 0 + Title + + 3 @@ -7791,56 +7845,26 @@ Please read them carefully and <b>make your choice</b>. 2 3 - + True - 0 - Title - - - - - True - 0 - Description - - - 1 - 2 - - - - - True - True - 256 + 1 2 + 3 + 4 - - True - True - 500 - - - 1 - 2 - 1 - 2 - - - - + True 0 - Keywords (space separated) + Document type - 2 - 3 + 3 + 4 @@ -7857,28 +7881,58 @@ Please read them carefully and <b>make your choice</b>. - + True 0 - Document type + Keywords (space separated) - 3 - 4 + 2 + 3 - + True - + True + 500 1 2 - 3 - 4 + 1 + 2 + + + True + True + 256 + + + 1 + 2 + + + + + True + 0 + Description + + + 1 + 2 + + + + + True + 0 + Title + + 3 diff --git a/spritz/src/spritz.py b/spritz/src/spritz.py index 01b269f0b..30928e34e 100644 --- a/spritz/src/spritz.py +++ b/spritz/src/spritz.py @@ -18,7 +18,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Base Python Imports -import sys, os, pty +import sys, os, pty, random import logging import traceback import commands @@ -80,6 +80,12 @@ class SpritzController(Controller): if self.ugcTask != None: self.ugcTask.kill() ''' Main destroy Handler ''' + + threads = entropyTools.threading.enumerate() + for thread in threads: + if hasattr(thread,'nuke'): + thread.nuke() + gtkEventThread.doQuit() if self.isWorking: self.quitNow = True @@ -642,7 +648,6 @@ class SpritzController(Controller): yp.action = 'i' yp.queued = 'i' pkgs.append(yp) - # welcome to our world, now process ! busyCursor(self.ui.main) status, myaction = self.queue.add(pkgs) @@ -1096,6 +1101,17 @@ class SpritzController(Controller): self.load_ugc_repositories() self.setStatus("%s" % (_("UGC credentials cleared"),)) + def on_bannerEventBox_button_release_event(self, widget, event): + if self.ad_url != None: + import subprocess + subprocess.call(['xdg-open',self.ad_url]) + + def on_bannerEventBox_enter_notify_event(self, widget, event): + busyCursor(self.ui.main, cur = gtk.gdk.Cursor(gtk.gdk.HAND2)) + + def on_bannerEventBox_leave_notify_event(self, widget, event): + busyCursor(self.ui.main, cur = CURRENT_CURSOR) + def load_ugc_repositories(self): self.ugcRepositoriesModel.clear() for repoid in etpRepositoriesOrder+sorted(etpRepositoriesExcluded.keys()): @@ -1117,6 +1133,13 @@ class SpritzApplication(SpritzController,SpritzGUI): self.logger = logging.getLogger("yumex.main") # init flags + self.ad_list_url = 'http://www.sabayonlinux.org/entropy_ads/LIST' + self.ad_uri_dir = os.path.dirname(self.ad_list_url) + self.previous_ad_index = None + self.previous_ad_image_path = None + self.ad_url = None + self.ad_pix = gtk.image_new_from_file(const.plain_ad_pix) + self.adTask = None self.ugcTask = None self.spawning_ugc = False self.Preferences = None @@ -1152,6 +1175,7 @@ class SpritzApplication(SpritzController,SpritzGUI): self.setupPreferences() self.setupUgc() + self.setupAds() packages_install = os.getenv("SPRITZ_PACKAGES") if packages_install: @@ -1165,31 +1189,98 @@ class SpritzApplication(SpritzController,SpritzGUI): fn = packages_install[0] self.on_installPackageItem_activate(None,fn) + def setupAds(self): + self.ui.bannerEventBox.add(self.ad_pix) + self.ui.adsLabel.set_markup("%s" % (_("Advertisement"),)) + self.ad_url = 'http://www.silkbit.com' + self.ui.bannerEventBox.show_all() + self.adTask = entropyTools.TimeScheduled(self.spawnAdRotation, 60) + self.adTask.start() + def setupUgc(self): self.ugcTask = entropyTools.TimeScheduled(self.spawnUgcUpdate, 120) self.ugcTask.start() - def spawnUgcUpdate(self): + def spawnAdRotation(self): try: - while (self.spawning_ugc or self.isWorking): - time.sleep(1) - - self.isWorking = True - self.spawning_ugc = True - connected = entropyTools.get_remote_data(etpConst['conntestlink']) - if (connected == False) or (self.Equo.UGC == None): - self.isWorking = False - self.spawning_ugc = False - return - for repo in self.Equo.validRepositories: - self.Equo.update_ugc_cache(repo) - - self.isWorking = False - self.spawning_ugc = False - + self.ad_rotation() except: pass + def ad_rotation(self): + while self.isWorking: + time.sleep(1) + + tries = 5 + while tries: + + ads_data = entropyTools.get_remote_data(self.ad_list_url) + if not ads_data: + tries -= 1 + continue + + ads_data = [x.strip() for x in ads_data if x.strip() and x.split() > 1] + length = len(ads_data) + myrand = int(random.random()*length) + while myrand == self.previous_ad_index: + myrand = int(random.random()*length) + + mydata = ads_data[myrand].split() + mypix_url = os.path.join(self.ad_uri_dir,mydata[0]) + myurl = ' '.join(mydata[1:]) + + pix_tmp_path = entropyTools.getRandomTempFile() + fetchConn = self.Equo.urlFetcher(mypix_url, pix_tmp_path, resume = False) + rc = fetchConn.download() + if rc in ("-1","-2","-3"): + tries -= 1 + continue + + # load the image + try: + myadpix = gtk.image_new_from_file(pix_tmp_path) + except: + tries -= 1 + continue + + self.ui.bannerEventBox.remove(self.ad_pix) + self.ad_pix = myadpix + self.ui.bannerEventBox.add(self.ad_pix) + self.ui.bannerEventBox.show_all() + self.ad_url = myurl + + if self.previous_ad_image_path != None: + if os.path.isfile(self.previous_ad_image_path) and os.access(self.previous_ad_image_path,os.W_OK): + try: + os.remove(self.previous_ad_image_path) + except (OSError,IOError,): + pass + self.previous_ad_image_path = pix_tmp_path + self.previous_ad_index = myrand + break + + def spawnUgcUpdate(self): + try: + self.ugc_update() + except: + pass + + def ugc_update(self): + while (self.spawning_ugc or self.isWorking): + time.sleep(1) + + self.isWorking = True + self.spawning_ugc = True + connected = entropyTools.get_remote_data(etpConst['conntestlink']) + if (connected == False) or (self.Equo.UGC == None): + self.isWorking = False + self.spawning_ugc = False + return + for repo in self.Equo.validRepositories: + self.Equo.update_ugc_cache(repo) + + self.isWorking = False + self.spawning_ugc = False def setupPreferences(self): diff --git a/spritz/src/spritz_setup.py b/spritz/src/spritz_setup.py index fc7ba4384..2c7812ed8 100644 --- a/spritz/src/spritz_setup.py +++ b/spritz/src/spritz_setup.py @@ -59,6 +59,9 @@ class const: ugc_image_pix = PIXMAPS_PATH+'/ugc/image.png' ugc_view_pix = PIXMAPS_PATH+'/ugc/view.png' + # ads + plain_ad_pix = PIXMAPS_PATH+'/ad.png' + # package categories PACKAGE_CATEGORIES = [ "None",