Add Sulfur "simple mode" and "advanced mode" options
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
+2036
-1773
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user