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() {
|
void ConferenceInfoCore::save() {
|
||||||
mustBeInMainThread(getClassName() + "::save()");
|
mustBeInMainThread(getClassName() + "::save()");
|
||||||
ConferenceInfoCore *thisCopy = new ConferenceInfoCore(*this); // Pointer to avoid multiple copies in lambdas
|
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
|
mConfInfoModelConnection->invokeToModel([this, thisCopy]() { // Copy values to avoid concurrency
|
||||||
mustBeInLinphoneThread(getClassName() + "::save()");
|
mustBeInLinphoneThread(getClassName() + "::save()");
|
||||||
thisCopy->writeIntoModel(mConferenceInfoModel);
|
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) {
|
void ConferenceInfoCore::onInvitationsSent(const std::list<std::shared_ptr<linphone::Address>> &failedInvitations) {
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,7 @@ public:
|
||||||
|
|
||||||
Q_INVOKABLE void save();
|
Q_INVOKABLE void save();
|
||||||
Q_INVOKABLE void undo();
|
Q_INVOKABLE void undo();
|
||||||
|
Q_INVOKABLE void cancelCreation();
|
||||||
|
|
||||||
virtual void onInvitationsSent(const std::list<std::shared_ptr<linphone::Address>> &failedInvitations);
|
virtual void onInvitationsSent(const std::list<std::shared_ptr<linphone::Address>> &failedInvitations);
|
||||||
|
|
||||||
|
|
@ -153,7 +154,7 @@ signals:
|
||||||
void saveFailed();
|
void saveFailed();
|
||||||
|
|
||||||
void invitationsSent();
|
void invitationsSent();
|
||||||
void removed(ConferenceInfoCore* confInfo);
|
void removed(ConferenceInfoCore *confInfo);
|
||||||
|
|
||||||
void lCancelConferenceInfo();
|
void lCancelConferenceInfo();
|
||||||
void lDeleteConferenceInfo(); // Remove completly this conference info from DB
|
void lDeleteConferenceInfo(); // Remove completly this conference info from DB
|
||||||
|
|
|
||||||
|
|
@ -58,20 +58,22 @@ void ConferenceInfoModel::setConferenceScheduler(const std::shared_ptr<Conferenc
|
||||||
mConferenceSchedulerModel->removeListener();
|
mConferenceSchedulerModel->removeListener();
|
||||||
}
|
}
|
||||||
mConferenceSchedulerModel = model;
|
mConferenceSchedulerModel = model;
|
||||||
connect(mConferenceSchedulerModel.get(), &ConferenceSchedulerModel::stateChanged,
|
if (mConferenceSchedulerModel) {
|
||||||
[this](linphone::ConferenceScheduler::State state) {
|
connect(mConferenceSchedulerModel.get(), &ConferenceSchedulerModel::stateChanged,
|
||||||
if (mConferenceSchedulerModel->getConferenceInfo())
|
[this](linphone::ConferenceScheduler::State state) {
|
||||||
mConferenceInfo = mConferenceSchedulerModel->getConferenceInfo()->clone();
|
if (mConferenceSchedulerModel->getConferenceInfo())
|
||||||
if (state == linphone::ConferenceScheduler::State::Ready && mInviteEnabled) {
|
mConferenceInfo = mConferenceSchedulerModel->getConferenceInfo()->clone();
|
||||||
auto params = CoreModel::getInstance()->getCore()->createDefaultChatRoomParams();
|
if (state == linphone::ConferenceScheduler::State::Ready && mInviteEnabled) {
|
||||||
// TODO : wait for new sdk api to send the invitations again
|
auto params = CoreModel::getInstance()->getCore()->createDefaultChatRoomParams();
|
||||||
// mConferenceSchedulerModel->getMonitor()->sendInvitations(params);
|
// TODO : wait for new sdk api to send the invitations again
|
||||||
}
|
// mConferenceSchedulerModel->getMonitor()->sendInvitations(params);
|
||||||
emit schedulerStateChanged(state);
|
}
|
||||||
});
|
emit schedulerStateChanged(state);
|
||||||
connect(mConferenceSchedulerModel.get(), &ConferenceSchedulerModel::invitationsSent, this,
|
});
|
||||||
&ConferenceInfoModel::invitationsSent);
|
connect(mConferenceSchedulerModel.get(), &ConferenceSchedulerModel::invitationsSent, this,
|
||||||
mConferenceSchedulerModel->setSelf(mConferenceSchedulerModel);
|
&ConferenceInfoModel::invitationsSent);
|
||||||
|
mConferenceSchedulerModel->setSelf(mConferenceSchedulerModel);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -275,7 +275,7 @@ AbstractMainPage {
|
||||||
} else {
|
} else {
|
||||||
meetingSetup.conferenceInfoGui.core.save()
|
meetingSetup.conferenceInfoGui.core.save()
|
||||||
mainWindow.showLoadingPopup(qsTr("Création de la réunion en cours ..."), true, function () {
|
mainWindow.showLoadingPopup(qsTr("Création de la réunion en cours ..."), true, function () {
|
||||||
leftPanelStackView.pop()
|
meetingSetup.conferenceInfoGui.core.cancelCreation()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue