00001 #ifndef DATASFORMAT_H 00002 #define DATASFORMAT_H 00003 #include <QVariant> 00004 #include <QObject> 00005 00006 00016 class Datas 00017 { 00018 public: 00020 Datas() 00021 { 00022 m_dim = 0; 00023 m_id = NULL; 00024 datas = NULL; 00025 } 00027 Datas(int n) 00028 { 00029 m_dim = n; 00030 m_id = new int[n]; 00031 datas = new QVariant[n]; 00032 } 00034 Datas(const Datas& d) 00035 { 00036 m_dim = d.m_dim; 00037 m_id = new int[m_dim]; 00038 datas = new QVariant[m_dim]; 00039 for(int i =0; i < m_dim; i++) 00040 { 00041 m_id[i] = d.m_id[i]; 00042 datas[i] = d.datas[i]; 00043 } 00044 } 00046 ~Datas() 00047 { 00048 delete[] m_id; 00049 delete[] datas; 00050 } 00051 00053 void clear() 00054 { 00055 for(int i =0; i < m_dim; i++) 00056 { 00057 m_id[i] = 0; 00058 datas[i] = QVariant(); 00059 } 00060 } 00061 00063 int dim() { return m_dim; } 00065 QVariant& operator[](int i) { return datas[i]; } 00067 QVariant at(int i) const { return datas[i]; } 00069 int& id(int i) { return m_id[i]; } 00070 00071 protected: 00073 int m_dim; 00075 int *m_id; 00077 QVariant *datas; 00078 }; 00079 00087 class DatasAlbum : public Datas 00088 { 00089 public: 00090 DatasAlbum() : Datas(6) {} 00091 static int Dim() { return 6;} 00092 static DatasAlbum titels() 00093 { 00094 DatasAlbum titels; 00095 titels[0] = QObject::tr("Titre"); // id 00096 titels[1] = QObject::tr("Vol."); 00097 titels[2] = QObject::tr("Serie"); // id 00098 titels[3] = QObject::tr("Editeur"); // id 00099 titels[4] = QObject::tr("Emplacement"); 00100 titels[5] = QObject::tr("Cote"); // id 00101 //titels[6] = QObject::tr("Image ?"); 00102 return titels; 00103 } 00104 QVariant& album() { return datas[0]; } 00105 QVariant& tome() { return datas[1]; } 00106 QVariant& serie() { return datas[2]; } 00107 QVariant& editeur() { return datas[3]; } 00108 QVariant& emplacement() { return datas[4]; } 00109 QVariant& cote() { return datas[5]; } 00110 //QVariant& image() { return datas[6]; } 00111 00112 int& albumId() { return m_id[0]; } 00113 int& serieId() { return m_id[2]; } 00114 int& editeurId() { return m_id[3]; } 00115 int& coteId() { return m_id[5]; } 00116 }; 00117 00123 class DatasSerie : public Datas 00124 { 00125 public: 00126 DatasSerie() : Datas(6) {} 00127 static int Dim() { return 6;} 00128 static DatasSerie titels() 00129 { 00130 DatasSerie titels; 00131 titels[0] = QObject::tr("Nom"); // id 00132 titels[1] = QObject::tr("Genre"); 00133 titels[2] = QObject::tr("Etat a la BDBDEC"); 00134 titels[3] = QObject::tr("Etat chez l'editeur"); 00135 titels[4] = QObject::tr("Type"); 00136 titels[5] = QObject::tr("Nb tomes"); 00137 return titels; 00138 } 00139 QVariant& nom() { return datas[0]; } 00140 QVariant& genre() { return datas[1]; } 00141 QVariant& etatBDBDEC() { return datas[2]; } 00142 QVariant& etatEditeur() { return datas[3]; } 00143 QVariant& type() { return datas[4]; } 00144 QVariant& nbrTomes() { return datas[5]; } 00145 00146 int& id() { return m_id[0]; } 00147 }; 00148 00154 class DatasAuthor : public Datas 00155 { 00156 public: 00157 DatasAuthor() : Datas(1) {} 00158 static int Dim() { return 1;} 00159 static DatasAuthor titels() 00160 { 00161 DatasAuthor titels; 00162 titels[0] = QObject::tr("Nom"); // id 00163 return titels; 00164 } 00165 QVariant& nom() { return datas[0]; } 00166 int& id() { return m_id[0]; } 00167 }; 00168 00174 class DatasPublisher : public Datas 00175 { 00176 public: 00177 DatasPublisher() : Datas(1) {} 00178 static int Dim() { return 1;} 00179 static DatasPublisher titels() 00180 { 00181 DatasPublisher titels; 00182 titels[0] = QObject::tr("Editeur"); // id 00183 return titels; 00184 } 00185 QVariant& nom() { return datas[0]; } 00186 int& id() { return m_id[0]; } 00187 }; 00188 00194 class DatasCote : public Datas 00195 { 00196 public: 00197 DatasCote() : Datas(1) {} 00198 static int Dim() { return 1;} 00199 static DatasCote titels() 00200 { 00201 DatasCote titels; 00202 titels[0] = QObject::tr("Cote"); // id 00203 return titels; 00204 } 00205 QVariant& nom() { return datas[0]; } 00206 int& id() { return m_id[0]; } 00207 }; 00208 00214 class DatasAlbumBy : public Datas 00215 { 00216 public: 00217 DatasAlbumBy() : Datas(3) {} 00218 static int Dim() { return 3;} 00219 static DatasAlbumBy titels() 00220 { 00221 DatasAlbumBy titels; 00222 titels[0] = QObject::tr("Titre de l'album"); // id 00223 titels[1] = QObject::tr("Nom de la serie"); // id 00224 titels[2] = QObject::tr("Tome"); 00225 return titels; 00226 } 00227 QVariant& album() { return datas[0]; } 00228 QVariant& serie() { return datas[1]; } 00229 QVariant& tome() { return datas[2]; } 00230 00231 int& albumId() { return m_id[0]; } 00232 int& serieId() { return m_id[1]; } 00233 }; 00234 00235 #endif // DATASFORMAT_H
1.7.1