void ResultsView::Save(const QString &filename, Report::Type type) { if (!mErrorsFound) { QMessageBox msgBox; msgBox.setText(tr("No errors found, nothing to save.")); msgBox.setIcon(QMessageBox::Critical); msgBox.exec(); } Report *report = NULL; switch (type) { case Report::CSV: report = new CsvReport(filename, this); break; case Report::TXT: report = new TxtReport(filename, this); break; case Report::XML: report = new XmlReportV1(filename, this); break; case Report::XMLV2: report = new XmlReportV2(filename, this); break; } if (report) { if (report->Create()) mUI.mTree->SaveResults(report); else { QMessageBox msgBox; msgBox.setText(tr("Failed to save the report.")); msgBox.setIcon(QMessageBox::Critical); msgBox.exec(); } delete report; report = NULL; } else { QMessageBox msgBox; msgBox.setText(tr("Failed to save the report.")); msgBox.setIcon(QMessageBox::Critical); msgBox.exec(); } }