diff --git a/src/CopyrighFixer/CopyrighFixer/owner.cpp b/src/CopyrighFixer/CopyrighFixer/owner.cpp index 6af7665..dd8a233 100644 --- a/src/CopyrighFixer/CopyrighFixer/owner.cpp +++ b/src/CopyrighFixer/CopyrighFixer/owner.cpp @@ -20,12 +20,12 @@ const QString &Owner::getOwnerName() const { return _name; } -void Owner::setTimeRange(const QString &interval) { - _timeRange = interval; +void Owner::setTimePoint(const int &interval) { + _timePoint = interval; } -const QString &Owner::getTimeRange() const { - return _timeRange; +const int &Owner::getTimePoint() const { + return _timePoint; } }; diff --git a/src/CopyrighFixer/CopyrighFixer/owner.h b/src/CopyrighFixer/CopyrighFixer/owner.h index c658841..8f8a3f1 100644 --- a/src/CopyrighFixer/CopyrighFixer/owner.h +++ b/src/CopyrighFixer/CopyrighFixer/owner.h @@ -36,16 +36,17 @@ public: * @brief setTimeRange A method that allows you to set the time interval for using a file. * @param interval This is a string value indicating the date of ownership of the file. */ - void setTimeRange(const QString &interval); + void setTimePoint(const QString &interval); /** * @brief getTimeRange The method changes the timestamp of the usage. * @return the time interval when the file was modified */ - const QString& getTimeRange() const; + const QString& getTimePoint() const; + private: QString _name; - QString _timeRange; + int _timePoint; }; diff --git a/src/CopyrighFixer/CopyrighFixer/sign.cpp b/src/CopyrighFixer/CopyrighFixer/sign.cpp index 0ce7e5b..cbddd22 100644 --- a/src/CopyrighFixer/CopyrighFixer/sign.cpp +++ b/src/CopyrighFixer/CopyrighFixer/sign.cpp @@ -9,6 +9,7 @@ #include "owner.h" #include <quasarapp.h> #include <QFile> +#include <QFileInfo> #include <QJsonArray> #include <QJsonValue> #include <QJsonObject> @@ -21,8 +22,8 @@ Signature::Signature() { } -void Signature::setlistOwners(const QList<Owner> &objOwner) { - _ownersList = objOwner; +void Signature::setMapOwners(const QMap<int, Owner> &objOwner) { + _ownersMap = objOwner; } void Signature::setLicenseTitle(const QString &strTitle) { @@ -33,8 +34,8 @@ void Signature::setMessage(const QString &strMsg) { _customMessage = strMsg; } -const QList<Owner> &Signature::getLstOwn() const { - return _ownersList; +const QMap<int, Owner> &Signature::getMapOwn() const { + return _ownersMap; } const QString &Signature::getLicenseTitle() const { @@ -45,17 +46,64 @@ const QString &Signature::getMessage() const { return _customMessage; } -bool Signature::fromJson() { +bool Signature::fromJson(const QString &pathToFile) { + + QFileInfo signFile(pathToFile); + if (signFile.exists() && signFile.isFile()) { + + QFile file(pathToFile); + if (!file.open(QIODevice::ReadOnly)) { + QuasarAppUtils::Params::log("Json file couldn't be opened/found"); + return false; + } + + QByteArray byteSignFile; + byteSignFile = file.readAll(); + file.close(); + + QJsonDocument jsDoc(QJsonDocument::fromJson(byteSignFile)); + if (jsDoc.isNull()) { + QuasarAppUtils::Params::log("Failed to create JSON doc."); + return false; + } + if (!jsDoc.isObject()) { + QuasarAppUtils::Params::log("JSON is not an object."); + return false; + } + + QJsonObject jsObj = jsDoc.object(); + if (jsObj.isEmpty()) { + QuasarAppUtils::Params::log("JSON object is empty."); + return false; + } + + _licenseTitle = jsObj["license"].toString(); + _customMessage = jsObj["licenseText"].toString(); + + Owner OwnObj; + QMap<int, Owner> ownMap; + +// _ownersMap = jsObj["ownersList"] + + + + + return true; + } else { + return false; + } } -bool Signature::toJson() const { +bool Signature::toJson(QString &pathToFile) const { QJsonArray lstObjown; QJsonObject objOwner; - for (const Owner &obj: qAsConst(_ownersList)) { - objOwner["timePoint"] = obj.getTimeRange(); - objOwner["name"] = obj.getOwnerName(); + + for (auto obj = _ownersMap.cbegin(); obj != _ownersMap.end(); ++obj) { + objOwner["timePoint"] = obj.value().getTimePoint(); + objOwner["name"] = obj.value().getOwnerName(); + lstObjown.append(objOwner); } @@ -67,15 +115,14 @@ bool Signature::toJson() const { QByteArray jsonDoc; jsonDoc = QJsonDocument(signJson).toJson(); - QFile file; - file.setFileName(filenameJson); - if (!file.open(QIODevice::WriteOnly)) { + QFile saveFile(pathToFile); + if (!saveFile.open(QIODevice::WriteOnly)) { QuasarAppUtils::Params::log("NO write access for json file."); return 0; } - file.write(jsonDoc); - file.close(); + saveFile.write(jsonDoc); + saveFile.close(); return 1; } diff --git a/src/CopyrighFixer/CopyrighFixer/sign.h b/src/CopyrighFixer/CopyrighFixer/sign.h index 07a9f2a..9c429ca 100644 --- a/src/CopyrighFixer/CopyrighFixer/sign.h +++ b/src/CopyrighFixer/CopyrighFixer/sign.h @@ -10,7 +10,7 @@ #include "CopyrighFixer_global.h" #include "CopyrighFixer/owner.h" -#include <QList> +#include <QMap> namespace CopyrighFixer { @@ -26,7 +26,7 @@ public: * @brief setlistOwners The method generates a list of owners. * @param objOwner This is a structure with information about the owner. */ - void setlistOwners(const QList<Owner> &objOwner); + void setMapOwners(const QMap<int, Owner> &objOwner); /** * @brief setLicenseTitle The method sets the copyright message. @@ -44,7 +44,7 @@ public: * @brief getLstOwn The method allows you to get the current list of owners. * @return List of owners with full information. */ - const QList<Owner>& getLstOwn() const; + const QMap<int, Owner>& getMapOwn() const; /** * @brief getLicenseTitle Allows you to get a license description. @@ -62,17 +62,16 @@ public: * @brief fromJson Reads data from json file. * @return True if everything is correct, otherwise false. */ - bool fromJson(); + bool fromJson(const QString &pathToFile); /** * @brief toJson Converts the QJsonDocument to an file JSON. * @return Returns true if the object exists and is filled correctly, otherwise false. */ - bool toJson() const; + bool toJson(QString &pathToFile) const; private: - QString filenameJson = "Signature.json"; - QList<Owner> _ownersList; + QMap<int, Owner> _ownersMap; QString _licenseTitle; QString _customMessage; };