WUT_Computer_Science/EGUI/lab1/blogsview.cpp

103 lines
2.3 KiB
C++
Raw Normal View History

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();
}