KDE 4.9 PyKDE API Reference

- KDE's Python API

# AnnotationModel Class Reference

`from PyKDE4.ktexteditor import *`

Inherits: QObject
Namespace: KTextEditor

## Detailed Description

An model for providing line annotation information

Introduction

AnnotationModel is a model-like interface that can be implemented to provide annotation information for each line in a document. It provides means to retrieve several kinds of data for a given line in the document.

Implementing a AnnotationModel

The public interface of this class is loosely based on the QAbstractItemModel interfaces. It only has a single method to override which is the data() method to provide the actual data for a line and role combination.

Since:
  4.1

See also:
  KTextEditor.AnnotationInterface, KTextEditor.AnnotationViewInterface

## Signals

| lineChanged (int line)
| reset ()

## Methods

QVariant | data (self, int line, Qt::ItemDataRole role)

## Signal Documentation

lineChanged | ( | int | line
| ) |  |  |

The model should emit the signal lineChanged() when a line has to be updated.

Note:
  Kate Part implementation details: lineChanged() repaints the whole annotation border automatically.

Signal syntax:
  `QObject.connect(source, SIGNAL("lineChanged(int)"), target_slot)`

reset | ( |  | ) |

The model should emit the signal reset() when the text of almost all lines changes. In most cases it is enough to call lineChanged().

Note:
  Kate Part implementation details: Whenever reset() is emitted Kate Part iterates over all lines of the document. Kate Part searches for the longest text to determine the annotation border's width.

See also:
  lineChanged()

Signal syntax:
  `QObject.connect(source, SIGNAL("reset()"), target_slot)`

## Method Documentation

QVariant data | ( | self, |
|  | int | line,
|  | Qt::ItemDataRole | role
| ) |  |  |

Abstract method:
  This method is abstract and can be overridden but not called directly.

data() is used to retrieve the information needed to present the annotation information from the annotation model. The provider should return useful information for the line and the data role.

The following roles are supported: - Qt.DisplayRole - a short display text to be placed in the border - Qt.TooltipRole - a tooltip information, longer text possible - Qt.BackgroundRole - a brush to be used to paint the background on the border - Qt.ForegroundRole - a brush to be used to paint the text on the border

Parameters:

  | line | the line for which the data is to be retrieved

Parameters:

  | role | the role to identify which kind of annotation is to be retrieved

Returns:
  a QVariant that contains the data for the given role.