File indexing completed on 2024-05-05 07:40:10

0001 /*
0002     This file is part of Kiten, a KDE Japanese Reference Tool
0003     SPDX-FileCopyrightText: 2001 Jason Katz-Brown <jason@katzbrown.com>
0004     SPDX-FileCopyrightText: 2006 Joseph Kerian <jkerian@gmail.com>
0005     SPDX-FileCopyrightText: 2006 Eric Kjeldergaard <kjelderg@gmail.com>
0006     SPDX-FileCopyrightText: 2011 Daniel E. Moctezuma <democtezuma@gmail.com>
0007 
0008     SPDX-License-Identifier: LGPL-2.0-or-later
0009 */
0010 
0011 #ifndef KITEN_DICTFILEKANJIDIC_H
0012 #define KITEN_DICTFILEKANJIDIC_H
0013 
0014 #include "dictfile.h"
0015 
0016 #include "kiten_export.h"
0017 
0018 #include <QStringList>
0019 
0020 class DictQuery;
0021 class Entry;
0022 class EntryList;
0023 class KConfigSkeleton;
0024 class KConfigSkeletonItem;
0025 
0026 class KITEN_EXPORT DictFileKanjidic : public DictFile
0027 {
0028     friend class EntryKanjidic;
0029 
0030 public:
0031     DictFileKanjidic();
0032     ~DictFileKanjidic() override = default;
0033 
0034     QMap<QString, QString> displayOptions() const;
0035     EntryList *doSearch(const DictQuery &query) override;
0036     QStringList dumpDictionary();
0037     QStringList listDictDisplayOptions(QStringList list) const override;
0038     bool loadDictionary(const QString &file, const QString &name) override;
0039     QStringList *loadListType(KConfigSkeletonItem *item, QStringList *list, const QMap<QString, QString> &long2short);
0040     void loadSettings();
0041     void loadSettings(KConfigSkeleton *item) override;
0042     bool validDictionaryFile(const QString &filename) override;
0043     bool validQuery(const DictQuery &query) override;
0044 
0045 protected:
0046     virtual inline Entry *makeEntry(const QString &entry);
0047 
0048     static QStringList *displayFields;
0049 
0050 private:
0051     QMap<QString, QString> loadDisplayOptions() const;
0052 
0053     QStringList m_kanjidic;
0054     bool m_validKanjidic;
0055 };
0056 
0057 #endif