mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
fix #LINQT-1512 do not return to conference list when cancel meeting creation
This commit is contained in:
parent
783c0dbfd1
commit
06d00de59b
4 changed files with 26 additions and 17 deletions
|
|
@ -562,7 +562,7 @@ void ConferenceInfoCore::writeIntoModel(std::shared_ptr<ConferenceInfoModel> mod
|
|||
void ConferenceInfoCore::save() {
|
||||
mustBeInMainThread(getClassName() + "::save()");
|
||||
ConferenceInfoCore *thisCopy = new ConferenceInfoCore(*this); // Pointer to avoid multiple copies in lambdas
|
||||
if (mConferenceInfoModel) {
|
||||
if (mConferenceInfoModel && mConferenceInfoModel->getConferenceScheduler()) {
|
||||
mConfInfoModelConnection->invokeToModel([this, thisCopy]() { // Copy values to avoid concurrency
|
||||
mustBeInLinphoneThread(getClassName() + "::save()");
|
||||
thisCopy->writeIntoModel(mConferenceInfoModel);
|
||||
|
|
@ -634,6 +634,12 @@ void ConferenceInfoCore::undo() {
|
|||
}
|
||||
}
|
||||
|
||||
void ConferenceInfoCore::cancelCreation() {
|
||||
if (mConferenceInfoModel) {
|
||||
mConferenceInfoModel->setConferenceScheduler(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
void ConferenceInfoCore::onInvitationsSent(const std::list<std::shared_ptr<linphone::Address>> &failedInvitations) {
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@ public:
|
|||
|
||||
Q_INVOKABLE void save();
|
||||
Q_INVOKABLE void undo();
|
||||
Q_INVOKABLE void cancelCreation();
|
||||
|
||||
virtual void onInvitationsSent(const std::list<std::shared_ptr<linphone::Address>> &failedInvitations);
|
||||
|
||||
|
|
@ -153,7 +154,7 @@ signals:
|
|||
void saveFailed();
|
||||
|
||||
void invitationsSent();
|
||||
void removed(ConferenceInfoCore* confInfo);
|
||||
void removed(ConferenceInfoCore *confInfo);
|
||||
|
||||
void lCancelConferenceInfo();
|
||||
void lDeleteConferenceInfo(); // Remove completly this conference info from DB
|
||||
|
|
|
|||
|
|
@ -58,20 +58,22 @@ void ConferenceInfoModel::setConferenceScheduler(const std::shared_ptr<Conferenc
|
|||
mConferenceSchedulerModel->removeListener();
|
||||
}
|
||||
mConferenceSchedulerModel = model;
|
||||
connect(mConferenceSchedulerModel.get(), &ConferenceSchedulerModel::stateChanged,
|
||||
[this](linphone::ConferenceScheduler::State state) {
|
||||
if (mConferenceSchedulerModel->getConferenceInfo())
|
||||
mConferenceInfo = mConferenceSchedulerModel->getConferenceInfo()->clone();
|
||||
if (state == linphone::ConferenceScheduler::State::Ready && mInviteEnabled) {
|
||||
auto params = CoreModel::getInstance()->getCore()->createDefaultChatRoomParams();
|
||||
// TODO : wait for new sdk api to send the invitations again
|
||||
// mConferenceSchedulerModel->getMonitor()->sendInvitations(params);
|
||||
}
|
||||
emit schedulerStateChanged(state);
|
||||
});
|
||||
connect(mConferenceSchedulerModel.get(), &ConferenceSchedulerModel::invitationsSent, this,
|
||||
&ConferenceInfoModel::invitationsSent);
|
||||
mConferenceSchedulerModel->setSelf(mConferenceSchedulerModel);
|
||||
if (mConferenceSchedulerModel) {
|
||||
connect(mConferenceSchedulerModel.get(), &ConferenceSchedulerModel::stateChanged,
|
||||
[this](linphone::ConferenceScheduler::State state) {
|
||||
if (mConferenceSchedulerModel->getConferenceInfo())
|
||||
mConferenceInfo = mConferenceSchedulerModel->getConferenceInfo()->clone();
|
||||
if (state == linphone::ConferenceScheduler::State::Ready && mInviteEnabled) {
|
||||
auto params = CoreModel::getInstance()->getCore()->createDefaultChatRoomParams();
|
||||
// TODO : wait for new sdk api to send the invitations again
|
||||
// mConferenceSchedulerModel->getMonitor()->sendInvitations(params);
|
||||
}
|
||||
emit schedulerStateChanged(state);
|
||||
});
|
||||
connect(mConferenceSchedulerModel.get(), &ConferenceSchedulerModel::invitationsSent, this,
|
||||
&ConferenceInfoModel::invitationsSent);
|
||||
mConferenceSchedulerModel->setSelf(mConferenceSchedulerModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -275,7 +275,7 @@ AbstractMainPage {
|
|||
} else {
|
||||
meetingSetup.conferenceInfoGui.core.save()
|
||||
mainWindow.showLoadingPopup(qsTr("Création de la réunion en cours ..."), true, function () {
|
||||
leftPanelStackView.pop()
|
||||
meetingSetup.conferenceInfoGui.core.cancelCreation()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue