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-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 "../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
24class QAction;
25class QActionGroup;
26class QMenu;
27class QModelIndex;
28class QWidget;
29
30class BtModuleChooserMenu final: public BtMenuView {
31
32 Q_OBJECT
33
34public: // types:
35
41 Q_DECLARE_FLAGS(Flags, Flag)
42
43public: // methods:
44
45 BtModuleChooserMenu(QString const & title,
47 Flags flags,
48 QWidget * parent = nullptr);
49
50 void update(BtModuleList newModulesToUse,
51 CSwordModuleInfo * newSelectedModule,
52 int newButtonIndexIndex,
53 int newLeftLikeModules);
54
56 { return m_moduleType; }
57
59 { return m_selectedModule; }
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 void * const m_sortedModel;
80 Flags const m_flags;
85
86};
87
88Q_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)
void preBuildMenu(QActionGroup *actionGroup) final override
void sigModuleChosen(CSwordModuleInfo *module)
CSwordModuleInfo * m_selectedModule
void setSelectedModule(CSwordModuleInfo *const newSelectedModule) noexcept
CSwordModuleInfo::ModuleType const m_moduleType
CSwordModuleInfo::ModuleType moduleType() const noexcept
int buttonIndex() const noexcept