2022-04-04 21:22:50 +02:00
|
|
|
#include "blogsview.h"
|
|
|
|
|
#include "ui_blogsview.h"
|
|
|
|
|
#include "blogentry.h"
|
|
|
|
|
#include "ui_blogentry.h"
|
2022-04-06 02:20:29 +02:00
|
|
|
#include <algorithm>
|
2022-04-05 00:26:36 +02:00
|
|
|
#include <QJsonObject>
|
|
|
|
|
#include <QFile>
|
|
|
|
|
#include <QJsonDocument>
|
2022-04-06 02:20:29 +02:00
|
|
|
#include <QJsonArray>
|
2022-04-04 21:22:50 +02:00
|
|
|
|
|
|
|
|
blogsView::blogsView(QWidget *parent) :
|
|
|
|
|
QMainWindow(parent),
|
|
|
|
|
ui(new Ui::blogsView)
|
|
|
|
|
{
|
|
|
|
|
ui->setupUi(this);
|
2022-04-06 02:20:29 +02:00
|
|
|
displayBlogEntries();
|
2022-04-04 21:22:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
blogsView::~blogsView()
|
|
|
|
|
{
|
|
|
|
|
delete ui;
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-05 00:26:36 +02:00
|
|
|
void blogsView::setUserId(const QString &userId)
|
|
|
|
|
{
|
|
|
|
|
this->userId = userId;
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-05 14:07:24 +02:00
|
|
|
void blogsView::setBlogId(const QString &blogId)
|
|
|
|
|
{
|
|
|
|
|
this->blogId = blogId;
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-05 00:26:36 +02:00
|
|
|
QJsonObject blogsView::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();
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-05 14:07:24 +02:00
|
|
|
void blogsView::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();
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-04 21:22:50 +02:00
|
|
|
void blogsView::createNewBlogEntry()
|
|
|
|
|
{
|
2022-04-05 00:26:36 +02:00
|
|
|
QJsonObject blogsFile = readJsonFile("blogs.json");
|
|
|
|
|
QJsonObject blogEntryJson;
|
|
|
|
|
blogEntryJson["title"];
|
|
|
|
|
blogEntryJson["datetime"];
|
|
|
|
|
blogEntryJson["content"];
|
|
|
|
|
qDebug() << "blogsView id: " << userId;
|
2022-04-04 21:22:50 +02:00
|
|
|
blogEntry *e = new blogEntry();
|
2022-04-05 00:26:36 +02:00
|
|
|
e -> setUserId(userId);
|
2022-04-06 01:06:01 +02:00
|
|
|
e -> setBlogId(blogId);
|
2022-04-04 21:56:57 +02:00
|
|
|
ui -> blogsLayout -> addWidget(e);
|
2022-04-04 21:22:50 +02:00
|
|
|
}
|
|
|
|
|
|
2022-04-06 02:20:29 +02:00
|
|
|
void blogsView::displayBlogEntries()
|
|
|
|
|
{
|
|
|
|
|
QJsonObject blogsFile = readJsonFile("blogs.json");
|
|
|
|
|
QJsonObject userBlog = blogsFile[blogId].toObject();
|
|
|
|
|
QJsonArray blogEntries = userBlog["items"].toArray();
|
|
|
|
|
for(int i = 0; i < blogEntries.size(); i++)
|
|
|
|
|
{
|
|
|
|
|
QJsonObject entry = (blogEntries.at(i)).toObject();
|
|
|
|
|
blogEntry *e = new blogEntry();
|
|
|
|
|
e -> setUserId(userId);
|
|
|
|
|
e -> setUpBlogEntryFromJson(entry);
|
|
|
|
|
ui -> blogsLayout -> addWidget(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-04 21:22:50 +02:00
|
|
|
void blogsView::on_actionCreate_new_Blog_entry_triggered()
|
|
|
|
|
{
|
|
|
|
|
createNewBlogEntry();
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-06 14:30:57 +02:00
|
|
|
void blogsView::exit()
|
|
|
|
|
{
|
|
|
|
|
QApplication::quit();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void blogsView::on_actionExit_triggered()
|
|
|
|
|
{
|
|
|
|
|
exit();
|
|
|
|
|
}
|
|
|
|
|
|