1
1
using Gtk ;
2
2
using Cryptor.Data ;
3
+ using GLib ;
3
4
4
5
namespace Cryptor.UI {
5
6
[GtkTemplate (ui = "/org /moson /cryptor /ui /CryptorWindow .ui ")]
@@ -55,7 +56,6 @@ namespace Cryptor.UI {
55
56
}
56
57
}
57
58
this . delete_event. connect (save_before_quit);
58
-
59
59
show_tray_icon ();
60
60
}
61
61
@@ -186,6 +186,11 @@ namespace Cryptor.UI {
186
186
show_vault_window (- 1 );
187
187
}
188
188
189
+ [GtkCallback ]
190
+ private void on_mi_refresh_activate (Gtk . MenuItem mi) {
191
+ sync_treeview_from_conf ();
192
+ }
193
+
189
194
private void show_tray_icon () {
190
195
if (! config. show_tray_icon) {
191
196
if (tray != null ) {
@@ -201,6 +206,7 @@ namespace Cryptor.UI {
201
206
this . hide ();
202
207
} else {
203
208
this . show_all ();
209
+ sync_treeview_from_conf ();
204
210
}
205
211
} else if (ev. button == 3 ) {
206
212
var menu = new Gtk .Menu ();
@@ -211,6 +217,7 @@ namespace Cryptor.UI {
211
217
this . hide ();
212
218
} else {
213
219
this . show_all ();
220
+ sync_treeview_from_conf ();
214
221
}
215
222
});
216
223
menu. append (show);
@@ -241,15 +248,13 @@ namespace Cryptor.UI {
241
248
}
242
249
try {
243
250
Gocrypt . mount_vault (vault. path, vault. mount_point, password, (vault. mode == " r" ), vault. reverse, vault. custom_options);
244
- vault. is_mounted = true ;
245
251
sync_treeview_from_conf ();
246
252
} catch (Error e) {
247
253
if (e. message. contains (" fusermount exited with code 256" )) {
248
254
if (Utils . show_question (this , " %s\n\n%s\n%s " . printf (e. message, _(" Vault might be mounted already." ), _(" Shall I retry unmounting it first?" ))) == ResponseType . YES ) {
249
255
try {
250
256
Gocrypt . unmount_vault (vault. mount_point);
251
257
Gocrypt . mount_vault (vault. path, vault. mount_point, password, (vault. mode == " r" ), vault. reverse, vault. custom_options);
252
- vault. is_mounted = true ;
253
258
sync_treeview_from_conf ();
254
259
} catch (Error e) {
255
260
Utils . show_error (this , " %s\n%s " . printf (_(" Error re-mounting vault:" ), e. message));
@@ -262,7 +267,6 @@ namespace Cryptor.UI {
262
267
} else {
263
268
try {
264
269
Gocrypt . unmount_vault (vault. mount_point);
265
- vault. is_mounted = false ;
266
270
sync_treeview_from_conf ();
267
271
} catch (Error e) {
268
272
Utils . show_error (this , " %s\n%s " . printf (_(" Error unmounting vault:" ), e. message));
@@ -340,6 +344,10 @@ namespace Cryptor.UI {
340
344
}
341
345
342
346
private void sync_treeview_from_conf () {
347
+ foreach (var vault in config. vaults) {
348
+ var entry = new UnixMountEntry (vault. mount_point, null );
349
+ vault. is_mounted = entry != null ;
350
+ }
343
351
list_store. clear ();
344
352
foreach (var v in config. vaults) {
345
353
TreeIter iter;
0 commit comments