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