aboutsummaryrefslogtreecommitdiff
path: root/lib/bookmarks/bookmarkswidget.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-10-05 21:07:45 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-10-05 21:07:45 +0200
commita1d164895fac7fd705c8cb37c4c94700be32a0a2 (patch)
tree38320fda6dbe01f209b7fae508b089929be8c665 /lib/bookmarks/bookmarkswidget.cpp
parentFix line endings in appveyor.yml (diff)
downloadsmolbote-a1d164895fac7fd705c8cb37c4c94700be32a0a2.tar.xz
bookmarks: fix new/delete buttons
Diffstat (limited to 'lib/bookmarks/bookmarkswidget.cpp')
-rw-r--r--lib/bookmarks/bookmarkswidget.cpp43
1 files changed, 37 insertions, 6 deletions
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) {