~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/ui/__init__.py

  • Committer: Vincent Ladeuil
  • Date: 2011-10-27 15:38:14 UTC
  • mfrom: (6015.44.4 2.4)
  • mto: This revision was merged to the branch mainline in revision 6236.
  • Revision ID: v.ladeuil+lp@free.fr-20111027153814-0r4nd2io1jv6t47f
Merge 2.4 into trunk including fix for bug #880701

Show diffs side-by-side

added added

removed removed

Lines of Context:
324
324
            warnings.warn(fail)   # so tests will fail etc
325
325
            return fail
326
326
 
 
327
    def choose(self, msg, choices, default=None):
 
328
        """Prompt the user for a list of alternatives.
 
329
 
 
330
        :param msg: message to be shown as part of the prompt.
 
331
 
 
332
        :param choices: list of choices, with the individual choices separated
 
333
            by '\n', e.g.: choose("Save changes?", "&Yes\n&No\n&Cancel"). The
 
334
            letter after the '&' is the shortcut key for that choice. Thus you
 
335
            can type 'c' to select "Cancel".  Shorcuts are case insensitive.
 
336
            The shortcut does not need to be the first letter. If a shorcut key
 
337
            is not provided, the first letter for the choice will be used.
 
338
 
 
339
        :param default: default choice (index), returned for example when enter
 
340
            is pressed for the console version.
 
341
 
 
342
        :return: the index fo the user choice (so '0', '1' or '2' for
 
343
            respectively yes/no/cancel in the previous example).
 
344
        """
 
345
        raise NotImplementedError(self.choose)
 
346
 
327
347
    def get_boolean(self, prompt):
328
348
        """Get a boolean question answered from the user.
329
349
 
331
351
            line without terminating \\n.
332
352
        :return: True or False for y/yes or n/no.
333
353
        """
334
 
        raise NotImplementedError(self.get_boolean)
 
354
        choice = self.choose(prompt + '?', '&yes\n&no', default=None)
 
355
        return 0 == choice
335
356
 
336
357
    def get_integer(self, prompt):
337
358
        """Get an integer from the user.