16#include <QApplication>
19#include <QStandardItem>
20#include <QStandardItemModel>
21#include <QStringLiteral>
25#include "../../backend/btinstallbackend.h"
26#include "../../backend/config/btconfig.h"
27#include "../../backend/drivers/cswordmoduleinfo.h"
28#include "../../backend/managers/cswordbackend.h"
29#include "../../util/btconnect.h"
34#pragma GCC diagnostic push
35#pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
36#include <installmgr.h>
37#pragma GCC diagnostic pop
53 m_model =
new QStandardItemModel(
this);
60 setTitle(QApplication::translate(
"BookshelfWizard",
"Choose Languages"));
61 setSubTitle(QApplication::translate(
"BookshelfWizard",
62 "Choose one or more languages to "
63 "install works from."));
72 QStringList languages;
75 if (languages.isEmpty())
76 languages = QStringList{tr(
"English")};
82 bool scrolledToFirstSelected =
false;
83 for (
int row = 0; row <
m_model->rowCount(); ++row) {
84 QStandardItem *
const item =
m_model->item(row, 0);
85 if (languages.contains(item->text())) {
86 item->setCheckState(Qt::Checked);
88 if (!scrolledToFirstSelected) {
90 scrolledToFirstSelected =
true;
101 std::set<QString> languages;
103 std::unique_ptr<CSwordBackend const>
const backend =
105 for (
auto const * module : backend->moduleList())
106 languages.insert(module->language()->translatedName());
111 for (
auto const & language : languages) {
112 auto *
const item =
new QStandardItem(language);
113 item->setCheckable(
true);
116 if (languages.size() == 1u)
117 m_model->item(0, 0)->setCheckState(Qt::Checked);
121{
return m_model->rowCount() == 1; }
129 QStringList languages;
130 for (
int row = 0; row <
m_model->rowCount(); ++row) {
131 QStandardItem *
const item =
m_model->item(row,0);
132 if (item->checkState() == Qt::Checked)
133 languages << item->text();
BtConfig & btConfig()
This is a shortchand for BtConfig::getInstance().
void initializePage() final override
void initializeLanguages()
int nextId() const final override
bool isComplete() const final override
QListView * m_languagesListView
QStringList selectedLanguages() const
BtBookshelfLanguagesPage(QWidget *parent=nullptr)
QVBoxLayout * m_verticalLayout
QStandardItemModel * m_model
bool skipPage() const noexcept
BtBookshelfWizard & btWizard() const noexcept
QStringList selectedSources() const
T value(QString const &key, T const &defaultValue=T()) const
Returns the settings value for the given global key.
sword::InstallSource source(const QString &name)
std::unique_ptr< CSwordBackend > backend(sword::InstallSource const &is)
QString const LanguagesKey