Merge pull request #2 from molan-git/master

Updated from molan-git
This commit is contained in:
Carmen F. B 2020-05-28 23:04:16 +02:00 committed by GitHub
commit 3247768af1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 479 additions and 329 deletions

View file

@ -3,20 +3,20 @@
## About ## 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. 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 fork is being used to further develop and maintain the Tooter app by dysko (https://github.com/dysk0/harbour-tooter). The development branch 'upstream' is being for merge requests with the original repository. Releases by dysko can be found on the Jolla store and on https://openrepos.net/content/dysko/tooter This fork is being used to further develop and maintain the Tooter app by dysko (https://github.com/dysk0/harbour-tooter). The development branch 'upstream' is being used for merge pull requests to the original repository. Releases by dysko can be found on the Jolla store and on https://openrepos.net/content/dysko/tooter
Releases from this forked repository (branch 'master') can be found here: https://openrepos.net/content/molan/tooter-fork. Releases from this forked repository (branch 'master') can be found here: https://openrepos.net/content/molan/tooter-v-fork.
## Build ## Build
Clone / download this repository and import it in your SailfishOS IDE using the harbour-tooter.pro project file. No additional configuration needed. Clone / download this repository and import it in your SailfishOS IDE using the harbour-tooter.pro project file. No additional configuration needed.
## Repository branches: ## Repository branches:
- master: default (Beta release version) - master: default (Beta release version, harbour-tooterb)
- develop: commits WIP - upstream: commits for Tooter release (harbour-tooter)
- upstream: commits for Tooter release
## Contributions ## 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! Contributions to this project are very welcome, since there are still many things which can be done for Tooter.
- please fork the upstream branch if you want to contribute to this project.
## Screenshots ## Screenshots
<img width="200" title="Page Home" src="https://telegra.ph/file/710bba46d9f818e0f88ab.png"> <img width="200" title="Page Profile" src="https://telegra.ph/file/c5b504f637c874861eeee.png"> <img width="200" title="Page Conversation" src="https://telegra.ph/file/c9584f8d68c89827c53e5.png"> <img width="200" title="Page Home" src="https://telegra.ph/file/710bba46d9f818e0f88ab.png"> <img width="200" title="Page Profile" src="https://telegra.ph/file/c5b504f637c874861eeee.png"> <img width="200" title="Page Conversation" src="https://telegra.ph/file/c9584f8d68c89827c53e5.png">

View file

@ -37,10 +37,9 @@ dbus_services.path = /usr/share/dbus-1/services/
dbus_services.files = config/ba.dysko.harbour.tooterb.service dbus_services.files = config/ba.dysko.harbour.tooterb.service
interfaces.path = /usr/share/dbus-1/interfaces/ interfaces.path = /usr/share/dbus-1/interfaces/
interfaces.files = config/ba.dysko.harbour.tooterb.xml interfaces.files = config/ba.dysko.harbourb.tooterb.xml
SOURCES += \ SOURCES += src/harbour-tooterb.cpp
src/harbour-tooterb.cpp
SOURCES += src/imageuploader.cpp SOURCES += src/imageuploader.cpp
SOURCES += src/filedownloader.cpp SOURCES += src/filedownloader.cpp
SOURCES += src/notifications.cpp SOURCES += src/notifications.cpp
@ -54,8 +53,7 @@ HEADERS += src/dbusAdaptor.h
HEADERS += src/dbus.h HEADERS += src/dbus.h
DISTFILES += qml/harbour-tooterb.qml \ DISTFILES += qml/harbour-tooterb.qml \
config/icon-lock-harbour-tooterb.png \ qml/pages/components/InfoBanner.qml \
qml/images/tooterb.svg \
qml/pages/components/VisualContainer.qml \ qml/pages/components/VisualContainer.qml \
qml/pages/components/MiniStatus.qml \ qml/pages/components/MiniStatus.qml \
qml/pages/components/MiniHeader.qml \ qml/pages/components/MiniHeader.qml \
@ -78,18 +76,20 @@ DISTFILES += qml/harbour-tooterb.qml \
qml/images/notification.svg \ qml/images/notification.svg \
qml/images/verified.svg \ qml/images/verified.svg \
qml/images/boosted.svg \ qml/images/boosted.svg \
qml/images/tooterb.svg \
qml/images/emojiselect.svg \ qml/images/emojiselect.svg \
qml/images/icon-m-profile.svg \ qml/images/icon-m-profile.svg \
qml/images/icon-l-profile.svg \ qml/images/icon-l-profile.svg \
qml/lib/Mastodon.js \ qml/lib/Mastodon.js \
qml/lib/Worker.js \ qml/lib/Worker.js \
config/icon-lock-harbour-tooterb.png \
config/x-harbour.tooterb.activity.conf \ config/x-harbour.tooterb.activity.conf \
rpm/harbour-tooterb.changes \ rpm/harbour-tooterb.changes \
rpm/harbour-tooterb.changes.run.in \ rpm/harbour-tooterb.changes.run.in \
rpm/harbour-tooterb.spec \ rpm/harbour-tooterb.spec \
rpm/harbour-tooterb.yaml \ rpm/harbour-tooterb.yaml \
translations/*.ts \ translations/*.ts \
harbour-tooterb.desktop harbour-tooterb.desktop
SAILFISHAPP_ICONS = 86x86 108x108 128x128 172x172 SAILFISHAPP_ICONS = 86x86 108x108 128x128 172x172

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.9.1, 2020-05-06T15:39:14. --> <!-- Written by QtCreator 4.9.1, 2020-05-11T10:29:25. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
@ -54,19 +54,24 @@
</data> </data>
<data> <data>
<variable>ProjectExplorer.Project.PluginSettings</variable> <variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap"/> <valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
</valuemap>
</data> </data>
<data> <data>
<variable>ProjectExplorer.Project.Target.0</variable> <variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">SailfishOS-3.2.1.20-i486 (in Sailfish OS Build Engine)</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">SailfishOS-3.3.0.16-armv7hl (in Sailfish OS Build Engine)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">SailfishOS-3.2.1.20-i486 (in Sailfish OS Build Engine)</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">SailfishOS-3.3.0.16-armv7hl (in Sailfish OS Build Engine)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">SailfishOS-3.2.1.20-i486</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">SailfishOS-3.3.0.16-armv7hl</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value> <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">1</value> <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/build-harbour-tooterb-SailfishOS_3_2_1_20_i486_in_Sailfish_OS_Build_Engine-Debug</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/Github-App/build-harbour-tooterb-SailfishOS_3_3_0_16_armv7hl_in_Sailfish_OS_Build_Engine-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -134,7 +139,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/build-harbour-tooterb-SailfishOS_3_2_1_20_i486_in_Sailfish_OS_Build_Engine-Release</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/Github-App/build-harbour-tooterb-SailfishOS_3_3_0_16_armv7hl_in_Sailfish_OS_Build_Engine-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -202,7 +207,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/build-harbour-tooterb-SailfishOS_3_2_1_20_i486_in_Sailfish_OS_Build_Engine-Profile</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/Github-App/build-harbour-tooterb-SailfishOS_3_3_0_16_armv7hl_in_Sailfish_OS_Build_Engine-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -271,6 +276,30 @@
</valuemap> </valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value> <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Prepare Target</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerPrepareTargetStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">RPM</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRpmDeployStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy As RPM Package</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRpmDeployConfiguration</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -294,7 +323,7 @@
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerMb2RpmBuildConfiguration</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerMb2RpmBuildConfiguration</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.1"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.2">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -318,30 +347,6 @@
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRSyncDeployConfiguration</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRSyncDeployConfiguration</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.2">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Prepare Target</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerPrepareTargetStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">RPM</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRpmDeployStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy As RPM Package</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRpmDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">3</value> <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
@ -394,7 +399,7 @@
<value type="int">13</value> <value type="int">13</value>
<value type="int">14</value> <value type="int">14</value>
</valuelist> </valuelist>
<value type="QString" key="MerRunConfiguration.QmlLiveBenchWorkspace">C:/Users/XPAM/Github/harbour-tooter-master</value> <value type="QString" key="MerRunConfiguration.QmlLiveBenchWorkspace">C:/Users/XPAM/Github/Github-App/harbour-tooter</value>
<value type="bool" key="MerRunConfiguration.QmlLiveEnabled">false</value> <value type="bool" key="MerRunConfiguration.QmlLiveEnabled">false</value>
<value type="int" key="MerRunConfiguration.QmlLiveIpcPort">-1</value> <value type="int" key="MerRunConfiguration.QmlLiveIpcPort">-1</value>
<value type="int" key="MerRunConfiguration.QmlLiveOptions">3</value> <value type="int" key="MerRunConfiguration.QmlLiveOptions">3</value>
@ -402,8 +407,8 @@
<value type="int" key="PE.EnvironmentAspect.Base">1</value> <value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">harbour-tooterb (on Sailfish OS Emulator 3.2.1.20)</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">harbour-tooterb (on Sailfish OS Emulator 3.3.0.16)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRunConfiguration:C:/Users/XPAM/Github/harbour-tooter-master/harbour-tooterb.pro</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRunConfiguration:C:/Users/XPAM/Github/Github-App/harbour-tooter/harbour-tooterb.pro</value>
<value type="int" key="RemoteLinux.EnvironmentAspect.Version">1</value> <value type="int" key="RemoteLinux.EnvironmentAspect.Version">1</value>
<value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value> <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
<value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value> <value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value>
@ -423,14 +428,14 @@
<data> <data>
<variable>ProjectExplorer.Project.Target.1</variable> <variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">SailfishOS-3.2.1.20-armv7hl (in Sailfish OS Build Engine)</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">SailfishOS-3.3.0.16-i486 (in Sailfish OS Build Engine)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">SailfishOS-3.2.1.20-armv7hl (in Sailfish OS Build Engine)</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">SailfishOS-3.3.0.16-i486 (in Sailfish OS Build Engine)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">SailfishOS-3.2.1.20-armv7hl</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">SailfishOS-3.3.0.16-i486</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value> <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">2</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/build-harbour-tooterb-SailfishOS_3_2_1_20_armv7hl_in_Sailfish_OS_Build_Engine-Debug</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/Github-App/build-harbour-tooterb-SailfishOS_3_3_0_16_i486_in_Sailfish_OS_Build_Engine-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -498,7 +503,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/build-harbour-tooterb-SailfishOS_3_2_1_20_armv7hl_in_Sailfish_OS_Build_Engine-Release</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/Github-App/build-harbour-tooterb-SailfishOS_3_3_0_16_i486_in_Sailfish_OS_Build_Engine-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -566,7 +571,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/build-harbour-tooterb-SailfishOS_3_2_1_20_armv7hl_in_Sailfish_OS_Build_Engine-Profile</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/XPAM/Github/Github-App/build-harbour-tooterb-SailfishOS_3_3_0_16_i486_in_Sailfish_OS_Build_Engine-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -635,6 +640,30 @@
</valuemap> </valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value> <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Prepare Target</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerPrepareTargetStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">RPM</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRpmDeployStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy As RPM Package</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRpmDeployConfiguration</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -658,7 +687,7 @@
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerMb2RpmBuildConfiguration</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerMb2RpmBuildConfiguration</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.1"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.2">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -682,30 +711,6 @@
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRSyncDeployConfiguration</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRSyncDeployConfiguration</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.2">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Prepare Target</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerPrepareTargetStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">RPM</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRpmDeployStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy As RPM Package</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRpmDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">3</value> <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
@ -758,7 +763,7 @@
<value type="int">13</value> <value type="int">13</value>
<value type="int">14</value> <value type="int">14</value>
</valuelist> </valuelist>
<value type="QString" key="MerRunConfiguration.QmlLiveBenchWorkspace">C:/Users/XPAM/Github/harbour-tooter-master</value> <value type="QString" key="MerRunConfiguration.QmlLiveBenchWorkspace">C:/Users/XPAM/Github/Github-App/harbour-tooter</value>
<value type="bool" key="MerRunConfiguration.QmlLiveEnabled">false</value> <value type="bool" key="MerRunConfiguration.QmlLiveEnabled">false</value>
<value type="int" key="MerRunConfiguration.QmlLiveIpcPort">-1</value> <value type="int" key="MerRunConfiguration.QmlLiveIpcPort">-1</value>
<value type="int" key="MerRunConfiguration.QmlLiveOptions">3</value> <value type="int" key="MerRunConfiguration.QmlLiveOptions">3</value>
@ -766,8 +771,8 @@
<value type="int" key="PE.EnvironmentAspect.Base">1</value> <value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">harbour-tooterb (on Sailfish OS Emulator 3.2.1.20)</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">harbour-tooterb (on Sailfish OS Emulator 3.3.0.16)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRunConfiguration:C:/Users/XPAM/Github/harbour-tooter-master/harbour-tooterb.pro</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.MerRunConfiguration:C:/Users/XPAM/Github/Github-App/harbour-tooter/harbour-tooterb.pro</value>
<value type="int" key="RemoteLinux.EnvironmentAspect.Version">1</value> <value type="int" key="RemoteLinux.EnvironmentAspect.Version">1</value>
<value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value> <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
<value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value> <value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value>

View file

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 227.9 240.1" enable-background="new 0 0 227.9 240.1" xml:space="preserve">
<g>
<path opacity="0.5" fill="#FFFFFF" d="M122.2,119.8c0,0,0,0.3-0.1,0.9c-0.1,0.6-0.2,1.5-0.3,2.7c-0.2,2.4-0.5,5.8-0.6,10
c-0.2,8.3,0.1,19.5,2.5,30.2c0.6,2.7,1.4,5.3,2.3,7.8c0.9,2.5,2,4.9,3.2,7.1c0.6,1.1,1.2,2.2,2,3.2c0.7,1,1.4,1.9,2.2,2.8
c1.5,1.8,3.2,3.2,4.8,4.5c1.7,1.2,3.4,2.2,5,2.8c1.5,0.8,3.1,1.1,4.3,1.5c2.5,0.5,3.9,0.8,3.9,0.8s-1.4,0.1-4.1,0.3
c-1.3-0.1-2.9,0-4.7-0.4c-1.9-0.2-3.9-0.8-6.1-1.6c-2.2-0.9-4.5-2-6.8-3.6c-1.1-0.8-2.3-1.6-3.3-2.6c-1.1-0.9-2.2-1.9-3.2-3
c-2.1-2.1-4-4.6-5.8-7.1c-1.7-2.6-3.4-5.3-4.9-8.1c-5.9-11.2-9.4-23.2-11.6-32.3c-1.1-4.6-1.8-8.4-2.2-11.2
c-0.2-1.4-0.4-2.5-0.5-3.2c-0.1-0.8-0.2-1.2-0.2-1.2l0-0.4c-0.8-6.7,4-12.9,10.7-13.7c6.7-0.8,12.9,4,13.7,10.7
C122.4,117.7,122.4,118.8,122.2,119.8z"/>
<g opacity="0.2">
<path fill="#FFFFFF" d="M43.7,12.5c3-1.1,6.1-2.1,9.2-3.1c-3.6-2-10.7-4.7-24.8-5.5C28.1,3.9,40.4,7.9,43.7,12.5z"/>
<path fill="#FFFFFF" d="M151.5,156.8v-33.4c-3.7,0-7.3,0-9.7,0c6,0,8.5-5.5,9.5-11c-1.5-34.8-21.5-67.6-55.1-83.7
c-6.9-3.3-14-5.7-21.2-7.3c12-5,26.5-7.4,26.5-7.4c-17.7-0.7-32.2,1.9-43.2,5.2c-0.6,0-1.2,0-1.8,0C67.8,10.9,87.2,5.4,87.2,5.4
c-27.8,0-55.5,12.7-72.8,22c-0.7,0-1.4-0.1-2-0.1c-30.8,0-55.9,25-55.9,55.9c0,5.3,0.8,10.5,2.2,15.3c-0.4,2-0.6,4.1-0.9,6.1
l-31.6,31.6V246H54.3h14h19.6h20v-93.7c0,0,4.6,77.8,32.3,77.8c4.3,0,8.4,0,11.5,0v-16.4c-3.7,0-7.3,0-9.7,0c6.3,0,8.7-6,9.7-11.8
v-33.4c-3.7,0-7.3,0-9.7,0C148.1,168.5,150.6,162.5,151.5,156.8z"/>
</g>
<path opacity="0.2" d="M98.6,124.4c-0.2-1.4-0.4-2.5-0.5-3.2c-0.1-0.8-0.2-1.2-0.2-1.2l0-0.4c-0.8-6.7,4-12.9,10.7-13.7
c6.7-0.8,12.9,4,13.7,10.7c0.1,1.1,0.1,2.2,0,3.3c0,0,0,0.3-0.1,0.9c-0.1,0.6-0.2,1.5-0.3,2.7c-0.1,1.1-0.2,2.5-0.3,4.1
c2.1-2.6,3.4-5.8,3.4-9.4c0-8.2-6.6-14.8-14.8-14.8c-8.2,0-14.8,6.6-14.8,14.8c0,3.8,1.5,7.2,3.8,9.9
C99,126.7,98.8,125.4,98.6,124.4z"/>
<path opacity="0.2" d="M89.5,76.4c18.5,26.1-10.2,54.9-36.4,36.4c-0.7-0.5-1.4-1.2-1.9-1.9C32.7,84.7,61.5,56,87.6,74.5
C88.4,75,89,75.7,89.5,76.4z"/>
<circle opacity="0.5" fill="#FFFFFF" cx="74.7" cy="83.5" r="13.8"/>
<circle opacity="0.5" cx="78" cy="83.5" r="6.4"/>
<path opacity="0.2" d="M12.4,139c-30.8,0-55.9-25-55.9-55.9c0-1.2,0.1-2.3,0.2-3.5C-45,84.7-46,90-46,95.5
c0,26.8,21.7,48.6,48.6,48.6c9.4,0,18.2-2.7,25.6-7.4C23.2,138.2,17.9,139,12.4,139z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -132,11 +132,13 @@ function parseAccounts(collection, prefix, data){
res[prefix + 'account_username'] = data["username"] res[prefix + 'account_username'] = data["username"]
res[prefix + 'account_acct'] = data["acct"] res[prefix + 'account_acct'] = data["acct"]
res[prefix + 'account_display_name'] = data["display_name"] res[prefix + 'account_display_name'] = data["display_name"]
res[prefix + 'account_discoverable'] = data["discoverable"]
res[prefix + 'account_locked'] = data["locked"] res[prefix + 'account_locked'] = data["locked"]
res[prefix + 'account_created_at'] = data["created_at"] res[prefix + 'account_created_at'] = data["created_at"]
res[prefix + 'account_avatar'] = data["avatar"] res[prefix + 'account_avatar'] = data["avatar"]
res[prefix + 'account_header'] = data["header"]
// /console.log(JSON.stringify(res)) // console.log(JSON.stringify(res))
return (res); return (res);
} }
@ -226,6 +228,7 @@ function parseToot (data){
item['highlight'] = false item['highlight'] = false
item['status_id'] = data["id"] item['status_id'] = data["id"]
item['status_uri'] = data["uri"] item['status_uri'] = data["uri"]
item['status_url'] = data["url"]
item['status_in_reply_to_id'] = data["in_reply_to_id"] item['status_in_reply_to_id'] = data["in_reply_to_id"]
item['status_in_reply_to_account_id'] = data["in_reply_to_account_id"] item['status_in_reply_to_account_id'] = data["in_reply_to_account_id"]
item['status_reblog'] = data["reblog"] ? true : false item['status_reblog'] = data["reblog"] ? true : false
@ -236,6 +239,7 @@ function parseToot (data){
item['favourites_count'] = data["favourites_count"] item['favourites_count'] = data["favourites_count"]
item['reblogged'] = data["reblogged"] item['reblogged'] = data["reblogged"]
item['favourited'] = data["favourited"] item['favourited'] = data["favourited"]
item['bookmarked'] = data["bookmarked"]
item['status_sensitive'] = data["sensitive"] item['status_sensitive'] = data["sensitive"]
item['status_spoiler_text'] = data["spoiler_text"] item['status_spoiler_text'] = data["spoiler_text"]
item['status_visibility'] = data["visibility"] item['status_visibility'] = data["visibility"]

View file

@ -4,15 +4,18 @@ import harbour.tooterb.Uploader 1.0
import "../lib/API.js" as Logic import "../lib/API.js" as Logic
import "./components/" import "./components/"
Page { Page {
id: conversationPage id: conversationPage
property string type property string headerTitle: ""
property string type
property alias title: header.title property alias title: header.title
property alias description: header.description property alias description: header.description
property alias avatar: header.image property alias avatar: header.image
property string suggestedUser: "" property string suggestedUser: ""
property ListModel suggestedModel property ListModel suggestedModel
property string toot_id: "" property string toot_id: ""
property string toot_url: ""
property int tootMaxChar: 500; property int tootMaxChar: 500;
property ListModel mdl property ListModel mdl
allowedOrientations: Orientation.All allowedOrientations: Orientation.All
@ -40,6 +43,10 @@ Page {
} }
} }
InfoBanner {
id: sentBanner
}
ListModel { ListModel {
id: mediaModel id: mediaModel
onCountChanged: { onCountChanged: {
@ -62,7 +69,7 @@ Page {
SilicaListView { SilicaListView {
id: conversationList id: conversationList
header: PageHeader { header: PageHeader {
title: qsTr("Conversation") title: headerTitle // pageTitle pushed from MainPage.qml or VisualContainer.qml
} }
clip: true clip: true
anchors { anchors {
@ -90,6 +97,18 @@ Page {
} }
} }
} }
PullDownMenu {
visible: type == "reply" && toot_url != ""
/* MenuItem {
text: qsTr("Open in Browser")
onClicked: Qt.openUrlExternally(toot_url);
} */
// ! url isn't always fetched. Needs a solution.
MenuItem {
text: qsTr("Copy Link to Clipboard")
onClicked: Clipboard.text = toot_url;
}
}
} }
Rectangle { Rectangle {
id: predictionList id: predictionList
@ -104,7 +123,6 @@ Page {
anchors.fill: parent anchors.fill: parent
model: suggestedModel model: suggestedModel
clip: true clip: true
delegate: ItemUser { delegate: ItemUser {
onClicked: { onClicked: {
var start = toot.cursorPosition var start = toot.cursorPosition
@ -208,7 +226,6 @@ Page {
|| description.charAt( || description.charAt(
0) == '#') ? description + ' ' : '' 0) == '#') ? description + ' ' : ''
height: Math.max(270, Math.min(900, implicitHeight)) height: Math.max(270, Math.min(900, implicitHeight))
//height: implicitHeight
horizontalAlignment: Text.AlignLeft horizontalAlignment: Text.AlignLeft
placeholderText: qsTr("What's on your mind?") placeholderText: qsTr("What's on your mind?")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
@ -304,7 +321,6 @@ Page {
} }
} }
IconButton { IconButton {
id: btnContentWarning id: btnContentWarning
anchors { anchors {
top: toot.bottom top: toot.bottom
@ -426,11 +442,11 @@ Page {
msg.params['spoiler_text'] = warningContent.text msg.params['spoiler_text'] = warningContent.text
} }
worker.sendMessage(msg) worker.sendMessage(msg)
warningContent.text = "" warningContent.text = ""
toot.text = "" toot.text = ""
mediaModel.clear() mediaModel.clear();
pageStack.pop() sentBanner.showText(qsTr("Toot sent!"))
} }
} }

View file

@ -34,15 +34,11 @@ import Sailfish.Silica 1.0
import "../lib/API.js" as Logic import "../lib/API.js" as Logic
Page { Page {
id: loginPage id: loginPage
// The effective value will be restricted by ApplicationWindow.allowedOrientations // The effective value will be restricted by ApplicationWindow.allowedOrientations
allowedOrientations: Orientation.All allowedOrientations: Orientation.All
SilicaFlickable { SilicaFlickable {
anchors.fill: parent anchors.fill: parent
contentHeight: column.height + Theme.paddingLarge contentHeight: column.height + Theme.paddingLarge
@ -52,8 +48,9 @@ Page {
Column { Column {
id: column id: column
width: parent.width width: parent.width
PageHeader {
PageHeader { title: qsTr("Login") } title: qsTr("Login")
}
SectionHeader { SectionHeader {
text: qsTr("Instance") text: qsTr("Instance")
@ -83,7 +80,6 @@ Page {
conf.instance = instance.text; conf.instance = instance.text;
conf.login = false; conf.login = false;
/*conf['login'] = false; /*conf['login'] = false;
conf['mastodon_client_id'] = data['mastodon_client_id']; conf['mastodon_client_id'] = data['mastodon_client_id'];
conf['mastodon_client_secret'] = data['mastodon_client_secret']; conf['mastodon_client_secret'] = data['mastodon_client_secret'];

View file

@ -57,6 +57,7 @@ Page {
} }
} }
} }
VisualItemModel { VisualItemModel {
id: visualModel id: visualModel
MyList{ MyList{
@ -188,7 +189,8 @@ Page {
"display_name": model.account_display_name, "display_name": model.account_display_name,
"username": model.account_acct, "username": model.account_acct,
"user_id": model.account_id, "user_id": model.account_id,
"profileImage": model.account_avatar "profileImage": model.account_avatar,
"profileBackground": model.account_header
}) })
} }
} }
@ -246,7 +248,7 @@ Page {
visible: !isPortrait ? true : !infoPanel.open visible: !isPortrait ? true : !infoPanel.open
icon.source: "image://theme/icon-l-add" icon.source: "image://theme/icon-l-add"
onClicked: { onClicked: {
pageStack.push(Qt.resolvedUrl("Conversation.qml"), {title: qsTr("New Toot"), type: "new"}) pageStack.push(Qt.resolvedUrl("Conversation.qml"), {headerTitle: qsTr("New Toot"), type: "new"})
} }
} }

View file

@ -9,7 +9,6 @@ Page {
property string display_name : ""; property string display_name : "";
property string username : ""; property string username : "";
property string profileImage : ""; property string profileImage : "";
property string discoverable : "";
property int user_id; property int user_id;
property int statuses_count; property int statuses_count;
property int following_count; property int following_count;
@ -17,7 +16,7 @@ Page {
property int favourites_count; property int favourites_count;
property int reblogs_count; property int reblogs_count;
property int count_moments; property int count_moments;
property string profile_background: ""; property string profileBackground: "";
property string note: ""; property string note: "";
property string url: ""; property string url: "";
property bool locked : false; property bool locked : false;
@ -42,6 +41,7 @@ Page {
username = messageObject.data.acct username = messageObject.data.acct
display_name = messageObject.data.display_name display_name = messageObject.data.display_name
profileImage = messageObject.data.avatar_static profileImage = messageObject.data.avatar_static
profileBackground = messageObject.data.header_static
var msg = { var msg = {
'action' : "accounts/relationships/", 'action' : "accounts/relationships/",
@ -134,6 +134,7 @@ Page {
} }
} }
MyList { MyList {
id: list id: list
header: ProfileHeader { header: ProfileHeader {
@ -141,6 +142,7 @@ Page {
title: display_name title: display_name
description: username description: username
image: profileImage image: profileImage
bg: profileBackground
} }
anchors { anchors {
@ -157,7 +159,6 @@ Page {
conf: Logic.conf conf: Logic.conf
} }
ExpandingSectionGroup { ExpandingSectionGroup {
id: expander id: expander
//currentIndex: 0 //currentIndex: 0
@ -249,6 +250,7 @@ Page {
Text { Text {
x: Theme.horizontalPageMargin x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin ) width: parent.width - ( 2 * Theme.horizontalPageMargin )
id: txtnote
text: note text: note
font.pixelSize: Theme.fontSizeExtraSmall font.pixelSize: Theme.fontSizeExtraSmall
color: Theme.secondaryColor color: Theme.secondaryColor
@ -271,14 +273,15 @@ Page {
return check; return check;
})); }));
send(link) send(link)
} else if (test.length === 4 && test[3][0] === "@" ) {
tlSearch.search = decodeURIComponent("@"+test[3].substring(1)+"@"+test[2]) // function still missing for user accounts
slideshow.positionViewAtIndex(4, ListView.SnapToItem) // } else if (test.length === 4 && test[3][0] === "@" ) {
navigation.navigateTo('search')
} else { } else {
Qt.openUrlExternally(link); Qt.openUrlExternally(link);
} }
} }
} }
Column { Column {
spacing: Theme.paddingMedium spacing: Theme.paddingMedium

View file

@ -2,7 +2,7 @@ import QtQuick 2.0
import Sailfish.Silica 1.0 import Sailfish.Silica 1.0
import QtMultimedia 5.0 import QtMultimedia 5.0
Page { FullscreenContentPage {
id: imagePage id: imagePage
property string type: "" property string type: ""
property string previewURL: "" property string previewURL: ""
@ -22,6 +22,26 @@ Page {
videoFlickable.visible = true; videoFlickable.visible = true;
} }
} }
Item {
id: overlay
z: 100
property bool active: true
enabled: active
anchors.fill: parent
opacity: active ? 1.0 : 0.0
Behavior on opacity { FadeAnimator {}}
IconButton {
y: Theme.paddingLarge
anchors {
right: parent.right
rightMargin: Theme.horizontalPageMargin
}
icon.source: "image://theme/icon-m-dismiss"
onClicked: pageStack.pop()
}
}
Flickable { Flickable {
id: videoFlickable id: videoFlickable
visible: false visible: false
@ -49,7 +69,6 @@ Page {
case MediaPlayer.EndOfMedia: case MediaPlayer.EndOfMedia:
console.log("EndOfMedia") console.log("EndOfMedia")
return; return;
} }
} }
@ -57,10 +76,10 @@ Page {
console.log(playbackState) console.log(playbackState)
switch (playbackState){ switch (playbackState){
case MediaPlayer.PlayingState: case MediaPlayer.PlayingState:
playerIcon.icon.source = "image://theme/icon-m-play" playerIcon.icon.source = "image://theme/icon-m-pause"
return; return;
case MediaPlayer.PausedState: case MediaPlayer.PausedState:
playerIcon.icon.source = "image://theme/icon-m-pause" playerIcon.icon.source = "image://theme/icon-m-play"
return; return;
case MediaPlayer.StoppedState: case MediaPlayer.StoppedState:
playerIcon.icon.source = "image://theme/icon-m-stop" playerIcon.icon.source = "image://theme/icon-m-stop"
@ -68,7 +87,6 @@ Page {
} }
} }
onPositionChanged: function(){ onPositionChanged: function(){
//console.log(duration) //console.log(duration)
//console.log(bufferProgress) //console.log(bufferProgress)
@ -81,15 +99,17 @@ Page {
} }
} }
onStopped: function(){ onStopped: function(){
play() play()
} }
IconButton { IconButton {
id: playerIcon id: playerIcon
anchors.left: parent.left anchors.left: parent.left
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.leftMargin: Theme.paddingLarge anchors.leftMargin: Theme.paddingLarge
anchors.bottomMargin: Theme.paddingMedium anchors.bottomMargin: Theme.paddingLarge*1.5
icon.source: "image://theme/icon-m-play" icon.source: "image://theme/icon-m-play"
onClicked: function() { onClicked: function() {
if (video.playbackState === MediaPlayer.PlayingState) if (video.playbackState === MediaPlayer.PlayingState)
@ -104,10 +124,9 @@ Page {
id: playerProgress id: playerProgress
anchors.left: playerIcon.right anchors.left: playerIcon.right
anchors.right: videoDlBtn.left anchors.right: videoDlBtn.left
anchors.verticalCenter: playerIcon.verticalCenter anchors.verticalCenter: playerIcon.verticalCenter
anchors.leftMargin: 0 anchors.leftMargin: 0
anchors.bottomMargin: Theme.paddingMedium anchors.bottomMargin: Theme.paddingLarge*1.5
} }
IconButton { IconButton {
id: videoDlBtn id: videoDlBtn
@ -115,9 +134,9 @@ Page {
anchors.right: parent.right anchors.right: parent.right
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.rightMargin: Theme.paddingLarge anchors.rightMargin: Theme.paddingLarge
anchors.bottomMargin: Theme.paddingMedium anchors.bottomMargin: Theme.paddingLarge*1.5
//width: Theme.iconSizeMedium+Theme.paddingMedium*2 icon.source: "image://theme/icon-m-device-download"
icon.source: "image://theme/icon-m-cloud-download" icon.opacity: 0.0
onClicked: { onClicked: {
var filename = mediaURL.split("/"); var filename = mediaURL.split("/");
FileDownloader.downloadFile(mediaURL, filename[filename.length-1]); FileDownloader.downloadFile(mediaURL, filename[filename.length-1]);
@ -135,7 +154,7 @@ Page {
anchors.centerIn: parent anchors.centerIn: parent
id: videoError id: videoError
width: parent.width - 2*Theme.paddingMedium width: parent.width - 2*Theme.paddingMedium
wrapMode: Text.WordWrap wrapMode: Text.Wrap
height: contentHeight height: contentHeight
visible: false; visible: false;
font.pixelSize: Theme.fontSizeSmall; font.pixelSize: Theme.fontSizeSmall;
@ -165,7 +184,6 @@ Page {
clip: true clip: true
onHeightChanged: if (imagePreview.status === Image.Ready) imagePreview.fitToScreen(); onHeightChanged: if (imagePreview.status === Image.Ready) imagePreview.fitToScreen();
Item { Item {
id: imageContainer id: imageContainer
width: Math.max(imagePreview.width * imagePreview.scale, imageFlickable.width) width: Math.max(imagePreview.width * imagePreview.scale, imageFlickable.width)
@ -173,22 +191,18 @@ Page {
Image { Image {
id: imagePreview id: imagePreview
property real prevScale property real prevScale
function fitToScreen() { function fitToScreen() {
scale = Math.min(imageFlickable.width / width, imageFlickable.height / height, 1) scale = Math.min(imageFlickable.width / width, imageFlickable.height / height, 1)
pinchArea.minScale = scale pinchArea.minScale = scale
prevScale = scale prevScale = scale
} }
anchors.centerIn: parent anchors.centerIn: parent
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
cache: true cache: true
asynchronous: true asynchronous: true
sourceSize.height: 1000; sourceSize.height: 1000;
smooth: false smooth: false
onStatusChanged: { onStatusChanged: {
if (status == Image.Ready) { if (status == Image.Ready) {
fitToScreen() fitToScreen()
@ -224,7 +238,6 @@ Page {
opacity: 0.3 opacity: 0.3
property real minScale: 1.0 property real minScale: 1.0
property real maxScale: 3.0 property real maxScale: 3.0
anchors.fill: parent anchors.fill: parent
enabled: imagePreview.status === Image.Ready enabled: imagePreview.status === Image.Ready
pinch.target: imagePreview pinch.target: imagePreview
@ -267,11 +280,9 @@ Page {
Component { Component {
id: loadingIndicator id: loadingIndicator
Item { Item {
height: childrenRect.height height: childrenRect.height
width: imagePage.width width: imagePage.width
ProgressCircle { ProgressCircle {
id: imageLoadingIndicator id: imageLoadingIndicator
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
@ -293,9 +304,8 @@ Page {
anchors.right: parent.right anchors.right: parent.right
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.rightMargin: Theme.paddingLarge anchors.rightMargin: Theme.paddingLarge
anchors.bottomMargin: Theme.paddingMedium anchors.bottomMargin: Theme.paddingLarge*1.5
//width: Theme.iconSizeMedium+Theme.paddingMedium*2 icon.source: "image://theme/icon-m-device-download"
icon.source: "image://theme/icon-m-cloud-download"
onClicked: { onClicked: {
var filename = mediaURL.split("/"); var filename = mediaURL.split("/");
FileDownloader.downloadFile(mediaURL, filename[filename.length-1]); FileDownloader.downloadFile(mediaURL, filename[filename.length-1]);

View file

@ -0,0 +1,61 @@
import QtQuick 2.0
import Sailfish.Silica 1.0
DockedPanel {
id: root
z: 100
width: parent.width
height: content.height
dock: Dock.Top
Rectangle {
id: content
width: root.width
height: infoLabel.height + 5*Theme.paddingMedium
//anchors.topMargin: 20
color: Theme.highlightBackgroundColor
opacity: 1.0
Label {
id: infoLabel
text : ""
color: Theme.primaryColor
font.family: Theme.fontFamilyHeading
font.pixelSize: Theme.fontSizeMedium
//font.weight: Font.Bold
width: parent.width
wrapMode: Text.WrapAnywhere
anchors {
left: parent.left
leftMargin: Theme.horizontalPageMargin*2
right: parent.right
rightMargin: Theme.horizontalPageMargin
verticalCenter: parent.verticalCenter
}
}
MouseArea {
anchors.fill: parent
onClicked: {
root.hide()
autoClose.stop()
}
}
}
function showText(text) {
infoLabel.text = text
root.show()
autoClose.start()
}
Timer {
id: autoClose
interval: 6000
running: false
onTriggered: {
root.hide()
stop()
}
}
}

View file

@ -74,8 +74,6 @@ Item {
} }
} }
MyImage { MyImage {
id: placeholder1 id: placeholder1
width: 2 width: 2

View file

@ -41,7 +41,6 @@ Item {
: Theme.primaryColor) : Theme.primaryColor)
} }
Label { Label {
id: lblScreenName id: lblScreenName
anchors { anchors {

View file

@ -169,7 +169,5 @@ SilicaGridView {
} }
VerticalScrollDecorator {} VerticalScrollDecorator {}
} }

View file

@ -7,24 +7,25 @@ Item {
property string title: ""; property string title: "";
property string description: ""; property string description: "";
property string image: ""; property string image: "";
//property string bg: ""; property string bg: "";
width: parent.width width: parent.width
height: icon.height + Theme.paddingLarge*2 height: icon.height + Theme.paddingLarge*2
/*Image {
anchors.fill: parent
asynchronous: true
fillMode: Image.PreserveAspectCrop
source: bg
opacity: 0.3
}*/
Rectangle { Rectangle {
id: bgImage
anchors.fill: parent anchors.fill: parent
opacity: 0.2 opacity: 0.2
gradient: Gradient { gradient: Gradient {
GradientStop { position: 0.0; color: Theme.highlightBackgroundColor } GradientStop { position: 0.0; color: Theme.highlightBackgroundColor }
GradientStop { position: 1.0; color: Theme.highlightBackgroundColor } GradientStop { position: 1.0; color: Theme.highlightBackgroundColor }
}
Image {
anchors.fill: bgImage
asynchronous: true
fillMode: Image.PreserveAspectCrop
source: bg
opacity: 0.8
} }
} }
Image { Image {
id: icon id: icon
@ -69,7 +70,7 @@ Item {
} }
Label { Label {
height: description === "" ? 0 : contentHeight height: description === "" ? 0 : contentHeight
text: description text: "@"+description
color: Theme.secondaryHighlightColor color: Theme.secondaryHighlightColor
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
font.family: Theme.fontFamilyHeading font.family: Theme.fontFamilyHeading

View file

@ -170,7 +170,7 @@ BackgroundItem {
} }
text: content text: content
textFormat: Text.StyledText textFormat: Text.RichText
linkColor : Theme.highlightColor linkColor : Theme.highlightColor
wrapMode: Text.Wrap wrapMode: Text.Wrap
maximumLineCount: 6 maximumLineCount: 6

View file

@ -3,7 +3,6 @@ import Sailfish.Silica 1.0
import "../../lib/API.js" as Logic import "../../lib/API.js" as Logic
BackgroundItem { BackgroundItem {
id: delegate id: delegate
signal send (string notice) signal send (string notice)
signal navigateTo(string link) signal navigateTo(string link)
@ -28,6 +27,7 @@ BackgroundItem {
topMargin: Theme.paddingMedium topMargin: Theme.paddingMedium
} }
} }
Image { Image {
id: avatar id: avatar
anchors { anchors {
@ -50,7 +50,6 @@ BackgroundItem {
? Theme.highlightColor ? Theme.highlightColor
: Theme.primaryColor) : Theme.primaryColor)
} }
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
@ -58,12 +57,12 @@ BackgroundItem {
"display_name": model.account_display_name, "display_name": model.account_display_name,
"username": model.account_acct, "username": model.account_acct,
"user_id": model.account_id, "user_id": model.account_id,
"profileImage": model.account_avatar "profileImage": model.account_avatar,
"profileBackground": model.account_header
}) })
} }
} }
Image { Image {
id: iconTR id: iconTR
anchors { anchors {
@ -75,7 +74,7 @@ BackgroundItem {
width: Theme.iconSizeExtraSmall width: Theme.iconSizeExtraSmall
height: width height: width
source: "image://theme/icon-s-retweet" source: "image://theme/icon-s-retweet"
} }
Rectangle { Rectangle {
color: Theme.highlightDimmerColor color: Theme.highlightDimmerColor
width: Theme.iconSizeSmall width: Theme.iconSizeSmall
@ -138,15 +137,23 @@ BackgroundItem {
tlSearch.search = decodeURIComponent("@"+test[3].substring(1)+"@"+test[2]) tlSearch.search = decodeURIComponent("@"+test[3].substring(1)+"@"+test[2])
slideshow.positionViewAtIndex(4, ListView.SnapToItem) slideshow.positionViewAtIndex(4, ListView.SnapToItem)
navigation.navigateTo('search') navigation.navigateTo('search')
// Original component
/* pageStack.push(Qt.resolvedUrl("../Profile.qml"), {
"name": "",
"username": test[3].substring(1)+"@"+test[2],
"profileImage": ""
}) */
} else { } else {
Qt.openUrlExternally(link); Qt.openUrlExternally(link);
} }
} }
text: content.replace(new RegExp("<a ", 'g'), '<a style="text-decoration: none; color:'+(pressed ? Theme.secondaryColor : Theme.highlightColor)+'" ') text: content.replace(new RegExp("<a ", 'g'), '<a style="text-decoration: none; color:'+(pressed ? Theme.secondaryColor : Theme.highlightColor)+'" ')
linkColor : Theme.highlightColor linkColor : Theme.highlightColor
wrapMode: Text.WordWrap wrapMode: Text.Wrap
textFormat: Text.StyledText textFormat: Text.RichText
font.pixelSize: Theme.fontSizeExtraSmall font.pixelSize: Theme.fontSizeSmall
color: (pressed ? Theme.highlightColor : (!highlight ? Theme.primaryColor : Theme.secondaryColor)) color: (pressed ? Theme.highlightColor : (!highlight ? Theme.primaryColor : Theme.secondaryColor))
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
@ -169,7 +176,7 @@ BackgroundItem {
width: parent.width width: parent.width
truncationMode: TruncationMode.Fade truncationMode: TruncationMode.Fade
color: Theme.highlightColor color: Theme.highlightColor
wrapMode: Text.WordWrap wrapMode: Text.Wrap
text: model.status_spoiler_text text: model.status_spoiler_text
} }
MouseArea { MouseArea {
@ -179,6 +186,7 @@ BackgroundItem {
} }
} }
MediaBlock { MediaBlock {
id: media id: media
anchors { anchors {
@ -191,6 +199,7 @@ BackgroundItem {
model: typeof attachments !== "undefined" ? attachments : Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject'); model: typeof attachments !== "undefined" ? attachments : Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject');
height: 100 height: 100
} }
ContextMenu { ContextMenu {
id: mnu id: mnu
MenuItem { MenuItem {
@ -269,15 +278,14 @@ BackgroundItem {
} }
} }
onClicked: { onClicked: {
var m = Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject'); var m = Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject');
if (typeof mdl !== "undefined") if (typeof mdl !== "undefined")
m.append(mdl.get(index)) m.append(mdl.get(index))
pageStack.push(Qt.resolvedUrl("../Conversation.qml"), { pageStack.push(Qt.resolvedUrl("../Conversation.qml"), {
headerTitle: "Conversation",
toot_id: status_id, toot_id: status_id,
toot_url: status_url,
title: account_display_name, title: account_display_name,
description: '@'+account_acct, description: '@'+account_acct,
avatar: account_avatar, avatar: account_avatar,

View file

@ -1,5 +1,26 @@
*Wed May 06 2020 molan <mol_an@sunrise.ch> 1.0.4-2 *Mon May 25 2020 molan <mol_an@sunrise.ch> 1.0.4-3
- Beta release - Show user profile background image (if available)
- New Sailfish 3-styled image/video viewer page (WIP)
- Added "Toot sent!" notification banner
- Show Pulley Menu for copying Toot-link only if link is provided (WIP)
- Distiction between "New Toot" and "Conversation" page
- some small fixes
*Mon May 11 2020 molan <mol_an@sunrise.ch> 1.0.4-2
- Beta release by molan
- Login / Settings Page: Small changes in text wording
- Login Page: Use of correct label coloring and text alignment
- Login Page: Highlight login confirmation button + 'accept' icon on Sailfish keyboard
- Media Page: Switched play / pause buttons during media playback
- Conversation Page: Improved alignment of elements in 'New Toot' (no more overlapping)
- Settings Page: Replaced icons in Settings page for consistency and clarity
- Settings Page: Added missing language contributor
- Translations: Completed and fixed German and French translations
- Translations: Added complete Italian translation
- Translations: Added missing/lost strings and updates to other translation files
- Timeline: Better text formatting in toots (show paragraph breaks)
- Timeline: Use shortend username if display_name isn't provided in ProfileHeader and MiniHeader
- Timeline: Created new placeholder for profile avatars if instance doesn't provide valid image
* Thu Apr 16 2020 Dusko Angirevic <dysko@me.com> 1.0.4-1 * Thu Apr 16 2020 Dusko Angirevic <dysko@me.com> 1.0.4-1
- Merge with molan code - Merge with molan code

View file

@ -14,7 +14,7 @@ Name: harbour-tooterb
%{?qtc_builddir:%define _builddir %qtc_builddir} %{?qtc_builddir:%define _builddir %qtc_builddir}
Summary: Tooter β Summary: Tooter β
Version: 1.0.4 Version: 1.0.4
Release: 2 Release: 3
Group: Qt/Qt Group: Qt/Qt
License: LICENSE License: LICENSE
URL: http://example.org/ URL: http://example.org/

View file

@ -1,7 +1,7 @@
Name: harbour-tooterb Name: harbour-tooterb
Summary: Tooter β Summary: Tooter β
Version: 1.0.4 Version: 1.0.4
Release: 2 Release: 3
# The contents of the Group field should be one of the groups listed here: # The contents of the Group field should be one of the groups listed here:
# https://github.com/mer-tools/spectacle/blob/master/data/GROUPS # https://github.com/mer-tools/spectacle/blob/master/data/GROUPS
Group: Qt/Qt Group: Qt/Qt

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Konversation</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Löschen</translation> <translation>Löschen</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation>Was gibt&apos;s Neues?</translation> <translation>Was gibt&apos;s Neues?</translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation>Toot gesendet!</translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation>Link kopieren</translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Fehler beim Laden</translation> <translation>Ladefehler</translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Συνομιλία</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Διαγραφή</translation> <translation>Διαγραφή</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Σφάλμα φόρτωσης</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@ -318,7 +322,7 @@
<name>VisualContainer</name> <name>VisualContainer</name>
<message> <message>
<source>Unboost</source> <source>Unboost</source>
<translation>Αναίρεση προώθησης</translation> <translation>Αναίρεση προώθηση</translation>
</message> </message>
<message> <message>
<source>Boost</source> <source>Boost</source>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Conversación</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Borrar</translation> <translation>Borrar</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation>¿En qué estás pensando?</translation> <translation>¿En qué estás pensando?</translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Error al cargar</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -62,6 +58,14 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Conversation</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Supprimer</translation> <translation>Supprimer</translation>
@ -40,7 +36,7 @@
</message> </message>
<message> <message>
<source>Write your warning here</source> <source>Write your warning here</source>
<translation>Avertissement du contenu</translation> <translation>Rédigez votre alerte ici</translation>
</message> </message>
<message> <message>
<source>Public</source> <source>Public</source>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation>Qu&apos;avez-vous en tête?</translation> <translation>Qu&apos;avez-vous en tête?</translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation>Pouet envoyé !</translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation>Copier le lien</translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Erreur de chargement</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@ -81,7 +85,7 @@
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<source>Login</source> <source>Login</source>
<translation>Login</translation> <translation>Connexion</translation>
</message> </message>
<message> <message>
<source>Instance</source> <source>Instance</source>
@ -93,7 +97,7 @@
</message> </message>
<message> <message>
<source>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.</source> <source>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.</source>
<translation>Mastodon est un réseau libre et open source. Il sagit d&apos;une alternative aux plateformes commerciales, pour éviter qu&apos;une seule entreprise monopolise vos communications. Choisissez un serveur dans lequel vous avez confiance - quelque que soit votre choix vous pourrez interagir avec dautres personnes. Tout le monde peut monter sa propre instance Mastodon et participer rendre le réseau plus robuste.</translation> <translation>Mastodon est un réseau libre et open source : une alternative décentralisée aux plateformes commerciales, afin déviter le contrôle monopolistique de vos communications par une entreprise. Choisissez un serveur dans lequel vous avez confiance - quelque que soit votre choix vous pourrez interagir avec tous les utilisateurs du réseau Mastodon. Tout le monde peut monter sa propre instance Mastodon et ainsi contribuer à la croissance du réseau.</translation>
</message> </message>
<message> <message>
<source>Reload</source> <source>Reload</source>
@ -116,7 +120,7 @@
</message> </message>
<message> <message>
<source>Search</source> <source>Search</source>
<translation>Chercher</translation> <translation>Rechercher</translation>
</message> </message>
<message> <message>
<source>@user or #term</source> <source>@user or #term</source>
@ -173,7 +177,7 @@
</message> </message>
<message> <message>
<source>Follow request sent!</source> <source>Follow request sent!</source>
<translation>Demande de suivi envoyée !</translation> <translation>Demande dabonnement envoyée !</translation>
</message> </message>
<message> <message>
<source>Following</source> <source>Following</source>
@ -232,7 +236,7 @@
</message> </message>
<message> <message>
<source>Remove Account</source> <source>Remove Account</source>
<translation>Enlever compte</translation> <translation>Déconnecter votre compte</translation>
</message> </message>
<message> <message>
<source>Add Account</source> <source>Add Account</source>
@ -244,7 +248,7 @@
</message> </message>
<message> <message>
<source>Authorize this app to access your Mastodon account</source> <source>Authorize this app to access your Mastodon account</source>
<translation>Autoriser cette application d&apos;utiliser votre compte</translation> <translation>Autoriser laccès à votre compte pour cette application</translation>
</message> </message>
<message> <message>
<source>Disable this option if you want to preserve your data connection</source> <source>Disable this option if you want to preserve your data connection</source>
@ -280,7 +284,7 @@
</message> </message>
<message> <message>
<source>Added README file</source> <source>Added README file</source>
<translation>Ajouté fichier README</translation> <translation>Fichier README ajouté</translation>
</message> </message>
<message> <message>
<source>Load images in toots</source> <source>Load images in toots</source>
@ -292,7 +296,7 @@
</message> </message>
<message> <message>
<source>Use Transifex to help with app translation to your language</source> <source>Use Transifex to help with app translation to your language</source>
<translation>Utiliser Transifex pour aider avec les traductions de l&apos;application</translation> <translation>Utiliser Transifex pour aider à traduire cette application</translation>
</message> </message>
<message> <message>
<source>Development and translations</source> <source>Development and translations</source>
@ -326,11 +330,11 @@
</message> </message>
<message> <message>
<source>Unfavorite</source> <source>Unfavorite</source>
<translation>Défavoriser</translation> <translation>Retirer des favoris</translation>
</message> </message>
<message> <message>
<source>Favorite</source> <source>Favorite</source>
<translation>Ajouter au favoris</translation> <translation>Ajouter aux favoris</translation>
</message> </message>
</context> </context>
</TS> </TS>

View file

@ -28,52 +28,57 @@
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="65"/> <location filename="../qml/pages/Conversation.qml" line="108"/>
<source>Conversation</source> <source>Copy Link to Clipboard</source>
<translation>Conversazione</translation> <translation>Copia link</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="182"/> <location filename="../qml/pages/Conversation.qml" line="200"/>
<source>Write your warning here</source> <source>Write your warning here</source>
<translation>Contenuto avviso</translation> <translation>Contenuto avviso</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="213"/> <location filename="../qml/pages/Conversation.qml" line="230"/>
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation>A cosa stai pensando?</translation> <translation>A cosa stai pensando?</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="276"/> <location filename="../qml/pages/Conversation.qml" line="293"/>
<source>Delete</source> <source>Delete</source>
<translation>Elimina</translation> <translation>Elimina</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="376"/> <location filename="../qml/pages/Conversation.qml" line="392"/>
<source>Public</source> <source>Public</source>
<translation>Pubblico</translation> <translation>Pubblico</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="379"/> <location filename="../qml/pages/Conversation.qml" line="395"/>
<source>Unlisted</source> <source>Unlisted</source>
<translation>Non elencato</translation> <translation>Non elencato</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="382"/> <location filename="../qml/pages/Conversation.qml" line="398"/>
<source>Followers-only</source> <source>Followers-only</source>
<translation>Solo ai seguaci</translation> <translation>Solo ai seguaci</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="385"/> <location filename="../qml/pages/Conversation.qml" line="401"/>
<source>Direct</source> <source>Direct</source>
<translation>Diretto</translation> <translation>Diretto</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="499"/> <location filename="../qml/pages/Conversation.qml" line="449"/>
<source>Toot sent!</source>
<translation>Toot è stato pubblicato!</translation>
</message>
<message>
<location filename="../qml/pages/Conversation.qml" line="515"/>
<source>Emojis</source> <source>Emojis</source>
<translation>Emojis</translation> <translation>Emojis</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Conversation.qml" line="500"/> <location filename="../qml/pages/Conversation.qml" line="516"/>
<source>Tap to insert</source> <source>Tap to insert</source>
<translation>Tap per inserire</translation> <translation>Tap per inserire</translation>
</message> </message>
@ -81,9 +86,9 @@
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<location filename="../qml/pages/components/ImageFullScreen.qml" line="287"/> <location filename="../qml/pages/components/ImageFullScreen.qml" line="298"/>
<source>Error loading</source> <source>Error loading</source>
<translation>Errore caricamento</translation> <translation>Errore durante caricamento</translation>
</message> </message>
</context> </context>
<context> <context>
@ -97,27 +102,27 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../qml/pages/LoginPage.qml" line="56"/> <location filename="../qml/pages/LoginPage.qml" line="52"/>
<source>Login</source> <source>Login</source>
<translation>Accesso</translation> <translation>Accesso</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/LoginPage.qml" line="59"/> <location filename="../qml/pages/LoginPage.qml" line="56"/>
<source>Instance</source> <source>Instance</source>
<translation>Istanza</translation> <translation>Istanza</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/LoginPage.qml" line="65"/> <location filename="../qml/pages/LoginPage.qml" line="62"/>
<source>Enter a valid Mastodon instance URL</source> <source>Enter a valid Mastodon instance URL</source>
<translation>Inserire URL di una istanza Mastodon valida</translation> <translation>Inserire URL di una istanza Mastodon valida</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/LoginPage.qml" line="123"/> <location filename="../qml/pages/LoginPage.qml" line="119"/>
<source>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.</source> <source>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.</source>
<translation>Mastodon è un servizio di rete sociale in software libero, costituito in una federazione d&apos;istanze. Mastodon fa parte del più ampio Fediverso, permettendo ai suoi utenti di interagire anche con utenti su diverse piattaforme aperte che supportano lo stesso protocollo.</translation> <translation>Mastodon è un servizio di rete sociale in software libero, costituito in una federazione d&apos;istanze. Mastodon fa parte del più ampio Fediverso, permettendo ai suoi utenti di interagire anche con utenti su diverse piattaforme aperte che supportano lo stesso protocollo.</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/LoginPage.qml" line="194"/> <location filename="../qml/pages/LoginPage.qml" line="190"/>
<source>Reload</source> <source>Reload</source>
<translation>Ricarica</translation> <translation>Ricarica</translation>
</message> </message>
@ -125,37 +130,37 @@
<context> <context>
<name>MainPage</name> <name>MainPage</name>
<message> <message>
<location filename="../qml/pages/MainPage.qml" line="64"/> <location filename="../qml/pages/MainPage.qml" line="65"/>
<source>Home</source> <source>Home</source>
<translation>Home</translation> <translation>Home</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/MainPage.qml" line="73"/> <location filename="../qml/pages/MainPage.qml" line="74"/>
<source>Notifications</source> <source>Notifications</source>
<translation>Notifiche</translation> <translation>Notifiche</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/MainPage.qml" line="83"/> <location filename="../qml/pages/MainPage.qml" line="84"/>
<source>Local</source> <source>Local</source>
<translation>Locale</translation> <translation>Locale</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/MainPage.qml" line="93"/> <location filename="../qml/pages/MainPage.qml" line="94"/>
<source>Federated</source> <source>Federated</source>
<translation>Federazione</translation> <translation>Federazione</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/MainPage.qml" line="120"/> <location filename="../qml/pages/MainPage.qml" line="121"/>
<source>Search</source> <source>Search</source>
<translation>Cerca</translation> <translation>Cerca</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/MainPage.qml" line="125"/> <location filename="../qml/pages/MainPage.qml" line="126"/>
<source>@user or #term</source> <source>@user or #term</source>
<translation>@utente o #termine</translation> <translation>@utente o #termine</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/MainPage.qml" line="249"/> <location filename="../qml/pages/MainPage.qml" line="251"/>
<source>New Toot</source> <source>New Toot</source>
<translation>Nuovo toot</translation> <translation>Nuovo toot</translation>
</message> </message>
@ -204,72 +209,72 @@
<context> <context>
<name>Profile</name> <name>Profile</name>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="170"/> <location filename="../qml/pages/Profile.qml" line="171"/>
<source>Summary</source> <source>Summary</source>
<translation>Sintesi</translation> <translation>Sintesi</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="176"/> <location filename="../qml/pages/Profile.qml" line="177"/>
<source>Followers</source> <source>Followers</source>
<translation>Seguaci</translation> <translation>Seguaci</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="181"/> <location filename="../qml/pages/Profile.qml" line="182"/>
<source>Following</source> <source>Following</source>
<translation>Segue</translation> <translation>Segue</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="186"/> <location filename="../qml/pages/Profile.qml" line="187"/>
<source>Statuses</source> <source>Statuses</source>
<translation>Toots</translation> <translation>Toots</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="191"/> <location filename="../qml/pages/Profile.qml" line="192"/>
<source>Favourites</source> <source>Favourites</source>
<translation>Apprezzati</translation> <translation>Apprezzati</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="200"/> <location filename="../qml/pages/Profile.qml" line="201"/>
<source>Unfollow</source> <source>Unfollow</source>
<translation>Smetti di seguire</translation> <translation>Smetti di seguire</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="200"/> <location filename="../qml/pages/Profile.qml" line="201"/>
<source>Follow request sent!</source> <source>Follow request sent!</source>
<translation>Richiesta di seguito inviata!</translation> <translation>Richiesta di seguito inviata!</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="200"/> <location filename="../qml/pages/Profile.qml" line="201"/>
<source>Follow</source> <source>Follow</source>
<translation>Segui</translation> <translation>Segui</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="213"/> <location filename="../qml/pages/Profile.qml" line="214"/>
<source>Unmute</source> <source>Unmute</source>
<translation>Non silenziare</translation> <translation>Non silenziare</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="213"/> <location filename="../qml/pages/Profile.qml" line="214"/>
<source>Mute</source> <source>Mute</source>
<translation>Silenzia</translation> <translation>Silenzia</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="226"/> <location filename="../qml/pages/Profile.qml" line="227"/>
<source>Unblock</source> <source>Unblock</source>
<translation>Sblocca</translation> <translation>Sblocca</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="226"/> <location filename="../qml/pages/Profile.qml" line="227"/>
<source>Block</source> <source>Block</source>
<translation>Blocca</translation> <translation>Blocca</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="245"/> <location filename="../qml/pages/Profile.qml" line="246"/>
<source>Bio</source> <source>Bio</source>
<translation>Biografia</translation> <translation>Biografia</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/Profile.qml" line="287"/> <location filename="../qml/pages/Profile.qml" line="290"/>
<source>Open Profile in Browser</source> <source>Open Profile in Browser</source>
<translation>Aprire profile nel browser</translation> <translation>Aprire profile nel browser</translation>
</message> </message>
@ -388,22 +393,22 @@
<context> <context>
<name>VisualContainer</name> <name>VisualContainer</name>
<message> <message>
<location filename="../qml/pages/components/VisualContainer.qml" line="198"/> <location filename="../qml/pages/components/VisualContainer.qml" line="207"/>
<source>Unboost</source> <source>Unboost</source>
<translation>Annulla condivisione</translation> <translation>Annulla condivisione</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/components/VisualContainer.qml" line="198"/> <location filename="../qml/pages/components/VisualContainer.qml" line="207"/>
<source>Boost</source> <source>Boost</source>
<translation>Condividi</translation> <translation>Condividi</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/components/VisualContainer.qml" line="235"/> <location filename="../qml/pages/components/VisualContainer.qml" line="244"/>
<source>Unfavorite</source> <source>Unfavorite</source>
<translation>Annulla apprezzamento</translation> <translation>Annulla apprezzamento</translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/components/VisualContainer.qml" line="235"/> <location filename="../qml/pages/components/VisualContainer.qml" line="244"/>
<source>Favorite</source> <source>Favorite</source>
<translation>Apprezzato</translation> <translation>Apprezzato</translation>
</message> </message>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Gesprek</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Verwijderen</translation> <translation>Verwijderen</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Fout bij laden</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Gesprek</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Verwijderen</translation> <translation>Verwijderen</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Fout bij laden</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Discutida</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Escafar</translation> <translation>Escafar</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Error en cargar</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Konwersacja</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Usuń</translation> <translation>Usuń</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Błąd ładowania</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Беседа</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Удалить</translation> <translation>Удалить</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Ошибка при загрузке</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Разговор</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Обриши</translation> <translation>Обриши</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Greška u učitavanju</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Konversation</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Radera</translation> <translation>Radera</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation>Problem att ladda</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation></translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation></translation> <translation></translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation>?</translation> <translation>?</translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@ -128,7 +132,7 @@
</message> </message>
<message> <message>
<source>Federated</source> <source>Federated</source>
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context> <context>
@ -292,18 +296,18 @@
</message> </message>
<message> <message>
<source>Use Transifex to help with app translation to your language</source> <source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation> <translation>使 Transifex </translation>
</message> </message>
<message> <message>
<source>Development and translations</source> <source>Development and translations</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
</context> </context>
<context> <context>
<name>Toot</name> <name>Toot</name>
<message> <message>
<source>boosted</source> <source>boosted</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>favourited</source> <source>favourited</source>
@ -311,7 +315,7 @@
</message> </message>
<message> <message>
<source>followed you</source> <source>followed you</source>
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context> <context>

View file

@ -22,10 +22,6 @@
</context> </context>
<context> <context>
<name>Conversation</name> <name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Conversation</translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Delete</translation> <translation>Delete</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source> <source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy Link to Clipboard</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImageFullScreen</name> <name>ImageFullScreen</name>
<message> <message>
<source>Error loading</source> <source>Error loading</source>
<translation></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>