#include "tycho.h" #include "project.h" #include "../ui/ui_projectview.h" #include #include ProjectView::ProjectView(QWidget *parent) : QMdiSubWindow(parent), ui(new Ui::ProjectView), proj(new ProjectModel) { auto widget = new QWidget(this); ui->setupUi(widget); setWidget(widget); setAttribute(Qt::WA_DeleteOnClose); dbgPrintFunc(); } ProjectView::~ProjectView() { dbgPrintFunc(); } QSharedPointer ProjectView::model() { return proj; } void ProjectView::closeEvent(QCloseEvent *event) { if(proj->isDirty()) { QMessageBox msg; msg.setText(tr("Do you want to save your changes to this project before closing it?")); msg.setInformativeText(tr("Unsaved changes will be lost unless you save.")); msg.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel); msg.setDefaultButton(QMessageBox::Save); switch(msg.exec()) { case QMessageBox::Save: proj->save(); break; case QMessageBox::Discard: break; case QMessageBox::Cancel: event->ignore(); return; default: assert(true); break; } } event->accept(); } // EOF