1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-03-28 14:56:19 +01:00

settings: add always preference by handler

GitLab: #266
GItLab: #267
Change-Id: I0f2d31f9d5aebbbc645f4f85cad2ba5fdee45a79
This commit is contained in:
agsantos 2021-01-25 16:48:17 -05:00
parent ebc0715544
commit b55be608f3
5 changed files with 39 additions and 16 deletions

View file

@ -37,6 +37,7 @@ ItemDelegate {
LIST,
PATH,
EDITTEXT,
SWITCH,
DEFAULT
}
@ -75,19 +76,23 @@ ItemDelegate {
preferenceNewValue = editTextPreference.text
btnPreferenceClicked()
break
case PreferenceItemDelegate.SWITCH:
preferenceNewValue = index ? "1" : "0"
btnPreferenceClicked()
break
default:
break
}
}
FileDialog {
JamiFileDialog {
id: preferenceFilePathDialog
title: JamiStrings.selectFile
folder: "file:///" + currentPath
onAccepted: {
var url = UtilsAdapter.getAbsPath(fileUrl.toString())
var url = UtilsAdapter.getAbsPath(file.toString())
preferenceNewValue = url
btnPreferenceClicked()
}
@ -96,20 +101,22 @@ ItemDelegate {
RowLayout{
anchors.fill: parent
Label {
Layout.preferredWidth: root.width / 2 - 8
Text {
id: prefLlabel
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
Layout.leftMargin: 8
text: preferenceName
color: JamiTheme.textColor
elide: Text.ElideRight
font.pointSize: JamiTheme.settingsFontSize
ToolTip.visible: hovered
ToolTip.text: preferenceSummary
}
PushButton {
id: btnPreference
id: btnPreferenceDefault
visible: preferenceType === PreferenceItemDelegate.DEFAULT
normalColor: JamiTheme.primaryBackgroundColor
@ -123,8 +130,19 @@ ItemDelegate {
source: "qrc:/images/icons/round-settings-24px.svg"
toolTipText: qsTr("Edit preference")
}
onClicked: btnPreferenceClicked()
Switch {
id: btnPreferenceSwitch
visible: preferenceType === PreferenceItemDelegate.SWITCH
Layout.alignment: Qt.AlignRight | Qt.AlingVCenter
Layout.rightMargin: 16
Layout.preferredHeight: 30
Layout.preferredWidth: 30
checked: preferenceCurrentValue === "1"
onToggled: getNewPreferenceValueSlot(checked)
}
SettingParaCombobox {
@ -133,7 +151,7 @@ ItemDelegate {
visible: preferenceType === PreferenceItemDelegate.LIST
Layout.preferredWidth: root.width / 2 - 8
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
Layout.rightMargin: 8
Layout.rightMargin: 4
font.pointSize: JamiTheme.settingsFontSize
font.kerning: true
@ -153,7 +171,7 @@ ItemDelegate {
Layout.preferredWidth: width
Layout.preferredHeight: 30
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
Layout.rightMargin: 8
Layout.rightMargin: 4
text: UtilsAdapter.fileName(preferenceCurrentValue)
toolTipText: JamiStrings.chooseImageFile
@ -173,7 +191,7 @@ ItemDelegate {
Layout.preferredWidth: root.width / 2 - 8
Layout.preferredHeight: 30
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
Layout.rightMargin: 8
Layout.rightMargin: 4
selectByMouse: true
text: preferenceCurrentValue

View file

@ -44,7 +44,6 @@ Rectangle {
function toggleMessagingHeaderButtonsVisible(visible) {
startAAudioCallButton.visible = visible
startAVideoCallButton.visible = visible
selectPluginButton.visible = visible
}
color: JamiTheme.secondaryBackgroundColor

View file

@ -24,7 +24,8 @@
std::map<QString, int> mapType {{QString("List"), PreferenceItemListModel::Type::LIST},
{QString("Path"), PreferenceItemListModel::Type::PATH},
{QString("EditText"), PreferenceItemListModel::Type::EDITTEXT}};
{QString("EditText"), PreferenceItemListModel::Type::EDITTEXT},
{QString("Switch"), PreferenceItemListModel::Type::SWITCH}};
PreferenceItemListModel::PreferenceItemListModel(QObject* parent)
: QAbstractListModel(parent)
@ -58,14 +59,15 @@ PreferenceItemListModel::data(const QModelIndex& index, int role) const
return QVariant();
}
auto details = preferenceList_.at(index.row());
QString preferenceCurrent = LRCInstance::pluginModel().getPluginPreferencesValues(
pluginId_)[details["key"]];
QString preferenceCurrent = QString("");
int type = Type::DEFAULT;
QString currentPath = "";
QString currentPath = QString("");
QStringList acceptedFiles = {};
bool checkImage = false;
auto details = preferenceList_.at(index.row());
preferenceCurrent = LRCInstance::pluginModel().getPluginPreferencesValues(
pluginId_)[details["key"]];
auto it = mapType.find(details["type"]);
if (it != mapType.end()) {
type = mapType[details["type"]];
@ -101,6 +103,7 @@ PreferenceItemListModel::data(const QModelIndex& index, int role) const
case Role::IsImage:
return QVariant(checkImage);
}
return QVariant();
}

View file

@ -48,6 +48,7 @@ public:
LIST,
PATH,
EDITTEXT,
SWITCH,
DEFAULT,
} Type;

View file

@ -52,6 +52,7 @@ Rectangle {
PluginModel.unloadPlugin(pluginId)
else
loaded = PluginModel.loadPlugin(pluginId)
pluginListView.model = PluginAdapter.getPluginSelectableModel()
PluginAdapter.pluginHandlersUpdateStatus()
return loaded
}
@ -70,6 +71,7 @@ Rectangle {
var url = UtilsAdapter.getAbsPath(file.toString())
PluginModel.installPlugin(url, true)
pluginListView.model = PluginAdapter.getPluginSelectableModel()
PluginAdapter.pluginHandlersUpdateStatus()
}
}