Add Sulfur "simple mode" and "advanced mode" options

This commit is contained in:
Fabio Erculiani
2009-05-21 02:27:19 +02:00
parent d016fbccde
commit f1632afc3f
5 changed files with 2131 additions and 1785 deletions
+54 -3
View File
@@ -260,10 +260,58 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin):
self.console.set_pty(self.pty[0])
self.reset_progress_text()
self.pkgProperties_selected = None
self.setup_preferences()
self.setup_pkg_sorter()
self.setup_user_generated_content()
simple_mode = 1
if "--advanced" in sys.argv:
simple_mode = 0
elif not SulfurConf.simple_mode:
simple_mode = 0
self.in_mode_loading = True
self.switch_application_mode(simple_mode)
self.in_mode_loading = False
self.setup_preferences()
def switch_application_mode(self, do_simple):
if do_simple:
self.switch_simple_mode()
self.ui.advancedMode.set_active(0)
else:
self.switch_advanced_mode()
self.ui.advancedMode.set_active(1)
SulfurConf.simple_mode = do_simple
SulfurConf.save()
def switch_simple_mode(self):
self.ui.repoRefreshButton.show()
self.ui.vseparator1.hide()
self.ui.rbAllLabel.set_text(_("Packages"))
self.ui.pkgSorter.hide()
self.ui.updateButtonView.hide()
self.ui.rbAvailable.hide()
self.ui.rbInstalled.hide()
self.ui.rbMasked.hide()
self.ui.rbPkgSets.hide()
self.pageButtons['glsa'].hide()
self.pageButtons['preferences'].hide()
self.pageButtons['repos'].hide()
def switch_advanced_mode(self):
self.ui.repoRefreshButton.hide()
self.ui.vseparator1.show()
self.ui.rbAllLabel.set_text(_("All"))
self.ui.pkgSorter.show()
self.ui.updateButtonView.show()
self.ui.rbAvailable.show()
self.ui.rbInstalled.show()
self.ui.rbMasked.show()
self.ui.rbPkgSets.show()
self.pageButtons['glsa'].show()
self.pageButtons['preferences'].show()
self.pageButtons['repos'].show()
def setup_pkg_sorter(self):
self.avail_pkg_sorters = {
@@ -412,6 +460,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin):
self.advisoryRB[tag] = w
def setup_packages_filter(self):
self.setup_package_radio_buttons(self.ui.rbUpdates, "updates",
_('Show Package Updates'))
self.setup_package_radio_buttons(self.ui.rbAvailable, "available",
@@ -428,7 +477,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin):
_('Show Queued Packages'))
def setup_package_radio_buttons(self, widget, tag, tip):
widget.connect('toggled',self.on_pkgFilter_toggled,tag)
widget.connect('toggled',self.on_pkgFilter_toggled, tag)
#widget.set_relief( gtk.RELIEF_NONE )
widget.set_mode( False )
@@ -873,7 +922,8 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin):
fillfunc(name, mytype, wgwrite, setting)
rc, e = SulfurConf.save()
if not rc: okDialog( self.ui.main, "%s: %s" % (_("Error saving preferences"),e) )
if not rc:
okDialog( self.ui.main, "%s: %s" % (_("Error saving preferences"),e) )
self.on_Preferences_toggled(None,False)
def setup_masked_pkgs_warning_box(self):
@@ -1099,6 +1149,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin):
self.progress.set_extraLabel(
_('sys-apps/entropy needs to be updated as soon as possible.'))
self.set_package_radio('updates')
initconfig_entropy_constants(etpSys['rootdir'])
self.disable_ugc = False
+21 -5
View File
@@ -472,9 +472,17 @@ class SulfurApplicationEventsMixin:
def on_queueReviewAndInstall_clicked(self, widget):
self.switch_notebook_page("queue")
def on_advancedMode_toggled(self, widget):
if not self.in_mode_loading:
new_mode = 1
if SulfurConf.simple_mode:
new_mode = 0
self.switch_application_mode(new_mode)
def on_pkgFilter_toggled(self,rb,action):
if not rb.get_active(): return
if not rb.get_active():
return
rb.grab_add()
self.lastPkgPB = action
@@ -489,15 +497,23 @@ class SulfurApplicationEventsMixin:
else:
self.ui.maskedWarningBox.hide()
if action == "pkgsets": self.ui.pkgsetsButtonBox.show()
else: self.ui.pkgsetsButtonBox.hide()
if action == "pkgsets":
self.ui.pkgsetsButtonBox.show()
else:
self.ui.pkgsetsButtonBox.hide()
if action == "queued": self.ui.queueReviewAndInstallBox.show()
else: self.ui.queueReviewAndInstallBox.hide()
if action == "queued":
self.ui.queueReviewAndInstallBox.show()
else:
self.ui.queueReviewAndInstallBox.hide()
self.show_packages()
rb.grab_remove()
def on_repoRefreshButton_clicked(self, widget):
self.on_repoRefresh_clicked(widget)
self.set_page('packages')
def on_repoRefresh_clicked(self, widget):
repos = self.repoView.get_selected()
if not repos:
+10 -2
View File
@@ -31,7 +31,6 @@ class Queue:
self.before = []
self.keyslotFilter = set()
self._keyslotFilter = set()
self.clear()
self.Entropy = None
self.etpbase = None
self.pkgView = None
@@ -39,7 +38,7 @@ class Queue:
self.Sulfur = SulfurApplication
import dialogs
self.dialogs = dialogs
self.clear()
def connect_objects(self, equo_conn, etpbase, pkgView, ui):
self.Entropy = equo_conn
@@ -48,6 +47,7 @@ class Queue:
self.ui = ui
def clear( self ):
self.Sulfur.ui.rbPkgQueued.hide()
self.packages.clear()
self.packages['i'] = []
self.packages['u'] = []
@@ -289,6 +289,10 @@ class Queue:
del self.before[:]
return 0,1
finally:
if self.packages.values():
self.Sulfur.ui.rbPkgQueued.show()
else:
self.Sulfur.ui.rbPkgQueued.hide()
self.Sulfur.wait_window.hide()
def add(self, pkgs, accept = False, always_ask = False):
@@ -335,6 +339,10 @@ class Queue:
return status,1
finally:
if self.packages.values():
self.Sulfur.ui.rbPkgQueued.show()
else:
self.Sulfur.ui.rbPkgQueued.hide()
self.Sulfur.wait_window.hide()
def elaborate_masked_packages(self, matches):
+10 -2
View File
@@ -142,7 +142,7 @@ class const:
class SulfurConf:
""" Yum Extender Config Setting"""
autorefresh = True
recentdays = 14
debug = False
@@ -172,6 +172,7 @@ class SulfurConf:
color_good_on_color_background = '#FFFFFF'
color_error_on_color_background = '#FFFFFF'
color_package_category = '#9C7234' # brown
simple_mode = 1
filelist = True
changelog = False
@@ -191,6 +192,9 @@ class SulfurConf:
except ValueError:
return False
def foo_validator(s):
return True
config_data = {
"color_console_font": validate_color_conf,
"color_normal": validate_color_conf,
@@ -210,6 +214,7 @@ class SulfurConf:
"color_good_on_color_background": validate_color_conf,
"color_error_on_color_background": validate_color_conf,
"color_package_category": validate_color_conf,
"simple_mode": foo_validator,
}
return config_data
@@ -235,6 +240,7 @@ class SulfurConf:
"color_good_on_color_background": SulfurConf.color_good_on_color_background,
"color_error_on_color_background": SulfurConf.color_error_on_color_background,
"color_package_category": SulfurConf.color_package_category,
"simple_mode": SulfurConf.simple_mode,
}
return config_data
@@ -243,7 +249,7 @@ class SulfurConf:
def do_save():
if not os.path.isdir(os.path.dirname(const.SETTINGS_FILE)):
os.makedirs(os.path.dirname(const.SETTINGS_FILE))
os.makedirs(os.path.dirname(const.SETTINGS_FILE), 0755)
myxml = entropyTools.xml_from_dict_extended(SulfurConf.getconf())
try:
f = open(const.SETTINGS_FILE,"w")
@@ -257,6 +263,7 @@ class SulfurConf:
try:
return do_save()
except Exception, e:
entropyTools.print_traceback()
return False,e
return True,None
@@ -273,6 +280,7 @@ class SulfurConf:
try:
return do_read()
except:
entropyTools.print_traceback()
return None
@staticmethod
File diff suppressed because it is too large Load Diff