plugin: implement view to change preference

Change-Id: Ie830238ed539810c64f3d02023c7c48bff850f64
diff --git a/src/preferenceitemlistmodel.cpp b/src/preferenceitemlistmodel.cpp
index eb7ce52..6ae5ae0 100644
--- a/src/preferenceitemlistmodel.cpp
+++ b/src/preferenceitemlistmodel.cpp
@@ -19,7 +19,8 @@
 #include "preferenceitemlistmodel.h"
 #include <map>
 
-std::map<QString, int> mapType {{QString("List"), PreferenceItemListModel::Type::LIST}};
+std::map<QString, int> mapType {{QString("List"), PreferenceItemListModel::Type::LIST},
+                                {QString("UserList"), PreferenceItemListModel::Type::USERLIST}};
 
 PreferenceItemListModel::PreferenceItemListModel(QObject* parent)
     : QAbstractListModel(parent)
@@ -31,14 +32,10 @@
 PreferenceItemListModel::rowCount(const QModelIndex& parent) const
 {
     if (!parent.isValid()) {
-        /*
-         * Count.
-         */
+        /// Count.
         return LRCInstance::pluginModel().getPluginPreferences(pluginId_).size();
     }
-    /*
-     * A valid QModelIndex returns 0 as no entry has sub-elements.
-     */
+    /// A valid QModelIndex returns 0 as no entry has sub-elements.
     return 0;
 }
 
@@ -46,9 +43,7 @@
 PreferenceItemListModel::columnCount(const QModelIndex& parent) const
 {
     Q_UNUSED(parent);
-    /*
-     * Only need one column.
-     */
+    /// Only need one column.
     return 1;
 }
 
@@ -66,6 +61,8 @@
     if (it != mapType.end()) {
         type = mapType[details["type"]];
     }
+    QString preferenceCurrent = LRCInstance::pluginModel().getPluginPreferencesValues(
+        pluginId_)[details["key"]];
 
     switch (role) {
     case Role::PreferenceKey:
@@ -76,12 +73,10 @@
         return QVariant(details["summary"]);
     case Role::PreferenceType:
         return QVariant(type);
-    case Role::PreferenceDefaultValue:
-        return QVariant(details["defaultValue"]);
-    case Role::PreferenceEntries:
-        return QVariant(details["entries"]);
-    case Role::PreferenceEntryValues:
-        return QVariant(details["entryValues"]);
+    case Role::PluginId:
+        return QVariant(pluginId_);
+    case Role::PreferenceCurrentValue:
+        return QVariant(preferenceCurrent);
     }
     return QVariant();
 }
@@ -94,10 +89,8 @@
     roles[PreferenceName] = "PreferenceName";
     roles[PreferenceSummary] = "PreferenceSummary";
     roles[PreferenceType] = "PreferenceType";
-    roles[PreferenceDefaultValue] = "PreferenceDefaultValue";
-    roles[PreferenceEntries] = "PreferenceEntries";
-    roles[PreferenceEntryValues] = "PreferenceEntryValues";
-
+    roles[PluginId] = "PluginId";
+    roles[PreferenceCurrentValue] = "PreferenceCurrentValue";
     return roles;
 }