/*
- * Copyright 2023 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2023-2024 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
*
// Application headers.
#include "structs/BookmarkStruct.h"
+#include "widgets/DraggableTreeView.h"
// Qt toolkit headers.
#include <QDialog>
+#include <QItemSelectionModel>
#include <QStandardItem>
class BookmarksDialog : public QDialog
public:
// The primary constructor.
- explicit BookmarksDialog();
+ BookmarksDialog(QWidget *parentWidgetPointer, QIcon currentWebsiteFavorieIcon, QString currentWebsiteTitle, QString currentWebsiteUrl);
+
+ // The public constants.
+ static const int NAME_COLUMN = 0;
+ static const int URL_COLUMN = 1;
+ static const int DATABASE_ID_COLUMN = 2;
+ static const int DISPLAY_ORDER_COLUMN = 3;
+ static const int IS_FOLDER_COLUMN = 4;
+ static const int FOLDER_ID_COLUMN = 5;
signals:
// The signals.
private Q_SLOTS:
// The private slots.
+ void deleteItems() const;
+ void refreshBookmarks() const;
+ void showAddBookmarkDialog();
+ void showAddFolderDialog();
+ void showEditDialog();
void updateBookmarkFromTree(QStandardItem *modifiedStandardItem);
+ void updateSelection() const;
+
+private:
+ // The private variables.
+ QPushButton *deleteItemsButtonPointer;
+ QPushButton *editButtonPointer;
+ QStandardItemModel *treeModelPointer;
+ QItemSelectionModel *treeSelectionModelPointer;
+ DraggableTreeView *draggableTreeViewPointer;
+ QIcon websiteFavoriteIcon;
+ QString websiteTitle;
+ QString websiteUrl;
+
+ // The private functions.
+ void populateBookmarks() const;
+ void populateSubfolders(QStandardItem *folderItemNamePointer, const double folderId) const;
+ void selectSubfolderContents(const QModelIndex &parentModelIndex) const;
+ void updateUi() const;
};
#endif