utility: graph export linux
qfiledialog on linux does not add extension of filter to filename
This commit is contained in:
@@ -244,9 +244,45 @@ void QtGraphicsView::stopTimer()
|
||||
m_timer->stop();
|
||||
}
|
||||
|
||||
QString ShowSaveFileDialog(QWidget *parent,
|
||||
const QString &title,
|
||||
const QString &directory,
|
||||
const QString &filter) {
|
||||
#if defined(Q_WS_WIN) || defined(Q_WS_MAC)
|
||||
return QFileDialog::getSaveFileName(parent,
|
||||
title,
|
||||
directory,
|
||||
filter);
|
||||
#else
|
||||
QFileDialog dialog(parent, title, directory, filter);
|
||||
if (parent) {
|
||||
dialog.setWindowModality(Qt::WindowModal);
|
||||
}
|
||||
QRegExp filter_regex(QLatin1String("(?:^\\*\\.(?!.*\\()|\\(\\*\\.)(\\w+)"));
|
||||
QStringList filters = filter.split(QLatin1String(";;"));
|
||||
if (!filters.isEmpty()) {
|
||||
dialog.setNameFilters(filters);
|
||||
}
|
||||
dialog.setAcceptMode(QFileDialog::AcceptSave);
|
||||
if (dialog.exec() == QDialog::Accepted) {
|
||||
QString file_name = dialog.selectedFiles().first();
|
||||
QFileInfo info(file_name);
|
||||
if (info.suffix().isEmpty() && !dialog.selectedNameFilter().isEmpty()) {
|
||||
if (filter_regex.indexIn(dialog.selectedNameFilter()) != -1) {
|
||||
QString extension = filter_regex.cap(1);
|
||||
file_name += QLatin1String(".") + extension;
|
||||
}
|
||||
}
|
||||
return file_name;
|
||||
} else {
|
||||
return QString();
|
||||
}
|
||||
#endif // Q_WS_MAC || Q_WS_WIN
|
||||
}
|
||||
|
||||
void QtGraphicsView::exportGraph()
|
||||
{
|
||||
QString fileName = QFileDialog::getSaveFileName(
|
||||
QString fileName = ShowSaveFileDialog(
|
||||
this, "Save image", QDir::homePath(), "PNG (*.png);;JPEG (*.JPEG);;BMP Files (*.bmp)");
|
||||
|
||||
if (!fileName.isNull())
|
||||
|
||||
Reference in New Issue
Block a user