def describe_actions_action(self):
        """
        Defines the slot triggered by the *describe_actions* action.

        Returns
        -------
        bool
            Definition success.
        """

        actions = ['Actions & Shortcuts\n']
        for _name, action in sorted(self.canvas.actions.items()):
            if action.sequence.modifiers:
                sequence = '{0} + {1}'.format(
                    ' + '.join(action.sequence.modifiers),
                    action.sequence.key)
            else:
                sequence = '{0}'.format(action.sequence.key)
            actions.append('- {0}: {1}'.format(action.description, sequence))

        actions = '\n'.join(actions)

        self.write('{0}'.format(actions))

        message_box('{0}'.format(actions))

        return True
    def describe_analysis_state_action(self):
        """
        Defines the slot triggered by the *describe_analysis_state* action.

        Returns
        -------
        bool
            Definition success.
        """

        state = ['Analysis State\n']

        state.append('- Input image: {0}'.format(
            self.canvas.image_path))
        state.append('- Input RGB colourspace: {0}'.format(
            self.canvas.input_colourspace))
        state.append('- Input OECF: {0}'.format(
            self.canvas.input_oecf))
        state.append('- Input linearity: {0}'.format(
            self.canvas.input_linear))
        state.append('- Reference colourspace: {0}'.format(
            self.canvas.reference_colourspace))
        state.append('- Correlate RGB colourspace: {0}'.format(
            self.canvas.correlate_colourspace))
        state.append('- Blacks Clamped: {0}'.format(
            self.canvas.clamp_blacks))
        state.append('- Whites Clamped: {0}'.format(
            self.canvas.clamp_whites))
        state = '\n'.join(state)

        self.write('{0}'.format(state))

        message_box('{0}'.format(state))

        return True