BibleTime
btmodulechoosermenu.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-2026 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 "../btmenuview.h"
16
17#include <QFlags>
18#include <QObject>
19#include <QString>
20#include "../../backend/drivers/cswordmoduleinfo.h"
21#include "../../backend/drivers/btmodulelist.h"
22
23
25class QAction;
26class QActionGroup;
27class QMenu;
28class QModelIndex;
29class QWidget;
30
31class BtModuleChooserMenu final: public BtMenuView {
32
33 Q_OBJECT
34
35public: // types:
36
42 Q_DECLARE_FLAGS(Flags, Flag)
43
44public: // methods:
45
46 BtModuleChooserMenu(QString const & title,
48 Flags flags,
49 QWidget * parent = nullptr);
50
51 void update(BtModuleList newModulesToUse,
52 CSwordModuleInfo * newSelectedModule,
53 int newButtonIndexIndex,
54 int newLeftLikeModules);
55
57 { return m_selectedModule; }
58
59 QIcon buttonIcon() const;
60
61 void setSelectedModule(CSwordModuleInfo * const newSelectedModule) noexcept;
62
63 int buttonIndex() const noexcept { return m_buttonIndex; }
64
65Q_SIGNALS:
66
68
69private: // methods:
70
71 void preBuildMenu(QActionGroup * actionGroup) final override;
72
73 QAction * newAction(QMenu * parentMenu,
74 QModelIndex const & itemIndex) final override;
75
76public: // fields:
77
79 Flags const m_flags;
84
85};
86
87Q_DECLARE_OPERATORS_FOR_FLAGS(BtModuleChooserMenu::Flags)
QList< CSwordModuleInfo * > BtModuleList
CSwordModuleInfo * selectedModule() const noexcept
QAction * newAction(QMenu *parentMenu, QModelIndex const &itemIndex) final override
void update(BtModuleList newModulesToUse, CSwordModuleInfo *newSelectedModule, int newButtonIndexIndex, int newLeftLikeModules)
BtBookshelfFilterModel *const m_filterModel
void preBuildMenu(QActionGroup *actionGroup) final override
void sigModuleChosen(CSwordModuleInfo *module)
CSwordModuleInfo * m_selectedModule
void setSelectedModule(CSwordModuleInfo *const newSelectedModule) noexcept
int buttonIndex() const noexcept