aboutsummaryrefslogtreecommitdiff
path: root/lib/bookmarks/bookmarkswidget.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-01-20 17:10:51 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-01-20 17:10:51 +0100
commit1e8abe4a99236ae7ab1889531660ba7bbfb8aee7 (patch)
treeb8a85ab23e7de39dc4d95e33b4d0dec0c01dc2e7 /lib/bookmarks/bookmarkswidget.cpp
parentAdded result label to search form (diff)
downloadsmolbote-1e8abe4a99236ae7ab1889531660ba7bbfb8aee7.tar.xz
Saner bookmark editing
- Fixed bug with bookmarks in folders getting duplicated
Diffstat (limited to 'lib/bookmarks/bookmarkswidget.cpp')
-rw-r--r--lib/bookmarks/bookmarkswidget.cpp35
1 files changed, 26 insertions, 9 deletions
diff --git a/lib/bookmarks/bookmarkswidget.cpp b/lib/bookmarks/bookmarkswidget.cpp
index e148831..93287c4 100644
--- a/lib/bookmarks/bookmarkswidget.cpp
+++ b/lib/bookmarks/bookmarkswidget.cpp
@@ -20,14 +20,14 @@ BookmarksWidget::BookmarksWidget(const QString &path, QWidget *parent)
ui->setupUi(this);
ui->treeView->header()->setSectionResizeMode(QHeaderView::Stretch);
+ ui->bookmark_groupBox->setVisible(false);
+ ui->folder_groupBox->setVisible(false);
ui->addFolder_toolButton->setIcon(style()->standardPixmap(QStyle::SP_DirIcon));
ui->addBookmark_toolButton->setIcon(style()->standardPixmap(QStyle::SP_FileIcon));
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);
@@ -36,10 +36,7 @@ BookmarksWidget::BookmarksWidget(const QString &path, QWidget *parent)
m_model->expandItems(ui->treeView);
connect(ui->treeView, &QTreeView::activated, this, [this](const QModelIndex &index) {
- if(ui->treeView->isPersistentEditorOpen(index))
- ui->treeView->closePersistentEditor(index);
- else
- emit openUrl(m_model->data(index, BookmarksModel::OpenUrlRole).toUrl());
+ emit openUrl(m_model->data(index, BookmarksModel::OpenUrlRole).toUrl());
});
connect(ui->addBookmark_toolButton, &QToolButton::clicked, this, [this]() {
@@ -51,9 +48,29 @@ BookmarksWidget::BookmarksWidget(const QString &path, QWidget *parent)
m_model->insertItem(BookmarkItem::Folder, idx);
});
- connect(editEntry_shortcut, &QShortcut::activated, this, [this]() {
- QModelIndex idx = ui->treeView->currentIndex();
- ui->treeView->openPersistentEditor(idx);
+ connect(ui->treeView->selectionModel(), &QItemSelectionModel::currentChanged, this, [this](const QModelIndex &current, const QModelIndex &previous) {
+ // save the previous item
+ if(previous.isValid()) {
+ if(m_model->type(previous) == BookmarkItem::Folder) {
+ m_model->setData(previous, ui->folderTitle->text(), BookmarksModel::TitleRole);
+ ui->folder_groupBox->setVisible(false);
+ } else if(m_model->type(previous) == BookmarkItem::Bookmark) {
+ m_model->setData(previous, ui->bookmarkTitle->text(), BookmarksModel::TitleRole);
+ m_model->setData(previous, ui->bookmarkHref->text(), BookmarksModel::OpenUrlRole);
+ ui->bookmark_groupBox->setVisible(false);
+ }
+ }
+
+ if(current.isValid()) {
+ if(m_model->type(current) == BookmarkItem::Folder) {
+ ui->folderTitle->setText(m_model->data(current, BookmarksModel::TitleRole).toString());
+ ui->folder_groupBox->setVisible(true);
+ } else if(m_model->type(current) == BookmarkItem::Bookmark) {
+ ui->bookmarkTitle->setText(m_model->data(current, BookmarksModel::TitleRole).toString());
+ ui->bookmarkHref->setText(m_model->data(current, BookmarksModel::OpenUrlRole).toString());
+ ui->bookmark_groupBox->setVisible(true);
+ }
+ }
});
}