version v0.6.7 with moderation
This commit is contained in:
parent
5f8edccdfe
commit
48a70b8395
|
@ -1,3 +1,10 @@
|
|||
## v0.6.7
|
||||
|
||||
* Upload multiple images for post and add image descriptions
|
||||
* Block user
|
||||
* Report user
|
||||
* Create Calendar entry from post text
|
||||
|
||||
## v0.6.6
|
||||
|
||||
* Create event
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- source-linux/qml/friendiqa.qml
|
||||
+++ source-linux/qml/friendiqa.qml
|
||||
@@ -191,7 +191,7 @@
|
||||
@@ -193,7 +193,7 @@
|
||||
color: Material.backgroundColor
|
||||
}
|
||||
|
||||
|
|
|
@ -31,14 +31,13 @@ Currently supported:
|
|||
* Update fetches new posts (up to last 50) since last in local DB
|
||||
* More shows older posts from local DB
|
||||
* Create new Message with images or direct messages,smileys
|
||||
* Send image from Android gallery
|
||||
* Send image(s) from Android gallery
|
||||
* Send text or urls from other apps to Friendiqa
|
||||
* Native Android image dialog
|
||||
|
||||
ToDo:
|
||||
|
||||
* Videos and other binary data as attachment (sending, not supported in API)
|
||||
* More than one attachment
|
||||
* Attachments for Direct messages (currently not supported in API)
|
||||
|
||||
# Friends
|
||||
|
@ -48,7 +47,7 @@ Currently supported:
|
|||
* Tabs for own profiles, friends, other contacts and groups
|
||||
* Show profile(s) of user and change profile picture
|
||||
* List of all known contacts with locally downloaded pictures
|
||||
* Follow or unfollow contacts
|
||||
* Follow/unfollow or block/unblock contacts
|
||||
* Search for new contacts according to topic
|
||||
* Show follow requests; approve, deny, ignore requests
|
||||
* Additional information, last messages and other functionality shown in news tab
|
||||
|
@ -92,7 +91,7 @@ Currently supported:
|
|||
|
||||
ToDo
|
||||
|
||||
* Create events (needs API)
|
||||
* Show more details and attendance of events (needs API)
|
||||
|
||||
# Config/Accounts
|
||||
|
||||
|
@ -107,7 +106,7 @@ Currently supported:
|
|||
|
||||
ToDo
|
||||
|
||||
* OAuth?
|
||||
* OAuth
|
||||
|
||||
# Other
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<manifest package="org.qtproject.friendiqa" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.6.6" android:versionCode="32" android:installLocation="auto">
|
||||
<manifest package="org.qtproject.friendiqa" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.6.7" android:versionCode="33" android:installLocation="auto">
|
||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="31"/>
|
||||
|
||||
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
|
||||
|
|
|
@ -58,8 +58,10 @@ ApplicationWindow{
|
|||
signal newstypeSignal(var type)
|
||||
signal friendsSignal(var username)
|
||||
signal contactdetailsSignal(var contact)
|
||||
signal contactRefreshSignal()
|
||||
signal searchSignal (var searchterm)
|
||||
signal eventSignal(var contact)
|
||||
signal eventcreateSignal(var event)
|
||||
signal uploadSignal(var urls)
|
||||
signal sendtextSignal(var intenttext)
|
||||
signal changeimage(var method, var type, var id)
|
||||
|
|
|
@ -252,5 +252,9 @@
|
|||
<file>qml/contactqml/ContactsSearchPage.qml</file>
|
||||
<file>images/Friendiqa.ico</file>
|
||||
<file>qml/calendarqml/EventCreate.qml</file>
|
||||
<file>qml/newsqml/BlockUser.qml</file>
|
||||
<file>qml/newsqml/ReportUser.qml</file>
|
||||
<file>qml/newsqml/MessageImageUploadDialog.qml</file>
|
||||
<file>qml/configqml/AcceptRules.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -307,7 +307,10 @@ void UPDATENEWS::store(QByteArray serverreply,QString apiname)
|
|||
query.bindValue(5,newsitem["source"]);
|
||||
query.bindValue(6,newsitem["id"].toInt());
|
||||
if(newsitem["in_reply_to_user_id"]!=QJsonValue::Null){ query.bindValue(7,newsitem["in_reply_to_user_id"].toInt());}
|
||||
query.bindValue(8,newsitem["geo"]);
|
||||
QJsonObject geo;
|
||||
geo["external_url"]=newsitem["external_url"];
|
||||
query.bindValue(8,QJsonDocument(geo).toJson(QJsonDocument::Compact).toStdString().c_str());
|
||||
//query.bindValue(8,newsitem["geo"]);
|
||||
query.bindValue( 9, newsitem["favorited"].toInt());
|
||||
query.bindValue(10, newsitem["user"]["id"].toInt());
|
||||
//if (newsitem["friendica_title"]!="") {
|
||||
|
|
|
@ -49,7 +49,7 @@ XHR *XHR::instance()
|
|||
|
||||
XHR::XHR(QObject *parent) : QObject(parent)
|
||||
{
|
||||
request.setSslConfiguration(QSslConfiguration::defaultConfiguration());
|
||||
//request.setSslConfiguration(QSslConfiguration::defaultConfiguration());
|
||||
}
|
||||
|
||||
void XHR::setUrl(QString url)
|
||||
|
@ -174,6 +174,7 @@ void XHR::clearParams()
|
|||
void XHR::download()
|
||||
{
|
||||
QUrl requrl(m_url);
|
||||
QNetworkRequest request;
|
||||
if(m_downloadtype=="picturelist"){
|
||||
QByteArray loginData = m_login.toLocal8Bit().toBase64();
|
||||
QString headerData = "Basic " + loginData;
|
||||
|
@ -205,6 +206,7 @@ void XHR::get()
|
|||
requrl.setQuery(query);
|
||||
QByteArray loginData = m_login.toLocal8Bit().toBase64();
|
||||
QString headerData = "Basic " + loginData;
|
||||
QNetworkRequest request;
|
||||
request.setRawHeader("Authorization", headerData.toLocal8Bit());
|
||||
request.setUrl(requrl);
|
||||
reply = manager.get(request);
|
||||
|
@ -224,7 +226,7 @@ void XHR::getlist()
|
|||
XHR::setUrl(m_filelist.at(dlindex));}
|
||||
else {
|
||||
XHR::setUrl(m_filelist.at(dlindex));}
|
||||
qDebug() << "start download" << m_url;
|
||||
//qDebug() << "start download" << m_url;
|
||||
XHR::download();
|
||||
} else {dlindex=0;m_downloadtype="";m_contactlist.clear();m_filelist.clear();}
|
||||
}
|
||||
|
@ -238,11 +240,8 @@ void XHR::post()
|
|||
QHashIterator<QString, QString> iparams(params);
|
||||
while(iparams.hasNext()) {
|
||||
iparams.next();
|
||||
//qDebug() << "\t add param " << iparams.key() << " : " << iparams.value();
|
||||
QHttpPart textPart;
|
||||
textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"" + iparams.key() + "\""));
|
||||
|
||||
|
||||
textPart.setBody(iparams.value().toUtf8());
|
||||
multiPart->append(textPart);
|
||||
}
|
||||
|
@ -251,7 +250,7 @@ void XHR::post()
|
|||
if (files.contains("media")){
|
||||
uimg.setAngle(files.value("angle").toInt());
|
||||
uimg.setSource(files.value("media"));
|
||||
|
||||
//qDebug() << "\t add media " << files.value("media") << " : " << files.value("angle").toInt();
|
||||
QHttpPart imagePart;
|
||||
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant(uimg.mimetype()));
|
||||
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"media\"; filename=\""+uimg.filename()+"\""));
|
||||
|
@ -261,8 +260,8 @@ void XHR::post()
|
|||
|
||||
QByteArray loginData = m_login.toLocal8Bit().toBase64();
|
||||
QString headerData = "Basic " + loginData;
|
||||
QNetworkRequest request;
|
||||
request.setRawHeader(QByteArray("Authorization"), headerData.toLocal8Bit());
|
||||
|
||||
request.setUrl(m_url+m_api);
|
||||
reply = manager.post(request, multiPart);
|
||||
qDebug() << "\t request sent";
|
||||
|
@ -273,6 +272,26 @@ void XHR::post()
|
|||
qDebug() << "\t reply signals connected";
|
||||
}
|
||||
|
||||
void XHR::postJSON()
|
||||
{
|
||||
if (params.contains("JSON")){
|
||||
QByteArray mJSON=params.value("JSON").toUtf8();
|
||||
QByteArray loginData = m_login.toLocal8Bit().toBase64();
|
||||
QString headerData = "Basic " + loginData;
|
||||
QNetworkRequest request;
|
||||
request.setRawHeader(QByteArray("Authorization"), headerData.toLocal8Bit());
|
||||
request.setHeader(QNetworkRequest::ContentTypeHeader,"application/json; charset=UTF-8");
|
||||
request.setUrl(m_url+m_api);
|
||||
reply = manager.post(request, mJSON);
|
||||
qDebug() << "\t request sent";
|
||||
connect(reply, &QNetworkReply::finished, this, &XHR::onReplySuccess);
|
||||
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onReplyError(QNetworkReply::NetworkError)));
|
||||
connect(reply, &QNetworkReply::readyRead, this, &XHR::onReadyRead);
|
||||
connect(reply, &QNetworkReply::sslErrors, this, &XHR::onSSLError);
|
||||
qDebug() << "\t reply signals connected";
|
||||
}
|
||||
}
|
||||
|
||||
void XHR::onReplyError(QNetworkReply::NetworkError code)
|
||||
{
|
||||
qDebug() << code;
|
||||
|
@ -304,7 +323,7 @@ void XHR::onRequestFinished()
|
|||
QString helpfilename=jsonObject["filename"].toString();
|
||||
QString helpfile=helpfilename.left(helpfilename.lastIndexOf("."));
|
||||
QString filesuffix="";
|
||||
if (jsonObject["type"].toString()=="image/jpeg"){filesuffix=".jpg";}
|
||||
if (jsonObject["type"].toString()=="image/jpeg" || jsonObject["type"].toString()=="image/jpg"){filesuffix=".jpg";}
|
||||
else if (jsonObject["type"].toString()=="image/png"){filesuffix=".png";}
|
||||
else {filesuffix="";}
|
||||
if (helpfilename==""){// check if file has any filename
|
||||
|
|
|
@ -95,6 +95,7 @@ public slots:
|
|||
void setImageFileParam(QString name, QString url);
|
||||
void clearParams();
|
||||
void post();
|
||||
void postJSON();
|
||||
void get();
|
||||
void getlist();
|
||||
void download();
|
||||
|
@ -125,7 +126,7 @@ private:
|
|||
int dlindex;
|
||||
|
||||
QNetworkAccessManager manager;
|
||||
QNetworkRequest request;
|
||||
//QNetworkRequest request;
|
||||
QNetworkReply *reply;
|
||||
//QNetworkConfiguration nc;
|
||||
QString bufferToString();
|
||||
|
|
|
@ -59,7 +59,7 @@ function friendicaPostRequest(login,api,data,method,rootwindow,callback) {
|
|||
//print(api+JSON.stringify(login)+Qt.atob(login.password));
|
||||
if (xhrequest.readyState === XMLHttpRequest.HEADERS_RECEIVED) {
|
||||
} else if(xhrequest.readyState === XMLHttpRequest.DONE) {
|
||||
try{ if (xhrequest.responseText!=""){print (xhrequest.responseText)
|
||||
try{ if (xhrequest.responseText!=""){//print (xhrequest.responseText)
|
||||
callback(xhrequest.responseText)
|
||||
}else{//print("API:\n" +api+" NO RESPONSE");
|
||||
//showMessage("Error","API:\n" +api+" NO RESPONSE",rootwindow)
|
||||
|
@ -68,7 +68,8 @@ function friendicaPostRequest(login,api,data,method,rootwindow,callback) {
|
|||
}
|
||||
catch (e){
|
||||
print("API:\n" + api+" "+e+"\n Return:"+xhrequest.responseText);
|
||||
showMessage("Error", "API:\n" + api+" "+e+"\n Return:"+xhrequest.responseText,rootwindow)}
|
||||
//showMessage("Error", "API:\n" + api+" "+e+"\n Return:"+xhrequest.responseText,rootwindow)
|
||||
}
|
||||
}
|
||||
}
|
||||
xhrequest.open(method, login.server+api,true,login.username,Qt.atob(login.password));
|
||||
|
@ -199,7 +200,7 @@ function updateData(database,table, username, key, value, callback,filter,filter
|
|||
function showMessage(header,message,rootwindow){//print(message);
|
||||
var cleanmessage=message.replace(/"/g,"-");
|
||||
if(cleanmessage.length>200){cleanmessage=cleanmessage.slice(0,200)+'...'}
|
||||
var messageString='import QtQuick 2.0; import QtQuick.Dialogs 1.2; MessageDialog{ visible: true; title:"'+header+'";standardButtons: StandardButton.Ok; text:" '+cleanmessage+'"}';
|
||||
var messageString='import QtQuick 2.0; import QtQuick.Controls 2.15; import QtQuick.Controls.Material 2.12; Dialog{ visible: true; title:"'+header+'";standardButtons: Dialog.Ok;anchors.centerIn: parent;Label{text:" '+cleanmessage+'"}}';
|
||||
var messageObject=Qt.createQmlObject(messageString,rootwindow,"messageOutput");
|
||||
}
|
||||
|
||||
|
|
|
@ -52,16 +52,15 @@ function requestList(login,database,onlynew,rootwindow,callback) {
|
|||
|
||||
function dataRequest(login,photo,database,xhr,rootwindow) {
|
||||
// check if image exist and call download function
|
||||
|
||||
Helperjs.friendicaRequest(login,"/api/friendica/photo?photo_id="+photo.id, rootwindow, function (image){
|
||||
if(image=="" || typeof(image)=="undefined"){currentimageno=currentimageno+1}else{
|
||||
|
||||
try{
|
||||
try{print("image "+ image)
|
||||
var obj = JSON.parse(image);
|
||||
if (obj.hasOwnProperty('status')){
|
||||
var helpfilename=photo.filename.substring(0,photo.filename.lastIndexOf("."));
|
||||
var filesuffix="";
|
||||
if (photo.type=="image/jpeg"){filesuffix=".jpg"}
|
||||
if (photo.type=="image/jpeg" || photo.type=="image/jpg"){filesuffix=".jpg"}
|
||||
else if (photo.type=="image/png"){filesuffix=".png"}
|
||||
else {filesuffix=""}
|
||||
if (helpfilename==""){// check if file has any filename
|
||||
|
@ -86,7 +85,7 @@ function dataRequest(login,photo,database,xhr,rootwindow) {
|
|||
}else{
|
||||
var helpfilename=obj.filename.substring(0,obj.filename.lastIndexOf("."));
|
||||
var filesuffix="";
|
||||
if (obj.type=="image/jpeg"){filesuffix=".jpg"}
|
||||
if (obj.type=="image/jpeg" || photo.type=="image/jpg"){filesuffix=".jpg"}
|
||||
else if (obj.type=="image/png"){filesuffix=".png"}
|
||||
else {filesuffix=""}
|
||||
if (helpfilename==""){// check if file has any filename
|
||||
|
@ -112,7 +111,7 @@ function dataRequest(login,photo,database,xhr,rootwindow) {
|
|||
}} catch (e){
|
||||
var helpfilename=photo.filename.substring(0,photo.filename.lastIndexOf("."));
|
||||
var filesuffix="";
|
||||
if (photo.type=="image/jpeg"){filesuffix=".jpg"}
|
||||
if (photo.type=="image/jpeg" || photo.type=="image/jpg"){filesuffix=".jpg"}
|
||||
else if (photo.type=="image/png"){filesuffix=".png"}
|
||||
else {filesuffix=""}
|
||||
if (helpfilename==""){// check if file has any filename
|
||||
|
|
|
@ -111,6 +111,21 @@ function listFriends(login,database,callback,filter,isFriend=0){
|
|||
callback(contactlist)
|
||||
});
|
||||
}
|
||||
function listBlocked(login,database,callback){
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
db.transaction( function(tx) {
|
||||
var result = tx.executeSql('SELECT * from contacts WHERE username="'+login.username+'" AND statusnet_blocking=1 ORDER BY screen_name');
|
||||
// check for friends
|
||||
var contactlist=[];
|
||||
for (var i=0;i<result.rows.length;i++){
|
||||
var contact=result.rows.item(i)
|
||||
contact.name=Qt.atob(contact.name);
|
||||
if (contact.screen_name==null){contact.screen_name=""}
|
||||
contactlist.push(contact)
|
||||
}
|
||||
callback(contactlist)
|
||||
});
|
||||
}
|
||||
|
||||
function listHashtags(login,database,callback){
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
|
@ -574,6 +589,7 @@ function cleanhelpernews(database,user,helpernews,allcontacts){
|
|||
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
||||
helpernews.text=Qt.atob(helpernews.text);
|
||||
helpernews.id=helpernews.status_id;
|
||||
try{let geoobj=JSON.parse(helpernews.geo); helpernews.external_url=geoobj.external_url}catch(e){}
|
||||
helpernews.friendica_author=objFromArray(allcontacts,"url",helpernews.friendica_owner);
|
||||
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||
return helpernews
|
||||
|
|
|
@ -127,9 +127,15 @@ WorkerScript.onMessage = function(msg) {
|
|||
var newsitemobject=msg.news[j];
|
||||
newsitemobject=beautify(newsitemobject,msg);
|
||||
if (!(typeof(newsitemobject.currentconversation)=='undefined') && (newsitemobject.currentconversation.length>0)){
|
||||
newsitemobject.lastcomment=beautify(newsitemobject.currentconversation[newsitemobject.currentconversation.length-1],msg);
|
||||
newsitemobject.lastcomment.indent=1
|
||||
newsitemobject.lastcomment.isLastComment=true
|
||||
let n=1;
|
||||
while ((n<newsitemobject.currentconversation.length)&&(newsitemobject.currentconversation[newsitemobject.currentconversation.length-n].user.statusnet_blocking==true)) {
|
||||
n++;
|
||||
}
|
||||
if (n<newsitemobject.currentconversation.length){
|
||||
newsitemobject.lastcomment=beautify(newsitemobject.currentconversation[newsitemobject.currentconversation.length-n],msg);
|
||||
newsitemobject.lastcomment.indent=1
|
||||
newsitemobject.lastcomment.isLastComment=true
|
||||
}
|
||||
}
|
||||
|
||||
if (msg.method=="conversation"){
|
||||
|
@ -137,12 +143,10 @@ WorkerScript.onMessage = function(msg) {
|
|||
var count=0;
|
||||
var firstReply=0;
|
||||
for (var k=msg.model.count-1;k>-1;k--){
|
||||
//print("newsitemobject.in_reply_to_status_id "+newsitemobject.in_reply_to_status_id+" msg.model.get(k).newsitemobject.in_reply_to_status_id "+msg.model.get(k).newsitemobject.in_reply_to_status_id)
|
||||
if (newsitemobject.in_reply_to_status_id==msg.model.get(k).newsitemobject.id){
|
||||
if (newsitemobject.in_reply_to_status_id==msg.model.get(k).newsitemobject.id){
|
||||
newsitemobject.indent=(msg.model.get(k).newsitemobject.indent||0)+1;
|
||||
if (newsitemobject.indent>6){newsitemobject.indent=6};
|
||||
firstReply=k;
|
||||
//break;
|
||||
}
|
||||
if (newsitemobject.in_reply_to_status_id==msg.model.get(k).newsitemobject.in_reply_to_status_id){
|
||||
count+=1
|
||||
|
@ -151,11 +155,10 @@ WorkerScript.onMessage = function(msg) {
|
|||
}}
|
||||
data=({"newsitemobject": newsitemobject})
|
||||
}
|
||||
|
||||
if(data.newsitemobject.user.statusnet_blocking==true){break}
|
||||
if(msg.method=="append") {
|
||||
msg.model.insert(j, data)
|
||||
} else if (msg.method=="conversation" && firstReply>0){
|
||||
//print("j "+j +" firstReply "+firstReply+" count "+count)
|
||||
msg.model.insert(firstReply+count+1, data)
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -408,7 +408,7 @@ function cleanContacts(login,database,callback){
|
|||
db.transaction( function(tx) {
|
||||
var oldestnewsrs= tx.executeSql('SELECT created_at FROM news WHERE username="'+login.username+'" AND messagetype=0 ORDER BY created_at ASC LIMIT 1');
|
||||
if (oldestnewsrs.rows.length>0){ var oldestnewsTime=oldestnewsrs.rows.item(0).created_at- 604800000;} else{var oldestnewsTime=0} //contacts can be 7 days old
|
||||
var result = tx.executeSql('SELECT * from contacts WHERE username="'+login.username+'" AND isFriend=0 AND imageAge<'+oldestnewsTime); // check for friends
|
||||
var result = tx.executeSql('SELECT * from contacts WHERE username="'+login.username+'" AND isFriend=0 AND statusnet_blocking<>1 AND imageAge<'+oldestnewsTime); // check for friends
|
||||
for (var i=0;i<result.rows.length;i++){
|
||||
filesystem.rmFile(result.rows.item(i).profile_image);
|
||||
var deleters = tx.executeSql('DELETE from contacts WHERE username="'+login.username+'" AND url="'+result.rows.item(i).url+'"');
|
||||
|
@ -455,7 +455,7 @@ function processNews(api,data){//print("processnews "+ " api "+ api + " data "+d
|
|||
usermessages.push(newslist.status);
|
||||
newslist=usermessages;
|
||||
}
|
||||
if (data=="" || api=="/api/v1/statuses"){print("data "+data); newsBusy.running=false}
|
||||
if (data=="" || api=="/api/v1/statuses"){newsBusy.running=false}
|
||||
else if (typeof(newslist)=='undefined'){
|
||||
Helperjs.showMessage(qsTr("Undefined Array Error"),"API:\n" +login.server+api+"\n Return: \n"+data,root)
|
||||
}
|
||||
|
@ -518,6 +518,10 @@ function processNews(api,data){//print("processnews "+ " api "+ api + " data "+d
|
|||
if (api=="/api/statuses/replies"){newslist[n].messagetype=3}else{newslist[n].messagetype=0;}
|
||||
newslist[n].friendica_author=cleanUser(newslist[n].friendica_author);
|
||||
newslist[n].user=cleanUser(newslist[n].user);
|
||||
try{
|
||||
let localContact=Newsjs.objFromArray(allcontacts,"id",newslist[n].user.id);
|
||||
newslist[n].user.statusnet_blocking=localContact.statusnet_blocking
|
||||
}catch(e){}
|
||||
//if (newslist[n].friendica_title!="") {newslist[n].statusnet_html="<b>"+newslist[n].friendica_title +"</b><br><br>"+newslist[n].friendica_html;}
|
||||
//else{ //friendica_title also included in html
|
||||
newslist[n].statusnet_html=newslist[n].friendica_html
|
||||
|
|
|
@ -85,6 +85,10 @@ Rectangle {
|
|||
return events
|
||||
}
|
||||
|
||||
function createEvent(event){
|
||||
rootstackView.push("qrc:/qml/calendarqml/EventCreate.qml",{"eventInformation": event})
|
||||
}
|
||||
|
||||
BusyIndicator{
|
||||
id: calBusy
|
||||
anchors.horizontalCenter: calendarView.horizontalCenter
|
||||
|
@ -150,7 +154,7 @@ Rectangle {
|
|||
title: qsTr("Delete Event?")
|
||||
standardButtons: Dialog.Ok | Dialog.Cancel
|
||||
modal: true
|
||||
onAccepted: {//print("event.id"+event.id);
|
||||
onAccepted: {
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setApi("/api/friendica/event_delete");
|
||||
|
@ -158,7 +162,7 @@ Rectangle {
|
|||
xhr.setParam("id",eventid);
|
||||
xhr.post();
|
||||
}
|
||||
onRejected: {print("eventid "+eventid);close()}
|
||||
onRejected: {close()}
|
||||
}
|
||||
|
||||
MButton{
|
||||
|
@ -200,7 +204,6 @@ Rectangle {
|
|||
width: 20*root.fontFactor*osSettings.systemFontSize
|
||||
MenuItem {
|
||||
text: qsTr("Own Calendar")
|
||||
//font.pixelSize: 3*mm
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
onTriggered: {
|
||||
calendartab.calendartabstatus="Events";
|
||||
|
@ -284,6 +287,7 @@ Rectangle {
|
|||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
root.eventcreateSignal.connect(createEvent);
|
||||
root.eventSignal.connect(showEvents);
|
||||
if (calendartab.calendartabstatus=="Events"){showEvents("")}
|
||||
}
|
||||
|
|
|
@ -38,354 +38,366 @@ import "qrc:/js/helper.js" as Helperjs
|
|||
import "qrc:/qml/genericqml"
|
||||
import "qrc:/qml/calendarqml"
|
||||
|
||||
Rectangle{
|
||||
Flickable{
|
||||
id:eventCreateBox
|
||||
color: Material.backgroundColor
|
||||
property date startDate: new Date()
|
||||
property var eventInformation: ({})
|
||||
anchors.fill: parent
|
||||
|
||||
contentWidth: eventRect.width; contentHeight: eventRect.height
|
||||
function formatText(count, modelData) {
|
||||
var data = count === 12 ? modelData + 1 : modelData;
|
||||
return data.toString().length < 2 ? "0" + data : data;
|
||||
}
|
||||
|
||||
MButton{
|
||||
id:closeButton
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 1*mm
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 1*mm
|
||||
text: "\uf057"
|
||||
onClicked:{rootstackView.pop()}
|
||||
var data = count === 12 ? modelData + 1 : modelData;
|
||||
return data.toString().length < 2 ? "0" + data : data;
|
||||
}
|
||||
|
||||
Label{
|
||||
x: 0.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: 2*root.fontFactor*osSettings.bigFontSize
|
||||
width: 3*root.fontFactor*osSettings.bigFontSize
|
||||
height: root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
//verticalAlignment: TextInput.AlignBottom
|
||||
color: Material.primaryTextColor
|
||||
text:qsTr("Start")
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: textStartDate
|
||||
property string dateDay:(startDate.getDate()).toString().length<2?"0"+(startDate.getDate()):(startDate.getDate())
|
||||
property string dateMonth: (startDate.getMonth()+1).toString().length<2?"0"+(startDate.getMonth()+1):(startDate.getMonth()+1)
|
||||
x: 4*root.fontFactor*osSettings.bigFontSize
|
||||
y: root.fontFactor*osSettings.bigFontSize
|
||||
width: 5*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
horizontalAlignment: TextInput.AlignRight
|
||||
text: dateDay+"-"+dateMonth+"-"+startDate.getFullYear()
|
||||
inputMask: "99-99-9999"
|
||||
validator: RegExpValidator{regExp: /^([0-2\s]?[0-9\s]|3[0-1\s])-(0[0-9\s]|1[0-2\s])-([0-9\s][0-9\s][0-9\s][0-9\s])$ / }
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: textStartDateDropdown
|
||||
x: 9.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
text:"\uf0d7"
|
||||
onClicked:{
|
||||
cal.visible=true;
|
||||
cal.curSelection="start"
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: textStartTime
|
||||
x: 13*root.fontFactor*osSettings.bigFontSize
|
||||
y: root.fontFactor*osSettings.bigFontSize
|
||||
width: 3*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
inputMask: "99:99"
|
||||
text: "00:00"
|
||||
horizontalAlignment: TextInput.AlignRight
|
||||
validator: RegExpValidator{regExp: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s])$ / }
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: textStartTimeDropdown
|
||||
x: 16.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
text:"\uf0d7"
|
||||
onClicked:{
|
||||
onClicked: {timeTumbler.visible=true;timeTumbler.curSelection="start"}
|
||||
}
|
||||
}
|
||||
|
||||
Label{
|
||||
x: 0.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: 4*root.fontFactor*osSettings.bigFontSize
|
||||
width: 3*root.fontFactor*osSettings.bigFontSize
|
||||
height: root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
color: Material.primaryTextColor
|
||||
text:qsTr("End")
|
||||
}
|
||||
TextField {
|
||||
id: textEndDate
|
||||
x: 4*root.fontFactor*osSettings.bigFontSize
|
||||
y: 3*root.fontFactor*osSettings.bigFontSize
|
||||
width: 5*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
horizontalAlignment: TextInput.AlignRight
|
||||
inputMask: "99-99-9999"
|
||||
validator: RegExpValidator{regExp: /^([0-2\s]?[0-9\s]|3[0-1\s])-(0[0-9\s]|1[0-2\s])-([0-9\s][0-9\s][0-9\s][0-9\s])$ / }
|
||||
enabled: false
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: textEndDateDropdown
|
||||
x: 9.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: 3*root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
enabled: false
|
||||
text:"\uf0d7"
|
||||
onClicked:{
|
||||
cal.visible=true;
|
||||
cal.curSelection="end"
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: textEndTime
|
||||
x: 13*root.fontFactor*osSettings.bigFontSize
|
||||
y: 3*root.fontFactor*osSettings.bigFontSize
|
||||
width: 3*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
enabled: false
|
||||
horizontalAlignment: TextInput.AlignRight
|
||||
inputMask: "99:99"
|
||||
validator: RegExpValidator{regExp: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s])$ / }
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: textEndTimeDropdown
|
||||
x: 16.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: 3*root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
enabled: false
|
||||
text:"\uf0d7"
|
||||
onClicked:{
|
||||
onClicked: {timeTumbler.visible=true;timeTumbler.curSelection="end"}
|
||||
}
|
||||
}
|
||||
|
||||
Column{
|
||||
x: 4*root.fontFactor*osSettings.bigFontSize
|
||||
y: 6*root.fontFactor*osSettings.bigFontSize
|
||||
width: parent.width-7*root.fontFactor*osSettings.bigFontSize
|
||||
Oldcontrols.Calendar{
|
||||
id:cal
|
||||
property string curSelection: "start"
|
||||
width: 12*root.fontFactor*osSettings.bigFontSize
|
||||
height: 15*root.fontFactor*osSettings.bigFontSize
|
||||
visible: false
|
||||
selectedDate: new Date()
|
||||
onClicked: {
|
||||
if (curSelection=="start"){
|
||||
textStartDate.text=Qt.formatDate(cal.selectedDate, "dd-MM-yyyy");
|
||||
}else{
|
||||
textEndDate.text=Qt.formatDate(cal.selectedDate, "dd-MM-yyyy");
|
||||
}
|
||||
cal.visible=false
|
||||
}
|
||||
}
|
||||
|
||||
Frame {
|
||||
id: timeTumbler
|
||||
width: 12*root.fontFactor*osSettings.bigFontSize
|
||||
height: 10*root.fontFactor*osSettings.bigFontSize
|
||||
visible: false
|
||||
property string curSelection: "start"
|
||||
|
||||
Row {
|
||||
Tumbler {
|
||||
id: hoursTumbler
|
||||
model: 24
|
||||
delegate: tumblerDelegateComponent
|
||||
currentIndex: 12
|
||||
}
|
||||
Tumbler {
|
||||
id: minutesTumbler
|
||||
model: 60
|
||||
delegate: tumblerDelegateComponent
|
||||
}
|
||||
}
|
||||
MButton {
|
||||
id: timeInputfinished
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
text:"\uf00c"
|
||||
onClicked:{
|
||||
if (timeTumbler.curSelection=="start"){
|
||||
textStartTime.text=formatText(24,hoursTumbler.currentIndex)+":"+formatText(60,minutesTumbler.currentIndex);
|
||||
}else{
|
||||
textEndTime.text=formatText(24,hoursTumbler.currentIndex)+":"+formatText(60,minutesTumbler.currentIndex);
|
||||
}
|
||||
timeTumbler.visible=false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CheckBox{
|
||||
id: checkNoEndTime
|
||||
width: 12*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
checked: true
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
text: qsTr("no end")
|
||||
onCheckedChanged: {
|
||||
if(checked==true){
|
||||
textEndDate.enabled=false;
|
||||
textEndDateDropdown.enabled=false;
|
||||
textEndTime.enabled=false;
|
||||
textEndTimeDropdown.enabled=false;
|
||||
textEndDate.text="";
|
||||
textEndTime.text=""
|
||||
}else{
|
||||
textEndDate.enabled=true;
|
||||
textEndDateDropdown.enabled=true;
|
||||
textEndTime.enabled=true;
|
||||
textEndTimeDropdown.enabled=true;
|
||||
textEndDate.text=textStartDate.text;
|
||||
textEndTime.text=textStartTime.text
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: titleField
|
||||
width: parent.width-root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
font.bold: true
|
||||
placeholderText: qsTr("Title (required)")
|
||||
}
|
||||
|
||||
Rectangle{
|
||||
color: Material.backgroundColor
|
||||
radius: 0.5*mm
|
||||
width: parent.width-root.fontFactor*osSettings.bigFontSize
|
||||
height:Math.max(bodyField.contentHeight+root.fontFactor*osSettings.bigFontSize,2.5*root.fontFactor*osSettings.bigFontSize)
|
||||
TextArea {
|
||||
id: bodyField
|
||||
anchors.fill: parent
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
font.family: "Noto Sans"
|
||||
wrapMode: Text.Wrap
|
||||
selectByMouse: true
|
||||
placeholderText: qsTr("Event description (optional)")
|
||||
textFormat: TextEdit.PlainText
|
||||
onLinkActivated:{Qt.openUrlExternally(link)}
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: locationField
|
||||
width: parent.width-root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
placeholderText: qsTr("Location (optional)")
|
||||
}
|
||||
|
||||
CheckBox{
|
||||
id: chkbxPublish
|
||||
width: 10*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
checked: true
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
text: qsTr("Publish event?")
|
||||
}
|
||||
|
||||
BusyIndicator{
|
||||
id: eventCreateBusy
|
||||
anchors.horizontalCenter: eventCreateBox.horizontalCenter
|
||||
anchors.top:eventCreateBox.top
|
||||
anchors.topMargin: 2*root.fontFactor*osSettings.bigFontSize
|
||||
width:3*root.fontFactor*osSettings.bigFontSize
|
||||
height: 3*root.fontFactor*osSettings.bigFontSize
|
||||
running: false
|
||||
}
|
||||
|
||||
boundsBehavior:Flickable.StopAtBounds
|
||||
ScrollBar.vertical: ScrollBar { }
|
||||
Rectangle{
|
||||
id: eventRect
|
||||
width: root.width
|
||||
height: textColumn.height + 6*root.fontFactor*osSettings.bigFontSize
|
||||
color: Material.backgroundColor
|
||||
MButton{
|
||||
id:createEventButton
|
||||
text: qsTr("Create event")
|
||||
onClicked:{
|
||||
let startdatetext=textStartDate.getText(0,textStartDate.length);
|
||||
let startdate=new Date(startdatetext.substring(6,10)+"-"+startdatetext.substring(3,5)+"-"+startdatetext.substring(0,2)+"T"+textStartTime.text)
|
||||
id:closeButton
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 1*mm
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 1*mm
|
||||
text: "\uf057"
|
||||
onClicked:{rootstackView.pop()}
|
||||
}
|
||||
|
||||
if (titleField.text==""){
|
||||
Helperjs.showMessage(qsTr("Error"),qsTr("No event name supplied"),eventCreateBox)
|
||||
}else{
|
||||
Label{
|
||||
x: 0.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: 2*root.fontFactor*osSettings.bigFontSize
|
||||
width: 3*root.fontFactor*osSettings.bigFontSize
|
||||
height: root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
//verticalAlignment: TextInput.AlignBottom
|
||||
color: Material.primaryTextColor
|
||||
text:qsTr("Start")
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: textStartDate
|
||||
property string dateDay:(startDate.getDate()).toString().length<2?"0"+(startDate.getDate()):(startDate.getDate())
|
||||
property string dateMonth: (startDate.getMonth()+1).toString().length<2?"0"+(startDate.getMonth()+1):(startDate.getMonth()+1)
|
||||
x: 4*root.fontFactor*osSettings.bigFontSize
|
||||
y: root.fontFactor*osSettings.bigFontSize
|
||||
width: 5*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
horizontalAlignment: TextInput.AlignRight
|
||||
text: dateDay+"-"+dateMonth+"-"+startDate.getFullYear()
|
||||
inputMask: "99-99-9999"
|
||||
validator: RegExpValidator{regExp: /^([0-2\s]?[0-9\s]|3[0-1\s])-(0[0-9\s]|1[0-2\s])-([0-9\s][0-9\s][0-9\s][0-9\s])$ / }
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: textStartDateDropdown
|
||||
x: 9.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
text:"\uf0d7"
|
||||
onClicked:{
|
||||
cal.visible=true;
|
||||
cal.curSelection="start"
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: textStartTime
|
||||
x: 13*root.fontFactor*osSettings.bigFontSize
|
||||
y: root.fontFactor*osSettings.bigFontSize
|
||||
width: 3*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
inputMask: "99:99"
|
||||
text: "00:00"
|
||||
horizontalAlignment: TextInput.AlignRight
|
||||
validator: RegExpValidator{regExp: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s])$ / }
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: textStartTimeDropdown
|
||||
x: 16.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
text:"\uf0d7"
|
||||
onClicked:{
|
||||
onClicked: {timeTumbler.visible=true;timeTumbler.curSelection="start"}
|
||||
}
|
||||
}
|
||||
|
||||
Label{
|
||||
x: 0.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: 4*root.fontFactor*osSettings.bigFontSize
|
||||
width: 3*root.fontFactor*osSettings.bigFontSize
|
||||
height: root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
color: Material.primaryTextColor
|
||||
text:qsTr("End")
|
||||
}
|
||||
TextField {
|
||||
id: textEndDate
|
||||
x: 4*root.fontFactor*osSettings.bigFontSize
|
||||
y: 3*root.fontFactor*osSettings.bigFontSize
|
||||
width: 5*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
horizontalAlignment: TextInput.AlignRight
|
||||
inputMask: "99-99-9999"
|
||||
validator: RegExpValidator{regExp: /^([0-2\s]?[0-9\s]|3[0-1\s])-(0[0-9\s]|1[0-2\s])-([0-9\s][0-9\s][0-9\s][0-9\s])$ / }
|
||||
enabled: false
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: textEndDateDropdown
|
||||
x: 9.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: 3*root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
enabled: false
|
||||
text:"\uf0d7"
|
||||
onClicked:{
|
||||
cal.visible=true;
|
||||
cal.curSelection="end"
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: textEndTime
|
||||
x: 13*root.fontFactor*osSettings.bigFontSize
|
||||
y: 3*root.fontFactor*osSettings.bigFontSize
|
||||
width: 3*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
enabled: false
|
||||
horizontalAlignment: TextInput.AlignRight
|
||||
inputMask: "99:99"
|
||||
validator: RegExpValidator{regExp: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s])$ / }
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: textEndTimeDropdown
|
||||
x: 16.5*root.fontFactor*osSettings.bigFontSize
|
||||
y: 3*root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
enabled: false
|
||||
text:"\uf0d7"
|
||||
onClicked:{
|
||||
onClicked: {timeTumbler.visible=true;timeTumbler.curSelection="end"}
|
||||
}
|
||||
}
|
||||
|
||||
Column{
|
||||
id: textColumn
|
||||
x: 4*root.fontFactor*osSettings.bigFontSize
|
||||
y: 6*root.fontFactor*osSettings.bigFontSize
|
||||
width: parent.width-7*root.fontFactor*osSettings.bigFontSize
|
||||
Oldcontrols.Calendar{
|
||||
id:cal
|
||||
property string curSelection: "start"
|
||||
width: 12*root.fontFactor*osSettings.bigFontSize
|
||||
height: 15*root.fontFactor*osSettings.bigFontSize
|
||||
visible: false
|
||||
selectedDate: new Date()
|
||||
onClicked: {
|
||||
if (curSelection=="start"){
|
||||
textStartDate.text=Qt.formatDate(cal.selectedDate, "dd-MM-yyyy");
|
||||
}else{
|
||||
textEndDate.text=Qt.formatDate(cal.selectedDate, "dd-MM-yyyy");
|
||||
}
|
||||
cal.visible=false
|
||||
}
|
||||
}
|
||||
|
||||
Frame {
|
||||
id: timeTumbler
|
||||
width: 12*root.fontFactor*osSettings.bigFontSize
|
||||
height: 10*root.fontFactor*osSettings.bigFontSize
|
||||
visible: false
|
||||
property string curSelection: "start"
|
||||
|
||||
Row {
|
||||
Tumbler {
|
||||
id: hoursTumbler
|
||||
model: 24
|
||||
delegate: tumblerDelegateComponent
|
||||
currentIndex: 12
|
||||
}
|
||||
Tumbler {
|
||||
id: minutesTumbler
|
||||
model: 60
|
||||
delegate: tumblerDelegateComponent
|
||||
}
|
||||
}
|
||||
MButton {
|
||||
id: timeInputfinished
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
text:"\uf00c"
|
||||
onClicked:{
|
||||
if (timeTumbler.curSelection=="start"){
|
||||
textStartTime.text=formatText(24,hoursTumbler.currentIndex)+":"+formatText(60,minutesTumbler.currentIndex);
|
||||
}else{
|
||||
textEndTime.text=formatText(24,hoursTumbler.currentIndex)+":"+formatText(60,minutesTumbler.currentIndex);
|
||||
}
|
||||
timeTumbler.visible=false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CheckBox{
|
||||
id: checkNoEndTime
|
||||
width: 12*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
checked: true
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
text: qsTr("no end")
|
||||
onCheckedChanged: {
|
||||
if(checked==true){
|
||||
textEndDate.enabled=false;
|
||||
textEndDateDropdown.enabled=false;
|
||||
textEndTime.enabled=false;
|
||||
textEndTimeDropdown.enabled=false;
|
||||
textEndDate.text="";
|
||||
textEndTime.text=""
|
||||
}else{
|
||||
textEndDate.enabled=true;
|
||||
textEndDateDropdown.enabled=true;
|
||||
textEndTime.enabled=true;
|
||||
textEndTimeDropdown.enabled=true;
|
||||
textEndDate.text=textStartDate.text;
|
||||
textEndTime.text=textStartTime.text
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: titleField
|
||||
width: parent.width-root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
font.bold: true
|
||||
placeholderText: qsTr("Title (required)")
|
||||
}
|
||||
|
||||
Rectangle{
|
||||
color: Material.backgroundColor
|
||||
radius: 0.5*mm
|
||||
width: parent.width-root.fontFactor*osSettings.bigFontSize
|
||||
height:Math.max(bodyField.contentHeight+root.fontFactor*osSettings.bigFontSize,2.5*root.fontFactor*osSettings.bigFontSize)
|
||||
TextArea {
|
||||
id: bodyField
|
||||
anchors.fill: parent
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
font.family: "Noto Sans"
|
||||
wrapMode: Text.Wrap
|
||||
selectByMouse: true
|
||||
placeholderText: qsTr("Event description (optional)")
|
||||
textFormat: TextEdit.PlainText
|
||||
text: eventInformation.hasOwnProperty("text")?eventInformation.text:""
|
||||
onLinkActivated:{Qt.openUrlExternally(link)}
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: locationField
|
||||
width: parent.width-root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
placeholderText: qsTr("Location (optional)")
|
||||
}
|
||||
|
||||
CheckBox{
|
||||
id: chkbxPublish
|
||||
width: 10*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
checked: true
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
text: qsTr("Publish event?")
|
||||
}
|
||||
|
||||
BusyIndicator{
|
||||
id: eventCreateBusy
|
||||
anchors.horizontalCenter: eventCreateBox.horizontalCenter
|
||||
anchors.top:eventCreateBox.top
|
||||
anchors.topMargin: 2*root.fontFactor*osSettings.bigFontSize
|
||||
width:3*root.fontFactor*osSettings.bigFontSize
|
||||
height: 3*root.fontFactor*osSettings.bigFontSize
|
||||
running: false
|
||||
}
|
||||
|
||||
MButton{
|
||||
id:createEventButton
|
||||
text: qsTr("Create event")
|
||||
onClicked:{
|
||||
let startdatetext=textStartDate.getText(0,textStartDate.length);
|
||||
let startdate=new Date(startdatetext.substring(6,10)+"-"+startdatetext.substring(3,5)+"-"+startdatetext.substring(0,2)+"T"+textStartTime.text)
|
||||
eventCreateBusy.running=true;
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setApi("/api/friendica/event_create");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("name", titleField.text);
|
||||
xhr.setParam("start_time",startdate.toISOString())
|
||||
if(!checkNoEndTime.checked){
|
||||
let enddatetext=textEndDate.getText(0,textEndDate.length);
|
||||
let enddate=new Date(enddatetext.substring(6,10)+"-"+enddatetext.substring(3,5)+"-"+enddatetext.substring(0,2)+"T"+textEndTime.text)
|
||||
xhr.setParam("end_time",enddate.toISOString())
|
||||
}
|
||||
xhr.setParam("name",titleField.text)
|
||||
if (bodyField.text!=""){xhr.setParam("desc",bodyField.text)}
|
||||
if (locationField.text!=""){xhr.setParam("place",locationField.text)}
|
||||
xhr.setParam("publish",chkbxPublish.checked)
|
||||
xhr.post();
|
||||
}
|
||||
}
|
||||
}
|
||||
Connections{
|
||||
target: xhr
|
||||
function onSuccess(text,api){
|
||||
if (api=="/api/friendica/event_create"){
|
||||
updatenews.setDatabase();
|
||||
updatenews.login();
|
||||
updatenews.setSyncAll(false);
|
||||
updatenews.events();
|
||||
try{while(rootstackView.depth>1){rootstackView.pop()}}catch(e){}
|
||||
}
|
||||
}
|
||||
function onError(text,api){
|
||||
if (api=="/api/friendica/event_create"){
|
||||
Helperjs.showMessage(qsTr("Error"),text,root)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: tumblerDelegateComponent
|
||||
Label {
|
||||
text: formatText(Tumbler.tumbler.count, modelData)
|
||||
opacity: 1.0 - Math.abs(Tumbler.displacement) / (Tumbler.tumbler.visibleItemCount / 2)
|
||||
color:Material.primaryTextColor
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
if (titleField.text==""){
|
||||
Helperjs.showMessage(qsTr("Error"),qsTr("No event name supplied"),eventCreateBox)
|
||||
}else{
|
||||
let startdatetext=textStartDate.getText(0,textStartDate.length);
|
||||
let startdate=new Date(startdatetext.substring(6,10)+"-"+startdatetext.substring(3,5)+"-"+startdatetext.substring(0,2)+"T"+textStartTime.text)
|
||||
eventCreateBusy.running=true;
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setApi("/api/friendica/event_create");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("name", titleField.text);
|
||||
xhr.setParam("start_time",startdate.toISOString())
|
||||
if(!checkNoEndTime.checked){
|
||||
let enddatetext=textEndDate.getText(0,textEndDate.length);
|
||||
let enddate=new Date(enddatetext.substring(6,10)+"-"+enddatetext.substring(3,5)+"-"+enddatetext.substring(0,2)+"T"+textEndTime.text)
|
||||
xhr.setParam("end_time",enddate.toISOString())
|
||||
}
|
||||
xhr.setParam("name",titleField.text)
|
||||
if (bodyField.text!=""){xhr.setParam("desc",bodyField.text)}
|
||||
if (locationField.text!=""){xhr.setParam("place",locationField.text)}
|
||||
xhr.setParam("publish",chkbxPublish.checked)
|
||||
xhr.post();
|
||||
}
|
||||
}
|
||||
}
|
||||
Connections{
|
||||
target: xhr
|
||||
function onSuccess(text,api){
|
||||
if (api=="/api/friendica/event_create"){
|
||||
updatenews.setDatabase();
|
||||
updatenews.login();
|
||||
updatenews.setSyncAll(false);
|
||||
updatenews.events();
|
||||
try{while(rootstackView.depth>1){rootstackView.pop()}}catch(e){}
|
||||
}
|
||||
}
|
||||
function onError(text,api){
|
||||
if (api=="/api/friendica/event_create"){
|
||||
Helperjs.showMessage(qsTr("Error"),text,root)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: tumblerDelegateComponent
|
||||
Label {
|
||||
text: formatText(Tumbler.tumbler.count, modelData)
|
||||
opacity: 1.0 - Math.abs(Tumbler.displacement) / (Tumbler.tumbler.visibleItemCount / 2)
|
||||
color:Material.primaryTextColor
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ Rectangle{
|
|||
title: qsTr("Delete Event?")
|
||||
standardButtons: Dialog.Ok | Dialog.Cancel
|
||||
modal: true
|
||||
onAccepted: {//print("event.id"+event.id);
|
||||
onAccepted: {
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setApi("/api/friendica/event_delete");
|
||||
|
@ -81,7 +81,7 @@ Rectangle{
|
|||
xhr.setParam("id",eventid);
|
||||
xhr.post();
|
||||
}
|
||||
onRejected: {print("eventid "+eventid);close()}
|
||||
onRejected: {close()}
|
||||
}
|
||||
|
||||
ListView {
|
||||
|
|
|
@ -99,7 +99,7 @@ Rectangle{
|
|||
}
|
||||
}
|
||||
|
||||
onClicked:{print("status "+status)
|
||||
onClicked:{
|
||||
if (status==""){
|
||||
rootstackView.push("qrc:/qml/calendarqml/EventList.qml",{"dayint": event.startday, "events":[event]});
|
||||
} else {rootstackView.pop()}
|
||||
|
|
70
source-linux/qml/configqml/AcceptRules.qml
Normal file
70
source-linux/qml/configqml/AcceptRules.qml
Normal file
|
@ -0,0 +1,70 @@
|
|||
// This file is part of Friendiqa
|
||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// In addition, as a special exception, the copyright holders give
|
||||
// permission to link the code of portions of this program with the
|
||||
// OpenSSL library under certain conditions as described in each
|
||||
// individual source file, and distribute linked combinations including
|
||||
// the two.
|
||||
//
|
||||
// You must obey the GNU General Public License in all respects for all
|
||||
// of the code used other than OpenSSL. If you modify file(s) with this
|
||||
// exception, you may extend this exception to your version of the
|
||||
// file(s), but you are not obligated to do so. If you do not wish to do
|
||||
// so, delete this exception statement from your version. If you delete
|
||||
// this exception statement from all source files in the program, then
|
||||
// also delete it here.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Controls.Material 2.12
|
||||
|
||||
Dialog {
|
||||
id: rulesDialog
|
||||
height: parent.height/2
|
||||
width: parent.width
|
||||
anchors.centerIn: parent
|
||||
title: qsTr("Accept instance rules")
|
||||
property string rules: ""
|
||||
standardButtons: Dialog.Yes | Dialog.No
|
||||
modal: true
|
||||
onAccepted: {
|
||||
username.visible=true;
|
||||
password.visible=true;
|
||||
ruleButton.visible=false;
|
||||
confirmation.visible=true
|
||||
}
|
||||
onRejected: {close()}
|
||||
ScrollView{
|
||||
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
||||
width: root.width-2*root.fontFactor*osSettings.bigFontSize
|
||||
height:parent.height
|
||||
clip:true
|
||||
Text {
|
||||
x:1; y:1
|
||||
width: root.width-4*root.fontFactor*osSettings.bigFontSize
|
||||
wrapMode: TextEdit.Wrap
|
||||
color: Material.primaryTextColor
|
||||
linkColor: Material.accentColor
|
||||
textFormat: Text.PlainText
|
||||
font.family: "Noto Sans"
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
text: rules
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -74,6 +74,7 @@ Page{
|
|||
useritems=useritems+"MenuItem{font.pointSize: osSettings.bigFontSize;width:accountPage.width*2/3; text:'"+accountPage.users[i].username+
|
||||
"'; onTriggered: {Service.readConfig(db,function(obj){
|
||||
userButton.text=obj.username;
|
||||
servername.text=obj.server;
|
||||
serverModel.insert(0,{text:obj.server})
|
||||
accountPage.setServericon(obj.server);
|
||||
username.text= obj.username;
|
||||
|
@ -148,7 +149,7 @@ Page{
|
|||
x: 4*root.fontFactor*osSettings.bigFontSize
|
||||
y: 3.5*root.fontFactor*osSettings.bigFontSize
|
||||
width: root.width-5*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize//5*mm;
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
text:"https://"
|
||||
onFocusChanged:{
|
||||
|
@ -199,10 +200,32 @@ Page{
|
|||
ListElement{text:"https://venera.social"}
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: ruleButton
|
||||
x: root.fontFactor*osSettings.bigFontSize; y: 6*root.fontFactor*osSettings.bigFontSize; width: root.width-9*mm;
|
||||
visible: (osSettings.osType=="Android") && (userButton.text== qsTr("User"))
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize;
|
||||
text: qsTr("Instance rules")
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
onClicked:{
|
||||
Helperjs.friendicaWebRequest(servername.text+"/api/v1/instance/rules",root,function(rules){
|
||||
let rulestext="";
|
||||
let rulesarray=JSON.parse(rules)
|
||||
for (let rule in rulesarray){
|
||||
rulestext=rulestext+rulesarray[rule].text+"\n"
|
||||
}
|
||||
var component = Qt.createComponent("qrc:/qml/configqml/AcceptRules.qml");
|
||||
var rulesdialog = component.createObject(root,{"rules": rulestext});
|
||||
rulesdialog.open()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: username
|
||||
x: root.fontFactor*osSettings.bigFontSize; y: 6*root.fontFactor*osSettings.bigFontSize; width: root.width-9*mm; //height: 5*mm;
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
visible: (osSettings.osType=="Android")?(userButton.text!= qsTr("User")):true
|
||||
placeholderText: qsTr("Nickname")
|
||||
selectByMouse: true
|
||||
onEditingFinished: {
|
||||
|
@ -219,6 +242,7 @@ Page{
|
|||
id: password
|
||||
x: root.fontFactor*osSettings.bigFontSize; y: 9*root.fontFactor*osSettings.bigFontSize; width: root.width-9*mm; //height: 5*mm;
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
visible: (osSettings.osType=="Android")?(userButton.text!= qsTr("User")):true
|
||||
selectByMouse: true
|
||||
echoMode: TextInput.Password
|
||||
placeholderText: qsTr("Password")
|
||||
|
@ -243,6 +267,7 @@ Page{
|
|||
wrapMode: TextEdit.NoWrap
|
||||
onTextChanged: imagestoredir=imagestore.text
|
||||
}
|
||||
|
||||
MButton {
|
||||
x: root.width-3*root.fontFactor*osSettings.bigFontSize; y: 13*root.fontFactor*osSettings.bigFontSize;
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize;
|
||||
|
@ -252,7 +277,6 @@ Page{
|
|||
onClicked:{imagestoreDialog.open()}
|
||||
}
|
||||
|
||||
|
||||
FileDialog {
|
||||
id: imagestoreDialog
|
||||
title: "Please choose a directory"
|
||||
|
@ -265,7 +289,6 @@ Page{
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
BusyIndicator{
|
||||
id: accountBusy
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
@ -276,56 +299,56 @@ Page{
|
|||
}
|
||||
|
||||
MButton {
|
||||
x: root.fontFactor*osSettings.bigFontSize; y: 16*root.fontFactor*osSettings.bigFontSize
|
||||
text: qsTr("Confirm")
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
onClicked:{
|
||||
accountBusy.running=true;//servername.displayText
|
||||
var userconfig={server: servername.displayText, username: username.text, password:Qt.btoa(password.text), imagestore:imagestoredir,interval: ""};
|
||||
var errormessage="";
|
||||
if (servername.text==""){errormessage=qsTr("No server given! ")}
|
||||
else if (username.text==""){errormessage+=qsTr("No nickname given! ")}
|
||||
else if (password.text=="") {errormessage+=qsTr("No password given! ")}
|
||||
else if (imagestoredir=="") {errormessage+=qsTr("No image directory given!")}
|
||||
id:confirmation
|
||||
x: root.fontFactor*osSettings.bigFontSize; y: 16*root.fontFactor*osSettings.bigFontSize
|
||||
text: qsTr("Confirm")
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
visible: (osSettings.osType=="Android")?userButton.text!= qsTr("User"):true
|
||||
onClicked:{
|
||||
accountBusy.running=true;//servername.displayText
|
||||
var userconfig={server: servername.displayText, username: username.text, password:Qt.btoa(password.text), imagestore:imagestoredir,interval: ""};
|
||||
var errormessage="";
|
||||
if (servername.text==""){errormessage=qsTr("No server given! ")}
|
||||
else if (username.text==""){errormessage+=qsTr("No nickname given! ")}
|
||||
else if (password.text=="") {errormessage+=qsTr("No password given! ")}
|
||||
else if (imagestoredir=="") {errormessage+=qsTr("No image directory given!")}
|
||||
|
||||
else {errormessage=""}
|
||||
if (errormessage=="") {
|
||||
Helperjs.friendicaRequest(userconfig,"/api/account/verify_credentials.json?skip_status=true",root,function(obj){
|
||||
accountBusy.running=false;
|
||||
try{var credentials=JSON.parse(obj);
|
||||
if (credentials.hasOwnProperty('error')){
|
||||
Helperjs.showMessage(qsTr("Error"),qsTr("Wrong password!"),root)
|
||||
}
|
||||
else{
|
||||
if (users.length==0){Service.setDefaultOptions(db);}
|
||||
if(userconfig.imagestore == filesystem.homePath+"/"+username.text+"/")
|
||||
{
|
||||
filesystem.makePath(filesystem.homePath+"/"+username.text);
|
||||
}
|
||||
filesystem.Directory=imagestoredir //userconfig.imagestore;
|
||||
filesystem.makeDir("contacts");
|
||||
filesystem.makeDir("albums");
|
||||
userconfig.accountId=credentials.id
|
||||
Service.storeConfig(db,userconfig);
|
||||
Service.readConfig(db,function(userconfig){
|
||||
Helperjs.readData(db,"config","",function(storedUsers){
|
||||
storedUsers.sort(function(obj1, obj2) {
|
||||
return obj1.isActive - obj2.isActive;
|
||||
});
|
||||
accountPage.users=storedUsers});
|
||||
//reset values
|
||||
login=userconfig;
|
||||
news=[];
|
||||
contactlist=[];
|
||||
rootstack.currentIndex=0;
|
||||
newstypeSignal("refresh");
|
||||
},"isActive",0);
|
||||
|
||||
//Service.requestProfile(userconfig,db,root,function(nc){root.newContacts=nc});
|
||||
Helperjs.showMessage(qsTr("Success"),qsTr("Name")+": "+credentials.name+"\nScreen Name: "+credentials.screen_name,root)
|
||||
rootstackView.pop()
|
||||
}
|
||||
}catch(e){Helperjs.showMessage(qsTr("Error"),qsTr("Wrong password!"),root)};
|
||||
else {errormessage=""}
|
||||
if (errormessage=="") {
|
||||
Helperjs.friendicaRequest(userconfig,"/api/account/verify_credentials.json?skip_status=true",root,function(obj){
|
||||
accountBusy.running=false;
|
||||
try{var credentials=JSON.parse(obj);
|
||||
if (credentials.hasOwnProperty('error')){
|
||||
Helperjs.showMessage(qsTr("Error"),qsTr("Wrong password or 2FA enabled!"),root)
|
||||
}
|
||||
else{
|
||||
if (users.length==0){Service.setDefaultOptions(db);}
|
||||
if(userconfig.imagestore == filesystem.homePath+"/"+username.text+"/")
|
||||
{
|
||||
filesystem.makePath(filesystem.homePath+"/"+username.text);
|
||||
}
|
||||
filesystem.Directory=imagestoredir
|
||||
filesystem.makeDir("contacts");
|
||||
filesystem.makeDir("albums");
|
||||
userconfig.accountId=credentials.id
|
||||
Service.storeConfig(db,userconfig);
|
||||
Service.readConfig(db,function(userconfig){
|
||||
Helperjs.readData(db,"config","",function(storedUsers){
|
||||
storedUsers.sort(function(obj1, obj2) {
|
||||
return obj1.isActive - obj2.isActive;
|
||||
});
|
||||
accountPage.users=storedUsers});
|
||||
//reset values
|
||||
login=userconfig;
|
||||
news=[];
|
||||
contactlist=[];
|
||||
rootstack.currentIndex=0;
|
||||
newstypeSignal("refresh");
|
||||
},"isActive",0);
|
||||
Helperjs.showMessage(qsTr("Success"),qsTr("Name")+": "+credentials.name+"\nScreen Name: "+credentials.screen_name,root)
|
||||
rootstackView.pop()
|
||||
}
|
||||
}catch(e){Helperjs.showMessage(qsTr("Error"),qsTr("Wrong password or 2FA enabled!"),root)};
|
||||
|
||||
})}
|
||||
else {Helperjs.showMessage(qsTr("Error"), errormessage,root)}
|
||||
|
@ -379,7 +402,7 @@ Page{
|
|||
servericon.source="";
|
||||
username.text=""
|
||||
password.text=""
|
||||
imagestore.text="" //filesystem.homePath+"/.friendiqa/"+username.text//""
|
||||
imagestore.text=""
|
||||
userButton.text=qsTr("User")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ Page{
|
|||
font.pointSize: osSettings.systemFontSize
|
||||
color:Material.primaryTextColor
|
||||
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
||||
text: "<b>Friendiqa v0.6.6 </b><br>Licensed under GPL 3 with the exception of OpenSSL <br> "+
|
||||
text: "<b>Friendiqa v0.6.7 </b><br>Licensed under GPL 3 with the exception of OpenSSL <br> "+
|
||||
"Website <a href='https://friendiqa.ma-nic.de'>https://friendiqa.ma-nic.de</a><br>"+
|
||||
"Sourcecode: <a href='https://git.friendi.ca/LubuWest/Friendiqa'>https://git.friendi.ca/LubuWest/Friendiqa</a><br>"+
|
||||
"Privacy Policy: <a href='https://git.friendi.ca/lubuwest/Friendiqa/src/branch/master/PrivacyPolicy.md'>http://git.friendi.ca/lubuwest/Friendiqa/src/branch/master/PrivacyPolicy.md</a><br>"+
|
||||
|
|
|
@ -44,6 +44,7 @@ Item{
|
|||
Layout.fillWidth:true
|
||||
Layout.fillHeight: true
|
||||
property int currentContact: 0
|
||||
signal contactRefreshSignal()
|
||||
|
||||
function showFriends(username){
|
||||
try {friendsModel.clear()} catch(e){};
|
||||
|
@ -86,6 +87,19 @@ Item{
|
|||
},searchText.text,-1);
|
||||
}
|
||||
|
||||
function showBlocked(contact){
|
||||
try {friendsModel.clear()} catch(e){};
|
||||
Newsjs.listBlocked(login,db,function(contactsobject){
|
||||
for (var j=0;j<contactsobject.length;j++){
|
||||
contactsobject[j].description=Qt.atob(contactsobject[j].description);
|
||||
if(Helperjs.getCount(db,login,"contacts","screen_name",contactsobject[j].screen_name)>1){
|
||||
contactsobject[j].screen_name=contactsobject[j].screen_name+"+"+contactsobject[j].cid
|
||||
}
|
||||
friendsModel.append({"contact":contactsobject[j]});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Connections{
|
||||
target:xhr
|
||||
function onDownloaded(type,url,filename,i){
|
||||
|
@ -159,14 +173,18 @@ Item{
|
|||
width: 6*root.fontFactor*osSettings.bigFontSize
|
||||
height: 1.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
model: [qsTr("Friends"), qsTr("All")]
|
||||
model: [qsTr("Friends"), qsTr("All"), qsTr("Blocked")]
|
||||
onCurrentIndexChanged:{
|
||||
if (currentIndex === 0) {
|
||||
showFriends(root.login.username);
|
||||
} else{
|
||||
} else
|
||||
if (currentIndex===1){
|
||||
showContacts()
|
||||
} else if (currentIndex===2){
|
||||
showBlocked()
|
||||
}
|
||||
}
|
||||
Component.onCompleted: {root.contactRefreshSignal.connect(onCurrentIndexChanged)}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -51,9 +51,6 @@ Item{
|
|||
|
||||
function updateGroup(login,database,group){
|
||||
// update groups
|
||||
//var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
//var groupdata={"gid":group.id,"name":group.name,"user":group.user};
|
||||
//print("Groupdata "+JSON.stringify(group));
|
||||
var api="";
|
||||
if (group.new){api="/api/friendica/group_create.json?name="+group.name}else{api="/api/friendica/group_update.json?gid="+group.id}
|
||||
xhr.setUrl(login.server);
|
||||
|
|
|
@ -61,8 +61,10 @@ ApplicationWindow{
|
|||
signal newstypeSignal(var type)
|
||||
signal friendsSignal(var username)
|
||||
signal contactdetailsSignal(var contact)
|
||||
signal contactRefreshSignal()
|
||||
signal searchSignal (var searchterm)
|
||||
signal eventSignal(var contact)
|
||||
signal eventcreateSignal(var event)
|
||||
signal uploadSignal(var urls)
|
||||
signal sendtextSignal(var intenttext)
|
||||
signal changeimage(var method, var type, var id)
|
||||
|
@ -202,7 +204,10 @@ ApplicationWindow{
|
|||
TabBar {
|
||||
id: bar
|
||||
Layout.fillWidth: true
|
||||
onCurrentIndexChanged: rootstack.currentIndex=bar.currentIndex
|
||||
onCurrentIndexChanged: {
|
||||
rootstack.currentIndex=bar.currentIndex;
|
||||
try{while(rootstackView.depth>1){rootstackView.pop()}}catch(e){}
|
||||
}
|
||||
TabButton {
|
||||
text: "\uf03a"
|
||||
background:Rectangle{
|
||||
|
|
|
@ -42,12 +42,13 @@ Rectangle{
|
|||
radius: mm
|
||||
property alias text: mainText.text
|
||||
property alias font: mainText.font
|
||||
property alias fontSize: mainText.font.pointSize
|
||||
signal clicked
|
||||
state:""
|
||||
|
||||
Text{
|
||||
id:mainText
|
||||
color: "black"
|
||||
color: Material.primaryTextColor//"black"
|
||||
anchors.centerIn: parent
|
||||
width: contentWidth
|
||||
height: contentHeight
|
||||
|
|
|
@ -63,10 +63,10 @@ Item {
|
|||
onClicked: {
|
||||
login=account;
|
||||
if(!wideScreen){leftDrawerAndroid.close()}
|
||||
newstypeSignal("refresh")
|
||||
// updatenews.setDatabase();
|
||||
// updatenews.login();
|
||||
// updatenews.startsync();
|
||||
// newstypeSignal("refresh")
|
||||
updatenews.setDatabase();
|
||||
updatenews.login();
|
||||
updatenews.startsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,161 +29,180 @@
|
|||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12
|
||||
import QtQuick.Controls.Material 2.12
|
||||
import Qt.labs.folderlistmodel 2.1
|
||||
import QtQuick.Dialogs 1.2
|
||||
import Qt.labs.folderlistmodel 2.12
|
||||
import "qrc:/js/service.js" as Service
|
||||
import "qrc:/js/helper.js" as Helperjs
|
||||
import "qrc:/qml/genericqml"
|
||||
|
||||
Rectangle{
|
||||
Item{
|
||||
id:imageDialog
|
||||
z:2
|
||||
border.color: "grey"
|
||||
color: Material.backgroundColor
|
||||
width: parent.width-4*mm
|
||||
height:parent.height-12*mm
|
||||
x:2*mm
|
||||
y:10*mm
|
||||
// border.color: "grey"
|
||||
// color: Material.backgroundColor
|
||||
// width: parent.width-root.fontFactor*osSettings.bigFontSize
|
||||
// height: parent.height-3*root.fontFactor*osSettings.bigFontSize
|
||||
// x: 0.5*root.fontFactor*osSettings.bigFontSize
|
||||
// y: 2*root.fontFactor*osSettings.bigFontSize
|
||||
property string directory: ""
|
||||
property bool multiple: false
|
||||
property string imageUrl: ""
|
||||
property var imageUrls: []
|
||||
//property var imageUrls: []
|
||||
signal ready();
|
||||
function pickImage() {}
|
||||
function pickImage() {imageFileDialog.open()}
|
||||
|
||||
Text{
|
||||
id:directoryText
|
||||
x:0.5*mm
|
||||
y:0.5*mm
|
||||
width: imageDialog.width-15*mm
|
||||
height:contentHeight
|
||||
wrapMode: Text.Wrap
|
||||
text: directory
|
||||
}
|
||||
Button{
|
||||
id:closeButton
|
||||
height: 3*root.fontFactor*osSettings.bigFontSize
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 0.5*mm
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 1*mm
|
||||
text: "\uf057"
|
||||
onClicked:{ready();imageDialog.destroy()}
|
||||
// Text{
|
||||
// id:directoryText
|
||||
// anchors.bottom: parent.bottom
|
||||
//// x:0.5*mm
|
||||
//// y:0.5*mm
|
||||
// width: imageDialog.width-3.5*root.fontFactor*osSettings.bigFontSize
|
||||
// height:contentHeight
|
||||
// font.pointSize: osSettings.bigFontSize
|
||||
// wrapMode: Text.Wrap
|
||||
// text: directory
|
||||
// color: Material.primaryTextColor
|
||||
// }
|
||||
// Button{
|
||||
// id:closeButton
|
||||
// height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
// anchors.top: parent.top
|
||||
// anchors.topMargin: 0.5*mm
|
||||
// anchors.right: parent.right
|
||||
// anchors.rightMargin: 1*mm
|
||||
// text: "\uf057"
|
||||
// onClicked:{
|
||||
// ready();imageDialog.destroy()
|
||||
// }
|
||||
// }
|
||||
FileDialog {
|
||||
id: imageFileDialog
|
||||
title: "Please choose a file"
|
||||
folder: shortcuts.pictures
|
||||
selectFolder: false
|
||||
selectMultiple: true
|
||||
onAccepted: {
|
||||
imageUrl=imageFileDialog.fileUrls.toString();
|
||||
ready();
|
||||
}
|
||||
}
|
||||
// ListView {
|
||||
// id: imageView
|
||||
// x:0.5*mm
|
||||
// y: 2.5*root.fontFactor*osSettings.bigFontSize//Math.max(directoryText.height, closeButton.height)+mm
|
||||
// width: parent.width-2*mm
|
||||
// height: parent.height-3*root.fontFactor*osSettings.bigFontSize
|
||||
// boundsBehavior:Flickable.StopAtBounds
|
||||
// clip: true
|
||||
// model: imageModel
|
||||
// delegate: imageItem
|
||||
// ScrollBar.vertical: ScrollBar { }
|
||||
// }
|
||||
|
||||
ListView {
|
||||
id: imageView
|
||||
x:0.5*mm
|
||||
y: Math.max(directoryText.height, closeButton.height)+mm
|
||||
width: imageDialog.width-2*mm
|
||||
height: imageDialog.height-imageView.y-4*mm
|
||||
clip: true
|
||||
model: imageModel
|
||||
delegate: imageItem
|
||||
}
|
||||
// FolderListModel{
|
||||
// id: imageModel
|
||||
// nameFilters: ["*.png", "*.jpg",".jpeg","*.JPG","*.gif"]
|
||||
// sortField: FolderListModel.Time
|
||||
// sortReversed:false
|
||||
// showDotAndDotDot: true
|
||||
// showDirs: true
|
||||
// showDirsFirst: true
|
||||
// folder:directory
|
||||
// }
|
||||
|
||||
FolderListModel{
|
||||
id: imageModel
|
||||
nameFilters: ["*.png", "*.jpg",".jpeg","*.JPG","*.gif"]
|
||||
sortField: FolderListModel.Time
|
||||
sortReversed:false
|
||||
showDotAndDotDot: true
|
||||
showDirs: true
|
||||
showDirsFirst: true
|
||||
folder:directory
|
||||
}
|
||||
// BusyIndicator{
|
||||
// id: imageBusy
|
||||
// anchors.horizontalCenter: imageView.horizontalCenter
|
||||
// anchors.top:imageView.top
|
||||
// anchors.topMargin: 2*mm
|
||||
// width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
// height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
// running:false
|
||||
// }
|
||||
|
||||
BusyIndicator{
|
||||
id: imageBusy
|
||||
anchors.horizontalCenter: imageView.horizontalCenter
|
||||
anchors.top:imageView.top
|
||||
anchors.topMargin: 2*mm
|
||||
width:10*mm
|
||||
height: 10*mm
|
||||
running:false
|
||||
}
|
||||
// Component{
|
||||
// id:imageItem
|
||||
// Item{
|
||||
// width:imageView.width
|
||||
// height: Math.max(fileImage.height,1.5*root.fontFactor*osSettings.bigFontSize)+2*mm
|
||||
// Rectangle{
|
||||
// id:imagetextRectangle
|
||||
// color:"black"
|
||||
// x:mm
|
||||
// z:3
|
||||
// opacity: fileIsDir?0:0.5
|
||||
// width:imagetext.contentWidth
|
||||
// height: imagetext.contentHeight
|
||||
// anchors.bottom: fileImage.bottom
|
||||
// }
|
||||
// Text {
|
||||
// id:imagetext
|
||||
// x: mm//fileIsDir?11*mm:mm
|
||||
// z:4
|
||||
// text: fileIsDir?"\uf07b "+fileName:fileName
|
||||
// width: fileIsDir?parent.width - 2.5*root.fontFactor*osSettings.bigFontSize :imageView.width-mm
|
||||
// anchors.bottom: fileImage.bottom
|
||||
// color: fileIsDir?Material.primaryTextColor:"white"
|
||||
// font.pointSize: osSettings.bigFontSize
|
||||
// wrapMode:Text.Wrap
|
||||
// }
|
||||
// Text {
|
||||
// id:selected
|
||||
// anchors.right:parent.right
|
||||
// visible: attachImageURLs.indexOf(fileURL)>-1
|
||||
// z:4
|
||||
// text: "\u2713"
|
||||
// width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
// anchors.top: fileImage.top
|
||||
// color: "green"
|
||||
// font.pointSize: 3*osSettings.bigFontSize
|
||||
// }
|
||||
|
||||
Component{
|
||||
id:imageItem
|
||||
Item{
|
||||
width:imageView.width
|
||||
height:folderImage.height+2*mm
|
||||
Rectangle{
|
||||
id:imagetextRectangle
|
||||
color:"black"
|
||||
x:mm
|
||||
z:3
|
||||
opacity: fileIsDir?0:0.5
|
||||
width:imagetext.contentWidth
|
||||
height: imagetext.contentHeight
|
||||
anchors.bottom: folderImage.bottom
|
||||
}
|
||||
Text {
|
||||
id:imagetext
|
||||
x:fileIsDir?11*mm:mm
|
||||
z:4
|
||||
text: fileName
|
||||
width: fileIsDir?parent.width - 12*mm :imageView.width-mm
|
||||
anchors.bottom: folderImage.bottom
|
||||
color: fileIsDir?"black":"white"
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
wrapMode:Text.Wrap
|
||||
}
|
||||
Text {
|
||||
id:selected
|
||||
anchors.right:parent.right
|
||||
visible: attachImageURLs.indexOf(fileURL)>-1
|
||||
z:4
|
||||
text: "\u2713"
|
||||
width: 10*mm
|
||||
anchors.top: folderImage.top
|
||||
color: "green"
|
||||
font.pointSize: 3*osSettings.bigFontSize
|
||||
}
|
||||
// Image{id:fileImage
|
||||
// width: imageView.width-mm
|
||||
// fillMode:Image.PreserveAspectFit
|
||||
// source:fileIsDir?"":fileURL
|
||||
// }
|
||||
|
||||
Image{id:folderImage
|
||||
width: fileIsDir?10*mm: imageView.width-mm
|
||||
fillMode:Image.PreserveAspectFit
|
||||
source:fileIsDir?"qrc:/images/folder-blue.png":fileURL
|
||||
}
|
||||
// MouseArea{
|
||||
// anchors.fill: parent
|
||||
// onClicked:{
|
||||
// if (fileName==".."){
|
||||
// imageModel.folder=imageModel.parentFolder;
|
||||
// directory=imageModel.parentFolder
|
||||
// }
|
||||
// else if (fileIsDir){
|
||||
// imageModel.folder=fileURL;
|
||||
// directory=fileURL
|
||||
// }
|
||||
// else{
|
||||
// if (multiple!=true){
|
||||
// //attachImageURLs.push(fileURL);
|
||||
// //attachImage(fileURL);
|
||||
// imageUrls.push(fileURL);
|
||||
// imageUrl=fileURL;
|
||||
// ready();
|
||||
// imageDialog.destroy()
|
||||
// }
|
||||
// else {
|
||||
// if(selected.visible==true){
|
||||
// imageUrls.splice(imageUrls.indexOf(fileURL,1))
|
||||
// selected.visible=false
|
||||
// }
|
||||
// else{
|
||||
// imageUrls.push(fileURL);
|
||||
// selected.visible=true;
|
||||
|
||||
MouseArea{
|
||||
anchors.fill: parent
|
||||
onClicked:{
|
||||
if (fileName==".."){
|
||||
imageModel.folder=imageModel.parentFolder;
|
||||
directory=imageModel.parentFolder
|
||||
}
|
||||
else if (fileIsDir){
|
||||
imageModel.folder=fileURL;
|
||||
directory=fileURL
|
||||
}
|
||||
else{
|
||||
if (multiple!=true){
|
||||
//attachImageURLs.push(fileURL);
|
||||
//attachImage(fileURL);
|
||||
imageUrls.push(fileURL);
|
||||
imageUrl=fileURL;
|
||||
ready();
|
||||
imageDialog.destroy()
|
||||
}
|
||||
else {
|
||||
if(selected.visible==true){
|
||||
imageUrls.splice(imageUrls.indexOf(fileURL,1))
|
||||
selected.visible=false
|
||||
}
|
||||
else{
|
||||
imageUrls.push(fileURL);
|
||||
selected.visible=true;
|
||||
|
||||
}
|
||||
imageUrl=fileURL
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// }
|
||||
// imageUrl=fileURL
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// Component.onCompleted: imageFileDialog.open()
|
||||
}
|
||||
|
|
|
@ -22,13 +22,15 @@ Item {
|
|||
h.push("file://"+ decodeURIComponent(message.imageUrls[n]).substring(5))
|
||||
}
|
||||
imageUrls=h;
|
||||
if(imageUrls.length==1){
|
||||
rootstack.currentIndex=0;newstab.active=true;
|
||||
root.uploadSignal(imageUrls)
|
||||
} else{
|
||||
rootstack.currentIndex=2;fotostab.active=true;
|
||||
root.uploadSignal(imageUrls)
|
||||
}
|
||||
rootstack.currentIndex=0;newstab.active=true;
|
||||
root.uploadSignal(imageUrls.join(","))
|
||||
// if(imageUrls.length==1){
|
||||
// rootstack.currentIndex=0;newstab.active=true;
|
||||
// root.uploadSignal(imageUrls)
|
||||
// } else{
|
||||
// rootstack.currentIndex=2;fotostab.active=true;
|
||||
// root.uploadSignal(imageUrls)
|
||||
// }
|
||||
} else if (type==m_TEXT_MESSAGE){
|
||||
rootstack.currentIndex=0;newstab.active=true;
|
||||
root.sendtextSignal(message)
|
||||
|
|
|
@ -15,7 +15,6 @@ Item {
|
|||
|
||||
function startSyncTimer(interval){
|
||||
syncTimer.interval=interval*60000;
|
||||
//print("synctimer interval "+syncTimer.interval)
|
||||
syncTimer.start()
|
||||
}
|
||||
|
||||
|
|
55
source-linux/qml/newsqml/BlockUser.qml
Normal file
55
source-linux/qml/newsqml/BlockUser.qml
Normal file
|
@ -0,0 +1,55 @@
|
|||
// This file is part of Friendiqa
|
||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// In addition, as a special exception, the copyright holders give
|
||||
// permission to link the code of portions of this program with the
|
||||
// OpenSSL library under certain conditions as described in each
|
||||
// individual source file, and distribute linked combinations including
|
||||
// the two.
|
||||
//
|
||||
// You must obey the GNU General Public License in all respects for all
|
||||
// of the code used other than OpenSSL. If you modify file(s) with this
|
||||
// exception, you may extend this exception to your version of the
|
||||
// file(s), but you are not obligated to do so. If you do not wish to do
|
||||
// so, delete this exception statement from your version. If you delete
|
||||
// this exception statement from all source files in the program, then
|
||||
// also delete it here.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Controls.Material 2.12
|
||||
import "qrc:/js/helper.js" as Helperjs
|
||||
|
||||
Dialog {
|
||||
id: userReportDialog
|
||||
anchors.centerIn: parent
|
||||
property var newsitem:({})
|
||||
title: qsTr("Block contact?")
|
||||
|
||||
standardButtons: Dialog.Ok | Dialog.Cancel
|
||||
modal: true
|
||||
onAccepted: {
|
||||
Helperjs.updateData(root.db,"contacts",login.username,"statusnet_blocking", true,function(){},"id",newsitem.user.id)
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setApi("/api/v1/accounts/" + newsitem.user.id + "/block");
|
||||
xhr.clearParams();
|
||||
xhr.post();
|
||||
}
|
||||
onRejected: {close()}
|
||||
Label {text: newsitem.user.name}
|
||||
}
|
|
@ -132,8 +132,8 @@ Page {
|
|||
BusyIndicator{
|
||||
id: contactBusy
|
||||
anchors.centerIn:parent
|
||||
width:10*mm
|
||||
height: 10*mm
|
||||
width: 1.5*root.fontFactor*osSettings.bigFontSize
|
||||
height: 1.5*root.fontFactor*osSettings.bigFontSize
|
||||
running: true
|
||||
}
|
||||
|
||||
|
@ -159,6 +159,7 @@ Page {
|
|||
function onProfileimagesourceChanged(){profileImage.source=profileimagesource}
|
||||
}
|
||||
}
|
||||
|
||||
Flow{id:buttonflow
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: mm
|
||||
|
@ -222,6 +223,7 @@ Page {
|
|||
})
|
||||
Helperjs.deleteData(root.db,"friendshiprequests",root.login.username,function(){},"id", contact.id)
|
||||
//if (rootstack.currentIndex==1){root.friendsSignal(login.username)}
|
||||
try{root.contactRefreshSignal();}catch(e){print("root.refreshSignal"+e)}
|
||||
rootstackView.pop()
|
||||
}
|
||||
}
|
||||
|
@ -236,6 +238,7 @@ Page {
|
|||
})
|
||||
Helperjs.deleteData(root.db,"friendshiprequests",root.login.username,function(){},"id", contact.id)
|
||||
//if (rootstack.currentIndex==1){root.friendsSignal(login.username)}
|
||||
try{root.contactRefreshSignal();}catch(e){print("root.refreshSignal"+e)}
|
||||
rootstackView.pop()
|
||||
}
|
||||
}
|
||||
|
@ -250,6 +253,7 @@ Page {
|
|||
});
|
||||
Helperjs.deleteData(root.db,"friendshiprequests",root.login.username,function(){},"id", contact.id)
|
||||
//if (rootstack.currentIndex==1){root.friendsSignal(login.username)}
|
||||
try{root.contactRefreshSignal();}catch(e){print("root.refreshSignal"+e)}
|
||||
rootstackView.pop()
|
||||
}
|
||||
}
|
||||
|
@ -264,6 +268,7 @@ Page {
|
|||
|
||||
});
|
||||
Helperjs.updateData(root.db,"contacts",root.login.username,"isFriend",1,function(){},"id",contact.id)
|
||||
try{root.contactRefreshSignal();}catch(e){print("root.refreshSignal"+e)}
|
||||
//if (rootstack.currentIndex==1){root.friendsSignal(login.username)}
|
||||
rootstackView.pop()
|
||||
}
|
||||
|
@ -281,10 +286,40 @@ Page {
|
|||
});
|
||||
Helperjs.updateData(root.db,"contacts",root.login.username,"isFriend",0,function(){},"id",contact.id)
|
||||
//if (rootstack.currentIndex==1){root.friendsSignal(login.username)}
|
||||
try{root.contactRefreshSignal();}catch(e){print("root.refreshSignal"+e)}
|
||||
rootstackView.pop()
|
||||
}
|
||||
}
|
||||
|
||||
MButton{
|
||||
id: blockbutton
|
||||
visible:(contact.statusnet_blocking!=1)
|
||||
height: 6*mm
|
||||
text:qsTr("Block")
|
||||
onClicked:{
|
||||
contactBusy.running=true;
|
||||
Helperjs.updateData(root.db,"contacts",root.login.username,"statusnet_blocking",true,function(){},"id",contact.id)
|
||||
Helperjs.friendicaPostRequest(login,"/api/v1/accounts/" + contact.id + "/block",'',"POST",root,function(returnvalue){
|
||||
});
|
||||
try{root.contactRefreshSignal();}catch(e){print("root.refreshSignal"+e)}
|
||||
rootstackView.pop()
|
||||
}
|
||||
}
|
||||
|
||||
MButton{
|
||||
id: unblockbutton
|
||||
visible:(contact.statusnet_blocking==1)
|
||||
height: 6*mm
|
||||
text:qsTr("Unblock")
|
||||
onClicked:{
|
||||
contactBusy.running=true;
|
||||
Helperjs.updateData(root.db,"contacts",root.login.username,"statusnet_blocking",false,function(){},"id",contact.id)
|
||||
Helperjs.friendicaPostRequest(login,"/api/v1/accounts/" + contact.id + "/unblock",'',"POST",root,function(returnvalue){
|
||||
});
|
||||
try{root.contactRefreshSignal();}catch(e){print("root.refreshSignal"+e)}
|
||||
rootstackView.pop()
|
||||
}
|
||||
}
|
||||
|
||||
}//Flow end
|
||||
Label {
|
||||
|
@ -370,9 +405,6 @@ Page {
|
|||
xhr.clearParams();
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
// if(contact.isFriend==1 || contact.hasOwnProperty("acct")){
|
||||
// xhr.setApi("/api/statuses/user_timeline");}
|
||||
// else{xhr.setApi("/api/users/show");}
|
||||
xhr.setApi("/api/statuses/user_timeline")
|
||||
xhr.setParam("user_id",contact.id)
|
||||
xhr.get();
|
||||
|
|
|
@ -104,9 +104,9 @@ Page {
|
|||
id: conversationBusy
|
||||
anchors.horizontalCenter: conversationView.horizontalCenter
|
||||
anchors.top:conversationView.top
|
||||
anchors.topMargin: 2*mm
|
||||
width:10*mm
|
||||
height: 10*mm
|
||||
anchors.topMargin: mm
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
running: true
|
||||
}
|
||||
|
||||
|
|
301
source-linux/qml/newsqml/MessageImageUploadDialog.qml
Normal file
301
source-linux/qml/newsqml/MessageImageUploadDialog.qml
Normal file
|
@ -0,0 +1,301 @@
|
|||
// This file is part of Friendiqa
|
||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// In addition, as a special exception, the copyright holders give
|
||||
// permission to link the code of portions of this program with the
|
||||
// OpenSSL library under certain conditions as described in each
|
||||
// individual source file, and distribute linked combinations including
|
||||
// the two.
|
||||
//
|
||||
// You must obey the GNU General Public License in all respects for all
|
||||
// of the code used other than OpenSSL. If you modify file(s) with this
|
||||
// exception, you may extend this exception to your version of the
|
||||
// file(s), but you are not obligated to do so. If you do not wish to do
|
||||
// so, delete this exception statement from your version. If you delete
|
||||
// this exception statement from all source files in the program, then
|
||||
// also delete it here.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import QtQuick 2.5
|
||||
import QtQuick.Controls 2.12
|
||||
import QtQuick.Controls.Material 2.12
|
||||
import "qrc:/js/helper.js" as Helperjs
|
||||
import "qrc:/qml/genericqml"
|
||||
|
||||
Page{
|
||||
id:imageDialog
|
||||
property var attachImageURLs: []
|
||||
// property var contacts: []
|
||||
// property var groups: []
|
||||
// property var contact_allow:login.permissions[0]
|
||||
// property var contact_deny:login.permissions[1]
|
||||
// property var group_allow:login.permissions[2]
|
||||
// property var group_deny:login.permissions[3]
|
||||
property int imageNo: 0
|
||||
|
||||
function uploadImage(imageid){
|
||||
if(imageUploadModel.get(imageid).uploaded==true){
|
||||
imageNo=imageNo+1;
|
||||
if(imageNo<imageUploadModel.count){
|
||||
uploadImage(imageNo);
|
||||
}
|
||||
} else{
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setApi("/api/media/upload");
|
||||
xhr.clearParams();
|
||||
//if (group_allow.length>0) {xhr.setParam("group_allow", Helperjs.cleanArray(group_allow))};
|
||||
//if (group_deny.length>0) {xhr.setParam("group_deny", Helperjs.cleanArray(group_deny))};
|
||||
//if (contact_allow.length>0) {xhr.setParam("contact_allow", Helperjs.cleanArray(contact_allow))};
|
||||
//if (contact_deny.length>0) {xhr.setParam("contact_deny", Helperjs.cleanArray(contact_deny))};
|
||||
xhr.setImageFileParam("media", imageUploadModel.get(imageid).imageUrl);
|
||||
xhr.setImageFileParam("angle", imageUploadModel.get(imageid).imageRotation);
|
||||
xhr.post();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function updateAltText(imageid, media){print("media "+media + " alt_text "+imageUploadModel.get(imageid).description)
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setApi("/api/media/metadata/create");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("JSON",JSON.stringify({media_id:media,alt_text:{text:imageUploadModel.get(imageid).description}}));
|
||||
xhr.postJSON();
|
||||
}
|
||||
|
||||
function attach(){
|
||||
imagePicking=true;
|
||||
var imagePicker = Qt.createQmlObject('import QtQuick 2.0; import "qrc:/qml/genericqml";'+
|
||||
osSettings.imagePickQml+'{multiple : false;onReady: {'+
|
||||
'attachImage(imageUrl)}}',imageDialog,"imagePicker");
|
||||
imagePicker.pickImage()
|
||||
}
|
||||
|
||||
function attachImage(url){
|
||||
if (url.indexOf(",")>0){
|
||||
let urlArray=url.split(",");
|
||||
for (let file in urlArray){attachImage(urlArray[file])}
|
||||
} else{
|
||||
if(url!=""){
|
||||
imageUploadModel.append({"imageUrl":url,"description":"","imageUploaded":false,"imageRotation":0})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
y:1
|
||||
width: messageColumn.width-1.5*root.fontFactor*osSettings.bigFontSize
|
||||
height: 15*root.fontFactor*osSettings.bigFontSize//root.height/2-1.5*root.fontFactor*osSettings.bigFontSize
|
||||
|
||||
onVisibleChanged: {if (visible==false){
|
||||
imageUploadModel.clear();
|
||||
imageNo=0;
|
||||
}}
|
||||
|
||||
Connections{
|
||||
target:xhr
|
||||
function onError(data,url,api,code){
|
||||
print("error "+data);
|
||||
}
|
||||
function onSuccess(data,api){
|
||||
if (api=="/api/media/upload" ){print("data "+data);
|
||||
let obj=JSON.parse(data);
|
||||
messageSend.media_ids.push(obj.media_id);
|
||||
if(imageUploadModel.get(imageNo).description!==""){
|
||||
try{
|
||||
updateAltText(imageNo,obj.media_id_string)
|
||||
}catch(e){}
|
||||
}
|
||||
else{
|
||||
imageUploadModel.set(imageNo,{"imageUploaded":true});
|
||||
imageNo=imageNo+1;
|
||||
if(imageNo<imageUploadModel.count){
|
||||
uploadImage(imageNo);
|
||||
}
|
||||
}
|
||||
|
||||
} else if(api=="/api/media/metadata/create"){
|
||||
imageUploadModel.set(imageNo,{"imageUploaded":true});
|
||||
imageNo=imageNo+1;
|
||||
if(imageNo<imageUploadModel.count){
|
||||
uploadImage(imageNo);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListView{
|
||||
id: imageUploadView
|
||||
x: root.fontFactor*osSettings.bigFontSize
|
||||
y: 0.5*root.fontFactor*osSettings.bigFontSize
|
||||
width: imageDialog.width-1.5*root.fontFactor*osSettings.bigFontSize
|
||||
height: parent.height -(3*root.fontFactor*osSettings.bigFontSize)
|
||||
model: imageUploadModel
|
||||
delegate: imageDelegate
|
||||
footer: imageFooter
|
||||
clip:true
|
||||
orientation: ListView.Horizontal
|
||||
spacing: mm
|
||||
DropArea{
|
||||
anchors.fill: parent
|
||||
onDropped: {
|
||||
if (drop.keys.includes('text/uri-list')){
|
||||
var urllist=drop.text.split('\n');
|
||||
for(var i=0;i< urllist.length;i++){
|
||||
var droptext = urllist[i].replace(/(\r\n|\n|\r)/gm, ",");
|
||||
attachImage(droptext)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BusyIndicator{
|
||||
id: uploadBusy
|
||||
running: false
|
||||
anchors.horizontalCenter: imageUploadView.horizontalCenter
|
||||
anchors.top:imageUploadView.top
|
||||
anchors.topMargin: root.fontFactor*osSettings.bigFontSize
|
||||
width: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
}
|
||||
|
||||
ListModel{
|
||||
id: imageUploadModel
|
||||
}
|
||||
|
||||
Component{
|
||||
id: imageDelegate
|
||||
Rectangle{
|
||||
width: Math.max(10*root.fontFactor*osSettings.bigFontSize,uploadImage.width)
|
||||
height:imageUploadView.height-4*root.fontFactor*osSettings.bigFontSize
|
||||
color: Material.backgroundColor
|
||||
Image{
|
||||
id: uploadImage
|
||||
width: parent.width //root.width/2-mm
|
||||
height: imageUploadView.height-(3*root.fontFactor*osSettings.bigFontSize+2*mm)
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source:imageUrl
|
||||
transform: Rotation {id:rotator; origin.x: uploadImage.width/2; origin.y: uploadImage.height/2; angle: imageRotation}
|
||||
onVisibleChanged: descriptionInput.focus=true;
|
||||
}
|
||||
|
||||
Rectangle{//rotation
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
visible: uploadImage.source!=""
|
||||
anchors.bottom: uploadImage.bottom
|
||||
anchors.right: uploadImage.right
|
||||
color: "black"
|
||||
opacity: 0.5
|
||||
Text{anchors.centerIn:parent;text: "\uf01e";color: "white"}
|
||||
MouseArea{
|
||||
anchors.fill:parent;
|
||||
onClicked:{
|
||||
rotator.angle+=90;
|
||||
imageRotation+=90
|
||||
imageUploadModel.set(index,{"imageRotation":imageRotation});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle{//remove
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
visible: uploadImage.source!=""
|
||||
anchors.bottom: uploadImage.bottom
|
||||
anchors.left: uploadImage.left
|
||||
color: "black"
|
||||
opacity: 0.5
|
||||
Text{anchors.centerIn:parent;text: "\uf00d";color: "white"}
|
||||
MouseArea{
|
||||
anchors.fill:parent;
|
||||
onClicked:{
|
||||
imageUploadModel.remove(index)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
id:uploadedArrow
|
||||
anchors.right:uploadImage.right
|
||||
visible: imageUploaded
|
||||
z:4
|
||||
text: "\u2713"
|
||||
width: root.fontFactor*osSettings.bigFontSize
|
||||
anchors.top: parent.top
|
||||
color: "green"
|
||||
font.pointSize: 3*osSettings.bigFontSize
|
||||
}
|
||||
|
||||
Rectangle{
|
||||
id:descriptionRectangle
|
||||
color: Material.backgroundColor
|
||||
border.color: "grey"
|
||||
anchors.top: uploadImage.bottom
|
||||
anchors.topMargin: mm
|
||||
width: parent.width //root.width/2-mm //Math.max(root.width/2-mm, descriptionInput.contentWidth);
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize //5*mm;
|
||||
TextField{
|
||||
id: descriptionInput
|
||||
anchors.fill: parent
|
||||
anchors.margins: 0.5*mm
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
selectByMouse: true
|
||||
placeholderText: qsTr("Description")
|
||||
text:description!=""?description:""
|
||||
onTextChanged: imageUploadModel.set(index,{"description":descriptionInput.text});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Component{
|
||||
id: imageFooter
|
||||
BlueButton{
|
||||
width: 5*root.fontFactor*osSettings.bigFontSize
|
||||
height:imageUploadView.height-3*root.fontFactor*osSettings.bigFontSize
|
||||
color: Material.backgroundColor
|
||||
text:"\u002b"
|
||||
fontSize: 3*osSettings.bigFontSize
|
||||
onClicked:{attach()}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Button{
|
||||
id:uploadButton
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
x: root.fontFactor*osSettings.bigFontSize
|
||||
anchors.top:imageUploadView.bottom
|
||||
anchors.topMargin: mm
|
||||
text: qsTr("Upload")
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
onClicked:{
|
||||
{newimageProgress.visible=true;
|
||||
if (imageUploadModel.count>0){
|
||||
uploadImage(imageNo)
|
||||
}}
|
||||
}
|
||||
}
|
||||
ProgressBar{
|
||||
id: newimageProgress
|
||||
width: 5*root.fontFactor*osSettings.bigFontSize
|
||||
height: root.fontFactor*osSettings.systemFontSize//buttonRow.height
|
||||
anchors.top: parent.top
|
||||
visible: false
|
||||
value: imageNo/imageUploadModel.count
|
||||
}
|
||||
}
|
|
@ -38,20 +38,20 @@ import "qrc:/js/helper.js" as Helperjs
|
|||
import "qrc:/js/smiley.js" as Smileyjs
|
||||
import "qrc:/js/news.js" as Newsjs
|
||||
import "qrc:/qml/genericqml"
|
||||
|
||||
import "qrc:/qml/newsqml"
|
||||
|
||||
Rectangle{
|
||||
color:Material.dialogColor
|
||||
width:parent.width
|
||||
height: conversation || (newsSwipeview.stacktype!="Notifications")?messageColumn.height+2*mm:0
|
||||
height: messageColumn.height+2*mm
|
||||
id:messageSend
|
||||
visible:conversation || (newsSwipeview.stacktype!="Notifications")||(newstab.newstabstatus!="Search")?true:false
|
||||
visible:conversation || (newstab.newstabstatus!="Search")?true:false
|
||||
property string parentId: ""
|
||||
property bool textfocus: false
|
||||
property bool conversation: false
|
||||
property string reply_to_user:""
|
||||
property alias bodyMessage: bodyField.text
|
||||
property var attachImageURLs: [];
|
||||
property var media_ids:[]
|
||||
property var contacts: []
|
||||
property var groups: []
|
||||
property var contact_allow:login.hasOwnProperty("permissions")?login.permissions[0]:[]
|
||||
|
@ -66,11 +66,8 @@ Rectangle{
|
|||
}
|
||||
|
||||
function sendUrls(urls){
|
||||
if((urls.length==1 && attachImageURLs.length==0)){
|
||||
attachImage(urls);
|
||||
attachImageURLs.push(urls);
|
||||
messageSend.state="active";
|
||||
}
|
||||
}
|
||||
|
||||
function sendtext(text){
|
||||
|
@ -84,48 +81,36 @@ Rectangle{
|
|||
}
|
||||
|
||||
function attachImage(url){
|
||||
imageAttachment.source=url.toString();
|
||||
if(url!=""){
|
||||
imageUploadDialog.visible=true;
|
||||
imageUploadDialog.attachImage(url)
|
||||
}
|
||||
}
|
||||
|
||||
function statusUpdate(title,status,in_reply_to_status_id,attachImageURL) {
|
||||
function statusUpdate(title,status,in_reply_to_status_id) {
|
||||
//xhr.url= login.server + "/api/statuses/update.json";
|
||||
try{newsBusy.running=true;conversationBusy.running=true}catch(e){}
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
//if (in_reply_to_status_id==""){
|
||||
xhr.setApi("/api/statuses/update");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("source", "Friendiqa");
|
||||
xhr.setParam("htmlstatus", status);
|
||||
if (parentId!="") {xhr.setParam("in_reply_to_status_id", parentId)};
|
||||
if (title!=="") {xhr.setParam("title", title)};
|
||||
if (group_allow.length>0) {xhr.setParam("group_allow", Helperjs.cleanArray(group_allow))};
|
||||
if (group_deny.length>0) {xhr.setParam("group_deny", Helperjs.cleanArray(group_deny))};
|
||||
if (contact_allow.length>0) {xhr.setParam("contact_allow", Helperjs.cleanArray(contact_allow))};
|
||||
if (contact_deny.length>0) {xhr.setParam("contact_deny", Helperjs.cleanArray(contact_deny))};
|
||||
if (attachImageURL.length>0) {
|
||||
for (var image in attachImageURL){
|
||||
xhr.setImageFileParam("media", attachImageURL[image]);
|
||||
xhr.setImageFileParam("angle", rotator.angle.toString());
|
||||
}
|
||||
}
|
||||
xhr.post();
|
||||
Newsjs.storeHashtags(login,db,status,root)
|
||||
// }else {
|
||||
// xhr.setApi("/api/v1/statuses");
|
||||
// xhr.clearParams();
|
||||
// xhr.setParam("status", status);
|
||||
// xhr.setParam("in_reply_to_id", in_reply_to_status_id);
|
||||
// xhr.post();
|
||||
// Newsjs.storeHashtags(login,db,status,root)
|
||||
// messageSend.destroy()
|
||||
// }
|
||||
messageSend.destroy()
|
||||
xhr.setApi("/api/statuses/update");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("source", "Friendiqa");
|
||||
xhr.setParam("htmlstatus", status);
|
||||
if (parentId!="") {xhr.setParam("in_reply_to_status_id", parentId)};
|
||||
if (title!=="") {xhr.setParam("title", title)};
|
||||
if (group_allow.length>0) {xhr.setParam("group_allow", Helperjs.cleanArray(group_allow))};
|
||||
if (group_deny.length>0) {xhr.setParam("group_deny", Helperjs.cleanArray(group_deny))};
|
||||
if (contact_allow.length>0) {xhr.setParam("contact_allow", Helperjs.cleanArray(contact_allow))};
|
||||
if (contact_deny.length>0) {xhr.setParam("contact_deny", Helperjs.cleanArray(contact_deny))};
|
||||
if (media_ids.length>0) {
|
||||
xhr.setParam("media_ids", media_ids.join());
|
||||
}
|
||||
xhr.post();
|
||||
Newsjs.storeHashtags(login,db,status,root)
|
||||
}
|
||||
|
||||
function dmUpdate(title,text,replyto,screen_name,attachImageURL) {
|
||||
function dmUpdate(title,text,replyto,screen_name) {
|
||||
newsBusy.running=true;
|
||||
//xhr.url= login.server + "/api/direct_messages/new.json";
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setApi("/api/direct_messages/new");
|
||||
|
@ -133,7 +118,6 @@ Rectangle{
|
|||
xhr.setParam("text", text);
|
||||
xhr.setParam("screen_name", screen_name);
|
||||
if (parentId!="") {xhr.setParam("replyto", replyto)};
|
||||
//if (title!=="") {xhr.setParam("title", title)};
|
||||
xhr.post();
|
||||
}
|
||||
|
||||
|
@ -147,8 +131,6 @@ Rectangle{
|
|||
messageSend.reply_to_user="";
|
||||
messageSend.parentId="";
|
||||
bodyField.text="";
|
||||
attachImageURLs.pop();
|
||||
imageAttachment.source=""
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -183,9 +165,9 @@ Rectangle{
|
|||
onDropped: {
|
||||
if (messageSend.state==""){messageSend.state="active"}
|
||||
if (drop.keys.includes('text/uri-list')){
|
||||
var droptext = drop.text.replace(/(\r\n|\n|\r)/gm, "");
|
||||
attachImageURLs.push(droptext);
|
||||
attachImage(droptext)}
|
||||
var droptext = drop.text.replace(/(\r\n|\n|\r)/gm, ",");
|
||||
imageUploadDialog.visible=true;
|
||||
attachImage(droptext)}
|
||||
else if (drop.keys.includes('text/html')){
|
||||
bodyField.append(drop.html)}
|
||||
else if (drop.keys.includes('text/plain')){
|
||||
|
@ -204,7 +186,35 @@ Rectangle{
|
|||
horizontalAlignment:Text.AlignHCenter
|
||||
text: !conversation &&newsSwipeview.stacktype?qsTr(newsSwipeview.stacktype):""
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
}
|
||||
|
||||
BlueButton{
|
||||
width: root.fontFactor*osSettings.bigFontSize
|
||||
height:stackTypeDescription.height
|
||||
anchors.left: stackTypeDescription.left
|
||||
anchors.leftMargin: 2*root.fontFactor*osSettings.bigFontSize
|
||||
visible: newsSwipeview.currentIndex!=0
|
||||
text:"\uf053"
|
||||
fontColor: Material.hintTextColor
|
||||
border.color: "transparent"
|
||||
color:"transparent"
|
||||
radius:0
|
||||
onClicked: {newsSwipeview.currentIndex=newsSwipeview.currentIndex-1}
|
||||
}
|
||||
|
||||
BlueButton{
|
||||
width: root.fontFactor*osSettings.bigFontSize
|
||||
height:stackTypeDescription.height
|
||||
anchors.right: stackTypeDescription.right
|
||||
anchors.rightMargin: 2*root.fontFactor*osSettings.bigFontSize
|
||||
visible: newsSwipeview.currentIndex!=newsSwipeview.length-1
|
||||
text:"\uf054"
|
||||
fontColor: Material.hintTextColor
|
||||
border.color: "transparent"
|
||||
color:"transparent"
|
||||
radius:0
|
||||
onClicked: {newsSwipeview.currentIndex=newsSwipeview.currentIndex+1}
|
||||
}
|
||||
}
|
||||
TextArea{
|
||||
id:receiverLabel
|
||||
width: messageColumn.width
|
||||
|
@ -222,7 +232,7 @@ Rectangle{
|
|||
width: parent.width-mm
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
placeholderText: qsTr("Title (optional)")
|
||||
visible: false//(parentId === "") && (bodyField.length>1)
|
||||
visible: false
|
||||
onVisibleChanged: if ((visible==true)&&(conversation==true)){
|
||||
conversationView.contentY=conversationView.contentY+titleField.height
|
||||
}
|
||||
|
@ -263,8 +273,9 @@ Rectangle{
|
|||
onActiveFocusChanged:{
|
||||
if (activeFocus==true){
|
||||
if (messageSend.ListView.view==null){
|
||||
if (newsitem.ListView.view==null){}
|
||||
else {newsitem.ListView.view.contentY=newsitem.ListView.view.contentY+newsitem.height/2}
|
||||
if ((typeof newsitem == 'undefined') || (newsitem.ListView.view==null)){}
|
||||
else {
|
||||
newsitem.ListView.view.contentY=newsitem.ListView.view.contentY+newsitem.height/2}
|
||||
}
|
||||
else if (conversation==true){
|
||||
if(parentId==""){setParent(conversationModel.get(0).newsitemobject);}
|
||||
|
@ -272,7 +283,7 @@ Rectangle{
|
|||
try{conversationView.contentY=conversationView.contentY+20*mm}catch(e){}
|
||||
} else if (textfocus==false){
|
||||
messageSend.state="active";
|
||||
newsView.positionViewAtBeginning();
|
||||
messageSend.ListView.view.positionViewAtBeginning();
|
||||
}
|
||||
else{
|
||||
messageSend.ListView.view.contentY=messageSend.ListView.view.contentY+8*mm
|
||||
|
@ -301,8 +312,8 @@ Rectangle{
|
|||
id:contactSelector
|
||||
visible: false
|
||||
z:3
|
||||
x:2*root.fontFactor*osSettings.bigFontSize//8*mm
|
||||
width: parent.width-2.2*root.fontFactor*osSettings.bigFontSize//9*mm
|
||||
x:2*root.fontFactor*osSettings.bigFontSize
|
||||
width: parent.width-2.2*root.fontFactor*osSettings.bigFontSize
|
||||
height: messageSend.height/2
|
||||
model:contactModel
|
||||
function processContactSelection(contact){
|
||||
|
@ -328,8 +339,8 @@ Rectangle{
|
|||
id: tagSelector
|
||||
visible: false
|
||||
z:3
|
||||
x:2*root.fontFactor*osSettings.bigFontSize//8*mm
|
||||
width: parent.width-2.2*root.fontFactor*osSettings.bigFontSize//9*mm
|
||||
x:2*root.fontFactor*osSettings.bigFontSize
|
||||
width: parent.width-2.2*root.fontFactor*osSettings.bigFontSize
|
||||
height: messageSend.height/2
|
||||
model:tagModel
|
||||
clip: true
|
||||
|
@ -343,52 +354,11 @@ Rectangle{
|
|||
}
|
||||
ListModel{id:tagModel}
|
||||
|
||||
Item{
|
||||
id:imageAttachment;
|
||||
property alias source:realimage.source
|
||||
//property alias angle:rotator.angle
|
||||
visible: source!=""
|
||||
width: 45*mm
|
||||
height: 45*mm;
|
||||
MouseArea{
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
attachImageURLs.splice(attachImageURLs.indexOf(source),1);
|
||||
imageAttachment.source=""
|
||||
}
|
||||
}
|
||||
Image{id:realimage
|
||||
source:"";
|
||||
x:2*mm;
|
||||
width: 45*mm;
|
||||
height: source==""?0:45*mm;
|
||||
fillMode: Image.PreserveAspectFit;
|
||||
transform: Rotation {id:rotator; origin.x: 22.5*mm; origin.y: 22.5*mm; angle: 0}
|
||||
|
||||
}
|
||||
Rectangle{
|
||||
width: 5*mm
|
||||
height: 5*mm
|
||||
visible: imageAttachment.source!=""
|
||||
anchors.bottom: imageAttachment.bottom
|
||||
anchors.right: imageAttachment.right
|
||||
color: "black"
|
||||
opacity: 0.5
|
||||
Text{anchors.centerIn:parent;text: "\uf01e";color: "white"}
|
||||
MouseArea{
|
||||
anchors.fill:parent;
|
||||
onClicked:{
|
||||
rotator.angle+=90;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row{
|
||||
id:buttonRow
|
||||
visible:false //(bodyField.length>1)||(attachImageURLs.length>0)
|
||||
visible:false
|
||||
spacing: mm
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize//12*mm
|
||||
height: 2.5*root.fontFactor*osSettings.bigFontSize
|
||||
x: 0.5*mm
|
||||
|
||||
// MButton{id:permButton //Permissions not working in Friendica 02/2022
|
||||
|
@ -398,25 +368,6 @@ Rectangle{
|
|||
// text: ((contact_allow.length==0)&&(contact_deny.length==0)&&(group_allow.length==0)&&(group_deny.length==0))?"\uf09c":"\uf023"
|
||||
// onClicked: { if (permissionDialog.visible==false){permissionDialog.visible=true} else{permissionDialog.visible=false}}
|
||||
// }
|
||||
MButton {
|
||||
id: attachButton
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
text: "\uf03e"
|
||||
visible:(newsSwipeview.stacktype!="DirectMessages")
|
||||
onClicked: {
|
||||
if (attachImageURLs.length>0){//Server currently accepts only one attachment
|
||||
Helperjs.showMessage( qsTr("Error"),qsTr("Only one attachment supported at the moment.\n Remove other attachment first!"), messageColumn)
|
||||
}
|
||||
else{
|
||||
root.imagePicking=false;
|
||||
var imagePicker = Qt.createQmlObject('import QtQuick 2.0; import "qrc:/qml/genericqml";'+
|
||||
osSettings.imagePickQml+'{multiple : false;onReady: {attachImageURLs.push(imageUrl);'+
|
||||
'attachImage(imageUrl)}}',root,"imagePicker");
|
||||
imagePicker.pickImage()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MButton{
|
||||
id:smileyButton
|
||||
|
@ -433,6 +384,19 @@ Rectangle{
|
|||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
onClicked: {if (tagSelector.visible==false){hashtagmenu()} else{tagSelector.visible=false}}
|
||||
}
|
||||
MButton{
|
||||
id:imagesButton
|
||||
visible:(newsSwipeview.stacktype!="DirectMessages")
|
||||
text: "\uf03e"
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
onClicked: {
|
||||
if (imageUploadDialog.visible==false){
|
||||
imageUploadDialog.visible=true;
|
||||
imageUploadDialog.attach()
|
||||
}
|
||||
else{imageUploadDialog.visible=false}}
|
||||
}
|
||||
|
||||
MButton {
|
||||
id: cancelButton
|
||||
|
@ -445,10 +409,11 @@ Rectangle{
|
|||
bodyField.text="";
|
||||
messageSend.state="";
|
||||
permissionDialog.visible=false;
|
||||
smileyDialog.visible=false;
|
||||
imageUploadDialog.visible=false;
|
||||
receiverLabel.visible=false;
|
||||
reply_to_user="";
|
||||
attachImage("");
|
||||
attachImageURLs.pop();
|
||||
media_ids=[]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -463,9 +428,9 @@ Rectangle{
|
|||
var dmbody=bodyField.getText(0,bodyField.length);
|
||||
if (conversation || newsSwipeview.stacktype!=="DirectMessages"){
|
||||
if (parentId!=""){
|
||||
statusUpdate(title,dmbody,parentId,attachImageURLs)
|
||||
statusUpdate(title,dmbody,parentId)
|
||||
}else{
|
||||
statusUpdate(title,body,parentId,attachImageURLs)}
|
||||
statusUpdate(title,body,parentId)}
|
||||
}else {
|
||||
if (reply_to_user!=""){dmUpdate(title,dmbody,parentId,reply_to_user)}
|
||||
else{Helperjs.showMessage(qsTr("Error"),qsTr("No receiver supplied!"),root)}
|
||||
|
@ -478,6 +443,7 @@ Rectangle{
|
|||
}
|
||||
PermissionDialog{id:permissionDialog;x:mm;visible: false}
|
||||
SmileyDialog{id:smileyDialog;x:mm;visible: false}
|
||||
MessageImageUploadDialog{id:imageUploadDialog;visible: false}
|
||||
}
|
||||
Component.onCompleted:{
|
||||
root.replySignal.connect(setParent);
|
||||
|
@ -497,7 +463,7 @@ Rectangle{
|
|||
target: buttonRow; visible:true
|
||||
}
|
||||
PropertyChanges {
|
||||
target: titleField; visible:(newsSwipeview.stacktype!="DirectMessages")//true
|
||||
target: titleField; visible:(newsSwipeview.stacktype!="DirectMessages")
|
||||
}
|
||||
PropertyChanges {
|
||||
target: receiverLabel; visible:(newsSwipeview.stacktype=="DirectMessages");
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import QtQuick 2.11
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12
|
||||
import QtQuick.Controls.Material 2.12
|
||||
import "qrc:/js/news.js" as Newsjs
|
||||
|
@ -51,9 +51,9 @@ Rectangle{
|
|||
id: newsBusy
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.top:parent.top
|
||||
anchors.topMargin: 2*mm
|
||||
width:10*mm
|
||||
height: 10*mm
|
||||
anchors.topMargin: mm
|
||||
width: 2*root.fontFactor*osSettings.bigFontSize
|
||||
height: 2*root.fontFactor*osSettings.bigFontSize
|
||||
z:2
|
||||
running: false
|
||||
}
|
||||
|
@ -67,7 +67,8 @@ Rectangle{
|
|||
try{ Newsjs.newsfromdb(root.db,root.login,0, function(dbnews,lastid){
|
||||
lastnewsid=lastid;
|
||||
showNews(dbnews)
|
||||
})}catch(e){Helperjs.showMessage("Error",e,root)};
|
||||
})}catch(e){//Helperjs.showMessage("Error",e,root)
|
||||
};
|
||||
break;
|
||||
case "conversation":
|
||||
newsStack.updateMethodNews="conversation";
|
||||
|
@ -219,13 +220,30 @@ Rectangle{
|
|||
Connections{
|
||||
target:xhr
|
||||
function onError(data,url,api,code){
|
||||
if (data !="contactlist"){Helperjs.showMessage(qsTr("Network Error"),"API:\n" +login.server+api+"\n Return: \n"+data,root);}
|
||||
//if (data !="contactlist"){Helperjs.showMessage(qsTr("Network Error"),"API:\n" +login.server+api+"\n Return: \n"+data,root);}
|
||||
newsBusy.running=false;
|
||||
}
|
||||
function onSuccess(data,api){
|
||||
// downloadNotice.text=downloadNotice.text+ "\n xhr finished "+Date.now();
|
||||
Service.processNews(api,data)
|
||||
replySignal("")
|
||||
const newsApiArray=["/api/statuses/friends_timeline",
|
||||
"/api/direct_messages/all",
|
||||
"/api/direct_messages/conversation",
|
||||
"/api/direct_messages/new",
|
||||
"/api/friendica/notification",
|
||||
"/api/statuses/user_timeline",
|
||||
"/api/conversation/show",
|
||||
"/api/search",
|
||||
"/api/statuses/public_timeline",
|
||||
"/api/favorites",
|
||||
"/api/statuses/replies",
|
||||
"/api/lists/statuses",
|
||||
"/api/statuses/update",
|
||||
"/api/direct_messages/new"
|
||||
];
|
||||
if(newsApiArray.includes(api)){
|
||||
Service.processNews(api,data)
|
||||
replySignal("")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -301,9 +319,7 @@ Rectangle{
|
|||
anchors.margins: 0.5*mm
|
||||
clip: true
|
||||
spacing: 0
|
||||
header:
|
||||
MessageSend{id:messagesend;onHeightChanged: newsView.positionViewAtBeginning()}
|
||||
|
||||
header:MessageSend{id:messagesend;onHeightChanged: {if(state=="active"){newsView.positionViewAtBeginning()}}}
|
||||
footer: footerComponent
|
||||
model: newsModel
|
||||
delegate: Newsitem{}
|
||||
|
@ -349,6 +365,7 @@ Rectangle{
|
|||
|
||||
if (newsSwipeview.stacktype=="Home"){
|
||||
Newsjs.getLastNews(root.login,root.db,function(currentlastnews){
|
||||
//print("currentlastnews "+currentlastnews+ " lastnewsid "+lastnewsid)
|
||||
if (currentlastnews>lastnewsid){
|
||||
if(currentnewstabstatus=="Timeline"){
|
||||
try{ Newsjs.newsfromdb(root.db,root.login,0, function(dbnews,lastid){
|
||||
|
@ -361,7 +378,7 @@ Rectangle{
|
|||
lastnewsid=lastid;
|
||||
showNews(news)});
|
||||
}
|
||||
} else {
|
||||
} else {
|
||||
Service.updateView(currentnewstabstatus)
|
||||
}
|
||||
});
|
||||
|
|
|
@ -273,7 +273,7 @@ Item {
|
|||
//Bottom row for buttons
|
||||
Row{id:controlrow
|
||||
anchors.top:friendicaActivities.bottom
|
||||
height: root.fontFactor*osSettings.bigFontSize
|
||||
height: 1.5*root.fontFactor*osSettings.bigFontSize
|
||||
CheckBox{
|
||||
id:likeCheckbox
|
||||
width:newsitem.width/5
|
||||
|
@ -281,12 +281,13 @@ Item {
|
|||
visible: ((newsitemobject.messagetype==0)||(newsitemobject.messagetype==3))? true:false
|
||||
checked:(model.newsitemobject.friendica_activities_view.self.liked==1)?true:false
|
||||
indicator: Rectangle{
|
||||
height: parent.height
|
||||
implicitWidth: newsitem.width/5
|
||||
implicitHeight:root.fontFactor*osSettings.bigFontSize
|
||||
color:"transparent"
|
||||
Text{
|
||||
anchors.centerIn: parent
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
font.family:fontAwesome.name
|
||||
color:likeCheckbox.checked?Material.primaryTextColor: Material.secondaryTextColor
|
||||
text:likeCheckbox.checked?"\uf118"+"!":"\uf118"
|
||||
|
@ -309,12 +310,13 @@ Item {
|
|||
visible: ((newsitemobject.messagetype==0)||(newsitemobject.messagetype==3))? true:false
|
||||
checked: (newsitemobject.friendica_activities_view.self.disliked==1)?true:false
|
||||
indicator: Rectangle{
|
||||
height: parent.height
|
||||
implicitWidth: newsitem.width/5
|
||||
implicitHeight:root.fontFactor*osSettings.bigFontSize
|
||||
color:"transparent"
|
||||
Text{
|
||||
anchors.centerIn: parent
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
font.family:fontAwesome.name
|
||||
color:dislikeCheckbox.checked?Material.primaryTextColor: Material.secondaryTextColor
|
||||
text: dislikeCheckbox.checked?"\uf119"+"!":"\uf119"
|
||||
|
@ -337,12 +339,13 @@ Item {
|
|||
width: newsitem.width/5
|
||||
height: parent.height
|
||||
indicator:Rectangle{
|
||||
height: parent.height
|
||||
implicitWidth: newsitem.width/5
|
||||
implicitHeight:root.fontFactor*osSettings.bigFontSize
|
||||
color:"transparent"
|
||||
Text{
|
||||
anchors.centerIn: parent
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
font.family:fontAwesome.name
|
||||
color: favoritedCheckbox.checked?Material.primaryTextColor: Material.secondaryTextColor
|
||||
text:"\uf005"
|
||||
|
@ -365,7 +368,7 @@ Item {
|
|||
id:replysymbol
|
||||
color: Material.secondaryTextColor
|
||||
anchors.centerIn: parent
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
font.family:fontAwesome.name
|
||||
text: "\uf112"
|
||||
}
|
||||
|
@ -398,7 +401,7 @@ Item {
|
|||
id:newsmenusymbol
|
||||
color: Material.secondaryTextColor
|
||||
anchors.centerIn: parent
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
font.pointSize: osSettings.bigFontSize
|
||||
font.family:fontAwesome.name
|
||||
text: "\uf142"
|
||||
}
|
||||
|
@ -429,6 +432,27 @@ Item {
|
|||
})
|
||||
}
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Block contact")
|
||||
onTriggered: {
|
||||
var component = Qt.createComponent("qrc:/qml/newsqml/BlockUser.qml");
|
||||
var userblockdialog = component.createObject(root,{"newsitem": newsitemobject});
|
||||
userblockdialog.open()
|
||||
// try{
|
||||
// var msg = {'deleteId': index, 'model': newsitem.ListView.view.model};
|
||||
// conversationWorker.sendMessage(msg);
|
||||
// }catch(e){print("block "+e)
|
||||
// }
|
||||
}
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Report contact")
|
||||
onTriggered: {
|
||||
var component = Qt.createComponent("qrc:/qml/newsqml/ReportUser.qml");
|
||||
var userreportdialog = component.createObject(root,{"newsitem": newsitemobject});
|
||||
userreportdialog.open()
|
||||
}
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Conversation")
|
||||
onTriggered: {
|
||||
|
@ -450,6 +474,15 @@ Item {
|
|||
Newsjs.favorite(login,false,newsitemobject.id,root);model.newsitemobject.favorited=0}
|
||||
}
|
||||
}
|
||||
Action{
|
||||
text:qsTr("Calendar Entry")
|
||||
onTriggered:{
|
||||
rootstack.currentIndex=3;
|
||||
bar.currentIndex=3;
|
||||
eventcreateSignal(newsitemobject);
|
||||
}
|
||||
}
|
||||
|
||||
Menu{
|
||||
title: qsTr("Attending")
|
||||
width: 10*root.fontFactor*osSettings.systemFontSize
|
||||
|
@ -481,7 +514,7 @@ Item {
|
|||
text: qsTr("Delete")
|
||||
onTriggered: {
|
||||
Newsjs.deleteNews(root.login,root.db,newsitemobject.id,newsitemobject.messagetype,root,function(reply){
|
||||
var msg = {'deleteId': index, 'model': newsModel};
|
||||
var msg = {'deleteId': index, 'model': newsitem.ListView.view.model};
|
||||
newsWorker.sendMessage(msg);
|
||||
})
|
||||
}
|
||||
|
|
77
source-linux/qml/newsqml/ReportUser.qml
Normal file
77
source-linux/qml/newsqml/ReportUser.qml
Normal file
|
@ -0,0 +1,77 @@
|
|||
// This file is part of Friendiqa
|
||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// In addition, as a special exception, the copyright holders give
|
||||
// permission to link the code of portions of this program with the
|
||||
// OpenSSL library under certain conditions as described in each
|
||||
// individual source file, and distribute linked combinations including
|
||||
// the two.
|
||||
//
|
||||
// You must obey the GNU General Public License in all respects for all
|
||||
// of the code used other than OpenSSL. If you modify file(s) with this
|
||||
// exception, you may extend this exception to your version of the
|
||||
// file(s), but you are not obligated to do so. If you do not wish to do
|
||||
// so, delete this exception statement from your version. If you delete
|
||||
// this exception statement from all source files in the program, then
|
||||
// also delete it here.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Controls.Material 2.12
|
||||
import "qrc:/js/helper.js" as Helperjs
|
||||
|
||||
Dialog {
|
||||
id: userReportkDialog
|
||||
anchors.centerIn: parent
|
||||
property var newsitem:({})
|
||||
title: qsTr("Report contact?")
|
||||
|
||||
standardButtons: Dialog.Ok | Dialog.Cancel
|
||||
modal: true
|
||||
onAccepted: {
|
||||
let statusArray=[];statusArray.push(newsitem.id.toString());
|
||||
xhr.setUrl(login.server);
|
||||
xhr.setLogin(login.username+":"+Qt.atob(login.password));
|
||||
xhr.setApi("/api/v1/reports");
|
||||
xhr.clearParams();
|
||||
xhr.setParam("account_id",newsitem.user.id);
|
||||
//xhr.setParam("status_ids",JSON.stringify(statusArray));
|
||||
xhr.setParam("comment",comment.text);
|
||||
xhr.setParam("category",categoryCombo.currentText);
|
||||
xhr.post();
|
||||
}
|
||||
onRejected: {close()}
|
||||
Column{
|
||||
height: nameLabel.height+comment.height+categoryCombo.height
|
||||
Label {id:nameLabel;text: newsitem.user.name}
|
||||
TextField {
|
||||
id: comment
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
selectByMouse: true
|
||||
placeholderText: qsTr("comment")
|
||||
}
|
||||
ComboBox{
|
||||
id: categoryCombo
|
||||
width: 6*root.fontFactor*osSettings.bigFontSize
|
||||
height: 1.5*root.fontFactor*osSettings.bigFontSize
|
||||
font.pointSize: osSettings.systemFontSize
|
||||
model: [qsTr("illegal"),qsTr("spam"), qsTr("violation")]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -79,9 +79,15 @@ Page{
|
|||
|
||||
|
||||
function attachImage(url){
|
||||
imageUploadModel.append({"imageUrl":url,"description":""})
|
||||
if (url.indexOf(",")>0){
|
||||
let urlArray=url.split(",");
|
||||
for (let file in urlArray){attachImage(urlArray[file])}
|
||||
} else{
|
||||
if(url!=""){
|
||||
imageUploadModel.append({"imageUrl":url,"description":"","imageUploaded":false,"imageRotation":0})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//border.color: "grey"
|
||||
y:1
|
||||
width:root.width-mm
|
||||
|
@ -277,23 +283,18 @@ Page{
|
|||
}
|
||||
Component{
|
||||
id: imageFooter
|
||||
Image{
|
||||
id: footerImage
|
||||
height: root.width/4
|
||||
width: root.width/4 //15*mm
|
||||
//15*mm
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source:"qrc:/images/addImage.png"
|
||||
MouseArea{
|
||||
anchors.fill: parent
|
||||
onClicked:{
|
||||
imagePicking=true;
|
||||
var imagePicker = Qt.createQmlObject('import QtQuick 2.0; import "qrc:/qml/genericqml";'+
|
||||
osSettings.imagePickQml+'{multiple : false;onReady: {attachImageURLs.push(imageUrl);'+
|
||||
'attachImage(imageUrl)}}',imageDialog,"imagePicker");
|
||||
imagePicker.pickImage()
|
||||
}
|
||||
}
|
||||
BlueButton{
|
||||
width: 5*root.fontFactor*osSettings.bigFontSize
|
||||
height:imageUploadView.height-3*root.fontFactor*osSettings.bigFontSize
|
||||
color: Material.backgroundColor
|
||||
text:"\u002b"
|
||||
fontSize: 3*osSettings.bigFontSize
|
||||
onClicked:{
|
||||
imagePicking=true;
|
||||
var imagePicker = Qt.createQmlObject('import QtQuick 2.0; import "qrc:/qml/genericqml";'+
|
||||
osSettings.imagePickQml+'{multiple : false;onReady: {'+
|
||||
'attachImage(imageUrl)}}',imageDialog,"imagePicker");
|
||||
imagePicker.pickImage()}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
|
@ -1,6 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="de">
|
||||
<context>
|
||||
<name>AcceptRules</name>
|
||||
<message>
|
||||
<source>Accept instance rules</source>
|
||||
<translation>Bitte Instanzregeln akzeptieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AccountPage</name>
|
||||
<message>
|
||||
|
@ -57,7 +64,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Wrong password!</source>
|
||||
<translation>Falsches Passwort!</translation>
|
||||
<translation type="vanished">Falsches Passwort!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Success</source>
|
||||
|
@ -75,6 +82,21 @@
|
|||
<source>Conversations</source>
|
||||
<translation type="vanished">Unterhaltungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Instance rules</source>
|
||||
<translation>Server-Verhaltensregeln</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wrong password or 2FA enabled!</source>
|
||||
<translation>Falsches Passwort bzw. 2FA eingeschaltet!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BlockUser</name>
|
||||
<message>
|
||||
<source>Block contact?</source>
|
||||
<translation>Kontakt blockieren?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CalendarTab</name>
|
||||
|
@ -451,6 +473,14 @@
|
|||
<source>Following</source>
|
||||
<translation>Folgt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Block</source>
|
||||
<translation>Blockieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unblock</source>
|
||||
<translation>Entblocken</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ContactsSearchPage</name>
|
||||
|
@ -661,6 +691,10 @@
|
|||
<source>Location</source>
|
||||
<translation type="vanished">Ort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete Event?</source>
|
||||
<translation>Termin löschen?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EventListItem</name>
|
||||
|
@ -683,6 +717,10 @@
|
|||
<source>All</source>
|
||||
<translation>Alle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Blocked</source>
|
||||
<translation>Geblockte</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FriendsTab</name>
|
||||
|
@ -764,6 +802,17 @@
|
|||
<translation>Schliessen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageImageUploadDialog</name>
|
||||
<message>
|
||||
<source>Description</source>
|
||||
<translation>Beschreibung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Upload</source>
|
||||
<translation>Hochladen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageSend</name>
|
||||
<message>
|
||||
|
@ -789,7 +838,7 @@
|
|||
<message>
|
||||
<source>Only one attachment supported at the moment.
|
||||
Remove other attachment first!</source>
|
||||
<translation>Nur ein Anhang derzeit unterstützt.
|
||||
<translation type="vanished">Nur ein Anhang derzeit unterstützt.
|
||||
Lösche zuerst den anderen Anhang!</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -808,7 +857,7 @@
|
|||
<name>NewsStack</name>
|
||||
<message>
|
||||
<source>Network Error</source>
|
||||
<translation>Netzwerk-Fehler</translation>
|
||||
<translation type="vanished">Netzwerk-Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>More</source>
|
||||
|
@ -1032,6 +1081,18 @@
|
|||
<source>External</source>
|
||||
<translation>Webseite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Block contact</source>
|
||||
<translation>Kontakt blockieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Report contact</source>
|
||||
<translation>Kontakt melden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Calendar Entry</source>
|
||||
<translation>Kalendereintrag</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PermissionDialog</name>
|
||||
|
@ -1250,6 +1311,29 @@
|
|||
<translation>Sonstige</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReportUser</name>
|
||||
<message>
|
||||
<source>Report contact?</source>
|
||||
<translation>Kontakt melden?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>comment</source>
|
||||
<translation>Kommentar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>illegal</source>
|
||||
<translation>illegal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>spam</source>
|
||||
<translation>Spam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>violation</source>
|
||||
<translation>Regelverletzung</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SmileyDialog</name>
|
||||
<message>
|
||||
|
|
Binary file not shown.
|
@ -1,12 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="es">
|
||||
<context>
|
||||
<name>AcceptRules</name>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AcceptRules.qml" line="41"/>
|
||||
<source>Accept instance rules</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AccountPage</name>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="64"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="362"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="383"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="206"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="228"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="245"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="306"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="385"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="406"/>
|
||||
<source>User</source>
|
||||
<translation>Usuario</translation>
|
||||
</message>
|
||||
|
@ -15,17 +27,17 @@
|
|||
<translation type="vanished">Servidor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="206"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="229"/>
|
||||
<source>Nickname</source>
|
||||
<translation>Usuario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="224"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="248"/>
|
||||
<source>Password</source>
|
||||
<translation>Contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="231"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="255"/>
|
||||
<source>Image dir.</source>
|
||||
<translation>Dir. de imágenes</translation>
|
||||
</message>
|
||||
|
@ -34,56 +46,65 @@
|
|||
<translation type="vanished">Noticias como</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="210"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="297"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="328"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="331"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="208"/>
|
||||
<source>Instance rules</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="233"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="322"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="351"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="354"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="210"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="233"/>
|
||||
<source>Nicknames containing @ symbol currently not supported</source>
|
||||
<translation>No se admiten los apodos que contienen el símbolo @ actualmente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="280"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="304"/>
|
||||
<source>Confirm</source>
|
||||
<translation>Confirmar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="286"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="311"/>
|
||||
<source>No server given! </source>
|
||||
<translation>¡Servidor no encontrado!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="287"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="312"/>
|
||||
<source>No nickname given! </source>
|
||||
<translation>¡Usuario incorrecto!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="288"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="313"/>
|
||||
<source>No password given! </source>
|
||||
<translation>¡Contraseña incorrecta!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="289"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="314"/>
|
||||
<source>No image directory given!</source>
|
||||
<translation>¡No se ha encontrado el directorio de imágenes!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="297"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="328"/>
|
||||
<source>Wrong password!</source>
|
||||
<translation>¡Contraseña incorrecta!</translation>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="322"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="351"/>
|
||||
<source>Wrong password or 2FA enabled!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="325"/>
|
||||
<source>Wrong password!</source>
|
||||
<translation type="vanished">¡Contraseña incorrecta!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="348"/>
|
||||
<source>Success</source>
|
||||
<translation>éxito!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="325"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="348"/>
|
||||
<source>Name</source>
|
||||
<translation>Nombre</translation>
|
||||
</message>
|
||||
|
@ -96,20 +117,28 @@
|
|||
<translation type="vanished">Conversaciones</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BlockUser</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/BlockUser.qml" line="41"/>
|
||||
<source>Block contact?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CalendarTab</name>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="150"/>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="154"/>
|
||||
<source>Delete Event?</source>
|
||||
<translation>¿Borrar la cita?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="198"/>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="201"/>
|
||||
<source>Events</source>
|
||||
<translation>Eventos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="203"/>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="206"/>
|
||||
<source>Own Calendar</source>
|
||||
<translation>Calendario propio</translation>
|
||||
</message>
|
||||
|
@ -444,67 +473,77 @@
|
|||
<translation type="vanished">Conectar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="218"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="219"/>
|
||||
<source>Approve</source>
|
||||
<translation>Aprobar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="232"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="234"/>
|
||||
<source>Reject</source>
|
||||
<translation>Rechazar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="246"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="249"/>
|
||||
<source>Ignore</source>
|
||||
<translation>Ignorar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="260"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="264"/>
|
||||
<source>Follow</source>
|
||||
<translation>Seguir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="276"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="281"/>
|
||||
<source>Unfollow</source>
|
||||
<translation>Dejar de seguir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="315"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="298"/>
|
||||
<source>Block</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="313"/>
|
||||
<source>Unblock</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="350"/>
|
||||
<source>Description</source>
|
||||
<translation>Descripción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="315"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="350"/>
|
||||
<source>Location</source>
|
||||
<translation>Localización</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="315"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="350"/>
|
||||
<source>Posts</source>
|
||||
<translation>Mensajes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="316"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="351"/>
|
||||
<source>URL</source>
|
||||
<translation>URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="317"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="352"/>
|
||||
<source>Created at</source>
|
||||
<translation>Creado en</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="318"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="353"/>
|
||||
<source>Followers</source>
|
||||
<translation>Seguidores</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="319"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="354"/>
|
||||
<source>Following</source>
|
||||
<translation>Siguiente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="329"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="364"/>
|
||||
<source>Network Error</source>
|
||||
<translation>Fallo de red</translation>
|
||||
</message>
|
||||
|
@ -708,53 +747,53 @@
|
|||
<context>
|
||||
<name>EventCreate</name>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="73"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="78"/>
|
||||
<source>Start</source>
|
||||
<translation>Iniciar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="140"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="143"/>
|
||||
<source>End</source>
|
||||
<translation>Finalizar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="204"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="267"/>
|
||||
<source>no end</source>
|
||||
<translation>sin fin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="289"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="292"/>
|
||||
<source>Title (required)</source>
|
||||
<translation>título (obligatorio)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="304"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="307"/>
|
||||
<source>Event description (optional)</source>
|
||||
<translation>Descripción del evento (opcional)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="314"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="318"/>
|
||||
<source>Location (optional)</source>
|
||||
<translation>Ubicación (opcional)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="322"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="327"/>
|
||||
<source>Publish event?</source>
|
||||
<translation>¿Publicar el fecha?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="341"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="342"/>
|
||||
<source>Create event</source>
|
||||
<translation>crear fecha</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="349"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="392"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="348"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="385"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="349"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="348"/>
|
||||
<source>No event name supplied</source>
|
||||
<translation>No se ha nombre de la fecha</translation>
|
||||
</message>
|
||||
|
@ -765,6 +804,11 @@
|
|||
<source>Location</source>
|
||||
<translation type="vanished">Localización</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventList.qml" line="73"/>
|
||||
<source>Delete Event?</source>
|
||||
<translation type="unfinished">¿Borrar la cita?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EventListItem</name>
|
||||
|
@ -777,21 +821,26 @@
|
|||
<context>
|
||||
<name>FriendsListTab</name>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="61"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="62"/>
|
||||
<source>Friend Requests</source>
|
||||
<translation>Solicitudes de contacto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="71"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="162"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="72"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="176"/>
|
||||
<source>Friends</source>
|
||||
<translation>Amigos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="162"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="176"/>
|
||||
<source>All</source>
|
||||
<translation>Todos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="176"/>
|
||||
<source>Blocked</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FriendsTab</name>
|
||||
|
@ -818,7 +867,7 @@
|
|||
<context>
|
||||
<name>ImageUploadDialog</name>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="127"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="133"/>
|
||||
<source>Upload to album</source>
|
||||
<translation>Subir álbum</translation>
|
||||
</message>
|
||||
|
@ -831,27 +880,27 @@
|
|||
<translation type="vanished">imagen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="271"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="277"/>
|
||||
<source>Description</source>
|
||||
<translation>Descripción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="308"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="309"/>
|
||||
<source>Upload</source>
|
||||
<translation>Subir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="308"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="309"/>
|
||||
<source>Change</source>
|
||||
<translation>Cambiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="311"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="312"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="311"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="312"/>
|
||||
<source> No album name given</source>
|
||||
<translation>¡Nombre del álbum no encontrado!</translation>
|
||||
</message>
|
||||
|
@ -874,43 +923,54 @@
|
|||
<translation>Salida</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageImageUploadDialog</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageImageUploadDialog.qml" line="258"/>
|
||||
<source>Description</source>
|
||||
<translation type="unfinished">Descripción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageImageUploadDialog.qml" line="284"/>
|
||||
<source>Upload</source>
|
||||
<translation type="unfinished">Subir</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageSend</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="211"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="219"/>
|
||||
<source>to:</source>
|
||||
<translation>a:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="223"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="231"/>
|
||||
<source>Title (optional)</source>
|
||||
<translation>Título (opcional)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="241"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="249"/>
|
||||
<source> Drop your Content here.</source>
|
||||
<translation> Deje caer su contenido aquí.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="247"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="255"/>
|
||||
<source>What's on your mind?</source>
|
||||
<translation>¿Qué tienes en mente?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="408"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="470"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="431"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="408"/>
|
||||
<source>Only one attachment supported at the moment.
|
||||
Remove other attachment first!</source>
|
||||
<translation>Solo se admite adjuntar un solo archivo en este momento.
|
||||
<translation type="vanished">Solo se admite adjuntar un solo archivo en este momento.
|
||||
¡Elimine y deje un archivo adjunto!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="470"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="431"/>
|
||||
<source>No receiver supplied!</source>
|
||||
<translation>No se ha suministrado ningún receptor!</translation>
|
||||
</message>
|
||||
|
@ -926,12 +986,11 @@
|
|||
<context>
|
||||
<name>NewsStack</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/NewsStack.qml" line="222"/>
|
||||
<source>Network Error</source>
|
||||
<translation>Fallo de red</translation>
|
||||
<translation type="vanished">Fallo de red</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/NewsStack.qml" line="268"/>
|
||||
<location filename="../qml/newsqml/NewsStack.qml" line="286"/>
|
||||
<source>More</source>
|
||||
<translation>Mas</translation>
|
||||
</message>
|
||||
|
@ -1132,57 +1191,72 @@
|
|||
<translation type="vanished">Respuesta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="439"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="463"/>
|
||||
<source>DM</source>
|
||||
<translation>Mensaje directo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="425"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="428"/>
|
||||
<source>Repost</source>
|
||||
<translation>Volver a publicar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="428"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="431"/>
|
||||
<source>Success!</source>
|
||||
<translation>éxito!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="433"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="436"/>
|
||||
<source>Block contact</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="449"/>
|
||||
<source>Report contact</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="457"/>
|
||||
<source>Conversation</source>
|
||||
<translation>Conversación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="445"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="469"/>
|
||||
<source>Bookmark</source>
|
||||
<translation>marca</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="454"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="478"/>
|
||||
<source>Calendar Entry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="487"/>
|
||||
<source>Attending</source>
|
||||
<translation>Asistiendo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="464"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="497"/>
|
||||
<source>yes</source>
|
||||
<translation>si</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="469"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="502"/>
|
||||
<source>maybe</source>
|
||||
<translation>quizás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="474"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="507"/>
|
||||
<source>no</source>
|
||||
<translation>no</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="481"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="514"/>
|
||||
<source>Delete</source>
|
||||
<translation>Borrar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="497"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="530"/>
|
||||
<source>External</source>
|
||||
<translation>sitio web</translation>
|
||||
</message>
|
||||
|
@ -1203,28 +1277,28 @@
|
|||
<context>
|
||||
<name>PhotoTab</name>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="133"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="132"/>
|
||||
<source>'s images</source>
|
||||
<translation>s Imágenes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="220"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="219"/>
|
||||
<source>All Images</source>
|
||||
<translation>Todas las imagenes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="226"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="225"/>
|
||||
<source>Only new</source>
|
||||
<translation>Solo nueva</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="242"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="247"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="241"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="246"/>
|
||||
<source>Own Images</source>
|
||||
<translation>Mis imágenes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="289"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="288"/>
|
||||
<source>More</source>
|
||||
<translation>Mas</translation>
|
||||
</message>
|
||||
|
@ -1457,6 +1531,34 @@
|
|||
<translation>Creado en</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReportUser</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="41"/>
|
||||
<source>Report contact?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="65"/>
|
||||
<source>comment</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="72"/>
|
||||
<source>illegal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="72"/>
|
||||
<source>spam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="72"/>
|
||||
<source>violation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SmileyDialog</name>
|
||||
<message>
|
||||
|
@ -1553,14 +1655,14 @@
|
|||
<translation type="vanished">Salida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/friendiqa.qml" line="176"/>
|
||||
<location filename="../qml/friendiqa.qml" line="177"/>
|
||||
<source>Background Sync
|
||||
Rightclick or Middleclick to Quit</source>
|
||||
<translation>Sincronización de fondo
|
||||
Haga clic con el botón derecho del ratón o con el botón central para salir.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/friendiqa.qml" line="290"/>
|
||||
<location filename="../qml/friendiqa.qml" line="294"/>
|
||||
<source>Click to open Friendiqa</source>
|
||||
<translation>Haga clic para abrir Friendiqa</translation>
|
||||
</message>
|
||||
|
|
Binary file not shown.
|
@ -1,12 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="hu">
|
||||
<context>
|
||||
<name>AcceptRules</name>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AcceptRules.qml" line="41"/>
|
||||
<source>Accept instance rules</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AccountPage</name>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="64"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="362"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="383"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="206"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="228"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="245"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="306"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="385"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="406"/>
|
||||
<source>User</source>
|
||||
<translation>Felhasználó</translation>
|
||||
</message>
|
||||
|
@ -15,17 +27,17 @@
|
|||
<translation type="vanished">Kiszolgáló</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="206"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="229"/>
|
||||
<source>Nickname</source>
|
||||
<translation>Becenév</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="224"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="248"/>
|
||||
<source>Password</source>
|
||||
<translation>Jelszó</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="231"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="255"/>
|
||||
<source>Image dir.</source>
|
||||
<translation>Képkönyvtár</translation>
|
||||
</message>
|
||||
|
@ -34,56 +46,65 @@
|
|||
<translation type="vanished">Hírek mint</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="210"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="297"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="328"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="331"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="208"/>
|
||||
<source>Instance rules</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="233"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="322"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="351"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="354"/>
|
||||
<source>Error</source>
|
||||
<translation>Hiba</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="210"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="233"/>
|
||||
<source>Nicknames containing @ symbol currently not supported</source>
|
||||
<translation>A @ szimbólumot tartalmazó becenevek jelenleg nem támogatottak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="280"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="304"/>
|
||||
<source>Confirm</source>
|
||||
<translation>Megerősítés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="286"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="311"/>
|
||||
<source>No server given! </source>
|
||||
<translation>Nincs kiszolgáló megadva! </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="287"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="312"/>
|
||||
<source>No nickname given! </source>
|
||||
<translation>Nincs becenév megadva! </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="288"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="313"/>
|
||||
<source>No password given! </source>
|
||||
<translation>Nincs jelszó megadva! </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="289"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="314"/>
|
||||
<source>No image directory given!</source>
|
||||
<translation>Nincs képkönyvtár megadva!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="297"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="328"/>
|
||||
<source>Wrong password!</source>
|
||||
<translation>Hibás jelszó!</translation>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="322"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="351"/>
|
||||
<source>Wrong password or 2FA enabled!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="325"/>
|
||||
<source>Wrong password!</source>
|
||||
<translation type="vanished">Hibás jelszó!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="348"/>
|
||||
<source>Success</source>
|
||||
<translation>Sikeres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="325"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="348"/>
|
||||
<source>Name</source>
|
||||
<translation>Név</translation>
|
||||
</message>
|
||||
|
@ -96,20 +117,28 @@
|
|||
<translation type="vanished">Beszélgetések</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BlockUser</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/BlockUser.qml" line="41"/>
|
||||
<source>Block contact?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CalendarTab</name>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="150"/>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="154"/>
|
||||
<source>Delete Event?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="198"/>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="201"/>
|
||||
<source>Events</source>
|
||||
<translation>Események</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="203"/>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="206"/>
|
||||
<source>Own Calendar</source>
|
||||
<translation>Saját naptár</translation>
|
||||
</message>
|
||||
|
@ -460,67 +489,77 @@
|
|||
<translation type="vanished">Kapcsolódás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="218"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="219"/>
|
||||
<source>Approve</source>
|
||||
<translation>Jóváhagyás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="232"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="234"/>
|
||||
<source>Reject</source>
|
||||
<translation>Visszautasítás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="246"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="249"/>
|
||||
<source>Ignore</source>
|
||||
<translation>Mellőzés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="260"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="264"/>
|
||||
<source>Follow</source>
|
||||
<translation>Követés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="276"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="281"/>
|
||||
<source>Unfollow</source>
|
||||
<translation>Követés megszüntetése</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="315"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="298"/>
|
||||
<source>Block</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="313"/>
|
||||
<source>Unblock</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="350"/>
|
||||
<source>Description</source>
|
||||
<translation>Leírás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="315"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="350"/>
|
||||
<source>Location</source>
|
||||
<translation>Hely</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="315"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="350"/>
|
||||
<source>Posts</source>
|
||||
<translation>Bejegyzések</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="316"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="351"/>
|
||||
<source>URL</source>
|
||||
<translation>URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="317"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="352"/>
|
||||
<source>Created at</source>
|
||||
<translation>Létrehozva</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="318"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="353"/>
|
||||
<source>Followers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="319"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="354"/>
|
||||
<source>Following</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="329"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="364"/>
|
||||
<source>Network Error</source>
|
||||
<translation>Hálózati hiba</translation>
|
||||
</message>
|
||||
|
@ -724,53 +763,53 @@
|
|||
<context>
|
||||
<name>EventCreate</name>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="73"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="78"/>
|
||||
<source>Start</source>
|
||||
<translation type="unfinished">Indítás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="140"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="143"/>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="204"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="267"/>
|
||||
<source>no end</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="289"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="292"/>
|
||||
<source>Title (required)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="304"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="307"/>
|
||||
<source>Event description (optional)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="314"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="318"/>
|
||||
<source>Location (optional)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="322"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="327"/>
|
||||
<source>Publish event?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="341"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="342"/>
|
||||
<source>Create event</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="349"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="392"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="348"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="385"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished">Hiba</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="349"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="348"/>
|
||||
<source>No event name supplied</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -781,6 +820,11 @@
|
|||
<source>Location</source>
|
||||
<translation type="vanished">Hely</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventList.qml" line="73"/>
|
||||
<source>Delete Event?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EventListItem</name>
|
||||
|
@ -793,21 +837,26 @@
|
|||
<context>
|
||||
<name>FriendsListTab</name>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="61"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="62"/>
|
||||
<source>Friend Requests</source>
|
||||
<translation>Barátkérések</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="71"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="162"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="72"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="176"/>
|
||||
<source>Friends</source>
|
||||
<translation>Ismerősök</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="162"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="176"/>
|
||||
<source>All</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="176"/>
|
||||
<source>Blocked</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FriendsTab</name>
|
||||
|
@ -845,7 +894,7 @@
|
|||
<context>
|
||||
<name>ImageUploadDialog</name>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="127"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="133"/>
|
||||
<source>Upload to album</source>
|
||||
<translation>Feltöltés albumba</translation>
|
||||
</message>
|
||||
|
@ -858,27 +907,27 @@
|
|||
<translation type="vanished">Kép</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="271"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="277"/>
|
||||
<source>Description</source>
|
||||
<translation>Leírás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="308"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="309"/>
|
||||
<source>Upload</source>
|
||||
<translation>Feltöltés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="308"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="309"/>
|
||||
<source>Change</source>
|
||||
<translation>Változtatás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="311"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="312"/>
|
||||
<source>Error</source>
|
||||
<translation>Hiba</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="311"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="312"/>
|
||||
<source> No album name given</source>
|
||||
<translation> Nincs albumnév megadva</translation>
|
||||
</message>
|
||||
|
@ -901,43 +950,54 @@
|
|||
<translation>Kilépés</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageImageUploadDialog</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageImageUploadDialog.qml" line="258"/>
|
||||
<source>Description</source>
|
||||
<translation type="unfinished">Leírás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageImageUploadDialog.qml" line="284"/>
|
||||
<source>Upload</source>
|
||||
<translation type="unfinished">Feltöltés</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageSend</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="211"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="219"/>
|
||||
<source>to:</source>
|
||||
<translation>címzett:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="223"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="231"/>
|
||||
<source>Title (optional)</source>
|
||||
<translation>Cím (elhagyható)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="241"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="249"/>
|
||||
<source> Drop your Content here.</source>
|
||||
<translation> Ejtse ide a tartalmat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="247"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="255"/>
|
||||
<source>What's on your mind?</source>
|
||||
<translation>Mire gondol?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="408"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="470"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="431"/>
|
||||
<source>Error</source>
|
||||
<translation>Hiba</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="408"/>
|
||||
<source>Only one attachment supported at the moment.
|
||||
Remove other attachment first!</source>
|
||||
<translation>Csak egyetlen melléklet támogatott jelenleg.
|
||||
<translation type="vanished">Csak egyetlen melléklet támogatott jelenleg.
|
||||
Először távolítsa el a másik mellékletet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="470"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="431"/>
|
||||
<source>No receiver supplied!</source>
|
||||
<translation>Nincs fogadó megadva!</translation>
|
||||
</message>
|
||||
|
@ -953,12 +1013,11 @@
|
|||
<context>
|
||||
<name>NewsStack</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/NewsStack.qml" line="222"/>
|
||||
<source>Network Error</source>
|
||||
<translation>Hálózati hiba</translation>
|
||||
<translation type="vanished">Hálózati hiba</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/NewsStack.qml" line="268"/>
|
||||
<location filename="../qml/newsqml/NewsStack.qml" line="286"/>
|
||||
<source>More</source>
|
||||
<translation>Több</translation>
|
||||
</message>
|
||||
|
@ -1163,57 +1222,72 @@
|
|||
<translation type="vanished">Válasz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="439"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="463"/>
|
||||
<source>DM</source>
|
||||
<translation>DM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="425"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="428"/>
|
||||
<source>Repost</source>
|
||||
<translation>Újraküldés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="428"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="431"/>
|
||||
<source>Success!</source>
|
||||
<translation>Sikeres!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="433"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="436"/>
|
||||
<source>Block contact</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="449"/>
|
||||
<source>Report contact</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="457"/>
|
||||
<source>Conversation</source>
|
||||
<translation>Beszélgetés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="445"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="469"/>
|
||||
<source>Bookmark</source>
|
||||
<translation>könyvjelző</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="454"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="478"/>
|
||||
<source>Calendar Entry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="487"/>
|
||||
<source>Attending</source>
|
||||
<translation>Részvétel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="464"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="497"/>
|
||||
<source>yes</source>
|
||||
<translation>igen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="469"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="502"/>
|
||||
<source>maybe</source>
|
||||
<translation>talán</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="474"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="507"/>
|
||||
<source>no</source>
|
||||
<translation>nem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="481"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="514"/>
|
||||
<source>Delete</source>
|
||||
<translation>Törlés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="497"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="530"/>
|
||||
<source>External</source>
|
||||
<translation>weboldal</translation>
|
||||
</message>
|
||||
|
@ -1234,28 +1308,28 @@
|
|||
<context>
|
||||
<name>PhotoTab</name>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="133"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="132"/>
|
||||
<source>'s images</source>
|
||||
<translation> képei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="220"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="219"/>
|
||||
<source>All Images</source>
|
||||
<translation>Összes kép</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="226"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="225"/>
|
||||
<source>Only new</source>
|
||||
<translation>Csak újak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="242"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="247"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="241"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="246"/>
|
||||
<source>Own Images</source>
|
||||
<translation>Saját képek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="289"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="288"/>
|
||||
<source>More</source>
|
||||
<translation>Több</translation>
|
||||
</message>
|
||||
|
@ -1488,6 +1562,34 @@
|
|||
<translation>Létrehozva</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReportUser</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="41"/>
|
||||
<source>Report contact?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="65"/>
|
||||
<source>comment</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="72"/>
|
||||
<source>illegal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="72"/>
|
||||
<source>spam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="72"/>
|
||||
<source>violation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SmileyDialog</name>
|
||||
<message>
|
||||
|
@ -1584,14 +1686,14 @@
|
|||
<translation type="vanished">Kilépés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/friendiqa.qml" line="176"/>
|
||||
<location filename="../qml/friendiqa.qml" line="177"/>
|
||||
<source>Background Sync
|
||||
Rightclick or Middleclick to Quit</source>
|
||||
<translation>Háttérszinkronizálás
|
||||
Kilépéshez kattintson a jobb gombbal vagy középső gombbal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/friendiqa.qml" line="290"/>
|
||||
<location filename="../qml/friendiqa.qml" line="294"/>
|
||||
<source>Click to open Friendiqa</source>
|
||||
<translation>Kattintson a Friendiqa megnyitásához</translation>
|
||||
</message>
|
||||
|
|
Binary file not shown.
|
@ -1,12 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="it">
|
||||
<context>
|
||||
<name>AcceptRules</name>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AcceptRules.qml" line="41"/>
|
||||
<source>Accept instance rules</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AccountPage</name>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="64"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="362"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="383"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="206"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="228"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="245"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="306"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="385"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="406"/>
|
||||
<source>User</source>
|
||||
<translation>Utente</translation>
|
||||
</message>
|
||||
|
@ -15,17 +27,17 @@
|
|||
<translation type="vanished">Server</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="206"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="229"/>
|
||||
<source>Nickname</source>
|
||||
<translation>Utente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="224"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="248"/>
|
||||
<source>Password</source>
|
||||
<translation>Password</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="231"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="255"/>
|
||||
<source>Image dir.</source>
|
||||
<translation>Directory immagini</translation>
|
||||
</message>
|
||||
|
@ -34,56 +46,65 @@
|
|||
<translation type="vanished">News come</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="210"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="297"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="328"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="331"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="208"/>
|
||||
<source>Instance rules</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="233"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="322"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="351"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="354"/>
|
||||
<source>Error</source>
|
||||
<translation>Errore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="210"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="233"/>
|
||||
<source>Nicknames containing @ symbol currently not supported</source>
|
||||
<translation>I soprannomi contenenti il simbolo @ attualmente non sono supportati</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="280"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="304"/>
|
||||
<source>Confirm</source>
|
||||
<translation>Conferma</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="286"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="311"/>
|
||||
<source>No server given! </source>
|
||||
<translation>Nessun server inserito!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="287"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="312"/>
|
||||
<source>No nickname given! </source>
|
||||
<translation>Nessun utente inserito!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="288"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="313"/>
|
||||
<source>No password given! </source>
|
||||
<translation>Nessuna password inserita!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="289"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="314"/>
|
||||
<source>No image directory given!</source>
|
||||
<translation>Nessuna directory immagini inserita!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="297"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="328"/>
|
||||
<source>Wrong password!</source>
|
||||
<translation>Password sbagliata!</translation>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="322"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="351"/>
|
||||
<source>Wrong password or 2FA enabled!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="325"/>
|
||||
<source>Wrong password!</source>
|
||||
<translation type="vanished">Password sbagliata!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="348"/>
|
||||
<source>Success</source>
|
||||
<translation>Ha funzionato!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="325"/>
|
||||
<location filename="../qml/configqml/AccountPage.qml" line="348"/>
|
||||
<source>Name</source>
|
||||
<translation>Nome</translation>
|
||||
</message>
|
||||
|
@ -96,20 +117,28 @@
|
|||
<translation type="vanished">Conversazioni</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BlockUser</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/BlockUser.qml" line="41"/>
|
||||
<source>Block contact?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CalendarTab</name>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="150"/>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="154"/>
|
||||
<source>Delete Event?</source>
|
||||
<translation>Cancellare la data?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="198"/>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="201"/>
|
||||
<source>Events</source>
|
||||
<translation>Eventi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="203"/>
|
||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="206"/>
|
||||
<source>Own Calendar</source>
|
||||
<translation>Calendario</translation>
|
||||
</message>
|
||||
|
@ -432,67 +461,77 @@
|
|||
<translation type="vanished">Connetti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="218"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="219"/>
|
||||
<source>Approve</source>
|
||||
<translation>Approvare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="232"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="234"/>
|
||||
<source>Reject</source>
|
||||
<translation>Rifiutare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="246"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="249"/>
|
||||
<source>Ignore</source>
|
||||
<translation>Ignorare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="260"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="264"/>
|
||||
<source>Follow</source>
|
||||
<translation>Seguire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="276"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="281"/>
|
||||
<source>Unfollow</source>
|
||||
<translation>Non seguire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="315"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="298"/>
|
||||
<source>Block</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="313"/>
|
||||
<source>Unblock</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="350"/>
|
||||
<source>Description</source>
|
||||
<translation>Descrizione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="315"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="350"/>
|
||||
<source>Location</source>
|
||||
<translation>Località</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="315"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="350"/>
|
||||
<source>Posts</source>
|
||||
<translation>Messaggi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="316"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="351"/>
|
||||
<source>URL</source>
|
||||
<translation>URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="317"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="352"/>
|
||||
<source>Created at</source>
|
||||
<translation>Creato il</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="318"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="353"/>
|
||||
<source>Followers</source>
|
||||
<translation>Seguaci</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="319"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="354"/>
|
||||
<source>Following</source>
|
||||
<translation>Seguente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="329"/>
|
||||
<location filename="../qml/newsqml/ContactPage.qml" line="364"/>
|
||||
<source>Network Error</source>
|
||||
<translation>Errore di rete</translation>
|
||||
</message>
|
||||
|
@ -696,53 +735,53 @@
|
|||
<context>
|
||||
<name>EventCreate</name>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="73"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="78"/>
|
||||
<source>Start</source>
|
||||
<translation>Avviare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="140"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="143"/>
|
||||
<source>End</source>
|
||||
<translation>Fine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="204"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="267"/>
|
||||
<source>no end</source>
|
||||
<translation>senza fine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="289"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="292"/>
|
||||
<source>Title (required)</source>
|
||||
<translation>Titolo (obbligatorio)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="304"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="307"/>
|
||||
<source>Event description (optional)</source>
|
||||
<translation>descrizione della data (opzionale)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="314"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="318"/>
|
||||
<source>Location (optional)</source>
|
||||
<translation>Posizione (opzionale)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="322"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="327"/>
|
||||
<source>Publish event?</source>
|
||||
<translation>Pubblicare l'evento?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="341"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="342"/>
|
||||
<source>Create event</source>
|
||||
<translation>Creare l'evento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="349"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="392"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="348"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="385"/>
|
||||
<source>Error</source>
|
||||
<translation>Errore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="349"/>
|
||||
<location filename="../qml/calendarqml/EventCreate.qml" line="348"/>
|
||||
<source>No event name supplied</source>
|
||||
<translation>Nessun nome di evento</translation>
|
||||
</message>
|
||||
|
@ -753,6 +792,11 @@
|
|||
<source>Location</source>
|
||||
<translation type="vanished">Località</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/calendarqml/EventList.qml" line="73"/>
|
||||
<source>Delete Event?</source>
|
||||
<translation type="unfinished">Cancellare la data?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EventListItem</name>
|
||||
|
@ -765,21 +809,26 @@
|
|||
<context>
|
||||
<name>FriendsListTab</name>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="61"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="62"/>
|
||||
<source>Friend Requests</source>
|
||||
<translation>Richieste di contatto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="71"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="162"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="72"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="176"/>
|
||||
<source>Friends</source>
|
||||
<translation>Amici</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="162"/>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="176"/>
|
||||
<source>All</source>
|
||||
<translation>Tutti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/contactqml/FriendsListTab.qml" line="176"/>
|
||||
<source>Blocked</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FriendsTab</name>
|
||||
|
@ -806,7 +855,7 @@
|
|||
<context>
|
||||
<name>ImageUploadDialog</name>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="127"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="133"/>
|
||||
<source>Upload to album</source>
|
||||
<translation>Carica su album</translation>
|
||||
</message>
|
||||
|
@ -819,27 +868,27 @@
|
|||
<translation type="vanished">Immagine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="271"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="277"/>
|
||||
<source>Description</source>
|
||||
<translation>Descrizione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="308"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="309"/>
|
||||
<source>Upload</source>
|
||||
<translation>Carica</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="308"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="309"/>
|
||||
<source>Change</source>
|
||||
<translation>Modifica</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="311"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="312"/>
|
||||
<source>Error</source>
|
||||
<translation>Errore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="311"/>
|
||||
<location filename="../qml/photoqml/ImageUploadDialog.qml" line="312"/>
|
||||
<source> No album name given</source>
|
||||
<translation>Nessun nome album inserito!</translation>
|
||||
</message>
|
||||
|
@ -862,43 +911,54 @@
|
|||
<translation>Chiudi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageImageUploadDialog</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageImageUploadDialog.qml" line="258"/>
|
||||
<source>Description</source>
|
||||
<translation type="unfinished">Descrizione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageImageUploadDialog.qml" line="284"/>
|
||||
<source>Upload</source>
|
||||
<translation type="unfinished">Carica</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageSend</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="211"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="219"/>
|
||||
<source>to:</source>
|
||||
<translation>a:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="223"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="231"/>
|
||||
<source>Title (optional)</source>
|
||||
<translation>Titolo (opzionale)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="241"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="249"/>
|
||||
<source> Drop your Content here.</source>
|
||||
<translation> Lascia qui il tuo contenuto.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="247"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="255"/>
|
||||
<source>What's on your mind?</source>
|
||||
<translation>A cosa stai pensando?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="408"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="470"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="431"/>
|
||||
<source>Error</source>
|
||||
<translation>Errore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="408"/>
|
||||
<source>Only one attachment supported at the moment.
|
||||
Remove other attachment first!</source>
|
||||
<translation>Solo un allegato è attualmente supportato.
|
||||
<translation type="vanished">Solo un allegato è attualmente supportato.
|
||||
Rimuovere prima gli altri allegati!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="470"/>
|
||||
<location filename="../qml/newsqml/MessageSend.qml" line="431"/>
|
||||
<source>No receiver supplied!</source>
|
||||
<translation>Nessun ricevitore in dotazione!</translation>
|
||||
</message>
|
||||
|
@ -914,12 +974,11 @@
|
|||
<context>
|
||||
<name>NewsStack</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/NewsStack.qml" line="222"/>
|
||||
<source>Network Error</source>
|
||||
<translation>Errore di rete</translation>
|
||||
<translation type="vanished">Errore di rete</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/NewsStack.qml" line="268"/>
|
||||
<location filename="../qml/newsqml/NewsStack.qml" line="286"/>
|
||||
<source>More</source>
|
||||
<translation>Ancora</translation>
|
||||
</message>
|
||||
|
@ -1108,57 +1167,72 @@
|
|||
<translation type="vanished">Risposta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="439"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="463"/>
|
||||
<source>DM</source>
|
||||
<translation>Messaggio diretto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="425"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="428"/>
|
||||
<source>Repost</source>
|
||||
<translation>Condividi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="428"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="431"/>
|
||||
<source>Success!</source>
|
||||
<translation>Ha funzionato!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="433"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="436"/>
|
||||
<source>Block contact</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="449"/>
|
||||
<source>Report contact</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="457"/>
|
||||
<source>Conversation</source>
|
||||
<translation>Conversazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="445"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="469"/>
|
||||
<source>Bookmark</source>
|
||||
<translation>Segnalibro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="454"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="478"/>
|
||||
<source>Calendar Entry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="487"/>
|
||||
<source>Attending</source>
|
||||
<translation>Attendi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="464"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="497"/>
|
||||
<source>yes</source>
|
||||
<translation>si</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="469"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="502"/>
|
||||
<source>maybe</source>
|
||||
<translation>potrebbe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="474"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="507"/>
|
||||
<source>no</source>
|
||||
<translation>no</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="481"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="514"/>
|
||||
<source>Delete</source>
|
||||
<translation>Cancella</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="497"/>
|
||||
<location filename="../qml/newsqml/Newsitem.qml" line="530"/>
|
||||
<source>External</source>
|
||||
<translation>Sito web</translation>
|
||||
</message>
|
||||
|
@ -1179,28 +1253,28 @@
|
|||
<context>
|
||||
<name>PhotoTab</name>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="133"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="132"/>
|
||||
<source>'s images</source>
|
||||
<translation> Immagini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="220"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="219"/>
|
||||
<source>All Images</source>
|
||||
<translation>Tutte immagini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="226"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="225"/>
|
||||
<source>Only new</source>
|
||||
<translation>Solo nuovo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="242"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="247"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="241"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="246"/>
|
||||
<source>Own Images</source>
|
||||
<translation>Mie immagini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="289"/>
|
||||
<location filename="../qml/photoqml/PhotoTab.qml" line="288"/>
|
||||
<source>More</source>
|
||||
<translation>Ancora</translation>
|
||||
</message>
|
||||
|
@ -1433,6 +1507,34 @@
|
|||
<translation>Creato il</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReportUser</name>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="41"/>
|
||||
<source>Report contact?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="65"/>
|
||||
<source>comment</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="72"/>
|
||||
<source>illegal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="72"/>
|
||||
<source>spam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/newsqml/ReportUser.qml" line="72"/>
|
||||
<source>violation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SmileyDialog</name>
|
||||
<message>
|
||||
|
@ -1529,14 +1631,14 @@
|
|||
<translation type="vanished">Chiudi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/friendiqa.qml" line="176"/>
|
||||
<location filename="../qml/friendiqa.qml" line="177"/>
|
||||
<source>Background Sync
|
||||
Rightclick or Middleclick to Quit</source>
|
||||
<translation>Sincronizzazione dello sfondo
|
||||
Fare clic con il tasto destro del mouse o con il tasto centrale per uscire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/friendiqa.qml" line="290"/>
|
||||
<location filename="../qml/friendiqa.qml" line="294"/>
|
||||
<source>Click to open Friendiqa</source>
|
||||
<translation>Clicca per aprire Friendiqa</translation>
|
||||
</message>
|
||||
|
|
Loading…
Reference in a new issue