Commit 2d8cf788 authored by Ronan Abhamon's avatar Ronan Abhamon

feat(ui/views/App/Main/MainWindow): use a logic file

parent 2069e990
......@@ -324,6 +324,7 @@
<file>ui/views/App/Main/Conversation.qml</file>
<file>ui/views/App/Main/Home.qml</file>
<file>ui/views/App/Main/InviteFriends.qml</file>
<file>ui/views/App/Main/MainWindow.js</file>
<file>ui/views/App/Main/MainWindowMenuBar.qml</file>
<file>ui/views/App/Main/MainWindow.qml</file>
<file>ui/views/App/ManageAccountsWindow.qml</file>
......
......@@ -6,6 +6,8 @@
.import 'qrc:/ui/scripts/Utils/utils.js' as Utils
// =============================================================================
// Returns the username of a contact object or URI string.
function getContactUsername (contact) {
return Utils.isString(contact)
......
// =============================================================================
// `MainWindow.qml` Logic.
// =============================================================================
.import QtQuick.Window 2.2 as Window
.import 'qrc:/ui/scripts/Utils/utils.js' as Utils
// =============================================================================
function lockView (info) {
window._lockedInfo = info
}
function unlockView () {
window._lockedInfo = undefined
}
function setView (view, props) {
function apply (view, props) {
if (window.visibility === Window.Minimized) {
window.visibility = Window.AutomaticVisibility
} else {
window.setVisible(true)
}
collapse.setCollapsed(true)
updateSelectedEntry(view, props)
window._currentView = view
contentLoader.setSource(view + '.qml', props || {})
}
var lockedInfo = window._lockedInfo
if (!lockedInfo) {
apply(view, props)
return
}
Utils.openConfirmDialog(window, {
descriptionText: lockedInfo.descriptionText,
exitHandler: function (status) {
if (status) {
unlockView()
apply(view, props)
} else {
updateSelectedEntry(window._currentView, props)
}
},
title: lockedInfo.title
})
}
// -----------------------------------------------------------------------------
function updateSelectedEntry (view, props) {
if (view === 'Home' || view === 'Contacts') {
menu.setSelectedEntry(view === 'Home' ? 0 : 1)
timeline.resetSelectedEntry()
} else if (view === 'Conversation') {
menu.resetSelectedEntry()
timeline.setSelectedEntry(props.sipAddress)
} else if (view === 'ContactEdit') {
menu.resetSelectedEntry()
timeline.resetSelectedEntry()
}
}
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Window 2.2
// Explicit import to support Toolbar.
import QtQuick.Controls 1.4 as Controls1
......@@ -12,6 +11,8 @@ import Utils 1.0
import App.Styles 1.0
import 'MainWindow.js' as Logic
// =============================================================================
Controls1.ApplicationWindow {
......@@ -23,64 +24,15 @@ Controls1.ApplicationWindow {
// ---------------------------------------------------------------------------
function lockView (info) {
_lockedInfo = info
Logic.lockView(info)
}
function unlockView () {
_lockedInfo = undefined
Logic.unlockView(info)
}
function setView (view, props) {
if (!_lockedInfo) {
_setView(view, props)
return
}
Utils.openConfirmDialog(window, {
descriptionText: _lockedInfo.descriptionText,
exitHandler: function (status) {
if (status) {
unlockView()
_setView(view, props)
} else {
_updateSelectedEntry(_currentView, props)
}
},
title: _lockedInfo.title
})
}
// ---------------------------------------------------------------------------
function _updateSelectedEntry (view, props) {
if (view === 'Home' || view === 'Contacts') {
menu.setSelectedEntry(view === 'Home' ? 0 : 1)
timeline.resetSelectedEntry()
} else if (view === 'Conversation') {
menu.resetSelectedEntry()
timeline.setSelectedEntry(props.sipAddress)
} else if (view === 'ContactEdit') {
menu.resetSelectedEntry()
timeline.resetSelectedEntry()
}
}
function _forceView (view, props) {
collapse.setCollapsed(true)
_updateSelectedEntry(view, props)
_currentView = view
contentLoader.setSource(view + '.qml', props || {})
}
function _setView (view, props) {
if (window.visibility === Window.Minimized) {
window.visibility = Window.AutomaticVisibility
} else {
window.setVisible(true)
}
_forceView(view, props)
Logic.setView(view, props)
}
// ---------------------------------------------------------------------------
......@@ -105,10 +57,6 @@ Controls1.ApplicationWindow {
// ---------------------------------------------------------------------------
Component.onCompleted: Utils.setTimeout(window, 0, function () {
_forceView('Home')
})
onActiveFocusItemChanged: activeFocusItem == null && smartSearchBar.hideMenu()
// ---------------------------------------------------------------------------
......@@ -151,6 +99,8 @@ Controls1.ApplicationWindow {
target: window
targetHeight: MainWindowStyle.minimumHeight
visible: Qt.platform.os !== 'linux'
Component.onCompleted: setCollapsed(true)
}
AccountStatus {
......@@ -193,6 +143,7 @@ Controls1.ApplicationWindow {
id: smartSearchBar
Layout.fillWidth: true
entryHeight: MainWindowStyle.searchBox.entryHeight
maxMenuHeight: MainWindowStyle.searchBox.maxHeight
placeholderText: qsTr('mainSearchBarPlaceholder')
......@@ -269,6 +220,8 @@ Controls1.ApplicationWindow {
Layout.fillHeight: true
Layout.fillWidth: true
source: 'Home.qml'
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment