Commit 1a8dfec8 authored by Michael Terry's avatar Michael Terry

Use native file chooser dialog; some minor fixes

parent 7833536f
Pipeline #51755 passed with stage
in 8 minutes and 8 seconds
Makefile export-ignore
debian export-ignore
.git* export-ignore
.buildignore
builddir
debian
flatpak/.flatpak-builder
......
......@@ -31,7 +31,7 @@ distconfigure:
check: all
LC_ALL=C.UTF-8 meson test -C builddir
dist: clean distconfigure screenshots pot
dist: pot
rm -f builddir/meson-dist/*
ninja -C builddir dist
gpg --armor --sign --detach-sig builddir/meson-dist/deja-dup-*.tar.xz
......
......@@ -4,6 +4,7 @@ Déjà Dup 38.3
• Treat operation dialogs more like real dialogs (modal to preference window, with correct styling on default buttons)
• Try harder to stop running duplicity commands when we are terminated
• Don't hide an error message when also running our bimonthly backup verification
• If there isn't enough space in the backup location, tell the user how much is needed
• Exclude flatpak cache directories by default
Déjà Dup 38.2
......
data/appdata/01-main.png

36.9 KB | W: | H:

data/appdata/01-main.png

36.8 KB | W: | H:

data/appdata/01-main.png
data/appdata/01-main.png
data/appdata/01-main.png
data/appdata/01-main.png
  • 2-up
  • Swipe
  • Onion skin
data/appdata/02-backup.png

12.6 KB | W: | H:

data/appdata/02-backup.png

12.6 KB | W: | H:

data/appdata/02-backup.png
data/appdata/02-backup.png
data/appdata/02-backup.png
data/appdata/02-backup.png
  • 2-up
  • Swipe
  • Onion skin
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2019-01-05 10:13-0500\n"
"POT-Creation-Date: 2019-01-16 18:57-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -314,77 +314,77 @@ msgid "(which by default also ignores <_:file-1/>)"
msgstr ""
#. (itstool) path: item/title
#: C/prefs.page:46
#: C/prefs.page:47
msgid "<gui>Storage location</gui>"
msgstr ""
#. (itstool) path: item/p
#: C/prefs.page:47
#: C/prefs.page:48
msgid "Use these options to specify the storage location that <app>Déjà Dup</app> will use when backing up or restoring:"
msgstr ""
#. (itstool) path: item/title
#: C/prefs.page:50
#: C/prefs.page:51
msgid "Cloud Services"
msgstr ""
#. (itstool) path: item/p
#: C/prefs.page:51
#: C/prefs.page:52
msgid "The first few storage locations are cloud storage services provided by various companies. For a small fee, they hold your data for you. A cloud service like this is recommended because it is an easy way to keep your data offsite (meaning out of your home: in case of disaster or theft, your data will still be safe)."
msgstr ""
#. (itstool) path: note/p
#: C/prefs.page:52
#: C/prefs.page:53
msgid "These services cost money. Read their rates carefully before using them."
msgstr ""
#. (itstool) path: item/title
#: C/prefs.page:55
#: C/prefs.page:56
msgid "Remote Servers"
msgstr ""
#. (itstool) path: item/p
#: C/prefs.page:56
#: C/prefs.page:57
msgid "Choose the type of remote server to which you want to connect. Then you can enter the server information. Alternatively, if you know your server’s URL, choose <gui>Custom Location</gui> and enter it."
msgstr ""
#. (itstool) path: item/title
#: C/prefs.page:59
#: C/prefs.page:60
msgid "Removable Media"
msgstr ""
#. (itstool) path: item/p
#: C/prefs.page:60
#: C/prefs.page:61
msgid "You may see removable media like external hard drives or thumb drives listed."
msgstr ""
#. (itstool) path: item/title
#: C/prefs.page:63
#: C/prefs.page:64
msgid "Local Folder"
msgstr ""
#. (itstool) path: item/p
#: C/prefs.page:64
#: C/prefs.page:65
msgid "You may also want to choose a local folder as a storage location. Note that backups can be quite large, so make sure you have enough free disk space."
msgstr ""
#. (itstool) path: note/p
#: C/prefs.page:65
#: C/prefs.page:66
msgid "This is not recommended, because if your hardware fails, you will lose both your original data and your backups."
msgstr ""
#. (itstool) path: item/title
#: C/prefs.page:70
#: C/prefs.page:71
msgid "<gui>Keep</gui>"
msgstr ""
#. (itstool) path: item/p
#: C/prefs.page:71
#: C/prefs.page:72
msgid "Choose the minimum amount of time to keep backup files. If you find that the backup files are taking up too much space, you may want to decrease this duration. Due to implementation details, files may be kept a bit longer than the chosen time. But no files will be deleted early."
msgstr ""
#. (itstool) path: note/p
#: C/prefs.page:72
#: C/prefs.page:73
msgid "Backups are kept forever by default, but still may be deleted earlier if the storage location begins to run out of space."
msgstr ""
......
......@@ -178,6 +178,9 @@ public class DejaDupApp : Gtk.Application
header.pack_end(menu_button);
var auto_switch = new DejaDup.PreferencesPeriodicSwitch();
var accessible = auto_switch.get_accessible();
if (accessible != null)
accessible.set_name(_("Automatic backup"));
auto_switch.valign = Gtk.Align.CENTER;
header.pack_end(auto_switch);
......
......@@ -249,20 +249,17 @@ public class ConfigList : ConfigWidget
void handle_add()
{
var dlg = new Gtk.FileChooserDialog(_("Choose folders"),
var dlg = new Gtk.FileChooserNative(_("Choose folders"),
get_ancestor(typeof(Gtk.Window)) as Gtk.Window,
Gtk.FileChooserAction.SELECT_FOLDER,
_("_Cancel"), Gtk.ResponseType.CANCEL,
_("_Add"), Gtk.ResponseType.ACCEPT);
_("_Add"), null);
dlg.select_multiple = true;
if (dlg.run() != Gtk.ResponseType.ACCEPT) {
destroy_widget(dlg);
return;
}
SList<string> files = dlg.get_filenames();
destroy_widget(dlg);
add_files(files);
}
......
......@@ -46,11 +46,10 @@ public class ConfigLocationFile : ConfigLocationTable
void browse_clicked()
{
var dlg = new Gtk.FileChooserDialog(_("Choose Folder"),
var dlg = new Gtk.FileChooserNative(_("Choose Folder"),
get_ancestor(typeof(Gtk.Window)) as Gtk.Window,
Gtk.FileChooserAction.SELECT_FOLDER,
_("_Cancel"), Gtk.ResponseType.CANCEL,
_("_OK"), Gtk.ResponseType.ACCEPT);
_("_OK"), null);
var home = File.new_for_path(Environment.get_home_dir());
try {
var dir = home.get_child_for_display_name(entry.get_text());
......@@ -66,8 +65,6 @@ public class ConfigLocationFile : ConfigLocationTable
path = file.get_path();
settings.set_string(DejaDup.LOCAL_FOLDER_KEY, path);
}
destroy_widget(dlg);
}
}
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: deja-dup\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-04 23:05-0500\n"
"POT-Creation-Date: 2019-01-16 18:57-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -23,7 +23,7 @@ msgstr ""
#. context is itself a reference to both the underlying command line tool
#. "duplicity" and the act of duplicating data for backup. As a whole, the
#. phrase "Déjà Dup" may not be very translatable.
#: data/org.gnome.DejaDup.appdata.xml.in:7 deja-dup/main.vala:328
#: data/org.gnome.DejaDup.appdata.xml.in:7 deja-dup/main.vala:361
#: libdeja/CommonUtils.vala:145
msgid "Déjà Dup Backup Tool"
msgstr ""
......@@ -62,7 +62,7 @@ msgid "Integrates well into your GNOME desktop"
msgstr ""
#. Translators: "Backups" is a noun
#: data/org.gnome.DejaDup.desktop.in:5 deja-dup/main.vala:164
#: data/org.gnome.DejaDup.desktop.in:5 deja-dup/main.vala:166
msgid "Backups"
msgstr ""
......@@ -662,24 +662,24 @@ msgstr ""
#. frequently fix odd metadata errors with duplicity. If we hit an error
#. a second time, we'll show the unknown error message.
#: deja-dup/AssistantOperation.vala:646
#: libdeja/tools/duplicity/DuplicityJob.vala:721
#: libdeja/tools/duplicity/DuplicityJob.vala:1108
#: libdeja/tools/duplicity/DuplicityJob.vala:724
#: libdeja/tools/duplicity/DuplicityJob.vala:1111
msgid "Failed with an unknown error."
msgstr ""
#: deja-dup/AssistantOperation.vala:846
#: deja-dup/AssistantOperation.vala:853
msgid "Require Password?"
msgstr ""
#: deja-dup/AssistantOperation.vala:848
#: deja-dup/AssistantOperation.vala:855
msgid "Encryption Password Needed"
msgstr ""
#: deja-dup/AssistantOperation.vala:921
#: deja-dup/AssistantOperation.vala:928
msgid "Backup encryption password"
msgstr ""
#: deja-dup/AssistantOperation.vala:992
#: deja-dup/AssistantOperation.vala:999
msgctxt "verb"
msgid "_Install"
msgstr ""
......@@ -742,7 +742,7 @@ msgstr ""
#. Translators: This is the word 'Restoring' in the phrase
#. "Restoring '%s'". %s is a filename.
#: deja-dup/AssistantRestore.vala:320
#: deja-dup/AssistantRestore.vala:328
msgid "Restoring:"
msgstr ""
......@@ -750,119 +750,118 @@ msgstr ""
#. This will be in a list with other strings that just have %x (the
#. current date). So make sure if you change this, it still makes
#. sense in that context.
#: deja-dup/AssistantRestore.vala:362
#: deja-dup/AssistantRestore.vala:370
#, c-format
msgid "%x %X"
msgstr ""
#. If we didn't see any dates... Must not be any backups on the backend
#: deja-dup/AssistantRestore.vala:375
#: deja-dup/AssistantRestore.vala:383
msgid "No backups to restore"
msgstr ""
#: deja-dup/AssistantRestore.vala:455
#: deja-dup/AssistantRestore.vala:463
msgid "Original location"
msgstr ""
#: deja-dup/AssistantRestore.vala:466
#: deja-dup/AssistantRestore.vala:474
msgid "File to restore"
msgid_plural "Files to restore"
msgstr[0] ""
msgstr[1] ""
#: deja-dup/AssistantRestore.vala:487
#: deja-dup/AssistantRestore.vala:495
msgid "Restore Failed"
msgstr ""
#: deja-dup/AssistantRestore.vala:489
#: deja-dup/AssistantRestore.vala:497
msgid "Restore Finished"
msgstr ""
#. if it *is* visible, a header will be set already
#: deja-dup/AssistantRestore.vala:492
#: deja-dup/AssistantRestore.vala:500
msgid "Your files were successfully restored."
msgstr ""
#: deja-dup/AssistantRestore.vala:495
#: deja-dup/AssistantRestore.vala:503
msgid "Your file was successfully restored."
msgid_plural "Your files were successfully restored."
msgstr[0] ""
msgstr[1] ""
#: deja-dup/AssistantRestore.vala:502 libdeja/Operation.vala:58
#: deja-dup/AssistantRestore.vala:510 libdeja/Operation.vala:58
msgid "Restoring…"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:184
#: deja-dup/AssistantRestoreMissing.vala:186
msgid "File"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:185
#: deja-dup/AssistantRestoreMissing.vala:187
msgid "Last seen"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:196
#: deja-dup/AssistantRestoreMissing.vala:198
msgid "Restore which Files?"
msgstr ""
#. Hours
#: deja-dup/AssistantRestoreMissing.vala:327
#: deja-dup/AssistantRestoreMissing.vala:329
msgid "Scanning for files from up to a day ago…"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:330
#: deja-dup/AssistantRestoreMissing.vala:332
msgid "Scanning for files from up to a week ago…"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:333
#: deja-dup/AssistantRestoreMissing.vala:335
msgid "Scanning for files from up to a month ago…"
msgstr ""
#: deja-dup/AssistantRestoreMissing.vala:338
#: deja-dup/AssistantRestoreMissing.vala:340
#, c-format
msgid "Scanning for files from about a month ago…"
msgid_plural "Scanning for files from about %d months ago…"
msgstr[0] ""
msgstr[1] ""
#: deja-dup/AssistantRestoreMissing.vala:345
#: deja-dup/AssistantRestoreMissing.vala:347
#, c-format
msgid "Scanning for files from about a year ago…"
msgid_plural "Scanning for files from about %d years ago…"
msgstr[0] ""
msgstr[1] ""
#: deja-dup/AssistantRestoreMissing.vala:438
#: deja-dup/AssistantRestoreMissing.vala:440
msgid "Scanning finished"
msgstr ""
#: deja-dup/Assistant.vala:314
#: deja-dup/Assistant.vala:320
msgid "Co_ntinue"
msgstr ""
#: deja-dup/Assistant.vala:320
#: deja-dup/Assistant.vala:326
msgctxt "verb"
msgid "_Test"
msgstr ""
#: deja-dup/Assistant.vala:356
#: deja-dup/Assistant.vala:362
msgid "_Resume Later"
msgstr ""
#: deja-dup/Assistant.vala:362
#: deja-dup/Assistant.vala:368
msgid "_Back"
msgstr ""
#: deja-dup/Assistant.vala:364
#: deja-dup/Assistant.vala:370
msgid "_Close"
msgstr ""
#: deja-dup/Assistant.vala:370 deja-dup/widgets/ConfigList.vala:255
#: deja-dup/widgets/ConfigLocationFile.vala:52
#: deja-dup/Assistant.vala:376
msgid "_Cancel"
msgstr ""
#: deja-dup/Assistant.vala:381
#: deja-dup/Assistant.vala:387
msgid "_Forward"
msgstr ""
......@@ -902,11 +901,15 @@ msgstr ""
msgid "You must provide a directory, not a file"
msgstr ""
#: deja-dup/main.vala:238
#: deja-dup/main.vala:183
msgid "Automatic backup"
msgstr ""
#: deja-dup/main.vala:271
msgid "Scheduled backup delayed"
msgstr ""
#: deja-dup/main.vala:257
#: deja-dup/main.vala:290
msgid "translator-credits"
msgstr ""
......@@ -1148,7 +1151,7 @@ msgid_plural "A backup automatically starts every %d days."
msgstr[0] ""
msgstr[1] ""
#: deja-dup/widgets/ConfigList.vala:178 deja-dup/widgets/ConfigList.vala:256
#: deja-dup/widgets/ConfigList.vala:178 deja-dup/widgets/ConfigList.vala:255
msgid "_Add"
msgstr ""
......@@ -1220,7 +1223,7 @@ msgstr ""
msgid "Choose Folder"
msgstr ""
#: deja-dup/widgets/ConfigLocationFile.vala:53
#: deja-dup/widgets/ConfigLocationFile.vala:52
msgid "_OK"
msgstr ""
......@@ -1491,23 +1494,27 @@ msgid "Could not restore ‘%s’: Not a valid file location"
msgstr ""
#. Tiny backup location. Suggest they get a larger one.
#: libdeja/tools/duplicity/DuplicityJob.vala:535
msgid "Backup location is too small. Try using one with more space."
#: libdeja/tools/duplicity/DuplicityJob.vala:536
#, c-format
msgid "Backup location is too small. Try using one with at least %s."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:558
msgid "Backup location does not have enough free space."
#: libdeja/tools/duplicity/DuplicityJob.vala:560
#, c-format
msgid ""
"Backup location does not have enough free space. Try using one with at least "
"%s."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:578
#: libdeja/tools/duplicity/DuplicityJob.vala:592
#: libdeja/tools/duplicity/DuplicityJob.vala:581
#: libdeja/tools/duplicity/DuplicityJob.vala:595
msgid "Cleaning up…"
msgstr ""
#. OK, we succeeded yay! But some files didn't make it into the backup
#. because we couldn't read them. So tell the user so they don't think
#. everything is hunky dory.
#: libdeja/tools/duplicity/DuplicityJob.vala:688
#: libdeja/tools/duplicity/DuplicityJob.vala:691
msgid ""
"Could not back up the following files. Please make sure you are able to "
"open them."
......@@ -1516,7 +1523,7 @@ msgstr ""
#. OK, we succeeded yay! But some files didn't actually restore
#. because we couldn't write to them. So tell the user so they
#. don't think everything is hunky dory.
#: libdeja/tools/duplicity/DuplicityJob.vala:704
#: libdeja/tools/duplicity/DuplicityJob.vala:707
msgid ""
"Could not restore the following files. Please make sure you are able to "
"write to them."
......@@ -1525,7 +1532,7 @@ msgstr ""
#. make text a little nicer than duplicity gives
#. duplicity gives something like "home/blah/blah not found in archive,
#. no files restored".
#: libdeja/tools/duplicity/DuplicityJob.vala:948
#: libdeja/tools/duplicity/DuplicityJob.vala:951
#, c-format
msgid "Could not restore ‘%s’: File not found in backup"
msgstr ""
......@@ -1533,17 +1540,17 @@ msgstr ""
#. notify upper layers, if they want to do anything
#. Duplicity tried to ask the user what the encryption password is.
#. notify upper layers, if they want to do anything
#: libdeja/tools/duplicity/DuplicityJob.vala:961
#: libdeja/tools/duplicity/DuplicityJob.vala:1060
#: libdeja/tools/duplicity/DuplicityJob.vala:1064
#: libdeja/tools/duplicity/DuplicityJob.vala:964
#: libdeja/tools/duplicity/DuplicityJob.vala:1063
#: libdeja/tools/duplicity/DuplicityJob.vala:1067
msgid "Bad encryption password."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:967
#: libdeja/tools/duplicity/DuplicityJob.vala:970
msgid "Computer name changed"
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:967
#: libdeja/tools/duplicity/DuplicityJob.vala:970
#, c-format
msgid ""
"The existing backup is of a computer named %s, but the current computer’s "
......@@ -1551,69 +1558,69 @@ msgid ""
"location."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1002
#: libdeja/tools/duplicity/DuplicityJob.vala:1005
#, c-format
msgid "Permission denied when trying to create ‘%s’."
msgstr ""
#. assume error is on backend side
#: libdeja/tools/duplicity/DuplicityJob.vala:1006
#: libdeja/tools/duplicity/DuplicityJob.vala:1010
#: libdeja/tools/duplicity/DuplicityJob.vala:1009
#: libdeja/tools/duplicity/DuplicityJob.vala:1013
#, c-format
msgid "Permission denied when trying to read ‘%s’."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1014
#: libdeja/tools/duplicity/DuplicityJob.vala:1017
#, c-format
msgid "Permission denied when trying to delete ‘%s’."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1021
#: libdeja/tools/duplicity/DuplicityJob.vala:1024
#, c-format
msgid "Backup location ‘%s’ does not exist."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1027
#: libdeja/tools/duplicity/DuplicityJob.vala:1079
#: libdeja/tools/duplicity/DuplicityJob.vala:1030
#: libdeja/tools/duplicity/DuplicityJob.vala:1082
msgid "No space left."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1041
#: libdeja/tools/duplicity/DuplicityJob.vala:1044
msgid "Invalid ID."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1043
#: libdeja/tools/duplicity/DuplicityJob.vala:1046
msgid "Invalid secret key."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1045
#: libdeja/tools/duplicity/DuplicityJob.vala:1048
msgid "Your Amazon Web Services account is not signed up for the S3 service."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1054
#: libdeja/tools/duplicity/DuplicityJob.vala:1057
msgid "S3 bucket name is not available."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1068
#: libdeja/tools/duplicity/DuplicityJob.vala:1071
#, c-format
msgid "Error reading file ‘%s’."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1070
#: libdeja/tools/duplicity/DuplicityJob.vala:1073
#, c-format
msgid "Error writing file ‘%s’."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1081
#: libdeja/tools/duplicity/DuplicityJob.vala:1084
#, c-format
msgid "No space left in ‘%s’."
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1089
#: libdeja/tools/duplicity/DuplicityJob.vala:1092
msgid "No backup files found"
msgstr ""
#: libdeja/tools/duplicity/DuplicityJob.vala:1139
#: libdeja/tools/duplicity/DuplicityJob.vala:1142
msgid "Uploading…"
msgstr ""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment