9#include <QtCore/QAbstractItemModel>
10#include <QtQml/QQmlContext>
11#include <QtQuick/private/qquickanimation_p.h>
12#include <QtQml/QQmlListProperty>
83 m_componentCompleted =
true;
85 m_delegateModel->
setModel(m_itemModel);
106void QDeclarativeGeoMapItemView::destroyingItem(
QObject * )
111void QDeclarativeGeoMapItemView::initItem(
int ,
QObject * )
116void QDeclarativeGeoMapItemView::createdItem(
int index,
QObject * )
128 if (m_creatingObject) {
137 qWarning() <<
"QQmlDelegateModel:: object called in createdItem for " <<
index <<
" produced a null item";
140void QDeclarativeGeoMapItemView::modelUpdated(
const QQmlChangeSet &changeSet,
bool reset)
153 std::map<int, int> mapRemoves;
155 mapRemoves.insert(std::pair<int, int>(removes.
at(
i).start(),
i));
157 for (
auto rit = mapRemoves.rbegin(); rit != mapRemoves.rend(); ++rit) {
159 for (
auto idx =
c.end() - 1; idx >=
c.start(); --idx)
160 removeDelegateFromMap(idx);
166 for (
auto idx =
c.start(); idx <
c.end(); idx++) {
167 QObject *delegateInstance = m_delegateModel->
object(idx, m_incubationMode);
188 if (
model == m_itemModel)
192 if (m_componentCompleted)
193 m_delegateModel->
setModel(m_itemModel);
216 if (m_componentCompleted)
232 return m_fitViewport;
237 if (fit == m_fitViewport)
247void QDeclarativeGeoMapItemView::fitViewport()
250 if (!m_map || !m_map->
mapReady() || !m_fitViewport)
279 removeDelegateFromMap(
i, transition);
290 if (!m_componentCompleted || !m_map || !m_delegate || m_itemModel.
isNull() || !m_instantiatedItems.
isEmpty())
296 QObject *delegateInstance = m_delegateModel->
object(
i, m_incubationMode);
307 if (m_incubationMode == incubationMode)
309 m_incubationMode = incubationMode;
320 return m_instantiatedItems;
323QQmlInstanceModel::ReleaseFlags QDeclarativeGeoMapItemView::disposeDelegate(
QQuickItem *
item)
326 removeDelegateFromMap(
item);
328 item->setParent(
nullptr);
329 QQmlInstanceModel::ReleaseFlags releaseStatus = m_delegateModel->
release(
item);
330 return releaseStatus;
333void QDeclarativeGeoMapItemView::removeDelegateFromMap(
int index,
bool transition)
346 if (m_exit && m_map && transition) {
347 transitionItemOut(
item);
349 if (m_exit && m_map && !transition) {
352 terminateExitTransition(
item);
354 QQmlInstanceModel::ReleaseFlags releaseStatus = disposeDelegate(
item);
365void QDeclarativeGeoMapItemView::removeDelegateFromMap(
QQuickItem *
o)
387void QDeclarativeGeoMapItemView::transitionItemOut(
QQuickItem *
o)
391 if (!
group->m_transitionManager) {
394 group->m_transitionManager->m_view =
this;
397 this, &QDeclarativeGeoMapItemView::exitTransitionFinished);
399 group->m_transitionManager->transitionExit();
404 if (!
item->m_transitionManager) {
407 item->m_transitionManager->m_view =
this;
409 connect(
item, &QDeclarativeGeoMapItemBase::removeTransitionFinished,
410 this, &QDeclarativeGeoMapItemView::exitTransitionFinished);
412 item->m_transitionManager->transitionExit();
417void QDeclarativeGeoMapItemView::terminateExitTransition(
QQuickItem *
o)
421 group->m_transitionManager->cancel();
425 if (
item &&
item->m_transitionManager) {
426 item->m_transitionManager->cancel();
431void QDeclarativeGeoMapItemView::exitTransitionFinished()
436 QQmlInstanceModel::ReleaseFlags releaseStatus = disposeDelegate(
item);
448 if (m_map &&
item->quickMap() == m_map)
452 insertInstantiatedItem(
index,
item, createdItem);
456 if (!
item->m_transitionManager) {
460 item->m_transitionManager->m_view =
this;
461 item->m_transitionManager->transitionEnter();
466void QDeclarativeGeoMapItemView::insertInstantiatedItem(
int index,
QQuickItem *
o,
bool createdItem)
476 if (m_map &&
item->quickMap() == m_map)
480 insertInstantiatedItem(
index,
item, createdItem);
484 if (!
item->m_transitionManager) {
488 item->m_transitionManager->m_view =
this;
489 item->m_transitionManager->transitionEnter();
496 if (m_map &&
item->quickMap() == m_map)
500 insertInstantiatedItem(
index,
item, createdItem);
504 if (!
item->m_transitionManager) {
508 item->m_transitionManager->m_view =
this;
509 item->m_transitionManager->transitionEnter();
514void QDeclarativeGeoMapItemView::addDelegateToMap(
QQuickItem *
object,
int index,
bool createdItem)
528 addItemViewToMap(
view,
index, createdItem);
536 qWarning() <<
"addDelegateToMap called with a "<<
object->metaObject()->className();
void removeTransitionFinished()
void classBegin() override
Invoked after class creation, but before any properties have been set.
void componentComplete() override
Invoked after the root component that caused this instantiation has completed construction.
friend class QDeclarativeGeoMapItemView
~QDeclarativeGeoMapItemView()
void setAutoFitViewport(const bool &fit)
void setMap(QDeclarativeGeoMap *)
friend class QDeclarativeGeoMapItemTransitionManager
void componentComplete() override
QList< QQuickItem * > mapItems
void removeInstantiatedItems(bool transition=true)
void setDelegate(QQmlComponent *)
void classBegin() override
Invoked after class creation, but before any properties have been set.
void setIncubateDelegates(bool useIncubators)
void autoFitViewportChanged()
void instantiateAllItems()
void incubateDelegatesChanged()
void setModel(const QVariant &)
Q_INVOKABLE void removeMapItemGroup(QDeclarativeGeoMapItemGroup *itemGroup)
\qmlmethod void QtLocation::Map::removeMapItemGroup(MapItemGroup itemGroup)
Q_INVOKABLE void fitViewportToMapItems(const QVariantList &items={})
\qmlmethod void QtLocation::Map::fitViewportToMapItems(list<MapItems> items = {})
Q_INVOKABLE void removeMapItemView(QDeclarativeGeoMapItemView *itemView)
\qmlmethod void QtLocation::Map::removeMapItemView(MapItemView itemView)
Q_INVOKABLE void addMapItemGroup(QDeclarativeGeoMapItemGroup *itemGroup)
\qmlmethod void QtLocation::Map::addMapItemGroup(MapItemGroup itemGroup)
Q_INVOKABLE void removeMapItem(QDeclarativeGeoMapItemBase *item)
\qmlmethod void QtLocation::Map::removeMapItem(MapItem item)
QList< QObject * > mapItems
\qmlproperty list<MapItem> QtLocation::Map::mapItems
Q_INVOKABLE void addMapItemView(QDeclarativeGeoMapItemView *itemView)
\qmlmethod void QtLocation::Map::addMapItemView(MapItemView itemView)
Q_INVOKABLE void addMapItem(QDeclarativeGeoMapItemBase *item)
\qmlmethod void QtLocation::Map::addMapItem(MapItem item)
void setParentItem(QGraphicsItem *parent)
Sets this item's parent item to newParent.
qsizetype size() const noexcept
bool isEmpty() const noexcept
iterator insert(qsizetype i, parameter_type t)
const_reference at(qsizetype i) const noexcept
void replace(qsizetype i, parameter_type t)
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
QObject * sender() const
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; othe...
The QQmlChangeSet class stores an ordered list of notifications about changes to a linear data set.
const QVector< Change > & removes() const
The QQmlComponent class encapsulates a QML component definition.
The QQmlContext class defines a context within a QML engine.
void setModel(const QVariant &)
void componentComplete() override
Invoked after the root component that caused this instantiation has completed construction.
void setDelegate(QQmlComponent *)
int count() const override
\qmlproperty int QtQml.Models::DelegateModel::count
void classBegin() override
Invoked after class creation, but before any properties have been set.
QObject * object(int index, QQmlIncubator::IncubationMode incubationMode=QQmlIncubator::AsynchronousIfNested) override
ReleaseFlags release(QObject *object, ReusableFlag reusableFlag=NotReusable) override
void cancel(int index) override
IncubationMode
Specifies the mode the incubator operates in.
void createdItem(int index, QObject *object)
void modelUpdated(const QQmlChangeSet &changeSet, bool reset)
The QQmlListProperty class allows applications to expose list-like properties of QObject-derived clas...
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
virtual void setDuration(int)
void setProperty(const QString &)
QQmlListProperty< QQuickAbstractAnimation > animations
\qmlproperty list<Animation> QtQuick::Transition::animations \qmldefault
bool isNull() const
Returns true if this is a null variant, false otherwise.
QMap< QString, QString > map
[6]
Combined button and popup list for selecting options.
QQmlContext * qmlContext(const QObject *obj)
QQuickItem * qobject_cast< QQuickItem * >(QObject *o)
#define QStringLiteral(str)
QSqlQueryModel * model
[16]
myObject disconnect()
[26]
QNetworkAccessManager manager
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent