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
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
Clone / download this repository and import it in your SailfishOS IDE using the harbour-tooter.pro project file. No additional configuration needed.
## Repository branches:
- master: default (Beta release version)
- develop: commits WIP
- upstream: commits for Tooter release
- master: default (Beta release version, harbour-tooterb)
- upstream: commits for Tooter release (harbour-tooter)
## 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
<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
interfaces.path = /usr/share/dbus-1/interfaces/
interfaces.files = config/ba.dysko.harbour.tooterb.xml
interfaces.files = config/ba.dysko.harbourb.tooterb.xml
SOURCES += \
src/harbour-tooterb.cpp
SOURCES += src/harbour-tooterb.cpp
SOURCES += src/imageuploader.cpp
SOURCES += src/filedownloader.cpp
SOURCES += src/notifications.cpp
@ -54,8 +53,7 @@ HEADERS += src/dbusAdaptor.h
HEADERS += src/dbus.h
DISTFILES += qml/harbour-tooterb.qml \
config/icon-lock-harbour-tooterb.png \
qml/images/tooterb.svg \
qml/pages/components/InfoBanner.qml \
qml/pages/components/VisualContainer.qml \
qml/pages/components/MiniStatus.qml \
qml/pages/components/MiniHeader.qml \
@ -78,11 +76,13 @@ DISTFILES += qml/harbour-tooterb.qml \
qml/images/notification.svg \
qml/images/verified.svg \
qml/images/boosted.svg \
qml/images/tooterb.svg \
qml/images/emojiselect.svg \
qml/images/icon-m-profile.svg \
qml/images/icon-l-profile.svg \
qml/lib/Mastodon.js \
qml/lib/Worker.js \
config/icon-lock-harbour-tooterb.png \
config/x-harbour.tooterb.activity.conf \
rpm/harbour-tooterb.changes \
rpm/harbour-tooterb.changes.run.in \

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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>
<data>
<variable>EnvironmentId</variable>
@ -54,19 +54,24 @@
</data>
<data>
<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>
<variable>ProjectExplorer.Project.Target.0</variable>
<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.DisplayName">SailfishOS-3.2.1.20-i486 (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.DefaultDisplayName">SailfishOS-3.3.0.16-armv7hl (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.3.0.16-armv7hl</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.ActiveRunConfiguration">0</value>
<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.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -134,7 +139,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<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.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -202,7 +207,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<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.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -271,6 +276,30 @@
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<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.BuildStepList.Step.0">
<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.Id">QmakeProjectManager.MerMb2RpmBuildConfiguration</value>
</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.BuildStepList.Step.0">
<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.Id">QmakeProjectManager.MerRSyncDeployConfiguration</value>
</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>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
@ -394,7 +399,7 @@
<value type="int">13</value>
<value type="int">14</value>
</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="int" key="MerRunConfiguration.QmlLiveIpcPort">-1</value>
<value type="int" key="MerRunConfiguration.QmlLiveOptions">3</value>
@ -402,8 +407,8 @@
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<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.Id">QmakeProjectManager.MerRunConfiguration:C:/Users/XPAM/Github/harbour-tooter-master/harbour-tooterb.pro</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/Github-App/harbour-tooter/harbour-tooterb.pro</value>
<value type="int" key="RemoteLinux.EnvironmentAspect.Version">1</value>
<value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
<value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value>
@ -423,14 +428,14 @@
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<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.DisplayName">SailfishOS-3.2.1.20-armv7hl (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.DefaultDisplayName">SailfishOS-3.3.0.16-i486 (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.3.0.16-i486</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>
<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.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -498,7 +503,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<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.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -566,7 +571,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<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.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -635,6 +640,30 @@
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<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.BuildStepList.Step.0">
<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.Id">QmakeProjectManager.MerMb2RpmBuildConfiguration</value>
</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.BuildStepList.Step.0">
<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.Id">QmakeProjectManager.MerRSyncDeployConfiguration</value>
</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>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
@ -758,7 +763,7 @@
<value type="int">13</value>
<value type="int">14</value>
</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="int" key="MerRunConfiguration.QmlLiveIpcPort">-1</value>
<value type="int" key="MerRunConfiguration.QmlLiveOptions">3</value>
@ -766,8 +771,8 @@
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<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.Id">QmakeProjectManager.MerRunConfiguration:C:/Users/XPAM/Github/harbour-tooter-master/harbour-tooterb.pro</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/Github-App/harbour-tooter/harbour-tooterb.pro</value>
<value type="int" key="RemoteLinux.EnvironmentAspect.Version">1</value>
<value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></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_acct'] = data["acct"]
res[prefix + 'account_display_name'] = data["display_name"]
res[prefix + 'account_discoverable'] = data["discoverable"]
res[prefix + 'account_locked'] = data["locked"]
res[prefix + 'account_created_at'] = data["created_at"]
res[prefix + 'account_avatar'] = data["avatar"]
res[prefix + 'account_header'] = data["header"]
// /console.log(JSON.stringify(res))
// console.log(JSON.stringify(res))
return (res);
}
@ -226,6 +228,7 @@ function parseToot (data){
item['highlight'] = false
item['status_id'] = data["id"]
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_account_id'] = data["in_reply_to_account_id"]
item['status_reblog'] = data["reblog"] ? true : false
@ -236,6 +239,7 @@ function parseToot (data){
item['favourites_count'] = data["favourites_count"]
item['reblogged'] = data["reblogged"]
item['favourited'] = data["favourited"]
item['bookmarked'] = data["bookmarked"]
item['status_sensitive'] = data["sensitive"]
item['status_spoiler_text'] = data["spoiler_text"]
item['status_visibility'] = data["visibility"]

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +1,26 @@
*Wed May 06 2020 molan <mol_an@sunrise.ch> 1.0.4-2
- Beta release
*Mon May 25 2020 molan <mol_an@sunrise.ch> 1.0.4-3
- 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
- Merge with molan code

View file

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

View file

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

View file

@ -22,10 +22,6 @@
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Konversation</translation>
</message>
<message>
<source>Delete</source>
<translation>Löschen</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source>
<translation>Was gibt&apos;s Neues?</translation>
</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>
<name>ImageFullScreen</name>
<message>
<source>Error loading</source>
<translation>Fehler beim Laden</translation>
<translation>Ladefehler</translation>
</message>
</context>
<context>

View file

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

View file

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

View file

@ -22,10 +22,6 @@
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished"></translation>
@ -62,6 +58,14 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</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>
<name>ImageFullScreen</name>

View file

@ -22,10 +22,6 @@
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Conversation</translation>
</message>
<message>
<source>Delete</source>
<translation>Supprimer</translation>
@ -40,7 +36,7 @@
</message>
<message>
<source>Write your warning here</source>
<translation>Avertissement du contenu</translation>
<translation>Rédigez votre alerte ici</translation>
</message>
<message>
<source>Public</source>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source>
<translation>Qu&apos;avez-vous en tête?</translation>
</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>
<name>ImageFullScreen</name>
<message>
<source>Error loading</source>
<translation>Erreur de chargement</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -81,7 +85,7 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation>Login</translation>
<translation>Connexion</translation>
</message>
<message>
<source>Instance</source>
@ -93,7 +97,7 @@
</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>
<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>
<source>Reload</source>
@ -116,7 +120,7 @@
</message>
<message>
<source>Search</source>
<translation>Chercher</translation>
<translation>Rechercher</translation>
</message>
<message>
<source>@user or #term</source>
@ -173,7 +177,7 @@
</message>
<message>
<source>Follow request sent!</source>
<translation>Demande de suivi envoyée !</translation>
<translation>Demande dabonnement envoyée !</translation>
</message>
<message>
<source>Following</source>
@ -232,7 +236,7 @@
</message>
<message>
<source>Remove Account</source>
<translation>Enlever compte</translation>
<translation>Déconnecter votre compte</translation>
</message>
<message>
<source>Add Account</source>
@ -244,7 +248,7 @@
</message>
<message>
<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>
<source>Disable this option if you want to preserve your data connection</source>
@ -280,7 +284,7 @@
</message>
<message>
<source>Added README file</source>
<translation>Ajouté fichier README</translation>
<translation>Fichier README ajouté</translation>
</message>
<message>
<source>Load images in toots</source>
@ -292,7 +296,7 @@
</message>
<message>
<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>
<source>Development and translations</source>
@ -326,11 +330,11 @@
</message>
<message>
<source>Unfavorite</source>
<translation>Défavoriser</translation>
<translation>Retirer des favoris</translation>
</message>
<message>
<source>Favorite</source>
<translation>Ajouter au favoris</translation>
<translation>Ajouter aux favoris</translation>
</message>
</context>
</TS>

View file

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

View file

@ -22,10 +22,6 @@
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Gesprek</translation>
</message>
<message>
<source>Delete</source>
<translation>Verwijderen</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</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>
<name>ImageFullScreen</name>
<message>
<source>Error loading</source>
<translation>Fout bij laden</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>

View file

@ -22,10 +22,6 @@
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Gesprek</translation>
</message>
<message>
<source>Delete</source>
<translation>Verwijderen</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</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>
<name>ImageFullScreen</name>
<message>
<source>Error loading</source>
<translation>Fout bij laden</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>

View file

@ -22,10 +22,6 @@
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Discutida</translation>
</message>
<message>
<source>Delete</source>
<translation>Escafar</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</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>
<name>ImageFullScreen</name>
<message>
<source>Error loading</source>
<translation>Error en cargar</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>

View file

@ -22,10 +22,6 @@
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Konwersacja</translation>
</message>
<message>
<source>Delete</source>
<translation>Usuń</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</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>
<name>ImageFullScreen</name>
<message>
<source>Error loading</source>
<translation>Błąd ładowania</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>

View file

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

View file

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

View file

@ -22,10 +22,6 @@
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Konversation</translation>
</message>
<message>
<source>Delete</source>
<translation>Radera</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</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>
<name>ImageFullScreen</name>
<message>
<source>Error loading</source>
<translation>Problem att ladda</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>

View file

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

View file

@ -22,10 +22,6 @@
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Conversation</translation>
</message>
<message>
<source>Delete</source>
<translation>Delete</translation>
@ -62,12 +58,20 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</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>
<name>ImageFullScreen</name>
<message>
<source>Error loading</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>