diff --git a/src/commoncomponents/PreferenceItemDelegate.qml b/src/commoncomponents/PreferenceItemDelegate.qml
index f59c8d264af6baf9e04bc3690df0ac0abe5459b3..97c8af5d0d8d599553ae03fc96fe0b410a3dd941 100644
--- a/src/commoncomponents/PreferenceItemDelegate.qml
+++ b/src/commoncomponents/PreferenceItemDelegate.qml
@@ -36,6 +36,7 @@ ItemDelegate {
     enum Type {
         LIST,
         PATH,
+        EDITTEXT,
         DEFAULT
     }
 
@@ -53,15 +54,15 @@ ItemDelegate {
 
     signal btnPreferenceClicked
 
-    function getNewPreferenceValueSlot(index){
-        switch (preferenceType){
+    function getNewPreferenceValueSlot(index) {
+        switch (preferenceType) {
             case PreferenceItemDelegate.LIST:
                 pluginListPreferenceModel.idx = index
                 preferenceNewValue = pluginListPreferenceModel.preferenceNewValue
                 btnPreferenceClicked()
                 break
             case PreferenceItemDelegate.PATH:
-                if(index === 0){
+                if (index === 0) {
                     preferenceFilePathDialog.title = qsTr("Select An Image to " + preferenceName)
                     preferenceFilePathDialog.nameFilters = fileFilters
                     preferenceFilePathDialog.open()
@@ -69,6 +70,10 @@ ItemDelegate {
                 else
                     btnPreferenceClicked()
                 break
+            case PreferenceItemDelegate.EDITTEXT:
+                preferenceNewValue = editTextPreference.text
+                btnPreferenceClicked()
+                break
             default:
                 break
         }
@@ -91,7 +96,7 @@ ItemDelegate {
         anchors.fill: parent
 
         Label {
-            Layout.preferredWidth: root.width / 2
+            Layout.preferredWidth: root.width / 2 - 8
             Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
             Layout.leftMargin: 8
 
@@ -143,11 +148,11 @@ ItemDelegate {
             id: pathPreferenceButton
 
             visible: preferenceType === PreferenceItemDelegate.PATH
-            width: root.width / 2 - 16
+            width: root.width / 2 - 8
             Layout.preferredWidth: width
             Layout.preferredHeight: 30
             Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
-            Layout.rightMargin: 30
+            Layout.rightMargin: 8
 
             text: UtilsAdapter.fileName(preferenceCurrentValue)
             toolTipText: JamiStrings.chooseImageFile
@@ -158,5 +163,25 @@ ItemDelegate {
 
             onClicked: getNewPreferenceValueSlot(0)
         }
+
+        MaterialLineEdit {
+            id: editTextPreference
+
+            visible: preferenceType === PreferenceItemDelegate.EDITTEXT
+            width: root.width / 2 - 8
+            Layout.preferredWidth: root.width / 2 - 8
+            Layout.preferredHeight: 30
+            Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
+            Layout.rightMargin: 8
+
+            selectByMouse: true
+            text: preferenceCurrentValue
+
+            font.pointSize: JamiTheme.settingsFontSize
+            padding: 8
+            wrapMode: Text.NoWrap
+
+            onEditingFinished: getNewPreferenceValueSlot(0)
+        }
     }
 }
diff --git a/src/mainview/components/PluginHandlerPicker.qml b/src/mainview/components/PluginHandlerPicker.qml
index 307c5e645b58047572af632fee1a1e6d4cca4c50..1315a9ae2e3ab4e5811b7ac44019d801605e0909 100644
--- a/src/mainview/components/PluginHandlerPicker.qml
+++ b/src/mainview/components/PluginHandlerPicker.qml
@@ -278,7 +278,7 @@ Popup {
 
                         onBtnPreferenceClicked: {
                             PluginModel.setPluginPreference(pluginId, preferenceKey, preferenceNewValue)
-                            PluginAdapter.pluginHandlersUpdateStatus()
+                            PluginAdapter.preferenceChanged(pluginId)
                             pluginhandlerPreferencePickerListView.model = PluginAdapter.getPluginPreferencesModel(pluginId, pluginhandlerPreferencePickerListView.handlerName)
                         }
                     }
diff --git a/src/pluginadapter.h b/src/pluginadapter.h
index 68e993cfe0516f1f159e3cc3a5f265d1a400da5c..bf23712440fe7a458823be5a02f3e8f80c4241eb 100644
--- a/src/pluginadapter.h
+++ b/src/pluginadapter.h
@@ -47,6 +47,7 @@ protected:
 
 signals:
     void pluginHandlersUpdateStatus();
+    void preferenceChanged(QString pluginId);
 
 private:
     std::unique_ptr<PluginHandlerItemListModel> pluginHandlerListModel_;
diff --git a/src/preferenceitemlistmodel.cpp b/src/preferenceitemlistmodel.cpp
index e501aaeae2452b908b54e95d9160ad9bd861a6db..bd4e35e5d94fcdae76e2a6c072345281a91b944e 100644
--- a/src/preferenceitemlistmodel.cpp
+++ b/src/preferenceitemlistmodel.cpp
@@ -23,7 +23,8 @@
 #include <map>
 
 std::map<QString, int> mapType {{QString("List"), PreferenceItemListModel::Type::LIST},
-                                {QString("Path"), PreferenceItemListModel::Type::PATH}};
+                                {QString("Path"), PreferenceItemListModel::Type::PATH},
+                                {QString("EditText"), PreferenceItemListModel::Type::EDITTEXT}};
 
 PreferenceItemListModel::PreferenceItemListModel(QObject* parent)
     : QAbstractListModel(parent)
diff --git a/src/preferenceitemlistmodel.h b/src/preferenceitemlistmodel.h
index 2bed54e2b00733feb45e5a08f6fc3ae7720bbc97..57bb6a16ae38cd978fa889d22673ccd77ffe7141 100644
--- a/src/preferenceitemlistmodel.h
+++ b/src/preferenceitemlistmodel.h
@@ -47,6 +47,7 @@ public:
     typedef enum {
         LIST,
         PATH,
+        EDITTEXT,
         DEFAULT,
     } Type;
 
diff --git a/src/settingsview/components/PluginListPreferencesView.qml b/src/settingsview/components/PluginListPreferencesView.qml
index acf70bb93b2af899339171f89f6b844fd64ed999..04629484fee915c63174bcad08e7a137532d7d89 100644
--- a/src/settingsview/components/PluginListPreferencesView.qml
+++ b/src/settingsview/components/PluginListPreferencesView.qml
@@ -34,6 +34,7 @@ Rectangle {
     enum Type {
         LIST,
         PATH,
+        EDITTEXT,
         DEFAULT
     }
 
@@ -47,6 +48,15 @@ Rectangle {
 
     signal uninstalled
 
+    Connections{
+        target: PluginAdapter
+
+        function onPreferenceChanged(pluginId) {
+            if (root.pluginId == pluginId)
+                pluginPreferenceView.model = PluginAdapter.getPluginPreferencesModel(pluginId)
+        }
+    }
+
     function resetPluginSlot() {
         msgDialog.buttonCallBacks = [function () {resetPlugin()}]
         msgDialog.openWithParameters(qsTr("Reset preferences"),