63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
#include "tycho.h"
|
|
#include "project.h"
|
|
#include "../ui/ui_projectview.h"
|
|
|
|
#include <QCloseEvent>
|
|
#include <QMessageBox>
|
|
|
|
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<ProjectModel> 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
|