~mvo/software-center/path-cleansweep

« back to all changes in this revision

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

  • Committer: Michael Vogt
  • Date: 2012-09-17 10:33:16 UTC
  • mfrom: (3103.1.72 software-center)
  • Revision ID: michael.vogt@ubuntu.com-20120917103316-9ve9fsks6ixnev3x
merged trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
 
50
50
# db imports
51
51
from softwarecenter.db.application import Application
52
 
from softwarecenter.db import DebFileApplication, DebFileOpenError
 
52
from softwarecenter.db import (
 
53
    DebFileApplication,
 
54
    DebFileOpenError,
 
55
    )
 
56
from softwarecenter.db.utils import run_software_center_agent
53
57
from softwarecenter.i18n import init_locale
54
58
 
55
59
# misc imports
92
96
import softwarecenter.ui.gtk3.dialogs as dialogs
93
97
 
94
98
from softwarecenter.ui.gtk3.SimpleGtkbuilderApp import SimpleGtkbuilderApp
95
 
from softwarecenter.ui.gtk3.panes.installedpane import InstalledPane
96
 
from softwarecenter.ui.gtk3.panes.availablepane import AvailablePane
 
99
with ExecutionTime("import InstalledPane"):
 
100
    from softwarecenter.ui.gtk3.panes.installedpane import InstalledPane
 
101
with ExecutionTime("import AvailablePane"):
 
102
    from softwarecenter.ui.gtk3.panes.availablepane import AvailablePane
97
103
from softwarecenter.ui.gtk3.panes.historypane import HistoryPane
98
104
from softwarecenter.ui.gtk3.panes.globalpane import GlobalPane
99
105
from softwarecenter.ui.gtk3.panes.pendingpane import PendingPane
408
414
        # reviews
409
415
        with ExecutionTime("create review loader"):
410
416
            self.review_loader = get_review_loader(self.cache, self.db)
411
 
            # FIXME: add some kind of throttle, I-M-S here
412
 
            self.review_loader.refresh_review_stats(
413
 
                self.on_review_stats_loaded)
 
417
            self.review_loader.connect(
 
418
                "refresh-review-stats-finished", self.on_review_stats_loaded)
 
419
            self.review_loader.refresh_review_stats()
414
420
            #load usefulness votes from server when app starts
415
421
            self.useful_cache = UsefulnessCache(True)
416
422
            self.setup_database_rebuilding_listener()
492
498
    # helper
493
499
    def _run_software_center_agent(self):
494
500
        """ helper that triggers the update-software-center-agent helper """
495
 
        sc_agent_update = os.path.join(
496
 
            self.datadir, "update-software-center-agent")
497
 
        (pid, stdin, stdout, stderr) = GObject.spawn_async(
498
 
            [sc_agent_update, "--datadir", self.datadir],
499
 
            flags=GObject.SPAWN_DO_NOT_REAP_CHILD)
500
 
        GObject.child_watch_add(
501
 
            pid, self._on_update_software_center_agent_finished)
 
501
        run_software_center_agent(self.db)
502
502
 
503
503
    def _run_expunge_cache_helper(self):
504
504
        """ helper that expires the piston-mini-client cache """
591
591
            self._recommender_agent = RecommenderAgent()
592
592
        return self._recommender_agent
593
593
 
594
 
    def _on_update_software_center_agent_finished(self, pid, condition):
595
 
        LOG.info("software-center-agent finished with status %i" %
596
 
            os.WEXITSTATUS(condition))
597
 
        if os.WEXITSTATUS(condition) == 0:
598
 
            self.db.reopen()
599
 
 
600
 
    def on_review_stats_loaded(self, reviews):
 
594
    def on_review_stats_loaded(self, loader, reviews):
601
595
        LOG.debug("on_review_stats_loaded: '%s'" % len(reviews))
602
596
 
603
597
    def destroy(self):
1350
1344
            self.view_manager.set_active_view(ViewPages.AVAILABLE)
1351
1345
 
1352
1346
    def restore_state(self):
1353
 
        (x, y) = self.config.app_window_size.split(",")
 
1347
        (x, y) = self.config.app_window_size
1354
1348
        if x > 0 and y > 0:
1355
 
            self.window_main.set_default_size(int(x), int(y))
 
1349
            self.window_main.set_default_size(x, y)
1356
1350
        else:
1357
1351
            # on first launch, specify the default window size to take
1358
1352
            # advantage of the available screen real estate (but set a
1376
1370
        if not maximized:
1377
1371
            # size only matters when non-maximized
1378
1372
            size = self.window_main.get_size()
1379
 
            self.config.app_window_size = "%s, %s" % (size[0], size[1])
 
1373
            self.config.app_window_size = [size[0], size[1]]
1380
1374
        self.config.write()
1381
1375
 
1382
1376
    def write_memory_dump(self, fname=None):