File indexing completed on 2023-05-30 09:04:03
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_DICTFILEEDICT_H 0012 #define KITEN_DICTFILEEDICT_H 0013 0014 #include <config-kiten.h> 0015 0016 #include "dictfile.h" 0017 #include "indexededictfile.h" 0018 #include "kiten_export.h" 0019 #include "linearedictfile.h" 0020 0021 #include <QMap> 0022 #include <QStringList> 0023 #include <sys/types.h> 0024 0025 class Deinflection; 0026 class DictQuery; 0027 class DictionaryPreferenceDialog; 0028 class EntryEdict; 0029 class KConfigSkeleton; 0030 class KConfigSkeletonItem; 0031 0032 class KITEN_EXPORT DictFileEdict : public DictFile 0033 { 0034 friend class EntryEdict; 0035 0036 public: 0037 DictFileEdict(); 0038 ~DictFileEdict() override; 0039 0040 EntryList *doSearch(const DictQuery &query) override; 0041 QStringList listDictDisplayOptions(QStringList x) const override; 0042 bool loadDictionary(const QString &file, const QString &name) override; 0043 void loadSettings(); 0044 void loadSettings(KConfigSkeleton *config) override; 0045 DictionaryPreferenceDialog *preferencesWidget(KConfigSkeleton *config, QWidget *parent = nullptr) override; 0046 bool validDictionaryFile(const QString &filename) override; 0047 bool validQuery(const DictQuery &query) override; 0048 0049 static QString *deinflectionLabel; 0050 static QString *wordType; 0051 0052 protected: 0053 virtual QMap<QString, QString> displayOptions() const; 0054 QStringList *loadListType(KConfigSkeletonItem *item, QStringList *list, const QMap<QString, QString> &long2short); 0055 // This is a blatant abuse of protected methods to make the kanji subclass easy 0056 virtual Entry *makeEntry(const QString &entry); 0057 0058 LinearEdictFile m_edictFile; 0059 0060 static QStringList *displayFields; 0061 0062 private: 0063 QMap<QString, QString> loadDisplayOptions() const; 0064 0065 Deinflection *m_deinflection; 0066 bool m_hasDeinflection; 0067 }; 0068 0069 #endif