diff --git a/EGUI/lab1/blogentry.cpp b/EGUI/lab1/blogentry.cpp
index 1eea5a4e..db001d5a 100644
--- a/EGUI/lab1/blogentry.cpp
+++ b/EGUI/lab1/blogentry.cpp
@@ -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();
+}
+
diff --git a/EGUI/lab1/blogentry.h b/EGUI/lab1/blogentry.h
index 93763f22..eb5516ef 100644
--- a/EGUI/lab1/blogentry.h
+++ b/EGUI/lab1/blogentry.h
@@ -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
diff --git a/EGUI/lab1/blogentry.ui b/EGUI/lab1/blogentry.ui
index a17aef06..aa037cd9 100644
--- a/EGUI/lab1/blogentry.ui
+++ b/EGUI/lab1/blogentry.ui
@@ -47,6 +47,9 @@
Save Entry
+
+ false
+
-
@@ -56,6 +59,13 @@
+ -
+
+
+ Edit Entry
+
+
+