File indexing completed on 2024-04-21 03:41:59

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_DEINFLECTION_H
0012 #define KITEN_DEINFLECTION_H
0013 
0014 #include "dictfile.h"
0015 
0016 class DictQuery;
0017 class EntryEdict;
0018 class EntryList;
0019 class QString;
0020 
0021 class Deinflection
0022 {
0023 public:
0024     explicit Deinflection(const QString &name);
0025 
0026     QString *getDeinflectionLabel();
0027     QString *getWordType();
0028     EntryList *search(const DictQuery &query, const QVector<QString> &preliminaryResults);
0029     bool load();
0030 
0031 private:
0032     struct Conjugation {
0033         // The ending we are replacing
0034         QString ending;
0035         // The replacement (dictionary form) ending
0036         QString replace;
0037         // What this type of replacement is called
0038         QString label;
0039     };
0040 
0041     EntryEdict *makeEntry(const QString &entry);
0042 
0043     static QList<Conjugation> *conjugationList;
0044 
0045     QString m_deinflectionLabel;
0046     QString m_wordType;
0047     const QString m_dictionaryName;
0048 };
0049 
0050 #endif