diff --git a/linphone-desktop/assets/languages/en.ts b/linphone-desktop/assets/languages/en.ts index 964a9ac40..4b2a6ab18 100644 --- a/linphone-desktop/assets/languages/en.ts +++ b/linphone-desktop/assets/languages/en.ts @@ -357,6 +357,13 @@ Server url not configured. Status + + ConferenceManager + + conferenceManagerDescription + Manage participants to your conference. + + ConfirmDialog diff --git a/linphone-desktop/assets/languages/fr.ts b/linphone-desktop/assets/languages/fr.ts index f6e0c4f47..61ca489a7 100644 --- a/linphone-desktop/assets/languages/fr.ts +++ b/linphone-desktop/assets/languages/fr.ts @@ -357,6 +357,13 @@ Url du serveur non configurée. Status + + ConferenceManager + + conferenceManagerDescription + Gérer les participants de votre conférence. + + ConfirmDialog diff --git a/linphone-desktop/resources.qrc b/linphone-desktop/resources.qrc index 0640cb3c6..22e67ca50 100644 --- a/linphone-desktop/resources.qrc +++ b/linphone-desktop/resources.qrc @@ -339,6 +339,8 @@ ui/views/App/Calls/AbstractStartingCall.qml ui/views/App/Calls/CallsWindow.js ui/views/App/Calls/CallsWindow.qml + ui/views/App/Calls/ConferenceManager.js + ui/views/App/Calls/ConferenceManager.qml ui/views/App/Calls/EndedCall.qml ui/views/App/Calls/IncallFullscreenWindow.qml ui/views/App/Calls/Incall.js @@ -387,6 +389,7 @@ ui/views/App/SplashScreen/SplashScreen.qml ui/views/App/Styles/Calls/CallStyle.qml ui/views/App/Styles/Calls/CallsWindowStyle.qml + ui/views/App/Styles/Calls/ConferenceManagerStyle.qml ui/views/App/Styles/Main/AboutStyle.qml ui/views/App/Styles/Main/Assistant/ActivateLinphoneSipAccountWithEmailStyle.qml ui/views/App/Styles/Main/Assistant/AssistantAbstractViewStyle.qml diff --git a/linphone-desktop/src/components/smart-search-bar/SmartSearchBarModel.hpp b/linphone-desktop/src/components/smart-search-bar/SmartSearchBarModel.hpp index f0914d98f..681d958b5 100644 --- a/linphone-desktop/src/components/smart-search-bar/SmartSearchBarModel.hpp +++ b/linphone-desktop/src/components/smart-search-bar/SmartSearchBarModel.hpp @@ -47,6 +47,7 @@ private: int computeStringWeight (const QString &string) const; QString mFilter; + static const QRegExp mSearchSeparators; }; diff --git a/linphone-desktop/ui/modules/Common/Tooltip/Tooltip.qml b/linphone-desktop/ui/modules/Common/Tooltip/Tooltip.qml index 2d0a95544..cca8426b0 100644 --- a/linphone-desktop/ui/modules/Common/Tooltip/Tooltip.qml +++ b/linphone-desktop/ui/modules/Common/Tooltip/Tooltip.qml @@ -51,8 +51,8 @@ ToolTip { } else if (a.y > b.y + b.height) { _edge = 'bottom' } else { + // Unable to get the tooltip arrow position. _edge = null - console.warn('Unable to get the tooltip arrow position.') } } diff --git a/linphone-desktop/ui/views/App/Calls/CallsWindow.js b/linphone-desktop/ui/views/App/Calls/CallsWindow.js index 7c63f9e67..dc59eb6e1 100644 --- a/linphone-desktop/ui/views/App/Calls/CallsWindow.js +++ b/linphone-desktop/ui/views/App/Calls/CallsWindow.js @@ -17,6 +17,7 @@ function handleClosing (close) { return } + window.detachVirtualWindow() window.attachVirtualWindow(Utils.buildDialogUri('ConfirmDialog'), { descriptionText: qsTr('acceptClosingDescription'), }, function (status) { @@ -28,3 +29,7 @@ function handleClosing (close) { close.accepted = false } + +function openConferenceManager () { + window.attachVirtualWindow(Qt.resolvedUrl('ConferenceManager.qml')) +} diff --git a/linphone-desktop/ui/views/App/Calls/CallsWindow.qml b/linphone-desktop/ui/views/App/Calls/CallsWindow.qml index 8377e1ec2..4374e63cd 100644 --- a/linphone-desktop/ui/views/App/Calls/CallsWindow.qml +++ b/linphone-desktop/ui/views/App/Calls/CallsWindow.qml @@ -94,7 +94,8 @@ Window { ActionButton { icon: 'new_conference' - // TODO: launch new conference + + onClicked: Logic.openConferenceManager() } } } diff --git a/linphone-desktop/ui/views/App/Calls/ConferenceManager.js b/linphone-desktop/ui/views/App/Calls/ConferenceManager.js new file mode 100644 index 000000000..55ec1fc06 --- /dev/null +++ b/linphone-desktop/ui/views/App/Calls/ConferenceManager.js @@ -0,0 +1,7 @@ +// ============================================================================= +// `ConferenceManager.qml` Logic. +// ============================================================================= + +function updateFilter (text) { + console.log('TODO') +} diff --git a/linphone-desktop/ui/views/App/Calls/ConferenceManager.qml b/linphone-desktop/ui/views/App/Calls/ConferenceManager.qml new file mode 100644 index 000000000..d6975a011 --- /dev/null +++ b/linphone-desktop/ui/views/App/Calls/ConferenceManager.qml @@ -0,0 +1,70 @@ +import QtQuick 2.7 +import QtQuick.Layouts 1.3 + +import Common 1.0 +import Linphone 1.0 + +import App.Styles 1.0 + +import 'ConferenceManager.js' as Logic + +// ============================================================================= + +ConfirmDialog { + descriptionText: qsTr('conferenceManagerDescription') + + height: ConferenceManagerStyle.height + width: ConferenceManagerStyle.width + + // --------------------------------------------------------------------------- + + RowLayout { + anchors { + fill: parent + leftMargin: ConferenceManagerStyle.leftMargin + rightMargin: ConferenceManagerStyle.rightMargin + } + + spacing: 0 + + // ------------------------------------------------------------------------- + // Address selector. + // ------------------------------------------------------------------------- + + Column { + Layout.alignment: Qt.AlignTop + Layout.fillWidth: true + + spacing: ConferenceManagerStyle.columns.selector.spacing + + TextField { + icon: 'search' + width: parent.width + + onTextChanged: Logic.updateFilter(text) + } + } + + // ------------------------------------------------------------------------- + // Separator. + // ------------------------------------------------------------------------- + + Rectangle { + Layout.fillHeight: true + Layout.leftMargin: ConferenceManagerStyle.leftMargin + Layout.preferredWidth: ConferenceManagerStyle.columns.separator.width + Layout.rightMargin: ConferenceManagerStyle.rightMargin + + color: ConferenceManagerStyle.columns.separator.color + } + + // ------------------------------------------------------------------------- + // See and remove selected addresses. + // ------------------------------------------------------------------------- + + Column { + Layout.alignment: Qt.AlignTop + Layout.fillWidth: true + } + } +} diff --git a/linphone-desktop/ui/views/App/Styles/Calls/ConferenceManagerStyle.qml b/linphone-desktop/ui/views/App/Styles/Calls/ConferenceManagerStyle.qml new file mode 100644 index 000000000..6c7b1c360 --- /dev/null +++ b/linphone-desktop/ui/views/App/Styles/Calls/ConferenceManagerStyle.qml @@ -0,0 +1,24 @@ +pragma Singleton +import QtQuick 2.7 + +import Common 1.0 + +// ============================================================================= + +QtObject { + property int height: 420 + property int leftMargin: 35 + property int rightMargin: 35 + property int width: 680 + + property QtObject columns: QtObject { + property QtObject selector: QtObject { + property int spacing: 10 + } + + property QtObject separator: QtObject { + property color color: Colors.c + property int width: 1 + } + } +} diff --git a/linphone-desktop/ui/views/App/Styles/qmldir b/linphone-desktop/ui/views/App/Styles/qmldir index f098125ef..b75008bcf 100644 --- a/linphone-desktop/ui/views/App/Styles/qmldir +++ b/linphone-desktop/ui/views/App/Styles/qmldir @@ -6,6 +6,7 @@ module App.Styles singleton CallStyle 1.0 Calls/CallStyle.qml singleton CallsWindowStyle 1.0 Calls/CallsWindowStyle.qml +singleton ConferenceManagerStyle 1.0 Calls/ConferenceManagerStyle.qml singleton ActivateLinphoneSipAccountWithEmailStyle 1.0 Main/Assistant/ActivateLinphoneSipAccountWithEmailStyle.qml singleton AssistantAbstractViewStyle 1.0 Main/Assistant/AssistantAbstractViewStyle.qml