From dbf63b0c3e4358383443e3fa4a17bf1cdb6fe522 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 2 Aug 2023 18:09:45 +0200 Subject: [PATCH] Fix security level synchronization in chat rooms. Fix hidden admin status on first group chat creation. Fix Magic search that could retrieve addresses with Gruu. Fix debug outputs on missing colors. Fix click area in call list. Fix some missing items in qml. --- .../src/components/call/CallModel.cpp | 7 +++ .../src/components/call/CallModel.hpp | 1 + .../components/chat-room/ChatRoomListener.cpp | 28 +++++++++ .../components/chat-room/ChatRoomModel.cpp | 21 +++++-- .../components/chat-room/ChatRoomModel.hpp | 5 +- .../components/search/SearchResultModel.cpp | 1 + .../ui/modules/Common/Form/ActionButton.qml | 59 ++++++++++--------- .../modules/Linphone/Calls/CallControls.qml | 1 + .../ui/views/App/Calls/CallsWindow.qml | 4 +- .../ui/views/App/Styles/Calls/IncallStyle.qml | 2 + 10 files changed, 93 insertions(+), 36 deletions(-) diff --git a/linphone-app/src/components/call/CallModel.cpp b/linphone-app/src/components/call/CallModel.cpp index a19f1e699..9a1ac1bb9 100644 --- a/linphone-app/src/components/call/CallModel.cpp +++ b/linphone-app/src/components/call/CallModel.cpp @@ -63,6 +63,7 @@ CallModel::CallModel (shared_ptr call){ connect(this, &CallModel::callIdChanged, this, &CallModel::chatRoomModelChanged);// When the call Id change, the chat room change. connect(this, &CallModel::encryptionChanged, this, &CallModel::securityUpdated); connect(this, &CallModel::isPQZrtpChanged, this, &CallModel::securityUpdated); + connect(this, &CallModel::securityUpdated, this, &CallModel::onSecurityUpdated); mCall = call; if(mCall) @@ -1024,6 +1025,12 @@ void CallModel::onParticipantAdminStatusChanged(const std::shared_ptrupdateSecurityLevel(); +} + void CallModel::setRemoteDisplayName(const std::string& name){ mRemoteAddress->setDisplayName(name); if(mCall) { diff --git a/linphone-app/src/components/call/CallModel.hpp b/linphone-app/src/components/call/CallModel.hpp index 95ea3574e..c8b8dea6b 100644 --- a/linphone-app/src/components/call/CallModel.hpp +++ b/linphone-app/src/components/call/CallModel.hpp @@ -209,6 +209,7 @@ public slots: void onRemoteRecording(const std::shared_ptr & call, bool recording); void onChatRoomInitialized(int state); void onParticipantAdminStatusChanged(const std::shared_ptr & participant); + void onSecurityUpdated(); signals: void meAdminChanged(); diff --git a/linphone-app/src/components/chat-room/ChatRoomListener.cpp b/linphone-app/src/components/chat-room/ChatRoomListener.cpp index 78f233619..c05a56dc5 100644 --- a/linphone-app/src/components/chat-room/ChatRoomListener.cpp +++ b/linphone-app/src/components/chat-room/ChatRoomListener.cpp @@ -33,86 +33,114 @@ ChatRoomListener::~ChatRoomListener(){ //--------------------------------------------------------------------------------------------------- void ChatRoomListener::onIsComposingReceived(const std::shared_ptr & chatRoom, const std::shared_ptr & remoteAddress, bool isComposing){ + //qDebug() << "ChatRoomListener::onIsComposingReceived"; emit isComposingReceived(chatRoom, remoteAddress, isComposing); } void ChatRoomListener::onMessageReceived(const std::shared_ptr & chatRoom, const std::shared_ptr & message){ + //qDebug() << "ChatRoomListener::onMessageReceived"; emit messageReceived(chatRoom, message); } void ChatRoomListener::onMessagesReceived(const std::shared_ptr & chatRoom, const std::list> & messages){ + //qDebug() << "ChatRoomListener::onMessagesReceived"; emit messagesReceived(chatRoom, messages); } void ChatRoomListener::onNewEvent(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onNewEvent"; emit newEvent(chatRoom, eventLog); } void ChatRoomListener::onNewEvents(const std::shared_ptr & chatRoom, const std::list> & eventLogs){ + //qDebug() << "ChatRoomListener::onNewEvents"; emit newEvents(chatRoom, eventLogs); } void ChatRoomListener::onChatMessageReceived(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onChatMessageReceived"; emit chatMessageReceived(chatRoom, eventLog); } void ChatRoomListener::onChatMessagesReceived(const std::shared_ptr & chatRoom, const std::list> & eventLogs){ + //qDebug() << "ChatRoomListener::onChatMessagesReceived"; emit chatMessagesReceived(chatRoom, eventLogs); } void ChatRoomListener::onChatMessageSending(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onChatMessageSending"; emit chatMessageSending(chatRoom, eventLog); } void ChatRoomListener::onChatMessageSent(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onChatMessageSent"; emit chatMessageSent(chatRoom, eventLog); } void ChatRoomListener::onParticipantAdded(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onParticipantAdded"; emit participantAdded(chatRoom, eventLog); } void ChatRoomListener::onParticipantRemoved(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onParticipantRemoved"; emit participantRemoved(chatRoom, eventLog); } void ChatRoomListener::onParticipantAdminStatusChanged(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onParticipantAdminStatusChanged"; emit participantAdminStatusChanged(chatRoom, eventLog); } void ChatRoomListener::onStateChanged(const std::shared_ptr & chatRoom, linphone::ChatRoom::State newState){ + //qDebug() << "ChatRoomListener::onStateChanged"; emit stateChanged(chatRoom, newState); } void ChatRoomListener::onSecurityEvent(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onSecurityEvent"; emit securityEvent(chatRoom, eventLog); } void ChatRoomListener::onSubjectChanged(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onSubjectChanged"; emit subjectChanged(chatRoom, eventLog); } void ChatRoomListener::onUndecryptableMessageReceived(const std::shared_ptr & chatRoom, const std::shared_ptr & message){ + //qDebug() << "ChatRoomListener::onUndecryptableMessageReceived"; emit undecryptableMessageReceived(chatRoom, message); } void ChatRoomListener::onParticipantDeviceAdded(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onParticipantDeviceAdded"; emit participantDeviceAdded(chatRoom, eventLog); } void ChatRoomListener::onParticipantDeviceRemoved(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onParticipantDeviceRemoved"; emit participantDeviceRemoved(chatRoom, eventLog); } void ChatRoomListener::onConferenceJoined(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onConferenceJoined"; emit conferenceJoined(chatRoom, eventLog); } void ChatRoomListener::onConferenceLeft(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onConferenceLeft"; emit conferenceLeft(chatRoom, eventLog); } void ChatRoomListener::onEphemeralEvent(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onEphemeralEvent"; emit ephemeralEvent(chatRoom, eventLog); } void ChatRoomListener::onEphemeralMessageTimerStarted(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onEphemeralMessageTimerStarted"; emit ephemeralMessageTimerStarted(chatRoom, eventLog); } void ChatRoomListener::onEphemeralMessageDeleted(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ + //qDebug() << "ChatRoomListener::onEphemeralMessageDeleted"; emit ephemeralMessageDeleted(chatRoom, eventLog); } void ChatRoomListener::onConferenceAddressGeneration(const std::shared_ptr & chatRoom){ + //qDebug() << "ChatRoomListener::onConferenceAddressGeneration"; emit conferenceAddressGeneration(chatRoom); } void ChatRoomListener::onParticipantRegistrationSubscriptionRequested(const std::shared_ptr & chatRoom, const std::shared_ptr & participantAddress){ + //qDebug() << "ChatRoomListener::onParticipantRegistrationSubscriptionRequested"; emit participantRegistrationSubscriptionRequested(chatRoom, participantAddress); } void ChatRoomListener::onParticipantRegistrationUnsubscriptionRequested(const std::shared_ptr & chatRoom, const std::shared_ptr & participantAddress){ + //qDebug() << "ChatRoomListener::onParticipantRegistrationUnsubscriptionRequested"; emit participantRegistrationUnsubscriptionRequested(chatRoom, participantAddress); } void ChatRoomListener::onChatMessageShouldBeStored(const std::shared_ptr & chatRoom, const std::shared_ptr & message){ + //qDebug() << "ChatRoomListener::onChatMessageShouldBeStored"; emit chatMessageShouldBeStored(chatRoom, message); } void ChatRoomListener::onChatMessageParticipantImdnStateChanged(const std::shared_ptr & chatRoom, const std::shared_ptr & message, const std::shared_ptr & state){ + //qDebug() << "ChatRoomListener::onChatMessageParticipantImdnStateChanged"; emit chatMessageParticipantImdnStateChanged(chatRoom, message, state); } diff --git a/linphone-app/src/components/chat-room/ChatRoomModel.cpp b/linphone-app/src/components/chat-room/ChatRoomModel.cpp index 051a9ec4c..0f49f8166 100644 --- a/linphone-app/src/components/chat-room/ChatRoomModel.cpp +++ b/linphone-app/src/components/chat-room/ChatRoomModel.cpp @@ -172,7 +172,7 @@ ChatRoomModel::ChatRoomModel (const std::shared_ptr& chatRoo } } setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(std::max(mChatRoom->getLastUpdateTime(), callDate )*1000)); - + mSecurityLevel = (int)mChatRoom->getSecurityLevel(); }else mParticipantListModel = nullptr; } @@ -444,8 +444,20 @@ bool ChatRoomModel::isSecure() const{ || mChatRoom->getSecurityLevel() == linphone::ChatRoom::SecurityLevel::Safe); } -int ChatRoomModel::getSecurityLevel() const{ - return mChatRoom ? (int)mChatRoom->getSecurityLevel() : 0; +int ChatRoomModel::getSecurityLevel() const { + return mSecurityLevel; +} + +void ChatRoomModel::updateSecurityLevel(){ + if(mChatRoom ) { + setSecurityLevel((int)mChatRoom->getSecurityLevel()); + } +} +void ChatRoomModel::setSecurityLevel(int level){ + if( mSecurityLevel != level){ + mSecurityLevel = level; + emit securityLevelChanged(mSecurityLevel); + } } bool ChatRoomModel::isGroupEnabled() const{ @@ -1276,7 +1288,7 @@ void ChatRoomModel::onSecurityEvent(const std::shared_ptr & if( e != events.end() ) insertNotice(*e); updateLastUpdateTime(); - emit securityLevelChanged((int)chatRoom->getSecurityLevel()); + updateSecurityLevel(); } void ChatRoomModel::onSubjectChanged(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog) { auto events = chatRoom->getHistoryEvents(0); @@ -1318,6 +1330,7 @@ void ChatRoomModel::onConferenceJoined(const std::shared_ptr emit usernameChanged(); emit conferenceJoined(eventLog); emit isReadOnlyChanged(); + emit isMeAdminChanged(); } void ChatRoomModel::onConferenceLeft(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){ diff --git a/linphone-app/src/components/chat-room/ChatRoomModel.hpp b/linphone-app/src/components/chat-room/ChatRoomModel.hpp index 8375be467..ebc0ca34d 100644 --- a/linphone-app/src/components/chat-room/ChatRoomModel.hpp +++ b/linphone-app/src/components/chat-room/ChatRoomModel.hpp @@ -63,7 +63,7 @@ public: Q_PROPERTY(QDateTime lastUpdateTime MEMBER mLastUpdateTime WRITE setLastUpdateTime NOTIFY lastUpdateTimeChanged) Q_PROPERTY(int unreadMessagesCount READ getUnreadMessagesCount NOTIFY unreadMessagesCountChanged) - Q_PROPERTY(int securityLevel READ getSecurityLevel NOTIFY securityLevelChanged) + Q_PROPERTY(int securityLevel READ getSecurityLevel WRITE setSecurityLevel NOTIFY securityLevelChanged) Q_PROPERTY(bool groupEnabled READ isGroupEnabled NOTIFY groupEnabledChanged) Q_PROPERTY(bool isConference READ isConference CONSTANT) Q_PROPERTY(bool isOneToOne READ isOneToOne CONSTANT) @@ -133,6 +133,8 @@ public: bool markAsReadEnabled() const; Q_INVOKABLE bool isSecure() const; int getSecurityLevel() const; + void updateSecurityLevel(); + void setSecurityLevel(int level); bool isGroupEnabled() const; bool isConference() const; bool isOneToOne() const; @@ -318,6 +320,7 @@ private: QSharedPointer mUnreadMessageNotice; int mBindingCalls = 0; bool mPostModelChangedEvents = true; + int mSecurityLevel = 0; QWeakPointer mSelf; }; diff --git a/linphone-app/src/components/search/SearchResultModel.cpp b/linphone-app/src/components/search/SearchResultModel.cpp index c0ab8ef25..49468c6b3 100644 --- a/linphone-app/src/components/search/SearchResultModel.cpp +++ b/linphone-app/src/components/search/SearchResultModel.cpp @@ -33,6 +33,7 @@ SearchResultModel::SearchResultModel(std::shared_ptr lin mAddress = address->clone(); else if(linphoneFriend && linphoneFriend->getAddress()) mAddress = linphoneFriend->getAddress()->clone(); + mAddress->clean(); } QString SearchResultModel::getAddressString() const{ diff --git a/linphone-app/ui/modules/Common/Form/ActionButton.qml b/linphone-app/ui/modules/Common/Form/ActionButton.qml index 7abe0c588..8262bae61 100644 --- a/linphone-app/ui/modules/Common/Form/ActionButton.qml +++ b/linphone-app/ui/modules/Common/Form/ActionButton.qml @@ -115,9 +115,9 @@ Item { // } // return wrappedButton.icon; } - function getColor(color, defaultColor, debugVar){ - if(color) - return color + function getColor(colorModel, defaultColor, debugVar){ + if(colorModel && colorModel.color) + return colorModel.color else{ console.warn("No color defined for :"+debugVar+ " on "+_getIcon()) return defaultColor @@ -129,14 +129,14 @@ Item { //if(wrappedButton.icon == '') //return getColor(wrappedButton.colorSet.backgroundNormalColor, defaultColor, 'backgroundNormalColor') if (wrappedButton.updating || wrappedButton.toggled) - return getColor(wrappedButton.colorSet.backgroundUpdatingColor.color, defaultColor, 'backgroundUpdatingColor') + return getColor(wrappedButton.colorSet.backgroundUpdatingColor, defaultColor, 'backgroundUpdatingColor') if (!useStates) - return getColor(wrappedButton.colorSet.backgroundNormalColor.color, defaultColor, 'backgroundNormalColor') + return getColor(wrappedButton.colorSet.backgroundNormalColor, defaultColor, 'backgroundNormalColor') if (!wrappedButton.enabled) - return getColor(wrappedButton.colorSet.backgroundDisabledColor.color, defaultColor, 'backgroundDisabledColor') - return button.down ? getColor(wrappedButton.colorSet.backgroundPressedColor.color, defaultColor, 'backgroundPressedColor') - : (button.hovered ? getColor(wrappedButton.colorSet.backgroundHoveredColor.color, defaultColor, 'backgroundHoveredColor') - : getColor(wrappedButton.colorSet.backgroundNormalColor.color, defaultColor, 'backgroundNormalColor')) + return getColor(wrappedButton.colorSet.backgroundDisabledColor, defaultColor, 'backgroundDisabledColor') + return button.down ? getColor(wrappedButton.colorSet.backgroundPressedColor, defaultColor, 'backgroundPressedColor') + : (button.hovered ? getColor(wrappedButton.colorSet.backgroundHoveredColor, defaultColor, 'backgroundHoveredColor') + : getColor(wrappedButton.colorSet.backgroundNormalColor, defaultColor, 'backgroundNormalColor')) }else return defaultColor } @@ -144,16 +144,17 @@ Item { var defaultColor = 'black' if(isCustom){ //if(wrappedButton.icon == '') - //return getColor(wrappedButton.colorSet.foregroundNormalColor.color, defaultColor, 'foregroundNormalColor') + //return getColor(wrappedButton.colorSet.foregroundNormalColor, defaultColor, 'foregroundNormalColor') if (wrappedButton.updating || wrappedButton.toggled) - return getColor(wrappedButton.colorSet.foregroundUpdatingColor.color, defaultColor, 'foregroundUpdatingColor') + return getColor(wrappedButton.colorSet.foregroundUpdatingColor, defaultColor, 'foregroundUpdatingColor') if (!useStates) - return getColor(wrappedButton.colorSet.foregroundNormalColor.color, defaultColor, 'foregroundNormalColor') - if (!wrappedButton.enabled) - return getColor(wrappedButton.colorSet.foregroundDisabledColor.color, defaultColor, 'foregroundDisabledColor') - return button.down ? getColor(wrappedButton.colorSet.foregroundPressedColor.color, defaultColor, 'foregroundPressedColor') - : (button.hovered ? getColor(wrappedButton.colorSet.foregroundHoveredColor.color, defaultColor, 'foregroundHoveredColor') - : getColor(wrappedButton.colorSet.foregroundNormalColor.color, defaultColor, 'foregroundNormalColor')) + return getColor(wrappedButton.colorSet.foregroundNormalColor, defaultColor, 'foregroundNormalColor') + if (!wrappedButton.enabled){ + return getColor(wrappedButton.colorSet.foregroundDisabledColor, defaultColor, 'foregroundDisabledColor') + } + return button.down ? getColor(wrappedButton.colorSet.foregroundPressedColor, defaultColor, 'foregroundPressedColor') + : (button.hovered ? getColor(wrappedButton.colorSet.foregroundHoveredColor, defaultColor, 'foregroundHoveredColor') + : getColor(wrappedButton.colorSet.foregroundNormalColor, defaultColor, 'foregroundNormalColor')) }else return defaultColor } @@ -163,14 +164,14 @@ Item { //if(wrappedButton.icon == '') //return getColor(wrappedButton.colorSet.backgroundHiddenPartNormalColor, defaultColor, 'backgroundHiddenPartNormalColor') if (wrappedButton.updating || wrappedButton.toggled) - return getColor(wrappedButton.colorSet.backgroundHiddenPartUpdatingColor.color, defaultColor, 'backgroundHiddenPartUpdatingColor') + return getColor(wrappedButton.colorSet.backgroundHiddenPartUpdatingColor, defaultColor, 'backgroundHiddenPartUpdatingColor') if (!useStates) - return getColor(wrappedButton.colorSet.backgroundHiddenPartNormalColor.color, defaultColor, 'backgroundHiddenPartNormalColor') + return getColor(wrappedButton.colorSet.backgroundHiddenPartNormalColor, defaultColor, 'backgroundHiddenPartNormalColor') if (!wrappedButton.enabled) - return getColor(wrappedButton.colorSet.backgroundHiddenPartDisabledColor.color, defaultColor, 'backgroundHiddenPartDisabledColor') - return button.down ? getColor(wrappedButton.colorSet.backgroundHiddenPartPressedColor.color, defaultColor, 'backgroundHiddenPartPressedColor') - : (button.hovered ? getColor(wrappedButton.colorSet.backgroundHiddenPartHoveredColor.color, defaultColor, 'backgroundHiddenPartHoveredColor') - : getColor(wrappedButton.colorSet.backgroundHiddenPartNormalColor.color, defaultColor, 'backgroundHiddenPartNormalColor')) + return getColor(wrappedButton.colorSet.backgroundHiddenPartDisabledColor, defaultColor, 'backgroundHiddenPartDisabledColor') + return button.down ? getColor(wrappedButton.colorSet.backgroundHiddenPartPressedColor, defaultColor, 'backgroundHiddenPartPressedColor') + : (button.hovered ? getColor(wrappedButton.colorSet.backgroundHiddenPartHoveredColor, defaultColor, 'backgroundHiddenPartHoveredColor') + : getColor(wrappedButton.colorSet.backgroundHiddenPartNormalColor, defaultColor, 'backgroundHiddenPartNormalColor')) }else return defaultColor } @@ -180,14 +181,14 @@ Item { //if(wrappedButton.icon == '') //return getColor(wrappedButton.colorSet.foregroundHiddenPartNormalColor, defaultColor, 'foregroundHiddenPartNormalColor') if (wrappedButton.updating || wrappedButton.toggled) - return getColor(wrappedButton.colorSet.foregroundHiddenPartUpdatingColor.color, defaultColor, 'foregroundHiddenPartUpdatingColor') + return getColor(wrappedButton.colorSet.foregroundHiddenPartUpdatingColor, defaultColor, 'foregroundHiddenPartUpdatingColor') if (!useStates) - return getColor(wrappedButton.colorSet.foregroundHiddenPartNormalColor.color, defaultColor, 'foregroundHiddenPartNormalColor') + return getColor(wrappedButton.colorSet.foregroundHiddenPartNormalColor, defaultColor, 'foregroundHiddenPartNormalColor') if (!wrappedButton.enabled) - return getColor(wrappedButton.colorSet.foregroundHiddenPartDisabledColor.color, defaultColor, 'foregroundHiddenPartDisabledColor') - return button.down ? getColor(wrappedButton.colorSet.foregroundHiddenPartPressedColor.color, defaultColor, 'foregroundHiddenPartPressedColor') - : (button.hovered ? getColor(wrappedButton.colorSet.foregroundHiddenPartHoveredColor.color, defaultColor, 'foregroundHiddenPartHoveredColor') - : getColor(wrappedButton.colorSet.foregroundHiddenPartNormalColor.color, defaultColor, 'foregroundHiddenPartNormalColor')) + return getColor(wrappedButton.colorSet.foregroundHiddenPartDisabledColor, defaultColor, 'foregroundHiddenPartDisabledColor') + return button.down ? getColor(wrappedButton.colorSet.foregroundHiddenPartPressedColor, defaultColor, 'foregroundHiddenPartPressedColor') + : (button.hovered ? getColor(wrappedButton.colorSet.foregroundHiddenPartHoveredColor, defaultColor, 'foregroundHiddenPartHoveredColor') + : getColor(wrappedButton.colorSet.foregroundHiddenPartNormalColor, defaultColor, 'foregroundHiddenPartNormalColor')) }else return defaultColor } diff --git a/linphone-app/ui/modules/Linphone/Calls/CallControls.qml b/linphone-app/ui/modules/Linphone/Calls/CallControls.qml index 260207a14..432b16bea 100644 --- a/linphone-app/ui/modules/Linphone/Calls/CallControls.qml +++ b/linphone-app/ui/modules/Linphone/Calls/CallControls.qml @@ -70,6 +70,7 @@ Rectangle { displayUnreadMessageCount: true entry: callControls.entry + onAvatarClicked: callControls.clicked() } Item { diff --git a/linphone-app/ui/views/App/Calls/CallsWindow.qml b/linphone-app/ui/views/App/Calls/CallsWindow.qml index 1b198a8dd..e41c07fc5 100644 --- a/linphone-app/ui/views/App/Calls/CallsWindow.qml +++ b/linphone-app/ui/views/App/Calls/CallsWindow.qml @@ -225,8 +225,8 @@ Window { Connections { target: SettingsModel - onStandardChatEnabledChanged: if(!chatRoomModel.haveEncryption) proxyModel.setEntryTypeFilter(status ? ChatRoomModel.GenericEntry : ChatRoomModel.CallEntry | ChatRoomModel.NoticeEntry) - onSecureChatEnabledChanged: if(chatRoomModel.haveEncryption) proxyModel.setEntryTypeFilter(SettingsModel.secureChatEnabled ? ChatRoomModel.GenericEntry : ChatRoomModel.CallEntry | ChatRoomModel.NoticeEntry) + onStandardChatEnabledChanged: if(chatRoomModel && !chatRoomModel.haveEncryption) proxyModel.setEntryTypeFilter(status ? ChatRoomModel.GenericEntry : ChatRoomModel.CallEntry | ChatRoomModel.NoticeEntry) + onSecureChatEnabledChanged: if(chatRoomModel && chatRoomModel.haveEncryption) proxyModel.setEntryTypeFilter(SettingsModel.secureChatEnabled ? ChatRoomModel.GenericEntry : ChatRoomModel.CallEntry | ChatRoomModel.NoticeEntry) } } } diff --git a/linphone-app/ui/views/App/Styles/Calls/IncallStyle.qml b/linphone-app/ui/views/App/Styles/Calls/IncallStyle.qml index c6f8b9a9d..4071a3e6b 100644 --- a/linphone-app/ui/views/App/Styles/Calls/IncallStyle.qml +++ b/linphone-app/ui/views/App/Styles/Calls/IncallStyle.qml @@ -57,10 +57,12 @@ QtObject { property string icon : 'play_custom' property string name : 'paused_play' property var backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_p_b_bg') + property var backgroundDisabledColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_d', icon, 's_p_b_bg') property var backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg') property var backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 's_n_b_bg') property var backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_u', icon, 's_p_b_bg') property var foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_p_b_fg') + property var foregroundDisabledColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_d', icon, 's_p_b_fg') property var foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 's_h_b_fg') property var foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's_n_b_fg') property var foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_u', icon, 's_p_b_fg')