feat: add entry edit

This commit is contained in:
kuchy 2022-04-06 03:20:04 +02:00
parent e9a326c141
commit 31c8d80c2c
3 changed files with 71 additions and 3 deletions

View File

@ -10,18 +10,24 @@ blogEntry::blogEntry(QWidget *parent) :
QWidget(parent),
ui(new Ui::blogEntry)
{
editMode = false;
ui->setupUi(this);
ui -> editEntryButton -> setDisabled(true);
}
void blogEntry::setUpBlogEntryFromJson(const QJsonObject entry)
{
dateTime = entry["datetime"].toString();
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);
ui -> saveEntry -> setDisabled(true);
ui -> editEntryButton -> setDisabled(false);
}
blogEntry::~blogEntry()
@ -77,8 +83,8 @@ void blogEntry::saveEntry()
entry["title"] = ui -> lineEdit -> text();
QString Time = QTime::currentTime().toString();
QString Date = QDate::currentDate().toString();
entry["datetime"] = Time + " " + Date;
dateTime = Time + " " + Date;
ui -> dateTime -> setText( Time + " " + Date);
entry["content"] = ui -> textEdit -> toPlainText();
QJsonArray items = blogEntryJson["items"].toArray();
@ -86,6 +92,8 @@ void blogEntry::saveEntry()
blogEntryJson.insert("items", items);
blogsFile.insert(blogId, blogEntryJson);
saveJsonFile(blogsFile, "blogs.json");
ui -> saveEntry -> setDisabled(true);
ui -> editEntryButton -> setDisabled(false);
}
@ -99,7 +107,7 @@ void blogEntry::removeEntry()
QJsonObject currentItem = items[i].toObject();
qDebug() << currentItem["datetime"].toString();
qDebug() << ui -> dateTime -> text();
if(currentItem["datetime"].toString() == ui -> dateTime -> text())
if(currentItem["datetime"].toString() == dateTime)
{
items.removeAt(i);
break;
@ -111,6 +119,15 @@ void blogEntry::removeEntry()
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()
{
saveEntry();
@ -122,3 +139,39 @@ void blogEntry::on_pushButton_clicked()
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();
}

View File

@ -29,11 +29,16 @@ private slots:
void removeEntry();
void on_pushButton_clicked();
void on_editEntryButton_clicked();
void editEntry();
void saveEditedEntry();
private:
Ui::blogEntry *ui;
QString userId;
QString blogId;
QString dateTime;
bool editMode;
};
#endif // BLOGENTRY_H

View File

@ -47,6 +47,9 @@
<property name="text">
<string>Save Entry</string>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item row="5" column="1">
@ -56,6 +59,13 @@
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QPushButton" name="editEntryButton">
<property name="text">
<string>Edit Entry</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>