20#include <QtAlgorithms>
24#include "../../backend/config/btconfig.h"
25#include "../../backend/drivers/btmodulelist.h"
26#include "../../backend/drivers/cswordbookmoduleinfo.h"
27#include "../../backend/drivers/cswordmoduleinfo.h"
28#include "../../backend/keys/cswordkey.h"
29#include "../../backend/keys/cswordtreekey.h"
30#include "../../util/btassert.h"
31#include "../../util/btconnect.h"
35#define ID_PROPERTY_NAME "CBookKeyChooser_ID"
61 if (oldKey.isEmpty()) {
69 if (
m_key && !oldKey.isEmpty())
70 siblings = oldKey.split(
'/', Qt::SkipEmptyParts);
78 int index = (depth == 0) ? -1 : 0;
105 for (; depth <
m_modules.first()->depth(); ++depth) {
108 chooser->
reset(0, 0,
false);
111 if (oldKey.isEmpty()) {
134 for (
auto const *
const m : modules)
143 m_layout->setContentsMargins(0, 0, 0, 0);
149 for (
int i = 0; i <
m_modules.first()->depth(); ++i) {
156 int totalWidth = 200;
165 int maxWidth =
static_cast<int>(
static_cast<float>(totalWidth)
168 w->
comboBox().setMaximumWidth(maxWidth);
186 for (
int i = 0; i < count; i++) {
190 QWidget::setTabOrder(chooser_prev, chooser);
192 chooser_prev = chooser;
194 QWidget::setTabOrder(chooser,
nullptr);
207 w->comboBox().setFont(font);
218 const int currentItem)
229 items.append(QString());
236 chooserWidget->
reset(items, currentItem,
false);
246 for (
int i = 0; i < max; i++) {
249 const QString currentText = chooser->
comboBox().currentText();
250 if (currentText.isEmpty())
253 items.append(currentText);
BtConfig & btConfig()
This is a shortchand for BtConfig::getInstance().
QList< CSwordModuleInfo const * > BtConstModuleList
FontSettingsPair getFontForLanguage(Language const &language)
Get font for a language.
void refreshContent() final override
void setupCombo(QString const &key, int const depth, int const currentItem)
CSwordKey * key() final override
CBookKeyChooser(BtConstModuleList const &modules, CSwordKey *key=nullptr, QWidget *parent=nullptr)
QList< CKeyChooserWidget * > m_chooserWidgets
void keyChooserChanged(int)
A keychooser changed. Update and emit a signal if necessary.
void setModules(BtConstModuleList const &modules, bool refresh=false) final override
void setKey(CSwordKey *key) final override
QList< CSwordBookModuleInfo const * > m_modules
void updateKey(CSwordKey *key) final override
Updates the keychoosers for the given key but emit no signal.
void keyChanged(CSwordKey *newKey)
Class for generic book support.
CSwordKey implementation for Sword's TreeKey.
bool positionToFirstChild()
bool positionToNextSibling()
QString getLocalNameUnicode()
QString key() const final override
bool setKey(const QString &key) final override
void setOffset(Offset value)