From 579c713959c150a276f42b3f69ccfb89d9e6eebb Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 24 Sep 2018 14:55:35 +0200 Subject: Bookmarks: add BookmarkItem and BookmarkModel - read-only xbel - only enabled in debug build --- lib/bookmarks/forms/editbookmarkdialog.cpp | 45 ++++++++++++ lib/bookmarks/forms/editbookmarkdialog.h | 32 +++++++++ lib/bookmarks/forms/editbookmarkdialog.ui | 108 +++++++++++++++++++++++++++++ 3 files changed, 185 insertions(+) create mode 100644 lib/bookmarks/forms/editbookmarkdialog.cpp create mode 100644 lib/bookmarks/forms/editbookmarkdialog.h create mode 100644 lib/bookmarks/forms/editbookmarkdialog.ui (limited to 'lib/bookmarks/forms') 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; +} diff --git a/lib/bookmarks/forms/editbookmarkdialog.h b/lib/bookmarks/forms/editbookmarkdialog.h new file mode 100644 index 0000000..968b6af --- /dev/null +++ b/lib/bookmarks/forms/editbookmarkdialog.h @@ -0,0 +1,32 @@ +/* + * 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 + */ + +#ifndef SMOLBOTE_EDITBOOKMARKDIALOG_H +#define SMOLBOTE_EDITBOOKMARKDIALOG_H + +#include + +namespace Ui +{ +class EditBookmarkDialog; +} + +class BookmarkModel; +class EditBookmarkDialog : public QDialog +{ + Q_OBJECT + +public: + explicit EditBookmarkDialog(BookmarkModel *model, const QModelIndex &index, QWidget *parent = nullptr); + ~EditBookmarkDialog() override; + +private: + Ui::EditBookmarkDialog *ui; +}; + +#endif // SMOLBOTE_EDITBOOKMARKDIALOG_H diff --git a/lib/bookmarks/forms/editbookmarkdialog.ui b/lib/bookmarks/forms/editbookmarkdialog.ui new file mode 100644 index 0000000..1861fcc --- /dev/null +++ b/lib/bookmarks/forms/editbookmarkdialog.ui @@ -0,0 +1,108 @@ + + + EditBookmarkDialog + + + + 0 + 0 + 262 + 320 + + + + Dialog + + + + + + + + Title + + + + + + + + + + Address + + + + + + + + + + Tags + + + + + + + + + + Description + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close|QDialogButtonBox::Save + + + + + + + + + buttonBox + accepted() + EditBookmarkDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + EditBookmarkDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + -- cgit v1.2.1