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)
}