BibleTime
cbookmarkindex.h
Go to the documentation of this file.
1/*********
2*
3* In the name of the Father, and of the Son, and of the Holy Spirit.
4*
5* This file is part of BibleTime's source code, https://bibletime.info/
6*
7* Copyright 1999-2025 by the BibleTime developers.
8* The BibleTime source code is licensed under the GNU General Public License
9* version 2.0.
10*
11**********/
12
13#pragma once
14
15#include <QTimer>
16#include <QToolTip>
17#include <QTreeView>
18#include "../../backend/rendering/btinforendering.h"
19
20
21class BTMimeData;
24class QAction;
25class QDragLeaveEvent;
26class QDragMoveEvent;
27class QDropEvent;
28class QMenu;
29class QMouseEvent;
30class QPaintEvent;
31
32/**
33* The widget which manages all bookmarks.
34*
35* \author The BibleTime team
36*/
38
39 Q_OBJECT
40
41public: // types:
42
60
61public: // methods:
62
63 CBookmarkIndex(QWidget * const parent = nullptr);
64
65Q_SIGNALS:
66
67 /** \brief Emitted when a module should be opened. */
68 void createReadDisplayWindow(QList<CSwordModuleInfo *>, QString const &);
69 void magInfoProvided(Rendering::InfoType const, QString const & data);
70
71protected: // methods:
72
74
75 void mouseReleaseEvent(QMouseEvent * event) override;
76 void paintEvent(QPaintEvent * event) override;
77 void dragEnterEvent(QDragEnterEvent * event) override;
78 void dragMoveEvent(QDragMoveEvent * event) override;
79 void dropEvent(QDropEvent * event) override;
80 void dragLeaveEvent(QDragLeaveEvent * event) override;
81 void startDrag(Qt::DropActions supportedActions) override;
82 void mouseMoveEvent(QMouseEvent * event) override;
83 void leaveEvent(QEvent * event) override;
84
85private: // methods:
86
87 void deleteEntries();
88 bool enableAction(QModelIndex const & index,
89 MenuAction const type) const;
90
91 bool hasBookmarksRecursively(QModelIndexList selected) const;
92
93 void showExtraItem();
94 void hideExtraItem();
95
96private: // fields:
97
99
106 QPersistentModelIndex m_extraItem;
107
108 /** Pointer to bookmarks model, added for convenience. */
110
111};
void createReadDisplayWindow(QList< CSwordModuleInfo * >, QString const &)
Emitted when a module should be opened.
void startDrag(Qt::DropActions supportedActions) override
QPoint m_dragMovementPosition
BtBookmarksModel * m_bookmarksModel
void mouseReleaseEvent(QMouseEvent *event) override
void leaveEvent(QEvent *event) override
QMimeData * dragObject()
int m_mouseReleaseEventModifiers
QPoint m_dragStartPosition
void dragEnterEvent(QDragEnterEvent *event) override
void mouseMoveEvent(QMouseEvent *event) override
void magInfoProvided(Rendering::InfoType const, QString const &data)
QModelIndex m_previousEventItem
void paintEvent(QPaintEvent *event) override
QAction * m_actions[ActionCount]
void dragLeaveEvent(QDragLeaveEvent *event) override
void dragMoveEvent(QDragMoveEvent *event) override
bool hasBookmarksRecursively(QModelIndexList selected) const
QPersistentModelIndex m_extraItem
void dropEvent(QDropEvent *event) override
bool enableAction(QModelIndex const &index, MenuAction const type) const