diff --git a/README.md b/README.md index 60f78f2..b8d3cb3 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,18 @@ ## About Tooter is Mastodon client for Sailfish OS. It is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. -This is a fork of dysk0/harbour-tooter. The app can by downloaded here: https://openrepos.net/content/molan/tooter-fork. +This fork is being used to further develop and maintain the Tooter app by dysk0 (https://github.com/dysk0/harbour-tooter). The development branch 'upstream' is being used to create pull requests from this fork. Releases by dysk0 can be found on the Jolla store and on https://openrepos.net/content/dysko/tooter + +Releases from this forked repository can be found here: https://openrepos.net/content/molan/tooter-fork. ## Build Clone / download this repository and import it in your SailfishOS IDE using the harbour-tooter.pro project file. No additional configuration needed. +## Repository branches: +- master: default +- develop: commits WIP +- upstream: commits for Tooter release + ## Contributions Contributions to this project are very welcome, since I don't have the resources and time to implement and fix everything Tooter still misses or lacks. Thank you! diff --git a/harbour-tooter.pro b/harbour-tooter.pro index 8b1cb5f..6a1b13c 100644 --- a/harbour-tooter.pro +++ b/harbour-tooter.pro @@ -73,16 +73,14 @@ DISTFILES += qml/harbour-tooter.qml \ qml/pages/Settings.qml \ qml/lib/API.js \ qml/images/notification.svg \ - qml/images/home.svg \ - qml/images/mesagess.svg \ - qml/images/search.svg \ qml/images/verified.svg \ - qml/images/local.svg \ - qml/images/federated.svg \ + qml/images/boosted.svg \ qml/images/tooter.svg \ + qml/images/emojiselect.svg \ + qml/images/icon-m-profile.svg \ + qml/images/icon-l-profile.svg \ qml/lib/Mastodon.js \ qml/lib/Worker.js \ - qml/images/boosted.svg \ config/icon-lock-harbour-tooter.png \ config/x-harbour.tooter.activity.conf \ rpm/harbour-tooter.changes \ @@ -115,3 +113,4 @@ TRANSLATIONS += translations/harbour-tooter-ru.ts TRANSLATIONS += translations/harbour-tooter-sr.ts TRANSLATIONS += translations/harbour-tooter-sv.ts TRANSLATIONS += translations/harbour-tooter-zh_CN.ts +TRANSLATIONS += translations/harbour-tooter-it.ts diff --git a/qml/images/icon-l-profile.svg b/qml/images/icon-l-profile.svg new file mode 100644 index 0000000..f4445c4 --- /dev/null +++ b/qml/images/icon-l-profile.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/qml/images/icon-m-profile.svg b/qml/images/icon-m-profile.svg new file mode 100644 index 0000000..896129e --- /dev/null +++ b/qml/images/icon-m-profile.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/qml/pages/LoginPage.qml b/qml/pages/LoginPage.qml index 235315c..c3874fb 100644 --- a/qml/pages/LoginPage.qml +++ b/qml/pages/LoginPage.qml @@ -68,7 +68,8 @@ Page { width: parent.width validator: RegExpValidator { regExp: /^(ftp|http|https):\/\/[^ "]+$/ } EnterKey.enabled: instance.acceptableInput; - EnterKey.iconSource: "image://theme/icon-m-enter-next" + EnterKey.highlighted: instance.acceptableInput; + EnterKey.iconSource: "image://theme/icon-m-accept" EnterKey.onClicked: { Logic.api = new Logic.MastodonAPI({ instance: instance.text, api_user_token: "" }); Logic.api.registerApplication("Tooter", @@ -110,13 +111,14 @@ Page { anchors { left: parent.left right: parent.right - leftMargin: Theme.paddingLarge - rightMargin: Theme.paddingLarge + topMargin: Theme.paddingMedium + leftMargin: Theme.horizontalPageMargin + rightMargin: Theme.horizontalPageMargin } width: parent.width wrapMode: Text.WordWrap - color: Theme.secondaryHighlightColor + color: Theme.highlightColor font.pixelSize: Theme.fontSizeExtraSmall text: qsTr("Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.") } diff --git a/qml/pages/Profile.qml b/qml/pages/Profile.qml index c26c7ed..d7b8e42 100644 --- a/qml/pages/Profile.qml +++ b/qml/pages/Profile.qml @@ -72,7 +72,7 @@ Page { // line below was commented out, reason unknown // username = messageObject.data break; - case 'locked':m + case 'locked': locked = messageObject.data break; case 'created_at': diff --git a/qml/pages/Settings.qml b/qml/pages/Settings.qml index 05c3398..00d6874 100644 --- a/qml/pages/Settings.qml +++ b/qml/pages/Settings.qml @@ -25,8 +25,8 @@ Page { IconTextSwitch { id: removeAccount text: Logic.conf['login'] ? qsTr("Remove Account") : qsTr("Add Account") - 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" + description: Logic.conf['login'] ? qsTr("Deauthorize this app and remove your account") : qsTr("Authorize this app to access your Mastodon account") + icon.source: Logic.conf['login'] ? "image://theme/icon-m-contact" : "image://theme/icon-m-add" onCheckedChanged: { @@ -59,7 +59,7 @@ Page { checked: typeof Logic.conf['loadImages'] !== "undefined" && Logic.conf['loadImages'] text: qsTr("Load images in toots") description: qsTr("Disable this option if you want to preserve your data connection") - icon.source: "image://theme/icon-m-mobile-network" + icon.source: "image://theme/icon-m-image" onClicked: { Logic.conf['loadImages'] = checked } @@ -67,7 +67,7 @@ Page { IconTextSwitch { text: qsTr("Translate") description: qsTr("Use Transifex to help with app translation to your language") - icon.source: "image://theme/icon-m-presence" + icon.source: "image://theme/icon-m-font-size" onCheckedChanged: { busy = true; checked = false; @@ -108,7 +108,7 @@ Page { } ListElement { name: "Molan" - desc: qsTr("Development and maintenance") + desc: qsTr("Development and translations") mastodon: "" mail: "mol_an@sunrise.ch" } @@ -153,7 +153,7 @@ Page { verticalCenter: parent.verticalCenter right: parent.right } - icon.source: "image://theme/" + (model.mastodon !== "" ? "icon-m-person" : "icon-m-mail") + "?" + (pressed + icon.source: "image://theme/" + (model.mastodon !== "" ? "icon-m-contact" : "icon-m-mail") + "?" + (pressed ? Theme.highlightColor : Theme.primaryColor) onClicked: { diff --git a/qml/pages/components/ProfileHeader.qml b/qml/pages/components/ProfileHeader.qml index 8dd369c..54b9874 100644 --- a/qml/pages/components/ProfileHeader.qml +++ b/qml/pages/components/ProfileHeader.qml @@ -37,7 +37,12 @@ Item { asynchronous: true width: description === "" ? Theme.iconSizeMedium : Theme.iconSizeLarge height: width - source: image + source: + if (icon.status === Image.Error) + source = "../../images/icon-l-profile.svg?" + (pressed + ? Theme.highlightColor + : Theme.primaryColor) + else image } Column { anchors { @@ -61,7 +66,7 @@ Item { Label { height: description === "" ? 0 : contentHeight text: description - color: Theme.primaryColor + color: Theme.secondaryColor font.pixelSize: Theme.fontSizeSmall font.family: Theme.fontFamilyHeading horizontalAlignment: Text.AlignRight diff --git a/qml/pages/components/VisualContainer.qml b/qml/pages/components/VisualContainer.qml index 2d42d6c..a7bc245 100644 --- a/qml/pages/components/VisualContainer.qml +++ b/qml/pages/components/VisualContainer.qml @@ -46,7 +46,7 @@ BackgroundItem { visible: true onStatusChanged: { if (avatar.status === Image.Error) - source = "image://theme/icon-m-person?" + (pressed + source = "../../images/icon-m-profile.svg?" + (pressed ? Theme.highlightColor : Theme.primaryColor) }