aboutsummaryrefslogtreecommitdiff
path: root/lib/bookmarks/forms/editbookmarkdialog.cpp
blob: 47aa0b7b0ccf1bb07233aba8ee9d090feb861f34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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;
}