/** LICENSE ********************************************************************
**
** smolbote: yet another qute browser
** Copyright (C) 2017 Xian Nox
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program. If not, see .
**
******************************************************************************/
#include "bookmarksdialog.h"
#include "ui_bookmarksdialog.h"
#include
#include "xbel/xbel.h"
#include "mainwindow.h"
BookmarksDialog::BookmarksDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::BookmarksDialog)
{
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()
{
if(ui->treeWidget->topLevelItemCount() > 0) {
xbel->write("bookmarks.xbel");
}
delete xbel;
delete ui;
}
void BookmarksDialog::show(MainWindow *window)
{
w = window;
QDialog::show();
}
void BookmarksDialog::deleteCurrentItem()
{
delete ui->treeWidget->currentItem();
}
void BookmarksDialog::openItem(QTreeWidgetItem *item, int column)
{
Q_UNUSED(column)
if(w) {
w->addNewTab(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));
}