plugin: implement PATH preference

Change-Id: If86856104409c9c6f8402e0c9229481d18c5b84f
diff --git a/src/settingsview/components/PluginListPreferencesView.qml b/src/settingsview/components/PluginListPreferencesView.qml
index 6e3f584..9d0eb1c 100644
--- a/src/settingsview/components/PluginListPreferencesView.qml
+++ b/src/settingsview/components/PluginListPreferencesView.qml
@@ -32,12 +32,10 @@
 
     enum Type {
         LIST,
-        USERLIST,
+        PATH,
         DEFAULT
     }
 
-    signal updatePluginList
-
     property string pluginName: ""
     property string pluginIcon: ""
     property string pluginId: ""
@@ -45,14 +43,6 @@
 
     visible: false
 
-    function updatePreferenceListDisplayed(){
-        // settings
-        preferenceItemListModel.pluginId = pluginId
-        preferenceItemListModel.reset()
-        var size = 50 * preferenceItemListModel.preferencesCount
-        pluginPreferenceView.height = size
-    }
-
     function resetPluginSlot(){
         resetPluginMessageBox.open()
     }
@@ -65,8 +55,7 @@
         } else {
             ClientWrapper.pluginModel.resetPluginPreferencesValues(pluginId)
         }
-        updatePluginList()
-        updatePreferenceListDisplayed()
+        pluginPreferenceView.model = PluginAdapter.getPluginPreferencesModel(pluginId)
     }
 
     function uninstallPluginSlot(){
@@ -75,7 +64,6 @@
 
     function uninstallPlugin(){
         ClientWrapper.pluginModel.uninstallPlugin(pluginId)
-        updatePluginList()
     }
 
     function setPreference(pluginId, preferenceKey, preferenceNewValue)
@@ -115,10 +103,6 @@
         onAccepted: resetPlugin()
     }
 
-    PreferenceItemListModel {
-        id: preferenceItemListModel
-    }
-
     ColumnLayout {
         anchors.left: root.left
         anchors.right: root.right
@@ -195,19 +179,23 @@
             Layout.minimumHeight: 0
             Layout.preferredHeight: childrenRect.height + 30
 
-            model: preferenceItemListModel
+            model: PluginAdapter.getPluginPreferencesModel(pluginId)
 
             delegate: PreferenceItemDelegate{
                 id: preferenceItemDelegate
 
                 width: pluginPreferenceView.width
-                height: 50
+                height: childrenRect.height
 
                 preferenceName: PreferenceName
                 preferenceSummary: PreferenceSummary
                 preferenceType: PreferenceType
                 preferenceCurrentValue: PreferenceCurrentValue
                 pluginId: PluginId
+                currentPath: CurrentPath
+                preferenceKey: PreferenceKey
+                fileFilters: FileFilters
+                isImage: IsImage
                 pluginListPreferenceModel: PluginListPreferenceModel{
                     id: pluginListPreferenceModel
                     preferenceKey : PreferenceKey
@@ -218,12 +206,9 @@
                     pluginPreferenceView.currentIndex = index
                 }
                 onBtnPreferenceClicked: {
-                    setPreference(pluginListPreferenceModel.pluginId,
-                                  pluginListPreferenceModel.preferenceKey,
-                                  pluginListPreferenceModel.preferenceNewValue)
-                    updatePreferenceListDisplayed()
+                    setPreference(pluginId, preferenceKey, preferenceNewValue)
+                    pluginPreferenceView.model = PluginAdapter.getPluginPreferencesModel(pluginId)
                 }
-                onPreferenceAdded: preferenceItemListModel.reset()
             }
         }
     }