#include "mainwindow.h" #include "ui_mainwindow.h" #include #include "sensor.h" #include "hallsensor.h" #include "schuifdeur.h" #include "draaideur.h" #include #include #include #include #include #include "slot.h" #include "herkenningsslot.h" #include "afdrukker.h" #include "drukbox.h" #include "kaartslot.h" #include "idkaart.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); s1=new Hallsensor(515,160); //sleutelSlot0 = new SleutelSlot("cisco"); //sleutelSlot1 = new SleutelSlot("cisco"); deuren.emplace_back(std::shared_ptr (new Schuifdeur(503,250,80,s1))); //deuren[0]->addSlot(new HerkenningsSlot(new Drukbox(ui->textBrowser))); //deuren[0]->addSlot(new SleutelSlot("cisco2")); deuren[0]->addSlot(new KaartSlot); deuren.emplace_back(std::shared_ptr (new draaideur(248,140,40,false))); //deuren[1]->addSlot(new CodeSlot(1234)); //deuren[1]->addSlot(new CodeSlot(5678)); deuren[1]->addSlot(new KaartSlot); deuren.emplace_back(std::shared_ptr (new draaideur(295,290,30,true))); deuren[2]->addSlot(new CodeSlot(0000)); deuren[2]->addSlot(new HerkenningsSlot(new Drukbox(ui->textBrowser))); } MainWindow::~MainWindow(){ delete ui; delete s1; } void MainWindow::paintEvent(QPaintEvent *event){ QPainter painter(this); QPen pen; QImage image("/home/shaquille/Git/Qt-Gebouw/Gebouw.png"); pen.setColor(Qt::green); pen.setWidth(4); painter.setPen(pen); painter.drawImage(10,10,image); s1->teken(this); deuren.at(0)->teken(this); deuren.at(1)->teken(this); deuren.at(2)->teken(this); } void MainWindow::on_schuifdeurSensorKnop_clicked(){ if(s1->isGeactiveerd()) s1->deactiveer(); else s1->activeer(); update(); } void MainWindow::on_vd_clicked(){ if(deuren.at(0)->isDeurOpen()){ deuren[0]->sluit(); } else{ deuren.at(0)->open(); s1->deactiveer(); } update(); } void MainWindow::on_d1_clicked(){ if(deuren.at(1)->isDeurOpen()){ deuren.at(1)->sluit(); } else{ deuren.at(1)->open(); } update(); } void MainWindow::on_d2_clicked(){ if(deuren.at(2)->isDeurOpen()){ deuren.at(2)->sluit(); } else{ deuren.at(2)->open(); } update(); } void MainWindow::on_lineEdit_returnPressed(){ string eenSleutel = ui->lineEdit->text().toStdString(); // Slot* sleutelSlot0 = deuren[0]->geefSleutel(0); // Slot* sleutelSlot1 = deuren[0]->geefSleutel(1); // Slot* codeSlot0 = deuren[1]->geefSleutel(0); // Slot* codeSlot1 = deuren[1]->geefSleutel(1); // Slot* codeSlot2 = deuren[2]->geefSleutel(0); // sleutelSlot0->ontgrendel(eenSleutel); // sleutelSlot1->ontgrendel(eenSleutel); // codeSlot0->ontgrendel(eenSleutel); // codeSlot1->ontgrendel(eenSleutel); // codeSlot2->ontgrendel(eenSleutel); for(ulong i = 0; i < deuren.size(); i++) { std::list slotenDeur = deuren[i]->geefSlot(); for (auto &j:slotenDeur) (*j).ontgrendel(ui->lineEdit->text().toStdString()); } } void MainWindow::on_Allow_clicked(){ Slot* a = deuren[2]->geefSleutel(1); HerkenningsSlot* b = dynamic_cast(a); b->voegAutorisatieToe(ui->HerkenningAdd->text().toStdString(), true); b->toonKaartenBak(); } void MainWindow::on_Deny_clicked(){ Slot* a = deuren[2]->geefSleutel(1); HerkenningsSlot* b = dynamic_cast(a); b->voegAutorisatieToe(ui->HerkenningAdd->text().toStdString(), false); b->toonKaartenBak(); } void MainWindow::on_HerkenningAdd_2_returnPressed(){ Slot* a = deuren[2]->geefSleutel(1); HerkenningsSlot* b = dynamic_cast(a); b->ontgrendel(ui->HerkenningAdd_2->text().toStdString()); } void MainWindow::on_addIdCard_clicked(){ KaartSlot* kaart = new KaartSlot; kaart->voegIdKaartToe(new IdKaart(ui->Naam->text().toStdString(),ui->Adres->text().toStdString())); delete kaart; } void MainWindow::on_deleteIdCard_clicked(){ KaartSlot* kaart = new KaartSlot; kaart->verwijderIdKaart(ui->Naam->text().toStdString()+" "+ui->Adres->text().toStdString()); delete kaart; }