19 #include <QFileDialog>
20 #include <QMessageBox>
23 const QString png_extension =
".png";
24 const QString jpg_extension =
".jpg";
25 const QString pdf_extension =
".pdf";
26 const QString int_extension =
".int";
27 const QString tif_extension =
".tif";
28 const QString txt_extension =
".txt";
30 QVector<SavePlotAssistant::Format> initializeFormats()
32 QVector<SavePlotAssistant::Format> result;
38 #ifdef BORNAGAIN_TIFF_SUPPORT
49 : m_file_extention(file_extention), m_filter(filter)
57 QString selectedFilter(
"*.png");
58 QString defaultName = dirname +
"/untitled";
59 QString fileName = QFileDialog::getSaveFileName(0,
"Save Plot", defaultName,
getFilterString(),
64 if (!nameToSave.isEmpty()) {
67 }
catch (
const std::exception& ex) {
68 QString message =
"Attempt to save file with the name '";
69 message.append(nameToSave);
70 message.append(
"' has failed with following error message\n\n");
71 message.append(QString::fromStdString(ex.what()));
81 plot->savePng(fileName);
85 plot->saveJpg(fileName);
89 plot->savePdf(fileName, plot->width(), plot->height());
102 for (
int i = 0; i <
m_formats.size(); ++i) {
114 if (!fileName.isEmpty() && !filterName.isEmpty()) {
126 for (
int i = 0; i <
m_formats.size(); ++i) {
127 if (fileName.endsWith(
m_formats[i].m_file_extention, Qt::CaseInsensitive)) {
136 for (
int i = 0; i <
m_formats.size(); ++i) {
137 if (
m_formats[i].m_filter == filterName) {
146 return fileName.endsWith(png_extension, Qt::CaseInsensitive);
151 return fileName.endsWith(jpg_extension, Qt::CaseInsensitive);
156 return fileName.endsWith(pdf_extension, Qt::CaseInsensitive);
Defines the macro ASSERT.
#define ASSERT(condition)
Defines class IntensityDataIOFactory.
Defines class SavePlotAssistant.
static void writeOutputData(const OutputData< double > &data, const std::string &file_name)
Writes OutputData in file.
QString getExtensionFromFilterName(const QString &filterName) const
bool isPdfFile(const QString &fileName) const
QString composeFileName(const QString &fileName, const QString &filterName) const
Compose file name to save plot from information provided by QFileDialog.
bool isJpgFile(const QString &fileName) const
QString getFilterString() const
Returns string contraining all defined filters in the format suitable for QFileDialog.
bool isPngFile(const QString &fileName) const
void saveToFile(const QString &dirname, QCustomPlot *plot, OutputData< double > *output_data)
static QVector< Format > m_formats
bool isValidExtension(const QString &fileName) const
void savePlot(const QString &dirname, QCustomPlot *plot, OutputData< double > *output_data)
void warning(QWidget *parent, const QString &title, const QString &text, const QString &detailedText)