diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-02-10 16:19:21 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-02-10 16:19:21 +0100 |
commit | 29a46bbf2d36b8abc419348f33aa7f1f91043be5 (patch) | |
tree | 5151e249cde21f4d5cbcc564c18276a39c9a4ea5 /src/forms/bookmarksdialog.cpp | |
parent | Added git flag in qbs (#9) (diff) | |
download | smolbote-29a46bbf2d36b8abc419348f33aa7f1f91043be5.tar.xz |
Bookmark improvements
Added icons to bookmark tree
Bookmarks can now be rearranged
Add/remove items from bookmark tree
Diffstat (limited to 'src/forms/bookmarksdialog.cpp')
-rw-r--r-- | src/forms/bookmarksdialog.cpp | 53 |
1 files changed, 51 insertions, 2 deletions
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 <QTreeWidget> #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)); +} |