~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/ui/__init__.py

Merge the fix for bug #819604 into trunk, resolve conflicts.

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
 
 
347
327
    def get_boolean(self, prompt):
348
328
        """Get a boolean question answered from the user.
349
329
 
351
331
            line without terminating \\n.
352
332
        :return: True or False for y/yes or n/no.
353
333
        """
354
 
        choice = self.choose(prompt + '?', '&yes\n&no', default=None)
355
 
        return 0 == choice
 
334
        raise NotImplementedError(self.get_boolean)
356
335
 
357
336
    def get_integer(self, prompt):
358
337
        """Get an integer from the user.