mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-06 11:03:16 +02:00
feat: add entry edit
This commit is contained in:
parent
e9a326c141
commit
31c8d80c2c
@ -10,18 +10,24 @@ blogEntry::blogEntry(QWidget *parent) :
|
|||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::blogEntry)
|
ui(new Ui::blogEntry)
|
||||||
{
|
{
|
||||||
|
editMode = false;
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
ui -> editEntryButton -> setDisabled(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void blogEntry::setUpBlogEntryFromJson(const QJsonObject entry)
|
void blogEntry::setUpBlogEntryFromJson(const QJsonObject entry)
|
||||||
{
|
{
|
||||||
|
dateTime = entry["datetime"].toString();
|
||||||
ui -> lineEdit-> setText(entry["title"].toString());
|
ui -> lineEdit-> setText(entry["title"].toString());
|
||||||
ui -> textEdit -> setText(entry["content"].toString());
|
ui -> textEdit -> setText(entry["content"].toString());
|
||||||
ui -> dateTime -> setText(entry["datetime"].toString());
|
ui -> dateTime -> setText(entry["datetime"].toString());
|
||||||
ui -> ownerID -> setText("Owner ID: " + userId);
|
ui -> ownerID -> setText("Owner ID: " + userId);
|
||||||
ui -> textEdit -> setReadOnly(true);
|
ui -> textEdit -> setReadOnly(true);
|
||||||
ui -> lineEdit -> setReadOnly(true);
|
ui -> lineEdit -> setReadOnly(true);
|
||||||
|
ui -> saveEntry -> setDisabled(true);
|
||||||
|
ui -> editEntryButton -> setDisabled(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
blogEntry::~blogEntry()
|
blogEntry::~blogEntry()
|
||||||
@ -77,8 +83,8 @@ void blogEntry::saveEntry()
|
|||||||
entry["title"] = ui -> lineEdit -> text();
|
entry["title"] = ui -> lineEdit -> text();
|
||||||
QString Time = QTime::currentTime().toString();
|
QString Time = QTime::currentTime().toString();
|
||||||
QString Date = QDate::currentDate().toString();
|
QString Date = QDate::currentDate().toString();
|
||||||
|
|
||||||
entry["datetime"] = Time + " " + Date;
|
entry["datetime"] = Time + " " + Date;
|
||||||
|
dateTime = Time + " " + Date;
|
||||||
ui -> dateTime -> setText( Time + " " + Date);
|
ui -> dateTime -> setText( Time + " " + Date);
|
||||||
entry["content"] = ui -> textEdit -> toPlainText();
|
entry["content"] = ui -> textEdit -> toPlainText();
|
||||||
QJsonArray items = blogEntryJson["items"].toArray();
|
QJsonArray items = blogEntryJson["items"].toArray();
|
||||||
@ -86,6 +92,8 @@ void blogEntry::saveEntry()
|
|||||||
blogEntryJson.insert("items", items);
|
blogEntryJson.insert("items", items);
|
||||||
blogsFile.insert(blogId, blogEntryJson);
|
blogsFile.insert(blogId, blogEntryJson);
|
||||||
saveJsonFile(blogsFile, "blogs.json");
|
saveJsonFile(blogsFile, "blogs.json");
|
||||||
|
ui -> saveEntry -> setDisabled(true);
|
||||||
|
ui -> editEntryButton -> setDisabled(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,7 +107,7 @@ void blogEntry::removeEntry()
|
|||||||
QJsonObject currentItem = items[i].toObject();
|
QJsonObject currentItem = items[i].toObject();
|
||||||
qDebug() << currentItem["datetime"].toString();
|
qDebug() << currentItem["datetime"].toString();
|
||||||
qDebug() << ui -> dateTime -> text();
|
qDebug() << ui -> dateTime -> text();
|
||||||
if(currentItem["datetime"].toString() == ui -> dateTime -> text())
|
if(currentItem["datetime"].toString() == dateTime)
|
||||||
{
|
{
|
||||||
items.removeAt(i);
|
items.removeAt(i);
|
||||||
break;
|
break;
|
||||||
@ -111,6 +119,15 @@ void blogEntry::removeEntry()
|
|||||||
this -> ~blogEntry();
|
this -> ~blogEntry();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void blogEntry::editEntry()
|
||||||
|
{
|
||||||
|
editMode = true;
|
||||||
|
ui -> textEdit -> setReadOnly(false);
|
||||||
|
ui -> lineEdit -> setReadOnly(false);
|
||||||
|
ui -> saveEntry -> setDisabled(true);
|
||||||
|
ui -> editEntryButton -> setText("Save edit");
|
||||||
|
}
|
||||||
|
|
||||||
void blogEntry::on_saveEntry_clicked()
|
void blogEntry::on_saveEntry_clicked()
|
||||||
{
|
{
|
||||||
saveEntry();
|
saveEntry();
|
||||||
@ -122,3 +139,39 @@ void blogEntry::on_pushButton_clicked()
|
|||||||
removeEntry();
|
removeEntry();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void blogEntry::saveEditedEntry()
|
||||||
|
{
|
||||||
|
ui -> textEdit -> setReadOnly(true);
|
||||||
|
ui -> lineEdit -> setReadOnly(true);
|
||||||
|
editMode = false;
|
||||||
|
ui -> editEntryButton -> setText("Edit Entry");
|
||||||
|
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() == dateTime)
|
||||||
|
{
|
||||||
|
currentItem["title"] = ui -> lineEdit -> text();
|
||||||
|
currentItem["content"] = ui -> textEdit -> toPlainText();
|
||||||
|
items.removeAt(i);
|
||||||
|
items.append(currentItem);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
blogEntryJson.insert("items", items);
|
||||||
|
blogsFile.insert(blogId, blogEntryJson);
|
||||||
|
saveJsonFile(blogsFile, "blogs.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
void blogEntry::on_editEntryButton_clicked()
|
||||||
|
{
|
||||||
|
if(!editMode) editEntry();
|
||||||
|
else saveEditedEntry();
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -29,11 +29,16 @@ private slots:
|
|||||||
void removeEntry();
|
void removeEntry();
|
||||||
void on_pushButton_clicked();
|
void on_pushButton_clicked();
|
||||||
|
|
||||||
|
void on_editEntryButton_clicked();
|
||||||
|
void editEntry();
|
||||||
|
void saveEditedEntry();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::blogEntry *ui;
|
Ui::blogEntry *ui;
|
||||||
QString userId;
|
QString userId;
|
||||||
QString blogId;
|
QString blogId;
|
||||||
|
QString dateTime;
|
||||||
|
bool editMode;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BLOGENTRY_H
|
#endif // BLOGENTRY_H
|
||||||
|
|||||||
@ -47,6 +47,9 @@
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Save Entry</string>
|
<string>Save Entry</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="flat">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="1">
|
<item row="5" column="1">
|
||||||
@ -56,6 +59,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QPushButton" name="editEntryButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Edit Entry</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user