From dd39203d47a4bc3aaac15adfe43fd1c155942126 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 2 Nov 2022 16:46:06 +0100 Subject: [PATCH] Change group chats and conference icons. Change color on selected call (call list). Change burger icon into dot menu in calls list. Change conversation icon to match timeline. Merge calls into conference. Fix twin participants on invitation. --- .../assets/images/chat_room_custom.svg | 75 ++++++---------- .../assets/images/conference_merge_custom.svg | 67 ++++++++++++++ linphone-app/resources.qrc | 1 + .../src/components/call/CallModel.cpp | 13 ++- .../src/components/call/CallModel.hpp | 2 + .../src/components/calls/CallsListModel.cpp | 90 ++++++++++++++++++- .../src/components/calls/CallsListModel.hpp | 6 ++ .../ParticipantDeviceListModel.cpp | 13 +++ .../modules/Linphone/Calls/CallControls.qml | 1 + .../ui/modules/Linphone/Calls/Calls.qml | 11 +-- .../ui/modules/Linphone/Contact/Avatar.qml | 7 +- .../ui/modules/Linphone/Contact/Contact.qml | 1 + .../Linphone/Styles/Calls/CallsStyle.qml | 5 +- .../Linphone/Styles/Contact/AvatarStyle.qml | 3 + .../Linphone/Styles/Contact/ContactStyle.qml | 1 + .../ui/views/App/Calls/CallsWindow.qml | 5 +- .../ui/views/App/Main/Conversation.qml | 15 +--- .../App/Styles/Calls/CallsWindowStyle.qml | 8 +- linphone-sdk | 2 +- 19 files changed, 243 insertions(+), 83 deletions(-) create mode 100644 linphone-app/assets/images/conference_merge_custom.svg diff --git a/linphone-app/assets/images/chat_room_custom.svg b/linphone-app/assets/images/chat_room_custom.svg index 408e19619..a9d140c6d 100644 --- a/linphone-app/assets/images/chat_room_custom.svg +++ b/linphone-app/assets/images/chat_room_custom.svg @@ -3,16 +3,19 @@ width="80" height="80" viewBox="0 0 80 80" + fill="none" version="1.1" - id="svg21" + id="svg8" sodipodi:docname="chat_room_custom.svg" - inkscape:version="1.1 (c68e22c387, 2021-05-23)" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> + - - - - - + inkscape:current-layer="svg8" /> - - - - - - - - - - + id="g832" + transform="matrix(0.67345025,0,0,0.67345025,9.9999997,20)"> + + + diff --git a/linphone-app/assets/images/conference_merge_custom.svg b/linphone-app/assets/images/conference_merge_custom.svg new file mode 100644 index 000000000..8f195ab4b --- /dev/null +++ b/linphone-app/assets/images/conference_merge_custom.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + diff --git a/linphone-app/resources.qrc b/linphone-app/resources.qrc index d3d6ddeee..8cc39f5fa 100644 --- a/linphone-app/resources.qrc +++ b/linphone-app/resources.qrc @@ -62,6 +62,7 @@ assets/images/conference_audio_only_custom.svg assets/images/conference_layout_grid_custom.svg assets/images/conference_layout_active_speaker_custom.svg + assets/images/conference_merge_custom.svg assets/images/contact_add_custom.svg assets/images/contact_card_photo_custom.svg assets/images/contact_custom.svg diff --git a/linphone-app/src/components/call/CallModel.cpp b/linphone-app/src/components/call/CallModel.cpp index 093d3158d..63a8ed4a3 100644 --- a/linphone-app/src/components/call/CallModel.cpp +++ b/linphone-app/src/components/call/CallModel.cpp @@ -109,8 +109,10 @@ CallModel::CallModel (shared_ptr call){ if(mCall) { mRemoteAddress = mCall->getRemoteAddress()->clone(); - if(mCall->getConference()) + if(mCall->getConference()) { mConferenceModel = ConferenceModel::create(mCall->getConference()); + connect(mConferenceModel.get(), &ConferenceModel::participantAdminStatusChanged, this, &CallModel::onParticipantAdminStatusChanged); + } auto conferenceInfo = CoreManager::getInstance()->getCore()->findConferenceInformationFromUri(getConferenceAddress()); if( conferenceInfo ){ mConferenceInfoModel = ConferenceInfoModel::create(conferenceInfo); @@ -232,7 +234,8 @@ ConferenceInfoModel * CallModel::getConferenceInfoModel(){ QSharedPointer CallModel::getConferenceSharedModel(){ if(mCall->getConference() && !mConferenceModel){ - mConferenceModel = ConferenceModel::create(mCall->getConference()); + mConferenceModel = ConferenceModel::create(mCall->getConference()); + connect(mConferenceModel.get(), &ConferenceModel::participantAdminStatusChanged, this, &CallModel::onParticipantAdminStatusChanged); emit conferenceModelChanged(); } return mConferenceModel; @@ -977,6 +980,12 @@ void CallModel::onChatRoomInitialized(int state){ emit chatRoomModelChanged(); } +void CallModel::onParticipantAdminStatusChanged(const std::shared_ptr & participant){ + if(mConferenceModel && participant == mConferenceModel->getConference()->getMe()) { + emit meAdminChanged(); + } +} + 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 7138a000b..5c8976f97 100644 --- a/linphone-app/src/components/call/CallModel.hpp +++ b/linphone-app/src/components/call/CallModel.hpp @@ -200,8 +200,10 @@ public slots: void endCall(); void onRemoteRecording(const std::shared_ptr & call, bool recording); void onChatRoomInitialized(int state); + void onParticipantAdminStatusChanged(const std::shared_ptr & participant); signals: + void meAdminChanged(); void callErrorChanged (const QString &callError); void callIdChanged(); void isInConferenceChanged (bool status); diff --git a/linphone-app/src/components/calls/CallsListModel.cpp b/linphone-app/src/components/calls/CallsListModel.cpp index 72c53acc5..924960e97 100644 --- a/linphone-app/src/components/calls/CallsListModel.cpp +++ b/linphone-app/src/components/calls/CallsListModel.cpp @@ -69,6 +69,7 @@ CallsListModel::CallsListModel (QObject *parent) : ProxyListModel(parent) { mCoreHandlers.get(), &CoreHandlers::callStateChanged, this, &CallsListModel::handleCallStateChanged ); + connect(this, &CallsListModel::countChanged, this, &CallsListModel::canMergeCallsChanged); } CallModel *CallsListModel::findCallModelFromPeerAddress (const QString &peerAddress) const { @@ -372,15 +373,100 @@ void CallsListModel::prepareConferenceCall(ConferenceInfoModel * model){ app->smartShowWindow(app->getCallsWindow()); emit callConferenceAsked(model); } + int CallsListModel::addAllToConference(){ return CoreManager::getInstance()->getCore()->addAllToConference(); } + +void CallsListModel::mergeAll(){ + auto core = CoreManager::getInstance()->getCore(); + auto currentCalls = CoreManager::getInstance()->getCore()->getCalls(); + shared_ptr conference = core->getConference(); + + // Search a managable conference from calls + if(!conference){ + for(auto call : currentCalls){ + auto dbConference = call->getConference(); + if(dbConference && dbConference->getMe()->isAdmin()){ + conference = dbConference; + break; + } + } + } + + auto currentCall = CoreManager::getInstance()->getCore()->getCurrentCall(); + bool enablingVideo = false; + if( currentCall ) + enablingVideo = currentCall->getCurrentParams()->videoEnabled(); + if(!conference){ + auto parameters = core->createConferenceParams(conference); + + if(!CoreManager::getInstance()->getSettingsModel()->getVideoConferenceEnabled()) { + parameters->enableVideo(false); + parameters->setConferenceFactoryAddress(nullptr);// Do a local conference + parameters->setSubject("Local meeting"); + }else{ + parameters->enableVideo(enablingVideo); + parameters->setSubject("Meeting"); + } + conference = core->createConferenceWithParams(parameters); + } + + list> allLinphoneAddresses; + list> newCalls; + list> runningCallsToAdd; + + for(auto call : currentCalls){ + if(!call->getConference()){ + runningCallsToAdd.push_back(call); + } + } + +// 1) Add running calls + if( runningCallsToAdd.size() > 0){ + conference->addParticipants(runningCallsToAdd); + } + /* +// 2) Put in pause and remove all calls that are not in the conference list + for(const auto &call : CoreManager::getInstance()->getCore()->getCalls()){ + const std::string callAddress = call->getRemoteAddress()->asStringUriOnly(); + auto address = allLinphoneAddresses.begin(); + while(address != allLinphoneAddresses.end() && (*address)->asStringUriOnly() != callAddress) + ++address; + if(address == allLinphoneAddresses.end()){// Not in conference list : put in pause and remove it from conference if it's the case + if( call->getParams()->getLocalConferenceMode() ){// Remove conference if it is not yet requested + CoreManager::getInstance()->getCore()->removeFromConference(call); + }else + call->pause(); + } + }*/ +} // ----------------------------------------------------------------------------- int CallsListModel::getRunningCallsNumber () const { return CoreManager::getInstance()->getCore()->getCallsNb(); } +bool CallsListModel::canMergeCalls()const{ + auto calls = CoreManager::getInstance()->getCore()->getCalls(); + + bool mergableConference = false; + int mergableCalls = 0; + bool mergable = false; + for(auto itCall = calls.begin(); !mergable && itCall != calls.end() ; ++itCall ) { + auto conference = (*itCall)->getConference(); + if(conference){ + if( !mergableConference ) + mergableConference = (conference && conference->getMe()->isAdmin()); + }else{ + ++mergableCalls; + } + mergable = (mergableConference && mergableCalls>0) // A call can be merged into the conference + || mergableCalls>1;// 2 calls can be merged + } + return mergable; +} + void CallsListModel::terminateAllCalls () const { CoreManager::getInstance()->getCore()->terminateAllCalls(); } @@ -479,6 +565,8 @@ void CallsListModel::addCall (const shared_ptr &call) { qInfo() << QStringLiteral("Add call:") << callModel->getFullLocalAddress() << callModel->getFullPeerAddress(); App::getInstance()->getEngine()->setObjectOwnership(callModel.get(), QQmlEngine::CppOwnership); + connect(callModel.get(), &CallModel::meAdminChanged, this, &CallsListModel::canMergeCallsChanged); + add(callModel); emit layoutChanged(); @@ -511,7 +599,7 @@ void CallsListModel::addDummyCall () { int id = findCallIndex(mList, *callModel); emit dataChanged(index(id, 0), index(id, 0)); }); - + connect(callModel.get(), &CallModel::meAdminChanged, this, &CallsListModel::canMergeCallsChanged); add(callModel); emit layoutChanged(); diff --git a/linphone-app/src/components/calls/CallsListModel.hpp b/linphone-app/src/components/calls/CallsListModel.hpp index c7ed56ce1..1c774c039 100644 --- a/linphone-app/src/components/calls/CallsListModel.hpp +++ b/linphone-app/src/components/calls/CallsListModel.hpp @@ -37,6 +37,9 @@ class CallsListModel : public ProxyListModel { Q_OBJECT public: + Q_PROPERTY(bool canMergeCalls READ canMergeCalls NOTIFY canMergeCallsChanged) + + CallsListModel (QObject *parent = Q_NULLPTR); CallModel *findCallModelFromPeerAddress (const QString &peerAddress) const; @@ -57,9 +60,11 @@ public: Q_INVOKABLE void prepareConferenceCall(ConferenceInfoModel * model); Q_INVOKABLE int addAllToConference(); + Q_INVOKABLE void mergeAll(); Q_INVOKABLE int getRunningCallsNumber () const; + bool canMergeCalls()const; Q_INVOKABLE void terminateAllCalls () const; Q_INVOKABLE void terminateCall (const QString& sipAddress) const; @@ -73,6 +78,7 @@ signals: void callConferenceAsked(ConferenceInfoModel * conferenceInfoModel); void callMissed (CallModel *callModel); + void canMergeCallsChanged(); private: diff --git a/linphone-app/src/components/participant/ParticipantDeviceListModel.cpp b/linphone-app/src/components/participant/ParticipantDeviceListModel.cpp index ebb5234b1..ea2e9b6c8 100644 --- a/linphone-app/src/components/participant/ParticipantDeviceListModel.cpp +++ b/linphone-app/src/components/participant/ParticipantDeviceListModel.cpp @@ -99,6 +99,8 @@ void ParticipantDeviceListModel::updateDevices(const std::list deviceToAdd){ + auto deviceToAddAddr = deviceToAdd->getAddress(); + int row = 0; qDebug() << "Adding device " << deviceToAdd->getAddress()->asString().c_str(); for(auto item : mList) { auto deviceModel = item.objectCast(); @@ -106,7 +108,12 @@ bool ParticipantDeviceListModel::add(std::shared_ptrupdateVideoEnabled(); return false; + }else if(deviceToAddAddr->equal(deviceModel->getDevice()->getAddress())){// Address is the same (same device) but the model is using another linphone object. Replace it. + deviceModel->updateVideoEnabled(); + removeRow(row); + break; } + ++row; } bool addMe = isMe(deviceToAdd); auto deviceModel = ParticipantDeviceModel::create(mCallModel, deviceToAdd, addMe); @@ -114,6 +121,12 @@ bool ParticipantDeviceListModel::add(std::shared_ptr(deviceModel); qDebug() << "Device added. Count=" << mList.count(); + QStringList debugDevices; + for(auto i : mList){ + auto item = i.objectCast(); + debugDevices.push_back( item->getAddress()); + } + qDebug() << debugDevices.join("\n"); if( addMe){ qDebug() << "Added a me device"; emit meChanged(); diff --git a/linphone-app/ui/modules/Linphone/Calls/CallControls.qml b/linphone-app/ui/modules/Linphone/Calls/CallControls.qml index 1797322f5..9687bdf4e 100644 --- a/linphone-app/ui/modules/Linphone/Calls/CallControls.qml +++ b/linphone-app/ui/modules/Linphone/Calls/CallControls.qml @@ -13,6 +13,7 @@ Rectangle { // --------------------------------------------------------------------------- default property alias _content: content.data + property alias isDarkMode: contact.isDarkMode property alias signIcon: signIcon.icon property alias subtitleColor: contact.subtitleColor diff --git a/linphone-app/ui/modules/Linphone/Calls/Calls.qml b/linphone-app/ui/modules/Linphone/Calls/Calls.qml index 4ce7f47f5..5004e78d5 100644 --- a/linphone-app/ui/modules/Linphone/Calls/Calls.qml +++ b/linphone-app/ui/modules/Linphone/Calls/Calls.qml @@ -144,20 +144,17 @@ ListView { id: _callControls // ------------------------------------------------------------------------- - - function useColorStatus () { - return calls.currentIndex === index && $modelData && $modelData.status !== CallModel.CallStatusEnded - } + isDarkMode: calls.currentIndex === index && $modelData!=undefined && $modelData.status!=undefined && $modelData.status !== CallModel.CallStatusEnded // ------------------------------------------------------------------------- - color: useColorStatus() + color: isDarkMode ? CallsStyle.entry.color.selected : CallsStyle.entry.color.normal - subtitleColor: useColorStatus() + subtitleColor: isDarkMode ? CallsStyle.entry.subtitleColor.selected : CallsStyle.entry.subtitleColor.normal - titleColor: useColorStatus() + titleColor: isDarkMode ? CallsStyle.entry.titleColor.selected : CallsStyle.entry.titleColor.normal diff --git a/linphone-app/ui/modules/Linphone/Contact/Avatar.qml b/linphone-app/ui/modules/Linphone/Contact/Avatar.qml index efe711055..a1a06c7a8 100644 --- a/linphone-app/ui/modules/Linphone/Contact/Avatar.qml +++ b/linphone-app/ui/modules/Linphone/Contact/Avatar.qml @@ -15,7 +15,8 @@ Item { // --------------------------------------------------------------------------- property alias presenceLevel: presenceLevelIcon.level - property color backgroundColor: AvatarStyle.backgroundColor + property bool isDarkMode: false + property color backgroundColor: isDarkMode ? AvatarStyle.backgroundDarkModeColor : AvatarStyle.backgroundColor property color foregroundColor: 'transparent' property string username property var image @@ -64,7 +65,7 @@ Item { Text { id: initialsText anchors.centerIn: parent - color: AvatarStyle.initials.color + color: isDarkMode ? AvatarStyle.initials.darkModeColor : AvatarStyle.initials.color font.pointSize: { var width @@ -82,7 +83,7 @@ Item { Icon { anchors.fill: parent icon: ContactStyle.groupChat.icon - overwriteColor: ContactStyle.groupChat.avatarColor + overwriteColor: isDarkMode ? ContactStyle.groupChat.avatarDarkModeColor : ContactStyle.groupChat.avatarColor iconSize: avatar.width //visible: entry!=undefined && entry.isOneToOne!=undefined && !entry.isOneToOne visible: !avatar.isOneToOne diff --git a/linphone-app/ui/modules/Linphone/Contact/Contact.qml b/linphone-app/ui/modules/Linphone/Contact/Contact.qml index e71f3a53a..630ee0ab0 100644 --- a/linphone-app/ui/modules/Linphone/Contact/Contact.qml +++ b/linphone-app/ui/modules/Linphone/Contact/Contact.qml @@ -21,6 +21,7 @@ Rectangle { property alias subtitleColor: description.subtitleColor property alias titleColor: description.titleColor property alias statusText : description.statusText + property alias isDarkMode: avatar.isDarkMode property bool displayUnreadMessageCount: false property bool showSubtitle : true diff --git a/linphone-app/ui/modules/Linphone/Styles/Calls/CallsStyle.qml b/linphone-app/ui/modules/Linphone/Styles/Calls/CallsStyle.qml index 3722411a7..7056af056 100644 --- a/linphone-app/ui/modules/Linphone/Styles/Calls/CallsStyle.qml +++ b/linphone-app/ui/modules/Linphone/Styles/Calls/CallsStyle.qml @@ -19,7 +19,7 @@ QtObject { } property QtObject burgerMenu: QtObject { property string name : 'burgerMenu' - property string icon : 'burger_menu_custom' + property string icon : 'menu_vdots_custom' property int iconSize: 35 property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'me_n_b_bg').color property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'me_h_b_bg').color @@ -30,7 +30,7 @@ QtObject { } property QtObject selectedBurgerMenu: QtObject { property string name : 'selectedBurgerMenu' - property string icon : 'burger_menu_custom' + property string icon : 'menu_vdots_custom' property int iconSize: 35 property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'me_n_b_inv_bg').color property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'me_h_b_inv_bg').color @@ -39,6 +39,7 @@ QtObject { property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 'me_h_b_inv_fg').color property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'me_p_b_inv_fg').color } + property QtObject hangup: QtObject { property int iconSize: 35 property string icon : 'hangup_custom' diff --git a/linphone-app/ui/modules/Linphone/Styles/Contact/AvatarStyle.qml b/linphone-app/ui/modules/Linphone/Styles/Contact/AvatarStyle.qml index a7344b858..8f8f9c1d6 100644 --- a/linphone-app/ui/modules/Linphone/Styles/Contact/AvatarStyle.qml +++ b/linphone-app/ui/modules/Linphone/Styles/Contact/AvatarStyle.qml @@ -9,11 +9,14 @@ import ColorsList 1.0 QtObject { property string sectionName: 'Avatar' property color backgroundColor: ColorsList.add(sectionName+'_bg', 'd').color + property color backgroundDarkModeColor: ColorsList.add(sectionName+'_dark_bg', 'q').color + property string personImage : 'contact_custom' property QtObject initials: QtObject { property color color: ColorsList.add(sectionName+'_initials', 'q').color + property color darkModeColor: ColorsList.add(sectionName+'_dark_initials', 'd').color property int pointSize: Units.dp * 10 property int ratio: 30 } diff --git a/linphone-app/ui/modules/Linphone/Styles/Contact/ContactStyle.qml b/linphone-app/ui/modules/Linphone/Styles/Contact/ContactStyle.qml index 0e25378c6..29b751b5d 100644 --- a/linphone-app/ui/modules/Linphone/Styles/Contact/ContactStyle.qml +++ b/linphone-app/ui/modules/Linphone/Styles/Contact/ContactStyle.qml @@ -16,5 +16,6 @@ QtObject { property string icon: 'chat_room_custom' property color color: ColorsList.addImageColor(sectionName+'_groupChat', icon, 'g').color property color avatarColor: ColorsList.addImageColor(sectionName+'_groupChat_onAvatar', icon, 'q').color + property color avatarDarkModeColor: ColorsList.addImageColor(sectionName+'_groupChat_dark_onAvatar', icon, 'd').color } } diff --git a/linphone-app/ui/views/App/Calls/CallsWindow.qml b/linphone-app/ui/views/App/Calls/CallsWindow.qml index 38a188c9f..5a2b81b69 100644 --- a/linphone-app/ui/views/App/Calls/CallsWindow.qml +++ b/linphone-app/ui/views/App/Calls/CallsWindow.qml @@ -140,11 +140,12 @@ Window { ActionButton { isCustom: true backgroundRadius: 4 - colorSet: CallsWindowStyle.callsList.newConference + colorSet: CallsWindowStyle.callsList.mergeConference visible: SettingsModel.conferenceEnabled + enabled: CallsListModel.canMergeCalls onClicked: { - Logic.openConferenceManager() + CallsListModel.mergeAll() } } } diff --git a/linphone-app/ui/views/App/Main/Conversation.qml b/linphone-app/ui/views/App/Main/Conversation.qml index b2cf8b343..40fa59185 100644 --- a/linphone-app/ui/views/App/Main/Conversation.qml +++ b/linphone-app/ui/views/App/Main/Conversation.qml @@ -103,20 +103,9 @@ ColumnLayout { //username: Logic.getUsername() username: chatRoomModel?chatRoomModel.username:( conversation._sipAddressObserver ? UtilsCpp.getDisplayName(conversation._sipAddressObserver.peerAddress) : '') - visible: !groupChat.visible + isOneToOne: chatRoomModel==undefined || chatRoomModel.isOneToOne==undefined || chatRoomModel.isOneToOne } - Icon { - id: groupChat - - Layout.preferredHeight: ConversationStyle.bar.groupChatSize - Layout.preferredWidth: ConversationStyle.bar.groupChatSize - - icon: ConversationStyle.bar.groupChatIcon - overwriteColor: ConversationStyle.bar.groupChatColor - iconSize: ConversationStyle.bar.groupChatSize - visible: chatRoomModel && !chatRoomModel.isOneToOne - } Item{ Layout.fillHeight: true Layout.fillWidth: true @@ -127,7 +116,7 @@ ColumnLayout { ColumnLayout{ property int maximumContentWidth: contactBar.width - -(avatar.visible?avatar.width:0)-(groupChat.visible?groupChat.width:0) + -(avatar.visible?avatar.width:0) -actionBar.width - (secureIcon.visible?secureIcon.width :0) -3*ConversationStyle.bar.spacing Layout.fillHeight: true diff --git a/linphone-app/ui/views/App/Styles/Calls/CallsWindowStyle.qml b/linphone-app/ui/views/App/Styles/Calls/CallsWindowStyle.qml index f0bd8069e..d02d535fa 100644 --- a/linphone-app/ui/views/App/Styles/Calls/CallsWindowStyle.qml +++ b/linphone-app/ui/views/App/Styles/Calls/CallsWindowStyle.qml @@ -37,16 +37,18 @@ QtObject { property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 'ma_h_b_fg').color property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'ma_p_b_fg').color } - property QtObject newConference: QtObject { + property QtObject mergeConference: QtObject { property int iconSize: 40 - property string name : 'newConference' - property string icon : 'conference_custom' + property string name : 'mergeConference' + property string icon : 'conference_merge_custom' property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'ma_n_b_bg').color property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'ma_h_b_bg').color property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 'ma_p_b_bg').color + property color backgroundDisabledColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_d', icon, 'ma_d_b_bg').color property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 'ma_n_b_fg').color property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 'ma_h_b_fg').color property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'ma_p_b_fg').color + property color foregroundDisabledColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_d', icon, 'ma_d_b_fg').color } property QtObject closeButton: QtObject{ diff --git a/linphone-sdk b/linphone-sdk index 11f72d4e2..e5c95eaed 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit 11f72d4e254a2a8305a9400e38cb44f125c18873 +Subproject commit e5c95eaed5a2113cbba1ab62e8baa826abe7609c