Merge branch 'ui-improvements'
This commit is contained in:
commit
42c4964d8f
42 changed files with 1122 additions and 984 deletions
|
@ -14,9 +14,9 @@ TARGET = harbour-tooterb
|
||||||
CONFIG += sailfishapp
|
CONFIG += sailfishapp
|
||||||
|
|
||||||
QT += network dbus sql
|
QT += network dbus sql
|
||||||
|
QT += multimedia
|
||||||
CONFIG += link_pkgconfig
|
CONFIG += link_pkgconfig
|
||||||
PKGCONFIG += sailfishapp
|
PKGCONFIG += sailfishapp \
|
||||||
PKGCONFIG += \
|
|
||||||
nemonotifications-qt5
|
nemonotifications-qt5
|
||||||
|
|
||||||
DEFINES += "APPVERSION=\\\"$${SPECVERSION}\\\""
|
DEFINES += "APPVERSION=\\\"$${SPECVERSION}\\\""
|
||||||
|
@ -58,16 +58,16 @@ DISTFILES += qml/harbour-tooterb.qml \
|
||||||
qml/pages/SettingsPage.qml \
|
qml/pages/SettingsPage.qml \
|
||||||
qml/pages/components/InfoBanner.qml \
|
qml/pages/components/InfoBanner.qml \
|
||||||
qml/pages/components/MediaFullScreen.qml \
|
qml/pages/components/MediaFullScreen.qml \
|
||||||
|
qml/pages/components/MyMedia.qml \
|
||||||
|
qml/pages/components/NavigationPanel.qml \
|
||||||
qml/pages/components/ProfileImage.qml \
|
qml/pages/components/ProfileImage.qml \
|
||||||
qml/pages/components/VisualContainer.qml \
|
qml/pages/components/VisualContainer.qml \
|
||||||
qml/pages/components/MiniStatus.qml \
|
qml/pages/components/MiniStatus.qml \
|
||||||
qml/pages/components/MiniHeader.qml \
|
qml/pages/components/MiniHeader.qml \
|
||||||
qml/pages/components/ItemUser.qml \
|
qml/pages/components/ItemUser.qml \
|
||||||
qml/pages/components/MyList.qml \
|
qml/pages/components/MyList.qml \
|
||||||
qml/pages/components/Navigation.qml \
|
|
||||||
qml/pages/components/ProfileHeader.qml \
|
qml/pages/components/ProfileHeader.qml \
|
||||||
qml/pages/components/MediaBlock.qml \
|
qml/pages/components/MediaBlock.qml \
|
||||||
qml/pages/components/MyImage.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 \
|
||||||
|
|
|
@ -87,5 +87,4 @@ ApplicationWindow {
|
||||||
activate()
|
activate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
<title>icon-s-bookmark</title>
|
<title>icon-s-bookmark</title>
|
||||||
<g>
|
<g>
|
||||||
<rect width="32" height="32" fill="#fff" fill-opacity="0"/>
|
<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="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.74ZM16,18.55a1.07,1.07,0,0,1,.69.24l9.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.79A1.07,1.07,0,0,1,16,18.55Z" 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>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 776 B After Width: | Height: | Size: 623 B |
|
@ -9,6 +9,7 @@ var mediator = (function(){
|
||||||
mediator.channels[channel].push({ context : this, callback : fn });
|
mediator.channels[channel].push({ context : this, callback : fn });
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
var publish = function(channel){
|
var publish = function(channel){
|
||||||
if(!mediator.channels[channel]) return false;
|
if(!mediator.channels[channel]) return false;
|
||||||
var args = Array.prototype.slice.call(arguments, 1);
|
var args = Array.prototype.slice.call(arguments, 1);
|
||||||
|
@ -18,6 +19,7 @@ var mediator = (function(){
|
||||||
};
|
};
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
channels : {},
|
channels : {},
|
||||||
publish : publish,
|
publish : publish,
|
||||||
|
@ -28,6 +30,7 @@ var mediator = (function(){
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}());
|
}());
|
||||||
|
|
||||||
var init = function(){
|
var init = function(){
|
||||||
console.log("db.version: "+db.version);
|
console.log("db.version: "+db.version);
|
||||||
if(db.version === '') {
|
if(db.version === '') {
|
||||||
|
@ -103,6 +106,7 @@ var tootParser = function(data){
|
||||||
|
|
||||||
console.log(ret)
|
console.log(ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
var test = 1;
|
var test = 1;
|
||||||
|
|
||||||
Qt.include("Mastodon.js")
|
Qt.include("Mastodon.js")
|
||||||
|
@ -161,6 +165,7 @@ var notifier = function(item){
|
||||||
key: item.id
|
key: item.id
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "follow":
|
case "follow":
|
||||||
msg = {
|
msg = {
|
||||||
urgency: "critical",
|
urgency: "critical",
|
||||||
|
@ -182,6 +187,7 @@ var notifier = function(item){
|
||||||
key: item.id
|
key: item.id
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "mention":
|
case "mention":
|
||||||
msg = {
|
msg = {
|
||||||
urgency: "critical",
|
urgency: "critical",
|
||||||
|
@ -193,6 +199,7 @@ var notifier = function(item){
|
||||||
key: item.id
|
key: item.id
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
//console.log(JSON.stringify(messageObject.data))
|
//console.log(JSON.stringify(messageObject.data))
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -10,10 +10,12 @@ var mastodonAPI = function(config) {
|
||||||
// modify initial config afterwards
|
// modify initial config afterwards
|
||||||
config[key] = value;
|
config[key] = value;
|
||||||
},
|
},
|
||||||
|
|
||||||
getConfig: function(key) {
|
getConfig: function(key) {
|
||||||
//get config key
|
//get config key
|
||||||
return config[key];
|
return config[key];
|
||||||
},
|
},
|
||||||
|
|
||||||
get: function (endpoint) {
|
get: function (endpoint) {
|
||||||
// for GET API calls
|
// for GET API calls
|
||||||
// can be called with two or three parameters
|
// can be called with two or three parameters
|
||||||
|
@ -67,6 +69,7 @@ var mastodonAPI = function(config) {
|
||||||
}
|
}
|
||||||
http.send();
|
http.send();
|
||||||
},
|
},
|
||||||
|
|
||||||
post: function (endpoint) {
|
post: function (endpoint) {
|
||||||
// for POST API calls
|
// for POST API calls
|
||||||
var postData, callback;
|
var postData, callback;
|
||||||
|
@ -113,6 +116,7 @@ var mastodonAPI = function(config) {
|
||||||
}
|
}
|
||||||
});*/
|
});*/
|
||||||
},
|
},
|
||||||
|
|
||||||
delete: function (endpoint, callback) {
|
delete: function (endpoint, callback) {
|
||||||
// for DELETE API calls.
|
// for DELETE API calls.
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
@ -125,6 +129,7 @@ var mastodonAPI = function(config) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
stream: function (streamType, onData) {
|
stream: function (streamType, onData) {
|
||||||
// Event Stream Support
|
// Event Stream Support
|
||||||
// websocket streaming is undocumented. i had to reverse engineer the fucking web client.
|
// websocket streaming is undocumented. i had to reverse engineer the fucking web client.
|
||||||
|
@ -132,7 +137,7 @@ var mastodonAPI = function(config) {
|
||||||
// user for your local home TL and notifications
|
// user for your local home TL and notifications
|
||||||
// public for your federated TL
|
// public for your federated TL
|
||||||
// public:local for your home TL
|
// public:local for your home TL
|
||||||
// hashtag&tag=fuckdonaldtrump for the stream of #fuckdonaldtrump
|
// hashtag&tag=mastodonrocks for the stream of #mastodonrocks
|
||||||
// callback gets called whenever new data ist recieved
|
// callback gets called whenever new data ist recieved
|
||||||
// callback { event: (eventtype), payload: {mastodon object as described in the api docs} }
|
// callback { event: (eventtype), payload: {mastodon object as described in the api docs} }
|
||||||
// eventtype could be notification (=notification) or update (= new toot in TL)
|
// eventtype could be notification (=notification) or update (= new toot in TL)
|
||||||
|
@ -147,12 +152,10 @@ var mastodonAPI = function(config) {
|
||||||
onData(event);
|
onData(event);
|
||||||
};
|
};
|
||||||
es.onmessage = listener;
|
es.onmessage = listener;
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
registerApplication: function (client_name, redirect_uri, scopes, website, callback) {
|
registerApplication: function (client_name, redirect_uri, scopes, website, callback) {
|
||||||
//register a new application
|
//register a new application
|
||||||
|
|
||||||
// OAuth Auth flow:
|
// OAuth Auth flow:
|
||||||
// First register the application
|
// First register the application
|
||||||
// 2) get a access code from a user (using the link, generation function below!)
|
// 2) get a access code from a user (using the link, generation function below!)
|
||||||
|
@ -191,10 +194,12 @@ var mastodonAPI = function(config) {
|
||||||
}
|
}
|
||||||
http.send(params);
|
http.send(params);
|
||||||
},
|
},
|
||||||
|
|
||||||
generateAuthLink: function (client_id, redirect_uri, responseType, scopes) {
|
generateAuthLink: function (client_id, redirect_uri, responseType, scopes) {
|
||||||
return config.instance + "/oauth/authorize?client_id=" + client_id + "&redirect_uri=" + redirect_uri +
|
return config.instance + "/oauth/authorize?client_id=" + client_id + "&redirect_uri=" + redirect_uri +
|
||||||
"&response_type=" + responseType + "&scope=" + scopes.join("+");
|
"&response_type=" + responseType + "&scope=" + scopes.join("+");
|
||||||
},
|
},
|
||||||
|
|
||||||
getAccessTokenFromAuthCode: function (client_id, client_secret, redirect_uri, code, callback) {
|
getAccessTokenFromAuthCode: function (client_id, client_secret, redirect_uri, code, callback) {
|
||||||
/*$.ajax({
|
/*$.ajax({
|
||||||
url: config.instance + "/oauth/token",
|
url: config.instance + "/oauth/token",
|
||||||
|
|
|
@ -10,7 +10,7 @@ WorkerScript.onMessage = function(msg) {
|
||||||
console.log("Conf > " + JSON.stringify(msg.conf))
|
console.log("Conf > " + JSON.stringify(msg.conf))
|
||||||
console.log("Params > " + JSON.stringify(msg.params))
|
console.log("Params > " + JSON.stringify(msg.params))
|
||||||
|
|
||||||
// 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)
|
||||||
|
@ -18,14 +18,17 @@ WorkerScript.onMessage = function(msg) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Logged-in status */
|
||||||
if (!msg.conf || !msg.conf.login) {
|
if (!msg.conf || !msg.conf.login) {
|
||||||
console.log("Not loggedin")
|
console.log("Not loggedin")
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Load images */
|
||||||
if (typeof msg.conf['loadImages'] !== "undefined")
|
if (typeof msg.conf['loadImages'] !== "undefined")
|
||||||
loadImages = msg.conf['loadImages']
|
loadImages = msg.conf['loadImages']
|
||||||
|
|
||||||
|
/** POST statuses */
|
||||||
var API = mastodonAPI({ instance: msg.conf.instance, api_user_token: msg.conf.api_user_token});
|
var API = mastodonAPI({ instance: msg.conf.instance, api_user_token: msg.conf.api_user_token});
|
||||||
if (msg.method === "POST"){
|
if (msg.method === "POST"){
|
||||||
API.post(msg.action, msg.params, function(data) {
|
API.post(msg.action, msg.params, function(data) {
|
||||||
|
@ -63,7 +66,7 @@ WorkerScript.onMessage = function(msg) {
|
||||||
|
|
||||||
} else if(msg.action === "notifications") {
|
} else if(msg.action === "notifications") {
|
||||||
// notification
|
// notification
|
||||||
// console.log("Is notification... parsing...")
|
console.log("Get notification list")
|
||||||
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)
|
||||||
|
@ -73,7 +76,9 @@ WorkerScript.onMessage = function(msg) {
|
||||||
console.log("ancestors")
|
console.log("ancestors")
|
||||||
for (var j = 0; j < data[i].length; j ++) {
|
for (var j = 0; j < data[i].length; j ++) {
|
||||||
item = parseToot(data[i][j]);
|
item = parseToot(data[i][j]);
|
||||||
item['id'] = item['status_id']
|
item['id'] = item['status_id'];
|
||||||
|
if (typeof item['attachments'] === "undefined")
|
||||||
|
item['attachments'] = [];
|
||||||
items.push(item)
|
items.push(item)
|
||||||
console.log(JSON.stringify(data[i][j]))
|
console.log(JSON.stringify(data[i][j]))
|
||||||
}
|
}
|
||||||
|
@ -82,7 +87,7 @@ WorkerScript.onMessage = function(msg) {
|
||||||
|
|
||||||
//console.log(JSON.stringify(i))
|
//console.log(JSON.stringify(i))
|
||||||
} else if(msg.action.indexOf("statuses") >-1 && msg.action.indexOf("context") >-1 && i === "descendants") {
|
} else if(msg.action.indexOf("statuses") >-1 && msg.action.indexOf("context") >-1 && i === "descendants") {
|
||||||
// status ancestors toots - conversation
|
// status descendants toots - conversation
|
||||||
console.log("descendants")
|
console.log("descendants")
|
||||||
for (var j = 0; j < data[i].length; j ++) {
|
for (var j = 0; j < data[i].length; j ++) {
|
||||||
item = parseToot(data[i][j]);
|
item = parseToot(data[i][j]);
|
||||||
|
@ -94,16 +99,19 @@ 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("Get Toot")
|
||||||
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] })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(msg.model && items.length)
|
if(msg.model && items.length)
|
||||||
addDataToModel(msg.model, msg.mode, items)
|
addDataToModel(msg.model, msg.mode, items)
|
||||||
/*if(msg.action === "notifications")
|
/*if(msg.action === "notifications")
|
||||||
|
@ -123,11 +131,10 @@ function addDataToModel (model, mode, items) {
|
||||||
model.insert(0,items[i])
|
model.insert(0,items[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
model.sync()
|
model.sync()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Account Data: Represents a user of Mastodon and their associated profile.
|
/** Function: Get Account Data */
|
||||||
function parseAccounts(collection, prefix, data) {
|
function parseAccounts(collection, prefix, data) {
|
||||||
|
|
||||||
var res = collection;
|
var res = collection;
|
||||||
|
@ -153,13 +160,12 @@ function parseAccounts(collection, prefix, data) {
|
||||||
//res[prefix + 'account_fields'] = data["fields"]
|
//res[prefix + 'account_fields'] = data["fields"]
|
||||||
res[prefix + 'account_bot'] = data["bot"]
|
res[prefix + 'account_bot'] = data["bot"]
|
||||||
res[prefix + 'account_group'] = data["group"]
|
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: Get Notification Data */
|
||||||
function parseNotification(data){
|
function parseNotification(data){
|
||||||
//console.log(JSON.stringify(data))
|
//console.log(JSON.stringify(data))
|
||||||
var item = {
|
var item = {
|
||||||
|
@ -168,12 +174,12 @@ function parseNotification(data){
|
||||||
attachments: []
|
attachments: []
|
||||||
};
|
};
|
||||||
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-alarm"
|
item['typeIcon'] = "image://theme/icon-s-alarm"
|
||||||
item['type'] = "mention"
|
item['type'] = "mention"
|
||||||
break;
|
break;
|
||||||
|
@ -197,19 +203,18 @@ function parseNotification(data){
|
||||||
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'] = "favourite"
|
||||||
item['typeIcon'] = "image://theme/icon-s-favorite"
|
item['typeIcon'] = "image://theme/icon-s-favorite"
|
||||||
item['type'] = "favourite";
|
|
||||||
//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-follow.svg"
|
item['typeIcon'] = "../../images/icon-s-follow.svg"
|
||||||
item['attachments'] = []
|
//item['attachments'] = []
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -222,6 +227,7 @@ function parseNotification(data){
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Function: */
|
||||||
function collect() {
|
function collect() {
|
||||||
var ret = {};
|
var ret = {};
|
||||||
var len = arguments.length;
|
var len = arguments.length;
|
||||||
|
@ -235,12 +241,13 @@ function collect() {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Function: Get Status date */
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Status / Toot Data
|
/** Function: Get Status data */
|
||||||
function parseToot (data) {
|
function parseToot (data) {
|
||||||
var i = 0;
|
var i = 0;
|
||||||
var item = {};
|
var item = {};
|
||||||
|
@ -253,7 +260,6 @@ function parseToot (data) {
|
||||||
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"]
|
item['status_language'] = data["language"]
|
||||||
|
|
||||||
item['status_uri'] = data["uri"]
|
item['status_uri'] = data["uri"]
|
||||||
item['status_url'] = data["url"]
|
item['status_url'] = data["url"]
|
||||||
item['status_replies_count'] = data["replies_count"]
|
item['status_replies_count'] = data["replies_count"]
|
||||||
|
@ -262,33 +268,38 @@ function parseToot (data) {
|
||||||
item['status_favourited'] = data["favourited"]
|
item['status_favourited'] = data["favourited"]
|
||||||
item['status_reblogged'] = data["reblogged"]
|
item['status_reblogged'] = data["reblogged"]
|
||||||
item['status_bookmarked'] = data["bookmarked"]
|
item['status_bookmarked'] = data["bookmarked"]
|
||||||
|
|
||||||
item['status_content'] = data["content"]
|
item['status_content'] = data["content"]
|
||||||
|
item['attachments'] = data['media_attachments']
|
||||||
item['status_in_reply_to_id'] = data["in_reply_to_id"]
|
item['status_in_reply_to_id'] = data["in_reply_to_id"]
|
||||||
item['status_in_reply_to_account_id'] = data["in_reply_to_account_id"]
|
item['status_in_reply_to_account_id'] = data["in_reply_to_account_id"]
|
||||||
item['status_reblog'] = data["reblog"] ? true : false
|
item['status_reblog'] = data["reblog"] ? true : false
|
||||||
item['section'] = getDate(data["created_at"])
|
item['section'] = getDate(data["created_at"])
|
||||||
|
|
||||||
// If Toot is a Reblog
|
/** If Toot is a Reblog */
|
||||||
if(item['status_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_sensitive'] = data["reblog"]["sensitive"]
|
item['status_sensitive'] = data["reblog"]["sensitive"]
|
||||||
|
item['status_spoiler_text'] = data["reblog"]["spoiler_text"]
|
||||||
|
item['status_replies_count'] = data["reblog"]["replies_count"]
|
||||||
|
item['status_reblogs_count'] = data["reblog"]["reblogs_count"]
|
||||||
|
item['status_favourites_count'] = data["reblog"]["favourites_count"]
|
||||||
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"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replace HTML content in Toots */
|
||||||
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'] = [];
|
|
||||||
|
|
||||||
// Media attachements in Toots
|
/** Media attachements in Toots */
|
||||||
|
item['attachments'] = [];
|
||||||
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'], '')
|
||||||
|
@ -301,7 +312,7 @@ function parseToot (data) {
|
||||||
item['attachments'].push(tmp)
|
item['attachments'].push(tmp)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Media attachements in Reblogs
|
/** Media attachements in Reblogs */
|
||||||
if(item['status_reblog']) {
|
if(item['status_reblog']) {
|
||||||
for(i = 0; i < data['reblog']['media_attachments'].length ; i++) {
|
for(i = 0; i < data['reblog']['media_attachments'].length ; i++) {
|
||||||
var attachments = data['reblog']['media_attachments'][i];
|
var attachments = data['reblog']['media_attachments'][i];
|
||||||
|
@ -319,7 +330,7 @@ function parseToot (data) {
|
||||||
return addEmojis(item, data);
|
return addEmojis(item, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Display function for custom Emojis in Toots
|
/** Function: Display custom Emojis in Toots */
|
||||||
function addEmojis(item, data) {
|
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++) {
|
||||||
|
|
|
@ -8,28 +8,37 @@ import "./components/"
|
||||||
Page {
|
Page {
|
||||||
id: conversationPage
|
id: conversationPage
|
||||||
|
|
||||||
property string type
|
|
||||||
property string description: ""
|
|
||||||
property string headerTitle: ""
|
|
||||||
property string suggestedUser: ""
|
|
||||||
property ListModel suggestedModel
|
property ListModel suggestedModel
|
||||||
property string toot_id: ""
|
property ListModel mdl
|
||||||
property string toot_url: ""
|
property int tootMaxChar: 500
|
||||||
property string toot_uri: ""
|
|
||||||
property int tootMaxChar: 500;
|
|
||||||
property bool bot: false //otherwise ReferenceError ProfileHeader.qml
|
property bool bot: false //otherwise ReferenceError ProfileHeader.qml
|
||||||
property bool followed_by: false //otherwise ReferenceError ProfileHeader.qml
|
property bool followed_by: false //otherwise ReferenceError ProfileHeader.qml
|
||||||
property bool locked: false //otherwise ReferenceError ProfileHeader.qml
|
property bool locked: false //otherwise ReferenceError ProfileHeader.qml
|
||||||
property bool group: false //otherwise ReferenceError ProfileHeader.qml
|
property bool group: false //otherwise ReferenceError ProfileHeader.qml
|
||||||
property ListModel mdl
|
property string type
|
||||||
|
property string username: ""
|
||||||
|
property string headerTitle: ""
|
||||||
|
property string suggestedUser: ""
|
||||||
|
property string status_id: ""
|
||||||
|
property string status_url: ""
|
||||||
|
property string status_uri: ""
|
||||||
|
property string status_link:
|
||||||
|
if (status_url === "") {
|
||||||
|
var test = status_uri.split("/")
|
||||||
|
console.log(status_uri)
|
||||||
|
console.log(JSON.stringify(test))
|
||||||
|
console.log(JSON.stringify(test.length))
|
||||||
|
if (test.length === 8 && (test[7] === "activity")) {
|
||||||
|
var urialt = status_uri.replace("activity", "")
|
||||||
|
status_link = urialt
|
||||||
|
}
|
||||||
|
else status_link = status_uri
|
||||||
|
} else status_link = status_url
|
||||||
|
|
||||||
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 { }', Qt.application, 'InternalQmlObject' )
|
||||||
'import QtQuick 2.0; ListModel { }',
|
|
||||||
Qt.application, 'InternalQmlObject'
|
|
||||||
)
|
|
||||||
predictionList.visible = false
|
predictionList.visible = false
|
||||||
if (suggestedUser.length > 0) {
|
if (suggestedUser.length > 0) {
|
||||||
var msg = {
|
var msg = {
|
||||||
|
@ -58,18 +67,12 @@ Page {
|
||||||
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 {
|
|
||||||
id: header
|
|
||||||
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
|
||||||
}
|
}
|
||||||
|
@ -90,12 +93,11 @@ Page {
|
||||||
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 === status_id) {
|
||||||
console.log(mdl.get(i).status_id)
|
console.log(mdl.get(i).status_id)
|
||||||
positionViewAtIndex(i, ListView.Center)
|
positionViewAtIndex(i, ListView.Center)
|
||||||
}
|
}
|
||||||
|
@ -106,31 +108,25 @@ Page {
|
||||||
id: pulleyConversation
|
id: pulleyConversation
|
||||||
visible: type === "reply"
|
visible: type === "reply"
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("Open in Browser")
|
||||||
|
onClicked: {
|
||||||
|
Qt.openUrlExternally(status_link)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
//: Use the translation of "Copy Link" for a shorter PullDownMenu label
|
//: 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: Clipboard.text = status_link
|
||||||
var test = toot_uri.split("/")
|
|
||||||
console.log(toot_uri)
|
|
||||||
console.log(JSON.stringify(test))
|
|
||||||
console.log(JSON.stringify(test.length))
|
|
||||||
if (test.length === 8 && (test[7] === "activity")) {
|
|
||||||
var urialt = toot_uri.replace("activity", "")
|
|
||||||
Clipboard.text = urialt
|
|
||||||
}
|
|
||||||
else Clipboard.text = toot_uri
|
|
||||||
} else Clipboard.text = toot_url
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
//: "Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"
|
//: "Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"
|
||||||
text: !panel.open ? qsTr("Reply") : qsTr("Hide Reply")
|
text: !panel.open ? qsTr("Reply") : qsTr("Hide Reply")
|
||||||
visible: type == "reply"
|
visible: type == "reply"
|
||||||
onClicked: if (!panel.open) {
|
onClicked: !panel.open ? panel.open = true : panel.open = false
|
||||||
panel.open = true
|
|
||||||
} else panel.open = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,20 +138,16 @@ Page {
|
||||||
anchors {
|
anchors {
|
||||||
left: panel.left
|
left: panel.left
|
||||||
right: panel.right
|
right: panel.right
|
||||||
bottom: if (panel.open == true) {
|
bottom: panel.open == true ? panel.top : hiddenPanel.top
|
||||||
panel.top
|
|
||||||
} else {
|
|
||||||
hiddenPanel.top
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SilicaListView {
|
SilicaListView {
|
||||||
rotation: 180
|
id: predictionResults
|
||||||
|
rotation: 180 // shows best matching result on the bottom
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
model: suggestedModel
|
model: suggestedModel
|
||||||
clip: true
|
clip: true
|
||||||
quickScroll: false
|
quickScroll: false
|
||||||
VerticalScrollDecorator {}
|
|
||||||
delegate: ItemUser {
|
delegate: ItemUser {
|
||||||
rotation: 180
|
rotation: 180
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
@ -171,7 +163,6 @@ Page {
|
||||||
+ 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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,21 +171,20 @@ Page {
|
||||||
positionViewAtBeginning(suggestedModel.count - 1, ListView.Beginning)
|
positionViewAtBeginning(suggestedModel.count - 1, ListView.Beginning)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VerticalScrollDecorator {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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 + (warningContent.visible ? warningContent.height : 0)
|
||||||
+ btnContentWarning.height + Theme.paddingMedium
|
|
||||||
+ (warningContent.visible ? warningContent.height : 0)
|
|
||||||
dock: Dock.Bottom
|
dock: Dock.Bottom
|
||||||
open: true
|
open: true
|
||||||
|
|
||||||
animationDuration: 300
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
id: progressBarBg
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: progressBar.height
|
height: progressBar.height
|
||||||
color: Theme.highlightBackgroundColor
|
color: Theme.highlightBackgroundColor
|
||||||
|
@ -225,17 +215,18 @@ Page {
|
||||||
autoScrollEnabled: true
|
autoScrollEnabled: true
|
||||||
labelVisible: false
|
labelVisible: false
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
//: placeholderText in Toot content warning panel
|
||||||
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: {}
|
||||||
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
|
||||||
}
|
}
|
||||||
EnterKey.onClicked: {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TextInput {
|
TextInput {
|
||||||
|
@ -247,18 +238,19 @@ Page {
|
||||||
id: toot
|
id: toot
|
||||||
autoScrollEnabled: true
|
autoScrollEnabled: true
|
||||||
labelVisible: false
|
labelVisible: false
|
||||||
text: description !== "" && (description.charAt(0) === '@'
|
//: placeholderText in Toot text panel
|
||||||
|| description.charAt(
|
|
||||||
0) === '#') ? description + ' ' : ''
|
|
||||||
height: if (type !== "reply") {
|
|
||||||
Math.max(conversationPage.height / 3, Math.min(conversationPage.height * 0.65, implicitHeight))
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Math.max(conversationPage.height / 4, Math.min(conversationPage.height * 0.65, implicitHeight))
|
|
||||||
}
|
|
||||||
horizontalAlignment: Text.AlignLeft
|
|
||||||
placeholderText: qsTr("What's on your mind?")
|
placeholderText: qsTr("What's on your mind?")
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
text: username !== "" && (username.charAt(0) === '@'
|
||||||
|
|| username.charAt(
|
||||||
|
0) === '#') ? username + ' ' : ''
|
||||||
|
height: if (type !== "reply") {
|
||||||
|
isPortrait ? Math.max(conversationPage.height / 3, Math.min(conversationPage.height * 0.65, implicitHeight)) : Math.max(conversationPage.height / 2, Math.min(conversationPage.height * 0.65, implicitHeight))
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
isPortrait ? Math.max(conversationPage.height / 4, Math.min(conversationPage.height * 0.65, implicitHeight)) : Math.max(conversationPage.height / 2.5, Math.min(conversationPage.height * 0.65, implicitHeight))
|
||||||
|
}
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
anchors {
|
anchors {
|
||||||
top: warningContent.bottom
|
top: warningContent.bottom
|
||||||
topMargin: Theme.paddingMedium
|
topMargin: Theme.paddingMedium
|
||||||
|
@ -274,7 +266,6 @@ Page {
|
||||||
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(toot.text.length)
|
console.log(toot.text.length)
|
||||||
suggestedUser = ""
|
suggestedUser = ""
|
||||||
if (textOperations.selectedText.charAt(0) === "@") {
|
if (textOperations.selectedText.charAt(0) === "@") {
|
||||||
|
@ -302,7 +293,7 @@ Page {
|
||||||
rightMargin: Theme.paddingSmall
|
rightMargin: Theme.paddingSmall
|
||||||
}
|
}
|
||||||
onSelectionChanged: { console.log(selection) }
|
onSelectionChanged: { console.log(selection) }
|
||||||
onClicked: pageStack.push(emojiSelect)
|
onClicked: pageStack.push(emojiDialog)
|
||||||
}
|
}
|
||||||
|
|
||||||
SilicaGridView {
|
SilicaGridView {
|
||||||
|
@ -313,13 +304,14 @@ Page {
|
||||||
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: isPortrait ? cellWidth : 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
|
||||||
|
cancelText: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
|
@ -331,7 +323,7 @@ Page {
|
||||||
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, "", function () {
|
||||||
mediaModel.remove(idx)
|
mediaModel.remove(idx)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -363,28 +355,26 @@ Page {
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
id: btnContentWarning
|
id: btnContentWarning
|
||||||
|
icon.source: "image://theme/icon-s-warning?" + ( pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor) )
|
||||||
|
onClicked: warningContent.visible = !warningContent.visible
|
||||||
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?"
|
|
||||||
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
|
|
||||||
onClicked: warningContent.visible = !warningContent.visible
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
id: btnAddImage
|
id: btnAddImage
|
||||||
enabled: mediaModel.count < 4
|
enabled: mediaModel.count < 4
|
||||||
|
icon.source: "image://theme/icon-s-attach?" + ( pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor) )
|
||||||
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?"
|
|
||||||
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
btnAddImage.enabled = false
|
btnAddImage.enabled = false
|
||||||
var once = true
|
var once = true
|
||||||
|
@ -421,12 +411,6 @@ Page {
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: privacy
|
id: privacy
|
||||||
anchors {
|
|
||||||
top: toot.bottom
|
|
||||||
topMargin: -Theme.paddingSmall * 1.5
|
|
||||||
left: btnAddImage.right
|
|
||||||
right: btnSend.left
|
|
||||||
}
|
|
||||||
menu: ContextMenu {
|
menu: ContextMenu {
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: qsTr("Public")
|
text: qsTr("Public")
|
||||||
|
@ -441,19 +425,24 @@ Page {
|
||||||
text: qsTr("Direct")
|
text: qsTr("Direct")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
anchors {
|
||||||
|
top: toot.bottom
|
||||||
|
topMargin: -Theme.paddingSmall * 1.5
|
||||||
|
left: btnAddImage.right
|
||||||
|
right: btnSend.left
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
enabled: toot.text !== "" && toot.text.length < tootMaxChar && uploadProgress.width == 0
|
||||||
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
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var visibility = ["public", "unlisted", "private", "direct"]
|
var visibility = ["public", "unlisted", "private", "direct"]
|
||||||
var media_ids = []
|
var media_ids = []
|
||||||
|
@ -473,8 +462,8 @@ Page {
|
||||||
},
|
},
|
||||||
"conf": Logic.conf
|
"conf": Logic.conf
|
||||||
}
|
}
|
||||||
if (toot_id)
|
if (status_id)
|
||||||
msg.params['in_reply_to_id'] = (toot_id) + ""
|
msg.params['in_reply_to_id'] = (status_id) + ""
|
||||||
|
|
||||||
if (warningContent.visible && warningContent.text.length > 0) {
|
if (warningContent.visible && warningContent.text.length > 0) {
|
||||||
msg.params['sensitive'] = 1
|
msg.params['sensitive'] = 1
|
||||||
|
@ -492,9 +481,11 @@ Page {
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: uploadProgress
|
id: uploadProgress
|
||||||
color: Theme.highlightBackgroundColor
|
color: Theme.highlightBackgroundColor
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
anchors.left: parent.left
|
|
||||||
height: Theme.itemSizeSmall * 0.05
|
height: Theme.itemSizeSmall * 0.05
|
||||||
|
anchors {
|
||||||
|
bottom: parent.bottom
|
||||||
|
left: parent.left
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -564,9 +555,9 @@ Page {
|
||||||
color: Theme.highlightBackgroundColor
|
color: Theme.highlightBackgroundColor
|
||||||
opacity: 0.2
|
opacity: 0.2
|
||||||
anchors {
|
anchors {
|
||||||
|
top: parent.top
|
||||||
left: parent.left
|
left: parent.left
|
||||||
right: parent.right
|
right: parent.right
|
||||||
top: parent.top
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -577,15 +568,15 @@ Page {
|
||||||
color: Theme.highlightBackgroundColor
|
color: Theme.highlightBackgroundColor
|
||||||
opacity: 0.7
|
opacity: 0.7
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
|
||||||
top: parent.top
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EmojiSelect {
|
EmojiSelect {
|
||||||
id: emojiSelect
|
id: emojiDialog
|
||||||
}
|
}
|
||||||
|
|
||||||
InfoBanner {
|
InfoBanner {
|
||||||
|
|
|
@ -72,38 +72,35 @@ Page {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
id: serviceDescr
|
||||||
|
text: qsTr("Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.")
|
||||||
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
color: Theme.highlightColor
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
width: parent.width
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
topMargin: Theme.paddingMedium
|
topMargin: Theme.paddingMedium
|
||||||
|
left: parent.left
|
||||||
leftMargin: Theme.horizontalPageMargin
|
leftMargin: Theme.horizontalPageMargin
|
||||||
|
right: parent.right
|
||||||
rightMargin: Theme.horizontalPageMargin
|
rightMargin: Theme.horizontalPageMargin
|
||||||
}
|
}
|
||||||
|
|
||||||
width: parent.width
|
|
||||||
wrapMode: Text.WordWrap
|
|
||||||
color: Theme.highlightColor
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
|
||||||
text: qsTr("Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SilicaWebView {
|
SilicaWebView {
|
||||||
id: webView
|
id: webView
|
||||||
visible: false
|
visible: false
|
||||||
|
opacity: 0
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
left: parent.left
|
left: parent.left
|
||||||
right: parent.right
|
right: parent.right
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
}
|
}
|
||||||
|
|
||||||
opacity: 0
|
|
||||||
onLoadingChanged: {
|
onLoadingChanged: {
|
||||||
console.log(url)
|
console.log(url)
|
||||||
if (
|
if (
|
||||||
|
@ -154,6 +151,7 @@ Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
FadeAnimation on opacity {}
|
FadeAnimation on opacity {}
|
||||||
|
|
||||||
PullDownMenu {
|
PullDownMenu {
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: qsTr("Reload")
|
text: qsTr("Reload")
|
||||||
|
|
|
@ -12,14 +12,15 @@ Page {
|
||||||
|
|
||||||
allowedOrientations: Orientation.All
|
allowedOrientations: Orientation.All
|
||||||
|
|
||||||
|
// Docked Navigation panel
|
||||||
DockedPanel {
|
DockedPanel {
|
||||||
id: infoPanel
|
id: infoPanel
|
||||||
open: true
|
open: true
|
||||||
width: mainPage.isPortrait ? parent.width : Theme.itemSizeLarge
|
width: isPortrait ? parent.width : Theme.itemSizeLarge
|
||||||
height: mainPage.isPortrait ? Theme.itemSizeLarge : parent.height
|
height: isPortrait ? Theme.itemSizeLarge : parent.height
|
||||||
dock: mainPage.isPortrait ? Dock.Bottom : Dock.Right
|
dock: isPortrait ? Dock.Bottom : Dock.Right
|
||||||
|
|
||||||
Navigation {
|
NavigationPanel {
|
||||||
id: navigation
|
id: navigation
|
||||||
isPortrait: !mainPage.isPortrait
|
isPortrait: !mainPage.isPortrait
|
||||||
onSlideshowShow: {
|
onSlideshowShow: {
|
||||||
|
@ -37,9 +38,9 @@ Page {
|
||||||
title: qsTr("Home")
|
title: qsTr("Home")
|
||||||
type: "timelines/home"
|
type: "timelines/home"
|
||||||
mdl: Logic.modelTLhome
|
mdl: Logic.modelTLhome
|
||||||
width: parent.itemWidth
|
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||||
height: parent.itemHeight
|
height: parent.itemHeight
|
||||||
onOpenDrawer: infoPanel.open = setDrawer
|
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||||
}
|
}
|
||||||
|
|
||||||
MyList {
|
MyList {
|
||||||
|
@ -48,9 +49,9 @@ Page {
|
||||||
type: "notifications"
|
type: "notifications"
|
||||||
notifier: true
|
notifier: true
|
||||||
mdl: Logic.modelTLnotifications
|
mdl: Logic.modelTLnotifications
|
||||||
width: parent.itemWidth
|
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||||
height: parent.itemHeight
|
height: parent.itemHeight
|
||||||
onOpenDrawer: infoPanel.open = setDrawer
|
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||||
}
|
}
|
||||||
|
|
||||||
MyList {
|
MyList {
|
||||||
|
@ -59,9 +60,9 @@ Page {
|
||||||
type: "timelines/public?local=true"
|
type: "timelines/public?local=true"
|
||||||
//params: ["local", true]
|
//params: ["local", true]
|
||||||
mdl: Logic.modelTLlocal
|
mdl: Logic.modelTLlocal
|
||||||
width: parent.itemWidth
|
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||||
height: parent.itemHeight
|
height: parent.itemHeight
|
||||||
onOpenDrawer: infoPanel.open = setDrawer
|
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||||
}
|
}
|
||||||
|
|
||||||
MyList {
|
MyList {
|
||||||
|
@ -69,9 +70,9 @@ Page {
|
||||||
title: qsTr("Federated")
|
title: qsTr("Federated")
|
||||||
type: "timelines/public"
|
type: "timelines/public"
|
||||||
mdl: Logic.modelTLpublic
|
mdl: Logic.modelTLpublic
|
||||||
width: parent.itemWidth
|
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||||
height: parent.itemHeight
|
height: parent.itemHeight
|
||||||
onOpenDrawer: infoPanel.open = setDrawer
|
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -80,7 +81,7 @@ Page {
|
||||||
property ListModel mdl: ListModel {}
|
property ListModel mdl: ListModel {}
|
||||||
property string search
|
property string search
|
||||||
|
|
||||||
width: parent.itemWidth
|
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||||
height: parent.itemHeight
|
height: parent.itemHeight
|
||||||
onSearchChanged: {
|
onSearchChanged: {
|
||||||
console.log(search)
|
console.log(search)
|
||||||
|
@ -134,7 +135,7 @@ Page {
|
||||||
mdl: ListModel {}
|
mdl: ListModel {}
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: parent.height
|
height: parent.height
|
||||||
onOpenDrawer: infoPanel.open = setDrawer
|
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
currentIndex: -1 // otherwise currentItem will steal focus
|
currentIndex: -1 // otherwise currentItem will steal focus
|
||||||
header: Item {
|
header: Item {
|
||||||
|
@ -233,16 +234,16 @@ Page {
|
||||||
itemWidth: isTablet ? Math.round(parent.width) : parent.width
|
itemWidth: isTablet ? Math.round(parent.width) : parent.width
|
||||||
itemHeight: height
|
itemHeight: height
|
||||||
clip: true
|
clip: true
|
||||||
|
model: visualModel
|
||||||
onCurrentIndexChanged: {
|
onCurrentIndexChanged: {
|
||||||
navigation.slideshowIndexChanged(currentIndex)
|
navigation.slideshowIndexChanged(currentIndex)
|
||||||
}
|
}
|
||||||
anchors {
|
anchors {
|
||||||
fill: parent
|
fill: parent
|
||||||
top: parent.top
|
top: parent.top
|
||||||
rightMargin: mainPage.isPortrait ? 0 : infoPanel.visibleSize
|
rightMargin: isPortrait ? 0 : infoPanel.visibleSize
|
||||||
bottomMargin: mainPage.isPortrait ? infoPanel.visibleSize : 0
|
bottomMargin: isPortrait ? infoPanel.visibleSize : 0
|
||||||
}
|
}
|
||||||
model: visualModel
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -255,7 +256,7 @@ Page {
|
||||||
icon.source: "image://theme/icon-l-add"
|
icon.source: "image://theme/icon-l-add"
|
||||||
anchors {
|
anchors {
|
||||||
right: (mainPage.isPortrait ? parent.right : infoPanel.left)
|
right: (mainPage.isPortrait ? parent.right : infoPanel.left)
|
||||||
rightMargin: Theme.paddingLarge
|
rightMargin: isPortrait ? Theme.paddingLarge : Theme.paddingLarge * 0.8
|
||||||
bottom: (mainPage.isPortrait ? infoPanel.top : parent.bottom)
|
bottom: (mainPage.isPortrait ? infoPanel.top : parent.bottom)
|
||||||
bottomMargin: Theme.paddingLarge
|
bottomMargin: Theme.paddingLarge
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,9 +182,9 @@ Page {
|
||||||
id: txtNote
|
id: txtNote
|
||||||
text: note
|
text: note
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
color: Theme.secondaryColor
|
color: Theme.secondaryHighlightColor
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
linkColor: Theme.highlightColor
|
linkColor: Theme.secondaryColor
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
width: parent.width - ( 2 * Theme.horizontalPageMargin )
|
width: parent.width - ( 2 * Theme.horizontalPageMargin )
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
@ -227,37 +227,43 @@ Page {
|
||||||
anchors.leftMargin: Theme.paddingLarge
|
anchors.leftMargin: Theme.paddingLarge
|
||||||
anchors.rightMargin: Theme.paddingLarge
|
anchors.rightMargin: Theme.paddingLarge
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: txtFollowers
|
id: txtFollowers
|
||||||
visible: true //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")
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.highlightColor
|
color: Theme.primaryColor
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: txtFollowing
|
id: txtFollowing
|
||||||
visible: true //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")
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.highlightColor
|
color: Theme.primaryColor
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Label {
|
||||||
id: txtStatuses
|
id: txtStatuses
|
||||||
visible: true //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")
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.highlightColor
|
color: pressed ? Theme.highlightColor : Theme.primaryColor
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: expandingSection1.expanded = false
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,7 +305,6 @@ Page {
|
||||||
'conf' : Logic.conf
|
'conf' : Logic.conf
|
||||||
};
|
};
|
||||||
worker.sendMessage(msg);
|
worker.sendMessage(msg);
|
||||||
// to-do: create notification banner "Follow request sent!"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -338,20 +343,10 @@ Page {
|
||||||
'params' : [],
|
'params' : [],
|
||||||
'action' : "accounts/" + user_id + (blocking ? '/unblock':'/block'),
|
'action' : "accounts/" + user_id + (blocking ? '/unblock':'/block'),
|
||||||
'conf' : Logic.conf
|
'conf' : Logic.conf
|
||||||
};
|
|
||||||
worker.sendMessage(msg);
|
|
||||||
}
|
}
|
||||||
|
worker.sendMessage(msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
|
||||||
id: btnBrowser
|
|
||||||
text: qsTr("Open in Browser")
|
|
||||||
preferredWidth: Theme.buttonWidthMedium
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
onClicked: {
|
|
||||||
Qt.openUrlExternally(url)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle { // dummy item for spacing
|
Rectangle { // dummy item for spacing
|
||||||
|
|
|
@ -2,11 +2,9 @@ import QtQuick 2.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
|
||||||
Component {
|
|
||||||
id: emojiComponent
|
|
||||||
|
|
||||||
Dialog {
|
Dialog {
|
||||||
id: emoticonsDialog
|
id: emojiDialog
|
||||||
|
allowedOrientations: Orientation.All
|
||||||
canAccept: false //selector.currentIndex >= 0
|
canAccept: false //selector.currentIndex >= 0
|
||||||
onAcceptPendingChanged: {
|
onAcceptPendingChanged: {
|
||||||
if (acceptPending) {
|
if (acceptPending) {
|
||||||
|
@ -14,6 +12,13 @@ Component {
|
||||||
// acceptDestinationInstance.category = selector.value
|
// acceptDestinationInstance.category = selector.value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
anchors.top: parent.top
|
||||||
|
|
||||||
|
Column {
|
||||||
|
id: emojiColumn
|
||||||
|
spacing: Theme.paddingLarge
|
||||||
|
width: parent.width
|
||||||
|
height: parent.height
|
||||||
|
|
||||||
SilicaGridView {
|
SilicaGridView {
|
||||||
id: gridView
|
id: gridView
|
||||||
|
@ -21,75 +26,175 @@ Component {
|
||||||
title: qsTr("Emojis")
|
title: qsTr("Emojis")
|
||||||
description: qsTr("Tap to insert")
|
description: qsTr("Tap to insert")
|
||||||
}
|
}
|
||||||
cellWidth: gridView.width / 6
|
cellWidth: isPortrait ? gridView.width / 6 : gridView.width / 10
|
||||||
cellHeight: cellWidth
|
cellHeight: cellWidth
|
||||||
anchors.fill: parent
|
width: parent.width
|
||||||
|
height: parent.height
|
||||||
model: ListModel {
|
model: ListModel {
|
||||||
ListElement { section: "smileys"; glyph: "😁" }
|
ListElement { section: "Smileys"; glyph: "😄" }
|
||||||
ListElement { section: "smileys"; glyph: "😂" }
|
ListElement { section: "Smileys"; glyph: "😃" }
|
||||||
ListElement { section: "smileys"; glyph: "😃" }
|
ListElement { section: "Smileys"; glyph: "😀" }
|
||||||
ListElement { section: "smileys"; glyph: "😄" }
|
ListElement { section: "Smileys"; glyph: "😊" }
|
||||||
ListElement { section: "smileys"; glyph: "😅" }
|
ListElement { section: "Smileys"; glyph: "☺" }
|
||||||
ListElement { section: "smileys"; glyph: "😆" }
|
ListElement { section: "Smileys"; glyph: "😉" }
|
||||||
ListElement { section: "smileys"; glyph: "😉" }
|
ListElement { section: "Smileys"; glyph: "😍" }
|
||||||
ListElement { section: "smileys"; glyph: "😊" }
|
ListElement { section: "Smileys"; glyph: "😘" }
|
||||||
ListElement { section: "smileys"; glyph: "😋" }
|
ListElement { section: "Smileys"; glyph: "😚" }
|
||||||
ListElement { section: "smileys"; glyph: "😎" }
|
ListElement { section: "Smileys"; glyph: "😗" }
|
||||||
ListElement { section: "smileys"; glyph: "😌" }
|
ListElement { section: "Smileys"; glyph: "😙" }
|
||||||
ListElement { section: "smileys"; glyph: "😍" }
|
ListElement { section: "Smileys"; glyph: "😜" }
|
||||||
ListElement { section: "smileys"; glyph: "😘" }
|
ListElement { section: "Smileys"; glyph: "😝" }
|
||||||
ListElement { section: "smileys"; glyph: "😏" }
|
ListElement { section: "Smileys"; glyph: "😛" }
|
||||||
ListElement { section: "smileys"; glyph: "😒" }
|
ListElement { section: "Smileys"; glyph: "😳" }
|
||||||
ListElement { section: "smileys"; glyph: "😓" }
|
ListElement { section: "Smileys"; glyph: "😁" }
|
||||||
ListElement { section: "smileys"; glyph: "😔" }
|
ListElement { section: "Smileys"; glyph: "😔" }
|
||||||
ListElement { section: "smileys"; glyph: "😖" }
|
ListElement { section: "Smileys"; glyph: "😌" }
|
||||||
ListElement { section: "smileys"; glyph: "😚" }
|
ListElement { section: "Smileys"; glyph: "😒" }
|
||||||
ListElement { section: "smileys"; glyph: "😜" }
|
ListElement { section: "Smileys"; glyph: "😞" }
|
||||||
ListElement { section: "smileys"; glyph: "😝" }
|
ListElement { section: "Smileys"; glyph: "😣" }
|
||||||
ListElement { section: "smileys"; glyph: "😞" }
|
ListElement { section: "Smileys"; glyph: "😢" }
|
||||||
ListElement { section: "smileys"; glyph: "😠" }
|
ListElement { section: "Smileys"; glyph: "😂" }
|
||||||
ListElement { section: "smileys"; glyph: "😡" }
|
ListElement { section: "Smileys"; glyph: "😭" }
|
||||||
ListElement { section: "smileys"; glyph: "😢" }
|
ListElement { section: "Smileys"; glyph: "😪" }
|
||||||
ListElement { section: "smileys"; glyph: "😣" }
|
ListElement { section: "Smileys"; glyph: "😥" }
|
||||||
ListElement { section: "smileys"; glyph: "😤" }
|
ListElement { section: "Smileys"; glyph: "😰" }
|
||||||
ListElement { section: "smileys"; glyph: "😥" }
|
ListElement { section: "Smileys"; glyph: "😅" }
|
||||||
ListElement { section: "smileys"; glyph: "😨" }
|
ListElement { section: "Smileys"; glyph: "😩" }
|
||||||
ListElement { section: "smileys"; glyph: "😩" }
|
ListElement { section: "Smileys"; glyph: "😫" }
|
||||||
ListElement { section: "smileys"; glyph: "😪" }
|
ListElement { section: "Smileys"; glyph: "😨" }
|
||||||
ListElement { section: "smileys"; glyph: "😫" }
|
ListElement { section: "Smileys"; glyph: "😱" }
|
||||||
ListElement { section: "smileys"; glyph: "😭" }
|
ListElement { section: "Smileys"; glyph: "😠" }
|
||||||
ListElement { section: "smileys"; glyph: "😰" }
|
ListElement { section: "Smileys"; glyph: "😡" }
|
||||||
ListElement { section: "smileys"; glyph: "😱" }
|
ListElement { section: "Smileys"; glyph: "😤" }
|
||||||
ListElement { section: "smileys"; glyph: "😲" }
|
ListElement { section: "Smileys"; glyph: "😖" }
|
||||||
ListElement { section: "smileys"; glyph: "😳" }
|
ListElement { section: "Smileys"; glyph: "😆" }
|
||||||
ListElement { section: "smileys"; glyph: "😵" }
|
ListElement { section: "Smileys"; glyph: "😋" }
|
||||||
ListElement { section: "smileys"; glyph: "😷" }
|
ListElement { section: "Smileys"; glyph: "😷" }
|
||||||
ListElement { section: "smileys"; glyph: "😸" }
|
ListElement { section: "Smileys"; glyph: "😎" }
|
||||||
ListElement { section: "smileys"; glyph: "😹" }
|
ListElement { section: "Smileys"; glyph: "😴" }
|
||||||
ListElement { section: "smileys"; glyph: "😺" }
|
ListElement { section: "Smileys"; glyph: "😵" }
|
||||||
ListElement { section: "smileys"; glyph: "😻" }
|
ListElement { section: "Smileys"; glyph: "😲" }
|
||||||
ListElement { section: "smileys"; glyph: "😼" }
|
ListElement { section: "Smileys"; glyph: "😟" }
|
||||||
ListElement { section: "smileys"; glyph: "😽" }
|
ListElement { section: "Smileys"; glyph: "😦" }
|
||||||
ListElement { section: "smileys"; glyph: "😾" }
|
ListElement { section: "Smileys"; glyph: "😧" }
|
||||||
ListElement { section: "smileys"; glyph: "😿" }
|
ListElement { section: "Smileys"; glyph: "😈" }
|
||||||
ListElement { section: "smileys"; glyph: "🙀" }
|
ListElement { section: "Smileys"; glyph: "👿" }
|
||||||
|
ListElement { section: "Smileys"; glyph: "😮" }
|
||||||
|
ListElement { section: "Smileys"; glyph: "😬" }
|
||||||
|
ListElement { section: "Smileys"; glyph: "😐" }
|
||||||
|
ListElement { section: "Smileys"; glyph: "😕" }
|
||||||
|
ListElement { section: "Smileys"; glyph: "😯" }
|
||||||
|
ListElement { section: "Smileys"; glyph: "😶" }
|
||||||
|
ListElement { section: "Smileys"; glyph: "😇" }
|
||||||
|
ListElement { section: "Smileys"; glyph: "😏" }
|
||||||
|
ListElement { section: "Smileys"; glyph: "😑" }
|
||||||
|
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙅" }
|
ListElement { section: "Cat Faces"; glyph: "😺" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙆" }
|
ListElement { section: "Cat Faces"; glyph: "😸" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙇" }
|
ListElement { section: "Cat Faces"; glyph: "😻" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙈" }
|
ListElement { section: "Cat Faces"; glyph: "😽" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙉" }
|
ListElement { section: "Cat Faces"; glyph: "😼" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙊" }
|
ListElement { section: "Cat Faces"; glyph: "🙀" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙋" }
|
ListElement { section: "Cat Faces"; glyph: "😿" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙍" }
|
ListElement { section: "Cat Faces"; glyph: "😹" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙎" }
|
ListElement { section: "Cat Faces"; glyph: "😾" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "👍" }
|
|
||||||
ListElement { section: "People and Fantasy"; glyph: "👎" }
|
ListElement { section: "Other Faces"; glyph: "👹" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙌" }
|
ListElement { section: "Other Faces"; glyph: "👺" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "✊" }
|
ListElement { section: "Other Faces"; glyph: "🙈" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "💪" }
|
ListElement { section: "Other Faces"; glyph: "🙉" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "👉" }
|
ListElement { section: "Other Faces"; glyph: "🙊" }
|
||||||
ListElement { section: "People and Fantasy"; glyph: "🙏" }
|
ListElement { section: "Other Faces"; glyph: "💀" }
|
||||||
|
ListElement { section: "Other Faces"; glyph: "👽" }
|
||||||
|
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "🔥" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "✨" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "🌟" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "💫" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "💥" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "💢" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "💦" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "💧" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "💤" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "💨" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👂" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👀" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👃" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👅" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👄" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👍" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👎" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👌" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👊" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "✊" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "✌" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👋" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "✋" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👐" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👆" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👇" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👉" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👈" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "🙌" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "🙏" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "☝" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "👏" }
|
||||||
|
ListElement { section: "Misc Emoji"; glyph: "💪" }
|
||||||
|
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐶" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐺" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐱" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐭" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐹" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐰" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐸" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐯" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐨" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐘" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐼" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐧" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐦" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐤" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐥" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐣" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐔" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐍" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐢" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐛" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐝" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐜" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐞" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐌" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐙" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐚" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐠" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐟" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐬" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐳" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐋" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐄" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐏" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐀" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐃" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐅" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐇" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐉" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐎" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐐" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐓" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐕" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐖" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐁" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐂" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐲" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐡" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐊" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐫" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐪" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐆" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐈" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐩" }
|
||||||
|
ListElement { section: "Animals Emoji"; glyph: "🐾" }
|
||||||
|
|
||||||
ListElement { section: "Transport and Map"; glyph: "🚀" }
|
ListElement { section: "Transport and Map"; glyph: "🚀" }
|
||||||
ListElement { section: "Transport and Map"; glyph: "🚃" }
|
ListElement { section: "Transport and Map"; glyph: "🚃" }
|
||||||
|
@ -137,6 +242,7 @@ Component {
|
||||||
ListElement { section: "Horoscope Signs"; glyph: "♒" }
|
ListElement { section: "Horoscope Signs"; glyph: "♒" }
|
||||||
ListElement { section: "Horoscope Signs"; glyph: "♓" }
|
ListElement { section: "Horoscope Signs"; glyph: "♓" }
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: BackgroundItem {
|
delegate: BackgroundItem {
|
||||||
width: gridView.cellWidth
|
width: gridView.cellWidth
|
||||||
height: gridView.cellHeight
|
height: gridView.cellHeight
|
||||||
|
@ -144,21 +250,21 @@ Component {
|
||||||
Label {
|
Label {
|
||||||
text: glyph
|
text: glyph
|
||||||
font.pixelSize: Theme.fontSizeLarge
|
font.pixelSize: Theme.fontSizeLarge
|
||||||
color: (highlighted ? Theme.secondaryHighlightColor : Theme.secondaryColor)
|
color: highlighted ? Theme.secondaryHighlightColor : Theme.secondaryColor
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var cursorPosition = toot.cursorPosition
|
var cursorPosition = toot.cursorPosition
|
||||||
toot.text = toot.text.substring(
|
toot.text = toot.text.substring(
|
||||||
0, cursorPosition) + model.glyph + toot.text.substring(
|
0, cursorPosition) + model.glyph + toot.text.substring(
|
||||||
cursorPosition)
|
cursorPosition)
|
||||||
toot.cursorPosition = cursorPosition + model.glyph.length
|
toot.cursorPosition = cursorPosition + model.glyph.length
|
||||||
emoticonsDialog.canAccept = true
|
emojiDialog.canAccept = true
|
||||||
emoticonsDialog.accept()
|
emojiDialog.accept()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
VerticalScrollDecorator { flickable: gridView }
|
||||||
VerticalScrollDecorator {flickable: listEmojis }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,9 @@ import Sailfish.Silica 1.0
|
||||||
DockedPanel {
|
DockedPanel {
|
||||||
id: root
|
id: root
|
||||||
dock: Dock.Top
|
dock: Dock.Top
|
||||||
width: parent.width
|
width: isPortrait ? parent.width : Theme.buttonWidthLarge * 1.5
|
||||||
height: content.height
|
height: content.height
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: content
|
id: content
|
||||||
|
|
|
@ -10,16 +10,14 @@ BackgroundItem {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: Theme.itemSizeMedium
|
height: Theme.itemSizeMedium
|
||||||
|
|
||||||
Rectangle {
|
Item {
|
||||||
id: avatar
|
id: avatar
|
||||||
color: "transparent"
|
|
||||||
width: Theme.itemSizeExtraSmall
|
width: Theme.itemSizeExtraSmall
|
||||||
height: width
|
height: width
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: Theme.horizontalPageMargin
|
anchors.leftMargin: Theme.horizontalPageMargin
|
||||||
|
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: img
|
id: img
|
||||||
opacity: status === Image.Ready ? 1.0 : 0.0
|
opacity: status === Image.Ready ? 1.0 : 0.0
|
||||||
|
@ -50,13 +48,14 @@ BackgroundItem {
|
||||||
"following_count": model.account_following_count,
|
"following_count": model.account_following_count,
|
||||||
"statuses_count": model.account_statuses_count,
|
"statuses_count": model.account_statuses_count,
|
||||||
"locked": model.account_locked,
|
"locked": model.account_locked,
|
||||||
"bot": model.account_bot
|
"bot": model.account_bot,
|
||||||
|
"group": model.account_group
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: userdescription
|
id: userDescription
|
||||||
height: account_acct.height + display_name.height
|
height: account_acct.height + display_name.height
|
||||||
anchors.left: avatar.right
|
anchors.left: avatar.right
|
||||||
anchors.leftMargin: Theme.paddingLarge
|
anchors.leftMargin: Theme.paddingLarge
|
||||||
|
@ -72,7 +71,6 @@ BackgroundItem {
|
||||||
truncationMode: TruncationMode.Fade
|
truncationMode: TruncationMode.Fade
|
||||||
width: parent.width - Theme.paddingMedium
|
width: parent.width - Theme.paddingMedium
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
|
|
@ -79,7 +79,7 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MyImage {
|
MyMedia {
|
||||||
id: placeholder1
|
id: placeholder1
|
||||||
width: 2
|
width: 2
|
||||||
height: 1
|
height: 1
|
||||||
|
@ -98,7 +98,7 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MyImage {
|
MyMedia {
|
||||||
id: placeholder2
|
id: placeholder2
|
||||||
width: 2
|
width: 2
|
||||||
height: 1
|
height: 1
|
||||||
|
@ -117,7 +117,7 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MyImage {
|
MyMedia {
|
||||||
id: placeholder3
|
id: placeholder3
|
||||||
width: 2
|
width: 2
|
||||||
height: 1
|
height: 1
|
||||||
|
@ -136,7 +136,7 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MyImage {
|
MyMedia {
|
||||||
id: placeholder4
|
id: placeholder4
|
||||||
width: 2
|
width: 2
|
||||||
height: 1
|
height: 1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import QtMultimedia 5.0
|
import QtMultimedia 5.6
|
||||||
|
|
||||||
|
|
||||||
FullscreenContentPage {
|
FullscreenContentPage {
|
||||||
|
@ -21,15 +21,17 @@ FullscreenContentPage {
|
||||||
} else {
|
} else {
|
||||||
video.source = mediaURL
|
video.source = mediaURL
|
||||||
video.fillMode = VideoOutput.PreserveAspectFit
|
video.fillMode = VideoOutput.PreserveAspectFit
|
||||||
video.play()
|
|
||||||
videoFlickable.visible = true
|
videoFlickable.visible = true
|
||||||
|
playerIcon.visible = true
|
||||||
|
playerProgress.visible = true
|
||||||
|
video.play()
|
||||||
|
hideTimer.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Flickable {
|
SilicaFlickable {
|
||||||
id: videoFlickable
|
id: videoFlickable
|
||||||
visible: false
|
visible: false
|
||||||
clip: true
|
|
||||||
contentWidth: imageContainer.width
|
contentWidth: imageContainer.width
|
||||||
contentHeight: imageContainer.height
|
contentHeight: imageContainer.height
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -84,49 +86,27 @@ FullscreenContentPage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onStopped: function() {
|
onStopped: function() {
|
||||||
if (type != 'video')
|
if (type == 'gifv') {
|
||||||
video.play()
|
video.play()
|
||||||
else
|
} else {
|
||||||
video.stop()
|
video.stop()
|
||||||
}
|
overlayIcons.active = true
|
||||||
|
hideTimer.stop()
|
||||||
IconButton {
|
|
||||||
id: playerIcon
|
|
||||||
icon.source: "image://theme/icon-m-play"
|
|
||||||
anchors {
|
|
||||||
left: parent.left
|
|
||||||
bottom: parent.bottom
|
|
||||||
leftMargin: Theme.horizontalPageMargin
|
|
||||||
bottomMargin: Theme.horizontalPageMargin
|
|
||||||
}
|
|
||||||
onClicked: function() {
|
|
||||||
if (video.playbackState === MediaPlayer.PlayingState)
|
|
||||||
video.pause()
|
|
||||||
else
|
|
||||||
video.play()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ProgressBar {
|
|
||||||
id: playerProgress
|
|
||||||
indeterminate: true
|
|
||||||
width: 400
|
|
||||||
anchors {
|
|
||||||
verticalCenter: playerIcon.verticalCenter
|
|
||||||
left: playerIcon.right
|
|
||||||
right: parent.right
|
|
||||||
rightMargin: Theme.horizontalPageMargin + Theme.iconSizeMedium
|
|
||||||
bottomMargin: Theme.horizontalPageMargin
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: function() {
|
onClicked: function() {
|
||||||
if (video.playbackState === MediaPlayer.PlayingState)
|
if (video.playbackState === MediaPlayer.PlayingState) {
|
||||||
video.pause()
|
video.pause()
|
||||||
else
|
overlayIcons.active = true
|
||||||
|
hideTimer.stop()
|
||||||
|
} else {
|
||||||
video.play()
|
video.play()
|
||||||
|
hideTimer.start()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,12 +135,11 @@ FullscreenContentPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Flickable {
|
SilicaFlickable {
|
||||||
id: imageFlickable
|
id: imageFlickable
|
||||||
visible: false
|
visible: false
|
||||||
contentWidth: imageContainer.width
|
contentWidth: imageContainer.width
|
||||||
contentHeight: imageContainer.height
|
contentHeight: imageContainer.height
|
||||||
clip: true
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onHeightChanged: if (imagePreview.status === Image.Ready) {
|
onHeightChanged: if (imagePreview.status === Image.Ready) {
|
||||||
imagePreview.fitToScreen()
|
imagePreview.fitToScreen()
|
||||||
|
@ -224,7 +203,6 @@ FullscreenContentPage {
|
||||||
property real minScale: 1.0
|
property real minScale: 1.0
|
||||||
property real maxScale: 3.0
|
property real maxScale: 3.0
|
||||||
|
|
||||||
opacity: 0.3
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
enabled: imagePreview.status === Image.Ready
|
enabled: imagePreview.status === Image.Ready
|
||||||
pinch.target: imagePreview
|
pinch.target: imagePreview
|
||||||
|
@ -250,6 +228,11 @@ FullscreenContentPage {
|
||||||
property: "scale"
|
property: "scale"
|
||||||
from: imagePreview.scale
|
from: imagePreview.scale
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: overlayIcons.active = !overlayIcons.active
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,32 +275,86 @@ FullscreenContentPage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: overlayIcons
|
||||||
|
|
||||||
|
property bool active: true
|
||||||
|
|
||||||
|
enabled: active
|
||||||
|
anchors.fill: parent
|
||||||
|
opacity: active ? 1.0 : 0.0
|
||||||
|
Behavior on opacity { FadeAnimator {}}
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
id: dismissBtn
|
y: Theme.paddingLarge
|
||||||
icon.source: "image://theme/icon-m-dismiss"
|
icon.source: "image://theme/icon-m-dismiss"
|
||||||
|
onClicked: pageStack.pop()
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
|
||||||
topMargin: Theme.horizontalPageMargin
|
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.horizontalPageMargin
|
rightMargin: Theme.horizontalPageMargin
|
||||||
}
|
}
|
||||||
onClicked: pageStack.pop()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
id: mediaDlBtn
|
id: mediaDlBtn
|
||||||
|
icon.source: "image://theme/icon-m-cloud-download"
|
||||||
anchors {
|
anchors {
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.horizontalPageMargin
|
rightMargin: Theme.horizontalPageMargin
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
bottomMargin: Theme.horizontalPageMargin
|
bottomMargin: Theme.horizontalPageMargin
|
||||||
}
|
}
|
||||||
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])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IconButton {
|
||||||
|
id: playerIcon
|
||||||
|
visible: false
|
||||||
|
icon.source: "image://theme/icon-m-play"
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
bottom: parent.bottom
|
||||||
|
leftMargin: Theme.horizontalPageMargin
|
||||||
|
bottomMargin: Theme.horizontalPageMargin
|
||||||
|
}
|
||||||
|
onClicked: function() {
|
||||||
|
if (video.playbackState === MediaPlayer.PlayingState) {
|
||||||
|
video.pause()
|
||||||
|
hideTimer.stop()
|
||||||
|
} else {
|
||||||
|
video.play()
|
||||||
|
hideTimer.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ProgressBar {
|
||||||
|
id: playerProgress
|
||||||
|
visible: false
|
||||||
|
indeterminate: true
|
||||||
|
width: 400
|
||||||
|
anchors {
|
||||||
|
verticalCenter: playerIcon.verticalCenter
|
||||||
|
left: playerIcon.right
|
||||||
|
right: parent.right
|
||||||
|
rightMargin: Theme.horizontalPageMargin + Theme.iconSizeMedium
|
||||||
|
bottomMargin: Theme.horizontalPageMargin
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
id: hideTimer
|
||||||
|
running: false
|
||||||
|
interval: 2000
|
||||||
|
onTriggered: {
|
||||||
|
overlayIcons.active = !overlayIcons.active
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
VerticalScrollDecorator { flickable: imageFlickable }
|
VerticalScrollDecorator { flickable: imageFlickable }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,9 +48,9 @@ Item {
|
||||||
width: parent.width - Theme.paddingMedium
|
width: parent.width - Theme.paddingMedium
|
||||||
truncationMode: TruncationMode.Fade
|
truncationMode: TruncationMode.Fade
|
||||||
anchors {
|
anchors {
|
||||||
|
top: lblName.bottom
|
||||||
left: parent.left
|
left: parent.left
|
||||||
leftMargin: Theme.paddingMedium
|
leftMargin: Theme.paddingMedium
|
||||||
top: lblName.bottom
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ import Sailfish.Silica 1.0
|
||||||
Item {
|
Item {
|
||||||
id: miniStatus
|
id: miniStatus
|
||||||
visible: true
|
visible: true
|
||||||
height: icon.height+Theme.paddingMedium
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
height: icon.height+Theme.paddingMedium
|
||||||
|
|
||||||
Icon {
|
Icon {
|
||||||
id: icon
|
id: icon
|
||||||
|
@ -18,9 +18,9 @@ Item {
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
topMargin: Theme.paddingMedium
|
topMargin: Theme.paddingMedium
|
||||||
bottomMargin: Theme.paddingMedium
|
|
||||||
left: parent.left
|
left: parent.left
|
||||||
leftMargin: Theme.horizontalPageMargin + Theme.iconSizeMedium - width
|
leftMargin: Theme.horizontalPageMargin + Theme.iconSizeMedium - width
|
||||||
|
bottomMargin: Theme.paddingMedium
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,6 @@ SilicaListView {
|
||||||
|
|
||||||
property string type
|
property string type
|
||||||
property string title
|
property string title
|
||||||
property string vwPlaceholderText: qsTr("Loading")
|
|
||||||
property string vwPlaceholderHint: qsTr("please wait...")
|
|
||||||
property string description
|
property string description
|
||||||
property ListModel mdl: []
|
property ListModel mdl: []
|
||||||
property variant params: []
|
property variant params: []
|
||||||
|
@ -29,7 +27,6 @@ SilicaListView {
|
||||||
onNotify: {
|
onNotify: {
|
||||||
console.log(what + " - " + num)
|
console.log(what + " - " + num)
|
||||||
}
|
}
|
||||||
|
|
||||||
signal openDrawer (bool setDrawer)
|
signal openDrawer (bool setDrawer)
|
||||||
onOpenDrawer: {
|
onOpenDrawer: {
|
||||||
//console.log("Open drawer: " + setDrawer)
|
//console.log("Open drawer: " + setDrawer)
|
||||||
|
@ -39,28 +36,41 @@ SilicaListView {
|
||||||
console.log("LIST send signal emitted with notice: " + notice)
|
console.log("LIST send signal emitted with notice: " + notice)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
header: PageHeader {
|
header: PageHeader {
|
||||||
title: myList.title
|
title: myList.title
|
||||||
description: myList.description
|
description: myList.description
|
||||||
}
|
}
|
||||||
|
|
||||||
BusyIndicator {
|
BusyLabel {
|
||||||
size: BusyIndicatorSize.Large
|
id: myListBusyLabel
|
||||||
running: myList.model.count === 0 && !viewPlaceHolder.visible
|
running: model.count === 0
|
||||||
anchors.centerIn: parent
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
interval: 5000
|
||||||
|
running: true
|
||||||
|
onTriggered: {
|
||||||
|
myListBusyLabel.visible = false
|
||||||
|
loadStatusPlaceholder.visible = true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ViewPlaceholder {
|
ViewPlaceholder {
|
||||||
id: viewPlaceHolder
|
id: loadStatusPlaceholder
|
||||||
|
visible: false
|
||||||
enabled: model.count === 0
|
enabled: model.count === 0
|
||||||
text: vwPlaceholderText
|
text: qsTr("Nothing found")
|
||||||
hintText: vwPlaceholderHint
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PullDownMenu {
|
PullDownMenu {
|
||||||
|
id: mainPulleyMenu
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: qsTr("Settings")
|
text: qsTr("Settings")
|
||||||
|
visible: !profilePage
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("../SettingsPage.qml"), {})
|
pageStack.push(Qt.resolvedUrl("../SettingsPage.qml"), {})
|
||||||
}
|
}
|
||||||
|
@ -68,6 +78,7 @@ SilicaListView {
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: qsTr("New Toot")
|
text: qsTr("New Toot")
|
||||||
|
visible: !profilePage
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
||||||
headerTitle: qsTr("New Toot"),
|
headerTitle: qsTr("New Toot"),
|
||||||
|
@ -77,7 +88,15 @@ SilicaListView {
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: qsTr("Load more")
|
text: qsTr("Open in Browser")
|
||||||
|
visible: !mainPage
|
||||||
|
onClicked: {
|
||||||
|
Qt.openUrlExternally(url)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("Reload")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
loadData("prepend")
|
loadData("prepend")
|
||||||
}
|
}
|
||||||
|
@ -116,10 +135,13 @@ SilicaListView {
|
||||||
}
|
}
|
||||||
|
|
||||||
BusyIndicator {
|
BusyIndicator {
|
||||||
|
running: loadStarted
|
||||||
|
visible: myListBusyLabel.running ? false : true
|
||||||
size: BusyIndicatorSize.Small
|
size: BusyIndicatorSize.Small
|
||||||
running: loadStarted;
|
anchors {
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,10 +185,10 @@ 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})
|
||||||
}
|
}
|
||||||
|
@ -180,7 +202,8 @@ SilicaListView {
|
||||||
'model' : model,
|
'model' : model,
|
||||||
'mode' : mode,
|
'mode' : mode,
|
||||||
'conf' : Logic.conf
|
'conf' : Logic.conf
|
||||||
};
|
}
|
||||||
|
|
||||||
console.log(JSON.stringify(msg))
|
console.log(JSON.stringify(msg))
|
||||||
if (type !== "")
|
if (type !== "")
|
||||||
worker.sendMessage(msg)
|
worker.sendMessage(msg)
|
||||||
|
|
|
@ -4,20 +4,39 @@ import QtMultimedia 5.0
|
||||||
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: myImage
|
id: myMedia
|
||||||
|
|
||||||
property string type : ""
|
property string type : ""
|
||||||
property string previewURL: ""
|
property string previewURL: ""
|
||||||
property string mediaURL: ""
|
property string mediaURL: ""
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
opacity: 0.2
|
opacity: 0.4
|
||||||
color: Theme.highlightDimmerColor
|
color: Theme.highlightDimmerColor
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
source: "image://theme/icon-m-image"
|
visible: type == 'image'
|
||||||
|
opacity: img.status === Image.Ready ? 0.0 : 1.0
|
||||||
|
Behavior on opacity { FadeAnimator {} }
|
||||||
|
source: "image://theme/icon-m-image?"
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
visible: type == 'video' || type == "gifv"
|
||||||
|
opacity: img.status === Image.Ready ? 0.0 : 1.0
|
||||||
|
Behavior on opacity { FadeAnimator {} }
|
||||||
|
source: "image://theme/icon-m-file-video?"
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
visible: type == 'audio'
|
||||||
|
//opacity: img.status === Image.Ready ? 0.0 : 1.0
|
||||||
|
Behavior on opacity { FadeAnimator {} }
|
||||||
|
source: "image://theme/icon-m-file-audio?"
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +50,7 @@ Item {
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: img
|
id: img
|
||||||
|
visible: type != 'audio'
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
opacity: status === Image.Ready ? 1.0 : 0.0
|
opacity: status === Image.Ready ? 1.0 : 0.0
|
||||||
Behavior on opacity { FadeAnimator {} }
|
Behavior on opacity { FadeAnimator {} }
|
||||||
|
@ -59,30 +79,31 @@ Item {
|
||||||
Image {
|
Image {
|
||||||
id: videoIcon
|
id: videoIcon
|
||||||
visible: type === "video" || type === "gifv"
|
visible: type === "video" || type === "gifv"
|
||||||
source: "image://theme/icon-l-play"
|
source: "image://theme/icon-l-play?"
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
BusyIndicator {
|
BusyIndicator {
|
||||||
id: mediaLoader
|
id: mediaLoader
|
||||||
|
visible: type != 'audio'
|
||||||
size: BusyIndicatorSize.Large
|
size: BusyIndicatorSize.Large
|
||||||
running: img.status !== Image.Ready
|
running: img.status !== Image.Ready
|
||||||
opacity: img.status === Image.Ready ? 0.0 : 1.0
|
opacity: img.status === Image.Ready ? 0.0 : 1.0
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors {
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: mediaWarning
|
id: mediaWarning
|
||||||
color: Theme.highlightDimmerColor
|
color: Theme.highlightDimmerColor
|
||||||
visible: typeof status_sensitive != 'undefined' && status_sensitive ? true : false
|
visible: typeof status_sensitive != "undefined" && status_sensitive ? true : false
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
source: "image://theme/icon-l-attention?"+Theme.highlightColor
|
source: "image://theme/icon-l-attention?"+Theme.highlightColor
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
anchors.fill: parent
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: parent.visible = false
|
onClicked: parent.visible = false
|
|
@ -17,7 +17,7 @@ SilicaGridView {
|
||||||
ListModel {
|
ListModel {
|
||||||
id: listModel
|
id: listModel
|
||||||
ListElement {
|
ListElement {
|
||||||
icon: "image://theme/icon-m-home"
|
icon: "image://theme/icon-m-home?"
|
||||||
slug: "home"
|
slug: "home"
|
||||||
name: "Home"
|
name: "Home"
|
||||||
active: true
|
active: true
|
||||||
|
@ -25,14 +25,14 @@ SilicaGridView {
|
||||||
}
|
}
|
||||||
|
|
||||||
ListElement {
|
ListElement {
|
||||||
icon: "image://theme/icon-m-alarm"
|
icon: "image://theme/icon-m-alarm?"
|
||||||
slug: "notifications"
|
slug: "notifications"
|
||||||
name: "Notifications"
|
name: "Notifications"
|
||||||
active: false
|
active: false
|
||||||
}
|
}
|
||||||
|
|
||||||
ListElement {
|
ListElement {
|
||||||
icon: "image://theme/icon-m-whereami"
|
icon: "image://theme/icon-m-whereami?"
|
||||||
slug: "local"
|
slug: "local"
|
||||||
name: "Local"
|
name: "Local"
|
||||||
active: false
|
active: false
|
||||||
|
@ -40,7 +40,7 @@ SilicaGridView {
|
||||||
}
|
}
|
||||||
|
|
||||||
ListElement {
|
ListElement {
|
||||||
icon: "image://theme/icon-m-website"
|
icon: "image://theme/icon-m-website?"
|
||||||
slug: "federated"
|
slug: "federated"
|
||||||
name: "Federated"
|
name: "Federated"
|
||||||
active: false
|
active: false
|
||||||
|
@ -48,7 +48,7 @@ SilicaGridView {
|
||||||
}
|
}
|
||||||
|
|
||||||
ListElement {
|
ListElement {
|
||||||
icon: "image://theme/icon-m-search"
|
icon: "image://theme/icon-m-search?"
|
||||||
slug: "search"
|
slug: "search"
|
||||||
name: "Search"
|
name: "Search"
|
||||||
active: false
|
active: false
|
||||||
|
@ -100,54 +100,19 @@ SilicaGridView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
OpacityRampEffect {
|
|
||||||
sourceItem: label
|
|
||||||
offset: 0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
ColorOverlay {
|
|
||||||
source: image
|
|
||||||
color: (highlighted ? Theme.highlightColor : (model.active ? Theme.primaryColor : Theme.secondaryHighlightColor))
|
|
||||||
anchors.fill: image
|
|
||||||
}
|
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: image
|
id: image
|
||||||
visible: false
|
visible: false
|
||||||
source: model.icon // +'?'+ (highlighted ? Theme.highlightColor : (model.active ? Theme.primaryColor : Theme.secondaryHighlightColor))
|
source: model.icon
|
||||||
sourceSize.width: Theme.iconSizeMedium
|
sourceSize.width: Theme.iconSizeMedium
|
||||||
sourceSize.height: Theme.iconSizeMedium
|
sourceSize.height: Theme.iconSizeMedium
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
ColorOverlay {
|
||||||
visible: false
|
source: image
|
||||||
text: model.name
|
color: (highlighted ? Theme.highlightColor : (model.active ? Theme.secondaryHighlightColor : Theme.primaryColor))
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall/2
|
anchors.fill: image
|
||||||
color: (highlighted
|
|
||||||
? Theme.highlightColor
|
|
||||||
: (model.active ? Theme.primaryColor : Theme.secondaryHighlightColor))
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
anchors {
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
bottom: parent.bottom
|
|
||||||
bottomMargin: Theme.paddingSmall
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
id: label
|
|
||||||
visible: false
|
|
||||||
color: (highlighted ? Theme.highlightColor : Theme.secondaryHighlightColor)
|
|
||||||
text: {
|
|
||||||
return model.name.toUpperCase();
|
|
||||||
}
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
|
||||||
font.family: Theme.fontFamilyHeading
|
|
||||||
width: parent.width
|
|
||||||
horizontalAlignment : Text.AlignHCenter
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
|
@ -12,14 +12,14 @@ Item {
|
||||||
property string bg: ""
|
property string bg: ""
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: avatarImage.height + Theme.paddingLarge*3 + infoLbl.height
|
height: isPortrait ? (avatarImage.height + Theme.paddingLarge*3 + infoLbl.height) : (avatarImage.height + Theme.paddingLarge*2.5 + infoLbl.height)
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: bgImage
|
id: bgImage
|
||||||
opacity: 0.2
|
opacity: 0.7
|
||||||
gradient: Gradient {
|
gradient: Gradient {
|
||||||
GradientStop { position: 0.0; color: Theme.highlightBackgroundColor }
|
GradientStop { position: 0.0; color: Theme.highlightDimmerColor }
|
||||||
GradientStop { position: 1.0; color: Theme.highlightBackgroundColor }
|
GradientStop { position: 2.0; color: Theme.highlightBackgroundColor }
|
||||||
}
|
}
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@ Item {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
fillMode: Image.PreserveAspectCrop
|
fillMode: Image.PreserveAspectCrop
|
||||||
source: bg
|
source: bg
|
||||||
|
opacity: 0.6
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,11 +36,9 @@ Item {
|
||||||
id: avatarImage
|
id: avatarImage
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
source: if (avatarImage.status === Image.Error)
|
source: if (avatarImage.status === Image.Error)
|
||||||
source = "../../images/icon-l-profile.svg?" + (pressed
|
source = "../../images/icon-l-profile.svg?" + Theme.primaryColor
|
||||||
? Theme.highlightColor
|
|
||||||
: Theme.primaryColor)
|
|
||||||
else image
|
else image
|
||||||
width: Theme.iconSizeLarge
|
width: isPortrait ? Theme.iconSizeLarge : Theme.iconSizeExtraLarge
|
||||||
height: width
|
height: width
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -96,7 +95,7 @@ Item {
|
||||||
color: Theme.secondaryHighlightColor
|
color: Theme.secondaryHighlightColor
|
||||||
truncationMode: TruncationMode.Fade
|
truncationMode: TruncationMode.Fade
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: description === "" ? 0 : contentHeight
|
height: contentHeight
|
||||||
horizontalAlignment: Text.AlignRight
|
horizontalAlignment: Text.AlignRight
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,7 +107,7 @@ Item {
|
||||||
height: followed_by || locked || bot || group ? Theme.iconSizeSmall + Theme.paddingSmall : 0
|
height: followed_by || locked || bot || group ? Theme.iconSizeSmall + Theme.paddingSmall : 0
|
||||||
anchors {
|
anchors {
|
||||||
top: avatarImage.bottom
|
top: avatarImage.bottom
|
||||||
topMargin: Theme.paddingMedium
|
topMargin: isPortrait ? Theme.paddingMedium : 0
|
||||||
left: parent.left
|
left: parent.left
|
||||||
leftMargin: Theme.horizontalPageMargin
|
leftMargin: Theme.horizontalPageMargin
|
||||||
right: parent.right
|
right: parent.right
|
||||||
|
@ -183,8 +182,10 @@ Item {
|
||||||
text: qsTr("Bot")
|
text: qsTr("Bot")
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors {
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,12 +16,12 @@ FullscreenContentPage {
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
icon.source: "image://theme/icon-m-dismiss"
|
icon.source: "image://theme/icon-m-dismiss"
|
||||||
|
onClicked: pageStack.pop()
|
||||||
anchors {
|
anchors {
|
||||||
top: profileImage.top
|
top: profileImage.top
|
||||||
topMargin: Theme.horizontalPageMargin
|
topMargin: Theme.horizontalPageMargin
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.horizontalPageMargin
|
rightMargin: Theme.horizontalPageMargin
|
||||||
}
|
}
|
||||||
onClicked: pageStack.pop()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@ BackgroundItem {
|
||||||
signal send (string notice)
|
signal send (string notice)
|
||||||
signal navigateTo(string link)
|
signal navigateTo(string link)
|
||||||
|
|
||||||
width: parent.width
|
|
||||||
height: if (myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
height: if (myList.type === "notifications" && ( model.type === "favourite" || model.type === "reblog" )) {
|
||||||
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)
|
||||||
|
@ -19,7 +18,7 @@ BackgroundItem {
|
||||||
id: bgDirect
|
id: bgDirect
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
visible: status_visibility === "direct"
|
visible: model.status_visibility === "direct"
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: parent.height
|
height: parent.height
|
||||||
opacity: 0.3
|
opacity: 0.3
|
||||||
|
@ -43,7 +42,6 @@ BackgroundItem {
|
||||||
// Account avatar
|
// Account avatar
|
||||||
Image {
|
Image {
|
||||||
id: avatar
|
id: avatar
|
||||||
visible: true
|
|
||||||
opacity: status === Image.Ready ? 1.0 : 0.0
|
opacity: status === Image.Ready ? 1.0 : 0.0
|
||||||
Behavior on opacity { FadeAnimator {} }
|
Behavior on opacity { FadeAnimator {} }
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
|
@ -59,9 +57,7 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
onStatusChanged: {
|
onStatusChanged: {
|
||||||
if (avatar.status === Image.Error)
|
if (avatar.status === Image.Error)
|
||||||
source = "../../images/icon-m-profile.svg?" + (pressed
|
source = "../../images/icon-m-profile.svg?" + Theme.primaryColor
|
||||||
? Theme.highlightColor
|
|
||||||
: Theme.primaryColor)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
|
@ -98,7 +94,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: "image://theme/icon-m-mail?" + Theme.primaryColor
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
anchors {
|
anchors {
|
||||||
horizontalCenter: avatar.horizontalCenter
|
horizontalCenter: avatar.horizontalCenter
|
||||||
|
@ -192,7 +188,7 @@ BackgroundItem {
|
||||||
left: miniHeader.left
|
left: miniHeader.left
|
||||||
leftMargin: Theme.paddingMedium
|
leftMargin: Theme.paddingMedium
|
||||||
right: miniHeader.right
|
right: miniHeader.right
|
||||||
rightMargin: Theme.horizontalPageMargin
|
rightMargin: Theme.horizontalPageMargin + Theme.paddingMedium
|
||||||
top: miniHeader.bottom
|
top: miniHeader.bottom
|
||||||
topMargin: Theme.paddingSmall
|
topMargin: Theme.paddingSmall
|
||||||
bottomMargin: Theme.paddingLarge
|
bottomMargin: Theme.paddingLarge
|
||||||
|
@ -202,7 +198,6 @@ BackgroundItem {
|
||||||
console.log(link)
|
console.log(link)
|
||||||
console.log(JSON.stringify(test))
|
console.log(JSON.stringify(test))
|
||||||
console.log(JSON.stringify(test.length))
|
console.log(JSON.stringify(test.length))
|
||||||
|
|
||||||
if (test.length === 5 && (test[3] === "tags" || test[3] === "tag") ) {
|
if (test.length === 5 && (test[3] === "tags" || test[3] === "tag") ) {
|
||||||
pageStack.pop(pageStack.find(function(page) {
|
pageStack.pop(pageStack.find(function(page) {
|
||||||
var check = page.isFirstPage === true;
|
var check = page.isFirstPage === true;
|
||||||
|
@ -255,21 +250,20 @@ BackgroundItem {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: parent.visible = false
|
onClicked: parent.visible = false
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Displays media in Toots
|
// Displays media in Toots
|
||||||
MediaBlock {
|
MediaBlock {
|
||||||
id: media
|
id: media
|
||||||
visible: if (myList.type === "notifications" && ( type === "favourite" || type === "reblog" )) {
|
visible: (myList.type === "notifications" && ( type === "favourite" || type === "reblog" )) ? false : true
|
||||||
false
|
|
||||||
} 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: lblContent.left
|
||||||
|
leftMargin: isPortrait ? 0 : Theme.itemSizeSmall
|
||||||
right: lblContent.right
|
right: lblContent.right
|
||||||
|
rightMargin: isPortrait ? 0 : Theme.itemSizeLarge * 1.2
|
||||||
top: lblContent.bottom
|
top: lblContent.bottom
|
||||||
topMargin: Theme.paddingMedium
|
topMargin: Theme.paddingMedium
|
||||||
bottomMargin: Theme.paddingLarge
|
bottomMargin: Theme.paddingLarge
|
||||||
|
@ -283,7 +277,7 @@ BackgroundItem {
|
||||||
MenuItem {
|
MenuItem {
|
||||||
id: mnuBoost
|
id: mnuBoost
|
||||||
visible: model.type !== "follow"
|
visible: model.type !== "follow"
|
||||||
enabled: status_visibility !== "direct"
|
enabled: model.status_visibility !== "direct"
|
||||||
text: typeof model.status_reblogged !== "undefined" && model.status_reblogged ? qsTr("Unboost") : qsTr("Boost")
|
text: typeof model.status_reblogged !== "undefined" && model.status_reblogged ? qsTr("Unboost") : qsTr("Boost")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var status = typeof model.status_reblogged !== "undefined" && model.status_reblogged
|
var status = typeof model.status_reblogged !== "undefined" && model.status_reblogged
|
||||||
|
@ -301,7 +295,7 @@ BackgroundItem {
|
||||||
Icon {
|
Icon {
|
||||||
id: icRT
|
id: icRT
|
||||||
source: "image://theme/icon-s-retweet?" + (!model.status_reblogged ? Theme.highlightColor : Theme.primaryColor)
|
source: "image://theme/icon-s-retweet?" + (!model.status_reblogged ? Theme.highlightColor : Theme.primaryColor)
|
||||||
width: Theme.iconSizeExtraSmall
|
width: Theme.iconSizeSmall
|
||||||
height: width
|
height: width
|
||||||
anchors {
|
anchors {
|
||||||
leftMargin: Theme.horizontalPageMargin
|
leftMargin: Theme.horizontalPageMargin
|
||||||
|
@ -311,8 +305,8 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: status_reblogs_count // from API.js
|
text: status_reblogs_count
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: !model.status_reblogged ? Theme.highlightColor : Theme.primaryColor
|
color: !model.status_reblogged ? Theme.highlightColor : Theme.primaryColor
|
||||||
anchors {
|
anchors {
|
||||||
left: icRT.right
|
left: icRT.right
|
||||||
|
@ -342,18 +336,18 @@ BackgroundItem {
|
||||||
Icon {
|
Icon {
|
||||||
id: icFA
|
id: icFA
|
||||||
source: "image://theme/icon-s-favorite?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
|
source: "image://theme/icon-s-favorite?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
|
||||||
width: Theme.iconSizeExtraSmall
|
width: Theme.iconSizeSmall
|
||||||
height: width
|
height: width
|
||||||
anchors {
|
anchors {
|
||||||
leftMargin: Theme.horizontalPageMargin
|
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
leftMargin: Theme.horizontalPageMargin
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: status_favourites_count
|
text: status_favourites_count
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: !model.status_favourited ? Theme.highlightColor : Theme.primaryColor
|
color: !model.status_favourited ? Theme.highlightColor : Theme.primaryColor
|
||||||
anchors {
|
anchors {
|
||||||
left: icFA.right
|
left: icFA.right
|
||||||
|
@ -383,7 +377,7 @@ BackgroundItem {
|
||||||
id: icBM
|
id: icBM
|
||||||
source: "../../images/icon-s-bookmark.svg?"
|
source: "../../images/icon-s-bookmark.svg?"
|
||||||
color: !model.status_bookmarked ? Theme.highlightColor : Theme.primaryColor
|
color: !model.status_bookmarked ? Theme.highlightColor : Theme.primaryColor
|
||||||
width: Theme.iconSizeExtraSmall
|
width: Theme.iconSizeSmall
|
||||||
height: width
|
height: width
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -393,7 +387,6 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
id: mnuMention
|
id: mnuMention
|
||||||
visible: model.type === "follow"
|
visible: model.type === "follow"
|
||||||
|
@ -409,7 +402,7 @@ BackgroundItem {
|
||||||
Icon {
|
Icon {
|
||||||
id: icMT
|
id: icMT
|
||||||
source: "image://theme/icon-s-chat?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
|
source: "image://theme/icon-s-chat?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
|
||||||
width: Theme.iconSizeExtraSmall
|
width: Theme.iconSizeSmall
|
||||||
height: width
|
height: width
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -420,21 +413,39 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open ConversationPage and show other Toots in thread (if available)
|
// Open ConversationPage and show other Toots in thread (if available) or ProfilePage if new Follower
|
||||||
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))
|
||||||
|
|
||||||
|
if (model.type !== "follow") {
|
||||||
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
||||||
headerTitle: qsTr("Conversation"),
|
headerTitle: qsTr("Conversation"),
|
||||||
"toot_id": status_id,
|
"status_id": status_id,
|
||||||
"toot_url": status_url,
|
"status_url": status_url,
|
||||||
"toot_uri": status_uri,
|
"status_uri": status_uri,
|
||||||
"description": '@'+account_acct,
|
"username": '@'+account_acct,
|
||||||
mdl: m,
|
mdl: m,
|
||||||
type: "reply"
|
type: "reply"
|
||||||
})
|
})
|
||||||
|
} else pageStack.push(Qt.resolvedUrl("../ProfilePage.qml"), {
|
||||||
|
"display_name": model.account_display_name,
|
||||||
|
"username": model.account_acct,
|
||||||
|
"user_id": model.account_id,
|
||||||
|
"profileImage": model.account_avatar,
|
||||||
|
"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
|
||||||
|
} )
|
||||||
}
|
}
|
||||||
|
|
||||||
onPressAndHold: {
|
onPressAndHold: {
|
||||||
console.log(JSON.stringify(mdl.get(index)))
|
console.log(JSON.stringify(mdl.get(index)))
|
||||||
mnu.open(delegate)
|
mnu.open(delegate)
|
||||||
|
|
|
@ -25,7 +25,10 @@ BuildRequires: pkgconfig(sailfishapp) >= 1.0.2
|
||||||
BuildRequires: pkgconfig(Qt5Core)
|
BuildRequires: pkgconfig(Qt5Core)
|
||||||
BuildRequires: pkgconfig(Qt5Qml)
|
BuildRequires: pkgconfig(Qt5Qml)
|
||||||
BuildRequires: pkgconfig(Qt5Quick)
|
BuildRequires: pkgconfig(Qt5Quick)
|
||||||
|
BuildRequires: pkgconfig(Qt5DBus)
|
||||||
|
BuildRequires: pkgconfig(Qt5Multimedia)
|
||||||
BuildRequires: pkgconfig(nemonotifications-qt5)
|
BuildRequires: pkgconfig(nemonotifications-qt5)
|
||||||
|
BuildRequires: pkgconfig(openssl)
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
|
|
||||||
%description
|
%description
|
||||||
|
|
|
@ -25,12 +25,14 @@ PkgConfigBR:
|
||||||
- Qt5Core
|
- Qt5Core
|
||||||
- Qt5Qml
|
- Qt5Qml
|
||||||
- Qt5Quick
|
- Qt5Quick
|
||||||
|
- Qt5DBus
|
||||||
|
- Qt5Multimedia
|
||||||
- nemonotifications-qt5
|
- nemonotifications-qt5
|
||||||
|
- openssl
|
||||||
|
|
||||||
# Build dependencies without a pkgconfig setup can be listed here
|
# Build dependencies without a pkgconfig setup can be listed here
|
||||||
# PkgBR:
|
# PkgBR:
|
||||||
# - package-needed-to-build
|
# - qt5-qtmultimedia-plugin-mediaservice-gstmediaplayer
|
||||||
|
|
||||||
# Runtime dependencies which are not automatically detected
|
# Runtime dependencies which are not automatically detected
|
||||||
Requires:
|
Requires:
|
||||||
|
|
|
@ -24,7 +24,7 @@ class FileDownloader : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit FileDownloader(QQmlEngine *engine, QObject *parent = 0);
|
explicit FileDownloader(QQmlEngine *engine, QObject *parent = nullptr);
|
||||||
Q_INVOKABLE void downloadFile(QUrl url, QString filename);
|
Q_INVOKABLE void downloadFile(QUrl url, QString filename);
|
||||||
Q_INVOKABLE void open(QString filename);
|
Q_INVOKABLE void open(QString filename);
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
#include <QtCore/QFile>
|
#include <QtCore/QFile>
|
||||||
#include <QtCore/QFileInfo>
|
#include <QtCore/QFileInfo>
|
||||||
|
|
||||||
//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(nullptr), m_reply(nullptr) {
|
ImageUploader::ImageUploader(QObject *parent) : QObject(parent), m_networkAccessManager(nullptr), m_reply(nullptr) {
|
||||||
|
@ -101,12 +100,8 @@ void ImageUploader::upload() {
|
||||||
|
|
||||||
//imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant(fileInfo));
|
//imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant(fileInfo));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//POST data
|
//POST data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QNetworkRequest request(m_uploadUrl);
|
QNetworkRequest request(m_uploadUrl);
|
||||||
request.setRawHeader("Authorization", m_authorizationHeader);
|
request.setRawHeader("Authorization", m_authorizationHeader);
|
||||||
m_reply = m_networkAccessManager->post(request, multiPart);
|
m_reply = m_networkAccessManager->post(request, multiPart);
|
||||||
|
@ -114,8 +109,6 @@ void ImageUploader::upload() {
|
||||||
connect(m_reply, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(uploadProgress(qint64,qint64)));
|
connect(m_reply, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(uploadProgress(qint64,qint64)));
|
||||||
connect(m_reply, SIGNAL(finished()), this, SLOT(replyFinished()));
|
connect(m_reply, SIGNAL(finished()), this, SLOT(replyFinished()));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//connect(m_reply, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(uploadProgress(qint64,qint64)));
|
//connect(m_reply, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(uploadProgress(qint64,qint64)));
|
||||||
//connect(m_reply, SIGNAL(finished()), this, SLOT(replyFinished()));*/
|
//connect(m_reply, SIGNAL(finished()), this, SLOT(replyFinished()));*/
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ class ImageUploader : public QObject
|
||||||
Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged)
|
Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ImageUploader(QObject *parent = 0);
|
explicit ImageUploader(QObject *parent = nullptr);
|
||||||
~ImageUploader();
|
~ImageUploader();
|
||||||
|
|
||||||
Q_INVOKABLE void setFile(const QString &fileName);
|
Q_INVOKABLE void setFile(const QString &fileName);
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation>Inhaltswarnung</translation>
|
<translation>Inhaltswarnung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation>Was gibt's Neues?</translation>
|
<translation>Was gibt's Neues?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Löschen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation>Öffentlich</translation>
|
<translation>Öffentlich</translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation>Antwort verbergen</translation>
|
<translation>Antwort verbergen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Im Browser öffnen</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Benachrichtigungen</translation>
|
<translation>Benachrichtigungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Neuer Toot</translation>
|
<translation>Lokal</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Föderiert</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@Benutzer oder #Ausdruck</translation>
|
<translation>@Benutzer oder #Ausdruck</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Lokal</translation>
|
<translation>Neuer Toot</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Föderation</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Lade mehr</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Einstellungen</translation>
|
<translation>Einstellungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Wird geladen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>bitte warten...</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Neuer Toot</translation>
|
<translation>Neuer Toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Neu laden</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Im Browser öffnen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation>Nichts gefunden</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Beiträge</translation>
|
<translation>Beiträge</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation>Erwähnen</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Blockieren</translation>
|
<translation>Blockieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation>Im Browser öffnen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation>Erwähnen</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Διαγραφή</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -114,7 +116,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Reload</source>
|
<source>Reload</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">Επαναφόρτωση</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Ειδοποιήσεις</translation>
|
<translation>Ειδοποιήσεις</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Νέος</translation>
|
<translation>Τοπικός</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@χρήστη ή #όρος</translation>
|
<translation>@χρήστη ή #όρος</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Τοπικός</translation>
|
<translation>Νέος</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,25 +174,25 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Φόρτωση περισσοτέρων</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Ρυθμίσεις</translation>
|
<translation>Ρυθμίσεις</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Loading</source>
|
<source>New Toot</source>
|
||||||
<translation>Φόρτωση</translation>
|
<translation>Νέος</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>please wait...</source>
|
<source>Reload</source>
|
||||||
|
<translation>Φόρτωση περισσοτέρων</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Nothing found</source>
|
||||||
<translation>Νέος</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Κατάσταση</translation>
|
<translation>Κατάσταση</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation>Φραγή</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Φραγή</translation>
|
<translation>Φραγή</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
@ -379,7 +377,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">Φραγή</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Conversation</source>
|
<source>Conversation</source>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation>Escribe aquí tu advertencia</translation>
|
<translation>Escribe aquí tu advertencia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation>¿En qué estás pensando?</translation>
|
<translation>¿En qué estás pensando?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Borrar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation>Público</translation>
|
<translation>Público</translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation>Cerrar respuesta</translation>
|
<translation>Cerrar respuesta</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Abrir en el navegador</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Notificaciones</translation>
|
<translation>Notificaciones</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Nuevo toot</translation>
|
<translation>Local</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Federada</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@usuario o #término</translation>
|
<translation>@usuario o #término</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Local</translation>
|
<translation>Nuevo toot</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Federada</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Cargar más</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Ajustes</translation>
|
<translation>Ajustes</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Cargando</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>por favor, espera...</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Nuevo toot</translation>
|
<translation>Nuevo toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Volver a cargar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Abrir en el navegador</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation>No encontrado nada</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Estados</translation>
|
<translation>Estados</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation>Mencionar</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Bloquear</translation>
|
<translation>Bloquear</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation>Abrir en el navegador</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation>Mencionar</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation>Rédigez votre alerte ici</translation>
|
<translation>Rédigez votre alerte ici</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation>Qu'avez-vous en tête?</translation>
|
<translation>Qu'avez-vous en tête?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Supprimer</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation>Public</translation>
|
<translation>Public</translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation>Masquer la réponse</translation>
|
<translation>Masquer la réponse</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Ouvrir dans le navigateur</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Notifications</translation>
|
<translation>Notifications</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Nouveau pouet</translation>
|
<translation>Fil public local</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Fil public global</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@personne ou #terme</translation>
|
<translation>@personne ou #terme</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Fil public local</translation>
|
<translation>Nouveau pouet</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Fil public global</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Charger plus</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Paramètres</translation>
|
<translation>Paramètres</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Chargement</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>patientez...</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Nouveau pouet</translation>
|
<translation>Nouveau pouet</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Recharger</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Ouvrir dans le navigateur</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation>Rien trouvé</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Pouets</translation>
|
<translation>Pouets</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation>Mentionner</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Bloquer</translation>
|
<translation>Bloquer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation>Ouvrir dans le navigateur</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation>Mentionner</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation>Contenuto avviso</translation>
|
<translation>Contenuto avviso</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation>A cosa stai pensando?</translation>
|
<translation>A cosa stai pensando?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Elimina</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation>Pubblico</translation>
|
<translation>Pubblico</translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation>Chuidere risposta</translation>
|
<translation>Chuidere risposta</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Aprire nel browser</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Notifiche</translation>
|
<translation>Notifiche</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Nuovo Toot</translation>
|
<translation>Locale</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Federazione</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@utente o #terme</translation>
|
<translation>@utente o #terme</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Locale</translation>
|
<translation>Nuovo Toot</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Federazione</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Caricare altri</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Impostazioni</translation>
|
<translation>Impostazioni</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Caricamento</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>Attendere un momento...</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Nuovo Toot</translation>
|
<translation>Nuovo Toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Ricarica</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Aprire nel browser</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation>Niente trovato</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Toots</translation>
|
<translation>Toots</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation>Menzionare</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<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>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation>Aprire nel browser</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation>Menzionare</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation>Waarschuwingstekst</translation>
|
<translation>Waarschuwingstekst</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation>Wat wil je kwijt?</translation>
|
<translation>Wat wil je kwijt?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Verwijderen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation>Openbaar</translation>
|
<translation>Openbaar</translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation>Antwoord verbergen</translation>
|
<translation>Antwoord verbergen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Open een Browser</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Meldingen</translation>
|
<translation>Meldingen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Nieuwe Toot</translation>
|
<translation>Lokaal</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Gefedereerd</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,19 +146,15 @@
|
||||||
<translation>@user of #term</translation>
|
<translation>@user of #term</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Lokaal</translation>
|
<translation>Nieuwe Toot</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Gefedereerd</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MediaFullScreen</name>
|
<name>MediaFullScreen</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Error loading</source>
|
<source>Error loading</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Laadfout</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Meer laden</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Instellingen</translation>
|
<translation>Instellingen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Laden</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>even geduld…</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Nieuwe Toot</translation>
|
<translation>Nieuwe Toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Herladen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Open een Browser</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation>Niets gevonden</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Statussen</translation>
|
<translation>Statussen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation>Vermelden</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Blokkeren</translation>
|
<translation>Blokkeren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation>Open een Browser</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation>Vermelden</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
@ -327,7 +325,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Visual identity</source>
|
<source>Visual identity</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Visuele identiteit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Development and translations</source>
|
<source>Development and translations</source>
|
||||||
|
@ -335,19 +333,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Occitan & French translation</source>
|
<source>Occitan & French translation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Occitaanse & Franse vertaling</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chinese translation</source>
|
<source>Chinese translation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Chinese vertaling</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Dutch translation</source>
|
<source>Dutch translation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Nederlandse vertaling</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Spanish translation</source>
|
<source>Spanish translation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Spaanse vertaling</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Use</source>
|
<source>Use</source>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Verwijderen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -80,7 +82,7 @@
|
||||||
<name>EmojiSelect</name>
|
<name>EmojiSelect</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Emojis</source>
|
<source>Emojis</source>
|
||||||
<translation>Emoji’s</translation>
|
<translation>Emojis</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Tap to insert</source>
|
<source>Tap to insert</source>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Meldingen</translation>
|
<translation>Meldingen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Nieuwen toot</translation>
|
<translation>Lokaal</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Gefedereerd</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@gebruiker of #term</translation>
|
<translation>@gebruiker of #term</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Lokaal</translation>
|
<translation>Nieuwen toot</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Gefedereerd</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Meer laden</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Instellingen</translation>
|
<translation>Instellingen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Laden</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>efkens geduld…</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Nieuwen toot</translation>
|
<translation>Nieuwen toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Herladen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Statussen</translation>
|
<translation>Statussen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Blokkeren</translation>
|
<translation>Blokkeren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Escafar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -121,31 +123,31 @@
|
||||||
<name>MainPage</name>
|
<name>MainPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Home</source>
|
<source>Home</source>
|
||||||
<translation>Acuèlh</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Notifications</source>
|
<source>Notifications</source>
|
||||||
<translation>Notificacions</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>New Toot</source>
|
|
||||||
<translation>Nòu Tut</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Search</source>
|
|
||||||
<translation>Cercar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>@user or #term</source>
|
|
||||||
<translation>@utilizaire o #tèrm</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>Local</source>
|
||||||
<translation>Local</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Federated</source>
|
<source>Federated</source>
|
||||||
<translation>Federat</translation>
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Search</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>@user or #term</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>New Toot</source>
|
||||||
|
<translation type="unfinished">Nòu Tut</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Cargar mai</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Parmètres</translation>
|
<translation>Parmètres</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Cargament</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>esperatz....</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Nòu Tut</translation>
|
<translation>Nòu Tut</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Estatuts</translation>
|
<translation>Estatuts</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Blocar</translation>
|
<translation>Blocar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Usuń</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished">Otwarte w przeglądarce</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -98,7 +100,7 @@
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Login</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Instance</source>
|
<source>Instance</source>
|
||||||
|
@ -114,7 +116,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Reload</source>
|
<source>Reload</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">Załaduj ponownie</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Powiadomienia</translation>
|
<translation>Powiadomienia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Nowy wpis</translation>
|
<translation>Lokalne</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Globalne</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@użytkownik lub #tag</translation>
|
<translation>@użytkownik lub #tag</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Lokalne</translation>
|
<translation>Nowy wpis</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Globalne</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Załaduj więcej</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Ustawienia</translation>
|
<translation>Ustawienia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Ładowanie</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>proszę czekać…</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Nowy wpis</translation>
|
<translation>Nowy wpis</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Załaduj ponownie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Otwarte w przeglądarce</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation>Nic nie znaleziono</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<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 type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
|
@ -25,48 +25,50 @@
|
||||||
<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>
|
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Копировать ссылку</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
<translation type="unfinished"></translation>
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
|
<translation>Текст предупреждения</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
<translation type="unfinished"></translation>
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
</message>
|
<translation>О чём думаете?</translation>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Удалить</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Публичный</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unlisted</source>
|
<source>Unlisted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Скрытый</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Followers-only</source>
|
<source>Followers-only</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Приватный</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Direct</source>
|
<source>Direct</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Адресованный</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Toot sent!</source>
|
<source>Toot sent!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Поста отправлено!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Reply</source>
|
<source>Reply</source>
|
||||||
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ответ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Скрыть ответ</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Открыть в браузере</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -98,11 +100,11 @@
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Авторизоваться</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Instance</source>
|
<source>Instance</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Экземпляра</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter a valid Mastodon instance URL</source>
|
<source>Enter a valid Mastodon instance URL</source>
|
||||||
|
@ -114,7 +116,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Reload</source>
|
<source>Reload</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Перезарядка</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Уведомления</translation>
|
<translation>Уведомления</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Новый</translation>
|
<translation>Локальны</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Федеративные</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,19 +146,15 @@
|
||||||
<translation>@пользователь или #срок</translation>
|
<translation>@пользователь или #срок</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Локальный</translation>
|
<translation>Новый</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Федеративные</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MediaFullScreen</name>
|
<name>MediaFullScreen</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Error loading</source>
|
<source>Error loading</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ошибка при загрузке</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,40 +174,40 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Загрузи больше</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Настройки</translation>
|
<translation>Настройки</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Загрузка</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>Пожалуйста, подождите...</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Новый</translation>
|
<translation>Новый</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Перезагрузить</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Открыть в браузере</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation>Ничего не найдено</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Bot</source>
|
<source>Bot</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>бот</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Follows you</source>
|
<source>Follows you</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Подписан(а) на вас</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Group</source>
|
<source>Group</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Группа</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -213,7 +215,7 @@
|
||||||
<message>
|
<message>
|
||||||
<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 type="unfinished"></translation>
|
<translation>Подробности</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Followers</source>
|
<source>Followers</source>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Статусы</translation>
|
<translation>Статусы</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation>Упоминание</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -238,7 +244,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>Запрошенный</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Follow</source>
|
<source>Follow</source>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Блокировать</translation>
|
<translation>Блокировать</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
@ -282,7 +280,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Options</source>
|
<source>Options</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Параметры</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Load Images in Toots</source>
|
<source>Load Images in Toots</source>
|
||||||
|
@ -327,27 +325,27 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Visual identity</source>
|
<source>Visual identity</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Визуальная идентичность</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Development and translations</source>
|
<source>Development and translations</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Разработка и переводы</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Occitan & French translation</source>
|
<source>Occitan & French translation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>французский перевод</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chinese translation</source>
|
<source>Chinese translation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Китайский перевод</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Dutch translation</source>
|
<source>Dutch translation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Голландский перевод</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Spanish translation</source>
|
<source>Spanish translation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Испанский перевод</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Use</source>
|
<source>Use</source>
|
||||||
|
@ -379,19 +377,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Mention</source>
|
<source>Mention</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Упоминание</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Conversation</source>
|
<source>Conversation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>беседа</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Remove Bookmark</source>
|
<source>Remove Bookmark</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Убрать из закладок</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Bookmark</source>
|
<source>Bookmark</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Добавить в закладки</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Обриши</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -114,7 +116,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Reload</source>
|
<source>Reload</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">учитај још</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Обавјештење</translation>
|
<translation>Обавјештење</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Novi toot</translation>
|
<translation>Локална</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Федеративна</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@korisnik ili #pojam</translation>
|
<translation>@korisnik ili #pojam</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Локална</translation>
|
<translation>Novi toot</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Федеративна</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>учитај још</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Подешавања</translation>
|
<translation>Подешавања</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Učitavanje</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>молимо вас, сачекајте...</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Novi toot</translation>
|
<translation>Novi toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>учитај још</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Статуси</translation>
|
<translation>Статуси</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Блокирати</translation>
|
<translation>Блокирати</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Radera</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -114,7 +116,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Reload</source>
|
<source>Reload</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">Ladda mer</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>Notifieringar</translation>
|
<translation>Notifieringar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>Ny toot</translation>
|
<translation>Lokalt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>Förenade</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@user eller #term</translation>
|
<translation>@user eller #term</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>Lokalt</translation>
|
<translation>Ny toot</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>Förenade</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Ladda mer</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Inställningar</translation>
|
<translation>Inställningar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>Laddar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>Vänligen vänta...</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>Ny toot</translation>
|
<translation>Ny toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Ladda mer</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Statusar</translation>
|
<translation>Statusar</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Blockera</translation>
|
<translation>Blockera</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation>在此编写你的警告信息</translation>
|
<translation>在此编写你的警告信息</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation>有何想法?</translation>
|
<translation>有何想法?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>删除</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation>公共区域</translation>
|
<translation>公共区域</translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation>隐藏回复</translation>
|
<translation>隐藏回复</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>在浏览器打开个人简介</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -128,8 +130,12 @@
|
||||||
<translation>通知</translation>
|
<translation>通知</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>Local</source>
|
||||||
<translation>新嘟嘟</translation>
|
<translation>本地</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Federated</source>
|
||||||
|
<translation>联合</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
|
@ -140,12 +146,8 @@
|
||||||
<translation>@用户或#项目</translation>
|
<translation>@用户或#项目</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>New Toot</source>
|
||||||
<translation>本地</translation>
|
<translation>新嘟嘟</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Federated</source>
|
|
||||||
<translation>联合</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>加载更多</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>设置</translation>
|
<translation>设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation>加载中</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation>稍等片刻......</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>新嘟嘟</translation>
|
<translation>新嘟嘟</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>重新加载</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>在浏览器打开个人简介</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation>没有发现任何东西</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>状态</translation>
|
<translation>状态</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation>提及</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>封锁</translation>
|
<translation>封锁</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation>在浏览器打开个人简介</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation>提及</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
@ -356,7 +354,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>to help with app translation to your language.</source>
|
<source>to help with app translation to your language.</source>
|
||||||
<translation>以帮助翻译软件为你使用的语言</translation>
|
<translation>以帮助翻译软件为你使用的语言.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -29,16 +29,14 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Write your warning here</source>
|
<source>Write your warning here</source>
|
||||||
|
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||||
<translation>Write your warning here</translation>
|
<translation>Write your warning here</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>What's on your mind?</source>
|
<source>What's on your mind?</source>
|
||||||
|
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||||
<translation>What's on your mind?</translation>
|
<translation>What's on your mind?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Delete</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Public</source>
|
<source>Public</source>
|
||||||
<translation>Public</translation>
|
<translation>Public</translation>
|
||||||
|
@ -68,6 +66,10 @@
|
||||||
<source>Hide Reply</source>
|
<source>Hide Reply</source>
|
||||||
<translation>Hide Reply</translation>
|
<translation>Hide Reply</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Open in Browser</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
|
@ -121,31 +123,31 @@
|
||||||
<name>MainPage</name>
|
<name>MainPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Home</source>
|
<source>Home</source>
|
||||||
<translation></translation>
|
<translation>Home</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Notifications</source>
|
<source>Notifications</source>
|
||||||
<translation></translation>
|
<translation>Notifications</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>New Toot</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Search</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>@user or #term</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Local</source>
|
<source>Local</source>
|
||||||
<translation></translation>
|
<translation>Local</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Federated</source>
|
<source>Federated</source>
|
||||||
<translation></translation>
|
<translation>Federated</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Search</source>
|
||||||
|
<translation>Search</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>@user or #term</source>
|
||||||
|
<translation>@user or #term</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>New Toot</source>
|
||||||
|
<translation>New Toot</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -172,26 +174,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MyList</name>
|
<name>MyList</name>
|
||||||
<message>
|
|
||||||
<source>Load more</source>
|
|
||||||
<translation>Load more</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Settings</translation>
|
<translation>Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Loading</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>please wait...</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>New Toot</source>
|
<source>New Toot</source>
|
||||||
<translation>New Toot</translation>
|
<translation>New Toot</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reload</source>
|
||||||
|
<translation>Reload</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open in Browser</source>
|
||||||
|
<translation>Open in Browser</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nothing found</source>
|
||||||
|
<translation>Nothing found</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ProfileHeader</name>
|
<name>ProfileHeader</name>
|
||||||
|
@ -230,6 +232,10 @@
|
||||||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||||
<translation>Statuses</translation>
|
<translation>Statuses</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mention</source>
|
||||||
|
<translation>Mention</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<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>
|
||||||
|
@ -265,14 +271,6 @@
|
||||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||||
<translation>Block</translation>
|
<translation>Block</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Open in Browser</source>
|
|
||||||
<translation>Open in Browser</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mention</source>
|
|
||||||
<translation>Mention</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsPage</name>
|
<name>SettingsPage</name>
|
||||||
|
|
Loading…
Reference in a new issue