53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
|
#include "tycho.h"
|
||
|
|
||
|
Project::Project(ProjectModel *_model, QWidget *parent) :
|
||
|
QMdiSubWindow(parent),
|
||
|
model(_model)
|
||
|
{
|
||
|
auto widget = new QWidget(this);
|
||
|
|
||
|
setupUi(widget);
|
||
|
|
||
|
setWidget(widget);
|
||
|
setAttribute(Qt::WA_DeleteOnClose);
|
||
|
|
||
|
listView->setModel(model->getAbstract());
|
||
|
|
||
|
dbgPrintFunc();
|
||
|
}
|
||
|
|
||
|
Project::~Project()
|
||
|
{
|
||
|
dbgPrintFunc();
|
||
|
}
|
||
|
|
||
|
void Project::closeEvent(QCloseEvent *event)
|
||
|
{
|
||
|
if(model->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:
|
||
|
model->save();
|
||
|
break;
|
||
|
case QMessageBox::Discard:
|
||
|
break;
|
||
|
case QMessageBox::Cancel:
|
||
|
event->ignore();
|
||
|
return;
|
||
|
default:
|
||
|
Q_UNREACHABLE();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
event->accept();
|
||
|
}
|
||
|
|
||
|
// EOF
|