aboutsummaryrefslogtreecommitdiff
path: root/src/forms/bookmarksdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/forms/bookmarksdialog.cpp')
-rw-r--r--src/forms/bookmarksdialog.cpp26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/forms/bookmarksdialog.cpp b/src/forms/bookmarksdialog.cpp
index c088fd8..becac56 100644
--- a/src/forms/bookmarksdialog.cpp
+++ b/src/forms/bookmarksdialog.cpp
@@ -20,14 +20,17 @@
#include "bookmarksdialog.h"
#include "ui_bookmarksdialog.h"
+#include "browser.h"
#include <QTreeWidget>
-#include "xbel/xbel.h"
-#include "mainwindow.h"
+#include <QDockWidget>
BookmarksDialog::BookmarksDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::BookmarksDialog)
{
+ // make sure this dialog does not get deleted on close
+ setAttribute(Qt::WA_DeleteOnClose, false);
+
ui->setupUi(this);
ui->treeWidget->header()->setSectionResizeMode(QHeaderView::Stretch);
@@ -44,7 +47,7 @@ BookmarksDialog::BookmarksDialog(QWidget *parent) :
connect(ui->deleteItem_toolButton, SIGNAL(clicked(bool)), this, SLOT(deleteCurrentItem()));
xbel = new Xbel(ui->treeWidget);
- xbel->read("bookmarks.xbel");
+ xbel->read(sSettings->value("bookmarks.path").toString());
connect(ui->addFolder_toolButton, &QToolButton::clicked, [this]() {
xbel->addFolder(ui->treeWidget->currentItem());
@@ -59,17 +62,28 @@ BookmarksDialog::BookmarksDialog(QWidget *parent) :
BookmarksDialog::~BookmarksDialog()
{
+ qDebug("Destroying BookmarksManager");
+
if(ui->treeWidget->topLevelItemCount() > 0) {
- xbel->write("bookmarks.xbel");
+ xbel->write(sSettings->value("bookmarks.path").toString());
}
delete xbel;
delete ui;
}
-void BookmarksDialog::show(MainWindow *window)
+void BookmarksDialog::show()
{
- w = window;
+ // show() is called by a QAction in MainWindow
+ w = qobject_cast<MainWindow *>(sender()->parent());
+
+ // dockable widgets
+ QDockWidget *bookmarksDock = new QDockWidget(tr("Bookmarks"), w);
+ bookmarksDock->setWidget(this);
+ bookmarksDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
+ w->addDockWidget(Qt::RightDockWidgetArea, bookmarksDock);
+ bookmarksDock->setFloating(true);
+
QDialog::show();
}