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