#ifndef PRODUITITEM_H #define PRODUITITEM_H #include #include #include #include #include #include #include "infosproduitdialog.h" namespace Ui { class ProduitItem; } struct ProduitInfo { QString nomProduit; QDate dateAchat, dateFinGarantie; QPixmap image; qint32 indexMagasin; bool enSAV; QHash factures, garanties; }; QDataStream &operator <<(QDataStream &out, const ProduitInfo &prod); QDataStream &operator >>(QDataStream &in, ProduitInfo &prod); class ProduitItem : public QWidget { Q_OBJECT public: explicit ProduitItem(QWidget *parent, QString nomProduit, QDate dateAchat, QDate dateFinGarantie, QPixmap image = QPixmap(":/images/no-picture.jpg"), int magasin = 0, bool enSAV = false, QHash factures = QHash(), QHash garanties = QHash()); explicit ProduitItem(); // Pour la sérialisation ProduitInfo getProduitInfo(); // Getters QPixmap getImage(); // Setters void setNomProduit(QString nomProduit); void setDateAchat(QDate dateAchat); void setDateFinGarantie(QDate dateFinGarantie); void setImage(QPixmap image); void setMagasin(int index); // le QString ne sert qu'à l'affichage, c'est l'index qui est utilisé par la boîte de dialogue void setEnSAV(bool y); void setFactures(QHash factures); void setGaranties(QHash garanties); void updateDescription(); void openDialog(bool deleteOnCancel = false); // Destructeur ~ProduitItem(); public slots: void on_btnMoreInfo_clicked(bool deleteOnCancel = false); void winInfoProdCanceled(); signals: void deleteAsked(); private: Ui::ProduitItem *ui; QString nomProduit; QDate dateAchat, dateFinGarantie; QString descriptionListe; QPixmap image; int indexMagasin; bool enSAV; QHash factures; QHash garanties; }; #endif // PRODUITITEM_H