mirror of
https://github.com/HenkKalkwater/harbour-sailfin.git
synced 2024-11-21 16:55:17 +00:00
Sailfish: Fix freeze when connecting via HTTPS
This commit is contained in:
parent
deada4f635
commit
cab5f20469
|
@ -4,7 +4,6 @@ set (CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
cmake_policy(SET CMP0048 NEW)
|
cmake_policy(SET CMP0048 NEW)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
option(PLATFORM_SAILFISHOS "Build SailfishOS version of application" OFF)
|
option(PLATFORM_SAILFISHOS "Build SailfishOS version of application" OFF)
|
||||||
|
|
|
@ -44,7 +44,8 @@ set(sailfin_QML_SOURCES
|
||||||
qml/pages/LegalPage.qml
|
qml/pages/LegalPage.qml
|
||||||
qml/pages/MainPage.qml
|
qml/pages/MainPage.qml
|
||||||
qml/pages/AboutPage.qml
|
qml/pages/AboutPage.qml
|
||||||
qml/harbour-sailfin.qml
|
qml/harbour-sailfin.qml
|
||||||
|
qml/pages/ConnectingPage.qml
|
||||||
qml/pages/SettingsPage.qml
|
qml/pages/SettingsPage.qml
|
||||||
qml/pages/VideoPage.qml
|
qml/pages/VideoPage.qml
|
||||||
qml/pages/itemdetails/BaseDetailPage.qml
|
qml/pages/itemdetails/BaseDetailPage.qml
|
||||||
|
@ -110,6 +111,4 @@ install(FILES icons/172x172/harbour-sailfin.png
|
||||||
# Search the Qt Creator Manual to learn about the QtCreatorDeployment.txt file
|
# Search the Qt Creator Manual to learn about the QtCreatorDeployment.txt file
|
||||||
# format.
|
# format.
|
||||||
file(WRITE "${CMAKE_BINARY_DIR}/QtCreatorDeployment.txt"
|
file(WRITE "${CMAKE_BINARY_DIR}/QtCreatorDeployment.txt"
|
||||||
"${CMAKE_INSTALL_PREFIX}
|
"${CMAKE_INSTALL_PREFIX}\n${CMAKE_BINARY_DIR}/sailfish/harbour-sailfin:bin")
|
||||||
${CMAKE_BINARY_DIR}/sailfish/harbour-sailfin:bin
|
|
||||||
")
|
|
||||||
|
|
|
@ -4,8 +4,6 @@ Version=1.1
|
||||||
X-Nemo-Application-Type=silica-qt5
|
X-Nemo-Application-Type=silica-qt5
|
||||||
Icon=harbour-sailfin
|
Icon=harbour-sailfin
|
||||||
Exec=harbour-sailfin
|
Exec=harbour-sailfin
|
||||||
#Exec=/usr/bin/sailjail -p harbour-sailfin.desktop /usr/bin/harbour-sailfin
|
|
||||||
|
|
||||||
Name=Sailfin
|
Name=Sailfin
|
||||||
# translation example:
|
# translation example:
|
||||||
# your app name in German locale (de)
|
# your app name in German locale (de)
|
||||||
|
|
|
@ -68,7 +68,7 @@ PanelBackground {
|
||||||
}
|
}
|
||||||
width: height
|
width: height
|
||||||
Binding on blurhash {
|
Binding on blurhash {
|
||||||
when: manager.item !== null && "Primary" in manager.item.imageBlurHashes
|
when: manager.item !== null && "Primary" in manager.item.imageBlurHashes && "Primary" in manager.item.imageTags
|
||||||
value: manager.item.imageBlurHashes["Primary"][manager.item.imageTags["Primary"]]
|
value: manager.item.imageBlurHashes["Primary"][manager.item.imageTags["Primary"]]
|
||||||
}
|
}
|
||||||
source: largeAlbumArt.source
|
source: largeAlbumArt.source
|
||||||
|
|
|
@ -62,18 +62,12 @@ ApplicationWindow {
|
||||||
onRaiseRequested: appWindow.raise()
|
onRaiseRequested: appWindow.raise()
|
||||||
}
|
}
|
||||||
|
|
||||||
initialPage: Component {
|
initialPage: ConnectingPage {
|
||||||
MainPage {
|
id: connectingPage
|
||||||
Connections {
|
onStatusChanged: {
|
||||||
target: apiClient
|
if (connectingPage.status == PageStatus.Active && !_hasInitialized) {
|
||||||
// Replace the MainPage if no server was set up.
|
_hasInitialized = true;
|
||||||
|
apiClient.restoreSavedSession();
|
||||||
}
|
|
||||||
onStatusChanged: {
|
|
||||||
if (status == PageStatus.Active && !_hasInitialized) {
|
|
||||||
_hasInitialized = true;
|
|
||||||
apiClient.restoreSavedSession();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,11 +165,36 @@ ApplicationWindow {
|
||||||
onConnectionFailed: errorNotification.show("Connect error: " + error)
|
onConnectionFailed: errorNotification.show("Connect error: " + error)
|
||||||
//onConnectionSuccess: errorNotification.show("Success: " + loginMessage)
|
//onConnectionSuccess: errorNotification.show("Success: " + loginMessage)
|
||||||
onSetupRequired: {
|
onSetupRequired: {
|
||||||
var isInSetup = pageStack.find(function (page) { return typeof page._isSetupPage !== "undefined" }) !== null
|
console.log("Is in setup: " + isInSetup())
|
||||||
console.log("Is in setup: " + isInSetup)
|
if (!isInSetup()) {
|
||||||
if (!isInSetup) {
|
|
||||||
pageStack.replace(Qt.resolvedUrl("pages/setup/AddServerPage.qml"), {"backNavigation": false});
|
pageStack.replace(Qt.resolvedUrl("pages/setup/AddServerPage.qml"), {"backNavigation": false});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
onAuthenticatedChanged: {
|
||||||
|
if (authenticated && !isInSetup()) {
|
||||||
|
console.log("Authenticated)")
|
||||||
|
loginAnimation.start()
|
||||||
|
//pageStack.replace(Qt.resolvedUrl("pages/MainPage.qml"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delaying the creation of the MainPage prevents the application from freezing
|
||||||
|
// if connecting to the server over HTTPS
|
||||||
|
// TODO: figure out why the application actually freezes and remove this workaround
|
||||||
|
SequentialAnimation {
|
||||||
|
id: loginAnimation
|
||||||
|
|
||||||
|
PauseAnimation {
|
||||||
|
duration: 250
|
||||||
|
}
|
||||||
|
|
||||||
|
ScriptAction {
|
||||||
|
script: pageStack.replace(Qt.resolvedUrl("pages/MainPage.qml"), {}, PageStackAction.Immediate)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isInSetup() {
|
||||||
|
return pageStack.find(function (page) { return typeof page._isSetupPage !== "undefined" }) !== null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
8
sailfish/qml/pages/ConnectingPage.qml
Normal file
8
sailfish/qml/pages/ConnectingPage.qml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
Page {
|
||||||
|
PageBusyIndicator {
|
||||||
|
running: true
|
||||||
|
}
|
||||||
|
}
|
|
@ -222,7 +222,7 @@ Page {
|
||||||
delegate: LibraryItemDelegate {
|
delegate: LibraryItemDelegate {
|
||||||
property string id: model.jellyfinId
|
property string id: model.jellyfinId
|
||||||
title: model.name
|
title: model.name
|
||||||
poster: Utils.itemModelImageUrl(appWindow.apiClient.baseUrl, model.jellyfinId, model.imageTags["Primary"], "Primary", {"maxHeight": height})
|
poster: Utils.itemModelImageUrl(appWindow.apiClient.baseUrl, model.jellyfinId, model.imageTags["Primary"], "Primary", {"height": height})
|
||||||
Binding on blurhash {
|
Binding on blurhash {
|
||||||
when: poster !== ""
|
when: poster !== ""
|
||||||
value: model.imageBlurHashes["Primary"][model.imageTags["Primary"]]
|
value: model.imageBlurHashes["Primary"][model.imageTags["Primary"]]
|
||||||
|
|
Loading…
Reference in a new issue