[Xfce4-commits] <postler:master> Monitor cur and new subfolders of selected folder
Christian Dywan
noreply at xfce.org
Sat Nov 13 17:50:01 CET 2010
Updating branch refs/heads/master
to 30aeb97f933e783919ce9a7161d8e650f21265af (commit)
from 6c19f12393ffa3e2db75357fa4cfe53c6132e214 (commit)
commit 30aeb97f933e783919ce9a7161d8e650f21265af
Author: Allen Lowe <lallenlowe at gmail.com>
Date: Fri Nov 12 23:51:27 2010 -0700
Monitor cur and new subfolders of selected folder
Fixes: https://bugs.launchpad.net/postler/+bug/671586
postler/postler-folders.vala | 27 ++++++++++++++++-----------
1 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/postler/postler-folders.vala b/postler/postler-folders.vala
index be182d6..86f3d38 100644
--- a/postler/postler-folders.vala
+++ b/postler/postler-folders.vala
@@ -19,7 +19,7 @@ public class Postler.Folders : Gtk.TreeView {
Accounts accounts;
Gtk.TreeStore store;
string last_location;
- FileMonitor folder_monitor;
+ FileMonitor[] folder_monitors = {};
public Postler.Messages messages { get; set; }
public string? selected_location {
@@ -265,27 +265,32 @@ public class Postler.Folders : Gtk.TreeView {
notify_property ("selected-location");
if (location != null) {
+ folder_monitors = {};
messages.populate (location);
messages.grab_focus ();
var location_dir = File.new_for_path (location);
+ var new_message_dir = location_dir.resolve_relative_path (
+ location + "/new");
var message_dir = location_dir.resolve_relative_path (
location + "/cur");
- try {
- folder_monitor = message_dir.monitor_directory (0, null);
- }
- catch (GLib.IOError error) {
- GLib.critical (_("Failed to monitor folder \"%s\": %s"),
- location, error.message);
- }
- folder_monitor.changed.connect ((folder_monitor, file, other, event) => {
- folder_monitor_changed (location);
- });
+ FileMonitor new_monitor = monitor_folder (new_message_dir, location);
+ FileMonitor monitor = monitor_folder (message_dir, location);
+ folder_monitors += new_monitor;
+ folder_monitors += monitor;
}
else
messages.clear ();
}
+ FileMonitor monitor_folder (File message_dir, string location) {
+ FileMonitor folder_monitor = message_dir.monitor_directory (0, null);
+ folder_monitor.changed.connect ((folder_monitor, file, other, event) => {
+ folder_monitor_changed (location);
+ });
+ return folder_monitor;
+ }
+
void import_folder (Gtk.TreeIter iter) {
var dialog = new Gtk.FileChooserDialog (_("Import Archived Mailbox"),
get_toplevel () as Gtk.Window, Gtk.FileChooserAction.OPEN);
More information about the Xfce4-commits
mailing list