mirror of
https://github.com/status-im/status-desktop.git
synced 2025-02-23 03:58:49 +00:00
fix: appSettings were being overwritten due to defaultAppSettings periodically executing sync()
This commit is contained in:
parent
eeb1628337
commit
6207c8af53
@ -48,7 +48,7 @@ SplitView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: applicationWindow
|
target: appMain
|
||||||
onSettingsLoaded: {
|
onSettingsLoaded: {
|
||||||
// Add recent
|
// Add recent
|
||||||
chatView.restoreState(appSettings.chatSplitView)
|
chatView.restoreState(appSettings.chatSplitView)
|
||||||
|
@ -17,7 +17,7 @@ SplitView {
|
|||||||
handle: SplitViewHandle {}
|
handle: SplitViewHandle {}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: applicationWindow
|
target: appMain
|
||||||
onSettingsLoaded: {
|
onSettingsLoaded: {
|
||||||
// Add recent
|
// Add recent
|
||||||
profileView.restoreState(appSettings.profileSplitView)
|
profileView.restoreState(appSettings.profileSplitView)
|
||||||
|
@ -57,7 +57,7 @@ ModalPopup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: applicationWindow
|
target: appMain
|
||||||
onSettingsLoaded: {
|
onSettingsLoaded: {
|
||||||
popup.populatePreviewableSites()
|
popup.populatePreviewableSites()
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ ColumnLayout {
|
|||||||
handle: SplitViewHandle {}
|
handle: SplitViewHandle {}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: applicationWindow
|
target: appMain
|
||||||
onSettingsLoaded: {
|
onSettingsLoaded: {
|
||||||
// Add recent
|
// Add recent
|
||||||
walletView.restoreState(appSettings.walletSplitView)
|
walletView.restoreState(appSettings.walletSplitView)
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
import QtQuick 2.13
|
import QtQuick 2.13
|
||||||
import QtQuick.Controls 2.13
|
import QtQuick.Controls 2.13
|
||||||
import QtQuick.Layouts 1.13
|
import QtQuick.Layouts 1.13
|
||||||
|
import QtMultimedia 5.13
|
||||||
import "../imports"
|
import "../imports"
|
||||||
|
import "../sounds"
|
||||||
import "../shared"
|
import "../shared"
|
||||||
import "../shared/status"
|
import "../shared/status"
|
||||||
import "./AppLayouts"
|
import "./AppLayouts"
|
||||||
import "./AppLayouts/Timeline"
|
import "./AppLayouts/Timeline"
|
||||||
import "./AppLayouts/Wallet"
|
import "./AppLayouts/Wallet"
|
||||||
import "./AppLayouts/Chat/components"
|
import "./AppLayouts/Chat/components"
|
||||||
|
import Qt.labs.settings 1.0
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: appMain
|
id: appMain
|
||||||
@ -15,6 +18,9 @@ RowLayout {
|
|||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
property alias appSettings: appSettings
|
||||||
|
|
||||||
|
|
||||||
function getProfileImage(pubkey, isCurrentUser, useLargeImage) {
|
function getProfileImage(pubkey, isCurrentUser, useLargeImage) {
|
||||||
if (isCurrentUser || (isCurrentUser === undefined && pubkey === profileModel.profile.pubKey)) {
|
if (isCurrentUser || (isCurrentUser === undefined && pubkey === profileModel.profile.pubKey)) {
|
||||||
return profileModel.profile.thumbnailImage
|
return profileModel.profile.thumbnailImage
|
||||||
@ -67,6 +73,124 @@ RowLayout {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
signal settingsLoaded()
|
||||||
|
|
||||||
|
Settings {
|
||||||
|
id: appSettings
|
||||||
|
fileName: profileModel.profileSettingsFile
|
||||||
|
property var chatSplitView
|
||||||
|
property var walletSplitView
|
||||||
|
property var profileSplitView
|
||||||
|
property bool communitiesEnabled: false
|
||||||
|
property bool walletEnabled: false
|
||||||
|
property bool nodeManagementEnabled: false
|
||||||
|
property bool browserEnabled: false
|
||||||
|
property bool displayChatImages: false
|
||||||
|
property bool useCompactMode: false
|
||||||
|
property bool timelineEnabled: true
|
||||||
|
property string locale: "en"
|
||||||
|
property var recentEmojis: []
|
||||||
|
property real volume: 0.2
|
||||||
|
property int notificationSetting: Constants.notifyAllMessages
|
||||||
|
property bool notificationSoundsEnabled: true
|
||||||
|
property bool useOSNotifications: true
|
||||||
|
property int notificationMessagePreviewSetting: Constants.notificationPreviewNameAndMessage
|
||||||
|
property bool allowNotificationsFromNonContacts: false
|
||||||
|
property var whitelistedUnfurlingSites: ({})
|
||||||
|
property bool neverAskAboutUnfurlingAgain: false
|
||||||
|
property bool hideChannelSuggestions: false
|
||||||
|
property int fontSize: Constants.fontSizeM
|
||||||
|
property bool hideSignPhraseModal: false
|
||||||
|
property bool onlyShowContactsProfilePics: true
|
||||||
|
|
||||||
|
// Browser settings
|
||||||
|
property bool showBrowserSelector: true
|
||||||
|
property bool openLinksInStatus: true
|
||||||
|
property bool showFavoritesBar: false
|
||||||
|
property string browserHomepage: ""
|
||||||
|
property int browserSearchEngine: Constants.browserSearchEngineNone
|
||||||
|
property int browserEthereumExplorer: Constants.browserEthereumExplorerNone
|
||||||
|
property bool autoLoadImages: true
|
||||||
|
property bool javaScriptEnabled: true
|
||||||
|
property bool errorPageEnabled: true
|
||||||
|
property bool pluginsEnabled: true
|
||||||
|
property bool autoLoadIconsForPage: true
|
||||||
|
property bool touchIconsEnabled: true
|
||||||
|
property bool webRTCPublicInterfacesOnly: false
|
||||||
|
property bool devToolsEnabled: false
|
||||||
|
property bool pdfViewerEnabled: true
|
||||||
|
property bool compatibilityMode: true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ErrorSound {
|
||||||
|
id: errorSound
|
||||||
|
}
|
||||||
|
|
||||||
|
Audio {
|
||||||
|
id: sendMessageSound
|
||||||
|
audioRole: Audio.NotificationRole
|
||||||
|
source: "../../../../sounds/send_message.wav"
|
||||||
|
volume: appSettings.volume
|
||||||
|
muted: !appSettings.notificationSoundsEnabled
|
||||||
|
}
|
||||||
|
|
||||||
|
Audio {
|
||||||
|
id: notificationSound
|
||||||
|
audioRole: Audio.NotificationRole
|
||||||
|
source: "../../../../sounds/notification.wav"
|
||||||
|
volume: appSettings.volume
|
||||||
|
muted: !appSettings.notificationSoundsEnabled
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: profileModel
|
||||||
|
onProfileSettingsFileChanged: {
|
||||||
|
if (appSettings.locale !== "en") {
|
||||||
|
profileModel.changeLocale(appSettings.locale)
|
||||||
|
}
|
||||||
|
const whitelist = profileModel.getLinkPreviewWhitelist()
|
||||||
|
try {
|
||||||
|
const whiteListedSites = JSON.parse(whitelist)
|
||||||
|
let settingsUpdated = false
|
||||||
|
const settings = appSettings.whitelistedUnfurlingSites
|
||||||
|
const whitelistedHostnames = []
|
||||||
|
|
||||||
|
// Add whitelisted sites in to app settings that are not already there
|
||||||
|
whiteListedSites.forEach(site => {
|
||||||
|
if (!settings.hasOwnProperty(site.address)) {
|
||||||
|
settings[site.address] = false
|
||||||
|
settingsUpdated = true
|
||||||
|
}
|
||||||
|
whitelistedHostnames.push(site.address)
|
||||||
|
})
|
||||||
|
// Remove any whitelisted sites from app settings that don't exist in the
|
||||||
|
// whitelist from status-go
|
||||||
|
Object.keys(settings).forEach(settingsHostname => {
|
||||||
|
if (!whitelistedHostnames.includes(settingsHostname)) {
|
||||||
|
delete settings[settingsHostname]
|
||||||
|
settingsUpdated = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (settingsUpdated) {
|
||||||
|
appSettings.whitelistedUnfurlingSites = settings
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Could not parse the whitelist for sites', e)
|
||||||
|
}
|
||||||
|
appMain.settingsLoaded()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Connections {
|
||||||
|
target: profileModel
|
||||||
|
ignoreUnknownSignals: true
|
||||||
|
enabled: removeMnemonicAfterLogin
|
||||||
|
onInitialized: {
|
||||||
|
profileModel.mnemonic.remove()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Component {
|
Component {
|
||||||
id: chooseBrowserPopupComponent
|
id: chooseBrowserPopupComponent
|
||||||
ChooseBrowserPopup {
|
ChooseBrowserPopup {
|
||||||
|
156
ui/main.qml
156
ui/main.qml
@ -3,7 +3,6 @@ import QtQuick.Controls 2.13
|
|||||||
import QtQuick.Layouts 1.13
|
import QtQuick.Layouts 1.13
|
||||||
import Qt.labs.platform 1.1
|
import Qt.labs.platform 1.1
|
||||||
import QtQml.StateMachine 1.14 as DSM
|
import QtQml.StateMachine 1.14 as DSM
|
||||||
import QtMultimedia 5.13
|
|
||||||
import Qt.labs.settings 1.0
|
import Qt.labs.settings 1.0
|
||||||
import QtQuick.Window 2.12
|
import QtQuick.Window 2.12
|
||||||
import QtQml 2.13
|
import QtQml 2.13
|
||||||
@ -18,6 +17,7 @@ import "./imports"
|
|||||||
|
|
||||||
ApplicationWindow {
|
ApplicationWindow {
|
||||||
property bool hasAccounts: !!loginModel.rowCount()
|
property bool hasAccounts: !!loginModel.rowCount()
|
||||||
|
property bool removeMnemonicAfterLogin: false
|
||||||
|
|
||||||
Universal.theme: Universal.System
|
Universal.theme: Universal.System
|
||||||
|
|
||||||
@ -69,166 +69,14 @@ ApplicationWindow {
|
|||||||
|
|
||||||
signal navigateTo(string path)
|
signal navigateTo(string path)
|
||||||
|
|
||||||
ErrorSound {
|
|
||||||
id: errorSound
|
|
||||||
}
|
|
||||||
|
|
||||||
Audio {
|
|
||||||
id: sendMessageSound
|
|
||||||
audioRole: Audio.NotificationRole
|
|
||||||
source: "../../../../sounds/send_message.wav"
|
|
||||||
volume: appSettings.volume
|
|
||||||
muted: !appSettings.notificationSoundsEnabled
|
|
||||||
}
|
|
||||||
|
|
||||||
Audio {
|
|
||||||
id: notificationSound
|
|
||||||
audioRole: Audio.NotificationRole
|
|
||||||
source: "../../../../sounds/notification.wav"
|
|
||||||
volume: appSettings.volume
|
|
||||||
muted: !appSettings.notificationSoundsEnabled
|
|
||||||
}
|
|
||||||
|
|
||||||
signal settingsLoaded()
|
|
||||||
|
|
||||||
Settings {
|
Settings {
|
||||||
id: defaultAppSettings
|
id: defaultAppSettings
|
||||||
property bool communitiesEnabled: false
|
|
||||||
property bool walletEnabled: false
|
|
||||||
property bool nodeManagementEnabled: false
|
|
||||||
property bool browserEnabled: false
|
|
||||||
property bool displayChatImages: false
|
|
||||||
property bool timelineEnabled: true
|
|
||||||
property bool useCompactMode
|
|
||||||
property string locale: "en"
|
|
||||||
property var recentEmojis: []
|
|
||||||
property real volume: 0.2
|
|
||||||
property int notificationSetting: Constants.notifyAllMessages
|
property int notificationSetting: Constants.notifyAllMessages
|
||||||
property bool notificationSoundsEnabled: true
|
property bool notificationSoundsEnabled: true
|
||||||
property bool useOSNotifications: true
|
|
||||||
property int notificationMessagePreviewSetting: Constants.notificationPreviewNameAndMessage
|
property int notificationMessagePreviewSetting: Constants.notificationPreviewNameAndMessage
|
||||||
property bool allowNotificationsFromNonContacts: false
|
property bool allowNotificationsFromNonContacts: false
|
||||||
property var whitelistedUnfurlingSites: ({})
|
|
||||||
property bool neverAskAboutUnfurlingAgain: false
|
|
||||||
property bool hideChannelSuggestions: false
|
|
||||||
property bool hideSignPhraseModal: false
|
|
||||||
property bool onlyShowContactsProfilePics: true
|
|
||||||
|
|
||||||
property int fontSize: Constants.fontSizeM
|
|
||||||
|
|
||||||
// Browser settings
|
|
||||||
property bool showBrowserSelector: true
|
|
||||||
property bool openLinksInStatus: true
|
|
||||||
property bool showFavoritesBar: false
|
|
||||||
property string browserHomepage: ""
|
|
||||||
property int browserSearchEngine: Constants.browserSearchEngineNone
|
|
||||||
property int browserEthereumExplorer: Constants.browserEthereumExplorerNone
|
|
||||||
property bool autoLoadImages: true
|
|
||||||
property bool javaScriptEnabled: true
|
|
||||||
property bool errorPageEnabled: true
|
|
||||||
property bool pluginsEnabled: true
|
|
||||||
property bool autoLoadIconsForPage: true
|
|
||||||
property bool touchIconsEnabled: true
|
|
||||||
property bool webRTCPublicInterfacesOnly: false
|
|
||||||
property bool devToolsEnabled: false
|
|
||||||
property bool pdfViewerEnabled: true
|
|
||||||
property bool compatibilityMode: true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings {
|
|
||||||
id: appSettings
|
|
||||||
fileName: profileModel.profileSettingsFile
|
|
||||||
property var chatSplitView
|
|
||||||
property var walletSplitView
|
|
||||||
property var profileSplitView
|
|
||||||
property bool communitiesEnabled: defaultAppSettings.communitiesEnabled
|
|
||||||
property bool removeMnemonicAfterLogin: false
|
|
||||||
property bool walletEnabled: defaultAppSettings.walletEnabled
|
|
||||||
property bool nodeManagementEnabled: defaultAppSettings.nodeManagementEnabled
|
|
||||||
property bool browserEnabled: defaultAppSettings.browserEnabled
|
|
||||||
property bool displayChatImages: defaultAppSettings.displayChatImages
|
|
||||||
property bool useCompactMode: defaultAppSettings.useCompactMode
|
|
||||||
property bool timelineEnabled: defaultAppSettings.timelineEnabled
|
|
||||||
property string locale: defaultAppSettings.locale
|
|
||||||
property var recentEmojis: defaultAppSettings.recentEmojis
|
|
||||||
property real volume: defaultAppSettings.volume
|
|
||||||
property int notificationSetting: defaultAppSettings.notificationSetting
|
|
||||||
property bool notificationSoundsEnabled: defaultAppSettings.notificationSoundsEnabled
|
|
||||||
property bool useOSNotifications: defaultAppSettings.useOSNotifications
|
|
||||||
property int notificationMessagePreviewSetting: defaultAppSettings.notificationMessagePreviewSetting
|
|
||||||
property bool allowNotificationsFromNonContacts: defaultAppSettings.allowNotificationsFromNonContacts
|
|
||||||
property var whitelistedUnfurlingSites: defaultAppSettings.whitelistedUnfurlingSites
|
|
||||||
property bool neverAskAboutUnfurlingAgain: defaultAppSettings.neverAskAboutUnfurlingAgain
|
|
||||||
property bool hideChannelSuggestions: defaultAppSettings.hideChannelSuggestions
|
|
||||||
property int fontSize: defaultAppSettings.fontSize
|
|
||||||
property bool hideSignPhraseModal: defaultAppSettings.hideSignPhraseModal
|
|
||||||
property bool onlyShowContactsProfilePics: defaultAppSettings.onlyShowContactsProfilePics
|
|
||||||
|
|
||||||
// Browser settings
|
|
||||||
property bool showBrowserSelector: defaultAppSettings.showBrowserSelector
|
|
||||||
property bool openLinksInStatus: defaultAppSettings.openLinksInStatus
|
|
||||||
property bool showFavoritesBar: defaultAppSettings.showFavoritesBar
|
|
||||||
property string browserHomepage: defaultAppSettings.browserHomepage
|
|
||||||
property int browserSearchEngine: defaultAppSettings.browserSearchEngine
|
|
||||||
property int browserEthereumExplorer: defaultAppSettings.browserEthereumExplorer
|
|
||||||
property bool autoLoadImages: defaultAppSettings.autoLoadImages
|
|
||||||
property bool javaScriptEnabled: defaultAppSettings.javaScriptEnabled
|
|
||||||
property bool errorPageEnabled: defaultAppSettings.errorPageEnabled
|
|
||||||
property bool pluginsEnabled: defaultAppSettings.pluginsEnabled
|
|
||||||
property bool autoLoadIconsForPage: defaultAppSettings.autoLoadIconsForPage
|
|
||||||
property bool touchIconsEnabled: defaultAppSettings.touchIconsEnabled
|
|
||||||
property bool webRTCPublicInterfacesOnly: defaultAppSettings.webRTCPublicInterfacesOnly
|
|
||||||
property bool devToolsEnabled: defaultAppSettings.devToolsEnabled
|
|
||||||
property bool pdfViewerEnabled: defaultAppSettings.pdfViewerEnabled
|
|
||||||
property bool compatibilityMode: defaultAppSettings.compatibilityMode
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: profileModel
|
|
||||||
onProfileSettingsFileChanged: {
|
|
||||||
if (appSettings.locale !== "en") {
|
|
||||||
profileModel.changeLocale(appSettings.locale)
|
|
||||||
}
|
|
||||||
const whitelist = profileModel.getLinkPreviewWhitelist()
|
|
||||||
try {
|
|
||||||
const whiteListedSites = JSON.parse(whitelist)
|
|
||||||
let settingsUpdated = false
|
|
||||||
const settings = appSettings.whitelistedUnfurlingSites
|
|
||||||
const whitelistedHostnames = []
|
|
||||||
|
|
||||||
// Add whitelisted sites in to app settings that are not already there
|
|
||||||
whiteListedSites.forEach(site => {
|
|
||||||
if (!settings.hasOwnProperty(site.address)) {
|
|
||||||
settings[site.address] = false
|
|
||||||
settingsUpdated = true
|
|
||||||
}
|
|
||||||
whitelistedHostnames.push(site.address)
|
|
||||||
})
|
|
||||||
// Remove any whitelisted sites from app settings that don't exist in the
|
|
||||||
// whitelist from status-go
|
|
||||||
Object.keys(settings).forEach(settingsHostname => {
|
|
||||||
if (!whitelistedHostnames.includes(settingsHostname)) {
|
|
||||||
delete settings[settingsHostname]
|
|
||||||
settingsUpdated = true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if (settingsUpdated) {
|
|
||||||
appSettings.whitelistedUnfurlingSites = settings
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.error('Could not parse the whitelist for sites', e)
|
|
||||||
}
|
|
||||||
applicationWindow.settingsLoaded()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Connections {
|
|
||||||
target: profileModel
|
|
||||||
ignoreUnknownSignals: true
|
|
||||||
enabled: appSettings.removeMnemonicAfterLogin
|
|
||||||
onInitialized: {
|
|
||||||
profileModel.mnemonic.remove()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
property bool currentlyHasANotification: false
|
property bool currentlyHasANotification: false
|
||||||
|
|
||||||
@ -389,7 +237,7 @@ ApplicationWindow {
|
|||||||
id: existingKey
|
id: existingKey
|
||||||
ExistingKey {
|
ExistingKey {
|
||||||
onClosed: function () {
|
onClosed: function () {
|
||||||
appSettings.removeMnemonicAfterLogin = false
|
removeMnemonicAfterLogin = false
|
||||||
if (hasAccounts) {
|
if (hasAccounts) {
|
||||||
applicationWindow.navigateTo("InitialState")
|
applicationWindow.navigateTo("InitialState")
|
||||||
} else {
|
} else {
|
||||||
|
@ -30,7 +30,7 @@ Item {
|
|||||||
wentNext = true
|
wentNext = true
|
||||||
enterSeedPhraseModal.close()
|
enterSeedPhraseModal.close()
|
||||||
onboardingModel.importMnemonic(mnemonic)
|
onboardingModel.importMnemonic(mnemonic)
|
||||||
appSettings.removeMnemonicAfterLogin = true
|
removeMnemonicAfterLogin = true
|
||||||
recoverySuccessModal.open()
|
recoverySuccessModal.open()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ Popup {
|
|||||||
}
|
}
|
||||||
Connections {
|
Connections {
|
||||||
id: connectionSettings
|
id: connectionSettings
|
||||||
target: applicationWindow
|
target: appMain
|
||||||
onSettingsLoaded: {
|
onSettingsLoaded: {
|
||||||
connectionSettings.enabled = false
|
connectionSettings.enabled = false
|
||||||
// Add recent
|
// Add recent
|
||||||
|
Loading…
x
Reference in New Issue
Block a user