Fix lupdate issues

Change-Id: I26f08ae82354c178f6d26f9138796328b50bfba8
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Eike Ziller
2020-03-12 13:46:25 +01:00
parent d1daf6a542
commit 9e0009803c
21 changed files with 126 additions and 105 deletions

View File

@@ -58,15 +58,6 @@ public:
static bool operator<(const DocEntry &d1, const DocEntry &d2)
{ return d1.name < d2.name; }
static DocEntry createEntry(const QString &nameSpace, const QString &fileName, bool userManaged)
{
DocEntry result;
result.name = userManaged ? nameSpace : DocSettingsPage::tr("%1 (auto-detected)").arg(nameSpace);
result.fileName = fileName;
result.nameSpace = nameSpace;
return result;
}
class DocModel : public QAbstractListModel
{
public:
@@ -87,6 +78,46 @@ private:
DocEntries m_docEntries;
};
class DocSettingsPageWidget : public Core::IOptionsPageWidget
{
Q_DECLARE_TR_FUNCTIONS(Help::DocSettingsPageWidget)
public:
DocSettingsPageWidget();
private:
void apply() final;
void addDocumentation();
bool eventFilter(QObject *object, QEvent *event) final;
void removeDocumentation(const QList<QModelIndex> &items);
QList<QModelIndex> currentSelection() const;
Ui::DocSettingsPage m_ui;
QString m_recentDialogPath;
using NameSpaceToPathHash = QHash<QString, QString>;
NameSpaceToPathHash m_filesToRegister;
QHash<QString, bool> m_filesToRegisterUserManaged;
NameSpaceToPathHash m_filesToUnregister;
QSortFilterProxyModel m_proxyModel;
DocModel m_model;
};
static DocEntry createEntry(const QString &nameSpace, const QString &fileName, bool userManaged)
{
DocEntry result;
result.name = userManaged ? nameSpace
: DocSettingsPageWidget::tr("%1 (auto-detected)").arg(nameSpace);
result.fileName = fileName;
result.nameSpace = nameSpace;
return result;
}
QVariant DocModel::data(const QModelIndex &index, int role) const
{
QVariant result;
@@ -129,65 +160,43 @@ void DocModel::removeAt(int row)
using namespace Help::Internal;
class DocSettingsPageWidget : public Core::IOptionsPageWidget
DocSettingsPageWidget::DocSettingsPageWidget()
{
Q_DECLARE_TR_FUNCTIONS(Help::DocSettingsPage)
m_ui.setupUi(this);
public:
DocSettingsPageWidget()
{
m_ui.setupUi(this);
const QStringList nameSpaces = HelpManager::registeredNamespaces();
const QSet<QString> userDocumentationPaths = HelpManager::userDocumentationPaths();
const QStringList nameSpaces = HelpManager::registeredNamespaces();
const QSet<QString> userDocumentationPaths = HelpManager::userDocumentationPaths();
DocModel::DocEntries entries;
entries.reserve(nameSpaces.size());
for (const QString &nameSpace : nameSpaces) {
const QString filePath = HelpManager::fileFromNamespace(nameSpace);
bool user = userDocumentationPaths.contains(filePath);
entries.append(createEntry(nameSpace, filePath, user));
m_filesToRegister.insert(nameSpace, filePath);
m_filesToRegisterUserManaged.insert(nameSpace, user);
}
std::stable_sort(entries.begin(), entries.end());
m_model.setEntries(entries);
m_proxyModel.setSourceModel(&m_model);
m_ui.docsListView->setModel(&m_proxyModel);
m_ui.filterLineEdit->setFiltering(true);
connect(m_ui.filterLineEdit, &QLineEdit::textChanged,
&m_proxyModel, &QSortFilterProxyModel::setFilterFixedString);
connect(m_ui.addButton, &QAbstractButton::clicked, this, &DocSettingsPageWidget::addDocumentation);
connect(m_ui.removeButton, &QAbstractButton::clicked, this,
[this] () { removeDocumentation(currentSelection()); });
m_ui.docsListView->installEventFilter(this);
DocModel::DocEntries entries;
entries.reserve(nameSpaces.size());
for (const QString &nameSpace : nameSpaces) {
const QString filePath = HelpManager::fileFromNamespace(nameSpace);
bool user = userDocumentationPaths.contains(filePath);
entries.append(createEntry(nameSpace, filePath, user));
m_filesToRegister.insert(nameSpace, filePath);
m_filesToRegisterUserManaged.insert(nameSpace, user);
}
std::stable_sort(entries.begin(), entries.end());
m_model.setEntries(entries);
private:
void apply() final;
m_proxyModel.setSourceModel(&m_model);
m_ui.docsListView->setModel(&m_proxyModel);
m_ui.filterLineEdit->setFiltering(true);
connect(m_ui.filterLineEdit,
&QLineEdit::textChanged,
&m_proxyModel,
&QSortFilterProxyModel::setFilterFixedString);
void addDocumentation();
connect(m_ui.addButton,
&QAbstractButton::clicked,
this,
&DocSettingsPageWidget::addDocumentation);
connect(m_ui.removeButton, &QAbstractButton::clicked, this, [this]() {
removeDocumentation(currentSelection());
});
bool eventFilter(QObject *object, QEvent *event) final;
void removeDocumentation(const QList<QModelIndex> &items);
QList<QModelIndex> currentSelection() const;
Ui::DocSettingsPage m_ui;
QString m_recentDialogPath;
using NameSpaceToPathHash = QHash<QString, QString>;
NameSpaceToPathHash m_filesToRegister;
QHash<QString, bool> m_filesToRegisterUserManaged;
NameSpaceToPathHash m_filesToUnregister;
QSortFilterProxyModel m_proxyModel;
DocModel m_model;
};
m_ui.docsListView->installEventFilter(this);
}
void DocSettingsPageWidget::addDocumentation()
{