summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qabstractitemmodel.cpp124
-rw-r--r--src/corelib/kernel/qabstractitemmodel.h3
-rw-r--r--src/corelib/kernel/qcore_symbian_p.cpp4
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp18
-rw-r--r--src/corelib/kernel/qobject.cpp14
5 files changed, 106 insertions, 57 deletions
diff --git a/src/corelib/kernel/qabstractitemmodel.cpp b/src/corelib/kernel/qabstractitemmodel.cpp
index 1c9104a..1ba3000 100644
--- a/src/corelib/kernel/qabstractitemmodel.cpp
+++ b/src/corelib/kernel/qabstractitemmodel.cpp
@@ -1339,7 +1339,7 @@ void QAbstractItemModelPrivate::columnsRemoved(const QModelIndex &parent,
\endlist
- \sa layoutAboutToBeChanged(), dataChanged(), headerDataChanged(), reset(),
+ \sa layoutAboutToBeChanged(), dataChanged(), headerDataChanged(), modelReset(),
changePersistentIndex()
*/
@@ -2498,25 +2498,32 @@ bool QAbstractItemModelPrivate::allowMove(const QModelIndex &srcParent, int star
/*!
Begins a row move operation.
- When reimplementing a subclass, this method simplifies moving entities
- in your model. This method is responsible for moving persistent indexes
- in the model, which you would otherwise be required to do yourself.
+ When reimplementing a subclass, this method simplifies moving
+ entities in your model. This method is responsible for moving
+ persistent indexes in the model, which you would otherwise be
+ required to do yourself.
Using beginMoveRows and endMoveRows is an alternative to emitting
- layoutAboutToBeChanged and layoutChanged directly along with changePersistentIndexes.
- layoutAboutToBeChanged is emitted by this method for compatibility reasons.
+ layoutAboutToBeChanged and layoutChanged directly along with
+ changePersistentIndexes. layoutAboutToBeChanged is emitted by
+ this method for compatibility reasons.
The \a sourceParent index corresponds to the parent from which the
- rows are moved; \a sourceFirst and \a sourceLast are the row numbers of the
- rows to be moved. The \a destinationParent index corresponds to the parent into which
- the rows are moved. The \a destinationRow is the row to which the rows will be moved.
- That is, the index at row \a sourceFirst in \a sourceParent will become row \a destinationRow
- in \a destinationParent. Its siblings will be moved correspondingly.
-
- Note that \a sourceParent and \a destinationParent may be the same, in which case you must
- ensure that the \a destinationRow is not within the range of \a sourceFirst and \a sourceLast.
- You must also ensure that you do not attempt to move a row to one of its own chilren or ancestors.
- This method returns false if either condition is true, in which case you should abort your move operation.
+ rows are moved; \a sourceFirst and \a sourceLast are the row
+ numbers of the rows to be moved. The \a destinationParent index
+ corresponds to the parent into which the rows are moved. The \a
+ destinationChild is the row to which the rows will be moved. That
+ is, the index at row \a sourceFirst in \a sourceParent will become
+ row \a destinationChild in \a destinationParent. Its siblings will
+ be moved correspondingly.
+
+ Note that \a sourceParent and \a destinationParent may be the
+ same, in which case you must ensure that the \a destinationChild is
+ not within the range of \a sourceFirst and \a sourceLast. You
+ must also ensure that you do not attempt to move a row to one of
+ its own chilren or ancestors. This method returns false if either
+ condition is true, in which case you should abort your move
+ operation.
\sa endMoveRows()
@@ -2694,25 +2701,32 @@ void QAbstractItemModel::endRemoveColumns()
/*!
Begins a column move operation.
- When reimplementing a subclass, this method simplifies moving entities
- in your model. This method is responsible for moving persistent indexes
- in the model, which you would otherwise be required to do yourself.
+ When reimplementing a subclass, this method simplifies moving
+ entities in your model. This method is responsible for moving
+ persistent indexes in the model, which you would otherwise be
+ required to do yourself.
- Using beginMoveColumns and endMoveColumns is an alternative to emitting
- layoutAboutToBeChanged and layoutChanged directly along with changePersistentIndexes.
- layoutAboutToBeChanged is emitted by this method for compatibility reasons.
+ Using beginMoveColumns and endMoveColumns is an alternative to
+ emitting layoutAboutToBeChanged and layoutChanged directly along
+ with changePersistentIndexes. layoutAboutToBeChanged is emitted
+ by this method for compatibility reasons.
The \a sourceParent index corresponds to the parent from which the
- columns are moved; \a sourceFirst and \a sourceLast are the column numbers of the
- columns to be moved. The \a destinationParent index corresponds to the parent into which
- the columns are moved. The \a destinationColumn is the column to which the columns will be moved.
- That is, the index at column \a sourceFirst in \a sourceParent will become column \a destinationColumn
- in \a destinationParent. Its siblings will be moved correspondingly.
-
- Note that \a sourceParent and \a destinationParent may be the same, in which case you must
- ensure that the \a destinationColumn is not within the range of \a sourceFirst and \a sourceLast.
- You must also ensure that you do not attempt to move a row to one of its own chilren or ancestors.
- This method returns false if either condition is true, in which case you should abort your move operation.
+ columns are moved; \a sourceFirst and \a sourceLast are the column
+ numbers of the columns to be moved. The \a destinationParent index
+ corresponds to the parent into which the columns are moved. The \a
+ destinationChild is the column to which the columns will be
+ moved. That is, the index at column \a sourceFirst in \a
+ sourceParent will become column \a destinationChild in \a
+ destinationParent. Its siblings will be moved correspondingly.
+
+ Note that \a sourceParent and \a destinationParent may be the
+ same, in which case you must ensure that the \a destinationChild
+ is not within the range of \a sourceFirst and \a sourceLast. You
+ must also ensure that you do not attempt to move a row to one of
+ its own chilren or ancestors. This method returns false if either
+ condition is true, in which case you should abort your move
+ operation.
\sa endMoveColumns()
@@ -2769,7 +2783,24 @@ void QAbstractItemModel::endMoveColumns()
/*!
Resets the model to its original state in any attached views.
- The view to which the model is attached to will be reset as well.
+ \note Use beginResetModel() and endResetModel() instead whenever possible.
+ Use this method only if there is no way to call beginResetModel() before invalidating the model.
+ Otherwise it could lead to unexcpected behaviour, especially when used with proxy models.
+*/
+void QAbstractItemModel::reset()
+{
+ Q_D(QAbstractItemModel);
+ emit modelAboutToBeReset();
+ d->invalidatePersistentIndexes();
+ emit modelReset();
+}
+
+/*!
+ Begins a model reset operation.
+
+ A reset operation resets the model to its current state in any attached views.
+
+ \note Any views attached to this model will be reset as well.
When a model is reset it means that any previous data reported from the
model is now invalid and has to be queried for again. This also means that
@@ -2779,12 +2810,29 @@ void QAbstractItemModel::endMoveColumns()
call this function rather than emit dataChanged() to inform other
components when the underlying data source, or its structure, has changed.
- \sa modelAboutToBeReset(), modelReset()
+ You must call this function before resetting any internal data structures in your model
+ or proxy model.
+
+ \sa modelAboutToBeReset(), modelReset(), endResetModel()
+ \since 4.6
*/
-void QAbstractItemModel::reset()
+void QAbstractItemModel::beginResetModel()
{
- Q_D(QAbstractItemModel);
emit modelAboutToBeReset();
+}
+
+/*!
+ Completes a model reset operation.
+
+ You must call this function after resetting any internal data structure in your model
+ or proxy model.
+
+ \sa beginResetModel()
+ \since 4.6
+*/
+void QAbstractItemModel::endResetModel()
+{
+ Q_D(QAbstractItemModel);
d->invalidatePersistentIndexes();
emit modelReset();
}
@@ -3256,7 +3304,7 @@ bool QAbstractListModel::dropMimeData(const QMimeData *data, Qt::DropAction acti
This signal is emitted when reset() is called, before the model's internal
state (e.g. persistent model indexes) has been invalidated.
- \sa reset(), modelReset()
+ \sa beginResetModel(), modelReset()
*/
/*!
@@ -3266,7 +3314,7 @@ bool QAbstractListModel::dropMimeData(const QMimeData *data, Qt::DropAction acti
This signal is emitted when reset() is called, after the model's internal
state (e.g. persistent model indexes) has been invalidated.
- \sa reset(), modelAboutToBeReset()
+ \sa endResetModel(), modelAboutToBeReset()
*/
/*!
diff --git a/src/corelib/kernel/qabstractitemmodel.h b/src/corelib/kernel/qabstractitemmodel.h
index b47e4cb..1ca6cbe 100644
--- a/src/corelib/kernel/qabstractitemmodel.h
+++ b/src/corelib/kernel/qabstractitemmodel.h
@@ -293,6 +293,9 @@ protected:
void reset();
+ void beginResetModel();
+ void endResetModel();
+
void changePersistentIndex(const QModelIndex &from, const QModelIndex &to);
void changePersistentIndexList(const QModelIndexList &from, const QModelIndexList &to);
QModelIndexList persistentIndexList() const;
diff --git a/src/corelib/kernel/qcore_symbian_p.cpp b/src/corelib/kernel/qcore_symbian_p.cpp
index 957b92c..a263cc4 100644
--- a/src/corelib/kernel/qcore_symbian_p.cpp
+++ b/src/corelib/kernel/qcore_symbian_p.cpp
@@ -175,10 +175,6 @@ Q_CORE_EXPORT TLibraryFunction qt_resolveS60PluginFunc(int ordinal)
return qt_s60_plugin_resolver()->resolve(ordinal);
}
-/*!
-\internal
-Provides global access to a shared RFs.
-*/
class QS60RFsSession
{
public:
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index 183809e..854abef 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -1029,7 +1029,7 @@ void QCoreApplication::exit(int returnCode)
The event is \e not deleted when the event has been sent. The normal
approach is to create the event on the stack, for example:
- \snippet doc/src/snippets/code/src.corelib.kernel.qcoreapplication.cpp 0
+ \snippet doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp 0
\sa postEvent(), notify()
*/
@@ -1552,7 +1552,7 @@ bool QCoreApplication::event(QEvent *e)
Example:
- \snippet doc/src/snippets/code/src.corelib.kernel.qcoreapplication.cpp 1
+ \snippet doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp 1
\sa exit(), aboutToQuit(), QApplication::lastWindowClosed()
*/
@@ -2171,7 +2171,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(QMutex, libraryPathMutex, (QMutex::Recursive))
If you want to iterate over the list, you can use the \l foreach
pseudo-keyword:
- \snippet doc/src/snippets/code/src.corelib.kernel.qcoreapplication.cpp 2
+ \snippet doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp 2
\sa setLibraryPaths(), addLibraryPath(), removeLibraryPath(), QLibrary,
{How to Create Qt Plugins}
@@ -2318,7 +2318,7 @@ void QCoreApplication::removeLibraryPath(const QString &path)
A function with the following signature that can be used as an
event filter:
- \snippet doc/src/snippets/code/src.corelib.kernel.qcoreapplication.cpp 3
+ \snippet doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp 3
\sa setEventFilter()
*/
@@ -2507,7 +2507,7 @@ int QCoreApplication::loopLevel()
}
#endif
-/*!
+/*
\fn void QCoreApplication::watchUnixSignal(int signal, bool watch)
\internal
*/
@@ -2531,7 +2531,7 @@ int QCoreApplication::loopLevel()
The function specified by \a ptr should take no arguments and should
return nothing. For example:
- \snippet doc/src/snippets/code/src.corelib.kernel.qcoreapplication.cpp 4
+ \snippet doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp 4
Note that for an application- or module-wide cleanup,
qAddPostRoutine() is often not suitable. For example, if the
@@ -2545,7 +2545,7 @@ int QCoreApplication::loopLevel()
parent-child mechanism to call a cleanup function at the right
time:
- \snippet doc/src/snippets/code/src.corelib.kernel.qcoreapplication.cpp 5
+ \snippet doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp 5
By selecting the right parent object, this can often be made to
clean up the module's data at the right moment.
@@ -2559,7 +2559,7 @@ int QCoreApplication::loopLevel()
translation functions, \c tr() and \c trUtf8(), with these
signatures:
- \snippet doc/src/snippets/code/src.corelib.kernel.qcoreapplication.cpp 6
+ \snippet doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp 6
This macro is useful if you want to use QObject::tr() or
QObject::trUtf8() in classes that don't inherit from QObject.
@@ -2568,7 +2568,7 @@ int QCoreApplication::loopLevel()
class definition (before the first \c{public:} or \c{protected:}).
For example:
- \snippet doc/src/snippets/code/src.corelib.kernel.qcoreapplication.cpp 7
+ \snippet doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp 7
The \a context parameter is normally the class name, but it can
be any string.
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 1f35c73..8abe28e 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -240,18 +240,20 @@ static void computeOffsets(const QMetaObject *metaobject, int *signalOffset, int
}
}
-/*! \internal
+/*
This vector contains the all connections from an object.
- Each object may have one vector containing the lists of connections for a given signal.
- The index in the vector correspond to the signal index.
- The signal index is the one returned by QObjectPrivate::signalIndex (not QMetaObject::indexOfSignal).
+ Each object may have one vector containing the lists of
+ connections for a given signal. The index in the vector correspond
+ to the signal index. The signal index is the one returned by
+ QObjectPrivate::signalIndex (not QMetaObject::indexOfSignal).
Negative index means connections to all signals.
This vector is protected by the object mutex (signalSlotMutexes())
- Each Connection is also part of a 'senders' linked list. The mutex of the receiver must be locked when touching
- the pointers of this linked list.
+ Each Connection is also part of a 'senders' linked list. The mutex
+ of the receiver must be locked when touching the pointers of this
+ linked list.
*/
class QObjectConnectionListVector : public QVector<QObjectPrivate::ConnectionList>
{