Merge branch 'ui-improvements'
This commit is contained in:
commit
be45ada288
40 changed files with 1334 additions and 1136 deletions
|
@ -71,10 +71,11 @@ DISTFILES += qml/harbour-tooterb.qml \
|
||||||
qml/cover/CoverPage.qml \
|
qml/cover/CoverPage.qml \
|
||||||
qml/pages/MainPage.qml \
|
qml/pages/MainPage.qml \
|
||||||
qml/pages/LoginPage.qml \
|
qml/pages/LoginPage.qml \
|
||||||
qml/pages/components/Toot.qml \
|
|
||||||
qml/pages/Browser.qml \
|
qml/pages/Browser.qml \
|
||||||
qml/lib/API.js \
|
qml/lib/API.js \
|
||||||
|
qml/images/icon-s-bot.svg \
|
||||||
qml/images/icon-s-following \
|
qml/images/icon-s-following \
|
||||||
|
qml/images/icon-s-bookmark \
|
||||||
qml/images/icon-m-emoji.svg \
|
qml/images/icon-m-emoji.svg \
|
||||||
qml/images/icon-m-profile.svg \
|
qml/images/icon-m-profile.svg \
|
||||||
qml/images/icon-l-profile.svg \
|
qml/images/icon-l-profile.svg \
|
||||||
|
|
9
qml/images/icon-s-bookmark.svg
Normal file
9
qml/images/icon-s-bookmark.svg
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
||||||
|
<title>icon-s-bookmark</title>
|
||||||
|
<g>
|
||||||
|
<rect width="32" height="32" fill="#fff" fill-opacity="0"/>
|
||||||
|
<path d="M20.81,10H11.19a1,1,0,1,1,0-2h9.63a1,1,0,0,1,0,2Z" fill="#fff"/>
|
||||||
|
<path d="M20.81,14.62H11.19a1,1,0,0,1,0-2h9.63a1,1,0,0,1,0,2Z" fill="#fff"/>
|
||||||
|
<path d="M26.85,29.74a1,1,0,0,1-.66-.25L16,20.82,5.81,29.48a1,1,0,0,1-1,.2c-.7-.22-.7-.76-.7-1.58,0-.63,0-1.88,0-4.38V4.48A2.41,2.41,0,0,1,6.44,2H25.56a2.41,2.41,0,0,1,2.29,2.5V23.73c0,2.5,0,3.75,0,4.38,0,.82,0,1.36-.7,1.58A1,1,0,0,1,26.85,29.74Zm-10.16-11,9.16,7.79c0-.7,0-1.62,0-2.84V4.48c0-.3-.18-.5-.29-.5H6.44c-.12,0-.29.2-.29.5V23.73c0,1.22,0,2.14,0,2.84l9.16-7.79h0a1.11,1.11,0,0,1,1.39,0Z" fill="#fff" opacity="0.6"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 776 B |
11
qml/images/icon-s-bot.svg
Normal file
11
qml/images/icon-s-bot.svg
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
||||||
|
<title>icon-s-bot</title>
|
||||||
|
<g>
|
||||||
|
<path d="M27.28,14.83a5,5,0,0,0-5-4.72H9.7a5,5,0,0,0-5,4.72,1.32,1.32,0,0,0,0,.28V24a1.32,1.32,0,0,0,0,.28A5,5,0,0,0,9.7,29H22.3a5,5,0,0,0,5-4.72,1.32,1.32,0,0,0,0-.28V15.11A1.32,1.32,0,0,0,27.28,14.83ZM10.85,21.32a2.81,2.81,0,1,1,2.81-2.81A2.81,2.81,0,0,1,10.85,21.32Zm10.3,0A2.81,2.81,0,1,1,24,18.51,2.81,2.81,0,0,1,21.15,21.32Z" fill="#fff"/>
|
||||||
|
<g opacity="0.6">
|
||||||
|
<path d="M17.67,5.06v5h-4v-5a2,2,0,0,1,4,0Z" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<path d="M30.43,19.55c0,2.61-1.4,4.73-3.13,4.73h0a1.32,1.32,0,0,0,0-.28V15.11a1.32,1.32,0,0,0,0-.28h0C29,14.83,30.43,16.94,30.43,19.55Z" fill="#fff" opacity="0.6"/>
|
||||||
|
<path d="M4.7,24a1.32,1.32,0,0,0,0,.28h0c-1.73,0-3.13-2.12-3.13-4.73S3,14.83,4.7,14.83h0a1.32,1.32,0,0,0,0,.28Z" fill="#fff" opacity="0.6"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 880 B |
Before Width: | Height: | Size: 451 B After Width: | Height: | Size: 451 B |
|
@ -89,11 +89,13 @@ var tootParser = function(data){
|
||||||
ret.avatar_static = data.account.avatar_static
|
ret.avatar_static = data.account.avatar_static
|
||||||
|
|
||||||
ret.favourited = data.favourited ? true : false
|
ret.favourited = data.favourited ? true : false
|
||||||
ret.favourites_count = data.favourites_count ? data.favourites_count : 0
|
ret.status_favourites_count = data.favourites_count ? data.favourites_count : 0
|
||||||
|
|
||||||
ret.reblog = data.reblog ? true : false
|
ret.reblog = data.reblog ? true : false
|
||||||
ret.reblogged = data.reblogged ? true : false
|
ret.reblogged = data.reblogged ? true : false
|
||||||
ret.reblogs_count = data.reblogs_count ? data.reblogs_count : false
|
ret.status_reblogs_count = data.reblogs_count ? data.reblogs_count : false
|
||||||
|
|
||||||
|
ret.bookmarked = data.bookmarked ? true : false
|
||||||
|
|
||||||
ret.muted = data.muted ? true : false
|
ret.muted = data.muted ? true : false
|
||||||
ret.sensitive = data.sensitive ? true : false
|
ret.sensitive = data.sensitive ? true : false
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
Qt.include("Mastodon.js")
|
Qt.include("Mastodon.js")
|
||||||
|
|
||||||
|
|
||||||
var loadImages = true;
|
var loadImages = true;
|
||||||
|
|
||||||
WorkerScript.onMessage = function(msg) {
|
WorkerScript.onMessage = function(msg) {
|
||||||
console.log("Action > " + msg.action)
|
console.log("Action > " + msg.action)
|
||||||
console.log("Model > " + msg.model)
|
console.log("Model > " + msg.model)
|
||||||
|
@ -9,16 +12,17 @@ WorkerScript.onMessage = function(msg) {
|
||||||
|
|
||||||
// order notifications in ASC order
|
// order notifications in ASC order
|
||||||
function orderNotifications(items){
|
function orderNotifications(items){
|
||||||
for (var i = items.length-1; i > 0; i--){
|
for (var i = items.length-1; i > 0; i--) {
|
||||||
if (items[i].id > 0 ) //msg.conf.notificationLastID)
|
if (items[i].id > 0 ) //msg.conf.notificationLastID)
|
||||||
WorkerScript.sendMessage({ 'fireNotification': true, "data": items[i]})
|
WorkerScript.sendMessage({ 'fireNotification': true, "data": items[i]})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!msg.conf || !msg.conf.login){
|
if (!msg.conf || !msg.conf.login) {
|
||||||
console.log("Not loggedin")
|
console.log("Not loggedin")
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof msg.conf['loadImages'] !== "undefined")
|
if (typeof msg.conf['loadImages'] !== "undefined")
|
||||||
loadImages = msg.conf['loadImages']
|
loadImages = msg.conf['loadImages']
|
||||||
|
|
||||||
|
@ -27,7 +31,7 @@ WorkerScript.onMessage = function(msg) {
|
||||||
API.post(msg.action, msg.params, function(data) {
|
API.post(msg.action, msg.params, function(data) {
|
||||||
if (msg.bgAction){
|
if (msg.bgAction){
|
||||||
console.log(JSON.stringify(data))
|
console.log(JSON.stringify(data))
|
||||||
} else if (msg.action === "statuses"){
|
} else if (msg.action === "statuses") {
|
||||||
// status posted
|
// status posted
|
||||||
if(msg.model){
|
if(msg.model){
|
||||||
var item = parseToot(data);
|
var item = parseToot(data);
|
||||||
|
@ -59,7 +63,7 @@ WorkerScript.onMessage = function(msg) {
|
||||||
|
|
||||||
} else if(msg.action === "notifications") {
|
} else if(msg.action === "notifications") {
|
||||||
// notification
|
// notification
|
||||||
//console.log("Is notification... parsing...")
|
// console.log("Is notification... parsing...")
|
||||||
console.log(JSON.stringify(data[i]))
|
console.log(JSON.stringify(data[i]))
|
||||||
item = parseNotification(data[i]);
|
item = parseNotification(data[i]);
|
||||||
items.push(item)
|
items.push(item)
|
||||||
|
@ -90,14 +94,13 @@ WorkerScript.onMessage = function(msg) {
|
||||||
}
|
}
|
||||||
addDataToModel (msg.model, "append", items);
|
addDataToModel (msg.model, "append", items);
|
||||||
items = [];
|
items = [];
|
||||||
|
|
||||||
} else if (data[i].hasOwnProperty("content")){
|
} else if (data[i].hasOwnProperty("content")){
|
||||||
//console.log("Is toot... parsing...")
|
// console.log("Is toot... parsing...")
|
||||||
item = parseToot(data[i]);
|
item = parseToot(data[i]);
|
||||||
item['id'] = item['status_id']
|
item['id'] = item['status_id']
|
||||||
items.push(item)
|
items.push(item)
|
||||||
} else {
|
} else {
|
||||||
WorkerScript.sendMessage({ 'action': msg.action, 'success': true, key: i, "data": data[i]})
|
WorkerScript.sendMessage({ 'action': msg.action, 'success': true, key: i, "data": data[i] })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,40 +111,55 @@ WorkerScript.onMessage = function(msg) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//WorkerScript.sendMessage({ 'notifyNewItems': length - i })
|
//WorkerScript.sendMessage({ 'notifyNewItems': length - i })
|
||||||
function addDataToModel (model, mode, items){
|
function addDataToModel (model, mode, items) {
|
||||||
var length = items.length;
|
var length = items.length;
|
||||||
console.log("Fetched > " +length)
|
console.log("Fetched > " +length)
|
||||||
|
|
||||||
if (mode === "append") {
|
if (mode === "append") {
|
||||||
model.append(items)
|
model.append(items)
|
||||||
} else if (mode === "prepend") {
|
} else if (mode === "prepend") {
|
||||||
for(var i = length-1; i >= 0 ; i--){
|
for(var i = length-1; i >= 0 ; i--) {
|
||||||
model.insert(0,items[i])
|
model.insert(0,items[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
model.sync()
|
model.sync()
|
||||||
}
|
}
|
||||||
function parseAccounts(collection, prefix, data){
|
|
||||||
var res = collection;
|
|
||||||
|
|
||||||
|
// Get Account Data: Represents a user of Mastodon and their associated profile.
|
||||||
|
function parseAccounts(collection, prefix, data) {
|
||||||
|
|
||||||
|
var res = collection;
|
||||||
|
// Base attributes
|
||||||
res[prefix + 'account_id'] = data["id"]
|
res[prefix + 'account_id'] = data["id"]
|
||||||
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_url'] = data["url"]
|
||||||
|
// Display attributes
|
||||||
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_note'] = data["note"]
|
||||||
res[prefix + 'account_locked'] = data["locked"]
|
|
||||||
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"]
|
res[prefix + 'account_header'] = data["header"]
|
||||||
|
res[prefix + 'account_locked'] = data["locked"]
|
||||||
|
//res[prefix + 'account_emojis'] = data["emojis"]
|
||||||
|
res[prefix + 'account_discoverable'] = data["discoverable"]
|
||||||
|
// Statistical attributes
|
||||||
|
res[prefix + 'account_created_at'] = data["created_at"]
|
||||||
|
res[prefix + 'account_statuses_count'] = data["statuses_count"]
|
||||||
|
res[prefix + 'account_followers_count'] = data["followers_count"]
|
||||||
|
res[prefix + 'account_following_count'] = data["following_count"]
|
||||||
|
// Optional attributes
|
||||||
|
//res[prefix + 'account_fields'] = data["fields"]
|
||||||
|
res[prefix + 'account_bot'] = data["bot"]
|
||||||
|
res[prefix + 'account_group'] = data["group"]
|
||||||
|
res[prefix + 'account_source'] = data["source"]
|
||||||
|
|
||||||
// console.log(JSON.stringify(res))
|
//console.log(JSON.stringify(res))
|
||||||
return (res);
|
return (res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get Notification Data
|
||||||
function parseNotification(data){
|
function parseNotification(data){
|
||||||
//console.log(JSON.stringify(data))
|
//console.log(JSON.stringify(data))
|
||||||
var item = {
|
var item = {
|
||||||
|
@ -152,31 +170,30 @@ function parseNotification(data){
|
||||||
switch (item['type']){
|
switch (item['type']){
|
||||||
case "mention":
|
case "mention":
|
||||||
if (!data.status) {
|
if (!data.status) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
item = parseToot(data.status)
|
item = parseToot(data.status)
|
||||||
item['typeIcon'] = "image://theme/icon-s-retweet"
|
item['typeIcon'] = "image://theme/icon-s-retweet"
|
||||||
item['typeIcon'] = "image://theme/icon-s-alarm"
|
item['typeIcon'] = "image://theme/icon-s-alarm"
|
||||||
item['type'] = "mention";
|
item['type'] = "mention"
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "reblog":
|
case "reblog":
|
||||||
if (!data.status) {
|
if (!data.status) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
item = parseToot(data.status)
|
item = parseToot(data.status)
|
||||||
item = parseAccounts(item, "reblog_", data["account"])
|
item = parseAccounts(item, "reblog_", data["account"])
|
||||||
item = parseAccounts(item, "", data["status"]["account"])
|
item = parseAccounts(item, "", data["status"]["account"])
|
||||||
item['status_reblog'] = true;
|
item['status_reblog'] = true
|
||||||
item['type'] = "reblog";
|
item['type'] = "reblog"
|
||||||
item['typeIcon'] = "image://theme/icon-s-retweet"
|
item['typeIcon'] = "image://theme/icon-s-retweet"
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "favourite":
|
case "favourite":
|
||||||
if (!data.status) {
|
if (!data.status) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
item = parseToot(data.status)
|
item = parseToot(data.status)
|
||||||
item = parseAccounts(item, "reblog_", data["account"])
|
item = parseAccounts(item, "reblog_", data["account"])
|
||||||
item = parseAccounts(item, "", data["status"]["account"])
|
item = parseAccounts(item, "", data["status"]["account"])
|
||||||
|
@ -185,15 +202,16 @@ function parseNotification(data){
|
||||||
item['type'] = "favourite";
|
item['type'] = "favourite";
|
||||||
//item['retweetScreenName'] = item['reblog_account_username'];
|
//item['retweetScreenName'] = item['reblog_account_username'];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "follow":
|
case "follow":
|
||||||
item['type'] = "follow";
|
item['type'] = "follow";
|
||||||
item = parseAccounts(item, "", data["account"])
|
item = parseAccounts(item, "", data["account"])
|
||||||
item = parseAccounts(item, "reblog_", data["account"])
|
item = parseAccounts(item, "reblog_", data["account"])
|
||||||
item['content'] = data['account']['note']
|
item['content'] = data['account']['note']
|
||||||
item['typeIcon'] = "../../images/icon-s-following.svg"
|
item['typeIcon'] = "../../images/icon-s-follow.svg"
|
||||||
item['attachments'] = []
|
item['attachments'] = []
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
item['typeIcon'] = "image://theme/icon-s-sailfish"
|
item['typeIcon'] = "image://theme/icon-s-sailfish"
|
||||||
}
|
}
|
||||||
|
@ -216,70 +234,76 @@ function collect() {
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
function getDate(dateStr){
|
|
||||||
|
function getDate(dateStr) {
|
||||||
var ts = new Date(dateStr);
|
var ts = new Date(dateStr);
|
||||||
return new Date(ts.getFullYear(), ts.getMonth(), ts.getDate(), 0, 0, 0)
|
return new Date(ts.getFullYear(), ts.getMonth(), ts.getDate(), 0, 0, 0)
|
||||||
}
|
}
|
||||||
function parseToot (data){
|
|
||||||
|
// Get Status / Toot Data
|
||||||
|
function parseToot (data) {
|
||||||
var i = 0;
|
var i = 0;
|
||||||
var item = {};
|
var item = {};
|
||||||
|
|
||||||
item['type'] = "toot"
|
item['type'] = "toot"
|
||||||
item['highlight'] = false
|
item['highlight'] = false
|
||||||
item['status_id'] = data["id"]
|
item['status_id'] = data["id"]
|
||||||
item['status_uri'] = data["uri"]
|
item['status_created_at'] = item['created_at'] = new Date(data["created_at"])
|
||||||
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
|
|
||||||
item['status_content'] = data["content"]
|
|
||||||
item['status_created_at'] = item['created_at'] = new Date(data["created_at"]);
|
|
||||||
item['section'] = getDate(data["created_at"]);
|
|
||||||
item['reblogs_count'] = data["reblogs_count"]
|
|
||||||
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_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"]
|
||||||
|
item['status_language'] = data["language"]
|
||||||
|
|
||||||
if(item['status_reblog']){
|
item['status_uri'] = data["uri"]
|
||||||
|
item['status_url'] = data["url"]
|
||||||
|
item['status_replies_count'] = data["replies_count"]
|
||||||
|
item['status_reblogs_count'] = data["reblogs_count"]
|
||||||
|
item['status_favourites_count'] = data["favourites_count"]
|
||||||
|
item['status_favourited'] = data["favourited"]
|
||||||
|
item['status_reblogged'] = data["reblogged"]
|
||||||
|
item['status_bookmarked'] = data["bookmarked"]
|
||||||
|
|
||||||
|
item['status_content'] = data["content"]
|
||||||
|
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
|
||||||
|
item['section'] = getDate(data["created_at"])
|
||||||
|
|
||||||
|
// If Toot is a Reblog
|
||||||
|
if(item['status_reblog']) {
|
||||||
item['type'] = "reblog";
|
item['type'] = "reblog";
|
||||||
item['typeIcon'] = "image://theme/icon-s-retweet"
|
item['typeIcon'] = "image://theme/icon-s-retweet"
|
||||||
item['status_id'] = data["reblog"]["id"];
|
item['status_id'] = data["reblog"]["id"];
|
||||||
item['status_spoiler_text'] = data["reblog"]["spoiler_text"]
|
item['status_spoiler_text'] = data["reblog"]["spoiler_text"]
|
||||||
item['status_sensitive'] = data["reblog"]["sensitive"]
|
item['status_sensitive'] = data["reblog"]["sensitive"]
|
||||||
item['emojis'] = data["reblog"]["emojis"];
|
|
||||||
item = parseAccounts(item, "", data['reblog']["account"])
|
item = parseAccounts(item, "", data['reblog']["account"])
|
||||||
item = parseAccounts(item, "reblog_", data["account"])
|
item = parseAccounts(item, "reblog_", data["account"])
|
||||||
} else {
|
} else {
|
||||||
item = parseAccounts(item, "", data["account"])
|
item = parseAccounts(item, "", data["account"])
|
||||||
}
|
}
|
||||||
item['content'] = data['content']
|
item['content'] = data['content']
|
||||||
.replaceAll('</span><span class="invisible">', '')
|
.replaceAll('</span><span class="invisible">', '')
|
||||||
.replaceAll('<span class="invisible">', '')
|
.replaceAll('<span class="invisible">', '')
|
||||||
.replaceAll('</span><span class="ellipsis">', '')
|
.replaceAll('</span><span class="ellipsis">', '')
|
||||||
.replaceAll('class=""', '');
|
.replaceAll('class=""', '');
|
||||||
item['attachments'] = [];
|
item['attachments'] = [];
|
||||||
|
|
||||||
|
// Media attachements in Toots
|
||||||
|
for(i = 0; i < data['media_attachments'].length ; i++) {
|
||||||
|
|
||||||
for(i = 0; i < data['media_attachments'].length ; i++){
|
|
||||||
var attachments = data['media_attachments'][i];
|
var attachments = data['media_attachments'][i];
|
||||||
item['content'] = item['content'].replaceAll(attachments['text_url'], '')
|
item['content'] = item['content'].replaceAll(attachments['text_url'], '')
|
||||||
var tmp = {
|
var tmp = {
|
||||||
id: attachments['id'],
|
|
||||||
id: attachments['id'],
|
id: attachments['id'],
|
||||||
type: attachments['type'],
|
type: attachments['type'],
|
||||||
url: attachments['remote_url'] && typeof attachments['remote_url'] == "string" ? attachments['remote_url'] : attachments['url'] ,
|
url: attachments['remote_url'] && typeof attachments['remote_url'] == "string" ? attachments['remote_url'] : attachments['url'] ,
|
||||||
preview_url: loadImages ? attachments['preview_url'] : ''
|
preview_url: loadImages ? attachments['preview_url'] : ''
|
||||||
}
|
}
|
||||||
item['attachments'].push(tmp)
|
item['attachments'].push(tmp)
|
||||||
}
|
}
|
||||||
if(item['status_reblog']){
|
|
||||||
for(i = 0; i < data['reblog']['media_attachments'].length ; i++){
|
// Media attachements in Reblogs
|
||||||
|
if(item['status_reblog']) {
|
||||||
|
for(i = 0; i < data['reblog']['media_attachments'].length ; i++) {
|
||||||
var attachments = data['reblog']['media_attachments'][i];
|
var attachments = data['reblog']['media_attachments'][i];
|
||||||
item['content'] = item['content'].replaceAll(attachments['text_url'], '')
|
item['content'] = item['content'].replaceAll(attachments['text_url'], '')
|
||||||
var tmp = {
|
var tmp = {
|
||||||
|
@ -291,18 +315,20 @@ function parseToot (data){
|
||||||
item['attachments'].push(tmp)
|
item['attachments'].push(tmp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return addEmojis(item, data);
|
return addEmojis(item, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function addEmojis(item, data){
|
// Display function for custom Emojis in Toots
|
||||||
|
function addEmojis(item, data) {
|
||||||
var emoji, i;
|
var emoji, i;
|
||||||
for (i = 0; i < data["emojis"].length; i++){
|
for (i = 0; i < data["emojis"].length; i++) {
|
||||||
emoji = data["emojis"][i];
|
emoji = data["emojis"][i];
|
||||||
item['content'] = item['content'].replaceAll(":"+emoji.shortcode+":", "<img src=\"" + emoji.static_url+"\" align=\"top\" width=\"50\" height=\"50\">")
|
item['content'] = item['content'].replaceAll(":"+emoji.shortcode+":", "<img src=\"" + emoji.static_url+"\" align=\"top\" width=\"50\" height=\"50\">")
|
||||||
//console.log(JSON.stringify(data["emojis"][i]))
|
//console.log(JSON.stringify(data["emojis"][i]))
|
||||||
}
|
}
|
||||||
if (data["reblog"])
|
if (data["reblog"])
|
||||||
for (i = 0; i < data["reblog"]["emojis"].length; i++){
|
for (i = 0; i < data["reblog"]["emojis"].length; i++) {
|
||||||
emoji = data["reblog"]["emojis"][i];
|
emoji = data["reblog"]["emojis"][i];
|
||||||
item['content'] = item['content'].replaceAll(":"+emoji.shortcode+":", "<img src=\"" + emoji.static_url+"\" align=\"top\" width=\"50\" height=\"50\">")
|
item['content'] = item['content'].replaceAll(":"+emoji.shortcode+":", "<img src=\"" + emoji.static_url+"\" align=\"top\" width=\"50\" height=\"50\">")
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,73 +6,74 @@ import "./components/"
|
||||||
|
|
||||||
|
|
||||||
Page {
|
Page {
|
||||||
id: conversationPage
|
id: conversationPage
|
||||||
|
|
||||||
property string headerTitle: ""
|
|
||||||
property string type
|
property string type
|
||||||
property alias title: header.title
|
property string description: ""
|
||||||
property alias description: header.description
|
property string headerTitle: ""
|
||||||
property alias avatar: header.image
|
property string suggestedUser: ""
|
||||||
property string suggestedUser: ""
|
property ListModel suggestedModel
|
||||||
property ListModel suggestedModel
|
property string toot_id: ""
|
||||||
property string toot_id: ""
|
|
||||||
property string toot_url: ""
|
property string toot_url: ""
|
||||||
property string toot_uri: ""
|
property string toot_uri: ""
|
||||||
property int tootMaxChar: 500;
|
property int tootMaxChar: 500;
|
||||||
property bool bot: false
|
property bool bot: false //otherwise ReferenceError ProfileHeader.qml
|
||||||
|
property bool followed_by: false //otherwise ReferenceError ProfileHeader.qml
|
||||||
|
property bool locked: false //otherwise ReferenceError ProfileHeader.qml
|
||||||
|
property bool group: false //otherwise ReferenceError ProfileHeader.qml
|
||||||
property ListModel mdl
|
property ListModel mdl
|
||||||
|
|
||||||
allowedOrientations: Orientation.All
|
allowedOrientations: Orientation.All
|
||||||
onSuggestedUserChanged: {
|
onSuggestedUserChanged: {
|
||||||
console.log(suggestedUser)
|
console.log(suggestedUser)
|
||||||
suggestedModel = Qt.createQmlObject(
|
suggestedModel = Qt.createQmlObject(
|
||||||
'import QtQuick 2.0; ListModel { }',
|
'import QtQuick 2.0; ListModel { }',
|
||||||
Qt.application, 'InternalQmlObject'
|
Qt.application, 'InternalQmlObject'
|
||||||
)
|
)
|
||||||
predictionList.visible = false
|
predictionList.visible = false
|
||||||
if (suggestedUser.length > 0) {
|
if (suggestedUser.length > 0) {
|
||||||
var msg = {
|
var msg = {
|
||||||
"action": 'accounts/search',
|
"action": 'accounts/search',
|
||||||
"method": 'GET',
|
"method": 'GET',
|
||||||
"model": suggestedModel,
|
"model": suggestedModel,
|
||||||
"mode": "append",
|
"mode": "append",
|
||||||
"params": [{
|
"params": [{
|
||||||
"name": "q",
|
"name": "q",
|
||||||
"data": suggestedUser
|
"data": suggestedUser
|
||||||
}],
|
}],
|
||||||
"conf": Logic.conf
|
"conf": Logic.conf
|
||||||
}
|
}
|
||||||
worker.sendMessage(msg)
|
worker.sendMessage(msg)
|
||||||
predictionList.visible = true
|
predictionList.visible = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ListModel {
|
ListModel {
|
||||||
id: mediaModel
|
id: mediaModel
|
||||||
onCountChanged: {
|
onCountChanged: {
|
||||||
btnAddImage.enabled = mediaModel.count < 4
|
btnAddImage.enabled = mediaModel.count < 4
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WorkerScript {
|
WorkerScript {
|
||||||
id: worker
|
id: worker
|
||||||
source: "../lib/Worker.js"
|
source: "../lib/Worker.js"
|
||||||
onMessage: {
|
onMessage: {
|
||||||
console.log(JSON.stringify(messageObject))
|
console.log(JSON.stringify(messageObject))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ProfileHeader {
|
ProfileHeader {
|
||||||
id: header
|
id: header
|
||||||
visible: false
|
visible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
SilicaListView {
|
SilicaListView {
|
||||||
id: myList
|
id: myList
|
||||||
header: PageHeader {
|
header: PageHeader {
|
||||||
title: headerTitle // pageTitle pushed from MainPage.qml or VisualContainer.qml
|
title: headerTitle // pageTitle pushed from MainPage.qml or VisualContainer.qml
|
||||||
}
|
}
|
||||||
clip: true
|
clip: true
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -81,33 +82,34 @@ Page {
|
||||||
} else {
|
} else {
|
||||||
hiddenPanel.top
|
hiddenPanel.top
|
||||||
}
|
}
|
||||||
model: mdl
|
model: mdl
|
||||||
section {
|
section {
|
||||||
property: 'section'
|
property: 'section'
|
||||||
delegate: SectionHeader {
|
delegate: SectionHeader {
|
||||||
height: Theme.itemSizeExtraSmall
|
height: Theme.itemSizeExtraSmall
|
||||||
text: Format.formatDate(section, Formatter.DateMedium)
|
text: Format.formatDate(section, Formatter.DateMedium)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delegate: VisualContainer {
|
delegate: VisualContainer {
|
||||||
}
|
}
|
||||||
onCountChanged: {
|
onCountChanged: {
|
||||||
if (mdl)
|
if (mdl)
|
||||||
for (var i = 0; i < mdl.count; i++) {
|
for (var i = 0; i < mdl.count; i++) {
|
||||||
if (mdl.get(i).status_id === toot_id) {
|
if (mdl.get(i).status_id === toot_id) {
|
||||||
console.log(mdl.get(i).status_id)
|
console.log(mdl.get(i).status_id)
|
||||||
positionViewAtIndex(i, ListView.Center)
|
positionViewAtIndex(i, ListView.Center)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PullDownMenu {
|
PullDownMenu {
|
||||||
id: pulleyConversation
|
id: pulleyConversation
|
||||||
visible: type === "reply"
|
visible: type === "reply"
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
|
//: Use the translation of "Copy Link" for a shorter PullDownMenu label
|
||||||
text: qsTr("Copy Link to Clipboard")
|
text: qsTr("Copy Link to Clipboard")
|
||||||
onClicked: if (toot_url === "") {
|
onClicked: if (toot_url === "") {
|
||||||
|
|
||||||
var test = toot_uri.split("/")
|
var test = toot_uri.split("/")
|
||||||
console.log(toot_uri)
|
console.log(toot_uri)
|
||||||
console.log(JSON.stringify(test))
|
console.log(JSON.stringify(test))
|
||||||
|
@ -117,15 +119,24 @@ Page {
|
||||||
Clipboard.text = urialt
|
Clipboard.text = urialt
|
||||||
}
|
}
|
||||||
else Clipboard.text = toot_uri
|
else Clipboard.text = toot_uri
|
||||||
|
} else Clipboard.text = toot_url
|
||||||
} else onClicked: Clipboard.text = toot_url
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
//: "Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"
|
||||||
|
text: !panel.open ? qsTr("Reply") : qsTr("Hide Reply")
|
||||||
|
visible: type == "reply"
|
||||||
|
onClicked: if (!panel.open) {
|
||||||
|
panel.open = true
|
||||||
|
} else panel.open = false
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: predictionList
|
id: predictionList
|
||||||
visible: false
|
visible: false
|
||||||
color: Theme.highlightDimmerColor
|
color: Theme.highlightDimmerColor
|
||||||
height: parent.height - panel.height - (Theme.paddingLarge * 4.5)
|
height: parent.height - panel.height - (Theme.paddingLarge * 4.5)
|
||||||
anchors {
|
anchors {
|
||||||
|
@ -141,108 +152,111 @@ Page {
|
||||||
SilicaListView {
|
SilicaListView {
|
||||||
rotation: 180
|
rotation: 180
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
model: suggestedModel
|
model: suggestedModel
|
||||||
clip: true
|
clip: true
|
||||||
quickScroll: false
|
quickScroll: false
|
||||||
VerticalScrollDecorator {}
|
VerticalScrollDecorator {}
|
||||||
delegate: ItemUser {
|
delegate: ItemUser {
|
||||||
rotation: 180
|
rotation: 180
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var start = toot.cursorPosition
|
var start = toot.cursorPosition
|
||||||
while (toot.text[start] !== "@" && start > 0) {
|
while (toot.text[start] !== "@" && start > 0) {
|
||||||
start--
|
start--
|
||||||
}
|
}
|
||||||
textOperations.text = toot.text
|
textOperations.text = toot.text
|
||||||
textOperations.cursorPosition = toot.cursorPosition
|
textOperations.cursorPosition = toot.cursorPosition
|
||||||
textOperations.moveCursorSelection(start - 1, TextInput.SelectWords)
|
textOperations.moveCursorSelection(start - 1, TextInput.SelectWords)
|
||||||
toot.text = textOperations.text.substring(0, textOperations.selectionStart)
|
toot.text = textOperations.text.substring(0, textOperations.selectionStart)
|
||||||
+ ' @'
|
+ ' @'
|
||||||
+ model.account_acct
|
+ model.account_acct
|
||||||
+ ' '
|
+ ' '
|
||||||
+ textOperations.text.substring(textOperations.selectionEnd).trim()
|
+ textOperations.text.substring(textOperations.selectionEnd).trim()
|
||||||
|
|
||||||
toot.cursorPosition = toot.text.indexOf('@' + model.account_acct)
|
toot.cursorPosition = toot.text.indexOf('@' + model.account_acct)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onCountChanged: {
|
onCountChanged: {
|
||||||
positionViewAtBeginning(suggestedModel.count - 1, ListView.Beginning)
|
if (count > 0) {
|
||||||
}
|
positionViewAtBeginning(suggestedModel.count - 1, ListView.Beginning)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DockedPanel {
|
DockedPanel {
|
||||||
id: panel
|
id: panel
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: progressBar.height + toot.height + (mediaModel.count ? uploadedImages.height : 0)
|
height: progressBar.height + toot.height + (mediaModel.count ? uploadedImages.height : 0)
|
||||||
+ btnContentWarning.height + Theme.paddingMedium
|
+ btnContentWarning.height + Theme.paddingMedium
|
||||||
+ (warningContent.visible ? warningContent.height : 0)
|
+ (warningContent.visible ? warningContent.height : 0)
|
||||||
dock: Dock.Bottom
|
dock: Dock.Bottom
|
||||||
open: true
|
open: true
|
||||||
animationDuration: 200
|
|
||||||
|
animationDuration: 300
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: progressBar.height
|
height: progressBar.height
|
||||||
color: Theme.highlightBackgroundColor
|
color: Theme.highlightBackgroundColor
|
||||||
opacity: 0.2
|
opacity: 0.2
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
right: parent.right
|
right: parent.right
|
||||||
top: parent.top
|
top: parent.top
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: progressBar
|
id: progressBar
|
||||||
width: toot.text.length ? panel.width * (toot.text.length / tootMaxChar) : 0
|
width: toot.text.length ? panel.width * (toot.text.length / tootMaxChar) : 0
|
||||||
height: Theme.itemSizeSmall * 0.05
|
height: Theme.itemSizeSmall * 0.05
|
||||||
color: Theme.highlightBackgroundColor
|
color: Theme.highlightBackgroundColor
|
||||||
opacity: 0.7
|
opacity: 0.7
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
top: parent.top
|
top: parent.top
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TextField {
|
TextField {
|
||||||
id: warningContent
|
id: warningContent
|
||||||
visible: false
|
visible: false
|
||||||
height: visible ? implicitHeight : 0
|
height: visible ? implicitHeight : 0
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
topMargin: Theme.paddingMedium
|
topMargin: Theme.paddingMedium
|
||||||
left: parent.left
|
left: parent.left
|
||||||
right: parent.right
|
right: parent.right
|
||||||
}
|
}
|
||||||
autoScrollEnabled: true
|
autoScrollEnabled: true
|
||||||
labelVisible: false
|
labelVisible: false
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
placeholderText: qsTr("Write your warning here")
|
placeholderText: qsTr("Write your warning here")
|
||||||
placeholderColor: palette.highlightColor
|
placeholderColor: palette.highlightColor
|
||||||
color: palette.highlightColor
|
color: palette.highlightColor
|
||||||
horizontalAlignment: Text.AlignLeft
|
horizontalAlignment: Text.AlignLeft
|
||||||
EnterKey.onClicked: {}
|
EnterKey.onClicked: {}
|
||||||
}
|
}
|
||||||
|
|
||||||
TextInput {
|
TextInput {
|
||||||
id: textOperations
|
id: textOperations
|
||||||
visible: false
|
visible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
TextArea {
|
TextArea {
|
||||||
id: toot
|
id: toot
|
||||||
anchors {
|
anchors {
|
||||||
top: warningContent.bottom
|
top: warningContent.bottom
|
||||||
topMargin: Theme.paddingMedium
|
topMargin: Theme.paddingMedium
|
||||||
left: parent.left
|
left: parent.left
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.paddingLarge * 2
|
rightMargin: Theme.paddingLarge * 2
|
||||||
}
|
}
|
||||||
autoScrollEnabled: true
|
autoScrollEnabled: true
|
||||||
labelVisible: false
|
labelVisible: false
|
||||||
text: description !== "" && (description.charAt(0) === '@'
|
text: description !== "" && (description.charAt(0) === '@'
|
||||||
|| description.charAt(
|
|| description.charAt(
|
||||||
0) === '#') ? description + ' ' : ''
|
0) === '#') ? description + ' ' : ''
|
||||||
height: if (type !== "reply") {
|
height: if (type !== "reply") {
|
||||||
Math.max(conversationPage.height / 3, Math.min(conversationPage.height * 0.65, implicitHeight))
|
Math.max(conversationPage.height / 3, Math.min(conversationPage.height * 0.65, implicitHeight))
|
||||||
}
|
}
|
||||||
|
@ -253,274 +267,274 @@ Page {
|
||||||
placeholderText: qsTr("What's on your mind?")
|
placeholderText: qsTr("What's on your mind?")
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
EnterKey.onClicked: {}
|
EnterKey.onClicked: {}
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
textOperations.text = toot.text
|
textOperations.text = toot.text
|
||||||
textOperations.cursorPosition = toot.cursorPosition
|
textOperations.cursorPosition = toot.cursorPosition
|
||||||
textOperations.selectWord()
|
textOperations.selectWord()
|
||||||
textOperations.select(
|
textOperations.select(
|
||||||
textOperations.selectionStart ? textOperations.selectionStart - 1 : 0,
|
textOperations.selectionStart ? textOperations.selectionStart - 1 : 0,
|
||||||
textOperations.selectionEnd)
|
textOperations.selectionEnd)
|
||||||
//console.log(textOperations.text.substr(textOperations.selectionStart, textOperations.selectionEnd))
|
//console.log(textOperations.text.substr(textOperations.selectionStart, textOperations.selectionEnd))
|
||||||
console.log(toot.text.length)
|
console.log(toot.text.length)
|
||||||
suggestedUser = ""
|
suggestedUser = ""
|
||||||
if (textOperations.selectedText.charAt(0) === "@") {
|
if (textOperations.selectedText.charAt(0) === "@") {
|
||||||
suggestedUser = textOperations.selectedText.trim().substring(1)
|
suggestedUser = textOperations.selectedText.trim().substring(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
id: btnSmileys
|
id: btnSmileys
|
||||||
|
|
||||||
property string selection
|
property string selection
|
||||||
|
|
||||||
opacity: 0.7
|
opacity: 0.7
|
||||||
icon {
|
icon {
|
||||||
|
source: "../../qml/images/icon-m-emoji.svg?"
|
||||||
color: Theme.secondaryColor
|
color: Theme.secondaryColor
|
||||||
width: Theme.iconSizeSmallPlus
|
width: Theme.iconSizeSmallPlus
|
||||||
fillMode: Image.PreserveAspectFit
|
fillMode: Image.PreserveAspectFit
|
||||||
source: "../../qml/images/icon-m-emoji.svg"
|
|
||||||
}
|
}
|
||||||
anchors {
|
anchors {
|
||||||
top: warningContent.bottom
|
top: warningContent.bottom
|
||||||
bottom: bottom.top
|
bottom: bottom.top
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.paddingSmall
|
rightMargin: Theme.paddingSmall
|
||||||
}
|
}
|
||||||
onSelectionChanged: { console.log(selection) }
|
onSelectionChanged: { console.log(selection) }
|
||||||
onClicked: pageStack.push(emojiSelect)
|
onClicked: pageStack.push(emojiSelect)
|
||||||
}
|
}
|
||||||
|
|
||||||
SilicaGridView {
|
SilicaGridView {
|
||||||
id: uploadedImages
|
id: uploadedImages
|
||||||
width: parent.width
|
width: parent.width
|
||||||
anchors.top: bottom.toot
|
anchors.top: bottom.toot
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
height: mediaModel.count ? Theme.itemSizeExtraLarge : 0
|
height: mediaModel.count ? Theme.itemSizeExtraLarge : 0
|
||||||
model: mediaModel
|
model: mediaModel
|
||||||
cellWidth: uploadedImages.width / 4
|
cellWidth: uploadedImages.width / 4
|
||||||
cellHeight: Theme.itemSizeExtraLarge
|
cellHeight: Theme.itemSizeExtraLarge
|
||||||
delegate: BackgroundItem {
|
delegate: BackgroundItem {
|
||||||
id: myDelegate
|
id: myDelegate
|
||||||
width: uploadedImages.cellWidth
|
width: uploadedImages.cellWidth
|
||||||
height: uploadedImages.cellHeight
|
height: uploadedImages.cellHeight
|
||||||
RemorseItem {
|
RemorseItem {
|
||||||
id: remorse
|
id: remorse
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
fillMode: Image.PreserveAspectCrop
|
fillMode: Image.PreserveAspectCrop
|
||||||
source: model.preview_url
|
source: model.preview_url
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var idx = index
|
var idx = index
|
||||||
console.log(idx)
|
console.log(idx)
|
||||||
//mediaModel.remove(idx)
|
//mediaModel.remove(idx)
|
||||||
remorse.execute(myDelegate, qsTr("Delete"), function () {
|
remorse.execute(myDelegate, qsTr("Delete"), function () {
|
||||||
mediaModel.remove(idx)
|
mediaModel.remove(idx)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
add: Transition {
|
add: Transition {
|
||||||
NumberAnimation {
|
NumberAnimation {
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
from: 0
|
from: 0
|
||||||
to: 1.0
|
to: 1.0
|
||||||
duration: 800
|
duration: 800
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
remove: Transition {
|
remove: Transition {
|
||||||
NumberAnimation {
|
NumberAnimation {
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
from: 1.0
|
from: 1.0
|
||||||
to: 0
|
to: 0
|
||||||
duration: 800
|
duration: 800
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
displaced: Transition {
|
displaced: Transition {
|
||||||
NumberAnimation {
|
NumberAnimation {
|
||||||
properties: "x,y"
|
properties: "x,y"
|
||||||
duration: 800
|
duration: 800
|
||||||
easing.type: Easing.InOutBack
|
easing.type: Easing.InOutBack
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
id: btnContentWarning
|
id: btnContentWarning
|
||||||
anchors {
|
anchors {
|
||||||
top: toot.bottom
|
top: toot.bottom
|
||||||
topMargin: -Theme.paddingSmall * 1.5
|
topMargin: -Theme.paddingSmall * 1.5
|
||||||
left: parent.left
|
left: parent.left
|
||||||
leftMargin: Theme.paddingMedium
|
leftMargin: Theme.paddingMedium
|
||||||
}
|
}
|
||||||
icon.source: "image://theme/icon-s-warning?"
|
icon.source: "image://theme/icon-s-warning?"
|
||||||
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
|
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
|
||||||
onClicked: warningContent.visible = !warningContent.visible
|
onClicked: warningContent.visible = !warningContent.visible
|
||||||
}
|
}
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
id: btnAddImage
|
id: btnAddImage
|
||||||
enabled: mediaModel.count < 4
|
enabled: mediaModel.count < 4
|
||||||
anchors {
|
anchors {
|
||||||
top: toot.bottom
|
top: toot.bottom
|
||||||
topMargin: -Theme.paddingSmall * 1.5
|
topMargin: -Theme.paddingSmall * 1.5
|
||||||
left: btnContentWarning.right
|
left: btnContentWarning.right
|
||||||
leftMargin: Theme.paddingSmall
|
leftMargin: Theme.paddingSmall
|
||||||
}
|
}
|
||||||
icon.source: "image://theme/icon-s-attach?"
|
icon.source: "image://theme/icon-s-attach?"
|
||||||
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
|
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
|
||||||
onClicked: {
|
onClicked: {
|
||||||
btnAddImage.enabled = false
|
btnAddImage.enabled = false
|
||||||
var once = true
|
var once = true
|
||||||
var imagePicker = pageStack.push("Sailfish.Pickers.ImagePickerPage", {"allowedOrientations": Orientation.All})
|
var imagePicker = pageStack.push("Sailfish.Pickers.ImagePickerPage", {"allowedOrientations": Orientation.All})
|
||||||
imagePicker.selectedContentChanged.connect(function () {
|
imagePicker.selectedContentChanged.connect(function () {
|
||||||
var imagePath = imagePicker.selectedContent
|
var imagePath = imagePicker.selectedContent
|
||||||
console.log(imagePath)
|
console.log(imagePath)
|
||||||
imageUploader.setUploadUrl(Logic.conf.instance + "/api/v1/media")
|
imageUploader.setUploadUrl(Logic.conf.instance + "/api/v1/media")
|
||||||
imageUploader.setFile(imagePath)
|
imageUploader.setFile(imagePath)
|
||||||
imageUploader.setAuthorizationHeader(Logic.conf.api_user_token)
|
imageUploader.setAuthorizationHeader(Logic.conf.api_user_token)
|
||||||
imageUploader.upload()
|
imageUploader.upload()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageUploader {
|
ImageUploader {
|
||||||
id: imageUploader
|
id: imageUploader
|
||||||
onProgressChanged: {
|
onProgressChanged: {
|
||||||
console.log("progress " + progress)
|
console.log("progress " + progress)
|
||||||
uploadProgress.width = parent.width * progress
|
uploadProgress.width = parent.width * progress
|
||||||
}
|
}
|
||||||
onSuccess: {
|
onSuccess: {
|
||||||
uploadProgress.width = 0
|
uploadProgress.width = 0
|
||||||
console.log(replyData)
|
console.log(replyData)
|
||||||
mediaModel.append(JSON.parse(replyData))
|
mediaModel.append(JSON.parse(replyData))
|
||||||
}
|
}
|
||||||
onFailure: {
|
onFailure: {
|
||||||
uploadProgress.width = 0
|
uploadProgress.width = 0
|
||||||
btnAddImage.enabled = true
|
btnAddImage.enabled = true
|
||||||
console.log(status)
|
console.log(status)
|
||||||
console.log(statusText)
|
console.log(statusText)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: privacy
|
id: privacy
|
||||||
anchors {
|
anchors {
|
||||||
top: toot.bottom
|
top: toot.bottom
|
||||||
topMargin: -Theme.paddingSmall * 1.5
|
topMargin: -Theme.paddingSmall * 1.5
|
||||||
left: btnAddImage.right
|
left: btnAddImage.right
|
||||||
right: btnSend.left
|
right: btnSend.left
|
||||||
}
|
}
|
||||||
menu: ContextMenu {
|
menu: ContextMenu {
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: qsTr("Public")
|
text: qsTr("Public")
|
||||||
}
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: qsTr("Unlisted")
|
text: qsTr("Unlisted")
|
||||||
}
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: qsTr("Followers-only")
|
text: qsTr("Followers-only")
|
||||||
}
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: qsTr("Direct")
|
text: qsTr("Direct")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
id: btnSend
|
id: btnSend
|
||||||
icon.source: "image://theme/icon-m-send?"
|
icon.source: "image://theme/icon-m-send?"
|
||||||
+ (pressed ? Theme.highlightColor : Theme.primaryColor)
|
+ (pressed ? Theme.highlightColor : Theme.primaryColor)
|
||||||
anchors {
|
anchors {
|
||||||
top: toot.bottom
|
top: toot.bottom
|
||||||
topMargin: -Theme.paddingSmall * 1.5
|
topMargin: -Theme.paddingSmall * 1.5
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.paddingSmall
|
rightMargin: Theme.paddingSmall
|
||||||
}
|
}
|
||||||
enabled: toot.text !== "" && toot.text.length < tootMaxChar && uploadProgress.width == 0
|
enabled: toot.text !== "" && toot.text.length < tootMaxChar && uploadProgress.width == 0
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var visibility = ["public", "unlisted", "private", "direct"]
|
var visibility = ["public", "unlisted", "private", "direct"]
|
||||||
var media_ids = []
|
var media_ids = []
|
||||||
for (var k = 0; k < mediaModel.count; k++) {
|
for (var k = 0; k < mediaModel.count; k++) {
|
||||||
console.log(mediaModel.get(k).id)
|
console.log(mediaModel.get(k).id)
|
||||||
media_ids.push(mediaModel.get(k).id)
|
media_ids.push(mediaModel.get(k).id)
|
||||||
}
|
}
|
||||||
var msg = {
|
var msg = {
|
||||||
"action": 'statuses',
|
"action": 'statuses',
|
||||||
"method": 'POST',
|
"method": 'POST',
|
||||||
"model": mdl,
|
"model": mdl,
|
||||||
"mode": "append",
|
"mode": "append",
|
||||||
"params": {
|
"params": {
|
||||||
"status": toot.text,
|
"status": toot.text,
|
||||||
"visibility": visibility[privacy.currentIndex],
|
"visibility": visibility[privacy.currentIndex],
|
||||||
"media_ids": media_ids
|
"media_ids": media_ids
|
||||||
},
|
},
|
||||||
"conf": Logic.conf
|
"conf": Logic.conf
|
||||||
}
|
}
|
||||||
if (toot_id)
|
if (toot_id)
|
||||||
msg.params['in_reply_to_id'] = (toot_id) + ""
|
msg.params['in_reply_to_id'] = (toot_id) + ""
|
||||||
|
|
||||||
if (warningContent.visible && warningContent.text.length > 0) {
|
if (warningContent.visible && warningContent.text.length > 0) {
|
||||||
msg.params['sensitive'] = 1
|
msg.params['sensitive'] = 1
|
||||||
msg.params['spoiler_text'] = warningContent.text
|
msg.params['spoiler_text'] = warningContent.text
|
||||||
}
|
}
|
||||||
|
|
||||||
worker.sendMessage(msg)
|
worker.sendMessage(msg)
|
||||||
warningContent.text = ""
|
warningContent.text = ""
|
||||||
toot.text = ""
|
toot.text = ""
|
||||||
mediaModel.clear()
|
mediaModel.clear()
|
||||||
sentBanner.showText(qsTr("Toot sent!"))
|
sentBanner.showText(qsTr("Toot sent!"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: uploadProgress
|
id: uploadProgress
|
||||||
color: Theme.highlightBackgroundColor
|
color: Theme.highlightBackgroundColor
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
height: Theme.itemSizeSmall * 0.05
|
height: Theme.itemSizeSmall * 0.05
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
toot.cursorPosition = toot.text.length
|
toot.cursorPosition = toot.text.length
|
||||||
if (mdl.count > 0) {
|
if (mdl.count > 0) {
|
||||||
var setIndex = 0
|
var setIndex = 0
|
||||||
switch (mdl.get(0).status_visibility) {
|
switch (mdl.get(0).status_visibility) {
|
||||||
case "unlisted":
|
case "unlisted":
|
||||||
setIndex = 1
|
setIndex = 1
|
||||||
break
|
break
|
||||||
case "private":
|
case "private":
|
||||||
setIndex = 2
|
setIndex = 2
|
||||||
break
|
break
|
||||||
case "direct":
|
case "direct":
|
||||||
privacy.enabled = false
|
privacy.enabled = false
|
||||||
setIndex = 3
|
setIndex = 3
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
privacy.enabled = true
|
privacy.enabled = true
|
||||||
setIndex = 0
|
setIndex = 0
|
||||||
}
|
}
|
||||||
privacy.currentIndex = setIndex
|
privacy.currentIndex = setIndex
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(JSON.stringify())
|
console.log(JSON.stringify())
|
||||||
|
|
||||||
worker.sendMessage({
|
worker.sendMessage({
|
||||||
"action": 'statuses/' + mdl.get(0).status_id + '/context',
|
"action": 'statuses/' + mdl.get(0).status_id + '/context',
|
||||||
"method": 'GET',
|
"method": 'GET',
|
||||||
"model": mdl,
|
"model": mdl,
|
||||||
"params": { },
|
"params": { },
|
||||||
"conf": Logic.conf
|
"conf": Logic.conf
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
BackgroundItem {
|
BackgroundItem {
|
||||||
id: hiddenPanel
|
id: hiddenPanel
|
||||||
visible: !panel.open
|
visible: !panel.open
|
||||||
height: Theme.paddingLarge * 0.5
|
height: Theme.paddingLarge * 0.7
|
||||||
width: parent.width
|
width: parent.width
|
||||||
opacity: enabled ? 0.6 : 0.0
|
opacity: enabled ? 0.6 : 0.0
|
||||||
Behavior on opacity { FadeAnimator { duration: 400 } }
|
Behavior on opacity { FadeAnimator { duration: 400 } }
|
||||||
|
@ -572,10 +586,9 @@ Page {
|
||||||
|
|
||||||
EmojiSelect {
|
EmojiSelect {
|
||||||
id: emojiSelect
|
id: emojiSelect
|
||||||
}
|
}
|
||||||
|
|
||||||
InfoBanner {
|
InfoBanner {
|
||||||
id: sentBanner
|
id: sentBanner
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,5 +161,4 @@ Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ Page {
|
||||||
property bool isFirstPage: true
|
property bool isFirstPage: true
|
||||||
property bool isTablet: true //Screen.sizeCategory >= Screen.Large
|
property bool isTablet: true //Screen.sizeCategory >= Screen.Large
|
||||||
|
|
||||||
// The effective value will be restricted by ApplicationWindow.allowedOrientations
|
|
||||||
allowedOrientations: Orientation.All
|
allowedOrientations: Orientation.All
|
||||||
|
|
||||||
DockedPanel {
|
DockedPanel {
|
||||||
|
@ -19,6 +18,7 @@ Page {
|
||||||
width: mainPage.isPortrait ? parent.width : Theme.itemSizeLarge
|
width: mainPage.isPortrait ? parent.width : Theme.itemSizeLarge
|
||||||
height: mainPage.isPortrait ? Theme.itemSizeLarge : parent.height
|
height: mainPage.isPortrait ? Theme.itemSizeLarge : parent.height
|
||||||
dock: mainPage.isPortrait ? Dock.Bottom : Dock.Right
|
dock: mainPage.isPortrait ? Dock.Bottom : Dock.Right
|
||||||
|
|
||||||
Navigation {
|
Navigation {
|
||||||
id: navigation
|
id: navigation
|
||||||
isPortrait: !mainPage.isPortrait
|
isPortrait: !mainPage.isPortrait
|
||||||
|
@ -31,6 +31,7 @@ Page {
|
||||||
|
|
||||||
VisualItemModel {
|
VisualItemModel {
|
||||||
id: visualModel
|
id: visualModel
|
||||||
|
|
||||||
MyList{
|
MyList{
|
||||||
id: tlHome
|
id: tlHome
|
||||||
title: qsTr("Home")
|
title: qsTr("Home")
|
||||||
|
@ -88,7 +89,7 @@ Page {
|
||||||
loader.sourceComponent = userListComponent
|
loader.sourceComponent = userListComponent
|
||||||
} else if (search.charAt(0) === "#") {
|
} else if (search.charAt(0) === "#") {
|
||||||
loader.sourceComponent = tagListComponent
|
loader.sourceComponent = tagListComponent
|
||||||
} else { loader.sourceComponent = wordListComponent}
|
} else loader.sourceComponent = wordListComponent
|
||||||
}
|
}
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
|
@ -102,6 +103,7 @@ Page {
|
||||||
PageHeader {
|
PageHeader {
|
||||||
title: qsTr("Search")
|
title: qsTr("Search")
|
||||||
}
|
}
|
||||||
|
|
||||||
SearchField {
|
SearchField {
|
||||||
id: searchField
|
id: searchField
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -175,10 +177,19 @@ Page {
|
||||||
"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
|
"profileBackground": model.account_header,
|
||||||
|
"note": model.account_note,
|
||||||
|
"url": model.account_url,
|
||||||
|
"followers_count": model.account_followers_count,
|
||||||
|
"following_count": model.account_following_count,
|
||||||
|
"statuses_count": model.account_statuses_count,
|
||||||
|
"locked": model.account_locked,
|
||||||
|
"bot": model.account_bot,
|
||||||
|
"group": model.account_group
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
view2.type = "accounts/search"
|
view2.type = "accounts/search"
|
||||||
view2.params = []
|
view2.params = []
|
||||||
|
@ -256,7 +267,7 @@ Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onLinkActivated(href){
|
function onLinkActivated(href) {
|
||||||
var test = href.split("/")
|
var test = href.split("/")
|
||||||
console.log(href)
|
console.log(href)
|
||||||
console.log(JSON.stringify(test))
|
console.log(JSON.stringify(test))
|
||||||
|
@ -279,5 +290,4 @@ Page {
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
console.log("aaa")
|
console.log("aaa")
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,14 +19,12 @@ Page {
|
||||||
property int statuses_count
|
property int statuses_count
|
||||||
property int following_count
|
property int following_count
|
||||||
property int followers_count
|
property int followers_count
|
||||||
property int favourites_count
|
|
||||||
property int reblogs_count
|
|
||||||
property int count_moments
|
|
||||||
property bool locked: false
|
property bool locked: false
|
||||||
property bool bot: false
|
property bool bot: false
|
||||||
|
property bool group: false
|
||||||
property bool following: false
|
property bool following: false
|
||||||
property bool requested: false
|
|
||||||
property bool followed_by: false
|
property bool followed_by: false
|
||||||
|
property bool requested: false
|
||||||
property bool blocking: false
|
property bool blocking: false
|
||||||
property bool muting: false
|
property bool muting: false
|
||||||
property bool domain_blocking: false
|
property bool domain_blocking: false
|
||||||
|
@ -57,12 +55,12 @@ Page {
|
||||||
|
|
||||||
if(messageObject.action === "accounts/relationships/"){
|
if(messageObject.action === "accounts/relationships/"){
|
||||||
console.log(JSON.stringify(messageObject))
|
console.log(JSON.stringify(messageObject))
|
||||||
following= messageObject.data.following
|
following = messageObject.data.following
|
||||||
requested= messageObject.data.requested
|
requested = messageObject.data.requested
|
||||||
followed_by= messageObject.data.followed_by
|
followed_by = messageObject.data.followed_by
|
||||||
blocking= messageObject.data.blocking
|
blocking = messageObject.data.blocking
|
||||||
muting= messageObject.data.muting
|
muting = messageObject.data.muting
|
||||||
domain_blocking= messageObject.data.domain_blocking
|
domain_blocking = messageObject.data.domain_blocking
|
||||||
}
|
}
|
||||||
switch (messageObject.key) {
|
switch (messageObject.key) {
|
||||||
case 'followers_count':
|
case 'followers_count':
|
||||||
|
@ -71,16 +69,9 @@ Page {
|
||||||
case 'following_count':
|
case 'following_count':
|
||||||
following_count = messageObject.data
|
following_count = messageObject.data
|
||||||
break;
|
break;
|
||||||
case 'acct':
|
/* case 'acct':
|
||||||
// line below was commented out, reason unknown
|
username = messageObject.data
|
||||||
// username = messageObject.data
|
break; */
|
||||||
break;
|
|
||||||
case 'locked':
|
|
||||||
locked = messageObject.data
|
|
||||||
break;
|
|
||||||
case 'bot':
|
|
||||||
bot = messageObject.data
|
|
||||||
break;
|
|
||||||
case 'created_at':
|
case 'created_at':
|
||||||
created_at = messageObject.data
|
created_at = messageObject.data
|
||||||
break;
|
break;
|
||||||
|
@ -102,10 +93,7 @@ Page {
|
||||||
break;
|
break;
|
||||||
case 'blocking':
|
case 'blocking':
|
||||||
blocking = messageObject.data
|
blocking = messageObject.data
|
||||||
followers_count = followers_count + (blocking ? -1 : 0)
|
// followers_count = followers_count + (blocking ? -1 : 0)
|
||||||
break;
|
|
||||||
case 'followed_by':
|
|
||||||
followed_by = messageObject.data
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -119,15 +107,11 @@ Page {
|
||||||
if (user_id) {
|
if (user_id) {
|
||||||
msg = {
|
msg = {
|
||||||
'action' : "accounts/relationships/",
|
'action' : "accounts/relationships/",
|
||||||
'params' : [ {name: "id", data: user_id}],
|
'params' : [ {name: "id", data: user_id} ],
|
||||||
'conf' : Logic.conf
|
|
||||||
}
|
|
||||||
worker.sendMessage(msg)
|
|
||||||
msg = {
|
|
||||||
'action' : "accounts/"+user_id,
|
|
||||||
'conf' : Logic.conf
|
'conf' : Logic.conf
|
||||||
}
|
}
|
||||||
worker.sendMessage(msg)
|
worker.sendMessage(msg)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
var instance = Logic.conf['instance'].split("//")
|
var instance = Logic.conf['instance'].split("//")
|
||||||
msg = {
|
msg = {
|
||||||
|
@ -160,13 +144,10 @@ Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ExpandingSectionGroup { // ProfilePage ExpandingSection
|
// ProfilePage ExpandingSection
|
||||||
|
ExpandingSectionGroup {
|
||||||
id: profileExpander
|
id: profileExpander
|
||||||
anchors {
|
anchors.bottom: parent.bottom
|
||||||
bottom: parent.bottom
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
|
|
||||||
ExpandingSection {
|
ExpandingSection {
|
||||||
id: expandingSection1
|
id: expandingSection1
|
||||||
|
@ -174,13 +155,12 @@ Page {
|
||||||
//: If there's no good translation for "About", use "Details" (in details about profile).
|
//: If there's no good translation for "About", use "Details" (in details about profile).
|
||||||
qsTr("About")
|
qsTr("About")
|
||||||
content.sourceComponent: Column {
|
content.sourceComponent: Column {
|
||||||
height: Math.min( txtContainer, parent.height * 0.7 )
|
|
||||||
spacing: Theme.paddingLarge
|
spacing: Theme.paddingLarge
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: txtContainer
|
id: txtContainer
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: Math.min( txtNote.height, parent.height * 0.55 )
|
height: profilePage.isPortrait ? Math.min( txtNote.height, parent.height * 0.5 ) : Math.min( txtNote.height, parent.height * 0.2 )
|
||||||
visible: {
|
visible: {
|
||||||
if ((note.text === "") || ( note.text === "<p></p>" )) {
|
if ((note.text === "") || ( note.text === "<p></p>" )) {
|
||||||
false
|
false
|
||||||
|
@ -249,7 +229,7 @@ Page {
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
id: txtFollowers
|
id: txtFollowers
|
||||||
visible: followers_count ? true : false
|
visible: true //followers_count ? true : false
|
||||||
text: followers_count+" "+
|
text: followers_count+" "+
|
||||||
//: Will show as: "35 Followers"
|
//: Will show as: "35 Followers"
|
||||||
qsTr("Followers")
|
qsTr("Followers")
|
||||||
|
@ -260,7 +240,7 @@ Page {
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
id: txtFollowing
|
id: txtFollowing
|
||||||
visible: following_count ? true : false
|
visible: true //following_count ? true : false
|
||||||
text: following_count+" "+
|
text: following_count+" "+
|
||||||
//: Will show as: "23 Following"
|
//: Will show as: "23 Following"
|
||||||
qsTr("Following")
|
qsTr("Following")
|
||||||
|
@ -271,7 +251,7 @@ Page {
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
id: txtStatuses
|
id: txtStatuses
|
||||||
visible: statuses_count ? true : false
|
visible: true //statuses_count ? true : false
|
||||||
text: statuses_count+" "+
|
text: statuses_count+" "+
|
||||||
//: Will show as: "115 Statuses"
|
//: Will show as: "115 Statuses"
|
||||||
qsTr("Statuses")
|
qsTr("Statuses")
|
||||||
|
@ -279,17 +259,6 @@ Page {
|
||||||
color: Theme.highlightColor
|
color: Theme.highlightColor
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Text {
|
|
||||||
id: txtFavourites
|
|
||||||
visible: favourites_count ? true : false
|
|
||||||
text: favourites_count+" "+
|
|
||||||
//: Will show as: "56 Favourites"
|
|
||||||
qsTr("Favourites")
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
|
||||||
color: Theme.highlightColor
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
} */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item { // dummy item for spacing
|
Item { // dummy item for spacing
|
||||||
|
@ -301,7 +270,7 @@ Page {
|
||||||
Button {
|
Button {
|
||||||
id: btnMention
|
id: btnMention
|
||||||
preferredWidth: Theme.buttonWidthSmall
|
preferredWidth: Theme.buttonWidthSmall
|
||||||
text: "Mention"
|
text: qsTr("Mention")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("ConversationPage.qml"), {
|
pageStack.push(Qt.resolvedUrl("ConversationPage.qml"), {
|
||||||
headerTitle: qsTr("Mention"),
|
headerTitle: qsTr("Mention"),
|
||||||
|
@ -393,5 +362,4 @@ Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,14 +31,13 @@ Page {
|
||||||
text: qsTr("Load Images in Toots")
|
text: qsTr("Load Images in Toots")
|
||||||
description: qsTr("Disable this option if you want to preserve your data connection")
|
description: qsTr("Disable this option if you want to preserve your data connection")
|
||||||
icon.source: "image://theme/icon-m-image"
|
icon.source: "image://theme/icon-m-image"
|
||||||
enabled: true
|
|
||||||
checked: typeof Logic.conf['loadImages'] !== "undefined" && Logic.conf['loadImages']
|
checked: typeof Logic.conf['loadImages'] !== "undefined" && Logic.conf['loadImages']
|
||||||
onClicked: {
|
onClicked: {
|
||||||
Logic.conf['loadImages'] = checked
|
Logic.conf['loadImages'] = checked
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SectionHeader { text: qsTr("Account")}
|
SectionHeader { text: qsTr("Account") }
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: removeAccount
|
id: removeAccount
|
||||||
|
@ -97,11 +96,8 @@ Page {
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
color: Theme.highlightColor
|
color: Theme.highlightColor
|
||||||
anchors {
|
width: parent.width - Theme.paddingMedium
|
||||||
left: parent.left
|
anchors.left: parent.left
|
||||||
right: parent.right
|
|
||||||
rightMargin: Theme.paddingLarge + icnRemoveAccount
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -253,5 +249,4 @@ Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,6 +161,4 @@ Component {
|
||||||
VerticalScrollDecorator {flickable: listEmojis }
|
VerticalScrollDecorator {flickable: listEmojis }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,5 +55,4 @@ DockedPanel {
|
||||||
stop()
|
stop()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ BackgroundItem {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: Theme.horizontalPageMargin
|
anchors.leftMargin: Theme.horizontalPageMargin
|
||||||
color: Theme.highlightDimmerColor
|
color: Theme.highlightDimmerColor
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: img
|
id: img
|
||||||
opacity: status === Image.Ready ? 1.0 : 0.0
|
opacity: status === Image.Ready ? 1.0 : 0.0
|
||||||
|
@ -30,7 +31,7 @@ BackgroundItem {
|
||||||
size: BusyIndicatorSize.Small
|
size: BusyIndicatorSize.Small
|
||||||
opacity: img.status === Image.Ready ? 0.0 : 1.0
|
opacity: img.status === Image.Ready ? 0.0 : 1.0
|
||||||
Behavior on opacity { FadeAnimator {} }
|
Behavior on opacity { FadeAnimator {} }
|
||||||
running: avatar.status !== Image.Ready;
|
running: avatar.status !== Image.Ready
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,36 +42,70 @@ BackgroundItem {
|
||||||
"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
|
"profileBackground": model.account_header,
|
||||||
|
"note": model.account_note,
|
||||||
|
"url": model.account_url,
|
||||||
|
"followers_count": model.account_followers_count,
|
||||||
|
"following_count": model.account_following_count,
|
||||||
|
"statuses_count": model.account_statuses_count,
|
||||||
|
"locked": model.account_locked,
|
||||||
|
"bot": model.account_bot
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Column {
|
Item {
|
||||||
anchors.left: avatar.right
|
anchors.left: avatar.right
|
||||||
anchors.leftMargin: Theme.paddingLarge
|
anchors.leftMargin: Theme.paddingLarge
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
height: account_acct.height + display_name.height
|
height: account_acct.height + display_name.height
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: display_name
|
id: display_name
|
||||||
text: model.account_display_name+" "
|
text: account_display_name ? account_display_name : account_username.split('@')[0]
|
||||||
color: !pressed ? Theme.primaryColor : Theme.highlightColor
|
color: !pressed ? Theme.primaryColor : Theme.highlightColor
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
anchors.top: parent.top
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: icnBot
|
||||||
|
visible: account_bot
|
||||||
|
source: "../../images/icon-s-bot.svg?" + ( pressed ? Theme.highlightColor : Theme.primaryColor )
|
||||||
|
width: account_bot ? Theme.iconSizeExtraSmall : 0
|
||||||
|
height: width
|
||||||
|
y: Theme.paddingLarge
|
||||||
|
anchors {
|
||||||
|
left: display_name.right
|
||||||
|
leftMargin: Theme.paddingSmall
|
||||||
|
verticalCenter: display_name.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: account_acct
|
id: account_acct
|
||||||
text: "@"+model.account_acct
|
text: "@"+model.account_acct
|
||||||
color: !pressed ? Theme.secondaryColor : Theme.secondaryHighlightColor
|
color: !pressed ? Theme.secondaryColor : Theme.secondaryHighlightColor
|
||||||
anchors.leftMargin: Theme.paddingMedium
|
anchors.leftMargin: Theme.paddingMedium
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
anchors.top: display_name.bottom
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onClicked: openUser({
|
|
||||||
|
onClicked: openUser( {
|
||||||
"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
|
"profileBackground": model.account_header,
|
||||||
})
|
"note": model.account_note,
|
||||||
|
"url": model.account_url,
|
||||||
|
"followers_count": model.account_followers_count,
|
||||||
|
"following_count": model.account_following_count,
|
||||||
|
"statuses_count": model.account_statuses_count,
|
||||||
|
"locked": model.account_locked,
|
||||||
|
"bot": model.account_bot,
|
||||||
|
"group": model.account_group
|
||||||
|
} )
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,15 +23,17 @@ Item {
|
||||||
if (model && model.count)
|
if (model && model.count)
|
||||||
count = model.count
|
count = model.count
|
||||||
switch(count){
|
switch(count){
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
placeholder1.width = holder.width
|
placeholder1.width = holder.width
|
||||||
placeholder1.height = placeholder1.width*hRatio
|
placeholder1.height = placeholder1.width*hRatio
|
||||||
placeholder1.visible = true;
|
placeholder1.visible = true;
|
||||||
holder.height = placeholder1.height
|
holder.height = placeholder1.height
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
placeholder1.visible = true;
|
placeholder1.visible = true
|
||||||
placeholder2.visible = true;
|
placeholder2.visible = true
|
||||||
placeholder1.width = (holder.width-Theme.paddingSmall)/2
|
placeholder1.width = (holder.width-Theme.paddingSmall)/2
|
||||||
placeholder1.height = placeholder1.width
|
placeholder1.height = placeholder1.width
|
||||||
placeholder2.width = placeholder1.width
|
placeholder2.width = placeholder1.width
|
||||||
|
@ -39,11 +41,12 @@ Item {
|
||||||
placeholder2.x = placeholder1.width + placeholder2.x + Theme.paddingSmall
|
placeholder2.x = placeholder1.width + placeholder2.x + Theme.paddingSmall
|
||||||
holder.height = placeholder1.height
|
holder.height = placeholder1.height
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
placeholder1.visible = true;
|
placeholder1.visible = true
|
||||||
placeholder2.visible = true;
|
placeholder2.visible = true
|
||||||
placeholder3.visible = true;
|
placeholder3.visible = true
|
||||||
placeholder4.visible = false;
|
placeholder4.visible = false
|
||||||
|
|
||||||
placeholder1.width = holder.width - Theme.paddingSmall - Theme.itemSizeLarge;
|
placeholder1.width = holder.width - Theme.paddingSmall - Theme.itemSizeLarge;
|
||||||
placeholder1.height = Theme.itemSizeLarge*2+Theme.paddingSmall
|
placeholder1.height = Theme.itemSizeLarge*2+Theme.paddingSmall
|
||||||
|
@ -53,23 +56,23 @@ Item {
|
||||||
placeholder3.height = placeholder3.width = placeholder2.height = placeholder2.width
|
placeholder3.height = placeholder3.width = placeholder2.height = placeholder2.width
|
||||||
placeholder3.x = placeholder2.x = placeholder1.x + placeholder1.width + Theme.paddingSmall;
|
placeholder3.x = placeholder2.x = placeholder1.x + placeholder1.width + Theme.paddingSmall;
|
||||||
placeholder3.y = placeholder2.y + placeholder2.height + Theme.paddingSmall;
|
placeholder3.y = placeholder2.y + placeholder2.height + Theme.paddingSmall;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
placeholder1.visible = true;
|
placeholder1.visible = true
|
||||||
placeholder2.visible = true;
|
placeholder2.visible = true
|
||||||
placeholder3.visible = true;
|
placeholder3.visible = true
|
||||||
placeholder4.visible = true;
|
placeholder4.visible = true
|
||||||
|
|
||||||
placeholder1.width = placeholder2.width = placeholder3.width = placeholder4.width = (holder.width - 3*Theme.paddingSmall)/4
|
placeholder1.width = placeholder2.width = placeholder3.width = placeholder4.width = (holder.width - 3*Theme.paddingSmall)/4
|
||||||
placeholder1.height = placeholder2.height = placeholder3.height = placeholder4.height = Theme.itemSizeLarge*2+Theme.paddingSmall
|
placeholder1.height = placeholder2.height = placeholder3.height = placeholder4.height = Theme.itemSizeLarge*2+Theme.paddingSmall
|
||||||
placeholder2.x = 1*(placeholder1.width)+ 1*Theme.paddingSmall;
|
placeholder2.x = 1*(placeholder1.width)+ 1*Theme.paddingSmall
|
||||||
placeholder3.x = 2*(placeholder1.width)+ 2*Theme.paddingSmall;
|
placeholder3.x = 2*(placeholder1.width)+ 2*Theme.paddingSmall
|
||||||
placeholder4.x = 3*(placeholder1.width)+ 3*Theme.paddingSmall;
|
placeholder4.x = 3*(placeholder1.width)+ 3*Theme.paddingSmall
|
||||||
|
|
||||||
|
holder.height = placeholder1.height
|
||||||
holder.height = placeholder1.height
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
holder.height = 0
|
holder.height = 0
|
||||||
placeholder1.visible = placeholder2.visible = placeholder3.visible = placeholder4.visible = false;
|
placeholder1.visible = placeholder2.visible = placeholder3.visible = placeholder4.visible = false;
|
||||||
|
@ -86,7 +89,7 @@ Item {
|
||||||
type = model.get(0).type
|
type = model.get(0).type
|
||||||
previewURL = model.get(0).preview_url
|
previewURL = model.get(0).preview_url
|
||||||
mediaURL = model.get(0).url
|
mediaURL = model.get(0).url
|
||||||
height = 200
|
height = Theme.itemSizeLarge
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
height = 0
|
height = 0
|
||||||
|
@ -105,7 +108,7 @@ Item {
|
||||||
type = model.get(1).type
|
type = model.get(1).type
|
||||||
previewURL = model.get(1).preview_url
|
previewURL = model.get(1).preview_url
|
||||||
mediaURL = model.get(1).url
|
mediaURL = model.get(1).url
|
||||||
height = 200
|
height = Theme.itemSizeLarge
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
height = 0
|
height = 0
|
||||||
|
@ -124,7 +127,7 @@ Item {
|
||||||
type = model.get(2).type
|
type = model.get(2).type
|
||||||
previewURL = model.get(2).preview_url
|
previewURL = model.get(2).preview_url
|
||||||
mediaURL = model.get(2).url
|
mediaURL = model.get(2).url
|
||||||
height = 200
|
height = Theme.itemSizeLarge
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
height = 0
|
height = 0
|
||||||
|
@ -143,7 +146,7 @@ Item {
|
||||||
type = model.get(3).type
|
type = model.get(3).type
|
||||||
previewURL = model.get(3).preview_url
|
previewURL = model.get(3).preview_url
|
||||||
mediaURL = model.get(3).url
|
mediaURL = model.get(3).url
|
||||||
height = 200
|
height = Theme.itemSizeLarge
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
height = 0
|
height = 0
|
||||||
|
@ -151,5 +154,4 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ FullscreenContentPage {
|
||||||
property string mediaURL: ""
|
property string mediaURL: ""
|
||||||
|
|
||||||
allowedOrientations: Orientation.All
|
allowedOrientations: Orientation.All
|
||||||
Component.onCompleted: function(){
|
Component.onCompleted: function() {
|
||||||
console.log(type)
|
console.log(type)
|
||||||
console.log(previewURL)
|
console.log(previewURL)
|
||||||
console.log(mediaURL)
|
console.log(mediaURL)
|
||||||
|
@ -44,7 +44,7 @@ FullscreenContentPage {
|
||||||
Video {
|
Video {
|
||||||
id: video
|
id: video
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onErrorStringChanged: function(){
|
onErrorStringChanged: function() {
|
||||||
videoError.visible = true
|
videoError.visible = true
|
||||||
}
|
}
|
||||||
onStatusChanged: {
|
onStatusChanged: {
|
||||||
|
@ -60,7 +60,7 @@ FullscreenContentPage {
|
||||||
}
|
}
|
||||||
onPlaybackStateChanged: {
|
onPlaybackStateChanged: {
|
||||||
console.log(playbackState)
|
console.log(playbackState)
|
||||||
switch (playbackState){
|
switch (playbackState) {
|
||||||
case MediaPlayer.PlayingState:
|
case MediaPlayer.PlayingState:
|
||||||
playerIcon.icon.source = "image://theme/icon-m-pause"
|
playerIcon.icon.source = "image://theme/icon-m-pause"
|
||||||
return;
|
return;
|
||||||
|
@ -72,7 +72,7 @@ FullscreenContentPage {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onPositionChanged: function(){
|
onPositionChanged: function() {
|
||||||
//console.log(duration)
|
//console.log(duration)
|
||||||
//console.log(bufferProgress)
|
//console.log(bufferProgress)
|
||||||
//console.log(position)
|
//console.log(position)
|
||||||
|
@ -84,7 +84,7 @@ FullscreenContentPage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onStopped: function() {
|
onStopped: function() {
|
||||||
if (video.duration < 30000)
|
if (type != 'video')
|
||||||
video.play()
|
video.play()
|
||||||
else
|
else
|
||||||
video.stop()
|
video.stop()
|
||||||
|
@ -151,7 +151,6 @@ FullscreenContentPage {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -288,7 +287,7 @@ FullscreenContentPage {
|
||||||
id: failedLoading
|
id: failedLoading
|
||||||
Text {
|
Text {
|
||||||
text: qsTr("Error loading")
|
text: qsTr("Error loading")
|
||||||
font.pixelSize: Theme.fontSizeSmall;
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: Theme.highlightColor
|
color: Theme.highlightColor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -315,11 +314,10 @@ FullscreenContentPage {
|
||||||
}
|
}
|
||||||
icon.source: "image://theme/icon-m-cloud-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])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VerticalScrollDecorator { flickable: imageFlickable }
|
VerticalScrollDecorator { flickable: imageFlickable }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,30 +9,23 @@ Item {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: lblName
|
id: lblName
|
||||||
text:
|
text: account_display_name ? account_display_name : account_username.split('@')[0]
|
||||||
if (account_display_name === "") {
|
|
||||||
account_username.split('@')[0]
|
|
||||||
}
|
|
||||||
else account_display_name
|
|
||||||
font.weight: Font.Bold
|
font.weight: Font.Bold
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: if (myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
color: if ( myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
||||||
(pressed ? Theme.secondaryHighlightColor : (!highlight ? Theme.secondaryColor : Theme.secondaryHighlightColor))
|
( pressed ? Theme.secondaryHighlightColor : (!highlight ? Theme.secondaryColor : Theme.secondaryHighlightColor ))
|
||||||
} else (pressed ? Theme.highlightColor : (!highlight ? Theme.primaryColor : Theme.secondaryColor))
|
} else ( pressed ? Theme.highlightColor : ( !highlight ? Theme.primaryColor : Theme.secondaryColor ))
|
||||||
truncationMode: TruncationMode.Fade
|
truncationMode: TruncationMode.Fade
|
||||||
width: contentWidth > parent.width /2 ? parent.width /2 : contentWidth
|
width: contentWidth > parent.width /2 ? parent.width /2 : contentWidth
|
||||||
anchors {
|
anchors.left: parent.left
|
||||||
left: parent.left
|
|
||||||
leftMargin: Theme.paddingMedium
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Icon {
|
||||||
id: icnLocked
|
id: icnBot
|
||||||
visible: account_locked
|
visible: account_bot
|
||||||
opacity: 0.8
|
source: "../../images/icon-s-bot.svg?" + ( pressed ? Theme.highlightColor : Theme.primaryColor )
|
||||||
source: "image://theme/icon-s-secure?" + (pressed ? Theme.highlightColor : Theme.primaryColor)
|
color: Theme.primaryColor
|
||||||
width: account_locked ? Theme.iconSizeExtraSmall*0.8 : 0
|
width: account_bot ? Theme.iconSizeExtraSmall * 1.3 : 0
|
||||||
height: width
|
height: width
|
||||||
y: Theme.paddingLarge
|
y: Theme.paddingLarge
|
||||||
anchors {
|
anchors {
|
||||||
|
@ -44,15 +37,30 @@ Item {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: lblScreenName
|
id: lblScreenName
|
||||||
|
visible: model.type !== "follow"
|
||||||
text: '@'+account_username
|
text: '@'+account_username
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: (pressed ? Theme.secondaryHighlightColor : Theme.secondaryColor)
|
color: ( pressed ? Theme.secondaryHighlightColor : Theme.secondaryColor )
|
||||||
truncationMode: TruncationMode.Fade
|
truncationMode: TruncationMode.Fade
|
||||||
anchors {
|
anchors {
|
||||||
left: icnLocked.right
|
left: icnBot ? icnBot.right : icnLocked.right
|
||||||
|
leftMargin: Theme.paddingSmall
|
||||||
right: lblDate.left
|
right: lblDate.left
|
||||||
leftMargin: Theme.paddingMedium
|
rightMargin: Theme.paddingMedium
|
||||||
baseline: lblName.baseline
|
verticalCenter: lblName.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: lblScreenNameFollow
|
||||||
|
visible: model.type === "follow" && myList.type === "notifications"
|
||||||
|
text: '@'+account_username
|
||||||
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
color: ( pressed ? Theme.secondaryHighlightColor : Theme.secondaryColor )
|
||||||
|
truncationMode: TruncationMode.Fade
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
top: lblName.bottom
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,13 +68,11 @@ Item {
|
||||||
id: lblDate
|
id: lblDate
|
||||||
text: Format.formatDate(created_at, new Date() - created_at < 60*60*1000 ? Formatter.DurationElapsedShort : Formatter.TimeValueTwentyFourHours)
|
text: Format.formatDate(created_at, new Date() - created_at < 60*60*1000 ? Formatter.DurationElapsedShort : Formatter.TimeValueTwentyFourHours)
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: (pressed ? Theme.highlightColor : Theme.primaryColor)
|
color: ( pressed ? Theme.highlightColor : Theme.secondaryColor )
|
||||||
horizontalAlignment: Text.AlignRight
|
horizontalAlignment: Text.AlignRight
|
||||||
anchors {
|
anchors {
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.horizontalPageMargin
|
verticalCenter: lblName.verticalCenter
|
||||||
baseline: lblName.baseline
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,13 +26,8 @@ Item {
|
||||||
Label {
|
Label {
|
||||||
id: lblRtByName
|
id: lblRtByName
|
||||||
visible: type.length
|
visible: type.length
|
||||||
anchors {
|
|
||||||
left: icon.right
|
|
||||||
leftMargin: Theme.paddingMedium
|
|
||||||
verticalCenter: icon.verticalCenter
|
|
||||||
}
|
|
||||||
text: {
|
text: {
|
||||||
var action = "";
|
var action = ""
|
||||||
switch(type){
|
switch(type){
|
||||||
case "reblog":
|
case "reblog":
|
||||||
action = qsTr('boosted');
|
action = qsTr('boosted');
|
||||||
|
@ -47,9 +42,14 @@ Item {
|
||||||
miniStatus.visible = false
|
miniStatus.visible = false
|
||||||
action = type;
|
action = type;
|
||||||
}
|
}
|
||||||
return typeof reblog_account_username !== "undefined" ? '@' + reblog_account_username + ' ' + action : ''
|
return typeof reblog_account_username !== "undefined" ? "@" + reblog_account_username + " " + action : " "
|
||||||
}
|
}
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.highlightColor
|
color: Theme.highlightColor
|
||||||
|
anchors {
|
||||||
|
left: icon.right
|
||||||
|
leftMargin: Theme.paddingMedium
|
||||||
|
verticalCenter: icon.verticalCenter
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,5 +89,4 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ SilicaListView {
|
||||||
text: qsTr("New Toot")
|
text: qsTr("New Toot")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
||||||
//headerTitle: "New Toot",
|
headerTitle: qsTr("New Toot"),
|
||||||
type: "new"
|
type: "new"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -84,8 +84,7 @@ SilicaListView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: VisualContainer {
|
delegate: VisualContainer { }
|
||||||
} //Toot {}
|
|
||||||
|
|
||||||
add: Transition {
|
add: Transition {
|
||||||
NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 800 }
|
NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 800 }
|
||||||
|
@ -129,7 +128,7 @@ SilicaListView {
|
||||||
openDrawer(contentY - scrollOffset > 0 ? false : true )
|
openDrawer(contentY - scrollOffset > 0 ? false : true )
|
||||||
scrollOffset = contentY
|
scrollOffset = contentY
|
||||||
}
|
}
|
||||||
if(contentY+height > footerItem.y && !loadStarted && autoLoadMore){
|
if(contentY+height > footerItem.y && !loadStarted && autoLoadMore) {
|
||||||
loadData("append")
|
loadData("append")
|
||||||
loadStarted = true
|
loadStarted = true
|
||||||
}
|
}
|
||||||
|
@ -162,16 +161,16 @@ SilicaListView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadData(mode){
|
function loadData(mode) {
|
||||||
var p = []
|
var p = []
|
||||||
if (params.length)
|
if (params.length)
|
||||||
for(var i = 0; i<params.length; i++)
|
for(var i = 0; i<params.length; i++)
|
||||||
p.push(params[i])
|
p.push(params[i])
|
||||||
|
|
||||||
if (mode === "append" && model.count){
|
if (mode === "append" && model.count) {
|
||||||
p.push({name: 'max_id', data: model.get(model.count-1).id})
|
p.push({name: 'max_id', data: model.get(model.count-1).id})
|
||||||
}
|
}
|
||||||
if (mode === "prepend" && model.count){
|
if (mode === "prepend" && model.count) {
|
||||||
p.push({name:'since_id', data: model.get(0).id})
|
p.push({name:'since_id', data: model.get(0).id})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,5 +185,4 @@ SilicaListView {
|
||||||
if (type !== "")
|
if (type !== "")
|
||||||
worker.sendMessage(msg)
|
worker.sendMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,6 +169,4 @@ SilicaGridView {
|
||||||
}
|
}
|
||||||
|
|
||||||
VerticalScrollDecorator {}
|
VerticalScrollDecorator {}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,9 +12,7 @@ Item {
|
||||||
property string bg: ""
|
property string bg: ""
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: if (bot === true) {
|
height: avatarImage.height + Theme.paddingLarge*3 + infoLbl.height
|
||||||
avatarImage.height + Theme.paddingLarge*2 + infoLbl.height + Theme.paddingLarge
|
|
||||||
} else avatarImage.height + Theme.paddingLarge*2
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: bgImage
|
id: bgImage
|
||||||
|
@ -29,7 +27,6 @@ Item {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
fillMode: Image.PreserveAspectCrop
|
fillMode: Image.PreserveAspectCrop
|
||||||
source: bg
|
source: bg
|
||||||
opacity: 0.8
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,19 +34,18 @@ Item {
|
||||||
Image {
|
Image {
|
||||||
id: avatarImage
|
id: avatarImage
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
source:
|
source: if (avatarImage.status === Image.Error)
|
||||||
if (avatarImage.status === Image.Error)
|
source = "../../images/icon-l-profile.svg?" + (pressed
|
||||||
source = "../../images/icon-l-profile.svg?" + (pressed
|
? Theme.highlightColor
|
||||||
? Theme.highlightColor
|
: Theme.primaryColor)
|
||||||
: Theme.primaryColor)
|
else image
|
||||||
else image
|
width: Theme.iconSizeLarge
|
||||||
width: description === "" ? Theme.iconSizeMedium : Theme.iconSizeLarge
|
|
||||||
height: width
|
height: width
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
leftMargin: Theme.paddingLarge
|
leftMargin: Theme.horizontalPageMargin
|
||||||
top: parent.top
|
top: parent.top
|
||||||
topMargin: Theme.paddingLarge
|
topMargin: Theme.paddingLarge * 1.5
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
|
@ -74,18 +70,15 @@ Item {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
topMargin: Theme.paddingLarge
|
topMargin: Theme.paddingLarge
|
||||||
left: avatarImage.right
|
left: avatarImage.right
|
||||||
leftMargin: Theme.paddingLarge
|
leftMargin: Theme.horizontalPageMargin
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.paddingLarge
|
rightMargin: Theme.horizontalPageMargin
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: profileTitle
|
id: profileTitle
|
||||||
text: if (title === "") {
|
text: title ? title : description.split('@')[0]
|
||||||
description.split('@')[0]
|
|
||||||
}
|
|
||||||
else title
|
|
||||||
font.pixelSize: Theme.fontSizeLarge
|
font.pixelSize: Theme.fontSizeLarge
|
||||||
font.family: Theme.fontFamilyHeading
|
font.family: Theme.fontFamilyHeading
|
||||||
color: Theme.highlightColor
|
color: Theme.highlightColor
|
||||||
|
@ -112,19 +105,37 @@ Item {
|
||||||
id: infoLbl
|
id: infoLbl
|
||||||
spacing: Theme.paddingLarge
|
spacing: Theme.paddingLarge
|
||||||
layoutDirection: Qt.RightToLeft
|
layoutDirection: Qt.RightToLeft
|
||||||
height: Theme.iconSizeSmall + Theme.paddingSmall
|
height: followed_by || locked || bot || group ? Theme.iconSizeSmall + Theme.paddingSmall : 0
|
||||||
anchors {
|
anchors {
|
||||||
top: avatarImage.bottom
|
top: avatarImage.bottom
|
||||||
topMargin: Theme.paddingLarge
|
topMargin: Theme.paddingMedium
|
||||||
left: parent.left
|
left: parent.left
|
||||||
leftMargin: Theme.paddingLarge
|
leftMargin: Theme.horizontalPageMargin
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.paddingLarge
|
rightMargin: Theme.horizontalPageMargin
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Rectangle {
|
Rectangle {
|
||||||
|
id: groupBg
|
||||||
|
visible: (group ? true : false)
|
||||||
|
radius: Theme.paddingSmall
|
||||||
|
color: Theme.secondaryHighlightColor
|
||||||
|
width: groupLbl.width + 2*Theme.paddingLarge
|
||||||
|
height: parent.height
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: groupLbl
|
||||||
|
text: qsTr("Group")
|
||||||
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
color: Theme.primaryColor
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
id: followingBg
|
id: followingBg
|
||||||
visible: (following ? true : false)
|
visible: (followed_by ? true : false)
|
||||||
radius: Theme.paddingSmall
|
radius: Theme.paddingSmall
|
||||||
color: Theme.secondaryHighlightColor
|
color: Theme.secondaryHighlightColor
|
||||||
width: followingLbl.width + 2*Theme.paddingLarge
|
width: followingLbl.width + 2*Theme.paddingLarge
|
||||||
|
@ -138,7 +149,26 @@ Item {
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
} */
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: lockedBg
|
||||||
|
visible: (locked ? true : false)
|
||||||
|
radius: Theme.paddingSmall
|
||||||
|
color: Theme.secondaryHighlightColor
|
||||||
|
width: lockedImg.width + 2*Theme.paddingLarge
|
||||||
|
height: parent.height
|
||||||
|
|
||||||
|
HighlightImage {
|
||||||
|
id: lockedImg
|
||||||
|
source: "image://theme/icon-s-secure?"
|
||||||
|
width: Theme.fontSizeExtraSmall
|
||||||
|
height: width
|
||||||
|
color: Theme.primaryColor
|
||||||
|
anchors.horizontalCenter: lockedBg.horizontalCenter
|
||||||
|
anchors.verticalCenter: lockedBg.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: botBg
|
id: botBg
|
||||||
|
|
|
@ -24,5 +24,4 @@ FullscreenContentPage {
|
||||||
}
|
}
|
||||||
onClicked: pageStack.pop()
|
onClicked: pageStack.pop()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,187 +0,0 @@
|
||||||
import QtQuick 2.0
|
|
||||||
import Sailfish.Silica 1.0
|
|
||||||
import QtGraphicalEffects 1.0
|
|
||||||
|
|
||||||
|
|
||||||
BackgroundItem {
|
|
||||||
id: delegate
|
|
||||||
|
|
||||||
signal send (string notice)
|
|
||||||
signal navigateTo(string link)
|
|
||||||
|
|
||||||
width: parent.width
|
|
||||||
height: lblText.paintedHeight + (lblText.text.length > 0 ? Theme.paddingLarge : 0 )+ lblName.paintedHeight + (type.length ? Theme.paddingLarge + iconRT.height : 0) + Theme.paddingLarge
|
|
||||||
|
|
||||||
Image {
|
|
||||||
id: iconRT
|
|
||||||
y: Theme.paddingLarge
|
|
||||||
anchors.right: avatar.right
|
|
||||||
visible: type.length
|
|
||||||
width: Theme.iconSizeExtraSmall
|
|
||||||
height: width
|
|
||||||
source: "../../images/boosted.svg"
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
id: lblRtByName
|
|
||||||
visible: type.length
|
|
||||||
anchors.left: lblName.left
|
|
||||||
anchors.bottom: iconRT.bottom
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
|
||||||
color: Theme.secondaryColor
|
|
||||||
text: {
|
|
||||||
var action;
|
|
||||||
switch(type){
|
|
||||||
case "reblog":
|
|
||||||
action = qsTr('boosted');
|
|
||||||
break;
|
|
||||||
case "favourite":
|
|
||||||
action = qsTr('favourited');
|
|
||||||
break;
|
|
||||||
case "follow":
|
|
||||||
action = qsTr('followed you');
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
action = type;
|
|
||||||
}
|
|
||||||
return '@' + retweetScreenName + ' ' + action
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Image {
|
|
||||||
id: avatar
|
|
||||||
x: Theme.horizontalPageMargin
|
|
||||||
y: Theme.paddingLarge + (type.length ? iconRT.height+Theme.paddingMedium : 0)
|
|
||||||
asynchronous: true
|
|
||||||
width: Theme.iconSizeMedium
|
|
||||||
height: width
|
|
||||||
smooth: true
|
|
||||||
source: account_avatar
|
|
||||||
visible: true
|
|
||||||
MouseArea {
|
|
||||||
anchors.fill: parent
|
|
||||||
onClicked: {
|
|
||||||
pageStack.push(Qt.resolvedUrl("../ProfilePage.qml"), {
|
|
||||||
"display_name": account_display_name,
|
|
||||||
"username": account_username,
|
|
||||||
"profileImage": account_avatar
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
id: lblName
|
|
||||||
text: account_display_name
|
|
||||||
font.weight: Font.Bold
|
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
|
||||||
color: (pressed ? Theme.highlightColor : Theme.primaryColor)
|
|
||||||
anchors {
|
|
||||||
top: avatar.top
|
|
||||||
topMargin: 0
|
|
||||||
left: avatar.right
|
|
||||||
leftMargin: Theme.paddingMedium
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Image {
|
|
||||||
id: iconLocked
|
|
||||||
visible: account_locked
|
|
||||||
y: Theme.paddingLarge
|
|
||||||
opacity: 0.8
|
|
||||||
source: "image://theme/icon-s-secure?" + (pressed
|
|
||||||
? Theme.highlightColor
|
|
||||||
: Theme.primaryColor)
|
|
||||||
width: account_locked ? Theme.iconSizeExtraSmall*0.8 : 0
|
|
||||||
height: width
|
|
||||||
anchors {
|
|
||||||
left: lblName.right
|
|
||||||
leftMargin: Theme.paddingSmall
|
|
||||||
verticalCenter: lblName.verticalCenter
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
id: lblScreenName
|
|
||||||
truncationMode: TruncationMode.Fade
|
|
||||||
text: '@'+account_username
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
|
||||||
color: (pressed ? Theme.secondaryHighlightColor : Theme.secondaryColor)
|
|
||||||
anchors {
|
|
||||||
left: iconLocked.right
|
|
||||||
right: lblDate.left
|
|
||||||
leftMargin: Theme.paddingMedium
|
|
||||||
baseline: lblName.baseline
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
id: lblDate
|
|
||||||
function timestamp() {
|
|
||||||
var txt = Format.formatDate(created_at, Formatter.Timepoint)
|
|
||||||
var elapsed = Format.formatDate(created_at, Formatter.DurationElapsedShort)
|
|
||||||
return (elapsed ? elapsed : txt )
|
|
||||||
}
|
|
||||||
text: Format.formatDate(created_at, new Date() - created_at < 60*60*1000 ? Formatter.DurationElapsedShort : Formatter.TimeValueTwentyFourHours)
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
|
||||||
color: (pressed ? Theme.highlightColor : Theme.primaryColor)
|
|
||||||
horizontalAlignment: Text.AlignRight
|
|
||||||
anchors {
|
|
||||||
right: parent.right
|
|
||||||
baseline: lblName.baseline
|
|
||||||
rightMargin: Theme.paddingLarge
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: lblText
|
|
||||||
height: content.length ? paintedHeight : 0
|
|
||||||
onLinkActivated: {
|
|
||||||
console.log(link)
|
|
||||||
if (link[0] === "@") {
|
|
||||||
pageStack.push(Qt.resolvedUrl("../Profile.qml"), {
|
|
||||||
"name": "",
|
|
||||||
"username": link.substring(1),
|
|
||||||
"profileImage": ""
|
|
||||||
})
|
|
||||||
} else if (link[0] === "#") {
|
|
||||||
pageStack.pop(pageStack.find(function(page) {
|
|
||||||
var check = page.isFirstPage === true;
|
|
||||||
if (check)
|
|
||||||
page.onLinkActivated(link)
|
|
||||||
return check;
|
|
||||||
}));
|
|
||||||
send(link)
|
|
||||||
} else {
|
|
||||||
Qt.openUrlExternally(link);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
text: content
|
|
||||||
textFormat: Text.RichText
|
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
|
||||||
color: (pressed ? Theme.highlightColor : Theme.primaryColor)
|
|
||||||
linkColor : Theme.highlightColor
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
maximumLineCount: 6
|
|
||||||
anchors {
|
|
||||||
left: lblName.left
|
|
||||||
right: parent.right
|
|
||||||
top: lblScreenName.bottom
|
|
||||||
topMargin: Theme.paddingSmall
|
|
||||||
rightMargin: Theme.paddingLarge
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onClicked: {
|
|
||||||
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
|
||||||
headerTitle: "Conversation",
|
|
||||||
toot_id: id,
|
|
||||||
toot_url: status_url,
|
|
||||||
//title: account_display_name,
|
|
||||||
description: '@'+account_acc,
|
|
||||||
avatar: account_avatar,
|
|
||||||
type: "reply"
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -14,6 +14,7 @@ BackgroundItem {
|
||||||
mnu.height + miniHeader.height + Theme.paddingLarge + lblContent.height + Theme.paddingLarge + (miniStatus.visible ? miniStatus.height : 0)
|
mnu.height + miniHeader.height + Theme.paddingLarge + lblContent.height + Theme.paddingLarge + (miniStatus.visible ? miniStatus.height : 0)
|
||||||
} else mnu.height + miniHeader.height + (typeof attachments !== "undefined" && attachments.count ? media.height + Theme.paddingLarge + Theme.paddingMedium: Theme.paddingLarge) + lblContent.height + Theme.paddingLarge + (miniStatus.visible ? miniStatus.height : 0) + (iconDirectMsg.visible ? iconDirectMsg.height : 0)
|
} else mnu.height + miniHeader.height + (typeof attachments !== "undefined" && attachments.count ? media.height + Theme.paddingLarge + Theme.paddingMedium: Theme.paddingLarge) + lblContent.height + Theme.paddingLarge + (miniStatus.visible ? miniStatus.height : 0) + (iconDirectMsg.visible ? iconDirectMsg.height : 0)
|
||||||
|
|
||||||
|
// Background for Direct Messages in Notification View
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: bgDirect
|
id: bgDirect
|
||||||
x: 0
|
x: 0
|
||||||
|
@ -28,7 +29,8 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
// Background for reblogs and favourited statuses in Notification View
|
||||||
|
/* Rectangle {
|
||||||
id: bgNotifications
|
id: bgNotifications
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
|
@ -40,9 +42,9 @@ BackgroundItem {
|
||||||
GradientStop { position: -0.5; color: "transparent" }
|
GradientStop { position: -0.5; color: "transparent" }
|
||||||
GradientStop { position: 0.4; color: Theme.highlightDimmerColor }
|
GradientStop { position: 0.4; color: Theme.highlightDimmerColor }
|
||||||
}
|
}
|
||||||
}
|
} */
|
||||||
|
|
||||||
MiniStatus {
|
MiniStatus { // Element showing reblog- or favourite status on top of Toot
|
||||||
id: miniStatus
|
id: miniStatus
|
||||||
anchors {
|
anchors {
|
||||||
leftMargin: Theme.horizontalPageMargin
|
leftMargin: Theme.horizontalPageMargin
|
||||||
|
@ -52,6 +54,7 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Account avatar
|
||||||
Image {
|
Image {
|
||||||
id: avatar
|
id: avatar
|
||||||
visible: true
|
visible: true
|
||||||
|
@ -83,8 +86,16 @@ BackgroundItem {
|
||||||
"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
|
"profileBackground": model.account_header,
|
||||||
})
|
"note": model.account_note,
|
||||||
|
"url": model.account_url,
|
||||||
|
"followers_count": model.account_followers_count,
|
||||||
|
"following_count": model.account_following_count,
|
||||||
|
"statuses_count": model.account_statuses_count,
|
||||||
|
"locked": model.account_locked,
|
||||||
|
"bot": model.account_bot,
|
||||||
|
"group": model.account_group
|
||||||
|
} )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +124,7 @@ BackgroundItem {
|
||||||
visible: status_visibility === "direct"
|
visible: status_visibility === "direct"
|
||||||
width: Theme.iconSizeMedium
|
width: Theme.iconSizeMedium
|
||||||
height: width
|
height: width
|
||||||
source: "image://theme/icon-m-mail"
|
source: "../../images/icon-m-mail.svg?"
|
||||||
anchors {
|
anchors {
|
||||||
horizontalCenter: avatar.horizontalCenter
|
horizontalCenter: avatar.horizontalCenter
|
||||||
top: avatar.bottom
|
top: avatar.bottom
|
||||||
|
@ -146,39 +157,68 @@ BackgroundItem {
|
||||||
width: Theme.iconSizeSmall
|
width: Theme.iconSizeSmall
|
||||||
height: width
|
height: width
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
pageStack.push(Qt.resolvedUrl("../ProfilePage.qml"), {
|
||||||
|
"display_name": model.reblog_account_display_name,
|
||||||
|
"username": model.reblog_account_acct,
|
||||||
|
"user_id": model.reblog_account_id,
|
||||||
|
"profileImage": model.reblog_account_avatar,
|
||||||
|
"profileBackground": model.account_header,
|
||||||
|
"note": model.reblog_account_note,
|
||||||
|
"url": model.reblog_account_url,
|
||||||
|
"followers_count": model.reblog_account_followers_count,
|
||||||
|
"following_count": model.reblog_account_following_count,
|
||||||
|
"statuses_count": model.reblog_account_statuses_count,
|
||||||
|
"locked": model.reblog_account_locked,
|
||||||
|
"bot": model.reblog_account_bot,
|
||||||
|
"group": model.reblog_account_group
|
||||||
|
} )
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Display name, username, date of Toot
|
||||||
MiniHeader {
|
MiniHeader {
|
||||||
id: miniHeader
|
id: miniHeader
|
||||||
anchors {
|
anchors {
|
||||||
top: avatar.top
|
top: avatar.top
|
||||||
left: avatar.right
|
left: avatar.right
|
||||||
|
leftMargin: Theme.paddingMedium
|
||||||
right: parent.right
|
right: parent.right
|
||||||
|
rightMargin: Theme.horizontalPageMargin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
// Toot content
|
||||||
|
Label {
|
||||||
id: lblContent
|
id: lblContent
|
||||||
|
|
||||||
visible: model.type !== "follow"
|
visible: model.type !== "follow"
|
||||||
text: content.replace(new RegExp("<a ", 'g'), '<a style="text-decoration: none; color:'+(pressed ? Theme.secondaryColor : Theme.highlightColor)+'" ')
|
text: if (myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
||||||
textFormat: Text.RichText
|
content
|
||||||
|
} else content.replace(new RegExp("<a ", 'g'), '<a style="text-decoration: none; color:'+(pressed ? Theme.secondaryColor : Theme.highlightColor)+'" ')
|
||||||
|
textFormat: myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" ) ? Text.StyledText : Text.RichText
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
linkColor: if (myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
|
||||||
Theme.secondaryHighlightColor
|
|
||||||
} else Theme.highlightColor
|
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
truncationMode: TruncationMode.Elide
|
||||||
color: if (myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
color: if (myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
||||||
(pressed ? Theme.secondaryHighlightColor : (!highlight ? Theme.secondaryColor : Theme.secondaryHighlightColor))
|
(pressed ? Theme.secondaryHighlightColor : (!highlight ? Theme.secondaryColor : Theme.secondaryHighlightColor))
|
||||||
} else (pressed ? Theme.highlightColor : (!highlight ? Theme.primaryColor : Theme.secondaryColor))
|
} else (pressed ? Theme.highlightColor : (!highlight ? Theme.primaryColor : Theme.secondaryColor))
|
||||||
|
linkColor: if (myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
||||||
|
Theme.secondaryHighlightColor
|
||||||
|
} else Theme.highlightColor
|
||||||
height: if (model.type === "follow") {
|
height: if (model.type === "follow") {
|
||||||
Theme.paddingLarge
|
Theme.paddingLarge
|
||||||
} else content.length ? (contentWarningLabel.paintedHeight > paintedHeight ? contentWarningLabel.paintedHeight : paintedHeight) : 0
|
} else if (myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
||||||
|
Math.min( implicitHeight, Theme.itemSizeExtraLarge * 1.5 )
|
||||||
|
} else content.length ? ( contentWarningLabel.paintedHeight > paintedHeight ? contentWarningLabel.paintedHeight : paintedHeight ) : 0
|
||||||
anchors {
|
anchors {
|
||||||
left: miniHeader.left
|
left: miniHeader.left
|
||||||
leftMargin: Theme.paddingMedium
|
|
||||||
right: miniHeader.right
|
right: miniHeader.right
|
||||||
rightMargin: Theme.horizontalPageMargin
|
|
||||||
top: miniHeader.bottom
|
top: miniHeader.bottom
|
||||||
topMargin: Theme.paddingSmall
|
topMargin: Theme.paddingSmall
|
||||||
bottomMargin: Theme.paddingLarge
|
bottomMargin: Theme.paddingLarge
|
||||||
|
@ -210,8 +250,9 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Content warning cover for Toots
|
||||||
Rectangle {
|
Rectangle {
|
||||||
radius: 2
|
id: contentWarningBg
|
||||||
color: Theme.highlightDimmerColor
|
color: Theme.highlightDimmerColor
|
||||||
visible: status_spoiler_text.length > 0
|
visible: status_spoiler_text.length > 0
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -244,22 +285,24 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Displays media in Toots
|
||||||
MediaBlock {
|
MediaBlock {
|
||||||
id: media
|
id: media
|
||||||
visible: if (myList.type === "notifications" && ( type === "favourite" || type === "reblog" )) {
|
visible: if (myList.type === "notifications" && ( type === "favourite" || type === "reblog" )) {
|
||||||
false
|
false
|
||||||
} else true
|
} else true
|
||||||
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: Theme.iconSizeExtraLarge * 2
|
height: Theme.iconSizeExtraLarge * 2
|
||||||
anchors {
|
anchors {
|
||||||
left: lblContent.left
|
left: miniHeader.left
|
||||||
right: lblContent.right
|
right: miniHeader.right
|
||||||
top: lblContent.bottom
|
top: lblContent.bottom
|
||||||
topMargin: Theme.paddingSmall
|
topMargin: Theme.paddingMedium
|
||||||
bottomMargin: Theme.paddingLarge
|
bottomMargin: Theme.paddingLarge
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Context menu for Toots
|
||||||
ContextMenu {
|
ContextMenu {
|
||||||
id: mnu
|
id: mnu
|
||||||
|
|
||||||
|
@ -277,11 +320,11 @@ BackgroundItem {
|
||||||
"bgAction": true,
|
"bgAction": true,
|
||||||
"action" : "statuses/"+model.status_id+"/" + (status ? "unreblog" : "reblog")
|
"action" : "statuses/"+model.status_id+"/" + (status ? "unreblog" : "reblog")
|
||||||
})
|
})
|
||||||
model.reblogs_count = !status ? model.reblogs_count+1 : (model.reblogs_count > 0 ? model.reblogs_count-1 : model.reblogs_count);
|
model.status_reblogs_count = !status ? model.status_reblogs_count+1 : (model.status_reblogs_count > 0 ? model.status_reblogs_count-1 : model.status_reblogs_count);
|
||||||
model.reblogged = !model.reblogged
|
model.reblogged = !model.reblogged
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Icon {
|
||||||
id: icRT
|
id: icRT
|
||||||
source: "image://theme/icon-s-retweet?" + (!model.reblogged ? Theme.highlightColor : Theme.primaryColor)
|
source: "image://theme/icon-s-retweet?" + (!model.reblogged ? Theme.highlightColor : Theme.primaryColor)
|
||||||
width: Theme.iconSizeExtraSmall
|
width: Theme.iconSizeExtraSmall
|
||||||
|
@ -294,7 +337,7 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: reblogs_count
|
text: status_reblogs_count // from API.js
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: !model.reblogged ? Theme.highlightColor : Theme.primaryColor
|
color: !model.reblogged ? Theme.highlightColor : Theme.primaryColor
|
||||||
anchors {
|
anchors {
|
||||||
|
@ -308,9 +351,9 @@ BackgroundItem {
|
||||||
MenuItem {
|
MenuItem {
|
||||||
id: mnuFavourite
|
id: mnuFavourite
|
||||||
visible: model.type !== "follow"
|
visible: model.type !== "follow"
|
||||||
text: typeof model.favourited !== "undefined" && model.favourited ? qsTr("Unfavorite") : qsTr("Favorite")
|
text: typeof model.status_favourited !== "undefined" && model.status_favourited ? qsTr("Unfavorite") : qsTr("Favorite")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var status = typeof model.favourited !== "undefined" && model.favourited
|
var status = typeof model.status_favourited !== "undefined" && model.status_favourited
|
||||||
worker.sendMessage({
|
worker.sendMessage({
|
||||||
"conf" : Logic.conf,
|
"conf" : Logic.conf,
|
||||||
"params" : [],
|
"params" : [],
|
||||||
|
@ -318,26 +361,26 @@ BackgroundItem {
|
||||||
"bgAction": true,
|
"bgAction": true,
|
||||||
"action" : "statuses/"+model.status_id+"/" + (status ? "unfavourite" : "favourite")
|
"action" : "statuses/"+model.status_id+"/" + (status ? "unfavourite" : "favourite")
|
||||||
})
|
})
|
||||||
model.favourites_count = !status ? model.favourites_count+1 : (model.favourites_count > 0 ? model.favourites_count-1 : model.favourites_count);
|
model.status_favourites_count = !status ? model.status_favourites_count+1 : (model.status_favourites_count > 0 ? model.status_favourites_count-1 : model.status_favourites_count);
|
||||||
model.favourited = !model.favourited
|
model.status_favourited = !model.status_favourited
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Icon {
|
||||||
id: icFA
|
id: icFA
|
||||||
|
source: "image://theme/icon-s-favorite?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
|
||||||
|
width: Theme.iconSizeExtraSmall
|
||||||
|
height: width
|
||||||
anchors {
|
anchors {
|
||||||
leftMargin: Theme.horizontalPageMargin
|
leftMargin: Theme.horizontalPageMargin
|
||||||
left: parent.left
|
left: parent.left
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
width: Theme.iconSizeExtraSmall
|
|
||||||
height: width
|
|
||||||
source: "image://theme/icon-s-favorite?" + (!model.favourited ? Theme.highlightColor : Theme.primaryColor)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: favourites_count
|
text: status_favourites_count
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: !model.favourited ? Theme.highlightColor : Theme.primaryColor
|
color: !model.status_favourited ? Theme.highlightColor : Theme.primaryColor
|
||||||
anchors {
|
anchors {
|
||||||
left: icFA.right
|
left: icFA.right
|
||||||
leftMargin: Theme.paddingMedium
|
leftMargin: Theme.paddingMedium
|
||||||
|
@ -346,54 +389,83 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
id: mnuBookmark
|
||||||
|
visible: model.type !== "follow"
|
||||||
|
text: typeof model.status_bookmarked !== "undefined" && model.status_bookmarked ? qsTr("Remove Bookmark") : qsTr("Bookmark")
|
||||||
|
onClicked: {
|
||||||
|
var status = typeof model.status_bookmarked !== "undefined" && model.status_bookmarked
|
||||||
|
worker.sendMessage({
|
||||||
|
"conf" : Logic.conf,
|
||||||
|
"params" : [],
|
||||||
|
"method" : "POST",
|
||||||
|
"bgAction": true,
|
||||||
|
"action" : "statuses/"+model.status_id+"/" + (status ? "unbookmark" : "bookmark")
|
||||||
|
})
|
||||||
|
model.status_bookmarked = !model.status_bookmarked
|
||||||
|
}
|
||||||
|
|
||||||
|
Icon {
|
||||||
|
source: "../../images/icon-s-bookmark.svg?"
|
||||||
|
color: !model.status_bookmarked ? Theme.highlightColor : Theme.primaryColor
|
||||||
|
width: Theme.iconSizeExtraSmall
|
||||||
|
height: width
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
leftMargin: Theme.horizontalPageMargin + Theme.paddingMedium
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
id: mnuMention
|
id: mnuMention
|
||||||
visible: model.type === "follow"
|
visible: model.type === "follow"
|
||||||
text: qsTr("Mention")
|
text: qsTr("Mention")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
||||||
headerTitle: "Mention",
|
headerTitle: qsTr("Mention"),
|
||||||
description: "@"+reblog_account_acct,
|
description: "@"+reblog_account_acct,
|
||||||
type: "new"
|
type: "new"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Icon {
|
||||||
id: icMT
|
id: icMT
|
||||||
|
source: "image://theme/icon-s-chat?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
|
||||||
|
width: Theme.iconSizeExtraSmall
|
||||||
|
height: width
|
||||||
anchors {
|
anchors {
|
||||||
leftMargin: Theme.horizontalPageMargin
|
leftMargin: Theme.horizontalPageMargin + Theme.paddingMedium
|
||||||
left: parent.left
|
left: parent.left
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
width: Theme.iconSizeExtraSmall
|
|
||||||
height: width
|
|
||||||
source: "image://theme/icon-s-chat?" + (!model.favourited ? Theme.highlightColor : Theme.primaryColor)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Open ConversationPage and show other Toots in thread (if available)
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var m = Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject');
|
var m = Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject');
|
||||||
if (typeof mdl !== "undefined")
|
if (typeof mdl !== "undefined")
|
||||||
m.append(mdl.get(index))
|
m.append(mdl.get(index))
|
||||||
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
||||||
headerTitle: "Conversation",
|
headerTitle: qsTr("Conversation"),
|
||||||
toot_id: status_id,
|
"toot_id": status_id,
|
||||||
toot_url: status_url,
|
"toot_url": status_url,
|
||||||
toot_uri: status_uri,
|
"toot_uri": status_uri,
|
||||||
title: account_display_name,
|
"description": '@'+account_acct,
|
||||||
description: '@'+account_acct,
|
|
||||||
avatar: account_avatar,
|
|
||||||
mdl: m,
|
mdl: m,
|
||||||
type: "reply"
|
type: "reply"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
onPressAndHold: {
|
onPressAndHold: {
|
||||||
console.log(JSON.stringify(mdl.get(index)))
|
console.log(JSON.stringify(mdl.get(index)))
|
||||||
mnu.show(delegate)
|
mnu.open(delegate)
|
||||||
}
|
}
|
||||||
|
|
||||||
onDoubleClicked: {
|
onDoubleClicked: {
|
||||||
console.log("double click")
|
console.log("double click")
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,15 +11,15 @@
|
||||||
//static const QUrl IMGUR_UPLOAD_URL("https://httpbin.org/post");
|
//static const QUrl IMGUR_UPLOAD_URL("https://httpbin.org/post");
|
||||||
//static const QUrl IMGUR_UPLOAD_URL();
|
//static const QUrl IMGUR_UPLOAD_URL();
|
||||||
|
|
||||||
ImageUploader::ImageUploader(QObject *parent) : QObject(parent), m_networkAccessManager(0), m_reply(0) {
|
ImageUploader::ImageUploader(QObject *parent) : QObject(parent), m_networkAccessManager(nullptr), m_reply(nullptr) {
|
||||||
m_networkAccessManager = new QNetworkAccessManager(this);
|
m_networkAccessManager = new QNetworkAccessManager(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageUploader::~ImageUploader() {
|
ImageUploader::~ImageUploader() {
|
||||||
if (m_reply != 0) {
|
if (m_reply != nullptr) {
|
||||||
m_reply->disconnect();
|
m_reply->disconnect();
|
||||||
m_reply->deleteLater();
|
m_reply->deleteLater();
|
||||||
m_reply = 0;
|
m_reply = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,10 +58,10 @@ void ImageUploader::upload() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_reply != 0) {
|
if (m_reply != nullptr) {
|
||||||
m_reply->disconnect();
|
m_reply->disconnect();
|
||||||
m_reply->deleteLater();
|
m_reply->deleteLater();
|
||||||
m_reply = 0;
|
m_reply = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*QFileInfo fileInfo(QUrl(m_fileName).toLocalFile());
|
/*QFileInfo fileInfo(QUrl(m_fileName).toLocalFile());
|
||||||
|
@ -146,6 +146,6 @@ void ImageUploader::replyFinished() {
|
||||||
}
|
}
|
||||||
|
|
||||||
m_reply->deleteLater();
|
m_reply->deleteLater();
|
||||||
m_reply = 0;
|
m_reply = nullptr;
|
||||||
postdata.clear();
|
postdata.clear();
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation>Link kopieren</translation>
|
<translation>Link kopieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation>Toot gesendet!</translation>
|
<translation>Toot gesendet!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation>Antworten</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation>Antwort verbergen</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation>Folgt dir</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation>Gruppe</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>um bei den Übersetzungen mitzuhelfen.</translation>
|
<translation>um bei den Übersetzungen mitzuhelfen.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>hat geteilt</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>hat favorisiert</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>folgt dir</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation>Erwähnen</translation>
|
<translation>Erwähnen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation>Konversation</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation>Lesezeichen entfernen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation>Lesezeichen</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>για να βοηθήσετε την μετάφραση της εφαρμογής στην γλώσσα σας.</translation>
|
<translation>για να βοηθήσετε την μετάφραση της εφαρμογής στην γλώσσα σας.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>προωθημένο</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>στους σελιδοδείκτες</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>σας ακολουθούν</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation>Copiar enlace al portapapeles</translation>
|
<translation>Copiar enlace al portapapeles</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation>¡Toot enviado!</translation>
|
<translation>¡Toot enviado!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation>Respuesta</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation>Cerrar respuesta</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation>Te sigue</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation>Grupo</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -220,7 +238,7 @@
|
||||||
<message>
|
<message>
|
||||||
<source>Requested</source>
|
<source>Requested</source>
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Requerido</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Follow</source>
|
<source>Follow</source>
|
||||||
|
@ -253,7 +271,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Mencionar</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>para ayudar con traducciones.</translation>
|
<translation>para ayudar con traducciones.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>retooteó</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>marcó como favorito</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>te empezó a seguir</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -379,7 +382,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Mencionar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation>Conversación</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation>Eliminar marcador</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation>Marcador</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation>Copier le lien</translation>
|
<translation>Copier le lien</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation>Pouet envoyé !</translation>
|
<translation>Pouet envoyé !</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation>Répondre</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation>Fermer Répondre</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation>Vous suit</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation>Groupe</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>pour aider à traduire cette application.</translation>
|
<translation>pour aider à traduire cette application.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>a partagé</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>a ajouté à ses favoris</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>vous suit</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation>Mentionner</translation>
|
<translation>Mentionner</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation>Conversation</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation>Retirer marque-page</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation>Ajouter aux marque-pages</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -4,23 +4,23 @@
|
||||||
<context>
|
<context>
|
||||||
<name>API</name>
|
<name>API</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/lib/API.js" line="156"/>
|
<location filename="../qml/lib/API.js" line="158"/>
|
||||||
<source>favourited</source>
|
<source>favourited</source>
|
||||||
<translation>ha apprezzato</translation>
|
<translation>ha apprezzato</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/lib/API.js" line="167"/>
|
<location filename="../qml/lib/API.js" line="169"/>
|
||||||
<source>followed you</source>
|
<source>followed you</source>
|
||||||
<translation>ha iniziato a seguirti</translation>
|
<translation>ha iniziato a seguirti</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/lib/API.js" line="177"/>
|
<location filename="../qml/lib/API.js" line="179"/>
|
||||||
<source>boosted</source>
|
<source>boosted</source>
|
||||||
<translation>ha condiviso</translation>
|
<translation>ha condiviso</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/lib/API.js" line="187"/>
|
|
||||||
<location filename="../qml/lib/API.js" line="189"/>
|
<location filename="../qml/lib/API.js" line="189"/>
|
||||||
|
<location filename="../qml/lib/API.js" line="191"/>
|
||||||
<source>said</source>
|
<source>said</source>
|
||||||
<translation>ha detto</translation>
|
<translation>ha detto</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -28,47 +28,59 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ConversationPage.qml" line="108"/>
|
<location filename="../qml/pages/ConversationPage.qml" line="111"/>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation>Copia link</translation>
|
<translation>Copia link</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ConversationPage.qml" line="220"/>
|
<location filename="../qml/pages/ConversationPage.qml" line="127"/>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation>Risposta</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/pages/ConversationPage.qml" line="127"/>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation>Chiudere Risposta</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/pages/ConversationPage.qml" line="234"/>
|
||||||
<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/ConversationPage.qml" line="253"/>
|
<location filename="../qml/pages/ConversationPage.qml" line="267"/>
|
||||||
<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/ConversationPage.qml" line="320"/>
|
<location filename="../qml/pages/ConversationPage.qml" line="334"/>
|
||||||
<source>Delete</source>
|
<source>Delete</source>
|
||||||
<translation>Elimina</translation>
|
<translation>Elimina</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ConversationPage.qml" line="418"/>
|
<location filename="../qml/pages/ConversationPage.qml" line="432"/>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation>Pubblico</translation>
|
<translation>Pubblico</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ConversationPage.qml" line="421"/>
|
<location filename="../qml/pages/ConversationPage.qml" line="435"/>s
|
||||||
<source>Unlisted</source>
|
<source>Unlisted</source>
|
||||||
<translation>Non elencato</translation>
|
<translation>Non elencato</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ConversationPage.qml" line="424"/>
|
<location filename="../qml/pages/ConversationPage.qml" line="438"/>s
|
||||||
<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/ConversationPage.qml" line="427"/>
|
<location filename="../qml/pages/ConversationPage.qml" line="441"/>
|
||||||
<source>Direct</source>
|
<source>Direct</source>
|
||||||
<translation>Diretto</translation>
|
<translation>Diretto</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ConversationPage.qml" line="474"/>
|
<location filename="../qml/pages/ConversationPage.qml" line="488"/>
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation>Toot è stato pubblicato!</translation>
|
<translation>Toot è stato pubblicato!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -133,37 +145,37 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MainPage</name>
|
<name>MainPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/MainPage.qml" line="36"/>
|
<location filename="../qml/pages/MainPage.qml" line="37"/>
|
||||||
<source>Home</source>
|
<source>Home</source>
|
||||||
<translation>Home</translation>
|
<translation>Home</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/MainPage.qml" line="46"/>
|
<location filename="../qml/pages/MainPage.qml" line="47"/>
|
||||||
<source>Notifications</source>
|
<source>Notifications</source>
|
||||||
<translation>Notifiche</translation>
|
<translation>Notifiche</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/MainPage.qml" line="57"/>
|
<location filename="../qml/pages/MainPage.qml" line="58"/>
|
||||||
<source>Local</source>
|
<source>Local</source>
|
||||||
<translation>Locale</translation>
|
<translation>Locale</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/MainPage.qml" line="68"/>
|
<location filename="../qml/pages/MainPage.qml" line="69"/>
|
||||||
<source>Federated</source>
|
<source>Federated</source>
|
||||||
<translation>Federazione</translation>
|
<translation>Federazione</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/MainPage.qml" line="103"/>
|
<location filename="../qml/pages/MainPage.qml" line="104"/>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
<translation>Cerca</translation>
|
<translation>Cerca</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/MainPage.qml" line="108"/>
|
<location filename="../qml/pages/MainPage.qml" line="110"/>
|
||||||
<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="253"/>
|
<location filename="../qml/pages/MainPage.qml" line="264"/>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Nuovo toot</translation>
|
<translation>Nuovo toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -171,7 +183,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MediaFullScreen</name>
|
<name>MediaFullScreen</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/components/MediaFullScreen.qml" line="290"/>
|
<location filename="../qml/pages/components/MediaFullScreen.qml" line="289"/>
|
||||||
<source>Error loading</source>
|
<source>Error loading</source>
|
||||||
<translation>Errore durante caricamento</translation>
|
<translation>Errore durante caricamento</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -179,17 +191,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/components/MiniStatus.qml" line="38"/>
|
<location filename="../qml/pages/components/MiniStatus.qml" line="33"/>
|
||||||
<source>boosted</source>
|
<source>boosted</source>
|
||||||
<translation>ha condiviso</translation>
|
<translation>ha condiviso</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/components/MiniStatus.qml" line="41"/>
|
<location filename="../qml/pages/components/MiniStatus.qml" line="36"/>
|
||||||
<source>favourited</source>
|
<source>favourited</source>
|
||||||
<translation>ha apprezzato</translation>
|
<translation>ha apprezzato</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/components/MiniStatus.qml" line="44"/>
|
<location filename="../qml/pages/components/MiniStatus.qml" line="39"/>
|
||||||
<source>followed you</source>
|
<source>followed you</source>
|
||||||
<translation>ha iniziato a seguirti</translation>
|
<translation>ha iniziato a seguirti</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -213,6 +225,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/components/MyList.qml" line="70"/>
|
<location filename="../qml/pages/components/MyList.qml" line="70"/>
|
||||||
|
<location filename="../qml/pages/components/MyList.qml" line="73"/>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Nuovo toot</translation>
|
<translation>Nuovo toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -225,7 +238,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/components/ProfileHeader.qml" line="153"/>
|
<location filename="../qml/pages/components/ProfileHeader.qml" line="128"/>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation>Gruppo</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/pages/components/ProfileHeader.qml" line="146"/>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation>Ti segue</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/pages/components/ProfileHeader.qml" line="183"/>
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -233,78 +256,79 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="175"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="156"/>
|
||||||
<source>About</source>
|
<source>About</source>
|
||||||
<extracomment>If there's no good translation for "About", use "Details" (in details about profile).</extracomment>
|
<extracomment>If there's no good translation for "About", use "Details" (in details about profile).</extracomment>
|
||||||
<translation>Dettagli</translation>
|
<translation>Dettagli</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="255"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="235"/>
|
||||||
<source>Followers</source>
|
<source>Followers</source>
|
||||||
<extracomment>Will show as: "35 Followers"</extracomment>
|
<extracomment>Will show as: "35 Followers"</extracomment>
|
||||||
<translation>Seguaci</translation>
|
<translation>Seguaci</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="266"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="246"/>
|
||||||
<source>Following</source>
|
<source>Following</source>
|
||||||
<extracomment>Will show as: "23 Following"</extracomment>
|
<extracomment>Will show as: "23 Following"</extracomment>
|
||||||
<translation>Segue</translation>
|
<translation>Segue</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="277"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="257"/>
|
||||||
<source>Statuses</source>
|
<source>Statuses</source>
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Toots</translation>
|
<translation>Toots</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="307"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="273"/>
|
||||||
|
<location filename="../qml/pages/ProfilePage.qml" line="276"/>
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation>Menzionare</translation>
|
<translation>Menzionare</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="319"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="288"/>
|
||||||
<source>Unfollow</source>
|
<source>Unfollow</source>
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Smetti di seguire</translation>
|
<translation>Smetti di seguire</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="321"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="290"/>
|
||||||
<source>Requested</source>
|
<source>Requested</source>
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Richiesto</translation>
|
<translation>Richiesto</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="323"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="292"/>
|
||||||
<source>Follow</source>
|
<source>Follow</source>
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Segui</translation>
|
<translation>Segui</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="342"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="311"/>
|
||||||
<source>Unmute</source>
|
<source>Unmute</source>
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Non silenziare</translation>
|
<translation>Non silenziare</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="344"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="313"/>
|
||||||
<source>Mute</source>
|
<source>Mute</source>
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Silenzia</translation>
|
<translation>Silenzia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="362"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="331"/>
|
||||||
<source>Unblock</source>
|
<source>Unblock</source>
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Sblocca</translation>
|
<translation>Sblocca</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="364"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="333"/>
|
||||||
<source>Block</source>
|
<source>Block</source>
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Blocca</translation>
|
<translation>Blocca</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/ProfilePage.qml" line="380"/>
|
<location filename="../qml/pages/ProfilePage.qml" line="349"/>
|
||||||
<source>Open in Browser</source>
|
<source>Open in Browser</source>
|
||||||
<translation>Aprire nel browser</translation>
|
<translation>Aprire nel browser</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -332,136 +356,134 @@
|
||||||
<translation>Disabilitare questa opzione per conservare connessione dati</translation>
|
<translation>Disabilitare questa opzione per conservare connessione dati</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="41"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="40"/>
|
||||||
<source>Account</source>
|
<source>Account</source>
|
||||||
<translation>Account</translation>
|
<translation>Account</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="73"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="72"/>
|
||||||
<source>Remove Account</source>
|
<source>Remove Account</source>
|
||||||
<translation>Rimozione del account</translation>
|
<translation>Rimozione del account</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="73"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="72"/>
|
||||||
<source>Add Account</source>
|
<source>Add Account</source>
|
||||||
<translation>Aggiungi account</translation>
|
<translation>Aggiungi account</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="96"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="95"/>
|
||||||
<source>Deauthorize this app from using your account and remove account data from phone</source>
|
<source>Deauthorize this app from using your account and remove account data from phone</source>
|
||||||
<translation>Annullare l'autorizzazione dell'app e rimuovere l'account</translation>
|
<translation>Annullare l'autorizzazione dell'app e rimuovere l'account</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="96"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="95"/>
|
||||||
<source>Authorize this app to access your Mastodon account</source>
|
<source>Authorize this app to access your Mastodon account</source>
|
||||||
<translation>Autorizzare l'app all'utilizzo del conto Mastodon</translation>
|
<translation>Autorizzare l'app all'utilizzo del conto Mastodon</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="110"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="106"/>
|
||||||
<source>Translate</source>
|
<source>Translate</source>
|
||||||
<translation>Tradurre</translation>
|
<translation>Tradurre</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="116"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="112"/>
|
||||||
<source>Use</source>
|
<source>Use</source>
|
||||||
<extracomment>Full sentence for translation: "Use Transifex to help with app translation to your language." - The word Transifex is a link and doesn't need translation.</extracomment>
|
<extracomment>Full sentence for translation: "Use Transifex to help with app translation to your language." - The word Transifex is a link and doesn't need translation.</extracomment>
|
||||||
<translation>Utilizzare</translation>
|
<translation>Utilizzare</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="116"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="112"/>
|
||||||
<source>to help with app translation to your language.</source>
|
<source>to help with app translation to your language.</source>
|
||||||
<translation>per aiutare nella traduzione dell'app.</translation>
|
<translation>per aiutare nella traduzione dell'app.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="132"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="128"/>
|
||||||
<source>Credits</source>
|
<source>Credits</source>
|
||||||
<translation>Sviluppo</translation>
|
<translation>Sviluppo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="148"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="144"/>
|
||||||
<source>UI/UX design and development</source>
|
<source>UI/UX design and development</source>
|
||||||
<translation>Design UI/UX e sviluppo</translation>
|
<translation>Design UI/UX e sviluppo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="155"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="151"/>
|
||||||
<source>Visual identity</source>
|
<source>Visual identity</source>
|
||||||
<translation>Identità visiva</translation>
|
<translation>Identità visiva</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="162"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="158"/>
|
||||||
<source>Development and translations</source>
|
<source>Development and translations</source>
|
||||||
<translation>Sviluppo e traduzioni</translation>
|
<translation>Sviluppo e traduzioni</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="169"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="165"/>
|
||||||
<source>Occitan & French translation</source>
|
<source>Occitan & French translation</source>
|
||||||
<translation>Traduzione francese e occitanica</translation>
|
<translation>Traduzione francese e occitanica</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="176"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="172"/>
|
||||||
<source>Chinese translation</source>
|
<source>Chinese translation</source>
|
||||||
<translation>Traduzione cinese</translation>
|
<translation>Traduzione cinese</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="183"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="179"/>
|
||||||
<source>Dutch translation</source>
|
<source>Dutch translation</source>
|
||||||
<translation>Traduzione olandese</translation>
|
<translation>Traduzione olandese</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="190"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="186"/>
|
||||||
<source>Spanish translation</source>
|
<source>Spanish translation</source>
|
||||||
<translation>Traduzione spagnola</translation>
|
<translation>Traduzione spagnola</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/SettingsPage.qml" line="197"/>
|
<location filename="../qml/pages/SettingsPage.qml" line="193"/>
|
||||||
<source>Added README file</source>
|
<source>Added README file</source>
|
||||||
<translation>Aggiunto file README</translation>
|
<translation>Aggiunto file README</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../qml/pages/components/Toot.qml" line="36"/>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>ha condiviso</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../qml/pages/components/Toot.qml" line="39"/>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>ha apprezzato</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../qml/pages/components/Toot.qml" line="42"/>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>ha iniziato a seguirti</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/components/VisualContainer.qml" line="270"/>
|
<location filename="../qml/pages/components/VisualContainer.qml" line="312"/>
|
||||||
<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="270"/>
|
<location filename="../qml/pages/components/VisualContainer.qml" line="312"/>
|
||||||
<source>Boost</source>
|
<source>Boost</source>
|
||||||
<translation>Condividi</translation>
|
<translation>Condividi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/components/VisualContainer.qml" line="311"/>
|
<location filename="../qml/pages/components/VisualContainer.qml" line="353"/>
|
||||||
<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="311"/>
|
<location filename="../qml/pages/components/VisualContainer.qml" line="353"/>
|
||||||
<source>Favorite</source>
|
<source>Favorite</source>
|
||||||
<translation>Apprezzato</translation>
|
<translation>Apprezzato</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/components/VisualContainer.qml" line="352"/>
|
<location filename="../qml/pages/components/VisualContainer.qml" line="394"/>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation>Elimina segnalibro</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/pages/components/VisualContainer.qml" line="394"/>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation>Aggiungi segnalibro</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/pages/components/VisualContainer.qml" line="424"/>
|
||||||
|
<location filename="../qml/pages/components/VisualContainer.qml" line="427"/>
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation>Menzionare</translation>
|
<translation>Menzionare</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/pages/components/VisualContainer.qml" line="453"/>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation>Conversazione</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,15 +24,16 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation>Linkadres kopiëren</translation>
|
<translation>Linkadres kopiëren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Waarschuwingstekst</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Wat wil je kwijt?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Delete</source>
|
<source>Delete</source>
|
||||||
|
@ -40,23 +41,32 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Openbaar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unlisted</source>
|
<source>Unlisted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Minder openbaar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Followers-only</source>
|
<source>Followers-only</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Alleen volgers</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Direct</source>
|
<source>Direct</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Direct</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Toot verzonden!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation>Antwoord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation>Antwoord verbergen</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -96,7 +106,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter a valid Mastodon instance URL</source>
|
<source>Enter a valid Mastodon instance URL</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Geldig Mastodon URL</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
|
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation>Volgt jou</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation>Groep</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -253,7 +271,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished">Vermelden</translation>
|
<translation>Vermelden</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>om deze app te helpen vertalen in jouw taal.</translation>
|
<translation>om deze app te helpen vertalen in jouw taal.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>boostte</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>maakte favoriet</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>volgde jou</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation>Vermelden</translation>
|
<translation>Vermelden</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation>Conversatie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation>Bookmarken</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation>Bladwijzer verwijderen</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>voor te helpen met dezen app in uw taal te vertalen.</translation>
|
<translation>voor te helpen met dezen app in uw taal te vertalen.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>heeft geboost</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>heeft geduimd voor</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>volgt u nu</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>per ajudar a traduire l’aplicacion dins vòstra lenga.</translation>
|
<translation>per ajudar a traduire l’aplicacion dins vòstra lenga.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>a tornat partejar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>a mes en favorit</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>vos sèc</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>podbił(a)</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>dodał(a) do ulubionych</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>zaczął(-ęła Cię śledzić)</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>чтобы помочь с переводом приложения на ваш язык.</translation>
|
<translation>чтобы помочь с переводом приложения на ваш язык.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>росту</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>имеет любимый</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>следую за тобой</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>и помозите у преводу апликације на други језик.</translation>
|
<translation>и помозите у преводу апликације на други језик.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>разглашено</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>омиљено</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>вас прати</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>för att hjälpa med app-översättningar till ditt språk.</translation>
|
<translation>för att hjälpa med app-översättningar till ditt språk.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>puffade</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>favoriserad</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>följer dig</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation>复制链接到剪切板</translation>
|
<translation>复制链接到剪切板</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation>已发送嘟嘟!</translation>
|
<translation>已发送嘟嘟!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>推起</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>收藏</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>关注你</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<name>ConversationPage</name>
|
<name>ConversationPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy Link to Clipboard</source>
|
<source>Copy Link to Clipboard</source>
|
||||||
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation>Copy Link to Clipboard</translation>
|
<translation>Copy Link to Clipboard</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -58,6 +59,15 @@
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation>Toot sent!</translation>
|
<translation>Toot sent!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reply</source>
|
||||||
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
|
<translation>Reply</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide Reply</source>
|
||||||
|
<translation>Hide Reply</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -189,6 +199,14 @@
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation>Bot</translation>
|
<translation>Bot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Follows you</source>
|
||||||
|
<translation>Follows you</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Group</source>
|
||||||
|
<translation>Group</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfilePage</name>
|
<name>ProfilePage</name>
|
||||||
|
@ -344,21 +362,6 @@
|
||||||
<translation>to help with app translation to your language.</translation>
|
<translation>to help with app translation to your language.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Toot</name>
|
|
||||||
<message>
|
|
||||||
<source>boosted</source>
|
|
||||||
<translation>boosted</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>favourited</source>
|
|
||||||
<translation>favourited</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>followed you</source>
|
|
||||||
<translation>followed you</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>VisualContainer</name>
|
<name>VisualContainer</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -381,5 +384,17 @@
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation>Mention</translation>
|
<translation>Mention</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conversation</source>
|
||||||
|
<translation>Conversation</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove Bookmark</source>
|
||||||
|
<translation>Remove Bookmark</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark</source>
|
||||||
|
<translation>Bookmark</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
Loading…
Reference in a new issue