diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-11 00:27:34 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-11 00:27:34 +0100 |
commit | f0e70bb59860c68dd3a2fd5ba286424e681eadc7 (patch) | |
tree | 8d84d5bf0746ca5267843018719096292c58f96d | |
parent | BookmarksModel::insertItem (diff) | |
download | smolbote-f0e70bb59860c68dd3a2fd5ba286424e681eadc7.tar.xz |
Editing bookmark items
-rw-r--r-- | lib/bookmarks/bookmarksmodel.cpp | 3 | ||||
-rw-r--r-- | lib/bookmarks/bookmarkswidget.cpp | 13 | ||||
-rw-r--r-- | lib/bookmarks/bookmarkswidget.h | 3 |
3 files changed, 17 insertions, 2 deletions
diff --git a/lib/bookmarks/bookmarksmodel.cpp b/lib/bookmarks/bookmarksmodel.cpp index 69f6334..e67668f 100644 --- a/lib/bookmarks/bookmarksmodel.cpp +++ b/lib/bookmarks/bookmarksmodel.cpp @@ -220,6 +220,7 @@ bool BookmarksModel::setData(const QModelIndex &index, const QVariant &value, in case BookmarkItem::Folder: if(index.column() == 0) { node->title = value.toString(); + emit dataChanged(index, index); return true; } return false; @@ -227,9 +228,11 @@ bool BookmarksModel::setData(const QModelIndex &index, const QVariant &value, in case BookmarkItem::Bookmark: if(index.column() == 0) { node->title = value.toString(); + emit dataChanged(index, index); return true; } else if(index.column() == 1) { node->href = value.toString(); + emit dataChanged(index, index); return true; } return false; diff --git a/lib/bookmarks/bookmarkswidget.cpp b/lib/bookmarks/bookmarkswidget.cpp index e510218..27f00c3 100644 --- a/lib/bookmarks/bookmarkswidget.cpp +++ b/lib/bookmarks/bookmarkswidget.cpp @@ -26,9 +26,10 @@ BookmarksWidget::BookmarksWidget(const QString &path, QWidget *parent) ui->deleteItem_toolButton->setIcon(style()->standardPixmap(QStyle::SP_TrashIcon)); ui->deleteItem_toolButton->setShortcut(QKeySequence::Delete); + editEntry_shortcut = new QShortcut(QKeySequence("F2"), this); + m_model = new BookmarksModel(style(), this); ui->treeView->setModel(m_model); - //ui->treeView->setEditTriggers(QAbstractItemView::EditKeyPressed); xbel = new Xbel(path); BookmarkItem *rootNode = xbel->read(); @@ -37,7 +38,10 @@ BookmarksWidget::BookmarksWidget(const QString &path, QWidget *parent) //qDebug("Reading bookmarks [%s] %s", qUtf8Printable(m_path), xbel->read(m_path) ? "ok" : "failed"); connect(ui->treeView, &QTreeView::activated, this, [this](const QModelIndex &index) { - emit openUrl(m_model->data(index, BookmarksModel::OpenUrlRole).toUrl()); + if(ui->treeView->isPersistentEditorOpen(index)) + ui->treeView->closePersistentEditor(index); + else + emit openUrl(m_model->data(index, BookmarksModel::OpenUrlRole).toUrl()); }); connect(ui->addBookmark_toolButton, &QToolButton::clicked, this, [this]() { @@ -48,6 +52,11 @@ BookmarksWidget::BookmarksWidget(const QString &path, QWidget *parent) QModelIndex idx = ui->treeView->currentIndex(); m_model->insertItem(BookmarkItem::Folder, idx); }); + + connect(editEntry_shortcut, &QShortcut::activated, this, [this]() { + QModelIndex idx = ui->treeView->currentIndex(); + ui->treeView->openPersistentEditor(idx); + }); } BookmarksWidget::~BookmarksWidget() diff --git a/lib/bookmarks/bookmarkswidget.h b/lib/bookmarks/bookmarkswidget.h index fa830fa..0a44414 100644 --- a/lib/bookmarks/bookmarkswidget.h +++ b/lib/bookmarks/bookmarkswidget.h @@ -11,6 +11,7 @@ #include "bookmarksmodel.h" #include "xbel.h" +#include <QShortcut> #include <QWidget> namespace Ui @@ -41,6 +42,8 @@ private: Ui::BookmarksDialog *ui; BookmarksModel *m_model; Xbel *xbel; + + QShortcut *editEntry_shortcut; }; #endif // BOOKMARKSDIALOG_H |