diff options
Diffstat (limited to 'lib/bookmarks/bookmarkswidget.cpp')
-rw-r--r-- | lib/bookmarks/bookmarkswidget.cpp | 35 |
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 ¤t, 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); + } + } }); } |