ui-improvements
New image/video viewer Send-message Profile background images
This commit is contained in:
parent
c8ad3f02cc
commit
41041a77aa
28 changed files with 197 additions and 177 deletions
|
@ -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"]
|
||||||
|
|
|
@ -15,6 +15,7 @@ Page {
|
||||||
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
|
||||||
|
@ -96,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
|
||||||
|
@ -110,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
|
||||||
|
@ -433,7 +445,7 @@ Page {
|
||||||
worker.sendMessage(msg)
|
worker.sendMessage(msg)
|
||||||
warningContent.text = ""
|
warningContent.text = ""
|
||||||
toot.text = ""
|
toot.text = ""
|
||||||
mediaModel.clear()
|
mediaModel.clear();
|
||||||
sentBanner.showText(qsTr("Toot sent!"))
|
sentBanner.showText(qsTr("Toot sent!"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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'];
|
||||||
|
|
|
@ -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
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,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: "";
|
||||||
|
|
||||||
|
@ -42,6 +42,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/",
|
||||||
|
@ -135,7 +136,6 @@ Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MyList {
|
MyList {
|
||||||
id: list
|
id: list
|
||||||
header: ProfileHeader {
|
header: ProfileHeader {
|
||||||
|
@ -143,6 +143,7 @@ Page {
|
||||||
title: display_name
|
title: display_name
|
||||||
description: username
|
description: username
|
||||||
image: profileImage
|
image: profileImage
|
||||||
|
bg: profileBackground
|
||||||
}
|
}
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
|
@ -159,7 +160,6 @@ Page {
|
||||||
conf: Logic.conf
|
conf: Logic.conf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ExpandingSectionGroup {
|
ExpandingSectionGroup {
|
||||||
id: expander
|
id: expander
|
||||||
//currentIndex: 0
|
//currentIndex: 0
|
||||||
|
@ -275,10 +275,8 @@ Page {
|
||||||
}));
|
}));
|
||||||
send(link)
|
send(link)
|
||||||
|
|
||||||
} else if (test.length === 4 && test[3][0] === "@" ) {
|
// function still missing for user accounts
|
||||||
tlSearch.search = decodeURIComponent("@"+test[3].substring(1)+"@"+test[2])
|
// } else if (test.length === 4 && test[3][0] === "@" ) {
|
||||||
slideshow.positionViewAtIndex(4, ListView.SnapToItem)
|
|
||||||
navigation.navigateTo('search')
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Qt.openUrlExternally(link);
|
Qt.openUrlExternally(link);
|
||||||
|
@ -290,7 +288,6 @@ Page {
|
||||||
spacing: Theme.paddingMedium
|
spacing: Theme.paddingMedium
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
Button {
|
Button {
|
||||||
id: btnUrl
|
|
||||||
text: qsTr("Open Profile in Browser")
|
text: qsTr("Open Profile in Browser")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
Qt.openUrlExternally(url);
|
Qt.openUrlExternally(url);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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]);
|
||||||
|
|
|
@ -4,16 +4,15 @@ import Sailfish.Silica 1.0
|
||||||
|
|
||||||
DockedPanel {
|
DockedPanel {
|
||||||
id: root
|
id: root
|
||||||
z: 100;
|
z: 100
|
||||||
width: parent.width //- Theme.paddingLarge*4
|
width: parent.width
|
||||||
//x: Theme.paddingLarge*2
|
|
||||||
height: content.height
|
height: content.height
|
||||||
dock: Dock.Bottom
|
dock: Dock.Top
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: content
|
id: content
|
||||||
width: root.width
|
width: root.width
|
||||||
height: infoLabel.height + 4*Theme.paddingMedium
|
height: infoLabel.height + 5*Theme.paddingMedium
|
||||||
//anchors.topMargin: 20
|
//anchors.topMargin: 20
|
||||||
color: Theme.highlightBackgroundColor
|
color: Theme.highlightBackgroundColor
|
||||||
opacity: 1.0
|
opacity: 1.0
|
||||||
|
@ -29,7 +28,7 @@ DockedPanel {
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WrapAnywhere
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
leftMargin: Theme.horizontalPageMargin
|
leftMargin: Theme.horizontalPageMargin*2
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.horizontalPageMargin
|
rightMargin: Theme.horizontalPageMargin
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
import QtQuick 2.0
|
|
||||||
import Sailfish.Silica 1.0
|
|
||||||
|
|
||||||
|
|
||||||
DockedPanel {
|
|
||||||
id: root
|
|
||||||
z: 100;
|
|
||||||
width: parent.width
|
|
||||||
height: content.height
|
|
||||||
dock: Dock.Bottom
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: content
|
|
||||||
width: root.width
|
|
||||||
height: infoLabel.height + 4*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
|
|
||||||
right: parent.right
|
|
||||||
rightMargin: Theme.ho rizontalPageMargin
|
|
||||||
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()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -74,8 +74,6 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MyImage {
|
MyImage {
|
||||||
id: placeholder1
|
id: placeholder1
|
||||||
width: 2
|
width: 2
|
||||||
|
|
|
@ -41,7 +41,6 @@ Item {
|
||||||
: Theme.primaryColor)
|
: Theme.primaryColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: lblScreenName
|
id: lblScreenName
|
||||||
anchors {
|
anchors {
|
||||||
|
|
|
@ -169,7 +169,5 @@ SilicaGridView {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
VerticalScrollDecorator {}
|
VerticalScrollDecorator {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,21 +10,22 @@ Item {
|
||||||
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
|
||||||
|
|
|
@ -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 {
|
||||||
|
@ -137,14 +136,19 @@ 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.RichText
|
textFormat: Text.RichText
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: (pressed ? Theme.highlightColor : (!highlight ? Theme.primaryColor : Theme.secondaryColor))
|
color: (pressed ? Theme.highlightColor : (!highlight ? Theme.primaryColor : Theme.secondaryColor))
|
||||||
|
@ -169,7 +173,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 +183,7 @@ BackgroundItem {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MediaBlock {
|
MediaBlock {
|
||||||
id: media
|
id: media
|
||||||
anchors {
|
anchors {
|
||||||
|
@ -191,6 +196,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,9 +275,6 @@ 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")
|
||||||
|
@ -279,6 +282,7 @@ BackgroundItem {
|
||||||
pageStack.push(Qt.resolvedUrl("../Conversation.qml"), {
|
pageStack.push(Qt.resolvedUrl("../Conversation.qml"), {
|
||||||
headerTitle: "Conversation",
|
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,
|
||||||
|
|
|
@ -60,14 +60,18 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Toot gesendet!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<translation>Link kopieren</translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,6 +62,10 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImageFullScreen</name>
|
<name>ImageFullScreen</name>
|
||||||
|
|
|
@ -60,14 +60,18 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Pouet envoyé !</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<translation>Copier le lien</translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -28,52 +28,57 @@
|
||||||
<context>
|
<context>
|
||||||
<name>Conversation</name>
|
<name>Conversation</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/Conversation.qml" line="188"/>
|
<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="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="218"/>
|
<location filename="../qml/pages/Conversation.qml" line="230"/>
|
||||||
<source>What's on your mind?</source>
|
<source>What'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="281"/>
|
<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="380"/>
|
<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="383"/>
|
<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="386"/>
|
<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="389"/>
|
<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="437"/>
|
<location filename="../qml/pages/Conversation.qml" line="449"/>
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Toot è stato pubblicato!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/Conversation.qml" line="503"/>
|
<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="504"/>
|
<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'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'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>
|
||||||
|
@ -269,7 +274,7 @@
|
||||||
<translation>Biografia</translation>
|
<translation>Biografia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/Profile.qml" line="294"/>
|
<location filename="../qml/pages/Profile.qml" line="291"/>
|
||||||
<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="204"/>
|
||||||
<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="204"/>
|
||||||
<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="241"/>
|
||||||
<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="241"/>
|
||||||
<source>Favorite</source>
|
<source>Favorite</source>
|
||||||
<translation>Apprezzato</translation>
|
<translation>Apprezzato</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
|
@ -62,12 +62,16 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
||||||
|
|
Loading…
Reference in a new issue