aboutsummaryrefslogtreecommitdiff
path: root/src/lib/bookmarks/bookmarkswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/bookmarks/bookmarkswidget.cpp')
-rw-r--r--src/lib/bookmarks/bookmarkswidget.cpp48
1 files changed, 35 insertions, 13 deletions
diff --git a/src/lib/bookmarks/bookmarkswidget.cpp b/src/lib/bookmarks/bookmarkswidget.cpp
index d42732d..ce1e855 100644
--- a/src/lib/bookmarks/bookmarkswidget.cpp
+++ b/src/lib/bookmarks/bookmarkswidget.cpp
@@ -25,18 +25,16 @@ BookmarksWidget::BookmarksWidget(const QString &path, QWidget *parent) :
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()));
m_path = path;
xbel = new Xbel(ui->treeWidget);
- xbel->read(m_path);
+ qDebug("Reading bookmarks [%s] %s", qUtf8Printable(m_path), xbel->read(m_path) ? "ok" : "failed");
connect(ui->addFolder_toolButton, &QToolButton::clicked, this, [&]() {
xbel->addFolder(ui->treeWidget->currentItem());
@@ -44,26 +42,50 @@ BookmarksWidget::BookmarksWidget(const QString &path, QWidget *parent) :
connect(ui->addBookmark_toolButton, &QToolButton::clicked, this, [&]() {
xbel->addBookmark(ui->treeWidget->currentItem());
});
- connect(ui->addSeparator_toolButton, &QToolButton::clicked, this, [&]() {
- xbel->addSeparator(ui->treeWidget->currentItem());
+ connect(ui->deleteItem_toolButton, &QToolButton::clicked, this, [&]() {
+ delete ui->treeWidget->currentItem();
+ });
+
+ // editing bookmarks
+ connect(ui->title_lineEdit, &QLineEdit::returnPressed, this, [&]() {
+ ui->treeWidget->currentItem()->setText(0, ui->title_lineEdit->text());
+ });
+ connect(ui->href_lineEdit, &QLineEdit::returnPressed, this, [&]() {
+ ui->treeWidget->currentItem()->setText(1, ui->href_lineEdit->text());
});
}
BookmarksWidget::~BookmarksWidget()
{
- qDebug("Destroying BookmarksManager");
-
- if(ui->treeWidget->topLevelItemCount() > 0) {
- xbel->write(m_path);
- }
-
delete xbel;
delete ui;
}
-void BookmarksWidget::deleteCurrentItem()
+void BookmarksWidget::save()
+{
+ qDebug("Writing bookmarks [%s] %s", qUtf8Printable(m_path), xbel->write(m_path) ? "ok" : "failed");
+}
+
+QStringList BookmarksWidget::bookmarksFor(const QString &term)
+{
+ QStringList ret;
+ for(int i = 0; i < ui->treeWidget->topLevelItemCount(); ++i) {
+ ret += searchItem(ui->treeWidget->topLevelItem(i), term);
+ }
+ return ret;
+}
+
+QStringList BookmarksWidget::searchItem(QTreeWidgetItem *item, const QString &term)
{
- delete ui->treeWidget->currentItem();
+ if(item->text(1).contains(term)) {
+ return { item->text(1) };
+ }
+
+ QStringList ret;
+ for(int i = 0; i < item->childCount(); ++i) {
+ ret += searchItem(item->child(i), term);
+ }
+ return ret;
}
void BookmarksWidget::openItem(QTreeWidgetItem *item, int column)