Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Export dialog in Edit Database Cell uses data type for extension filter
The extension filter is adjusted to the type of data loaded in the editor.
Previously, only image extensions were adjusted, remaining were treated
as text. Now the following are used: *.bin, *.txt, *.json and *.svg.

For coherence, the *.bin filter is added to the import dialog.
  • Loading branch information
mgrojo committed Jun 20, 2018
1 parent 48d3cc6 commit 885f4f7
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions src/EditDialog.cpp
Expand Up @@ -290,7 +290,7 @@ void EditDialog::importData()
this,
tr("Choose a file to import")
#ifndef Q_OS_MAC // Filters on OS X are buggy
, tr("Text files (*.txt);;Image files (%1);;JSON files (*.json);;XML files (*.xml);;All files (*)").arg(image_formats)
, tr("Text files (*.txt);;Image files (%1);;JSON files (*.json);;XML files (*.xml);;Binary files (*.bin);;All files (*)").arg(image_formats)
#endif
);
if(QFile::exists(fileName))
Expand All @@ -312,15 +312,29 @@ void EditDialog::exportData()
{
// Images get special treatment
QString fileExt;
if (dataType == Image) {
switch (dataType) {
case Image: {
// Determine the likely filename extension
QByteArray cellData = hexEdit->data();
QBuffer imageBuffer(&cellData);
QImageReader imageReader(&imageBuffer);
QString imageFormat = imageReader.format();
fileExt = imageFormat.toUpper() % " " % tr("Image") % "(*." % imageFormat.toLower() % ");;All files(*)";
} else {
break;
}
case Binary:
case Null:
fileExt = tr("Binary files(*.bin);;All files(*)");
break;
case Text:
fileExt = tr("Text files(*.txt);;All files(*)");
break;
case JSON:
fileExt = tr("JSON files(*.json);;All files(*)");
break;
case SVG:
fileExt = tr("SVG files(*.svg);;All files(*)");
break;
}

QString fileName = FileDialog::getSaveFileName(
Expand All @@ -342,7 +356,7 @@ void EditDialog::exportData()
file.write(ui->editorText->toPlainText().toUtf8());
break;
case SciBuffer:
// Data source is the JSON buffer
// Data source is the Scintilla buffer
file.write(sciEdit->text().toUtf8());
break;
}
Expand Down

0 comments on commit 885f4f7

Please sign in to comment.