2022-04-04 21:22:50 +02:00
|
|
|
#include "blogentry.h"
|
|
|
|
|
#include "ui_blogentry.h"
|
2022-04-04 21:56:57 +02:00
|
|
|
#include <QDateTime>
|
2022-04-05 00:26:36 +02:00
|
|
|
#include <QJsonObject>
|
|
|
|
|
#include <QFile>
|
|
|
|
|
#include <QJsonDocument>
|
2022-04-06 01:06:01 +02:00
|
|
|
#include <QJsonArray>
|
2022-04-04 21:22:50 +02:00
|
|
|
|
|
|
|
|
blogEntry::blogEntry(QWidget *parent) :
|
|
|
|
|
QWidget(parent),
|
|
|
|
|
ui(new Ui::blogEntry)
|
|
|
|
|
{
|
|
|
|
|
ui->setupUi(this);
|
2022-04-05 00:26:36 +02:00
|
|
|
|
2022-04-06 02:20:29 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void blogEntry::setUpBlogEntryFromJson(const QJsonObject entry)
|
|
|
|
|
{
|
|
|
|
|
ui -> lineEdit-> setText(entry["title"].toString());
|
|
|
|
|
ui -> textEdit -> setText(entry["content"].toString());
|
|
|
|
|
ui -> dateTime -> setText(entry["datetime"].toString());
|
|
|
|
|
ui -> ownerID -> setText("Owner ID: " + userId);
|
|
|
|
|
ui -> textEdit -> setReadOnly(true);
|
|
|
|
|
ui -> lineEdit -> setReadOnly(true);
|
2022-04-04 21:22:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
blogEntry::~blogEntry()
|
|
|
|
|
{
|
|
|
|
|
delete ui;
|
|
|
|
|
}
|
2022-04-05 00:26:36 +02:00
|
|
|
|
|
|
|
|
void blogEntry::setUserId(const QString &userId)
|
|
|
|
|
{
|
|
|
|
|
qDebug() << "blogEntry id: " << userId;
|
|
|
|
|
this->userId = userId;
|
|
|
|
|
ui -> ownerID -> setText("Owner ID: " + userId);
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-06 01:06:01 +02:00
|
|
|
void blogEntry::setBlogId(const QString &blogId)
|
|
|
|
|
{
|
|
|
|
|
this->blogId = blogId;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2022-04-05 00:26:36 +02:00
|
|
|
QJsonObject blogEntry::readJsonFile(const QString title)
|
|
|
|
|
{
|
|
|
|
|
QFile file(title);
|
2022-04-06 01:06:01 +02:00
|
|
|
file.open( QIODevice::ReadWrite);
|
2022-04-05 00:26:36 +02:00
|
|
|
QByteArray bytes = file.readAll();
|
|
|
|
|
file.close();
|
|
|
|
|
QJsonDocument document = QJsonDocument::fromJson( bytes );
|
|
|
|
|
return document.object();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void blogEntry::saveJsonFile(QJsonObject &users, const QString name) const
|
|
|
|
|
{
|
|
|
|
|
QFile jsonFile(name);
|
|
|
|
|
QJsonDocument document;
|
|
|
|
|
document.setObject( users );
|
|
|
|
|
QByteArray bytes = document.toJson( QJsonDocument::Indented );
|
|
|
|
|
jsonFile.open( QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate );
|
|
|
|
|
QTextStream iStream( &jsonFile );
|
|
|
|
|
// iStream.setCodec( "utf-8" );
|
|
|
|
|
iStream << bytes;
|
|
|
|
|
jsonFile.close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void blogEntry::saveEntry()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
ui -> textEdit -> setReadOnly(true);
|
|
|
|
|
ui -> lineEdit -> setReadOnly(true);
|
2022-04-06 01:06:01 +02:00
|
|
|
QJsonObject blogsFile = readJsonFile("blogs.json");
|
|
|
|
|
QJsonObject blogEntryJson = blogsFile[blogId].toObject();
|
|
|
|
|
QJsonObject entry;
|
|
|
|
|
entry["title"] = ui -> lineEdit -> text();
|
2022-04-05 00:26:36 +02:00
|
|
|
QString Time = QTime::currentTime().toString();
|
|
|
|
|
QString Date = QDate::currentDate().toString();
|
2022-04-06 02:20:29 +02:00
|
|
|
|
2022-04-06 01:06:01 +02:00
|
|
|
entry["datetime"] = Time + " " + Date;
|
2022-04-06 02:20:29 +02:00
|
|
|
ui -> dateTime -> setText( Time + " " + Date);
|
2022-04-06 01:06:01 +02:00
|
|
|
entry["content"] = ui -> textEdit -> toPlainText();
|
|
|
|
|
QJsonArray items = blogEntryJson["items"].toArray();
|
|
|
|
|
items.append(entry);
|
|
|
|
|
blogEntryJson.insert("items", items);
|
|
|
|
|
blogsFile.insert(blogId, blogEntryJson);
|
2022-04-05 00:26:36 +02:00
|
|
|
saveJsonFile(blogsFile, "blogs.json");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-06 02:20:29 +02:00
|
|
|
void blogEntry::removeEntry()
|
|
|
|
|
{
|
|
|
|
|
QJsonObject blogsFile = readJsonFile("blogs.json");
|
|
|
|
|
QJsonObject blogEntryJson = blogsFile[blogId].toObject();
|
|
|
|
|
QJsonArray items = blogEntryJson["items"].toArray();
|
|
|
|
|
for(int i = 0; i < items.size(); i++)
|
|
|
|
|
{
|
|
|
|
|
QJsonObject currentItem = items[i].toObject();
|
|
|
|
|
qDebug() << currentItem["datetime"].toString();
|
|
|
|
|
qDebug() << ui -> dateTime -> text();
|
|
|
|
|
if(currentItem["datetime"].toString() == ui -> dateTime -> text())
|
|
|
|
|
{
|
|
|
|
|
items.removeAt(i);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
blogEntryJson.insert("items", items);
|
|
|
|
|
blogsFile.insert(blogId, blogEntryJson);
|
|
|
|
|
saveJsonFile(blogsFile, "blogs.json");
|
|
|
|
|
this -> ~blogEntry();
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-05 00:26:36 +02:00
|
|
|
void blogEntry::on_saveEntry_clicked()
|
|
|
|
|
{
|
|
|
|
|
saveEntry();
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-06 02:20:29 +02:00
|
|
|
|
|
|
|
|
void blogEntry::on_pushButton_clicked()
|
|
|
|
|
{
|
|
|
|
|
removeEntry();
|
|
|
|
|
}
|
|
|
|
|
|