summaryrefslogtreecommitdiff
path: root/src/Exporter.vala
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2023-12-17 19:58:57 +0100
committerJörg Frings-Fürst <debian@jff.email>2023-12-17 19:58:57 +0100
commit270fbc11b9744b76bcc52a3cf58fe896d7352724 (patch)
treefb359e210d2d9c30f5ad36a447ea29b62ae9bb56 /src/Exporter.vala
parent841f952294b349b2b8e2afb5305ce34a3b59bb4b (diff)
parent4cb46f4de4b881e5b1f65af017dca6f3917e55e5 (diff)
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'src/Exporter.vala')
-rw-r--r--src/Exporter.vala42
1 files changed, 31 insertions, 11 deletions
diff --git a/src/Exporter.vala b/src/Exporter.vala
index a7f7b6b..cf63938 100644
--- a/src/Exporter.vala
+++ b/src/Exporter.vala
@@ -54,6 +54,7 @@ public class Exporter : Object {
public enum Overwrite {
YES,
NO,
+ SKIP_ALL,
CANCEL,
REPLACE_ALL,
RENAME,
@@ -270,6 +271,15 @@ public class Exporter : Object {
return false;
+ case Overwrite.SKIP_ALL:
+ completed_count = to_export.size;
+ if (monitor != null) {
+ if (!monitor(completed_count, to_export.size)) {
+ cancellable.cancel();
+
+ }
+ }
+ return false;
case Overwrite.NO:
default:
completed_count++;
@@ -346,30 +356,40 @@ public class ExporterUI {
progress_dialog.set_modal(false);
string question = _("File %s already exists. Replace?").printf(file.get_basename());
int response = AppWindow.export_overwrite_or_replace_question(question,
- _("_Skip"), _("Rename"), _("Rename All"),_("_Replace"), _("Replace _All"), _("_Cancel"), _("Export"));
+ _("_Skip"), _("Rename"), _("_Replace"), _("_Cancel"), _("Export file conflict"));
progress_dialog.set_modal(true);
+ var apply_all = (response & 0x80) != 0;
+ response &= 0x0f;
+
switch (response) {
case 2:
- return Exporter.Overwrite.RENAME;
-
- case 3:
- return Exporter.Overwrite.RENAME_ALL;
-
+ if (apply_all) {
+ return Exporter.Overwrite.RENAME_ALL;
+ }
+ else {
+ return Exporter.Overwrite.RENAME;
+ }
case 4:
- return Exporter.Overwrite.YES;
-
- case 5:
- return Exporter.Overwrite.REPLACE_ALL;
+ if (apply_all) {
+ return Exporter.Overwrite.REPLACE_ALL;
+ } else {
+ return Exporter.Overwrite.YES;
+ }
case 6:
return Exporter.Overwrite.CANCEL;
case 1:
+ if (apply_all) {
+ return Exporter.Overwrite.SKIP_ALL;
+ } else {
+ return Exporter.Overwrite.NO;
+ }
default:
return Exporter.Overwrite.NO;
- }
+ }
}
private bool on_export_failed(Exporter exporter, File file, int remaining, Error err) {