summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCidorvan Leite <cidorvan.leite@openbossa.org>2012-05-17 10:29:27 -0300
committerLuis Gabriel Lima <luis.gabriel@openbossa.org>2012-05-21 18:59:35 +0200
commit375596549d5a3a2526e0dee9cf44918ba05d8d65 (patch)
treebc4b065b4ca67a66dfadf85046611addb85945a7
parent26e9688af547488e404b364f8db81608b55cd267 (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.cpp51
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();