Line data Source code
1 : #pragma once 2 : #ifndef FIELD_HPP 3 : #define FIELD_HPP 4 : #include <QSharedPointer> 5 : 6 : #include <QVariant> 7 : #include <QString> 8 : #include <QVector> 9 : #include <QImage> 10 : 11 : #include "object.hpp" 12 : 13 : namespace qtreports 14 : { 15 : namespace detail 16 : { 17 : 18 : /*! @~russian 19 : @brief Класс, реализующий тэг <field> 20 : 21 : Класс, реализующий тэг <field> 22 : */ 23 : class Field : public Object { 24 : 25 : public: 26 : Field(); 27 : ~Field(); 28 : 29 : /*! @~russian 30 : Устанавливает атрибут className 31 : @param[in] name Название класса 32 : */ 33 : void setClassName( const QString & name ); 34 : 35 : /*! @~russian 36 : Возвращает атрибут className. 37 : */ 38 : const QString getClassName() const; 39 : 40 : /*! @~russian 41 : Устанавливает содержимое <field> 42 : @param[in] data Вектор, содержащие данные <field> 43 : */ 44 : void setData( const QVector< QVariant > & data ); 45 : 46 : /*! @~russian 47 : Возвращает содержимое <field> 48 : @param[in] row Номер строки 49 : */ 50 : QString getData( int row ); 51 : 52 : /*! @~russian 53 : Возвращает содержимое <field>. Шаблонный вариант. 54 : @param[in] row Номер строки 55 : */ 56 : template < typename T1 > 57 60 : const T1 getData( int row ) 58 : { 59 60 : return m_data.value( row ).value< T1 >(); 60 : } 61 : 62 : const QVariant getDataVar(int row); 63 : 64 : void setDataVar(int row, const QVariant & value); 65 : 66 : /*! @~russian 67 : Получить количество строк в <field> 68 : */ 69 : int getRowCount(); 70 : 71 : private: 72 : QString m_className; 73 : QVector< QVariant > m_data; 74 : 75 : }; 76 : 77 : typedef QSharedPointer< Field > FieldPtr; 78 : } 79 : } 80 : 81 : #endif // FIELD_HPP