Commit 730b5f6

derdilla <derdilla06@gmail.com>
2023-08-05 09:42:56
add setting for disabling pdf sections
1 parent bc945f6
lib/l10n/app_en.arb
@@ -399,5 +399,11 @@
   "maximum": "Maximum",
   "@maximum": {},
   "minimum": "Minimum",
-  "@minimum": {}
+  "@minimum": {},
+  "exportPdfExportTitle": "Headline",
+  "@exportPdfExportTitle": {},
+  "exportPdfExportStatistics": "Statistics",
+  "@exportPdfExportStatistics": {},
+  "exportPdfExportData": "Data table",
+  "@exportPdfExportData": {}
 }
lib/model/export_import.dart
@@ -146,9 +146,12 @@ class ExportFileCreator {
         pageFormat: PdfPageFormat.a4,
         build: (pw.Context context) {
           return [
-            _buildPdfTitle(dateFormatter, analyzer),
-            _buildPdfStatistics(analyzer),
-            _buildPdfTable(data, dateFormatter),
+            if (settings.exportPdfExportTitle)
+              _buildPdfTitle(dateFormatter, analyzer),
+            if (settings.exportPdfExportStatistics)
+              _buildPdfStatistics(analyzer),
+            if (settings.exportPdfExportData)
+              _buildPdfTable(data, dateFormatter),
           ];
         }));
     return await pdf.save();
lib/model/ram_only_implementations.dart
@@ -429,6 +429,45 @@ class RamSettings extends ChangeNotifier implements Settings {
     notifyListeners();
   }
 
+  bool _exportPdfExportTitle = true;
+
+  @override
+  bool get exportPdfExportTitle {
+    return _exportPdfExportTitle;
+  }
+
+  @override
+  set exportPdfExportTitle(bool value) {
+    _exportPdfExportTitle = value;
+    notifyListeners();
+  }
+
+  bool _exportPdfExportStatistics = false;
+
+  @override
+  bool get exportPdfExportStatistics {
+    return _exportPdfExportStatistics;
+  }
+
+  @override
+  set exportPdfExportStatistics(bool value) {
+    _exportPdfExportStatistics = value;
+    notifyListeners();
+  }
+
+  bool _exportPdfExportData = true;
+
+  @override
+  bool get exportPdfExportData {
+    return _exportPdfExportData;
+  }
+
+  @override
+  set exportPdfExportData(bool value) {
+    _exportPdfExportData = value;
+    notifyListeners();
+  }
+
   @override
   void changeStepSize(TimeStep value) {
     graphStepSize = value;
lib/model/settings_store.dart
@@ -536,6 +536,33 @@ class Settings extends ChangeNotifier {
     _prefs.setDouble('exportPdfCellFontSize', value);
     notifyListeners();
   }
+
+  bool get exportPdfExportTitle {
+    return _prefs.getBool('exportPdfExportTitle') ?? true;
+  }
+
+  set exportPdfExportTitle(bool value) {
+    _prefs.setBool('exportPdfExportTitle', value);
+    notifyListeners();
+  }
+
+  bool get exportPdfExportStatistics {
+    return _prefs.getBool('exportPdfExportStatistics') ?? false;
+  }
+
+  set exportPdfExportStatistics(bool value) {
+    _prefs.setBool('exportPdfExportStatistics', value);
+    notifyListeners();
+  }
+
+  bool get exportPdfExportData {
+    return _prefs.getBool('exportPdfExportData') ?? true;
+  }
+
+  set exportPdfExportData(bool value) {
+    _prefs.setBool('exportPdfExportData', value);
+    notifyListeners();
+  }
 }
 
 enum TimeStep {
lib/screens/subsettings/export_import_screen.dart
@@ -95,6 +95,30 @@ class ExportImportScreen extends StatelessWidget {
                   settings.exportCsvHeadline = value;
                 }
               ),
+              SwitchSettingsTile(
+                title: Text(localizations.exportPdfExportTitle),
+                initialValue: settings.exportPdfExportTitle,
+                disabled: settings.exportFormat != ExportFormat.pdf,
+                onToggle: (value) {
+                  settings.exportPdfExportTitle = value;
+                }
+              ),
+              SwitchSettingsTile(
+                title: Text(localizations.exportPdfExportStatistics),
+                initialValue: settings.exportPdfExportStatistics,
+                disabled: settings.exportFormat != ExportFormat.pdf,
+                onToggle: (value) {
+                  settings.exportPdfExportStatistics = value;
+                }
+              ),
+              SwitchSettingsTile(
+                title: Text(localizations.exportPdfExportData),
+                initialValue: settings.exportPdfExportData,
+                disabled: settings.exportFormat != ExportFormat.pdf,
+                onToggle: (value) {
+                  settings.exportPdfExportData = value;
+                }
+              ),
               InputSettingsTile(
                 initialValue: settings.exportPdfHeaderHeight.toString(),
                 title: Text(localizations.exportPdfHeaderHeight),
@@ -102,7 +126,7 @@ class ExportImportScreen extends StatelessWidget {
                   final pV = double.tryParse(value??'');
                   if (pV != null) settings.exportPdfHeaderHeight = pV;
                 },
-                disabled: (settings.exportFormat != ExportFormat.pdf),
+                disabled: !(settings.exportFormat == ExportFormat.pdf && settings.exportPdfExportData),
                 keyboardType: TextInputType.number,
                 inputWidth: 40,
               ),
@@ -113,7 +137,7 @@ class ExportImportScreen extends StatelessWidget {
                   final pV = double.tryParse(value??'');
                   if (pV != null) settings.exportPdfCellHeight = pV;
                 },
-                disabled: (settings.exportFormat != ExportFormat.pdf),
+                disabled: !(settings.exportFormat == ExportFormat.pdf && settings.exportPdfExportData),
                 keyboardType: TextInputType.number,
                 inputWidth: 40,
               ),
@@ -124,7 +148,7 @@ class ExportImportScreen extends StatelessWidget {
                   final pV = double.tryParse(value??'');
                   if (pV != null) settings.exportPdfHeaderFontSize = pV;
                 },
-                disabled: (settings.exportFormat != ExportFormat.pdf),
+                disabled: !(settings.exportFormat == ExportFormat.pdf && settings.exportPdfExportData),
                 keyboardType: TextInputType.number,
                 inputWidth: 40,
               ),
@@ -135,7 +159,7 @@ class ExportImportScreen extends StatelessWidget {
                   final pV = double.tryParse(value??'');
                   if (pV != null) settings.exportPdfCellFontSize = pV;
                 },
-                disabled: (settings.exportFormat != ExportFormat.pdf),
+                disabled: !(settings.exportFormat == ExportFormat.pdf && settings.exportPdfExportData),
                 keyboardType: TextInputType.number,
                 inputWidth: 40,
               ),
@@ -183,12 +207,14 @@ class _ExportFieldCustomisationSettingState extends State<ExportFieldCustomisati
               SwitchSettingsTile(
                   title: Text(localizations.exportCustomEntries),
                   initialValue: settings.exportCustomEntries,
-                  disabled: ![ExportFormat.csv, ExportFormat.pdf].contains(settings.exportFormat),
+                  disabled: !(settings.exportFormat == ExportFormat.csv || settings.exportFormat == ExportFormat.pdf &&
+                      settings.exportPdfExportData),
                   onToggle: (value) {
                     settings.exportCustomEntries = value;
                   }
               ),
-              (settings.exportCustomEntries && [ExportFormat.csv, ExportFormat.pdf].contains(settings.exportFormat)) ?
+              (settings.exportCustomEntries && (settings.exportFormat == ExportFormat.csv || settings.exportFormat == ExportFormat.pdf &&
+                  settings.exportPdfExportData)) ?
                 ExportItemsCustomizer(
                   shownItems: activeFields,
                   disabledItems: hiddenFields,