#ifndef IDICTIONARY_H #define IDICTIONARY_H #include class DicRecord; class Field; class CardPack; class IDictionary { public: static const int AllFields = -1; public: IDictionary(const QString& filePath = ""): filePath(filePath) {} virtual ~IDictionary(); void addRecord(DicRecord* record); void addRecords(const QList& records); QList getRecords() const { return records; } virtual const Field* field( int aIx ) const = 0; virtual const Field* field( const QString aFieldName ) const = 0; virtual int indexOfCardPack( CardPack* aPack ) const = 0; virtual void addCardPack(CardPack* aCardPack) = 0; virtual QFile::FileError saveStudy() { return QFile::NoError; } // Stats int countTodaysAllCards() const; int countTodaysNewCards() const; QString extendImagePaths(QString text) const; QString getImagesPath() const; protected: virtual void notifyRecordsInserted(int /*index*/, int /*num*/) {} private: static QString replaceImagePaths(QString text, const QString& shortDir, const QString& replacingPath); protected: QString filePath; QList records; QList m_cardPacks; }; #endif