Maraiah/source/tycho/cc_source/projectview.cc

63 lines
1.3 KiB
C++
Raw Normal View History

2019-06-13 18:10:33 -07:00
#include "tycho.h"
#include "project.h"
#include "../ui/ui_projectview.h"
2019-06-13 19:52:25 -07:00
#include <QCloseEvent>
#include <QMessageBox>
2019-06-13 18:10:33 -07:00
ProjectView::ProjectView(QWidget *parent) :
2019-06-13 19:52:25 -07:00
QMdiSubWindow(parent),
2019-06-13 18:10:33 -07:00
ui(new Ui::ProjectView),
proj(new ProjectModel)
{
2019-06-13 19:52:25 -07:00
auto widget = new QWidget(this);
2019-06-13 19:52:25 -07:00
ui->setupUi(widget);
2019-06-13 19:52:25 -07:00
setWidget(widget);
setAttribute(Qt::WA_DeleteOnClose);
2019-06-13 19:52:25 -07:00
2019-06-13 18:10:33 -07:00
dbgPrintFunc();
}
ProjectView::~ProjectView()
{
dbgPrintFunc();
}
QSharedPointer<ProjectModel> ProjectView::model()
{
return proj;
}
2019-06-13 19:52:25 -07:00
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();
}
2019-06-13 18:10:33 -07:00
// EOF