Commit 4440284
Changed files (3)
lib
l10n
model
export_import
screens
subsettings
lib/l10n/app_en.arb
@@ -472,5 +472,7 @@
}
},
"exportFieldsPreset": "Export fields preset",
- "@exportFieldsPreset": {}
+ "@exportFieldsPreset": {},
+ "remove": "Remove",
+ "@remove": {}
}
lib/model/export_import/export_configuration.dart
@@ -69,6 +69,14 @@ class ActiveExportColumnConfiguration extends ChangeNotifier {
notifyListeners();
}
+ /// Removes the first export column from user columns where
+ /// [ExportColumn.internalIdentifier] matches [identifier].
+ void removeUserColumn(String identifier) {
+ assert(_activePreset == ExportImportPreset.none, 'user columns are not modifiable while another configuration is active');
+ _userSelectedColumns.removeWhere((c) => c == identifier);
+ notifyListeners();
+ }
+
/// Columns to respect for export.
UnmodifiableListView<ExportColumn> getActiveColumns(ExportColumnsManager availableColumns) => UnmodifiableListView(
switch (_activePreset) {
lib/screens/subsettings/export_import_screen.dart
@@ -268,8 +268,19 @@ class ExportFieldCustomisationSetting extends StatelessWidget { // TODO: conside
return ListTile(
key: Key(activeColumns[idx].internalIdentifier + idx.toString()),
title: Text(activeColumns[idx].userTitle(localizations)),
- trailing: const Icon(Icons.drag_handle),
- // TODO: removing columns
+ trailing: Row(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ IconButton(
+ tooltip: localizations.remove,
+ onPressed: () {
+ fieldsConfig.removeUserColumn(activeColumns[idx].internalIdentifier);
+ },
+ icon: const Icon(Icons.remove_circle_outline)
+ ),
+ const Icon(Icons.drag_handle),
+ ],
+ ),
);
},
itemCount: activeColumns.length + 1,
@@ -277,7 +288,7 @@ class ExportFieldCustomisationSetting extends StatelessWidget { // TODO: conside
);
}
),
- )
+ ),
// TODO implement adding / editing columns => separate ColumnsManagerScreen ?
],
);