From bdc28e632e1314cfb162a515ef2994f72cb9e064 Mon Sep 17 00:00:00 2001 From: LubuWest Date: Wed, 16 Dec 2020 21:19:11 +0100 Subject: [PATCH] correct place for filesystemandroid.cpp --- source-android/common/filesystemandroid.cpp | 116 +----- ...ux (conflicted copy 2019-06-23 133538).cpp | 73 ---- source-linux/common/filesystemandroid.cpp | 115 ++++++ ...qa (conflicted copy 2019-06-24 214903).cpp | 97 ----- ...ge (conflicted copy 2017-12-15 232034).cpp | 121 ------ ...mage (conflicted copy 2017-12-15 232034).h | 71 ---- ...hr (conflicted copy 2019-06-24 214813).cpp | 369 ------------------ 7 files changed, 116 insertions(+), 846 deletions(-) mode change 100644 => 120000 source-android/common/filesystemandroid.cpp delete mode 100644 source-linux/common/alarmlinux (conflicted copy 2019-06-23 133538).cpp create mode 100644 source-linux/common/filesystemandroid.cpp delete mode 100644 source-linux/common/friendiqa (conflicted copy 2019-06-24 214903).cpp delete mode 100644 source-linux/common/uploadableimage (conflicted copy 2017-12-15 232034).cpp delete mode 100644 source-linux/common/uploadableimage (conflicted copy 2017-12-15 232034).h delete mode 100644 source-linux/common/xhr (conflicted copy 2019-06-24 214813).cpp diff --git a/source-android/common/filesystemandroid.cpp b/source-android/common/filesystemandroid.cpp deleted file mode 100644 index 165aae3..0000000 --- a/source-android/common/filesystemandroid.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// This file is part of Friendiqa -// https://github.com/lubuwest/Friendiqa -// Copyright (C) 2020 Marco R. -// -// 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 . - -#include "filesystem.h" -#include - - -FILESYSTEM *FILESYSTEM::instance() -{ - static FILESYSTEM filesystem; - return &filesystem; -} - -FILESYSTEM::FILESYSTEM(QObject *parent) : QObject(parent){} - -void FILESYSTEM::setDirectory(QString Directory) -{ - if (Directory!=m_Directory) { - m_Directory = Directory; - emit directoryChanged(); - } -} - -QString FILESYSTEM::Directory() const -{ - return m_Directory; -} - -QString FILESYSTEM::homePath() const -{ - QAndroidJniObject activity =QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative","activity", "()Landroid/app/Activity;"); - QAndroidJniObject dir = activity.callObjectMethod("getExternalFilesDir", "(Ljava/lang/String;)Ljava/io/File;", NULL); - QString homeDir=dir.toString(); - return homeDir; -} - -bool FILESYSTEM::fileexist(QString name) -{ return QFile::exists(name); -} - -void FILESYSTEM::makeDir(QString name) -{ - QDir dir(m_Directory); - if (dir.mkdir(name)){ - emit success(name); - } - else { - emit error(name,1); - } -} - -void FILESYSTEM::makePath(QString name) -{ - QDir dir(m_Directory); - if (dir.mkpath(name)){ - emit success(name); - } - else { - emit error(name,1);} -} - -void FILESYSTEM::rmDir() -{ - QDir dir(m_Directory); - if (dir.removeRecursively()){ - emit success(m_Directory); - } - else {emit error(m_Directory,1);} -} - -void FILESYSTEM::rmFile(QString name) -{ - QDir dir(m_Directory); - if(dir.remove(name)){ - emit success(name); - } - else {emit error(name,1);} -} -QFileInfoList FILESYSTEM::fileList() -{ - QDir dir(m_Directory); - QStringList filters; - filters << "*.png" <<"*.PNG" << "*.jpg" << "*.JPG" << "*.JPEG"; - dir.setNameFilters(filters); - dir.setSorting(QDir::Time | QDir::Reversed); - return dir.entryInfoList(); -} diff --git a/source-android/common/filesystemandroid.cpp b/source-android/common/filesystemandroid.cpp new file mode 120000 index 0000000..dbfaf68 --- /dev/null +++ b/source-android/common/filesystemandroid.cpp @@ -0,0 +1 @@ +../../source-linux/common/filesystemandroid.cpp \ No newline at end of file diff --git a/source-linux/common/alarmlinux (conflicted copy 2019-06-23 133538).cpp b/source-linux/common/alarmlinux (conflicted copy 2019-06-23 133538).cpp deleted file mode 100644 index c9b0a57..0000000 --- a/source-linux/common/alarmlinux (conflicted copy 2019-06-23 133538).cpp +++ /dev/null @@ -1,73 +0,0 @@ -// This file is part of Friendiqa -// https://git.friendi.ca/lubuwest/Friendiqa -// Copyright (C) 2017 Marco R. -// -// 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 . - -//#include -//#include -#include "alarm.h" -#include -#include -//#include "AndroidNative/systemdispatcher.h" - -ALARM *ALARM::instance() -{ - static ALARM alarm; - return &alarm; -} - -ALARM::ALARM(QObject *parent) : QObject(parent){} - -void ALARM::setAlarm(int interval) -{ - qDebug() << interval; - QVariantMap message; - message["value"] = interval; - // AndroidNative::SystemDispatcher::instance()->loadClass("androidnative.Util"); - // AndroidNative::SystemDispatcher::instance()->dispatch("androidnative.Util.setSchedule", message); - //AndroidNative::SystemDispatcher::instance()->dispatch("androidnative.Util.stopService", message); -} - -void ALARM::notify(QString title, QString text, int id) -{ - qDebug() << title << text; - QVariantMap message; - message["title"] = title; - message["message"] = text; - QDBusConnection bus = QDBusConnection::sessionBus(); - QDBusInterface dbus_iface("org.freedesktop.Notifications", "/org/freedesktop/Notifications", - "org.freedesktop.Notifications", bus); - QString appname="Friendiqa"; - uint v=12321; - if (dbus_iface.isValid()){ - - dbus_iface.call("Notify",appname,v,"",title,text,"","",5000); - } - // AndroidNative::SystemDispatcher::instance()->dispatch("Notifier.notify", message); -} diff --git a/source-linux/common/filesystemandroid.cpp b/source-linux/common/filesystemandroid.cpp new file mode 100644 index 0000000..165aae3 --- /dev/null +++ b/source-linux/common/filesystemandroid.cpp @@ -0,0 +1,115 @@ +// This file is part of Friendiqa +// https://github.com/lubuwest/Friendiqa +// Copyright (C) 2020 Marco R. +// +// 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 . + +#include "filesystem.h" +#include + + +FILESYSTEM *FILESYSTEM::instance() +{ + static FILESYSTEM filesystem; + return &filesystem; +} + +FILESYSTEM::FILESYSTEM(QObject *parent) : QObject(parent){} + +void FILESYSTEM::setDirectory(QString Directory) +{ + if (Directory!=m_Directory) { + m_Directory = Directory; + emit directoryChanged(); + } +} + +QString FILESYSTEM::Directory() const +{ + return m_Directory; +} + +QString FILESYSTEM::homePath() const +{ + QAndroidJniObject activity =QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative","activity", "()Landroid/app/Activity;"); + QAndroidJniObject dir = activity.callObjectMethod("getExternalFilesDir", "(Ljava/lang/String;)Ljava/io/File;", NULL); + QString homeDir=dir.toString(); + return homeDir; +} + +bool FILESYSTEM::fileexist(QString name) +{ return QFile::exists(name); +} + +void FILESYSTEM::makeDir(QString name) +{ + QDir dir(m_Directory); + if (dir.mkdir(name)){ + emit success(name); + } + else { + emit error(name,1); + } +} + +void FILESYSTEM::makePath(QString name) +{ + QDir dir(m_Directory); + if (dir.mkpath(name)){ + emit success(name); + } + else { + emit error(name,1);} +} + +void FILESYSTEM::rmDir() +{ + QDir dir(m_Directory); + if (dir.removeRecursively()){ + emit success(m_Directory); + } + else {emit error(m_Directory,1);} +} + +void FILESYSTEM::rmFile(QString name) +{ + QDir dir(m_Directory); + if(dir.remove(name)){ + emit success(name); + } + else {emit error(name,1);} +} +QFileInfoList FILESYSTEM::fileList() +{ + QDir dir(m_Directory); + QStringList filters; + filters << "*.png" <<"*.PNG" << "*.jpg" << "*.JPG" << "*.JPEG"; + dir.setNameFilters(filters); + dir.setSorting(QDir::Time | QDir::Reversed); + return dir.entryInfoList(); +} diff --git a/source-linux/common/friendiqa (conflicted copy 2019-06-24 214903).cpp b/source-linux/common/friendiqa (conflicted copy 2019-06-24 214903).cpp deleted file mode 100644 index 3eccb3c..0000000 --- a/source-linux/common/friendiqa (conflicted copy 2019-06-24 214903).cpp +++ /dev/null @@ -1,97 +0,0 @@ -// This file is part of Friendiqa -// https://github.com/lubuwest/Friendiqa -// Copyright (C) 2017 Marco R. -// -// 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 . - -#include -#include -//#include -//#include -#include -#include "xhr.h" -#include "updatenews.h" -#include "filesystem.h" -#include "remoteauthasyncimageprovider.h" -//#include "alarm.h" -//#include "AndroidNative/systemdispatcher.h" -//#include "AndroidNative/environment.h" -//#include "AndroidNative/debug.h" -//#include "AndroidNative/mediascannerconnection.h" - - -#ifdef Q_OS_ANDROID -#include -#include -JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void*) { - Q_UNUSED(vm); - qDebug("NativeInterface::JNI_OnLoad()"); // It must call this function within JNI_OnLoad to enable System Dispatcher - - AndroidNative::SystemDispatcher::registerNatives(); - return JNI_VERSION_1_6; - } -#endif - - -int main(int argc, char *argv[]) { - //qDebug()<< "argv Friendiqa"<< argv[0] <<" argv2" <setDatabase(); - updatenews->login(); - updatenews->startsync(); - //app.connect (updatenews,SIGNAL(quitapp()),&app,SLOT(quit())); - //QtAndroid::androidService().callMethod("stopSelf"); - //return app.exec(); - } - else{ - QApplication app(argc, argv); - QQuickView view; - QTranslator qtTranslator; - qtTranslator.load("friendiqa-" + QLocale::system().name(),":/translations"); - app.installTranslator(&qtTranslator); - RemoteAuthAsyncImageProvider *imageProvider = new RemoteAuthAsyncImageProvider; - view.engine()->addImageProvider("remoteauthimage",imageProvider); - view.rootContext()->setContextProperty("remoteauth", imageProvider); - XHR* xhr = XHR::instance(); - view.rootContext()->setContextProperty("xhr", xhr); - FILESYSTEM* filesystem = FILESYSTEM::instance(); - view.rootContext()->setContextProperty("filesystem", filesystem); - ALARM* alarm = ALARM::instance(); - view.rootContext()->setContextProperty("alarm", alarm); - UPDATENEWS* updatenews = UPDATENEWS::instance(); - view.rootContext()->setContextProperty("updatenews", updatenews); - view.setSource(QUrl("qrc:/qml/friendiqa.qml")); - view.show(); - view.connect(view.rootContext()->engine(), SIGNAL(quit()), &app, SLOT(quit())); - return app.exec(); - } -} - diff --git a/source-linux/common/uploadableimage (conflicted copy 2017-12-15 232034).cpp b/source-linux/common/uploadableimage (conflicted copy 2017-12-15 232034).cpp deleted file mode 100644 index 7ef3524..0000000 --- a/source-linux/common/uploadableimage (conflicted copy 2017-12-15 232034).cpp +++ /dev/null @@ -1,121 +0,0 @@ -// This file is part of Friendiqa -// https://github.com/lubuwest/Friendiqa -// Copyright (C) 2017 Marco R. -// -// 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 . - -#include "uploadableimage.h" - - -#include -#include -#include -#include - -void UploadableImage::setSource(const QString &a) { - if (a != m_source) { - m_source = a; - //m_base64 = ""; - m_mimetype = ""; - m_filename = ""; - - qDebug() << "UploadableImage::setSource : " << m_source; - - if (m_source=="") { - emit sourceChanged(); - //emit base64Changed(); - emit mimetypeChanged(); - emit filenameChanged(); - return; - } - - QImage fullimage = QImage(QUrl(m_source).toLocalFile()); - if (fullimage.width() > 800 || fullimage.height() > 800) { - if (fullimage.width() > fullimage.height()) { - m_image = fullimage.scaledToWidth(800); - } else { - m_image = fullimage.scaledToHeight(800); - } - } else { - m_image = fullimage; - } - qDebug() << "UploadableImage::setSource : " << m_image.width() << "x" << m_image.height(); - emit sourceChanged(); - - QFileInfo fi(m_source); - - m_filename = fi.fileName(); - emit filenameChanged(); - - QString filetype = fi.suffix().toUpper(); - if (filetype!="PNG" && filetype!="JPG") { - filetype = "JPG"; - } - qDebug() << "UploadableImage::setSource : " << "Saving as " << filetype; - - m_mimetype = "image/"+filetype.toLower(); - emit mimetypeChanged(); - - /* - QByteArray byteArray; - QBuffer buffer(&byteArray); - m_image.save(&buffer, filetype.toLatin1().constData()); - QString b64 = QString::fromLatin1(byteArray.toBase64().data()); - - for(int k=0; k -// -// 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 . - -#ifndef UPLOADABLEIMAGE_H -#define UPLOADABLEIMAGE_H - -#include -#include -#include - -class UploadableImage : public QObject -{ - Q_OBJECT - Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged) - //Q_PROPERTY(QString base64 READ base64 NOTIFY base64Changed) - Q_PROPERTY(QString filename READ filename NOTIFY filenameChanged) - Q_PROPERTY(QString mimetype READ mimetype NOTIFY mimetypeChanged) - Q_PROPERTY(QByteArray bytes READ bytes) - -public: - void setSource(const QString &a); - QString source() const; - - //QString base64() const; - QString filename() const; - QString mimetype() const; - - QByteArray bytes(); -signals: - void sourceChanged(); - //void base64Changed(); - void filenameChanged(); - void mimetypeChanged(); - -private: - QString m_source; - QImage m_image; - //QString m_base64; - QString m_filename; - QString m_mimetype; -}; - -#endif // UPLOADABLEIMAGE_H diff --git a/source-linux/common/xhr (conflicted copy 2019-06-24 214813).cpp b/source-linux/common/xhr (conflicted copy 2019-06-24 214813).cpp deleted file mode 100644 index fd29d29..0000000 --- a/source-linux/common/xhr (conflicted copy 2019-06-24 214813).cpp +++ /dev/null @@ -1,369 +0,0 @@ -// This file is part of Friendiqa -// https://github.com/lubuwest/Friendiqa -// Copyright (C) 2017 Marco R. -// -// 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 . - -#include "xhr.h" - -#include -#include -#include -#include -#include -#include -#include -#include "uploadableimage.h" - -XHR *XHR::instance() -{ - static XHR xhr; - return &xhr; -} - -XHR::XHR(QObject *parent) : QObject(parent) -{ - request.setSslConfiguration(QSslConfiguration::defaultConfiguration()); -} - -void XHR::setUrl(QString url) -{ - if (url!=m_url) { - m_url = url; - emit urlChanged(); - } -} - -void XHR::setApi(QString api) -{ - if (api!=m_api) { - m_api = api; - emit apiChanged(); - } -} - -void XHR::setLogin(QString login) -{ - if (login!=m_login) { - m_login = login; - emit loginChanged(); - } -} - -void XHR::setFilename(QString filename) -{ - if (filename!=m_filename) { - m_filename = filename; - emit filenameChanged(); - } -} - -void XHR::setContactlist(QList contactlist) -{ - if (contactlist!=m_contactlist) { - m_contactlist = contactlist; - emit contactlistChanged(); - } -} - -void XHR::setFilelist(QList filelist) -{ - if (filelist!=m_filelist) { - m_filelist = filelist; - emit filelistChanged(); - } -} - -void XHR::setImagedir(QString imagedir) -{ - if (imagedir!=m_imagedir) { - m_imagedir = imagedir; - emit imagedirChanged(); - } -} -void XHR::setDownloadtype(QString downloadtype) -{ - if (downloadtype!=m_downloadtype) { - m_downloadtype = downloadtype; - emit downloadtypeChanged(); - } -} - -QString XHR::url() const -{ - return m_url; -} - -QString XHR::api() const -{ - return m_api; -} - -QString XHR::login() const -{ - return m_login; -} - -QString XHR::filename() const -{ - return m_filename; -} - -QList XHR::contactlist() const -{ - return m_contactlist; -} - -QList XHR::filelist() const -{ - return m_filelist; -} - -QString XHR::imagedir() const -{ - return m_imagedir; -} - -QString XHR::downloadtype() const -{ - return m_downloadtype; -} - -QString XHR::networktype() -{ - return nc.bearerTypeFamily() + nc.bearerTypeName(); -} - -void XHR::setParam(QString name, QString value) -{ - params.insert(name, value); -} - -void XHR::setImageFileParam(QString name, QString url) -{ - files.insert(name, url); -} - -void XHR::clearParams() -{ - files.clear(); - params.clear(); -} - -void XHR::download() -{ - QUrl requrl(m_url); - if(m_downloadtype=="picturelist"){ - QByteArray loginData = m_login.toLocal8Bit().toBase64(); - QString headerData = "Basic " + loginData; - request.setRawHeader("Authorization", headerData.toLocal8Bit()); - } - request.setUrl(requrl); - reply = manager.get(request); - reply->ignoreSslErrors(); - connect(reply, &QNetworkReply::readyRead,this, &XHR::onReadyRead); - //connect(reply,SIGNAL(downloadProgress(qint64,qint64)), this,SLOT(updateDownloadProgress(qint64,qint64))); - connect(reply, &QNetworkReply::finished,this, &XHR::onRequestFinished); - connect(reply, &QNetworkReply::sslErrors, this, &XHR::onSSLError); - connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onReplyError(QNetworkReply::NetworkError))); -} - -void XHR::get() -{ - QUrlQuery query; - - QHashIterator i(params); - while(i.hasNext()) { - i.next(); - query.addQueryItem(i.key(), i.value()); - //qDebug()< 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); - } - - UploadableImage uimg; - QHashIterator ifiles(files); - while(ifiles.hasNext()) { - ifiles.next(); - - uimg.setSource(ifiles.value()); - //qDebug() << "\t image: " << uimg.mimetype() << ", " << ifiles.key(); - - QHttpPart imagePart; - imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant(uimg.mimetype())); - imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"" + ifiles.key() + "\"; filename=\""+uimg.filename()+"\"")); - imagePart.setBody(uimg.bytes()); - multiPart->append(imagePart); - } - - QByteArray loginData = m_login.toLocal8Bit().toBase64(); - QString headerData = "Basic " + loginData; - request.setRawHeader(QByteArray("Authorization"), headerData.toLocal8Bit()); - - request.setUrl(m_url+m_api); - reply = manager.post(request, multiPart); - 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; - emit this->error( bufferToString(), m_url,m_api, (int) code); - buffer.clear(); - reply->deleteLater(); -} - -void XHR::onReplySuccess() -{ - qDebug() << "!"; - emit this->success(buffer, m_api); - buffer.clear(); -// reply->deleteLater(); -} - -void XHR::onRequestFinished() -{ - qDebug()<<"download requestFinished "; - // Save the file here - if (buffer.isNull()){qDebug() << "File empty"<error(m_downloadtype,m_url,m_api,1);} - else if (m_downloadtype=="picturelist") { - QJsonDocument jsonResponse = QJsonDocument::fromJson(buffer); - QJsonObject jsonObject = jsonResponse.object(); - int arraystart=buffer.indexOf('{"data":"')+8; - int arraylength=buffer.indexOf('"',9)-arraystart; - QByteArray b64=buffer.mid(arraystart,arraylength); - QString helpfilename=jsonObject["filename"].toString(); - QString helpfile=helpfilename.left(helpfilename.lastIndexOf(".")); - QString filesuffix=""; - if (jsonObject["type"].toString()=="image/jpeg"){filesuffix=".jpg";} - else if (jsonObject["type"].toString()=="image/png"){filesuffix=".png";} - else {filesuffix="";} - if (helpfilename==""){// check if file has any filename - helpfile=jsonObject["id"].toString(); - setFilename(imagedir()+"albums/"+jsonObject["album"].toString()+"/"+jsonObject["id"].toString()+filesuffix); - } - else{setFilename(imagedir()+"albums/"+jsonObject["album"].toString()+"/"+helpfile+filesuffix);} - //qDebug()<<"Filename "<downloadedjson(m_downloadtype,m_url,m_filename,dlindex,jsonObject); - if(downloadtype()=="picturelist"){dlindex=dlindex+1;XHR::getlist();} - } - else { - QFile file(m_filename); - file.open(QIODevice::WriteOnly); - file.write(buffer); - buffer.clear(); - file.close(); - emit this->downloaded(m_downloadtype,m_url,m_filename,dlindex); - if(downloadtype()=="contactlist"){dlindex=dlindex+1;XHR::getlist();} - - //reply->deleteLater(); - } -} - -void XHR::onReadyRead() -{ - qDebug() << "."; - buffer += reply->readAll(); -} - -//void XHR::updateDownloadProgress(qint64 bytesRead, qint64 totalBytes) -//{ -// qDebug() << "Bytes: " << bytesRead<<" / "< &errors) -{ - qDebug() << "XHR::onSSLError :" ; - QListIterator ierrs(errors); - while(ierrs.hasNext()) { - qDebug() << "\t" << ierrs.next().errorString(); - } -} - -QString XHR::bufferToString() -{ - return QTextCodec::codecForName("utf-8")->toUnicode(buffer); -}