aboutsummaryrefslogtreecommitdiff
path: root/lib/bookmarks/forms/editbookmarkdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bookmarks/forms/editbookmarkdialog.cpp')
-rw-r--r--lib/bookmarks/forms/editbookmarkdialog.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/bookmarks/forms/editbookmarkdialog.cpp b/lib/bookmarks/forms/editbookmarkdialog.cpp
new file mode 100644
index 0000000..47aa0b7
--- /dev/null
+++ b/lib/bookmarks/forms/editbookmarkdialog.cpp
@@ -0,0 +1,45 @@
+/*
+ * This file is part of smolbote. It's copyrighted by the contributors recorded
+ * in the version control history of the file, available from its original
+ * location: https://neueland.iserlohn-fortress.net/smolbote.hg
+ *
+ * SPDX-License-Identifier: GPL-3.0
+ */
+
+#include "editbookmarkdialog.h"
+#include "../bookmarkitem.h"
+#include "../bookmarkmodel.h"
+#include "ui_editbookmarkdialog.h"
+
+EditBookmarkDialog::EditBookmarkDialog(BookmarkModel *model, const QModelIndex &index, QWidget *parent)
+ : QDialog(parent)
+ , ui(new Ui::EditBookmarkDialog)
+{
+ ui->setupUi(this);
+ setAttribute(Qt::WA_DeleteOnClose, true);
+
+ ui->title->setText(model->data(index, BookmarkItem::Title, Qt::DisplayRole).toString());
+ connect(ui->title, &QLineEdit::editingFinished, this, [this, model, index]() {
+ model->setData(index, ui->title->text(), BookmarkItem::Title, Qt::DisplayRole);
+ });
+
+ ui->address->setText(model->data(index, BookmarkItem::Href, Qt::DisplayRole).toString());
+ connect(ui->address, &QLineEdit::editingFinished, this, [this, model, index]() {
+ model->setData(index, ui->address->text(), BookmarkItem::Href, Qt::DisplayRole);
+ });
+
+ ui->tags->setText(model->data(index, BookmarkItem::Tags, Qt::DisplayRole).toStringList().join(", "));
+ connect(ui->tags, &QLineEdit::editingFinished, this, [this, model, index]() {
+ model->setData(index, ui->tags->text().split(", "), BookmarkItem::Tags, Qt::DisplayRole);
+ });
+
+ ui->description->setPlainText(model->data(index, BookmarkItem::Description, Qt::DisplayRole).toString());
+ connect(ui->description, &QPlainTextEdit::textChanged, this, [this, model, index]() {
+ model->setData(index, ui->description->toPlainText(), BookmarkItem::Description, Qt::DisplayRole);
+ });
+}
+
+EditBookmarkDialog::~EditBookmarkDialog()
+{
+ delete ui;
+}