MCPcopy Create free account
hub / github.com/MiniZinc/MiniZincIDE / tabCloseRequest

Method tabCloseRequest

MiniZincIDE/mainwindow.cpp:485–522  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

483}
484
485void MainWindow::tabCloseRequest(int tab)
486{
487 CodeEditor* ce = qobject_cast<CodeEditor*>(ui->tabWidget->widget(tab));
488 if (ce) {
489 if (ce->document()->isModified()) {
490 QMessageBox msg;
491 msg.setText("The document has been modified.");
492 msg.setInformativeText("Do you want to save your changes?");
493 msg.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
494 msg.setDefaultButton(QMessageBox::Save);
495 int ret = msg.exec();
496 switch (ret) {
497 case QMessageBox::Save:
498 saveFile(ce,ce->filepath);
499 if (ce->document()->isModified())
500 return;
501 break;
502 case QMessageBox::Discard:
503 break;
504 case QMessageBox::Cancel:
505 return;
506 default:
507 return;
508 }
509 }
510 ce->document()->setModified(false);
511 if (!ce->filepath.isEmpty()) {
512 IDE::instance()->removeEditor(ce->filepath,ce);
513 }
514 if (ce == curEditor) {
515 curEditor = nullptr;
516 }
517 ce->deleteLater();
518 } else {
519 ui->tabWidget->removeTab(tab);
520 }
521 getProject().openTabsChanged(getOpenFiles(), ui->tabWidget->currentIndex());
522}
523
524void MainWindow::closeEvent(QCloseEvent* e) {
525 // make sure any modifications in solver configurations are saved

Callers

nothing calls this directly

Calls 6

isModifiedMethod · 0.80
setModifiedMethod · 0.80
removeEditorMethod · 0.80
openTabsChangedMethod · 0.80
currentIndexMethod · 0.80
widgetMethod · 0.45

Tested by

no test coverage detected