summaryrefslogtreecommitdiff
path: root/settings/accounts/ui/mastodon-settings.qml
diff options
context:
space:
mode:
Diffstat (limited to 'settings/accounts/ui/mastodon-settings.qml')
-rw-r--r--settings/accounts/ui/mastodon-settings.qml66
1 files changed, 66 insertions, 0 deletions
diff --git a/settings/accounts/ui/mastodon-settings.qml b/settings/accounts/ui/mastodon-settings.qml
new file mode 100644
index 0000000..ae79ce4
--- /dev/null
+++ b/settings/accounts/ui/mastodon-settings.qml
@@ -0,0 +1,66 @@
+import QtQuick 2.0
+import Sailfish.Silica 1.0
+import Sailfish.Accounts 1.0
+import com.jolla.settings.accounts 1.0
+
+AccountSettingsAgent {
+ id: root
+
+ initialPage: Page {
+ onPageContainerChanged: {
+ if (pageContainer == null && !credentialsUpdater.running) {
+ root.delayDeletion = true
+ settingsDisplay.saveAccount()
+ }
+ }
+
+ Component.onDestruction: {
+ if (status == PageStatus.Active) {
+ settingsDisplay.saveAccount(true)
+ }
+ }
+
+ AccountCredentialsUpdater {
+ id: credentialsUpdater
+ }
+
+ SilicaFlickable {
+ anchors.fill: parent
+ contentHeight: header.height + settingsDisplay.height + Theme.paddingLarge
+
+ StandardAccountSettingsPullDownMenu {
+ visible: settingsDisplay.accountValid
+ allowSync: true
+ onCredentialsUpdateRequested: {
+ credentialsUpdater.replaceWithCredentialsUpdatePage(root.accountId)
+ }
+ onAccountDeletionRequested: {
+ root.accountDeletionRequested()
+ pageStack.pop()
+ }
+ onSyncRequested: {
+ settingsDisplay.saveAccountAndSync()
+ }
+ }
+
+ PageHeader {
+ id: header
+ title: root.accountsHeaderText
+ }
+
+ MastodonSettingsDisplay {
+ id: settingsDisplay
+ anchors.top: header.bottom
+ accountManager: root.accountManager
+ accountProvider: root.accountProvider
+ accountId: root.accountId
+
+ onAccountSaveCompleted: {
+ root.delayDeletion = false
+ }
+ }
+
+ VerticalScrollDecorator {}
+ }
+ }
+}