BibleTime
src
frontend
displaywindow
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
24
class
BtBookshelfFilterModel
;
25
class
QAction
;
26
class
QActionGroup;
27
class
QMenu
;
28
class
QModelIndex;
29
class
QWidget
;
30
31
class
BtModuleChooserMenu
final:
public
BtMenuView
{
32
33
Q_OBJECT
34
35
public
:
// types:
36
37
enum
Flag
{
38
DisableNonBiblesOnFirstButton
,
39
DisableSelectedModule
,
40
AddNoneButton
41
};
42
Q_DECLARE_FLAGS(Flags,
Flag
)
43
44
public
:
// methods:
45
46
BtModuleChooserMenu
(QString
const
& title,
47
CSwordModuleInfo::ModuleType
moduleType,
48
Flags flags,
49
QWidget
* parent =
nullptr
);
50
51
void
update
(
BtModuleList
newModulesToUse,
52
CSwordModuleInfo
* newSelectedModule,
53
int
newButtonIndexIndex,
54
int
newLeftLikeModules);
55
56
CSwordModuleInfo
*
selectedModule
() const noexcept
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
65
Q_SIGNALS:
66
67
void
sigModuleChosen
(
CSwordModuleInfo
* module);
68
69
private
:
// methods:
70
71
void
preBuildMenu
(QActionGroup * actionGroup)
final
override
;
72
73
QAction
*
newAction
(
QMenu
* parentMenu,
74
QModelIndex
const
& itemIndex)
final
override
;
75
76
public
:
// fields:
77
78
BtBookshelfFilterModel
*
const
m_filterModel
;
79
Flags
const
m_flags
;
80
BtModuleList
m_newModulesToUse
;
81
CSwordModuleInfo
*
m_selectedModule
=
nullptr
;
82
int
m_buttonIndex
;
83
int
m_leftLikeModules
;
84
85
};
86
87
Q_DECLARE_OPERATORS_FOR_FLAGS(BtModuleChooserMenu::Flags)
BtModuleList
QList< CSwordModuleInfo * > BtModuleList
Definition
btmodulelist.h:20
BtBookshelfFilterModel
Definition
btbookshelffiltermodel.h:24
BtMenuView
Definition
btmenuview.h:47
BtModuleChooserMenu
Definition
btmodulechoosermenu.h:31
BtModuleChooserMenu::selectedModule
CSwordModuleInfo * selectedModule() const noexcept
Definition
btmodulechoosermenu.h:56
BtModuleChooserMenu::newAction
QAction * newAction(QMenu *parentMenu, QModelIndex const &itemIndex) final override
Definition
btmodulechoosermenu.cpp:66
BtModuleChooserMenu::update
void update(BtModuleList newModulesToUse, CSwordModuleInfo *newSelectedModule, int newButtonIndexIndex, int newLeftLikeModules)
Definition
btmodulechoosermenu.cpp:95
BtModuleChooserMenu::m_filterModel
BtBookshelfFilterModel *const m_filterModel
Definition
btmodulechoosermenu.h:78
BtModuleChooserMenu::buttonIcon
QIcon buttonIcon() const
Definition
btmodulechoosermenu.cpp:107
BtModuleChooserMenu::preBuildMenu
void preBuildMenu(QActionGroup *actionGroup) final override
Definition
btmodulechoosermenu.cpp:45
BtModuleChooserMenu::sigModuleChosen
void sigModuleChosen(CSwordModuleInfo *module)
BtModuleChooserMenu::m_flags
Flags const m_flags
Definition
btmodulechoosermenu.h:79
BtModuleChooserMenu::m_leftLikeModules
int m_leftLikeModules
Definition
btmodulechoosermenu.h:83
BtModuleChooserMenu::Flag
Flag
Definition
btmodulechoosermenu.h:37
BtModuleChooserMenu::AddNoneButton
@ AddNoneButton
Definition
btmodulechoosermenu.h:40
BtModuleChooserMenu::DisableSelectedModule
@ DisableSelectedModule
Definition
btmodulechoosermenu.h:39
BtModuleChooserMenu::DisableNonBiblesOnFirstButton
@ DisableNonBiblesOnFirstButton
Definition
btmodulechoosermenu.h:38
BtModuleChooserMenu::m_buttonIndex
int m_buttonIndex
Definition
btmodulechoosermenu.h:82
BtModuleChooserMenu::m_selectedModule
CSwordModuleInfo * m_selectedModule
Definition
btmodulechoosermenu.h:81
BtModuleChooserMenu::m_newModulesToUse
BtModuleList m_newModulesToUse
Definition
btmodulechoosermenu.h:80
BtModuleChooserMenu::setSelectedModule
void setSelectedModule(CSwordModuleInfo *const newSelectedModule) noexcept
Definition
btmodulechoosermenu.cpp:114
BtModuleChooserMenu::buttonIndex
int buttonIndex() const noexcept
Definition
btmodulechoosermenu.h:63
CSwordModuleInfo
Definition
cswordmoduleinfo.h:48
CSwordModuleInfo::ModuleType
ModuleType
Definition
cswordmoduleinfo.h:86
QAction
QMenu
QWidget
Generated by
1.9.8