File indexing completed on 2024-04-14 03:49:04

0001 /*
0002     SPDX-FileCopyrightText: 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef VOCABULARYMIMEDATA_H
0007 #define VOCABULARYMIMEDATA_H
0008 
0009 #include <KEduVocExpression>
0010 #include <KEduVocWordtype>
0011 #include <QMimeData>
0012 
0013 class KEduVocTranslation;
0014 
0015 class VocabularyMimeData : public QMimeData
0016 {
0017     Q_OBJECT
0018 public:
0019     struct MimeExpression {
0020         struct WordTypeStrings {
0021             QStringList wordType; // better have this hierarchical
0022             KEduVocWordFlags grammarType;
0023         };
0024 
0025         // all data as deep copy
0026         KEduVocExpression expression;
0027         // the word types cannot be copied, thus per translation (int) save parent types and the type
0028         QMap<int, WordTypeStrings> wordTypes;
0029     };
0030 
0031     void setTranslations(const QList<KEduVocTranslation *> &translation);
0032     QList<KEduVocTranslation *> translationList() const;
0033     QList<VocabularyMimeData::MimeExpression> expressionList() const;
0034 
0035     QVariant retrieveData(const QString &mimeType, QMetaType type) const override;
0036 
0037     QStringList formats() const override;
0038 
0039 private:
0040     QList<KEduVocTranslation *> m_translations;
0041     QList<MimeExpression> m_expressions;
0042     QString m_text;
0043 };
0044 
0045 #endif