diff --git a/applets/pager/plugin/pagermodel.h b/applets/pager/plugin/pagermodel.h --- a/applets/pager/plugin/pagermodel.h +++ b/applets/pager/plugin/pagermodel.h @@ -28,13 +28,16 @@ #endif #include +#include class QMimeData; -class PagerModel : public QAbstractListModel +class PagerModel : public QAbstractListModel, public QQmlParserStatus { Q_OBJECT + Q_INTERFACES(QQmlParserStatus) + Q_ENUMS(PagerType) Q_ENUMS(AdditionalRoles) @@ -103,6 +106,9 @@ Q_INVOKABLE void addDesktop(); Q_INVOKABLE void removeDesktop(); + void classBegin(); + void componentComplete(); + Q_SIGNALS: void countChanged() const; void pagerTypeChanged() const; diff --git a/applets/pager/plugin/pagermodel.cpp b/applets/pager/plugin/pagermodel.cpp --- a/applets/pager/plugin/pagermodel.cpp +++ b/applets/pager/plugin/pagermodel.cpp @@ -48,6 +48,8 @@ static int instanceCount; + bool componentComplete = false; + PagerType pagerType = VirtualDesktops; bool enabled = false; bool showDesktop = false; @@ -383,6 +385,10 @@ void PagerModel::refresh() { + if (!d->componentComplete) { + return; + } + beginResetModel(); d->refreshDataSource(); @@ -616,4 +622,17 @@ #endif } +void PagerModel::classBegin() +{ +} + +void PagerModel::componentComplete() +{ + d->componentComplete = true; + + if (d->enabled) { + refresh(); + } +} + #include "moc_pagermodel.cpp"