Newer
Older
cg / hw04 / mainwindow.cpp
// Copyright (c) 2021. Pascal Syma <pascal@syma.dev> and Antonio Martinez Casadesus <acasadesus@stud.hs-bremen.de>.
// All rights reserved.

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // disable all controls and wait for valid file loading
    ui->parentSpinBox->setEnabled(false);
    ui->childSpinBox->setEnabled(false);
    ui->drawWireframe->setEnabled(false);
    ui->drawOutline->setEnabled(false);

    connect(ui->parentSpinBox, SIGNAL(valueChanged(int)), ui->glwidget, SLOT(parentSubdiv(int)));
    connect(ui->childSpinBox, SIGNAL(valueChanged(int)), ui->glwidget, SLOT(childSubdiv(int)));
    connect(ui->drawWireframe, SIGNAL(stateChanged(int)), ui->glwidget, SLOT(drawWireframe(int)));
    connect(ui->drawOutline, SIGNAL(stateChanged(int)), ui->glwidget, SLOT(drawOutline(int)));

    connect(ui->scale, SIGNAL(valueChanged(int)), ui->glwidget, SLOT(setScale(int)));

    connect(ui->fileLoad, SIGNAL(pressed()), this, SLOT(loadButtonClick()));

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::loadButtonClick() {
    // try loading the input file
    bool success = ui->glwidget->loadFile(ui->fileEdit->text().toStdString());

    // when loading was successful, active the controls
    ui->parentSpinBox->setEnabled(success);
    ui->childSpinBox->setEnabled(success);
    ui->drawWireframe->setEnabled(success);
    ui->drawOutline->setEnabled(success);
}