diff --git a/linphone-desktop/assets/languages/en.ts b/linphone-desktop/assets/languages/en.ts
index 56ddb7467..d28e5bb8a 100644
--- a/linphone-desktop/assets/languages/en.ts
+++ b/linphone-desktop/assets/languages/en.ts
@@ -363,6 +363,14 @@ Server url not configured.
conferenceManagerDescription
Manage participants to your conference.
+
+ cancel
+ CANCEL
+
+
+ confirm
+ START
+
ConfirmDialog
diff --git a/linphone-desktop/assets/languages/fr.ts b/linphone-desktop/assets/languages/fr.ts
index 509d65a66..4e9643974 100644
--- a/linphone-desktop/assets/languages/fr.ts
+++ b/linphone-desktop/assets/languages/fr.ts
@@ -363,6 +363,14 @@ Url du serveur non configurée.
conferenceManagerDescription
Gérer les participants de votre conférence.
+
+ cancel
+ ANNULER
+
+
+ confirm
+ LANCER
+
ConfirmDialog
diff --git a/linphone-desktop/src/components/conference/ConferenceAddModel.cpp b/linphone-desktop/src/components/conference/ConferenceAddModel.cpp
index f4406ae6d..5f43f442c 100644
--- a/linphone-desktop/src/components/conference/ConferenceAddModel.cpp
+++ b/linphone-desktop/src/components/conference/ConferenceAddModel.cpp
@@ -106,6 +106,19 @@ bool ConferenceAddModel::removeFromConference (const QString &sipAddress) {
// -----------------------------------------------------------------------------
+void ConferenceAddModel::update () {
+ list > linphoneAddresses;
+ for (const auto &map : mRefs)
+ linphoneAddresses.push_back(map->value("__linphoneAddress").value > ());
+
+ mConferenceHelperModel->mConference->inviteParticipants(
+ linphoneAddresses,
+ CoreManager::getInstance()->getCore()->createCallParams(nullptr)
+ );
+}
+
+// -----------------------------------------------------------------------------
+
void ConferenceAddModel::addToConference (const std::shared_ptr &linphoneAddress) {
QString sipAddress = ::Utils::linphoneStringToQString(linphoneAddress->asStringUriOnly());
QVariantMap map;
diff --git a/linphone-desktop/src/components/conference/ConferenceAddModel.hpp b/linphone-desktop/src/components/conference/ConferenceAddModel.hpp
index 55b73dcfc..8cc4c9e49 100644
--- a/linphone-desktop/src/components/conference/ConferenceAddModel.hpp
+++ b/linphone-desktop/src/components/conference/ConferenceAddModel.hpp
@@ -50,6 +50,8 @@ public:
Q_INVOKABLE bool addToConference (const QString &sipAddress);
Q_INVOKABLE bool removeFromConference (const QString &sipAddress);
+ Q_INVOKABLE void update ();
+
bool contains (const QString &sipAddress) const {
return mSipAddresses.contains(sipAddress);
}
diff --git a/linphone-desktop/src/components/conference/ConferenceHelperModel.hpp b/linphone-desktop/src/components/conference/ConferenceHelperModel.hpp
index e5e231ac6..00e5c73e2 100644
--- a/linphone-desktop/src/components/conference/ConferenceHelperModel.hpp
+++ b/linphone-desktop/src/components/conference/ConferenceHelperModel.hpp
@@ -37,6 +37,8 @@ namespace linphone {
}
class ConferenceHelperModel : public QSortFilterProxyModel {
+ friend class ConferenceAddModel;
+
Q_OBJECT;
Q_PROPERTY(ConferenceAddModel * toAdd READ getConferenceAddModel CONSTANT);
@@ -47,8 +49,6 @@ public:
QHash roleNames () const override;
- void update ();
-
Q_INVOKABLE void setFilter (const QString &pattern);
protected:
diff --git a/linphone-desktop/ui/views/App/Calls/ConferenceManager.qml b/linphone-desktop/ui/views/App/Calls/ConferenceManager.qml
index 243ed7da0..707716158 100644
--- a/linphone-desktop/ui/views/App/Calls/ConferenceManager.qml
+++ b/linphone-desktop/ui/views/App/Calls/ConferenceManager.qml
@@ -8,7 +8,24 @@ import App.Styles 1.0
// =============================================================================
-ConfirmDialog {
+DialogPlus {
+ buttons: [
+ TextButtonA {
+ text: qsTr('cancel')
+
+ onClicked: exit(0)
+ },
+ TextButtonB {
+ text: qsTr('confirm')
+
+ onClicked: {
+ conferenceHelperModel.toAdd.update()
+ exit(1)
+ }
+ }
+ ]
+
+ centeredButtons: true
descriptionText: qsTr('conferenceManagerDescription')
height: ConferenceManagerStyle.height