From 3d65bb562b73a9e7317216263a80f123d803629e Mon Sep 17 00:00:00 2001 From: agsantos <aline.gondimsantos@savoirfairelinux.com> Date: Mon, 26 Oct 2020 16:29:24 -0400 Subject: [PATCH] plugins: add callId to API Change-Id: Ieb4b8c1b507cdc8905e364c375df76e30b7c87c6 --- .../components/MediaHandlerPicker.qml | 17 ++++++++++--- src/mediahandleritemlistmodel.cpp | 25 +++++++++++++++---- src/mediahandleritemlistmodel.h | 8 +++++- src/pluginadapter.cpp | 4 +-- src/pluginadapter.h | 2 +- .../components/PluginSettingsPage.qml | 1 - 6 files changed, 43 insertions(+), 14 deletions(-) diff --git a/src/mainview/components/MediaHandlerPicker.qml b/src/mainview/components/MediaHandlerPicker.qml index 6e002b68a..fec106108 100644 --- a/src/mainview/components/MediaHandlerPicker.qml +++ b/src/mainview/components/MediaHandlerPicker.qml @@ -21,14 +21,17 @@ import QtQuick.Controls 2.14 import QtQuick.Layouts 1.14 import QtQuick.Controls.Universal 2.14 import net.jami.Models 1.0 +import net.jami.Adapters 1.0 import "../../commoncomponents" Popup { id: root function toggleMediaHandlerSlot(mediaHandlerId, isLoaded) { - PluginModel.toggleCallMediaHandler(mediaHandlerId, !isLoaded) - mediahandlerPickerListView.model = PluginAdapter.getMediaHandlerSelectableModel() + var callId = UtilsAdapter.getCallId(callStackViewWindow.responsibleAccountId, + callStackViewWindow.responsibleConvUid) + PluginModel.toggleCallMediaHandler(mediaHandlerId, callId, !isLoaded) + mediahandlerPickerListView.model = PluginAdapter.getMediaHandlerSelectableModel(callId) } width: 350 @@ -93,7 +96,11 @@ Popup { Layout.preferredWidth: mediahandlerPickerPopupRect.width Layout.preferredHeight: 200 - model: PluginAdapter.getMediaHandlerSelectableModel() + model: { + var callId = UtilsAdapter.getCallId(callStackViewWindow.responsibleAccountId, + callStackViewWindow.responsibleConvUid) + return PluginAdapter.getMediaHandlerSelectableModel(callId) + } clip: true @@ -235,7 +242,9 @@ Popup { onAboutToShow: { // Reset the model on each show. - mediahandlerPickerListView.model = PluginAdapter.getMediaHandlerSelectableModel() + var callId = UtilsAdapter.getCallId(callStackViewWindow.responsibleAccountId, + callStackViewWindow.responsibleConvUid) + mediahandlerPickerListView.model = PluginAdapter.getMediaHandlerSelectableModel(callId) } background: Rectangle { diff --git a/src/mediahandleritemlistmodel.cpp b/src/mediahandleritemlistmodel.cpp index 3c9d3a157..2fae003bf 100644 --- a/src/mediahandleritemlistmodel.cpp +++ b/src/mediahandleritemlistmodel.cpp @@ -18,9 +18,11 @@ #include "mediahandleritemlistmodel.h" -MediaHandlerItemListModel::MediaHandlerItemListModel(QObject* parent) +MediaHandlerItemListModel::MediaHandlerItemListModel(QObject* parent, const QString& callId) : QAbstractListModel(parent) -{} +{ + callId_ = callId; +} MediaHandlerItemListModel::~MediaHandlerItemListModel() {} @@ -59,10 +61,11 @@ MediaHandlerItemListModel::data(const QModelIndex& index, int role) const auto details = LRCInstance::pluginModel().getCallMediaHandlerDetails( mediahandlerList.at(index.row())); - auto status = LRCInstance::pluginModel().getCallMediaHandlerStatus(); + auto status = LRCInstance::pluginModel().getCallMediaHandlerStatus(callId_); bool loaded = false; - if (status["name"] == details.id) - loaded = true; + for (const auto& mediaHandler : status[callId_]) + if (mediaHandler == details.id) + loaded = true; if (!details.pluginId.isEmpty()) { details.pluginId.remove(details.pluginId.size() - 5, 5); } @@ -132,3 +135,15 @@ MediaHandlerItemListModel::reset() beginResetModel(); endResetModel(); } + +QString +MediaHandlerItemListModel::callId() +{ + return callId_; +} + +void +MediaHandlerItemListModel::setCallId(QString callId) +{ + callId_ = callId; +} diff --git a/src/mediahandleritemlistmodel.h b/src/mediahandleritemlistmodel.h index 11fe45b3b..7f262361f 100644 --- a/src/mediahandleritemlistmodel.h +++ b/src/mediahandleritemlistmodel.h @@ -38,7 +38,7 @@ public: }; Q_ENUM(Role) - explicit MediaHandlerItemListModel(QObject* parent = 0); + explicit MediaHandlerItemListModel(QObject* parent = 0, const QString& callId = QString("")); ~MediaHandlerItemListModel(); /* @@ -59,4 +59,10 @@ public: * This function is to reset the model when there's new account added. */ Q_INVOKABLE void reset(); + + QString callId(); + void setCallId(QString callId); + +private: + QString callId_ = QString(""); }; diff --git a/src/pluginadapter.cpp b/src/pluginadapter.cpp index 57b5d8bec..83aa1f1d5 100644 --- a/src/pluginadapter.cpp +++ b/src/pluginadapter.cpp @@ -25,9 +25,9 @@ PluginAdapter::PluginAdapter(QObject* parent) {} QVariant -PluginAdapter::getMediaHandlerSelectableModel() +PluginAdapter::getMediaHandlerSelectableModel(const QString& callId) { - mediaHandlerListModel_.reset(new MediaHandlerItemListModel(this)); + mediaHandlerListModel_.reset(new MediaHandlerItemListModel(this, callId)); return QVariant::fromValue(mediaHandlerListModel_.get()); } diff --git a/src/pluginadapter.h b/src/pluginadapter.h index 814fcbb40..13a1fd48a 100644 --- a/src/pluginadapter.h +++ b/src/pluginadapter.h @@ -38,7 +38,7 @@ public: protected: void safeInit() override {}; - Q_INVOKABLE QVariant getMediaHandlerSelectableModel(); + Q_INVOKABLE QVariant getMediaHandlerSelectableModel(const QString& callId = QString("")); Q_INVOKABLE QVariant getPluginSelectableModel(); Q_INVOKABLE QVariant getPluginPreferencesModel(const QString& pluginId, const QString& mediaHandlerName = ""); diff --git a/src/settingsview/components/PluginSettingsPage.qml b/src/settingsview/components/PluginSettingsPage.qml index dbc5cb93b..ba7cf7408 100644 --- a/src/settingsview/components/PluginSettingsPage.qml +++ b/src/settingsview/components/PluginSettingsPage.qml @@ -65,7 +65,6 @@ Rectangle { pluginListSettingsView.visible = checked if (!pluginListSettingsView.visible) { - PluginModel.toggleCallMediaHandler("", true) pluginListSettingsView.hidePreferences() } } -- GitLab