~ubuntu-branches/ubuntu/natty/computer-janitor/natty

« back to all changes in this revision

Viewing changes to computerjanitorapp/ui_gtk.py

  • Committer: Bazaar Package Importer
  • Author(s): Lars Wirzenius
  • Date: 2009-09-09 17:37:19 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20090909173719-p6nx0vhgs39irsmc
Tags: 1.13.3-0ubuntu1
* New upstream release. Fixes the following bugs in Ubuntu:
  - incomplete translation template (Closes: LP: #425018)
  - "cleanup" button sensitive when there's nothing to clean up
    (Closes: LP: #418319)
  - wrong launchpad page link in about box (Closes: LP: #417309)
* Also, upstream re-introduced the "unsupported package" plugin, and
  the Ubuntu packaging added a default whitelist file listing the
  most common manually installed third-party packages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
68
68
        self.ui = ui
69
69
 
70
70
    def run(self):
 
71
        self.ui.finding = True
 
72
        self.ui.set_sensitive()
71
73
        status = self.ui.widgets['statusbar']
72
74
        context_id = status.get_context_id('ListUpdater')
73
75
        status.push(context_id, _('Analyzing system...'))
75
77
            for cruft in self.ui.app.remove_whitelisted(plugin.get_cruft()):
76
78
                self.ui.add_cruft(cruft)
77
79
        status.pop(context_id)
 
80
        self.ui.finding = False
 
81
        self.ui.set_sensitive()
 
82
        self.ui.done_updating_list()
78
83
 
79
84
 
80
85
class Cleaner(threading.Thread):
196
201
        
197
202
        self.sort_crufts_by_current_order = self.sort_crufts_by_name
198
203
        
 
204
        self.finding = False
199
205
        self.cleaning = False
200
206
 
201
207
        gtk.gdk.threads_init()
369
375
        self.store.append(values)
370
376
        self.sort_crufts_by_current_order()
371
377
 
 
378
    @ui
 
379
    def done_updating_list(self):
 
380
        if not self.find_visible_cruft():
 
381
            dialog = self.widgets['borednow_messagedialog']
 
382
            dialog.show()
 
383
            dialog.run()
 
384
            dialog.hide()
 
385
            
 
386
 
372
387
    def foreach_set_state(self, treeview, enabled):
373
388
        def set_state(model, path, iter, user_data):
374
389
            iter2 = model.convert_iter_to_child_iter(iter)
381
396
            self.store.set_value(iter2, STATE_COL, enabled)
382
397
        treeview.get_model().foreach(set_state, None)
383
398
        self.app.state.save(self.options.state_file)
 
399
        self.set_sensitive_unlocked()
384
400
 
385
401
    def format_name(self, cruft):
386
402
        return self.gobject.markup_escape_text(cruft.get_shortname())
445
461
 
446
462
    @ui
447
463
    def set_sensitive(self):
 
464
        self.set_sensitive_unlocked()
 
465
        
 
466
    def set_sensitive_unlocked(self):
448
467
        do = self.widgets['do_button']
449
 
        do.set_sensitive(not self.cleaning)
 
468
        
 
469
        names = ['unused_treeview', 'recommended_treeview', 
 
470
                 'optimize_treeview']
 
471
        cleanable_cruft = self.find_visible_cruft()
 
472
        do.set_sensitive(not self.finding and
 
473
                         not self.cleaning and 
 
474
                         len(cleanable_cruft) > 0)
 
475
 
 
476
    def find_visible_cruft(self):
 
477
        names = ['unused_treeview', 'recommended_treeview', 
 
478
                 'optimize_treeview']
 
479
        cleanable_cruft = []
 
480
        for name in names:
 
481
            w = self.widgets[name]
 
482
            model = w.get_model()
 
483
            it = model.get_iter_first()
 
484
            while it is not None:
 
485
                cruft = model.get_value(it, CRUFT_COL)
 
486
                if self.app.state.is_enabled(cruft.get_name()):
 
487
                    cleanable_cruft.append(cruft)
 
488
                it = model.iter_next(it)
 
489
        return cleanable_cruft
450
490
 
451
491
    def really_cleanup(self):
452
492
        """Ask user if they really mean to clean up.
610
650
            self.app.state.disable(cruft_name)
611
651
        self.app.state.save(self.options.state_file)
612
652
        self.store.set_value(iter, STATE_COL, enabled)
 
653
        self.set_sensitive_unlocked()
613
654
 
614
655
    def on_sort_by_name_toggled(self, menuitem):
615
656
        if menuitem.get_active():