diff options
Diffstat (limited to 'src/assistant/assistant/preferencesdialog.h')
-rw-r--r-- | src/assistant/assistant/preferencesdialog.h | 64 |
1 files changed, 45 insertions, 19 deletions
diff --git a/src/assistant/assistant/preferencesdialog.h b/src/assistant/assistant/preferencesdialog.h index 4842dcbfb..1ff39e326 100644 --- a/src/assistant/assistant/preferencesdialog.h +++ b/src/assistant/assistant/preferencesdialog.h @@ -29,16 +29,31 @@ #ifndef PREFERENCESDIALOG_H #define PREFERENCESDIALOG_H +#include <QtCore/QVersionNumber> #include <QtWidgets/QDialog> +#include <QtHelp/QHelpFilterData> #include "ui_preferencesdialog.h" QT_BEGIN_NAMESPACE class FontPanel; class HelpEngineWrapper; -class RegisteredDocsModel; class QFileSystemWatcher; -class QSortFilterProxyModel; +class QVersionNumber; + +struct FilterSetup { + QMap<QString, QString> m_namespaceToComponent; + QMap<QString, QStringList> m_componentToNamespace; + + QMap<QString, QVersionNumber> m_namespaceToVersion; + QMap<QVersionNumber, QStringList> m_versionToNamespace; + + QMap<QString, QString> m_namespaceToFileName; + QMap<QString, QString> m_fileNameToNamespace; + + QMap<QString, QHelpFilterData> m_filterToData; + QString m_currentFilter; +}; class PreferencesDialog : public QDialog { @@ -46,17 +61,21 @@ class PreferencesDialog : public QDialog public: PreferencesDialog(QWidget *parent = nullptr); - ~PreferencesDialog() override; - - void showDialog(); private slots: - void updateAttributes(QListWidgetItem *item); - void updateFilterMap(); - void addFilter(); - void removeFilter(); - void addDocumentationLocal(); + void filterSelected(QListWidgetItem *item); + void componentsChanged(const QStringList &components); + void versionsChanged(const QStringList &versions); + void addFilterClicked(); + void renameFilterClicked(); + void removeFilterClicked(); + void addFilter(const QString &filterName, + const QHelpFilterData &filterData = QHelpFilterData()); + void removeFilter(const QString &filterName); + void addDocumentation(); void removeDocumentation(); + void okClicked(); + void applyClicked(); void applyChanges(); void appFontSettingToggled(bool on); void appFontSettingChanged(int index); @@ -73,20 +92,27 @@ signals: void updateUserInterface(); private: + QString suggestedNewFilterName(const QString &initialFilterName) const; + QString getUniqueFilterName(const QString &windowTitle, + const QString &initialFilterName = QString()); void updateFilterPage(); + void updateCurrentFilter(); + void updateDocumentationPage(); void updateFontSettingsPage(); void updateOptionsPage(); - QList<int> currentRegisteredDocsSelection() const; + FilterSetup readOriginalSetup() const; Ui::PreferencesDialogClass m_ui; - QMap<QString, QStringList> m_filterMapBackup; - QMap<QString, QStringList> m_filterMap; - QStringList m_removedFilters; - QStringList m_docsBackup; - RegisteredDocsModel *m_registeredDocsModel; - QSortFilterProxyModel *m_registereredDocsFilterModel; - QStringList m_regDocs; - QStringList m_unregDocs; + + FilterSetup m_originalSetup; + FilterSetup m_currentSetup; + + QMap<QString, QListWidgetItem *> m_namespaceToItem; + QHash<QListWidgetItem *, QString> m_itemToNamespace; + + QMap<QString, QListWidgetItem *> m_filterToItem; + QHash<QListWidgetItem *, QString> m_itemToFilter; + FontPanel *m_appFontPanel; FontPanel *m_browserFontPanel; bool m_appFontChanged; |