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
|
||||
|
||||
QT += network dbus sql
|
||||
QT += multimedia
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += sailfishapp
|
||||
PKGCONFIG += \
|
||||
PKGCONFIG += sailfishapp \
|
||||
nemonotifications-qt5
|
||||
|
||||
DEFINES += "APPVERSION=\\\"$${SPECVERSION}\\\""
|
||||
|
@ -58,16 +58,16 @@ DISTFILES += qml/harbour-tooterb.qml \
|
|||
qml/pages/SettingsPage.qml \
|
||||
qml/pages/components/InfoBanner.qml \
|
||||
qml/pages/components/MediaFullScreen.qml \
|
||||
qml/pages/components/MyMedia.qml \
|
||||
qml/pages/components/NavigationPanel.qml \
|
||||
qml/pages/components/ProfileImage.qml \
|
||||
qml/pages/components/VisualContainer.qml \
|
||||
qml/pages/components/MiniStatus.qml \
|
||||
qml/pages/components/MiniHeader.qml \
|
||||
qml/pages/components/ItemUser.qml \
|
||||
qml/pages/components/MyList.qml \
|
||||
qml/pages/components/Navigation.qml \
|
||||
qml/pages/components/ProfileHeader.qml \
|
||||
qml/pages/components/MediaBlock.qml \
|
||||
qml/pages/components/MyImage.qml \
|
||||
qml/cover/CoverPage.qml \
|
||||
qml/pages/MainPage.qml \
|
||||
qml/pages/LoginPage.qml \
|
||||
|
|
|
@ -87,5 +87,4 @@ ApplicationWindow {
|
|||
activate()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
<title>icon-s-bookmark</title>
|
||||
<g>
|
||||
<rect width="32" height="32" fill="#fff" fill-opacity="0"/>
|
||||
<path d="M20.81,10H11.19a1,1,0,1,1,0-2h9.63a1,1,0,0,1,0,2Z" fill="#fff"/>
|
||||
<path d="M20.81,14.62H11.19a1,1,0,0,1,0-2h9.63a1,1,0,0,1,0,2Z" fill="#fff"/>
|
||||
<path d="M26.85,29.74a1,1,0,0,1-.66-.25L16,20.82,5.81,29.48a1,1,0,0,1-1,.2c-.7-.22-.7-.76-.7-1.58,0-.63,0-1.88,0-4.38V4.48A2.41,2.41,0,0,1,6.44,2H25.56a2.41,2.41,0,0,1,2.29,2.5V23.73c0,2.5,0,3.75,0,4.38,0,.82,0,1.36-.7,1.58A1,1,0,0,1,26.85,29.74Zm-10.16-11,9.16,7.79c0-.7,0-1.62,0-2.84V4.48c0-.3-.18-.5-.29-.5H6.44c-.12,0-.29.2-.29.5V23.73c0,1.22,0,2.14,0,2.84l9.16-7.79h0a1.11,1.11,0,0,1,1.39,0Z" fill="#fff" opacity="0.6"/>
|
||||
<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"/>
|
||||
</g>
|
||||
</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 });
|
||||
return this;
|
||||
};
|
||||
|
||||
var publish = function(channel){
|
||||
if(!mediator.channels[channel]) return false;
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
|
@ -18,6 +19,7 @@ var mediator = (function(){
|
|||
};
|
||||
return this;
|
||||
};
|
||||
|
||||
return {
|
||||
channels : {},
|
||||
publish : publish,
|
||||
|
@ -28,6 +30,7 @@ var mediator = (function(){
|
|||
}
|
||||
};
|
||||
}());
|
||||
|
||||
var init = function(){
|
||||
console.log("db.version: "+db.version);
|
||||
if(db.version === '') {
|
||||
|
@ -35,7 +38,7 @@ var init = function(){
|
|||
tx.executeSql('CREATE TABLE IF NOT EXISTS settings ('
|
||||
+ ' key TEXT UNIQUE, '
|
||||
+ ' value TEXT '
|
||||
+');');
|
||||
+ ');');
|
||||
//tx.executeSql('INSERT INTO settings (key, value) VALUES (?, ?)', ["conf", "{}"]);
|
||||
});
|
||||
db.changeVersion('', '0.1', function(tx) {
|
||||
|
@ -103,6 +106,7 @@ var tootParser = function(data){
|
|||
|
||||
console.log(ret)
|
||||
}
|
||||
|
||||
var test = 1;
|
||||
|
||||
Qt.include("Mastodon.js")
|
||||
|
@ -161,6 +165,7 @@ var notifier = function(item){
|
|||
key: item.id
|
||||
}
|
||||
break;
|
||||
|
||||
case "follow":
|
||||
msg = {
|
||||
urgency: "critical",
|
||||
|
@ -182,6 +187,7 @@ var notifier = function(item){
|
|||
key: item.id
|
||||
}
|
||||
break;
|
||||
|
||||
case "mention":
|
||||
msg = {
|
||||
urgency: "critical",
|
||||
|
@ -193,6 +199,7 @@ var notifier = function(item){
|
|||
key: item.id
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
//console.log(JSON.stringify(messageObject.data))
|
||||
return;
|
||||
|
|
|
@ -10,10 +10,12 @@ var mastodonAPI = function(config) {
|
|||
// modify initial config afterwards
|
||||
config[key] = value;
|
||||
},
|
||||
|
||||
getConfig: function(key) {
|
||||
//get config key
|
||||
return config[key];
|
||||
},
|
||||
|
||||
get: function (endpoint) {
|
||||
// for GET API calls
|
||||
// can be called with two or three parameters
|
||||
|
@ -67,6 +69,7 @@ var mastodonAPI = function(config) {
|
|||
}
|
||||
http.send();
|
||||
},
|
||||
|
||||
post: function (endpoint) {
|
||||
// for POST API calls
|
||||
var postData, callback;
|
||||
|
@ -113,6 +116,7 @@ var mastodonAPI = function(config) {
|
|||
}
|
||||
});*/
|
||||
},
|
||||
|
||||
delete: function (endpoint, callback) {
|
||||
// for DELETE API calls.
|
||||
$.ajax({
|
||||
|
@ -125,6 +129,7 @@ var mastodonAPI = function(config) {
|
|||
}
|
||||
});
|
||||
},
|
||||
|
||||
stream: function (streamType, onData) {
|
||||
// Event Stream Support
|
||||
// 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
|
||||
// public for your federated 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 { event: (eventtype), payload: {mastodon object as described in the api docs} }
|
||||
// eventtype could be notification (=notification) or update (= new toot in TL)
|
||||
|
@ -147,12 +152,10 @@ var mastodonAPI = function(config) {
|
|||
onData(event);
|
||||
};
|
||||
es.onmessage = listener;
|
||||
|
||||
|
||||
},
|
||||
|
||||
registerApplication: function (client_name, redirect_uri, scopes, website, callback) {
|
||||
//register a new application
|
||||
|
||||
// OAuth Auth flow:
|
||||
// First register the application
|
||||
// 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);
|
||||
},
|
||||
|
||||
generateAuthLink: function (client_id, redirect_uri, responseType, scopes) {
|
||||
return config.instance + "/oauth/authorize?client_id=" + client_id + "&redirect_uri=" + redirect_uri +
|
||||
"&response_type=" + responseType + "&scope=" + scopes.join("+");
|
||||
},
|
||||
|
||||
getAccessTokenFromAuthCode: function (client_id, client_secret, redirect_uri, code, callback) {
|
||||
/*$.ajax({
|
||||
url: config.instance + "/oauth/token",
|
||||
|
|
|
@ -10,7 +10,7 @@ WorkerScript.onMessage = function(msg) {
|
|||
console.log("Conf > " + JSON.stringify(msg.conf))
|
||||
console.log("Params > " + JSON.stringify(msg.params))
|
||||
|
||||
// order notifications in ASC order
|
||||
/** order notifications in ASC order */
|
||||
function orderNotifications(items){
|
||||
for (var i = items.length-1; i > 0; i--) {
|
||||
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) {
|
||||
console.log("Not loggedin")
|
||||
return;
|
||||
}
|
||||
|
||||
/** Load images */
|
||||
if (typeof msg.conf['loadImages'] !== "undefined")
|
||||
loadImages = msg.conf['loadImages']
|
||||
|
||||
/** POST statuses */
|
||||
var API = mastodonAPI({ instance: msg.conf.instance, api_user_token: msg.conf.api_user_token});
|
||||
if (msg.method === "POST"){
|
||||
API.post(msg.action, msg.params, function(data) {
|
||||
|
@ -63,7 +66,7 @@ WorkerScript.onMessage = function(msg) {
|
|||
|
||||
} else if(msg.action === "notifications") {
|
||||
// notification
|
||||
// console.log("Is notification... parsing...")
|
||||
console.log("Get notification list")
|
||||
console.log(JSON.stringify(data[i]))
|
||||
item = parseNotification(data[i]);
|
||||
items.push(item)
|
||||
|
@ -73,7 +76,9 @@ WorkerScript.onMessage = function(msg) {
|
|||
console.log("ancestors")
|
||||
for (var j = 0; j < data[i].length; 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)
|
||||
console.log(JSON.stringify(data[i][j]))
|
||||
}
|
||||
|
@ -82,7 +87,7 @@ WorkerScript.onMessage = function(msg) {
|
|||
|
||||
//console.log(JSON.stringify(i))
|
||||
} 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")
|
||||
for (var j = 0; j < data[i].length; j ++) {
|
||||
item = parseToot(data[i][j]);
|
||||
|
@ -94,16 +99,19 @@ WorkerScript.onMessage = function(msg) {
|
|||
}
|
||||
addDataToModel (msg.model, "append", items);
|
||||
items = [];
|
||||
|
||||
} else if (data[i].hasOwnProperty("content")){
|
||||
// console.log("Is toot... parsing...")
|
||||
//console.log("Get Toot")
|
||||
item = parseToot(data[i]);
|
||||
item['id'] = item['status_id']
|
||||
items.push(item)
|
||||
|
||||
} else {
|
||||
WorkerScript.sendMessage({ 'action': msg.action, 'success': true, key: i, "data": data[i] })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(msg.model && items.length)
|
||||
addDataToModel(msg.model, msg.mode, items)
|
||||
/*if(msg.action === "notifications")
|
||||
|
@ -123,11 +131,10 @@ function addDataToModel (model, mode, items) {
|
|||
model.insert(0,items[i])
|
||||
}
|
||||
}
|
||||
|
||||
model.sync()
|
||||
}
|
||||
|
||||
// Get Account Data: Represents a user of Mastodon and their associated profile.
|
||||
/** Function: Get Account Data */
|
||||
function parseAccounts(collection, prefix, data) {
|
||||
|
||||
var res = collection;
|
||||
|
@ -153,13 +160,12 @@ function parseAccounts(collection, prefix, data) {
|
|||
//res[prefix + 'account_fields'] = data["fields"]
|
||||
res[prefix + 'account_bot'] = data["bot"]
|
||||
res[prefix + 'account_group'] = data["group"]
|
||||
res[prefix + 'account_source'] = data["source"]
|
||||
|
||||
//console.log(JSON.stringify(res))
|
||||
return (res);
|
||||
}
|
||||
|
||||
// Get Notification Data
|
||||
/** Function: Get Notification Data */
|
||||
function parseNotification(data){
|
||||
//console.log(JSON.stringify(data))
|
||||
var item = {
|
||||
|
@ -168,12 +174,12 @@ function parseNotification(data){
|
|||
attachments: []
|
||||
};
|
||||
switch (item['type']){
|
||||
|
||||
case "mention":
|
||||
if (!data.status) {
|
||||
break;
|
||||
}
|
||||
item = parseToot(data.status)
|
||||
item['typeIcon'] = "image://theme/icon-s-retweet"
|
||||
item['typeIcon'] = "image://theme/icon-s-alarm"
|
||||
item['type'] = "mention"
|
||||
break;
|
||||
|
@ -197,19 +203,18 @@ function parseNotification(data){
|
|||
item = parseToot(data.status)
|
||||
item = parseAccounts(item, "reblog_", data["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['type'] = "favourite";
|
||||
//item['retweetScreenName'] = item['reblog_account_username'];
|
||||
break;
|
||||
|
||||
case "follow":
|
||||
item['type'] = "follow";
|
||||
item = parseAccounts(item, "", 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['attachments'] = []
|
||||
//item['attachments'] = []
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -222,6 +227,7 @@ function parseNotification(data){
|
|||
return item;
|
||||
}
|
||||
|
||||
/** Function: */
|
||||
function collect() {
|
||||
var ret = {};
|
||||
var len = arguments.length;
|
||||
|
@ -235,12 +241,13 @@ function collect() {
|
|||
return ret;
|
||||
}
|
||||
|
||||
/** Function: Get Status date */
|
||||
function getDate(dateStr) {
|
||||
var ts = new Date(dateStr);
|
||||
return new Date(ts.getFullYear(), ts.getMonth(), ts.getDate(), 0, 0, 0)
|
||||
}
|
||||
|
||||
// Get Status / Toot Data
|
||||
/** Function: Get Status data */
|
||||
function parseToot (data) {
|
||||
var i = 0;
|
||||
var item = {};
|
||||
|
@ -253,7 +260,6 @@ function parseToot (data) {
|
|||
item['status_spoiler_text'] = data["spoiler_text"]
|
||||
item['status_visibility'] = data["visibility"]
|
||||
item['status_language'] = data["language"]
|
||||
|
||||
item['status_uri'] = data["uri"]
|
||||
item['status_url'] = data["url"]
|
||||
item['status_replies_count'] = data["replies_count"]
|
||||
|
@ -262,34 +268,39 @@ function parseToot (data) {
|
|||
item['status_favourited'] = data["favourited"]
|
||||
item['status_reblogged'] = data["reblogged"]
|
||||
item['status_bookmarked'] = data["bookmarked"]
|
||||
|
||||
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_account_id'] = data["in_reply_to_account_id"]
|
||||
item['status_reblog'] = data["reblog"] ? true : false
|
||||
item['section'] = getDate(data["created_at"])
|
||||
|
||||
// If Toot is a Reblog
|
||||
/** If Toot is a Reblog */
|
||||
if(item['status_reblog']) {
|
||||
item['type'] = "reblog";
|
||||
item['typeIcon'] = "image://theme/icon-s-retweet"
|
||||
item['status_id'] = data["reblog"]["id"];
|
||||
item['status_spoiler_text'] = data["reblog"]["spoiler_text"]
|
||||
item['status_id'] = data["reblog"]["id"]
|
||||
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, "reblog_", data["account"])
|
||||
} else {
|
||||
item = parseAccounts(item, "", data["account"])
|
||||
}
|
||||
|
||||
/** Replace HTML content in Toots */
|
||||
item['content'] = data['content']
|
||||
.replaceAll('</span><span class="invisible">', '')
|
||||
.replaceAll('<span class="invisible">', '')
|
||||
.replaceAll('</span><span class="ellipsis">', '')
|
||||
.replaceAll('class=""', '');
|
||||
item['attachments'] = [];
|
||||
|
||||
// Media attachements in Toots
|
||||
for(i = 0; i < data['media_attachments'].length ; i++) {
|
||||
/** Media attachements in Toots */
|
||||
item['attachments'] = [];
|
||||
for(i = 0; i < data['media_attachments'].length; i++) {
|
||||
var attachments = data['media_attachments'][i];
|
||||
item['content'] = item['content'].replaceAll(attachments['text_url'], '')
|
||||
var tmp = {
|
||||
|
@ -301,7 +312,7 @@ function parseToot (data) {
|
|||
item['attachments'].push(tmp)
|
||||
}
|
||||
|
||||
// Media attachements in Reblogs
|
||||
/** Media attachements in Reblogs */
|
||||
if(item['status_reblog']) {
|
||||
for(i = 0; i < data['reblog']['media_attachments'].length ; i++) {
|
||||
var attachments = data['reblog']['media_attachments'][i];
|
||||
|
@ -319,7 +330,7 @@ function parseToot (data) {
|
|||
return addEmojis(item, data);
|
||||
}
|
||||
|
||||
// Display function for custom Emojis in Toots
|
||||
/** Function: Display custom Emojis in Toots */
|
||||
function addEmojis(item, data) {
|
||||
var emoji, i;
|
||||
for (i = 0; i < data["emojis"].length; i++) {
|
||||
|
|
|
@ -8,28 +8,37 @@ import "./components/"
|
|||
Page {
|
||||
id: conversationPage
|
||||
|
||||
property string type
|
||||
property string description: ""
|
||||
property string headerTitle: ""
|
||||
property string suggestedUser: ""
|
||||
property ListModel suggestedModel
|
||||
property string toot_id: ""
|
||||
property string toot_url: ""
|
||||
property string toot_uri: ""
|
||||
property int tootMaxChar: 500;
|
||||
property ListModel mdl
|
||||
property int tootMaxChar: 500
|
||||
property bool bot: false //otherwise ReferenceError ProfileHeader.qml
|
||||
property bool followed_by: false //otherwise ReferenceError ProfileHeader.qml
|
||||
property bool locked: false //otherwise ReferenceError ProfileHeader.qml
|
||||
property bool group: false //otherwise ReferenceError ProfileHeader.qml
|
||||
property ListModel mdl
|
||||
property 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
|
||||
onSuggestedUserChanged: {
|
||||
console.log(suggestedUser)
|
||||
suggestedModel = Qt.createQmlObject(
|
||||
'import QtQuick 2.0; ListModel { }',
|
||||
Qt.application, 'InternalQmlObject'
|
||||
)
|
||||
suggestedModel = Qt.createQmlObject( 'import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject' )
|
||||
predictionList.visible = false
|
||||
if (suggestedUser.length > 0) {
|
||||
var msg = {
|
||||
|
@ -58,18 +67,12 @@ Page {
|
|||
WorkerScript {
|
||||
id: worker
|
||||
source: "../lib/Worker.js"
|
||||
onMessage: {
|
||||
console.log(JSON.stringify(messageObject))
|
||||
}
|
||||
}
|
||||
|
||||
ProfileHeader {
|
||||
id: header
|
||||
visible: false
|
||||
onMessage: { console.log(JSON.stringify(messageObject)) }
|
||||
}
|
||||
|
||||
SilicaListView {
|
||||
id: myList
|
||||
|
||||
header: PageHeader {
|
||||
title: headerTitle // pageTitle pushed from MainPage.qml or VisualContainer.qml
|
||||
}
|
||||
|
@ -90,12 +93,11 @@ Page {
|
|||
text: Format.formatDate(section, Formatter.DateMedium)
|
||||
}
|
||||
}
|
||||
delegate: VisualContainer {
|
||||
}
|
||||
delegate: VisualContainer {}
|
||||
onCountChanged: {
|
||||
if (mdl)
|
||||
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)
|
||||
positionViewAtIndex(i, ListView.Center)
|
||||
}
|
||||
|
@ -106,31 +108,25 @@ Page {
|
|||
id: pulleyConversation
|
||||
visible: type === "reply"
|
||||
|
||||
MenuItem {
|
||||
text: qsTr("Open in Browser")
|
||||
onClicked: {
|
||||
Qt.openUrlExternally(status_link)
|
||||
}
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
//: Use the translation of "Copy Link" for a shorter PullDownMenu label
|
||||
text: qsTr("Copy Link to Clipboard")
|
||||
onClicked: if (toot_url === "") {
|
||||
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
|
||||
onClicked: Clipboard.text = status_link
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
//: "Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"
|
||||
text: !panel.open ? qsTr("Reply") : qsTr("Hide Reply")
|
||||
visible: type == "reply"
|
||||
onClicked: if (!panel.open) {
|
||||
panel.open = true
|
||||
} else panel.open = false
|
||||
onClicked: !panel.open ? panel.open = true : panel.open = false
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -142,20 +138,16 @@ Page {
|
|||
anchors {
|
||||
left: panel.left
|
||||
right: panel.right
|
||||
bottom: if (panel.open == true) {
|
||||
panel.top
|
||||
} else {
|
||||
hiddenPanel.top
|
||||
}
|
||||
bottom: panel.open == true ? panel.top : hiddenPanel.top
|
||||
}
|
||||
|
||||
SilicaListView {
|
||||
rotation: 180
|
||||
id: predictionResults
|
||||
rotation: 180 // shows best matching result on the bottom
|
||||
anchors.fill: parent
|
||||
model: suggestedModel
|
||||
clip: true
|
||||
quickScroll: false
|
||||
VerticalScrollDecorator {}
|
||||
delegate: ItemUser {
|
||||
rotation: 180
|
||||
onClicked: {
|
||||
|
@ -171,7 +163,6 @@ Page {
|
|||
+ model.account_acct
|
||||
+ ' '
|
||||
+ textOperations.text.substring(textOperations.selectionEnd).trim()
|
||||
|
||||
toot.cursorPosition = toot.text.indexOf('@' + model.account_acct)
|
||||
}
|
||||
}
|
||||
|
@ -180,21 +171,20 @@ Page {
|
|||
positionViewAtBeginning(suggestedModel.count - 1, ListView.Beginning)
|
||||
}
|
||||
}
|
||||
|
||||
VerticalScrollDecorator {}
|
||||
}
|
||||
}
|
||||
|
||||
DockedPanel {
|
||||
id: panel
|
||||
width: parent.width
|
||||
height: progressBar.height + toot.height + (mediaModel.count ? uploadedImages.height : 0)
|
||||
+ btnContentWarning.height + Theme.paddingMedium
|
||||
+ (warningContent.visible ? warningContent.height : 0)
|
||||
height: progressBar.height + toot.height + (mediaModel.count ? uploadedImages.height : 0) + btnContentWarning.height + Theme.paddingMedium + (warningContent.visible ? warningContent.height : 0)
|
||||
dock: Dock.Bottom
|
||||
open: true
|
||||
|
||||
animationDuration: 300
|
||||
|
||||
Rectangle {
|
||||
id: progressBarBg
|
||||
width: parent.width
|
||||
height: progressBar.height
|
||||
color: Theme.highlightBackgroundColor
|
||||
|
@ -225,17 +215,18 @@ Page {
|
|||
autoScrollEnabled: true
|
||||
labelVisible: false
|
||||
font.pixelSize: Theme.fontSizeSmall
|
||||
//: placeholderText in Toot content warning panel
|
||||
placeholderText: qsTr("Write your warning here")
|
||||
placeholderColor: palette.highlightColor
|
||||
color: palette.highlightColor
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
EnterKey.onClicked: {}
|
||||
anchors {
|
||||
top: parent.top
|
||||
topMargin: Theme.paddingMedium
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
EnterKey.onClicked: {}
|
||||
}
|
||||
|
||||
TextInput {
|
||||
|
@ -247,18 +238,19 @@ Page {
|
|||
id: toot
|
||||
autoScrollEnabled: true
|
||||
labelVisible: false
|
||||
text: description !== "" && (description.charAt(0) === '@'
|
||||
|| 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 in Toot text panel
|
||||
placeholderText: qsTr("What's on your mind?")
|
||||
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 {
|
||||
top: warningContent.bottom
|
||||
topMargin: Theme.paddingMedium
|
||||
|
@ -274,7 +266,6 @@ Page {
|
|||
textOperations.select(
|
||||
textOperations.selectionStart ? textOperations.selectionStart - 1 : 0,
|
||||
textOperations.selectionEnd)
|
||||
//console.log(textOperations.text.substr(textOperations.selectionStart, textOperations.selectionEnd))
|
||||
console.log(toot.text.length)
|
||||
suggestedUser = ""
|
||||
if (textOperations.selectedText.charAt(0) === "@") {
|
||||
|
@ -302,7 +293,7 @@ Page {
|
|||
rightMargin: Theme.paddingSmall
|
||||
}
|
||||
onSelectionChanged: { console.log(selection) }
|
||||
onClicked: pageStack.push(emojiSelect)
|
||||
onClicked: pageStack.push(emojiDialog)
|
||||
}
|
||||
|
||||
SilicaGridView {
|
||||
|
@ -313,13 +304,14 @@ Page {
|
|||
height: mediaModel.count ? Theme.itemSizeExtraLarge : 0
|
||||
model: mediaModel
|
||||
cellWidth: uploadedImages.width / 4
|
||||
cellHeight: Theme.itemSizeExtraLarge
|
||||
cellHeight: isPortrait ? cellWidth : Theme.itemSizeExtraLarge
|
||||
delegate: BackgroundItem {
|
||||
id: myDelegate
|
||||
width: uploadedImages.cellWidth
|
||||
height: uploadedImages.cellHeight
|
||||
RemorseItem {
|
||||
id: remorse
|
||||
cancelText: ""
|
||||
}
|
||||
|
||||
Image {
|
||||
|
@ -331,7 +323,7 @@ Page {
|
|||
var idx = index
|
||||
console.log(idx)
|
||||
//mediaModel.remove(idx)
|
||||
remorse.execute(myDelegate, qsTr("Delete"), function () {
|
||||
remorse.execute(myDelegate, "", function () {
|
||||
mediaModel.remove(idx)
|
||||
})
|
||||
}
|
||||
|
@ -363,32 +355,30 @@ Page {
|
|||
|
||||
IconButton {
|
||||
id: btnContentWarning
|
||||
icon.source: "image://theme/icon-s-warning?" + ( pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor) )
|
||||
onClicked: warningContent.visible = !warningContent.visible
|
||||
anchors {
|
||||
top: toot.bottom
|
||||
topMargin: -Theme.paddingSmall * 1.5
|
||||
left: parent.left
|
||||
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 {
|
||||
id: btnAddImage
|
||||
enabled: mediaModel.count < 4
|
||||
icon.source: "image://theme/icon-s-attach?" + ( pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor) )
|
||||
anchors {
|
||||
top: toot.bottom
|
||||
topMargin: -Theme.paddingSmall * 1.5
|
||||
left: btnContentWarning.right
|
||||
leftMargin: Theme.paddingSmall
|
||||
}
|
||||
icon.source: "image://theme/icon-s-attach?"
|
||||
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
|
||||
onClicked: {
|
||||
btnAddImage.enabled = false
|
||||
var once = true
|
||||
var imagePicker = pageStack.push("Sailfish.Pickers.ImagePickerPage", {"allowedOrientations": Orientation.All})
|
||||
var imagePicker = pageStack.push("Sailfish.Pickers.ImagePickerPage", { "allowedOrientations": Orientation.All })
|
||||
imagePicker.selectedContentChanged.connect(function () {
|
||||
var imagePath = imagePicker.selectedContent
|
||||
console.log(imagePath)
|
||||
|
@ -421,12 +411,6 @@ Page {
|
|||
|
||||
ComboBox {
|
||||
id: privacy
|
||||
anchors {
|
||||
top: toot.bottom
|
||||
topMargin: -Theme.paddingSmall * 1.5
|
||||
left: btnAddImage.right
|
||||
right: btnSend.left
|
||||
}
|
||||
menu: ContextMenu {
|
||||
MenuItem {
|
||||
text: qsTr("Public")
|
||||
|
@ -441,19 +425,24 @@ Page {
|
|||
text: qsTr("Direct")
|
||||
}
|
||||
}
|
||||
anchors {
|
||||
top: toot.bottom
|
||||
topMargin: -Theme.paddingSmall * 1.5
|
||||
left: btnAddImage.right
|
||||
right: btnSend.left
|
||||
}
|
||||
}
|
||||
|
||||
IconButton {
|
||||
id: btnSend
|
||||
icon.source: "image://theme/icon-m-send?"
|
||||
+ (pressed ? Theme.highlightColor : Theme.primaryColor)
|
||||
icon.source: "image://theme/icon-m-send?" + (pressed ? Theme.highlightColor : Theme.primaryColor)
|
||||
enabled: toot.text !== "" && toot.text.length < tootMaxChar && uploadProgress.width == 0
|
||||
anchors {
|
||||
top: toot.bottom
|
||||
topMargin: -Theme.paddingSmall * 1.5
|
||||
right: parent.right
|
||||
rightMargin: Theme.paddingSmall
|
||||
}
|
||||
enabled: toot.text !== "" && toot.text.length < tootMaxChar && uploadProgress.width == 0
|
||||
onClicked: {
|
||||
var visibility = ["public", "unlisted", "private", "direct"]
|
||||
var media_ids = []
|
||||
|
@ -473,8 +462,8 @@ Page {
|
|||
},
|
||||
"conf": Logic.conf
|
||||
}
|
||||
if (toot_id)
|
||||
msg.params['in_reply_to_id'] = (toot_id) + ""
|
||||
if (status_id)
|
||||
msg.params['in_reply_to_id'] = (status_id) + ""
|
||||
|
||||
if (warningContent.visible && warningContent.text.length > 0) {
|
||||
msg.params['sensitive'] = 1
|
||||
|
@ -492,9 +481,11 @@ Page {
|
|||
Rectangle {
|
||||
id: uploadProgress
|
||||
color: Theme.highlightBackgroundColor
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.left: parent.left
|
||||
height: Theme.itemSizeSmall * 0.05
|
||||
anchors {
|
||||
bottom: parent.bottom
|
||||
left: parent.left
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -564,9 +555,9 @@ Page {
|
|||
color: Theme.highlightBackgroundColor
|
||||
opacity: 0.2
|
||||
anchors {
|
||||
top: parent.top
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
top: parent.top
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -577,15 +568,15 @@ Page {
|
|||
color: Theme.highlightBackgroundColor
|
||||
opacity: 0.7
|
||||
anchors {
|
||||
left: parent.left
|
||||
top: parent.top
|
||||
left: parent.left
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
EmojiSelect {
|
||||
id: emojiSelect
|
||||
id: emojiDialog
|
||||
}
|
||||
|
||||
InfoBanner {
|
||||
|
|
|
@ -50,10 +50,10 @@ Page {
|
|||
conf.login = false;
|
||||
|
||||
/*conf['login'] = false;
|
||||
conf['mastodon_client_id'] = data['mastodon_client_id'];
|
||||
conf['mastodon_client_secret'] = data['mastodon_client_secret'];
|
||||
conf['mastodon_client_redirect_uri'] = data['mastodon_client_redirect_uri'];
|
||||
delete Logic.conf;*/
|
||||
conf['mastodon_client_id'] = data['mastodon_client_id'];
|
||||
conf['mastodon_client_secret'] = data['mastodon_client_secret'];
|
||||
conf['mastodon_client_redirect_uri'] = data['mastodon_client_redirect_uri'];
|
||||
delete Logic.conf;*/
|
||||
Logic.conf = conf;
|
||||
console.log(JSON.stringify(conf))
|
||||
console.log(JSON.stringify(Logic.conf))
|
||||
|
@ -72,38 +72,35 @@ Page {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
topMargin: Theme.paddingMedium
|
||||
left: parent.left
|
||||
leftMargin: Theme.horizontalPageMargin
|
||||
right: parent.right
|
||||
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 {
|
||||
id: webView
|
||||
visible: false
|
||||
opacity: 0
|
||||
anchors {
|
||||
top: parent.top
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
bottom: parent.bottom
|
||||
}
|
||||
|
||||
opacity: 0
|
||||
onLoadingChanged: {
|
||||
console.log(url)
|
||||
if (
|
||||
|
@ -154,6 +151,7 @@ Page {
|
|||
}
|
||||
|
||||
FadeAnimation on opacity {}
|
||||
|
||||
PullDownMenu {
|
||||
MenuItem {
|
||||
text: qsTr("Reload")
|
||||
|
|
|
@ -12,14 +12,15 @@ Page {
|
|||
|
||||
allowedOrientations: Orientation.All
|
||||
|
||||
// Docked Navigation panel
|
||||
DockedPanel {
|
||||
id: infoPanel
|
||||
open: true
|
||||
width: mainPage.isPortrait ? parent.width : Theme.itemSizeLarge
|
||||
height: mainPage.isPortrait ? Theme.itemSizeLarge : parent.height
|
||||
dock: mainPage.isPortrait ? Dock.Bottom : Dock.Right
|
||||
width: isPortrait ? parent.width : Theme.itemSizeLarge
|
||||
height: isPortrait ? Theme.itemSizeLarge : parent.height
|
||||
dock: isPortrait ? Dock.Bottom : Dock.Right
|
||||
|
||||
Navigation {
|
||||
NavigationPanel {
|
||||
id: navigation
|
||||
isPortrait: !mainPage.isPortrait
|
||||
onSlideshowShow: {
|
||||
|
@ -32,46 +33,46 @@ Page {
|
|||
VisualItemModel {
|
||||
id: visualModel
|
||||
|
||||
MyList{
|
||||
MyList {
|
||||
id: tlHome
|
||||
title: qsTr("Home")
|
||||
type: "timelines/home"
|
||||
mdl: Logic.modelTLhome
|
||||
width: parent.itemWidth
|
||||
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||
height: parent.itemHeight
|
||||
onOpenDrawer: infoPanel.open = setDrawer
|
||||
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||
}
|
||||
|
||||
MyList{
|
||||
MyList {
|
||||
id: tlNotifications
|
||||
title: qsTr("Notifications")
|
||||
type: "notifications"
|
||||
notifier: true
|
||||
mdl: Logic.modelTLnotifications
|
||||
width: parent.itemWidth
|
||||
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||
height: parent.itemHeight
|
||||
onOpenDrawer: infoPanel.open = setDrawer
|
||||
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||
}
|
||||
|
||||
MyList{
|
||||
MyList {
|
||||
id: tlLocal
|
||||
title: qsTr("Local")
|
||||
type: "timelines/public?local=true"
|
||||
//params: ["local", true]
|
||||
mdl: Logic.modelTLlocal
|
||||
width: parent.itemWidth
|
||||
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||
height: parent.itemHeight
|
||||
onOpenDrawer: infoPanel.open = setDrawer
|
||||
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||
}
|
||||
|
||||
MyList{
|
||||
MyList {
|
||||
id: tlPublic
|
||||
title: qsTr("Federated")
|
||||
type: "timelines/public"
|
||||
mdl: Logic.modelTLpublic
|
||||
width: parent.itemWidth
|
||||
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||
height: parent.itemHeight
|
||||
onOpenDrawer: infoPanel.open = setDrawer
|
||||
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||
}
|
||||
|
||||
Item {
|
||||
|
@ -80,7 +81,7 @@ Page {
|
|||
property ListModel mdl: ListModel {}
|
||||
property string search
|
||||
|
||||
width: parent.itemWidth
|
||||
width: isPortrait ? parent.itemWidth : parent.itemWidth - Theme.itemSizeLarge
|
||||
height: parent.itemHeight
|
||||
onSearchChanged: {
|
||||
console.log(search)
|
||||
|
@ -134,7 +135,7 @@ Page {
|
|||
mdl: ListModel {}
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
onOpenDrawer: infoPanel.open = setDrawer
|
||||
onOpenDrawer: isPortrait ? infoPanel.open = setDrawer : infoPanel.open = true
|
||||
anchors.fill: parent
|
||||
currentIndex: -1 // otherwise currentItem will steal focus
|
||||
header: Item {
|
||||
|
@ -233,16 +234,16 @@ Page {
|
|||
itemWidth: isTablet ? Math.round(parent.width) : parent.width
|
||||
itemHeight: height
|
||||
clip: true
|
||||
model: visualModel
|
||||
onCurrentIndexChanged: {
|
||||
navigation.slideshowIndexChanged(currentIndex)
|
||||
}
|
||||
anchors {
|
||||
fill: parent
|
||||
top: parent.top
|
||||
rightMargin: mainPage.isPortrait ? 0 : infoPanel.visibleSize
|
||||
bottomMargin: mainPage.isPortrait ? infoPanel.visibleSize : 0
|
||||
rightMargin: isPortrait ? 0 : infoPanel.visibleSize
|
||||
bottomMargin: isPortrait ? infoPanel.visibleSize : 0
|
||||
}
|
||||
model: visualModel
|
||||
Component.onCompleted: {
|
||||
}
|
||||
}
|
||||
|
@ -255,7 +256,7 @@ Page {
|
|||
icon.source: "image://theme/icon-l-add"
|
||||
anchors {
|
||||
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)
|
||||
bottomMargin: Theme.paddingLarge
|
||||
}
|
||||
|
|
|
@ -182,9 +182,9 @@ Page {
|
|||
id: txtNote
|
||||
text: note
|
||||
textFormat: Text.StyledText
|
||||
color: Theme.secondaryColor
|
||||
color: Theme.secondaryHighlightColor
|
||||
font.pixelSize: Theme.fontSizeExtraSmall
|
||||
linkColor: Theme.highlightColor
|
||||
linkColor: Theme.secondaryColor
|
||||
wrapMode: Text.Wrap
|
||||
width: parent.width - ( 2 * Theme.horizontalPageMargin )
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
@ -227,37 +227,43 @@ Page {
|
|||
anchors.leftMargin: Theme.paddingLarge
|
||||
anchors.rightMargin: Theme.paddingLarge
|
||||
|
||||
Text {
|
||||
Label {
|
||||
id: txtFollowers
|
||||
visible: true //followers_count ? true : false
|
||||
text: followers_count+" "+
|
||||
//: Will show as: "35 Followers"
|
||||
qsTr("Followers")
|
||||
font.pixelSize: Theme.fontSizeExtraSmall
|
||||
color: Theme.highlightColor
|
||||
color: Theme.primaryColor
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
Text {
|
||||
Label {
|
||||
id: txtFollowing
|
||||
visible: true //following_count ? true : false
|
||||
text: following_count+" "+
|
||||
//: Will show as: "23 Following"
|
||||
qsTr("Following")
|
||||
font.pixelSize: Theme.fontSizeExtraSmall
|
||||
color: Theme.highlightColor
|
||||
color: Theme.primaryColor
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
Text {
|
||||
Label {
|
||||
id: txtStatuses
|
||||
visible: true //statuses_count ? true : false
|
||||
text: statuses_count+" "+
|
||||
//: Will show as: "115 Statuses"
|
||||
qsTr("Statuses")
|
||||
font.pixelSize: Theme.fontSizeExtraSmall
|
||||
color: Theme.highlightColor
|
||||
color: pressed ? Theme.highlightColor : Theme.primaryColor
|
||||
wrapMode: Text.Wrap
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: expandingSection1.expanded = false
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -299,7 +305,6 @@ Page {
|
|||
'conf' : Logic.conf
|
||||
};
|
||||
worker.sendMessage(msg);
|
||||
// to-do: create notification banner "Follow request sent!"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -338,22 +343,12 @@ Page {
|
|||
'params' : [],
|
||||
'action' : "accounts/" + user_id + (blocking ? '/unblock':'/block'),
|
||||
'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
|
||||
height: Theme.paddingSmall
|
||||
width: parent.width
|
||||
|
|
|
@ -2,18 +2,23 @@ import QtQuick 2.0
|
|||
import Sailfish.Silica 1.0
|
||||
|
||||
|
||||
Component {
|
||||
id: emojiComponent
|
||||
|
||||
Dialog {
|
||||
id: emoticonsDialog
|
||||
canAccept: false //selector.currentIndex >= 0
|
||||
onAcceptPendingChanged: {
|
||||
if (acceptPending) {
|
||||
// Tell the destination page what the selected category is
|
||||
// acceptDestinationInstance.category = selector.value
|
||||
}
|
||||
Dialog {
|
||||
id: emojiDialog
|
||||
allowedOrientations: Orientation.All
|
||||
canAccept: false //selector.currentIndex >= 0
|
||||
onAcceptPendingChanged: {
|
||||
if (acceptPending) {
|
||||
// Tell the destination page what the selected category is
|
||||
// acceptDestinationInstance.category = selector.value
|
||||
}
|
||||
}
|
||||
anchors.top: parent.top
|
||||
|
||||
Column {
|
||||
id: emojiColumn
|
||||
spacing: Theme.paddingLarge
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
|
||||
SilicaGridView {
|
||||
id: gridView
|
||||
|
@ -21,75 +26,175 @@ Component {
|
|||
title: qsTr("Emojis")
|
||||
description: qsTr("Tap to insert")
|
||||
}
|
||||
cellWidth: gridView.width / 6
|
||||
cellWidth: isPortrait ? gridView.width / 6 : gridView.width / 10
|
||||
cellHeight: cellWidth
|
||||
anchors.fill: parent
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
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: "People and Fantasy"; glyph: "🙆" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "🙇" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "🙈" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "🙉" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "🙊" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "🙋" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "🙍" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "🙎" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "👍" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "👎" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "🙌" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "✊" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "💪" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "👉" }
|
||||
ListElement { section: "People and Fantasy"; glyph: "🙏" }
|
||||
ListElement { section: "Cat Faces"; glyph: "😺" }
|
||||
ListElement { section: "Cat Faces"; glyph: "😸" }
|
||||
ListElement { section: "Cat Faces"; glyph: "😻" }
|
||||
ListElement { section: "Cat Faces"; glyph: "😽" }
|
||||
ListElement { section: "Cat Faces"; glyph: "😼" }
|
||||
ListElement { section: "Cat Faces"; glyph: "🙀" }
|
||||
ListElement { section: "Cat Faces"; glyph: "😿" }
|
||||
ListElement { section: "Cat Faces"; glyph: "😹" }
|
||||
ListElement { section: "Cat Faces"; glyph: "😾" }
|
||||
|
||||
ListElement { section: "Other Faces"; glyph: "👹" }
|
||||
ListElement { section: "Other Faces"; glyph: "👺" }
|
||||
ListElement { section: "Other Faces"; glyph: "🙈" }
|
||||
ListElement { section: "Other Faces"; glyph: "🙉" }
|
||||
ListElement { section: "Other Faces"; 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: "🚃" }
|
||||
|
@ -137,6 +242,7 @@ Component {
|
|||
ListElement { section: "Horoscope Signs"; glyph: "♒" }
|
||||
ListElement { section: "Horoscope Signs"; glyph: "♓" }
|
||||
}
|
||||
|
||||
delegate: BackgroundItem {
|
||||
width: gridView.cellWidth
|
||||
height: gridView.cellHeight
|
||||
|
@ -144,21 +250,21 @@ Component {
|
|||
Label {
|
||||
text: glyph
|
||||
font.pixelSize: Theme.fontSizeLarge
|
||||
color: (highlighted ? Theme.secondaryHighlightColor : Theme.secondaryColor)
|
||||
color: highlighted ? Theme.secondaryHighlightColor : Theme.secondaryColor
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
|
||||
onClicked: {
|
||||
var cursorPosition = toot.cursorPosition
|
||||
toot.text = toot.text.substring(
|
||||
0, cursorPosition) + model.glyph + toot.text.substring(
|
||||
cursorPosition)
|
||||
toot.cursorPosition = cursorPosition + model.glyph.length
|
||||
emoticonsDialog.canAccept = true
|
||||
emoticonsDialog.accept()
|
||||
emojiDialog.canAccept = true
|
||||
emojiDialog.accept()
|
||||
}
|
||||
}
|
||||
|
||||
VerticalScrollDecorator {flickable: listEmojis }
|
||||
VerticalScrollDecorator { flickable: gridView }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,8 +5,9 @@ import Sailfish.Silica 1.0
|
|||
DockedPanel {
|
||||
id: root
|
||||
dock: Dock.Top
|
||||
width: parent.width
|
||||
width: isPortrait ? parent.width : Theme.buttonWidthLarge * 1.5
|
||||
height: content.height
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
Rectangle {
|
||||
id: content
|
||||
|
|
|
@ -10,16 +10,14 @@ BackgroundItem {
|
|||
width: parent.width
|
||||
height: Theme.itemSizeMedium
|
||||
|
||||
Rectangle {
|
||||
Item {
|
||||
id: avatar
|
||||
color: "transparent"
|
||||
width: Theme.itemSizeExtraSmall
|
||||
height: width
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: Theme.horizontalPageMargin
|
||||
|
||||
|
||||
Image {
|
||||
id: img
|
||||
opacity: status === Image.Ready ? 1.0 : 0.0
|
||||
|
@ -50,13 +48,14 @@ BackgroundItem {
|
|||
"following_count": model.account_following_count,
|
||||
"statuses_count": model.account_statuses_count,
|
||||
"locked": model.account_locked,
|
||||
"bot": model.account_bot
|
||||
"bot": model.account_bot,
|
||||
"group": model.account_group
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: userdescription
|
||||
id: userDescription
|
||||
height: account_acct.height + display_name.height
|
||||
anchors.left: avatar.right
|
||||
anchors.leftMargin: Theme.paddingLarge
|
||||
|
@ -72,7 +71,6 @@ BackgroundItem {
|
|||
truncationMode: TruncationMode.Fade
|
||||
width: parent.width - Theme.paddingMedium
|
||||
anchors.top: parent.top
|
||||
|
||||
}
|
||||
|
||||
Label {
|
||||
|
|
|
@ -14,7 +14,7 @@ Item {
|
|||
height: height
|
||||
Component.onCompleted: {
|
||||
if (model && model.count && model.get(0).type === "video") {
|
||||
while (model.count>1){
|
||||
while (model.count>1) {
|
||||
model.remove(model.count-1)
|
||||
}
|
||||
//console.log(JSON.stringify(model.get(0)))
|
||||
|
@ -79,7 +79,7 @@ Item {
|
|||
}
|
||||
}
|
||||
|
||||
MyImage {
|
||||
MyMedia {
|
||||
id: placeholder1
|
||||
width: 2
|
||||
height: 1
|
||||
|
@ -98,7 +98,7 @@ Item {
|
|||
}
|
||||
}
|
||||
|
||||
MyImage {
|
||||
MyMedia {
|
||||
id: placeholder2
|
||||
width: 2
|
||||
height: 1
|
||||
|
@ -117,7 +117,7 @@ Item {
|
|||
}
|
||||
}
|
||||
|
||||
MyImage {
|
||||
MyMedia {
|
||||
id: placeholder3
|
||||
width: 2
|
||||
height: 1
|
||||
|
@ -136,7 +136,7 @@ Item {
|
|||
}
|
||||
}
|
||||
|
||||
MyImage {
|
||||
MyMedia {
|
||||
id: placeholder4
|
||||
width: 2
|
||||
height: 1
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import QtQuick 2.0
|
||||
import Sailfish.Silica 1.0
|
||||
import QtMultimedia 5.0
|
||||
import QtMultimedia 5.6
|
||||
|
||||
|
||||
FullscreenContentPage {
|
||||
|
@ -21,15 +21,17 @@ FullscreenContentPage {
|
|||
} else {
|
||||
video.source = mediaURL
|
||||
video.fillMode = VideoOutput.PreserveAspectFit
|
||||
video.play()
|
||||
videoFlickable.visible = true
|
||||
playerIcon.visible = true
|
||||
playerProgress.visible = true
|
||||
video.play()
|
||||
hideTimer.start()
|
||||
}
|
||||
}
|
||||
|
||||
Flickable {
|
||||
SilicaFlickable {
|
||||
id: videoFlickable
|
||||
visible: false
|
||||
clip: true
|
||||
contentWidth: imageContainer.width
|
||||
contentHeight: imageContainer.height
|
||||
anchors.fill: parent
|
||||
|
@ -49,7 +51,7 @@ FullscreenContentPage {
|
|||
}
|
||||
onStatusChanged: {
|
||||
console.log(status)
|
||||
switch (status){
|
||||
switch (status) {
|
||||
case MediaPlayer.Loading:
|
||||
console.log("loading")
|
||||
return;
|
||||
|
@ -84,49 +86,27 @@ FullscreenContentPage {
|
|||
}
|
||||
}
|
||||
onStopped: function() {
|
||||
if (type != 'video')
|
||||
if (type == 'gifv') {
|
||||
video.play()
|
||||
else
|
||||
} else {
|
||||
video.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()
|
||||
overlayIcons.active = true
|
||||
hideTimer.stop()
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
anchors.fill: parent
|
||||
onClicked: function() {
|
||||
if (video.playbackState === MediaPlayer.PlayingState)
|
||||
if (video.playbackState === MediaPlayer.PlayingState) {
|
||||
video.pause()
|
||||
else
|
||||
overlayIcons.active = true
|
||||
hideTimer.stop()
|
||||
} else {
|
||||
video.play()
|
||||
hideTimer.start()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -155,12 +135,11 @@ FullscreenContentPage {
|
|||
}
|
||||
|
||||
|
||||
Flickable {
|
||||
SilicaFlickable {
|
||||
id: imageFlickable
|
||||
visible: false
|
||||
contentWidth: imageContainer.width
|
||||
contentHeight: imageContainer.height
|
||||
clip: true
|
||||
anchors.fill: parent
|
||||
onHeightChanged: if (imagePreview.status === Image.Ready) {
|
||||
imagePreview.fitToScreen()
|
||||
|
@ -224,7 +203,6 @@ FullscreenContentPage {
|
|||
property real minScale: 1.0
|
||||
property real maxScale: 3.0
|
||||
|
||||
opacity: 0.3
|
||||
anchors.fill: parent
|
||||
enabled: imagePreview.status === Image.Ready
|
||||
pinch.target: imagePreview
|
||||
|
@ -250,6 +228,11 @@ FullscreenContentPage {
|
|||
property: "scale"
|
||||
from: imagePreview.scale
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: overlayIcons.active = !overlayIcons.active
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -292,32 +275,86 @@ FullscreenContentPage {
|
|||
}
|
||||
}
|
||||
|
||||
IconButton {
|
||||
id: dismissBtn
|
||||
icon.source: "image://theme/icon-m-dismiss"
|
||||
anchors {
|
||||
top: parent.top
|
||||
topMargin: Theme.horizontalPageMargin
|
||||
right: parent.right
|
||||
rightMargin: Theme.horizontalPageMargin
|
||||
}
|
||||
onClicked: pageStack.pop()
|
||||
}
|
||||
Item {
|
||||
id: overlayIcons
|
||||
|
||||
IconButton {
|
||||
id: mediaDlBtn
|
||||
anchors {
|
||||
right: parent.right
|
||||
rightMargin: Theme.horizontalPageMargin
|
||||
bottom: parent.bottom
|
||||
bottomMargin: Theme.horizontalPageMargin
|
||||
property bool active: true
|
||||
|
||||
enabled: active
|
||||
anchors.fill: parent
|
||||
opacity: active ? 1.0 : 0.0
|
||||
Behavior on opacity { FadeAnimator {}}
|
||||
|
||||
IconButton {
|
||||
y: Theme.paddingLarge
|
||||
icon.source: "image://theme/icon-m-dismiss"
|
||||
onClicked: pageStack.pop()
|
||||
anchors {
|
||||
right: parent.right
|
||||
rightMargin: Theme.horizontalPageMargin
|
||||
}
|
||||
}
|
||||
icon.source: "image://theme/icon-m-cloud-download"
|
||||
onClicked: {
|
||||
var filename = mediaURL.split("/")
|
||||
FileDownloader.downloadFile(mediaURL, filename[filename.length-1])
|
||||
|
||||
IconButton {
|
||||
id: mediaDlBtn
|
||||
icon.source: "image://theme/icon-m-cloud-download"
|
||||
anchors {
|
||||
right: parent.right
|
||||
rightMargin: Theme.horizontalPageMargin
|
||||
bottom: parent.bottom
|
||||
bottomMargin: Theme.horizontalPageMargin
|
||||
}
|
||||
onClicked: {
|
||||
var filename = mediaURL.split("/")
|
||||
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 }
|
||||
}
|
||||
|
||||
|
|
|
@ -48,9 +48,9 @@ Item {
|
|||
width: parent.width - Theme.paddingMedium
|
||||
truncationMode: TruncationMode.Fade
|
||||
anchors {
|
||||
top: lblName.bottom
|
||||
left: parent.left
|
||||
leftMargin: Theme.paddingMedium
|
||||
top: lblName.bottom
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@ import Sailfish.Silica 1.0
|
|||
Item {
|
||||
id: miniStatus
|
||||
visible: true
|
||||
height: icon.height+Theme.paddingMedium
|
||||
width: parent.width
|
||||
height: icon.height+Theme.paddingMedium
|
||||
|
||||
Icon {
|
||||
id: icon
|
||||
|
@ -18,9 +18,9 @@ Item {
|
|||
anchors {
|
||||
top: parent.top
|
||||
topMargin: Theme.paddingMedium
|
||||
bottomMargin: Theme.paddingMedium
|
||||
left: parent.left
|
||||
leftMargin: Theme.horizontalPageMargin + Theme.iconSizeMedium - width
|
||||
bottomMargin: Theme.paddingMedium
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,8 +9,6 @@ SilicaListView {
|
|||
|
||||
property string type
|
||||
property string title
|
||||
property string vwPlaceholderText: qsTr("Loading")
|
||||
property string vwPlaceholderHint: qsTr("please wait...")
|
||||
property string description
|
||||
property ListModel mdl: []
|
||||
property variant params: []
|
||||
|
@ -29,7 +27,6 @@ SilicaListView {
|
|||
onNotify: {
|
||||
console.log(what + " - " + num)
|
||||
}
|
||||
|
||||
signal openDrawer (bool setDrawer)
|
||||
onOpenDrawer: {
|
||||
//console.log("Open drawer: " + setDrawer)
|
||||
|
@ -39,28 +36,41 @@ SilicaListView {
|
|||
console.log("LIST send signal emitted with notice: " + notice)
|
||||
}
|
||||
|
||||
|
||||
header: PageHeader {
|
||||
title: myList.title
|
||||
description: myList.description
|
||||
}
|
||||
|
||||
BusyIndicator {
|
||||
size: BusyIndicatorSize.Large
|
||||
running: myList.model.count === 0 && !viewPlaceHolder.visible
|
||||
anchors.centerIn: parent
|
||||
BusyLabel {
|
||||
id: myListBusyLabel
|
||||
running: model.count === 0
|
||||
anchors {
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 5000
|
||||
running: true
|
||||
onTriggered: {
|
||||
myListBusyLabel.visible = false
|
||||
loadStatusPlaceholder.visible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ViewPlaceholder {
|
||||
id: viewPlaceHolder
|
||||
id: loadStatusPlaceholder
|
||||
visible: false
|
||||
enabled: model.count === 0
|
||||
text: vwPlaceholderText
|
||||
hintText: vwPlaceholderHint
|
||||
text: qsTr("Nothing found")
|
||||
}
|
||||
|
||||
PullDownMenu {
|
||||
id: mainPulleyMenu
|
||||
MenuItem {
|
||||
text: qsTr("Settings")
|
||||
visible: !profilePage
|
||||
onClicked: {
|
||||
pageStack.push(Qt.resolvedUrl("../SettingsPage.qml"), {})
|
||||
}
|
||||
|
@ -68,6 +78,7 @@ SilicaListView {
|
|||
|
||||
MenuItem {
|
||||
text: qsTr("New Toot")
|
||||
visible: !profilePage
|
||||
onClicked: {
|
||||
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
||||
headerTitle: qsTr("New Toot"),
|
||||
|
@ -77,7 +88,15 @@ SilicaListView {
|
|||
}
|
||||
|
||||
MenuItem {
|
||||
text: qsTr("Load more")
|
||||
text: qsTr("Open in Browser")
|
||||
visible: !mainPage
|
||||
onClicked: {
|
||||
Qt.openUrlExternally(url)
|
||||
}
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
text: qsTr("Reload")
|
||||
onClicked: {
|
||||
loadData("prepend")
|
||||
}
|
||||
|
@ -101,7 +120,7 @@ SilicaListView {
|
|||
console.log("CountChanged!")*/
|
||||
}
|
||||
|
||||
footer: Item{
|
||||
footer: Item {
|
||||
visible: autoLoadMore
|
||||
width: parent.width
|
||||
height: Theme.itemSizeLarge
|
||||
|
@ -116,10 +135,13 @@ SilicaListView {
|
|||
}
|
||||
|
||||
BusyIndicator {
|
||||
running: loadStarted
|
||||
visible: myListBusyLabel.running ? false : true
|
||||
size: BusyIndicatorSize.Small
|
||||
running: loadStarted;
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -163,10 +185,10 @@ SilicaListView {
|
|||
|
||||
function loadData(mode) {
|
||||
var p = []
|
||||
if (params.length)
|
||||
if (params.length) {
|
||||
for(var i = 0; i<params.length; i++)
|
||||
p.push(params[i])
|
||||
|
||||
}
|
||||
if (mode === "append" && model.count) {
|
||||
p.push({name: 'max_id', data: model.get(model.count-1).id})
|
||||
}
|
||||
|
@ -180,7 +202,8 @@ SilicaListView {
|
|||
'model' : model,
|
||||
'mode' : mode,
|
||||
'conf' : Logic.conf
|
||||
};
|
||||
}
|
||||
|
||||
console.log(JSON.stringify(msg))
|
||||
if (type !== "")
|
||||
worker.sendMessage(msg)
|
||||
|
|
|
@ -4,20 +4,39 @@ import QtMultimedia 5.0
|
|||
|
||||
|
||||
Item {
|
||||
id: myImage
|
||||
id: myMedia
|
||||
|
||||
property string type : ""
|
||||
property string previewURL: ""
|
||||
property string mediaURL: ""
|
||||
|
||||
Rectangle {
|
||||
opacity: 0.2
|
||||
opacity: 0.4
|
||||
color: Theme.highlightDimmerColor
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
@ -31,6 +50,7 @@ Item {
|
|||
|
||||
Image {
|
||||
id: img
|
||||
visible: type != 'audio'
|
||||
asynchronous: true
|
||||
opacity: status === Image.Ready ? 1.0 : 0.0
|
||||
Behavior on opacity { FadeAnimator {} }
|
||||
|
@ -59,30 +79,31 @@ Item {
|
|||
Image {
|
||||
id: videoIcon
|
||||
visible: type === "video" || type === "gifv"
|
||||
source: "image://theme/icon-l-play"
|
||||
source: "image://theme/icon-l-play?"
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
|
||||
BusyIndicator {
|
||||
id: mediaLoader
|
||||
visible: type != 'audio'
|
||||
size: BusyIndicatorSize.Large
|
||||
running: img.status !== Image.Ready
|
||||
opacity: img.status === Image.Ready ? 0.0 : 1.0
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: mediaWarning
|
||||
color: Theme.highlightDimmerColor
|
||||
visible: typeof status_sensitive != 'undefined' && status_sensitive ? true : false
|
||||
anchors.fill: parent
|
||||
|
||||
visible: typeof status_sensitive != "undefined" && status_sensitive ? true : false
|
||||
Image {
|
||||
source: "image://theme/icon-l-attention?"+Theme.highlightColor
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
|
||||
anchors.fill: parent
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: parent.visible = false
|
|
@ -17,7 +17,7 @@ SilicaGridView {
|
|||
ListModel {
|
||||
id: listModel
|
||||
ListElement {
|
||||
icon: "image://theme/icon-m-home"
|
||||
icon: "image://theme/icon-m-home?"
|
||||
slug: "home"
|
||||
name: "Home"
|
||||
active: true
|
||||
|
@ -25,14 +25,14 @@ SilicaGridView {
|
|||
}
|
||||
|
||||
ListElement {
|
||||
icon: "image://theme/icon-m-alarm"
|
||||
icon: "image://theme/icon-m-alarm?"
|
||||
slug: "notifications"
|
||||
name: "Notifications"
|
||||
active: false
|
||||
}
|
||||
|
||||
ListElement {
|
||||
icon: "image://theme/icon-m-whereami"
|
||||
icon: "image://theme/icon-m-whereami?"
|
||||
slug: "local"
|
||||
name: "Local"
|
||||
active: false
|
||||
|
@ -40,7 +40,7 @@ SilicaGridView {
|
|||
}
|
||||
|
||||
ListElement {
|
||||
icon: "image://theme/icon-m-website"
|
||||
icon: "image://theme/icon-m-website?"
|
||||
slug: "federated"
|
||||
name: "Federated"
|
||||
active: false
|
||||
|
@ -48,7 +48,7 @@ SilicaGridView {
|
|||
}
|
||||
|
||||
ListElement {
|
||||
icon: "image://theme/icon-m-search"
|
||||
icon: "image://theme/icon-m-search?"
|
||||
slug: "search"
|
||||
name: "Search"
|
||||
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 {
|
||||
id: image
|
||||
visible: false
|
||||
source: model.icon // +'?'+ (highlighted ? Theme.highlightColor : (model.active ? Theme.primaryColor : Theme.secondaryHighlightColor))
|
||||
source: model.icon
|
||||
sourceSize.width: Theme.iconSizeMedium
|
||||
sourceSize.height: Theme.iconSizeMedium
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
|
||||
Text {
|
||||
visible: false
|
||||
text: model.name
|
||||
font.pixelSize: Theme.fontSizeExtraSmall/2
|
||||
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
|
||||
ColorOverlay {
|
||||
source: image
|
||||
color: (highlighted ? Theme.highlightColor : (model.active ? Theme.secondaryHighlightColor : Theme.primaryColor))
|
||||
anchors.fill: image
|
||||
}
|
||||
|
||||
onClicked: {
|
|
@ -12,14 +12,14 @@ Item {
|
|||
property string bg: ""
|
||||
|
||||
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 {
|
||||
id: bgImage
|
||||
opacity: 0.2
|
||||
opacity: 0.7
|
||||
gradient: Gradient {
|
||||
GradientStop { position: 0.0; color: Theme.highlightBackgroundColor }
|
||||
GradientStop { position: 1.0; color: Theme.highlightBackgroundColor }
|
||||
GradientStop { position: 0.0; color: Theme.highlightDimmerColor }
|
||||
GradientStop { position: 2.0; color: Theme.highlightBackgroundColor }
|
||||
}
|
||||
anchors.fill: parent
|
||||
|
||||
|
@ -27,6 +27,7 @@ Item {
|
|||
asynchronous: true
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
source: bg
|
||||
opacity: 0.6
|
||||
anchors.fill: parent
|
||||
}
|
||||
}
|
||||
|
@ -35,11 +36,9 @@ Item {
|
|||
id: avatarImage
|
||||
asynchronous: true
|
||||
source: if (avatarImage.status === Image.Error)
|
||||
source = "../../images/icon-l-profile.svg?" + (pressed
|
||||
? Theme.highlightColor
|
||||
: Theme.primaryColor)
|
||||
source = "../../images/icon-l-profile.svg?" + Theme.primaryColor
|
||||
else image
|
||||
width: Theme.iconSizeLarge
|
||||
width: isPortrait ? Theme.iconSizeLarge : Theme.iconSizeExtraLarge
|
||||
height: width
|
||||
anchors {
|
||||
left: parent.left
|
||||
|
@ -96,7 +95,7 @@ Item {
|
|||
color: Theme.secondaryHighlightColor
|
||||
truncationMode: TruncationMode.Fade
|
||||
width: parent.width
|
||||
height: description === "" ? 0 : contentHeight
|
||||
height: contentHeight
|
||||
horizontalAlignment: Text.AlignRight
|
||||
}
|
||||
}
|
||||
|
@ -108,7 +107,7 @@ Item {
|
|||
height: followed_by || locked || bot || group ? Theme.iconSizeSmall + Theme.paddingSmall : 0
|
||||
anchors {
|
||||
top: avatarImage.bottom
|
||||
topMargin: Theme.paddingMedium
|
||||
topMargin: isPortrait ? Theme.paddingMedium : 0
|
||||
left: parent.left
|
||||
leftMargin: Theme.horizontalPageMargin
|
||||
right: parent.right
|
||||
|
@ -183,8 +182,10 @@ Item {
|
|||
text: qsTr("Bot")
|
||||
font.pixelSize: Theme.fontSizeExtraSmall
|
||||
color: Theme.primaryColor
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors {
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,12 +16,12 @@ FullscreenContentPage {
|
|||
|
||||
IconButton {
|
||||
icon.source: "image://theme/icon-m-dismiss"
|
||||
onClicked: pageStack.pop()
|
||||
anchors {
|
||||
top: profileImage.top
|
||||
topMargin: Theme.horizontalPageMargin
|
||||
right: parent.right
|
||||
rightMargin: Theme.horizontalPageMargin
|
||||
}
|
||||
onClicked: pageStack.pop()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ BackgroundItem {
|
|||
signal send (string notice)
|
||||
signal navigateTo(string link)
|
||||
|
||||
width: parent.width
|
||||
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)
|
||||
} 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
|
||||
x: 0
|
||||
y: 0
|
||||
visible: status_visibility === "direct"
|
||||
visible: model.status_visibility === "direct"
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
opacity: 0.3
|
||||
|
@ -43,7 +42,6 @@ BackgroundItem {
|
|||
// Account avatar
|
||||
Image {
|
||||
id: avatar
|
||||
visible: true
|
||||
opacity: status === Image.Ready ? 1.0 : 0.0
|
||||
Behavior on opacity { FadeAnimator {} }
|
||||
asynchronous: true
|
||||
|
@ -59,9 +57,7 @@ BackgroundItem {
|
|||
}
|
||||
onStatusChanged: {
|
||||
if (avatar.status === Image.Error)
|
||||
source = "../../images/icon-m-profile.svg?" + (pressed
|
||||
? Theme.highlightColor
|
||||
: Theme.primaryColor)
|
||||
source = "../../images/icon-m-profile.svg?" + Theme.primaryColor
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
|
@ -98,7 +94,7 @@ BackgroundItem {
|
|||
visible: status_visibility === "direct"
|
||||
width: Theme.iconSizeMedium
|
||||
height: width
|
||||
source: "image://theme/icon-m-mail?"
|
||||
source: "image://theme/icon-m-mail?" + Theme.primaryColor
|
||||
color: Theme.primaryColor
|
||||
anchors {
|
||||
horizontalCenter: avatar.horizontalCenter
|
||||
|
@ -192,7 +188,7 @@ BackgroundItem {
|
|||
left: miniHeader.left
|
||||
leftMargin: Theme.paddingMedium
|
||||
right: miniHeader.right
|
||||
rightMargin: Theme.horizontalPageMargin
|
||||
rightMargin: Theme.horizontalPageMargin + Theme.paddingMedium
|
||||
top: miniHeader.bottom
|
||||
topMargin: Theme.paddingSmall
|
||||
bottomMargin: Theme.paddingLarge
|
||||
|
@ -202,7 +198,6 @@ BackgroundItem {
|
|||
console.log(link)
|
||||
console.log(JSON.stringify(test))
|
||||
console.log(JSON.stringify(test.length))
|
||||
|
||||
if (test.length === 5 && (test[3] === "tags" || test[3] === "tag") ) {
|
||||
pageStack.pop(pageStack.find(function(page) {
|
||||
var check = page.isFirstPage === true;
|
||||
|
@ -255,21 +250,20 @@ BackgroundItem {
|
|||
anchors.fill: parent
|
||||
onClicked: parent.visible = false
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Displays media in Toots
|
||||
MediaBlock {
|
||||
id: media
|
||||
visible: if (myList.type === "notifications" && ( type === "favourite" || type === "reblog" )) {
|
||||
false
|
||||
} else true
|
||||
visible: (myList.type === "notifications" && ( type === "favourite" || type === "reblog" )) ? false : true
|
||||
model: typeof attachments !== "undefined" ? attachments : Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject')
|
||||
height: Theme.iconSizeExtraLarge * 2
|
||||
anchors {
|
||||
left: lblContent.left
|
||||
leftMargin: isPortrait ? 0 : Theme.itemSizeSmall
|
||||
right: lblContent.right
|
||||
rightMargin: isPortrait ? 0 : Theme.itemSizeLarge * 1.2
|
||||
top: lblContent.bottom
|
||||
topMargin: Theme.paddingMedium
|
||||
bottomMargin: Theme.paddingLarge
|
||||
|
@ -283,7 +277,7 @@ BackgroundItem {
|
|||
MenuItem {
|
||||
id: mnuBoost
|
||||
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")
|
||||
onClicked: {
|
||||
var status = typeof model.status_reblogged !== "undefined" && model.status_reblogged
|
||||
|
@ -301,7 +295,7 @@ BackgroundItem {
|
|||
Icon {
|
||||
id: icRT
|
||||
source: "image://theme/icon-s-retweet?" + (!model.status_reblogged ? Theme.highlightColor : Theme.primaryColor)
|
||||
width: Theme.iconSizeExtraSmall
|
||||
width: Theme.iconSizeSmall
|
||||
height: width
|
||||
anchors {
|
||||
leftMargin: Theme.horizontalPageMargin
|
||||
|
@ -311,8 +305,8 @@ BackgroundItem {
|
|||
}
|
||||
|
||||
Label {
|
||||
text: status_reblogs_count // from API.js
|
||||
font.pixelSize: Theme.fontSizeExtraSmall
|
||||
text: status_reblogs_count
|
||||
font.pixelSize: Theme.fontSizeSmall
|
||||
color: !model.status_reblogged ? Theme.highlightColor : Theme.primaryColor
|
||||
anchors {
|
||||
left: icRT.right
|
||||
|
@ -342,18 +336,18 @@ BackgroundItem {
|
|||
Icon {
|
||||
id: icFA
|
||||
source: "image://theme/icon-s-favorite?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
|
||||
width: Theme.iconSizeExtraSmall
|
||||
width: Theme.iconSizeSmall
|
||||
height: width
|
||||
anchors {
|
||||
leftMargin: Theme.horizontalPageMargin
|
||||
left: parent.left
|
||||
leftMargin: Theme.horizontalPageMargin
|
||||
verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: status_favourites_count
|
||||
font.pixelSize: Theme.fontSizeExtraSmall
|
||||
font.pixelSize: Theme.fontSizeSmall
|
||||
color: !model.status_favourited ? Theme.highlightColor : Theme.primaryColor
|
||||
anchors {
|
||||
left: icFA.right
|
||||
|
@ -383,7 +377,7 @@ BackgroundItem {
|
|||
id: icBM
|
||||
source: "../../images/icon-s-bookmark.svg?"
|
||||
color: !model.status_bookmarked ? Theme.highlightColor : Theme.primaryColor
|
||||
width: Theme.iconSizeExtraSmall
|
||||
width: Theme.iconSizeSmall
|
||||
height: width
|
||||
anchors {
|
||||
left: parent.left
|
||||
|
@ -393,7 +387,6 @@ BackgroundItem {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
MenuItem {
|
||||
id: mnuMention
|
||||
visible: model.type === "follow"
|
||||
|
@ -409,7 +402,7 @@ BackgroundItem {
|
|||
Icon {
|
||||
id: icMT
|
||||
source: "image://theme/icon-s-chat?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
|
||||
width: Theme.iconSizeExtraSmall
|
||||
width: Theme.iconSizeSmall
|
||||
height: width
|
||||
anchors {
|
||||
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: {
|
||||
var m = Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject');
|
||||
if (typeof mdl !== "undefined")
|
||||
m.append(mdl.get(index))
|
||||
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
||||
headerTitle: qsTr("Conversation"),
|
||||
"toot_id": status_id,
|
||||
"toot_url": status_url,
|
||||
"toot_uri": status_uri,
|
||||
"description": '@'+account_acct,
|
||||
mdl: m,
|
||||
type: "reply"
|
||||
})
|
||||
|
||||
if (model.type !== "follow") {
|
||||
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
|
||||
headerTitle: qsTr("Conversation"),
|
||||
"status_id": status_id,
|
||||
"status_url": status_url,
|
||||
"status_uri": status_uri,
|
||||
"username": '@'+account_acct,
|
||||
mdl: m,
|
||||
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: {
|
||||
console.log(JSON.stringify(mdl.get(index)))
|
||||
mnu.open(delegate)
|
||||
|
|
|
@ -25,7 +25,10 @@ BuildRequires: pkgconfig(sailfishapp) >= 1.0.2
|
|||
BuildRequires: pkgconfig(Qt5Core)
|
||||
BuildRequires: pkgconfig(Qt5Qml)
|
||||
BuildRequires: pkgconfig(Qt5Quick)
|
||||
BuildRequires: pkgconfig(Qt5DBus)
|
||||
BuildRequires: pkgconfig(Qt5Multimedia)
|
||||
BuildRequires: pkgconfig(nemonotifications-qt5)
|
||||
BuildRequires: pkgconfig(openssl)
|
||||
BuildRequires: desktop-file-utils
|
||||
|
||||
%description
|
||||
|
|
|
@ -25,12 +25,14 @@ PkgConfigBR:
|
|||
- Qt5Core
|
||||
- Qt5Qml
|
||||
- Qt5Quick
|
||||
- Qt5DBus
|
||||
- Qt5Multimedia
|
||||
- nemonotifications-qt5
|
||||
|
||||
- openssl
|
||||
|
||||
# Build dependencies without a pkgconfig setup can be listed here
|
||||
# PkgBR:
|
||||
# - package-needed-to-build
|
||||
# PkgBR:
|
||||
# - qt5-qtmultimedia-plugin-mediaservice-gstmediaplayer
|
||||
|
||||
# Runtime dependencies which are not automatically detected
|
||||
Requires:
|
||||
|
|
|
@ -24,7 +24,7 @@ class FileDownloader : public QObject
|
|||
{
|
||||
Q_OBJECT
|
||||
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 open(QString filename);
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include <QtCore/QFile>
|
||||
#include <QtCore/QFileInfo>
|
||||
|
||||
//static const QUrl IMGUR_UPLOAD_URL("https://httpbin.org/post");
|
||||
//static const QUrl IMGUR_UPLOAD_URL();
|
||||
|
||||
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));
|
||||
|
||||
|
||||
|
||||
//POST data
|
||||
|
||||
|
||||
|
||||
QNetworkRequest request(m_uploadUrl);
|
||||
request.setRawHeader("Authorization", m_authorizationHeader);
|
||||
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(finished()), this, SLOT(replyFinished()));
|
||||
|
||||
|
||||
|
||||
//connect(m_reply, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(uploadProgress(qint64,qint64)));
|
||||
//connect(m_reply, SIGNAL(finished()), this, SLOT(replyFinished()));*/
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ class ImageUploader : public QObject
|
|||
Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged)
|
||||
|
||||
public:
|
||||
explicit ImageUploader(QObject *parent = 0);
|
||||
explicit ImageUploader(QObject *parent = nullptr);
|
||||
~ImageUploader();
|
||||
|
||||
Q_INVOKABLE void setFile(const QString &fileName);
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation>Inhaltswarnung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation>Was gibt's Neues?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation>Öffentlich</translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation>Antwort verbergen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Im Browser öffnen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Benachrichtigungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Neuer Toot</translation>
|
||||
<source>Local</source>
|
||||
<translation>Lokal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Föderiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@Benutzer oder #Ausdruck</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Lokal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Föderation</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Neuer Toot</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Lade mehr</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Wird geladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>bitte warten...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Neuer Toot</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Beiträge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Erwähnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Blockieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Im Browser öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Erwähnen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Διαγραφή</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -114,7 +116,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Reload</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Επαναφόρτωση</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Ειδοποιήσεις</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Νέος</translation>
|
||||
<source>Local</source>
|
||||
<translation>Τοπικός</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@χρήστη ή #όρος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Τοπικός</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Νέος</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,25 +174,25 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Φόρτωση περισσοτέρων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Ρυθμίσεις</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Φόρτωση</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Νέος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<source>Reload</source>
|
||||
<translation>Φόρτωση περισσοτέρων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Νέος</translation>
|
||||
<source>Nothing found</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Κατάσταση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Φραγή</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Φραγή</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
@ -379,7 +377,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Φραγή</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Conversation</source>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation>Escribe aquí tu advertencia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation>¿En qué estás pensando?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Borrar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation>Público</translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation>Cerrar respuesta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Abrir en el navegador</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Notificaciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nuevo toot</translation>
|
||||
<source>Local</source>
|
||||
<translation>Local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Federada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@usuario o #término</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Federada</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Nuevo toot</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Cargar más</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Ajustes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Cargando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>por favor, espera...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nuevo toot</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Estados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Mencionar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Bloquear</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Abrir en el navegador</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Mencionar</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation>Rédigez votre alerte ici</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation>Qu'avez-vous en tête?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Supprimer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation>Public</translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation>Masquer la réponse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Ouvrir dans le navigateur</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Notifications</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nouveau pouet</translation>
|
||||
<source>Local</source>
|
||||
<translation>Fil public local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Fil public global</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@personne ou #terme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Fil public local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Fil public global</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Nouveau pouet</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Charger plus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Paramètres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Chargement</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>patientez...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nouveau pouet</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Pouets</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Mentionner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Bloquer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Ouvrir dans le navigateur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Mentionner</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation>Contenuto avviso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation>A cosa stai pensando?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Elimina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation>Pubblico</translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation>Chuidere risposta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Aprire nel browser</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Notifiche</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nuovo Toot</translation>
|
||||
<source>Local</source>
|
||||
<translation>Locale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Federazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@utente o #terme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Locale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Federazione</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Nuovo Toot</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Caricare altri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Impostazioni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Caricamento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>Attendere un momento...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nuovo Toot</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Toots</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Menzionare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Blocca</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Aprire nel browser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Menzionare</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation>Waarschuwingstekst</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation>Wat wil je kwijt?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Verwijderen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation>Openbaar</translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation>Antwoord verbergen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Open een Browser</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Meldingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nieuwe Toot</translation>
|
||||
<source>Local</source>
|
||||
<translation>Lokaal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Gefedereerd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,19 +146,15 @@
|
|||
<translation>@user of #term</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Lokaal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Gefedereerd</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Nieuwe Toot</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MediaFullScreen</name>
|
||||
<message>
|
||||
<source>Error loading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Laadfout</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Meer laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Instellingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>even geduld…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nieuwe Toot</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Statussen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Vermelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Blokkeren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Open een Browser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Vermelden</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
@ -327,7 +325,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Visual identity</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Visuele identiteit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Development and translations</source>
|
||||
|
@ -335,19 +333,19 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Occitan & French translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Occitaanse & Franse vertaling</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Chinese translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Chinese vertaling</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dutch translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nederlandse vertaling</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Spanish translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Spaanse vertaling</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use</source>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Verwijderen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -80,7 +82,7 @@
|
|||
<name>EmojiSelect</name>
|
||||
<message>
|
||||
<source>Emojis</source>
|
||||
<translation>Emoji’s</translation>
|
||||
<translation>Emojis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tap to insert</source>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Meldingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nieuwen toot</translation>
|
||||
<source>Local</source>
|
||||
<translation>Lokaal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Gefedereerd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@gebruiker of #term</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Lokaal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Gefedereerd</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Nieuwen toot</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Meer laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Instellingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>efkens geduld…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nieuwen toot</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Statussen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Blokkeren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Escafar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -121,31 +123,31 @@
|
|||
<name>MainPage</name>
|
||||
<message>
|
||||
<source>Home</source>
|
||||
<translation>Acuèlh</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Notifications</source>
|
||||
<translation>Notificacions</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Local</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Cargar mai</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Parmètres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Cargament</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>esperatz....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nòu Tut</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Estatuts</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Blocar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Usuń</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished">Otwarte w przeglądarce</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -98,7 +100,7 @@
|
|||
<name>LoginPage</name>
|
||||
<message>
|
||||
<source>Login</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Login</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Instance</source>
|
||||
|
@ -114,7 +116,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Reload</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Załaduj ponownie</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Powiadomienia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nowy wpis</translation>
|
||||
<source>Local</source>
|
||||
<translation>Lokalne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Globalne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@użytkownik lub #tag</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Lokalne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Globalne</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Nowy wpis</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Załaduj więcej</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Ustawienia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Ładowanie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>proszę czekać…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Nowy wpis</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
|
@ -25,48 +25,50 @@
|
|||
<message>
|
||||
<source>Copy Link to Clipboard</source>
|
||||
<extracomment>Use the translation of "Copy Link" for a shorter PullDownMenu label</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Копировать ссылку</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation>Текст предупреждения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Удалить</translation>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation>О чём думаете?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Публичный</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unlisted</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Скрытый</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Followers-only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Приватный</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Direct</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Адресованный</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toot sent!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Поста отправлено!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reply</source>
|
||||
<extracomment>"Reply" will show the Toot text entry Panel. "Hide Reply" closes it. Alternative: Use "Close Reply"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ответ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hide Reply</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Скрыть ответ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Открыть в браузере</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -98,11 +100,11 @@
|
|||
<name>LoginPage</name>
|
||||
<message>
|
||||
<source>Login</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Авторизоваться</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Instance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Экземпляра</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter a valid Mastodon instance URL</source>
|
||||
|
@ -114,7 +116,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Reload</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Перезарядка</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Уведомления</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Новый</translation>
|
||||
<source>Local</source>
|
||||
<translation>Локальны</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Федеративные</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,19 +146,15 @@
|
|||
<translation>@пользователь или #срок</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Локальный</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Федеративные</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Новый</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MediaFullScreen</name>
|
||||
<message>
|
||||
<source>Error loading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ошибка при загрузке</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,40 +174,40 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Загрузи больше</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Настройки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Загрузка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>Пожалуйста, подождите...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Новый</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
<message>
|
||||
<source>Bot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>бот</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Follows you</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Подписан(а) на вас</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Группа</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -213,7 +215,7 @@
|
|||
<message>
|
||||
<source>About</source>
|
||||
<extracomment>If there's no good translation for "About", use "Details" (in details about profile).</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Подробности</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Followers</source>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Статусы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Упоминание</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||
|
@ -238,7 +244,7 @@
|
|||
<message>
|
||||
<source>Requested</source>
|
||||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Запрошенный</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Follow</source>
|
||||
|
@ -265,14 +271,6 @@
|
|||
<extracomment>Is a button. Keep it as short as possible.</extracomment>
|
||||
<translation>Блокировать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
@ -282,7 +280,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Options</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Параметры</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Load Images in Toots</source>
|
||||
|
@ -327,27 +325,27 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Visual identity</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Визуальная идентичность</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Development and translations</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Разработка и переводы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Occitan & French translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>французский перевод</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Chinese translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Китайский перевод</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dutch translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Голландский перевод</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Spanish translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Испанский перевод</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use</source>
|
||||
|
@ -379,19 +377,19 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Упоминание</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Conversation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>беседа</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove Bookmark</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Убрать из закладок</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bookmark</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Добавить в закладки</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Обриши</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -114,7 +116,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Reload</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">учитај још</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Обавјештење</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Novi toot</translation>
|
||||
<source>Local</source>
|
||||
<translation>Локална</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Федеративна</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@korisnik ili #pojam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Локална</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Федеративна</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Novi toot</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>учитај још</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Подешавања</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Učitavanje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>молимо вас, сачекајте...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Novi toot</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Статуси</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Блокирати</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Radera</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -114,7 +116,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Reload</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Ladda mer</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>Notifieringar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Ny toot</translation>
|
||||
<source>Local</source>
|
||||
<translation>Lokalt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Förenade</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@user eller #term</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>Lokalt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>Förenade</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>Ny toot</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Ladda mer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Inställningar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>Laddar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>Vänligen vänta...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>Ny toot</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Statusar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Blockera</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation>在此编写你的警告信息</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation>有何想法?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>删除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation>公共区域</translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation>隐藏回复</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>在浏览器打开个人简介</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -128,8 +130,12 @@
|
|||
<translation>通知</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>新嘟嘟</translation>
|
||||
<source>Local</source>
|
||||
<translation>本地</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>联合</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
|
@ -140,12 +146,8 @@
|
|||
<translation>@用户或#项目</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation>本地</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Federated</source>
|
||||
<translation>联合</translation>
|
||||
<source>New Toot</source>
|
||||
<translation>新嘟嘟</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>加载更多</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation>加载中</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation>稍等片刻......</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>新嘟嘟</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>状态</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>提及</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>封锁</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>在浏览器打开个人简介</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>提及</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
@ -356,7 +354,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>to help with app translation to your language.</source>
|
||||
<translation>以帮助翻译软件为你使用的语言</translation>
|
||||
<translation>以帮助翻译软件为你使用的语言.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
@ -29,16 +29,14 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Write your warning here</source>
|
||||
<extracomment>placeholderText in Toot content warning panel</extracomment>
|
||||
<translation>Write your warning here</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>What's on your mind?</source>
|
||||
<extracomment>placeholderText in Toot text panel</extracomment>
|
||||
<translation>What's on your mind?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Delete</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Public</source>
|
||||
<translation>Public</translation>
|
||||
|
@ -68,6 +66,10 @@
|
|||
<source>Hide Reply</source>
|
||||
<translation>Hide Reply</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Open in Browser</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoverPage</name>
|
||||
|
@ -121,31 +123,31 @@
|
|||
<name>MainPage</name>
|
||||
<message>
|
||||
<source>Home</source>
|
||||
<translation></translation>
|
||||
<translation>Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Notifications</source>
|
||||
<translation></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>
|
||||
<translation>Notifications</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Local</source>
|
||||
<translation></translation>
|
||||
<translation>Local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -172,26 +174,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>MyList</name>
|
||||
<message>
|
||||
<source>Load more</source>
|
||||
<translation>Load more</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Settings</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>please wait...</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Toot</source>
|
||||
<translation>New Toot</translation>
|
||||
</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>
|
||||
<name>ProfileHeader</name>
|
||||
|
@ -230,6 +232,10 @@
|
|||
<extracomment>Will show as: "115 Statuses"</extracomment>
|
||||
<translation>Statuses</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Mention</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unfollow</source>
|
||||
<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>
|
||||
<translation>Block</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open in Browser</source>
|
||||
<translation>Open in Browser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mention</source>
|
||||
<translation>Mention</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
Loading…
Reference in a new issue