diff --git a/resources.qrc b/resources.qrc index 235a56bc2..c36f54360 100644 --- a/resources.qrc +++ b/resources.qrc @@ -395,6 +395,7 @@ ui/views/App/Calls/IncomingCall.qml ui/views/App/Calls/OutgoingCall.qml ui/views/App/Calls/ZrtpTokenAuthentication.qml + ui/views/App/Main/+5.9/MainWindowMenuBar.qml ui/views/App/Main/Assistant/ActivateLinphoneSipAccountWithEmail.qml ui/views/App/Main/Assistant/ActivateLinphoneSipAccountWithPhoneNumber.qml ui/views/App/Main/Assistant/AssistantAbstractView.qml @@ -419,6 +420,7 @@ ui/views/App/Main/Dialogs/ManageAccounts.qml ui/views/App/Main/Home.qml ui/views/App/Main/InviteFriends.qml + ui/views/App/Main/+mac/MainWindowMenuBar.qml ui/views/App/Main/MainWindow.js ui/views/App/Main/MainWindowMenuBar.qml ui/views/App/Main/MainWindow.qml diff --git a/src/app/App.cpp b/src/app/App.cpp index ed87fbf7f..15fd5ae5d 100644 --- a/src/app/App.cpp +++ b/src/app/App.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -197,8 +198,15 @@ void App::initContentApp () { // Init engine content. mEngine = new QQmlApplicationEngine(); - // Provide `+custom` folders for custom components. - (new QQmlFileSelector(mEngine, mEngine))->setExtraSelectors(QStringList("custom")); + // Provide `+custom` folders for custom components and `5.9` for old components. + // TODO: Remove 5.9 support in 6 months. (~ July 2018). + { + QStringList selectors("custom"); + const QVersionNumber &version = QLibraryInfo::version(); + if (version.majorVersion() == 5 && version.minorVersion() == 9) + selectors.push_back("5.9"); + (new QQmlFileSelector(mEngine, mEngine))->setExtraSelectors(selectors); + } qInfo() << QStringLiteral("Activated selectors:") << QQmlFileSelector::get(mEngine)->selector()->allSelectors(); // Set modules paths. diff --git a/ui/views/App/Main/+5.9/MainWindowMenuBar.qml b/ui/views/App/Main/+5.9/MainWindowMenuBar.qml new file mode 100644 index 000000000..48a0dde3b --- /dev/null +++ b/ui/views/App/Main/+5.9/MainWindowMenuBar.qml @@ -0,0 +1,79 @@ +import QtQuick 2.7 + +// Experimental. +import Qt.labs.platform 1.0 + +import Linphone 1.0 + +// ============================================================================= + +Item { + function open () { + menu.open() + } + + // --------------------------------------------------------------------------- + // Shortcuts. + // --------------------------------------------------------------------------- + + Shortcut { + id: settingsShortcut + + sequence: 'Ctrl+P' + + onActivated: App.smartShowWindow(App.getSettingsWindow()) + } + + Shortcut { + id: quitShortcut + + context: Qt.ApplicationShortcut + sequence: StandardKey.Quit + + onActivated: Qt.quit() + } + + Shortcut { + id: aboutShortcut + + sequence: StandardKey.HelpContents + + onActivated: { + window.detachVirtualWindow() + window.attachVirtualWindow(Qt.resolvedUrl('Dialogs/About.qml')) + } + } + + // --------------------------------------------------------------------------- + // Menu. + // --------------------------------------------------------------------------- + + MenuBar { + Menu { + id: menu + + MenuItem { + role: MenuItem.PreferencesRole + shortcut: settingsShortcut.sequence + text: qsTr('settings') + + onTriggered: settingsShortcut.onActivated() + } + + MenuItem { + role: MenuItem.AboutRole + text: qsTr('about') + + onTriggered: aboutShortcut.onActivated() + } + + MenuItem { + role: MenuItem.QuitRole + shortcut: quitShortcut.sequence + text: qsTr('quit') + + onTriggered: quitShortcut.onActivated() + } + } + } +} diff --git a/ui/views/App/Main/+mac/MainWindowMenuBar.qml b/ui/views/App/Main/+mac/MainWindowMenuBar.qml new file mode 100644 index 000000000..48a0dde3b --- /dev/null +++ b/ui/views/App/Main/+mac/MainWindowMenuBar.qml @@ -0,0 +1,79 @@ +import QtQuick 2.7 + +// Experimental. +import Qt.labs.platform 1.0 + +import Linphone 1.0 + +// ============================================================================= + +Item { + function open () { + menu.open() + } + + // --------------------------------------------------------------------------- + // Shortcuts. + // --------------------------------------------------------------------------- + + Shortcut { + id: settingsShortcut + + sequence: 'Ctrl+P' + + onActivated: App.smartShowWindow(App.getSettingsWindow()) + } + + Shortcut { + id: quitShortcut + + context: Qt.ApplicationShortcut + sequence: StandardKey.Quit + + onActivated: Qt.quit() + } + + Shortcut { + id: aboutShortcut + + sequence: StandardKey.HelpContents + + onActivated: { + window.detachVirtualWindow() + window.attachVirtualWindow(Qt.resolvedUrl('Dialogs/About.qml')) + } + } + + // --------------------------------------------------------------------------- + // Menu. + // --------------------------------------------------------------------------- + + MenuBar { + Menu { + id: menu + + MenuItem { + role: MenuItem.PreferencesRole + shortcut: settingsShortcut.sequence + text: qsTr('settings') + + onTriggered: settingsShortcut.onActivated() + } + + MenuItem { + role: MenuItem.AboutRole + text: qsTr('about') + + onTriggered: aboutShortcut.onActivated() + } + + MenuItem { + role: MenuItem.QuitRole + shortcut: quitShortcut.sequence + text: qsTr('quit') + + onTriggered: quitShortcut.onActivated() + } + } + } +} diff --git a/ui/views/App/Main/MainWindowMenuBar.qml b/ui/views/App/Main/MainWindowMenuBar.qml index 48a0dde3b..e32b8fe31 100644 --- a/ui/views/App/Main/MainWindowMenuBar.qml +++ b/ui/views/App/Main/MainWindowMenuBar.qml @@ -1,7 +1,5 @@ import QtQuick 2.7 - -// Experimental. -import Qt.labs.platform 1.0 +import QtQuick.Controls 2.3 import Linphone 1.0 @@ -48,32 +46,25 @@ Item { // Menu. // --------------------------------------------------------------------------- - MenuBar { - Menu { - id: menu + Menu { + id: menu - MenuItem { - role: MenuItem.PreferencesRole - shortcut: settingsShortcut.sequence - text: qsTr('settings') + MenuItem { + text: qsTr('settings') - onTriggered: settingsShortcut.onActivated() - } + onTriggered: settingsShortcut.onActivated() + } - MenuItem { - role: MenuItem.AboutRole - text: qsTr('about') + MenuItem { + text: qsTr('about') - onTriggered: aboutShortcut.onActivated() - } + onTriggered: aboutShortcut.onActivated() + } - MenuItem { - role: MenuItem.QuitRole - shortcut: quitShortcut.sequence - text: qsTr('quit') + MenuItem { + text: qsTr('quit') - onTriggered: quitShortcut.onActivated() - } + onTriggered: quitShortcut.onActivated() } } }