mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-05-07 14:44:01 +00:00
Fix double popup on confirmation when reverting contact edition.
This commit is contained in:
parent
3a7f494473
commit
5c5bbbd343
6 changed files with 27 additions and 13 deletions
|
|
@ -317,6 +317,15 @@ void TimelineListModel::removeChatRoomModel(std::shared_ptr<ChatRoomModel> model
|
|||
}
|
||||
}
|
||||
|
||||
void TimelineListModel::select(ChatRoomModel * chatRoomModel){
|
||||
if(chatRoomModel) {
|
||||
auto timeline = getTimeline(chatRoomModel->getChatRoom(), false);
|
||||
if(timeline){
|
||||
timeline->setSelected(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TimelineListModel::onChatRoomStateChanged(const std::shared_ptr<linphone::ChatRoom> &chatRoom,linphone::ChatRoom::State state){
|
||||
if( state == linphone::ChatRoom::State::Created
|
||||
&& !getTimeline(chatRoom, false)){// Create a new Timeline if needed
|
||||
|
|
|
|||
|
|
@ -54,6 +54,8 @@ public:
|
|||
// Remove a chatroom
|
||||
Q_INVOKABLE void remove (TimelineModel *importer);
|
||||
void remove(std::shared_ptr<TimelineModel> model);
|
||||
|
||||
Q_INVOKABLE void select(ChatRoomModel * chatRoomModel);
|
||||
int mSelectedCount;
|
||||
|
||||
bool mAutoSelectAfterCreation = false;// Request to select the next chat room after creation
|
||||
|
|
|
|||
|
|
@ -169,14 +169,16 @@ ColumnLayout {
|
|||
relativeY: infoBar.height
|
||||
|
||||
sipAddresses: _contact ? _contact.vcard.sipAddresses : [ contactEdit.sipAddress ]
|
||||
|
||||
|
||||
onSipAddressClicked: {
|
||||
var entry = CallsListModel.createChatRoom( "", false, [sipAddress], true )
|
||||
if(entry)
|
||||
var entry = CallsListModel.createChatRoom( "", false, [sipAddress], false )
|
||||
if(entry){
|
||||
window.setView('Conversation', {
|
||||
chatRoomModel:entry.chatRoomModel
|
||||
|
||||
chatRoomModel:entry.chatRoomModel
|
||||
}, function(){
|
||||
TimelineListModel.select(entry.chatRoomModel)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -58,8 +58,8 @@ function unlockView () {
|
|||
window._lockedInfo = undefined
|
||||
}
|
||||
|
||||
function setView (view, props) {
|
||||
function apply (view, props, showWindow) {
|
||||
function setView (view, props, callback) {
|
||||
function apply (view, props, showWindow, callback) {
|
||||
if(showWindow)
|
||||
Linphone.App.smartShowWindow(window)
|
||||
|
||||
|
|
@ -68,20 +68,21 @@ function setView (view, props) {
|
|||
updateSelectedEntry(view, props)
|
||||
window._currentView = view
|
||||
item.contentLoader.setSource(view + '.qml', props || {})
|
||||
if(callback)
|
||||
callback()
|
||||
}
|
||||
|
||||
var lockedInfo = window._lockedInfo
|
||||
if (!lockedInfo) {
|
||||
apply(view, props, false)
|
||||
apply(view, props, false, callback)
|
||||
return
|
||||
}
|
||||
|
||||
window.attachVirtualWindow(Utils.buildDialogUri('ConfirmDialog'), {
|
||||
descriptionText: lockedInfo.descriptionText,
|
||||
}, function (status) {
|
||||
if (status) {
|
||||
unlockView()
|
||||
apply(view, props, true)
|
||||
apply(view, props, true, callback)
|
||||
} else {
|
||||
updateSelectedEntry(window._currentView, props)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ ApplicationWindow {
|
|||
Logic.unlockView()
|
||||
}
|
||||
|
||||
function setView (view, props) {
|
||||
Logic.setView(view, props)
|
||||
function setView (view, props, callback) {
|
||||
Logic.setView(view, props, callback)
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 4fc3a75e0ec829ebc5e042f1f606c59bb8cab35b
|
||||
Subproject commit 9ce33db5f105dc81578faae25c2bdd66f857361b
|
||||
Loading…
Add table
Reference in a new issue