~brian-murray/checkbox/brian

« back to all changes in this revision

Viewing changes to checkbox_cli/cli_interface.py

  • Committer: Marc Tardif
  • Date: 2009-10-13 20:44:09 UTC
  • Revision ID: marc.tardif@canonical.com-20091013204409-yfxx2kusz1bd9905
Added a defaults argument when running choice dialogs in the cli to support selection of suites which fixes bug #450713.

Show diffs side-by-side

added added

removed removed

Lines of Context:
110
110
        self.keys = []
111
111
        self.options = []
112
112
 
113
 
    def run(self, label=None):
 
113
    def run(self, label=None, defaults=[]):
114
114
        if not self.visible:
115
115
            self.show()
116
116
 
125
125
                if label is not None:
126
126
                    self.put_line(label)
127
127
                for key, option in zip(self.keys, self.options):
128
 
                    self.put_line("  %s: %s" % (key, option))
 
128
                    default = "*" if option in defaults else " "
 
129
                    self.put_line("%s %s: %s" % (default, key, option))
129
130
 
130
131
                response = self.get(_("Please choose (%s): ") % ("/".join(self.keys)))
131
132
                try:
213
214
 
214
215
        results = dict((d, True) for d in default)
215
216
        while True:
216
 
            response = dialog.run()
 
217
            defaults = [k for k, v in results.items() if v]
 
218
            response = dialog.run(defaults=defaults)
217
219
            if response > len(options):
218
220
                break
219
221
 
220
222
            result = options[response - 1]
221
 
            results[result] = True
 
223
            results[result] = not results[result]
222
224
 
223
 
        return results.keys()
 
225
        return [k for k, v in results.items() if v]
224
226
 
225
227
    def show_radio(self, text, options=[], default=None):
226
228
        dialog = CLIChoiceDialog(text)