#include "dialogimage.h" #include "ui_dialogimage.h" #include using namespace std; DialogImage::DialogImage(Taquin *sdo, TaquinMain *tqm, QWidget *parent) : QDialog(parent),tqmain(tqm),sujet(sdo),ui(new Ui::DialogImage) { grid = new QGridLayout(); cout<<"taille grille "<count()<attacher(this); mapper = new QSignalMapper(); rafraichir(sujet); connect(mapper, SIGNAL(mapped(int)), tqmain, SLOT(moveClick(int))); ui->setupUi(this); } void DialogImage::rafraichir(SujetDObservation *sdo){ if(sdo != sujet) return; viderListe(); for(int i=0;igetSize();i++){ for(int j=0;jgetSize();j++){ Position pos{i,j}; Piece a =sujet->getPiece(pos); if(a.isEmpty()) tabButton.push_back(new QPushButton("")); else tabButton.push_back(new QPushButton()); grid->addWidget(tabButton[tabButton.size()-1],i,j); connect(tabButton[tabButton.size()-1],SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(tabButton[tabButton.size()-1],grid->count()-1); } } cout<<"taille grille "<count()<widget->setLayout(grid); } void DialogImage::viderListe(){ QLayoutItem* item; while ((item= grid->takeAt(0)) != NULL ) { item->widget()->deleteLater(); delete item; } for (unsigned i;iremoveMappings(tabButton[i]); delete tabButton[i]; } tabButton.clear(); } DialogImage::~DialogImage() noexcept { sujet->detacher(this); viderListe(); delete img; delete ui; } void DialogImage::ouvrir(){ QString m_FichierImage =QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Images (*.png *.gif *.jpg *.jpeg *.bmp)"); img = new QPixmap(m_FichierImage); }