~aaronp/software-center/enhance-usefulness

« back to all changes in this revision

Viewing changes to softwarecenter/view/appdetailsview_gtk.py

  • Committer: Matthew McGowan
  • Date: 2011-04-12 00:03:15 UTC
  • mto: (1736.2.3 oneiric)
  • mto: This revision was merged to the branch mainline in revision 1746.
  • Revision ID: matthew.joseph.mcgowan@gmail.com-20110412000315-svfjdjrthkrbopbc
desensitive action buttons when the netconnection drops

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
import datetime
33
33
 
34
34
from softwarecenter.cmdfinder import CmdFinder
35
 
from softwarecenter.netstatus import NetState, get_network_state, get_network_watcher
 
35
from softwarecenter.netstatus import NetState, get_network_watcher, network_state_is_connected
36
36
 
37
37
from gettext import gettext as _
38
38
import apt_pkg
350
350
           not state in (PKG_STATE_INSTALLING, PKG_STATE_INSTALLING_PURCHASED,
351
351
           PKG_STATE_REMOVING, PKG_STATE_UPGRADING, APP_ACTION_APPLY)):
352
352
            self.set_label(self.app_details.warning)
 
353
 
 
354
        sensitive = network_state_is_connected()
 
355
        self.button.set_sensitive(sensitive)
353
356
        return
354
357
        
355
358
    def _convert_purchase_date_str_to_datetime(self, purchase_date):
544
547
        self.label.set_markup(markup)
545
548
        self.pack_start(self.label, False, False)
546
549
 
 
550
    def get_addons(self):
 
551
        # filter all children widgets and return only Addons
 
552
        return filter(lambda w: isinstance(w, Addon), self)
 
553
 
547
554
    def clear(self):
548
 
        for w in self:
549
 
            if isinstance(w, Addon):
550
 
                w.destroy()
 
555
        for addon in self.get_addons():
 
556
            addon.destroy()
 
557
 
 
558
    def addons_set_sensitive(self, is_sensitive):
 
559
        for addon in self.get_addons():
 
560
            addon.set_sensitive(is_sensitive)
551
561
 
552
562
    def set_addons(self, addons):
553
563
        self.recommended_addons = sorted(addons[0])
608
618
            not self.addons_manager.addons_to_remove):
609
619
            self.hide_all()
610
620
        else:
611
 
            self.button_apply.set_sensitive(True)
612
 
            self.button_cancel.set_sensitive(True)
613
621
            self.show_all()
614
622
    
615
623
    def _on_button_apply_clicked(self, button):
660
668
            self.table.set_addons(self.addons)
661
669
        self.status_bar.configure()
662
670
 
 
671
        sensitive = network_state_is_connected()
 
672
        self.table.addons_set_sensitive(sensitive)
 
673
 
663
674
    def restore(self, *button):
664
675
        self.addons_to_install = []
665
676
        self.addons_to_remove = []
747
758
            self._check_for_reviews()
748
759
        elif state == NetState.NM_STATE_CONNECTED:
749
760
            gobject.timeout_add(500, self._check_for_reviews)
 
761
 
 
762
        # set action button states based on sensitivity
 
763
        sensitive = state == NetState.NM_STATE_CONNECTED
 
764
        self.pkg_statusbar.button.set_sensitive(sensitive)
 
765
        self.addon_view.addons_set_sensitive(sensitive)
750
766
        return
751
767
 
752
768
    # FIXME: should we just this with _check_for_reviews?