diff options
author | Cidorvan Leite <cidorvan.leite@openbossa.org> | 2012-05-17 10:29:27 -0300 |
---|---|---|
committer | Luis Gabriel Lima <luis.gabriel@openbossa.org> | 2012-05-21 18:59:35 +0200 |
commit | 375596549d5a3a2526e0dee9cf44918ba05d8d65 (patch) | |
tree | bc4b065b4ca67a66dfadf85046611addb85945a7 | |
parent | 26e9688af547488e404b364f8db81608b55cd267 (diff) |
Updated UiQuickCompletionModel model support
Using UiProxyQmlModel to convert Qml model to
UiQuickCompletionModel model format.
Change-Id: Id7a5565a55b0508d096f58c2f3bfd420685bf9e6
Reviewed-by: Luis Gabriel Lima <luis.gabriel@openbossa.org>
-rw-r--r-- | src/imports/models/uiquickcompletionmodel.cpp | 51 |
1 files changed, 10 insertions, 41 deletions
diff --git a/src/imports/models/uiquickcompletionmodel.cpp b/src/imports/models/uiquickcompletionmodel.cpp index 1cc4b0a..8f757ee 100644 --- a/src/imports/models/uiquickcompletionmodel.cpp +++ b/src/imports/models/uiquickcompletionmodel.cpp @@ -40,43 +40,18 @@ ****************************************************************************/ #include "uiquickcompletionmodel_p.h" - -#include <UiHelpers/UiStandardItemModel> - -class WrapperModel : public UiStandardItemModel -{ -public: - enum WrapperRoles { ModelDataRole }; - - WrapperModel() { - QHash<int, QByteArray> roleNames; - roleNames[WrapperModel::ModelDataRole] = "modelData"; - setRoleNames(roleNames); - } -}; - +#include <UiHelpers/UiProxyQmlModel> class UiQuickCompletionModelPrivate { - Q_DECLARE_PUBLIC(UiQuickCompletionModel) - public: - UiQuickCompletionModelPrivate(UiQuickCompletionModel *q); - ~UiQuickCompletionModelPrivate(); + UiQuickCompletionModelPrivate(UiQuickCompletionModel *parent) + : proxy(new UiProxyQmlModel(parent)) {} - UiQuickCompletionModel *q_ptr; QVariant source; + UiProxyQmlModel *proxy; }; -UiQuickCompletionModelPrivate::UiQuickCompletionModelPrivate(UiQuickCompletionModel *q) - : q_ptr(q) -{ -} - -UiQuickCompletionModelPrivate::~UiQuickCompletionModelPrivate() -{ -} - UiQuickCompletionModel::UiQuickCompletionModel(QObject *parent) : UiCompletionModel(parent) @@ -91,27 +66,21 @@ UiQuickCompletionModel::~UiQuickCompletionModel() QVariant UiQuickCompletionModel::source() const { Q_D(const UiQuickCompletionModel); + return d->source; } void UiQuickCompletionModel::setSource(const QVariant& source) { Q_D(UiQuickCompletionModel); + if (source == d->source) return; - if (source.type() == QVariant::List) { - WrapperModel *wrapper = new WrapperModel(); - foreach (const QVariant& var, source.toList()) { - UiStandardItem *item = new UiStandardItem(); - item->setData(var.toString(), WrapperModel::ModelDataRole); - item->setFlags(Qt::ItemIsSelectable); - wrapper->appendRow(item); - } - - setSourceModel(wrapper); - setCompletionRole(WrapperModel::ModelDataRole); - } + setSourceModel(0); // Disconnect all signals from old model + if (d->proxy->setSource(source) == UiProxyQmlModel::ArrayList) + setCompletionRole(Qt::DisplayRole); + setSourceModel(d->proxy); d->source = source; emit sourceModelChanged(); |