aboutsummaryrefslogtreecommitdiff
path: root/src/forms/bookmarksdialog.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2017-02-10 16:19:21 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2017-02-10 16:19:21 +0100
commit29a46bbf2d36b8abc419348f33aa7f1f91043be5 (patch)
tree5151e249cde21f4d5cbcc564c18276a39c9a4ea5 /src/forms/bookmarksdialog.cpp
parentAdded git flag in qbs (#9) (diff)
downloadsmolbote-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.cpp53
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));
+}