~mmcg069/software-center/Bug830691

« back to all changes in this revision

Viewing changes to softwarecenter/ui/gtk3/app.py

  • Committer: Matthew McGowan
  • Date: 2011-08-20 05:39:03 UTC
  • mfrom: (2131.1.24 software-center)
  • Revision ID: matthew.joseph.mcgowan@gmail.com-20110820053903-hnewqizijfcb9l8m
merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
try:
66
66
    from aptd_gtk3 import InstallBackendUI
67
67
    InstallBackendUI # pyflakes
68
 
except ImportError:
 
68
except:
69
69
    from softwarecenter.backend.installbackend import InstallBackendUI
70
70
 
71
71
# ui imports
90
90
 
91
91
 
92
92
from gi.repository import Gdk
93
 
from gi.repository import Atk
94
93
 
95
94
LOG = logging.getLogger(__name__)
96
95
 
288
287
                                        self.distro,
289
288
                                        self.icons,
290
289
                                        self.datadir)
291
 
        self.history_pane.connect("history-pane-created", self.on_history_pane_created)
292
290
        self.view_manager.register(self.history_pane, ViewPages.HISTORY)
293
291
 
294
292
        # pending pane
358
356
        self.config = get_config()
359
357
        self.restore_state()
360
358
 
361
 
        # create label_status for in our eventbox
362
 
        self.label_status = Gtk.Label()
363
 
        self.status_box.a11y = self.status_box.get_accessible()
364
 
        self.status_box.a11y.set_role(Atk.Role.STATUSBAR)
365
 
        self.status_box.add(self.label_status)
366
 
 
367
359
        # run s-c-agent update
368
360
        if options.disable_buy:
369
361
            file_menu = self.builder.get_object("menu1")
423
415
 
424
416
    def on_available_pane_created(self, widget):
425
417
        # connect signals
426
 
        self.available_pane.connect("app-list-changed", 
427
 
                                    self.on_app_list_changed,
428
 
                                    ViewPages.AVAILABLE)
429
 
        self.available_pane.app_details_view.connect("selected", 
430
 
                                                     self.on_app_details_changed,
431
 
                                                     ViewPages.AVAILABLE)
432
418
        self.available_pane.app_details_view.connect("application-request-action", 
433
419
                                                     self.on_application_request_action)
434
420
        self.available_pane.app_view.connect("application-request-action", 
446
432
        #~ self.channel_pane.set_section(channel_section)
447
433
 
448
434
        # connect signals
449
 
        self.channel_pane.connect("app-list-changed", 
450
 
                                    self.on_app_list_changed,
451
 
                                    ViewPages.CHANNEL)
452
 
        self.channel_pane.app_details_view.connect("selected", 
453
 
                                                   self.on_app_details_changed,
454
 
                                                   ViewPages.CHANNEL)
455
435
        self.channel_pane.app_details_view.connect("application-request-action", 
456
436
                                                   self.on_application_request_action)
457
437
        self.channel_pane.app_view.connect("application-request-action", 
463
443
        #~ self.installed_pane.set_section(installed_section)
464
444
        
465
445
        # connect signals
466
 
        self.installed_pane.connect("app-list-changed", 
467
 
                                    self.on_app_list_changed,
468
 
                                    ViewPages.INSTALLED)
469
 
        self.installed_pane.app_details_view.connect("selected", 
470
 
                                                     self.on_app_details_changed,
471
 
                                                     ViewPages.INSTALLED)
472
446
        self.installed_pane.app_details_view.connect("application-request-action", 
473
447
                                                     self.on_application_request_action)
474
448
        self.installed_pane.app_view.connect("application-request-action", 
475
449
                                             self.on_application_request_action)
476
 
                                             
477
 
    def on_history_pane_created(self, widget):
478
 
        # connect signal
479
 
        self.history_pane.connect("app-list-changed", 
480
 
                                  self.on_app_list_changed,
481
 
                                  ViewPages.HISTORY)
482
450
    
483
451
    def _on_update_software_center_agent_finished(self, pid, condition):
484
452
        LOG.info("software-center-agent finished with status %i" % os.WEXITSTATUS(condition))
488
456
    def on_review_stats_loaded(self, reviews):
489
457
        LOG.debug("on_review_stats_loaded: '%s'" % len(reviews))
490
458
 
491
 
    def on_app_details_changed(self, widget, app, page):
492
 
        self.update_status_bar()
493
 
 
494
 
    def on_app_list_changed(self, pane, new_len, page):
495
 
        if self.view_manager.get_active_view() == page:
496
 
            self.update_status_bar()
497
 
 
498
459
    def on_window_main_delete_event(self, widget, event):
499
460
        if hasattr(self, "glaunchpad"):
500
461
            self.glaunchpad.shutdown()
566
527
            not self.installed_pane.get_current_app()):
567
528
            self.installed_pane.refresh_apps()
568
529
        self.update_app_list_view(channel)
569
 
        self.update_status_bar()
570
530
 
571
531
    def _on_lp_login(self, lp, token):
572
532
        self._lp_login_successful = True
926
886
 
927
887
    def on_menuitem_view_all_activate(self, widget):
928
888
        if (not self._block_menuitem_view and
929
 
            self.active_pane.apps_filter and
930
 
            self.active_pane.apps_filter.get_supported_only()):
931
 
            self.active_pane.apps_filter.set_supported_only(False)
932
 
            self.active_pane.refresh_apps()
 
889
            self.active_pane.state.filter and
 
890
            self.active_pane.state.filter.get_supported_only()):
 
891
            self.active_pane.state.filter.set_supported_only(False)
933
892
 
934
 
            # update recommended widget counter
 
893
            # update recommended widget counter and appcount
935
894
            if self.available_pane and self.available_pane.cat_view:
936
895
                self.available_pane.cat_view._append_recommendations()
 
896
                self.available_pane.cat_view._append_appcount(False)
 
897
 
 
898
            self.active_pane.refresh_apps()
937
899
 
938
900
            # update subcategory view
939
901
            if (self.available_pane and
949
911
            self.active_pane.state and
950
912
            not self.active_pane.state.filter.get_supported_only()):
951
913
            self.active_pane.state.filter.set_supported_only(True)
 
914
 
 
915
            # update appcount
 
916
            if self.available_pane and self.available_pane.cat_view:
 
917
                self.available_pane.cat_view._append_appcount(True)
 
918
 
952
919
            self.active_pane.refresh_apps()
953
920
 
954
921
            # navigate up if the details page is no longer available
1014
981
            # are send and triggers "refresh_apps"
1015
982
            # and refresh the displayed app in the details as well
1016
983
            self.db.reopen()
1017
 
            self.update_status_bar()
1018
984
 
1019
985
    # helper
1020
986
 
1022
988
        """update the apt cache (e.g. after new sources where added """
1023
989
        self.backend.reload()
1024
990
 
1025
 
    def update_status_bar(self):
1026
 
        "Helper that updates the status bar"
1027
 
        if self.active_pane:
1028
 
            s = self.active_pane.get_status_text()
1029
 
        else:
1030
 
            # FIXME: deal with the pending view status
1031
 
            s = ""
1032
 
        self.label_status.set_text(s)
1033
 
 
1034
 
        # update a11y
1035
 
        if s:
1036
 
            self.status_box.a11y.set_name(s)
1037
 
            self.status_box.set_property('can-focus', True)
1038
 
        else:
1039
 
            self.status_box.set_property('can-focus', False)
1040
 
        
1041
991
    def update_app_list_view(self, channel=None):
1042
992
        """Helper that updates the app view list """
1043
993
        if self.active_pane is None: