From 29a46bbf2d36b8abc419348f33aa7f1f91043be5 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Fri, 10 Feb 2017 16:19:21 +0100 Subject: Bookmark improvements Added icons to bookmark tree Bookmarks can now be rearranged Add/remove items from bookmark tree --- src/forms/bookmarksdialog.cpp | 53 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) (limited to 'src/forms/bookmarksdialog.cpp') diff --git a/src/forms/bookmarksdialog.cpp b/src/forms/bookmarksdialog.cpp index bf5a9fc..d61cf18 100644 --- a/src/forms/bookmarksdialog.cpp +++ b/src/forms/bookmarksdialog.cpp @@ -20,17 +20,42 @@ #include "bookmarksdialog.h" #include "ui_bookmarksdialog.h" - +#include #include "xbel/xbel.h" +#include "mainwindow.h" -BookmarksDialog::BookmarksDialog(QWidget *parent) : +BookmarksDialog::BookmarksDialog(MainWindow *parent) : QDialog(parent), ui(new Ui::BookmarksDialog) { + parentWindow = parent; ui->setupUi(this); + ui->treeWidget->header()->setSectionResizeMode(QHeaderView::Stretch); + + QStyle *style = ui->treeWidget->style(); + ui->addFolder_toolButton->setIcon(style->standardPixmap(QStyle::SP_DirIcon)); + ui->addBookmark_toolButton->setIcon(style->standardPixmap(QStyle::SP_FileIcon)); + ui->addSeparator_toolButton->setText("---"); + ui->deleteItem_toolButton->setIcon(style->standardPixmap(QStyle::SP_TrashIcon)); + + connect(ui->treeWidget, SIGNAL(itemSelectionChanged()), this, SLOT(showItemDetails())); + connect(ui->treeWidget, SIGNAL(itemActivated(QTreeWidgetItem*,int)), this, SLOT(openItem(QTreeWidgetItem*,int))); + + ui->deleteItem_toolButton->setShortcut(QKeySequence::Delete); + connect(ui->deleteItem_toolButton, SIGNAL(clicked(bool)), this, SLOT(deleteCurrentItem())); xbel = new Xbel(ui->treeWidget); xbel->read("bookmarks.xbel"); + + connect(ui->addFolder_toolButton, &QToolButton::clicked, [this]() { + xbel->addFolder(ui->treeWidget->currentItem()); + }); + connect(ui->addBookmark_toolButton, &QToolButton::clicked, [this]() { + xbel->addBookmark(ui->treeWidget->currentItem()); + }); + connect(ui->addSeparator_toolButton, &QToolButton::clicked, [this]() { + xbel->addSeparator(ui->treeWidget->currentItem()); + }); } BookmarksDialog::~BookmarksDialog() @@ -40,3 +65,27 @@ BookmarksDialog::~BookmarksDialog() delete xbel; delete ui; } + +void BookmarksDialog::deleteCurrentItem() +{ + delete ui->treeWidget->currentItem(); +} + +void BookmarksDialog::openItem(QTreeWidgetItem *item, int column) +{ + Q_UNUSED(column) + + parentWindow->createNewTab(QUrl::fromUserInput(item->text(1))); +} + +void BookmarksDialog::showItemDetails() +{ + QTreeWidgetItem *item = ui->treeWidget->currentItem(); + if(!item) { + ui->title_lineEdit->setText(""); + ui->href_label->setText(""); + return; + } + ui->title_lineEdit->setText(item->text(0)); + ui->href_lineEdit->setText(item->text(1)); +} -- cgit v1.2.1