Skip to content

Commit

Permalink
add image to folder export
Browse files Browse the repository at this point in the history
  • Loading branch information
moovida committed Aug 24, 2021
1 parent 3d2f705 commit 837a193
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 0 deletions.
52 changes: 52 additions & 0 deletions lib/eu/hydrologis/smash/export/export_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ class _ExportWidgetState extends State<ExportWidget> {
String _gpxOutPath = "";
int _kmlBuildStatus = 0;
String _kmlOutPath = "";
int _imagesBuildStatus = 0;
String _imagesOutPath = "";
int _gpkgBuildStatus = 0;
String _gpkgOutPath = "";

Expand All @@ -56,6 +58,32 @@ class _ExportWidgetState extends State<ExportWidget> {
});
}

Future<void> exportImages(BuildContext context) async {
var exportsFolder = await Workspace.getExportsFolder();
var ts = TimeUtilities.DATE_TS_FORMATTER.format(DateTime.now());
var outFilePath =
FileUtilities.joinPaths(exportsFolder.path, "images_export_$ts");
var outFolder = Directory(outFilePath);
await outFolder.create();
var projectState = Provider.of<ProjectState>(context, listen: false);
var db = projectState.projectDb;

var images = db.getImages();
images.forEach((image) {
var dataId = image.imageDataId;
var name = image.text;
var imageDataBytes = db.getImageDataBytes(dataId);
var imagePath = FileUtilities.joinPaths(outFilePath, name);
var imageFile = File(imagePath);
imageFile.writeAsBytes(imageDataBytes);
});

setState(() {
_imagesOutPath = outFilePath;
_imagesBuildStatus = 2;
});
}

Future<void> buildGeopackage(BuildContext context) async {
var exportsFolder = await Workspace.getExportsFolder();
var ts = TimeUtilities.DATE_TS_FORMATTER.format(DateTime.now());
Expand Down Expand Up @@ -180,6 +208,30 @@ class _ExportWidgetState extends State<ExportWidget> {
_kmlBuildStatus = 1;
});
buildGpx(context, true);
// Navigator.pop(context);
}),
ListTile(
leading: _imagesBuildStatus == 0
? Icon(
SmashIcons.imagesNotesIcon,
color: SmashColors.mainDecorations,
)
: _imagesBuildStatus == 1
? CircularProgressIndicator()
: Icon(
Icons.check,
color: SmashColors.mainDecorations,
),
title: Text(
"${_imagesBuildStatus == 2 ? SL.of(context).exportWidget_imagesToFolderExported : SL.of(context).exportWidget_exportImagesToFolderTitle}"),
subtitle: Text(
"${_imagesBuildStatus == 2 ? _kmlOutPath : SL.of(context).exportWidget_exportImagesToFolder}"),
onTap: () {
setState(() {
_kmlOutPath = "";
_imagesBuildStatus = 1;
});
exportImages(context);
// Navigator.pop(context);
}),
ListTile(
Expand Down
3 changes: 3 additions & 0 deletions lib/generated/intl/messages_en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,16 @@ class MessageLookup extends MessageLookupByLibrary {
"dataLoader_savingImageToDB" : MessageLookupByLibrary.simpleMessage("Saving image to db..."),
"dataLoader_timestamp" : MessageLookupByLibrary.simpleMessage("Timestamp"),
"exportWidget_export" : MessageLookupByLibrary.simpleMessage("Export"),
"exportWidget_exportImagesToFolder" : MessageLookupByLibrary.simpleMessage("Export project images to folder"),
"exportWidget_exportImagesToFolderTitle" : MessageLookupByLibrary.simpleMessage("Images"),
"exportWidget_exportToGSS" : MessageLookupByLibrary.simpleMessage("Export to Geopaparazzi Survey Server"),
"exportWidget_exportToGeopackage" : MessageLookupByLibrary.simpleMessage("Export project to Geopackage"),
"exportWidget_exportToGpx" : MessageLookupByLibrary.simpleMessage("Export project to GPX"),
"exportWidget_exportToKml" : MessageLookupByLibrary.simpleMessage("Export project to KML"),
"exportWidget_exportToPortableDocumentFormat" : MessageLookupByLibrary.simpleMessage("Export project to Portable Document Format"),
"exportWidget_geopackageExported" : MessageLookupByLibrary.simpleMessage("Geopackage exported"),
"exportWidget_gpxExported" : MessageLookupByLibrary.simpleMessage("GPX exported"),
"exportWidget_imagesToFolderExported" : MessageLookupByLibrary.simpleMessage("Images exported"),
"exportWidget_kmlExported" : MessageLookupByLibrary.simpleMessage("KML exported"),
"exportWidget_pdfExported" : MessageLookupByLibrary.simpleMessage("PDF exported"),
"featureAttributesViewer_field" : MessageLookupByLibrary.simpleMessage("FIELD"),
Expand Down
30 changes: 30 additions & 0 deletions lib/generated/l10n.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions lib/l10n/intl_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@
"exportWidget_exportToGpx": "Export project to GPX",
"exportWidget_kmlExported": "KML exported",
"exportWidget_exportToKml": "Export project to KML",
"exportWidget_imagesToFolderExported": "Images exported",
"exportWidget_exportImagesToFolder": "Export project images to folder",
"exportWidget_exportImagesToFolderTitle": "Images",
"exportWidget_geopackageExported": "Geopackage exported",
"exportWidget_exportToGeopackage": "Export project to Geopackage",
"exportWidget_exportToGSS": "Export to Geopaparazzi Survey Server",
Expand Down

0 comments on commit 837a193

Please sign in to comment.