From a1d164895fac7fd705c8cb37c4c94700be32a0a2 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Fri, 5 Oct 2018 21:07:45 +0200 Subject: bookmarks: fix new/delete buttons --- lib/bookmarks/bookmarkswidget.cpp | 43 +++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) (limited to 'lib/bookmarks/bookmarkswidget.cpp') diff --git a/lib/bookmarks/bookmarkswidget.cpp b/lib/bookmarks/bookmarkswidget.cpp index 4fa42eb..1a4552a 100644 --- a/lib/bookmarks/bookmarkswidget.cpp +++ b/lib/bookmarks/bookmarkswidget.cpp @@ -7,8 +7,8 @@ */ #include "bookmarkswidget.h" -#include "bookmarkitem.h" -#include "bookmarkmodel.h" +#include "model/bookmarkitem.h" +#include "model/bookmarkmodel.h" #include "forms/editbookmarkdialog.h" #include "ui_bookmarksform.h" #include "xbel.h" @@ -56,16 +56,39 @@ BookmarksWidget::BookmarksWidget(const QString &path, QWidget *parent) expandChildren(ui->treeView, model, QModelIndex()); + // item activated connect(ui->treeView, &QTreeView::activated, this, [this](const QModelIndex &index) { if(index.column() == 1) emit openUrl(index.data(Qt::DisplayRole).toUrl()); else { - auto *dlg = new EditBookmarkDialog(model, index, this); - if(dlg->exec() == QDialog::Accepted) { - m_isChanged = true; - } + editBookmark(index); } }); + + // addBookmark + connect(ui->addBookmark_toolButton, &QToolButton::clicked, this, [this]() { + const QModelIndex idx = model->parentFolder(ui->treeView->currentIndex()); + const QModelIndex childIdx = model->appendBookmark(tr("Title"), QString(), idx); + ui->treeView->setCurrentIndex(childIdx); + editBookmark(childIdx); + m_isChanged = true; + }); + + // addFolder + connect(ui->addFolder_toolButton, &QToolButton::clicked, this, [this]() { + const QModelIndex idx = model->parentFolder(ui->treeView->currentIndex()); + const QModelIndex childIdx = model->appendFolder(tr("Title"), idx); + ui->treeView->setCurrentIndex(childIdx); + editBookmark(childIdx); + m_isChanged = true; + }); + + // deleteItem + connect(ui->deleteItem_toolButton, &QToolButton::clicked, this, [this]() { + const QModelIndex idx = ui->treeView->currentIndex(); + if(model->removeRow(idx.row(), idx.parent())) + m_isChanged = true; + }); } BookmarksWidget::~BookmarksWidget() @@ -73,6 +96,14 @@ BookmarksWidget::~BookmarksWidget() delete ui; } + +void BookmarksWidget::editBookmark(const QModelIndex &index) +{ + auto *dlg = new EditBookmarkDialog(model, index, this); + if(dlg->exec() == QDialog::Accepted) + m_isChanged = true; +} + void BookmarksWidget::save() { if(!m_isChanged) { -- cgit v1.2.1