harbour-tooter/qml/pages/Settings.qml

227 lines
9.9 KiB
QML
Raw Normal View History

2017-07-20 13:14:16 +03:00
import QtQuick 2.0
import Sailfish.Silica 1.0
2017-07-20 13:14:16 +03:00
import "../lib/API.js" as Logic
Page {
SilicaFlickable {
anchors.fill: parent
contentHeight: column.height + Theme.paddingLarge
contentWidth: parent.width
RemorsePopup { id: remorsePopup }
2017-07-20 13:14:16 +03:00
VerticalScrollDecorator {}
Column {
id: column
spacing: Theme.paddingSmall
width: parent.width
PageHeader {
title: qsTr("Settings")
}
Column {
// No spacing in this column
width: parent.width
IconTextSwitch {
id: removeAccount
text: Logic.conf['login'] ? qsTr("Remove Account") : qsTr("Add Account")
2017-07-20 13:14:16 +03:00
description: Logic.conf['login'] ? qsTr("Deauthorize this app and remove your account") : qsTr("Authorize this app to use your Mastodon account in your behalf")
icon.source: Logic.conf['login'] ? "image://theme/icon-m-people" : "image://theme/icon-m-add"
2017-07-20 16:26:20 +03:00
onCheckedChanged: {
remorsePopup.execute(removeAccount.text, function() {
busy = true;
checked = false;
timer1.start();
if (Logic.conf['login']) {
Logic.conf['login'] = false
Logic.conf['instance'] = null;
Logic.conf['api_user_token'] = null;
}
pageStack.push(Qt.resolvedUrl("LoginPage.qml"))
})
}
/* busy = true;
2017-07-20 16:26:20 +03:00
checked = false;
timer1.start()
}*/
2017-07-20 16:26:20 +03:00
Timer {
id: timer1
interval: 4700
onTriggered: parent.busy = false
}
2017-07-20 13:14:16 +03:00
}
IconTextSwitch {
//enabled: false
checked: typeof Logic.conf['loadImages'] !== "undefined" && Logic.conf['loadImages']
text: qsTr("Load Images in Toots")
2017-07-20 13:14:16 +03:00
description: qsTr("Disable this option if you want to preserve your data connection")
icon.source: "image://theme/icon-m-mobile-network"
onClicked: {
Logic.conf['loadImages'] = checked
}
}
// IconTextSwitch {
// text: qsTr("Translate")
// description: qsTr("Use Transifex to help with app translation to your language")
// icon.source: "image://theme/icon-m-presence"
// onCheckedChanged: {
// busy = true;
// checked = false;
// Qt.openUrlExternally("https://www.transifex.com/dysko/tooter/");
// timer2.start()
// }
// Timer {
// id: timer2
// interval: 4700
// onTriggered: parent.busy = false
// }
// }
2017-07-20 13:14:16 +03:00
}
SectionHeader {
text: qsTr("About")
}
Text {
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
text: qsTr("This application is a forked version of the Mastodon client Tooter, originally developed by Duško Angirević, which fixes various bugs. Source code on <a href=\'https://github.com/molan-git/harbour-tooter'>GitHub</a>.")
font.pixelSize: Theme.fontSizeExtraSmall
color: Theme.secondaryColor
linkColor: Theme.secondaryHighlightColor
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
onLinkActivated: Qt.openUrlExternally(link)
}
2019-12-29 00:55:29 +03:00
2017-07-20 13:14:16 +03:00
SectionHeader {
text: qsTr("Credits")
}
Column {
width: parent.width
anchors {
left: parent.left
right: parent.right
rightMargin: Theme.horizontalPageMargin
}
Repeater {
model: ListModel {
ListElement {
name: "molan"
2020-01-30 14:50:52 +03:00
desc: qsTr("Maintainer of this release")
mastodon: ""
mail: "mol_an@sunrise.ch"
}
2017-07-20 13:14:16 +03:00
ListElement {
name: "Duško Angirević"
desc: qsTr("UI/UX design and development")
mastodon: "dysko@mastodon.social"
mail: ""
}
ListElement {
name: "Miodrag Nikolić"
2020-01-30 14:50:52 +03:00
desc: qsTr("Visual identity")
2017-07-20 13:14:16 +03:00
mastodon: ""
mail: "micotakis@gmail.com"
}
ListElement {
name: "molan"
desc: qsTr("Development and maintenence")
mastodon: ""
mail: "mol_an@sunrise.ch"
}
2017-07-20 13:14:16 +03:00
ListElement {
name: "Quentin PAGÈS / Quenti ♏"
2020-01-30 14:50:52 +03:00
desc: qsTr("Occitan & French translation")
2017-07-20 13:14:16 +03:00
mastodon: "Quenti@framapiaf.org"
mail: ""
}
2020-01-31 13:01:30 +03:00
ListElement {
name: "Luchy Kon / dashinfantry"
desc: qsTr("Chinese translation")
mastodon: ""
mail: "dashinfantry@gmail.com"
}
2017-07-20 13:14:16 +03:00
ListElement {
name: "André Koot"
2020-01-30 14:50:52 +03:00
desc: qsTr("Dutch translation")
2017-07-20 13:14:16 +03:00
mastodon: "meneer@mastodon.social"
mail: "https://twitter.com/meneer"
}
ListElement {
2020-02-04 00:52:28 +03:00
name: "CarmenFdez"
2020-01-30 14:50:52 +03:00
desc: qsTr("Spanish translation")
2017-07-20 13:14:16 +03:00
mastodon: ""
2020-02-04 00:52:28 +03:00
mail: ""
2017-07-20 13:14:16 +03:00
}
2020-01-31 13:01:30 +03:00
ListElement {
name: "Mohamed-Touhami MAHDI"
desc: qsTr("Added README file")
mastodon: "dragnucs@touha.me"
mail: "touhami@touha.me"
}
2017-07-20 13:14:16 +03:00
}
Item {
width: parent.width
height: Theme.itemSizeMedium
IconButton {
id: btn
anchors {
verticalCenter: parent.verticalCenter
right: parent.right
}
icon.source: "image://theme/" + (model.mastodon !== "" ? "icon-m-person" : "icon-m-mail") + "?" + (pressed
? Theme.highlightColor
: Theme.primaryColor)
onClicked: {
if (model.mastodon !== ""){
var m = Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject');
pageStack.push(Qt.resolvedUrl("Conversation.qml"), {
toot_id: 0,
title: model.name,
description: '@'+model.mastodon,
avatar: "",
mdl: m,
type: "reply"
})
} else {
Qt.openUrlExternally("mailto:"+model.mail);
}
}
}
Column {
anchors {
verticalCenter: parent.verticalCenter
left: parent.left
leftMargin: Theme.horizontalPageMargin
right: btn.left
rightMargin: Theme.paddingMedium
}
Label {
id: lblName
text: model.name
color: Theme.secondaryColor
font.pixelSize: Theme.fontSizeSmall
}
Label {
text: model.desc
color: Theme.secondaryHighlightColor
font.pixelSize: Theme.fontSizeExtraSmall
}
}
}
}
}
}
}
}