Qt 4.8
Public Functions | List of all members
QTextList Class Reference

The QTextList class provides a decorated list of items in a QTextDocument. More...

#include <qtextlist.h>

Inheritance diagram for QTextList:
QTextBlockGroup QTextObject QObject

Public Functions

void add (const QTextBlock &block)
 Makes the given block part of the list. More...
 
int count () const
 Returns the number of items in the list. More...
 
QTextListFormat format () const
 Returns the list's format. More...
 
bool isEmpty () const
 Returns true if the list has no items; otherwise returns false. More...
 
QTextBlock item (int i) const
 Returns the {i}-th text block in the list. More...
 
int itemNumber (const QTextBlock &) const
 Returns the index of the list item that corresponds to the given block. More...
 
QString itemText (const QTextBlock &) const
 Returns the text of the list item that corresponds to the given block. More...
 
 QTextList (QTextDocument *doc)
 
void remove (const QTextBlock &)
 Removes the given block from the list. More...
 
void removeItem (int i)
 Removes the item at item position i from the list. More...
 
void setFormat (const QTextListFormat &format)
 Sets the list's format to format. More...
 
 ~QTextList ()
 
- Public Functions inherited from QTextObject
QTextDocumentPrivatedocHandle () const
 
QTextDocumentdocument () const
 Returns the document this object belongs to. More...
 
QTextFormat format () const
 Returns the text object's format. More...
 
int formatIndex () const
 Returns the index of the object's format in the document's internal list of formats. More...
 
int objectIndex () const
 Returns the object index of this object. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Functions inherited from QTextBlockGroup
virtual void blockFormatChanged (const QTextBlock &block)
 This function is called whenever the specified block of text is changed. More...
 
virtual void blockInserted (const QTextBlock &block)
 Appends the given block to the end of the group. More...
 
QList< QTextBlockblockList () const
 Returns a (possibly empty) list of all the blocks that are part of the block group. More...
 
virtual void blockRemoved (const QTextBlock &block)
 Removes the given block from the group; the block itself is not deleted, it simply isn't a member of this group anymore. More...
 
 QTextBlockGroup (QTextDocument *doc)
 Creates a new new block group for the given document. More...
 
 QTextBlockGroup (QTextBlockGroupPrivate &p, QTextDocument *doc)
 
 ~QTextBlockGroup ()
 Destroys this block group; the blocks are not deleted, they simply don't belong to this block anymore. More...
 
- Protected Functions inherited from QTextObject
 QTextObject (QTextDocument *doc)
 Creates a new QTextObject for the given document. More...
 
 QTextObject (QTextObjectPrivate &p, QTextDocument *doc)
 
void setFormat (const QTextFormat &format)
 Sets the text object's format. More...
 
 ~QTextObject ()
 Destroys the text object. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QTextList class provides a decorated list of items in a QTextDocument.

Note
This class or function is reentrant.

A list contains a sequence of text blocks, each of which is marked with a bullet point or other symbol. Multiple levels of lists can be used, and the automatic numbering feature provides support for ordered numeric and alphabetical lists.

Lists are created by using a text cursor to insert an empty list at the current position or by moving existing text into a new list. The QTextCursor::insertList() function inserts an empty block into the document at the cursor position, and makes it the first item in a list.

QTextListFormat listFormat;
if (list) {
listFormat = list->format();
listFormat.setIndent(listFormat.indent() + 1);
}
cursor.insertList(listFormat);

The QTextCursor::createList() function takes the contents of the cursor's current block and turns it into the first item of a new list.

The cursor's current list is found with QTextCursor::currentList().

The number of items in a list is given by count(). Each item can be obtained by its index in the list with the item() function. Similarly, the index of a given item can be found with itemNumber(). The text of each item can be found with the itemText() function.

Note that the items in the list may not be adjacent elements in the document. For example, the top-level items in a multi-level list will be separated by the items in lower levels of the list.

List items can be deleted by index with the removeItem() function. remove() deletes the specified item in the list.

The list's format is set with setFormat() and read with format(). The format describes the decoration of the list itself, and not the individual items.

See also
QTextBlock, QTextListFormat, QTextCursor

Definition at line 57 of file qtextlist.h.

Constructors and Destructors

◆ QTextList()

QTextList::QTextList ( QTextDocument doc)
explicit
Warning
This function is not part of the public interface.

Definition at line 124 of file qtextlist.cpp.

125  : QTextBlockGroup(*new QTextListPrivate(doc), doc)
126 {
127 }
QTextBlockGroup(QTextDocument *doc)
Creates a new new block group for the given document.

◆ ~QTextList()

QTextList::~QTextList ( )
Warning
This function is not part of the public interface.

Definition at line 132 of file qtextlist.cpp.

133 {
134 }

Functions

◆ add()

void QTextList::add ( const QTextBlock block)

Makes the given block part of the list.

See also
remove(), removeItem()

Definition at line 332 of file qtextlist.cpp.

Referenced by QTextHtmlImporter::processBlockNode().

333 {
334  QTextBlockFormat fmt = block.blockFormat();
336  block.docHandle()->setBlockFormat(block, block, fmt, QTextDocumentPrivate::SetFormat);
337 }
void setBlockFormat(const QTextBlock &from, const QTextBlock &to, const QTextBlockFormat &newFormat, FormatChangeMode mode=SetFormat)
int objectIndex() const
Returns the object index of this object.
The QTextBlockFormat class provides formatting information for blocks of text in a QTextDocument...
Definition: qtextformat.h:545
QTextDocumentPrivate * docHandle() const
Definition: qtextobject.h:283
void setObjectIndex(int object)
Sets the format object&#39;s object index.
QTextBlockFormat blockFormat() const
Returns the QTextBlockFormat that describes block-specific properties.

◆ count()

int QTextList::count ( ) const

Returns the number of items in the list.

Definition at line 139 of file qtextlist.cpp.

Referenced by QTextHtmlExporter::emitBlock().

140 {
141  Q_D(const QTextList);
142  return d->blocks.count();
143 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QTextList class provides a decorated list of items in a QTextDocument.
Definition: qtextlist.h:57

◆ format()

QTextListFormat QTextList::format ( ) const
inline

Returns the list's format.

Definition at line 80 of file qtextlist.h.

Referenced by QTextHtmlExporter::emitBlock(), QTextControlPrivate::indent(), itemText(), QTextControlPrivate::outdent(), remove(), and QTextOdfWriter::writeBlock().

80 { return QTextObject::format().toListFormat(); }
QTextListFormat toListFormat() const
Returns this format as a list format.
QTextFormat format() const
Returns the text object&#39;s format.

◆ isEmpty()

bool QTextList::isEmpty ( ) const
inline

Returns true if the list has no items; otherwise returns false.

Note: Empty lists are automatically deleted by the QTextDocument that owns them.

See also
count()

Definition at line 66 of file qtextlist.h.

67  { return count() == 0; }
int count() const
Returns the number of items in the list.
Definition: qtextlist.cpp:139

◆ item()

QTextBlock QTextList::item ( int  i) const

Returns the {i}-th text block in the list.

See also
count() itemText()

Definition at line 150 of file qtextlist.cpp.

Referenced by itemText().

151 {
152  Q_D(const QTextList);
153  if (i < 0 || i >= d->blocks.size())
154  return QTextBlock();
155  return d->blocks.at(i);
156 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QTextBlock class provides a container for text fragments in a QTextDocument.
Definition: qtextobject.h:199
The QTextList class provides a decorated list of items in a QTextDocument.
Definition: qtextlist.h:57

◆ itemNumber()

int QTextList::itemNumber ( const QTextBlock block) const

Returns the index of the list item that corresponds to the given block.

Returns -1 if the block was not present in the list.

Definition at line 185 of file qtextlist.cpp.

Referenced by QTextHtmlExporter::emitBlock(), and QTextControlPrivate::indent().

186 {
187  Q_D(const QTextList);
188  return d->blocks.indexOf(blockIt);
189 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QTextList class provides a decorated list of items in a QTextDocument.
Definition: qtextlist.h:57

◆ itemText()

QString QTextList::itemText ( const QTextBlock block) const

Returns the text of the list item that corresponds to the given block.

Definition at line 199 of file qtextlist.cpp.

200 {
201  Q_D(const QTextList);
202  int item = d->blocks.indexOf(blockIt) + 1;
203  if (item <= 0)
204  return QString();
205 
206  QTextBlock block = d->blocks.at(item-1);
207  QTextBlockFormat blockFormat = block.blockFormat();
208 
209  QString result;
210 
211  const int style = format().style();
212  QString numberPrefix;
213  QString numberSuffix = QLatin1String(".");
214 
215  if (format().hasProperty(QTextFormat::ListNumberPrefix))
216  numberPrefix = format().numberPrefix();
217  if (format().hasProperty(QTextFormat::ListNumberSuffix))
218  numberSuffix = format().numberSuffix();
219 
220  switch (style) {
222  result = QString::number(item);
223  break;
224  // from the old richtext
227  {
228  const char baseChar = style == QTextListFormat::ListUpperAlpha ? 'A' : 'a';
229 
230  int c = item;
231  while (c > 0) {
232  c--;
233  result.prepend(QChar(baseChar + (c % 26)));
234  c /= 26;
235  }
236  }
237  break;
240  {
241  if (item < 5000) {
242  QByteArray romanNumeral;
243 
244  // works for up to 4999 items
245  static const char romanSymbolsLower[] = "iiivixxxlxcccdcmmmm";
246  static const char romanSymbolsUpper[] = "IIIVIXXXLXCCCDCMMMM";
247  QByteArray romanSymbols; // wrap to have "mid"
248  if (style == QTextListFormat::ListLowerRoman)
249  romanSymbols = QByteArray::fromRawData(romanSymbolsLower, sizeof(romanSymbolsLower));
250  else
251  romanSymbols = QByteArray::fromRawData(romanSymbolsUpper, sizeof(romanSymbolsUpper));
252 
253  int c[] = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000 };
254  int n = item;
255  for (int i = 12; i >= 0; n %= c[i], i--) {
256  int q = n / c[i];
257  if (q > 0) {
258  int startDigit = i + (i+3)/4;
259  int numDigits;
260  if (i % 4) {
261  // c[i] == 4|5|9|40|50|90|400|500|900
262  if ((i-2) % 4) {
263  // c[i] == 4|9|40|90|400|900 => with subtraction (IV, IX, XL, XC, ...)
264  numDigits = 2;
265  }
266  else {
267  // c[i] == 5|50|500 (V, L, D)
268  numDigits = 1;
269  }
270  }
271  else {
272  // c[i] == 1|10|100|1000 (I, II, III, X, XX, ...)
273  numDigits = q;
274  }
275 
276  romanNumeral.append(romanSymbols.mid(startDigit, numDigits));
277  }
278  }
279  result = QString::fromLatin1(romanNumeral);
280  }
281  else {
282  result = QLatin1String("?");
283  }
284 
285  }
286  break;
287  default:
288  Q_ASSERT(false);
289  }
290  if (blockIt.textDirection() == Qt::RightToLeft)
291  return numberSuffix + result + numberPrefix;
292  else
293  return numberPrefix + result + numberSuffix;
294 }
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: qstring.cpp:6448
double d
Definition: qnumeric_p.h:62
unsigned char c[8]
Definition: qnumeric_p.h:62
QByteArray & append(char c)
Appends the character ch to this byte array.
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
QString & prepend(QChar c)
Definition: qstring.h:261
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QString class provides a Unicode character string.
Definition: qstring.h:83
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
#define Q_D(Class)
Definition: qglobal.h:2482
The QChar class provides a 16-bit Unicode character.
Definition: qchar.h:72
Style style() const
Returns the list format&#39;s style.
Definition: qtextformat.h:662
QString numberSuffix() const
Returns the list format&#39;s number suffix.
Definition: qtextformat.h:674
static int numDigits(qlonglong n)
Definition: qvalidator.cpp:385
static QByteArray fromRawData(const char *, int size)
Constructs a QByteArray that uses the first size bytes of the data array.
The QTextBlock class provides a container for text fragments in a QTextDocument.
Definition: qtextobject.h:199
QByteArray mid(int index, int len=-1) const
Returns a byte array containing len bytes from this byte array, starting at position pos...
QString numberPrefix() const
Returns the list format&#39;s number prefix.
Definition: qtextformat.h:670
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
Definition: qstring.cpp:4188
The QTextBlockFormat class provides formatting information for blocks of text in a QTextDocument...
Definition: qtextformat.h:545
The QTextList class provides a decorated list of items in a QTextDocument.
Definition: qtextlist.h:57
QTextBlockFormat blockFormat() const
Returns the QTextBlockFormat that describes block-specific properties.
QTextBlock item(int i) const
Returns the {i}-th text block in the list.
Definition: qtextlist.cpp:150
QTextListFormat format() const
Returns the list&#39;s format.
Definition: qtextlist.h:80

◆ remove()

void QTextList::remove ( const QTextBlock block)

Removes the given block from the list.

See also
add(), removeItem()

Definition at line 319 of file qtextlist.cpp.

Referenced by QTextControlPrivate::keyPressEvent(), QPlainTextEdit::keyReleaseEvent(), and QTextEdit::keyReleaseEvent().

320 {
321  QTextBlockFormat fmt = block.blockFormat();
322  fmt.setIndent(fmt.indent() + format().indent());
323  fmt.setObjectIndex(-1);
324  block.docHandle()->setBlockFormat(block, block, fmt, QTextDocumentPrivate::SetFormat);
325 }
void setBlockFormat(const QTextBlock &from, const QTextBlock &to, const QTextBlockFormat &newFormat, FormatChangeMode mode=SetFormat)
int indent() const
Returns the paragraph&#39;s indent.
Definition: qtextformat.h:590
The QTextBlockFormat class provides formatting information for blocks of text in a QTextDocument...
Definition: qtextformat.h:545
void setIndent(int indent)
Sets the paragraph&#39;s indentation.
Definition: qtextformat.h:622
QTextDocumentPrivate * docHandle() const
Definition: qtextobject.h:283
void setObjectIndex(int object)
Sets the format object&#39;s object index.
int indent() const
Returns the list format&#39;s indentation.
Definition: qtextformat.h:666
QTextBlockFormat blockFormat() const
Returns the QTextBlockFormat that describes block-specific properties.
QTextListFormat format() const
Returns the list&#39;s format.
Definition: qtextlist.h:80

◆ removeItem()

void QTextList::removeItem ( int  i)

Removes the item at item position i from the list.

When the last item in the list is removed, the list is automatically deleted by the QTextDocument that owns it.

See also
add(), remove()

Definition at line 303 of file qtextlist.cpp.

304 {
305  Q_D(QTextList);
306  if (i < 0 || i >= d->blocks.size())
307  return;
308 
309  QTextBlock block = d->blocks.at(i);
310  remove(block);
311 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QTextBlock class provides a container for text fragments in a QTextDocument.
Definition: qtextobject.h:199
The QTextList class provides a decorated list of items in a QTextDocument.
Definition: qtextlist.h:57

◆ setFormat()

void QTextList::setFormat ( const QTextListFormat format)
inline

Sets the list's format to format.

Definition at line 87 of file qtextlist.h.

Referenced by QTextControlPrivate::indent(), and QTextControlPrivate::outdent().

88 { QTextObject::setFormat(aformat); }
void setFormat(const QTextFormat &format)
Sets the text object&#39;s format.

The documentation for this class was generated from the following files: