]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/dialogs/BookmarksDialog.h
Move the Settings Dialog to its own class. https://redmine.stoutner.com/issues/1151
[PrivacyBrowserPC.git] / src / dialogs / BookmarksDialog.h
index 3e2713e4c39ee974944146a6d3ec7d683bbfbaa8..0df090333a48033842db0375c42522bcd1566aa4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
@@ -34,7 +36,15 @@ 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.
@@ -42,6 +52,29 @@ 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