Updating branch refs/heads/master to c6d8169c7f32151d96923e7a275c3249d634c7c3 (commit) from 19406c01840b840ceb69aee5ebb904c1d32b9e0e (commit)
commit c6d8169c7f32151d96923e7a275c3249d634c7c3 Author: Christian Dywan <christ...@twotoasts.de> Date: Sun Jul 18 20:30:28 2010 +0200 Add a toplevel monitor for newly created folders postler/postler-folders.vala | 20 +++++++++++++++----- 1 files changed, 15 insertions(+), 5 deletions(-) diff --git a/postler/postler-folders.vala b/postler/postler-folders.vala index cae5245..b574cb0 100644 --- a/postler/postler-folders.vala +++ b/postler/postler-folders.vala @@ -48,16 +48,17 @@ public class Postler.Folders : Gtk.TreeView { NAME, LOCATION, INFO, + TOPLEVEL_MONITOR, FOLDER_MONITOR, UNREAD_MONITOR, } public Folders (Accounts accounts) { this.accounts = accounts; - store = new Gtk.TreeStore (6, + store = new Gtk.TreeStore (7, typeof (string), typeof (string), typeof (string), typeof (AccountInfo), - typeof (GLib.FileMonitor), typeof (GLib.FileMonitor)); + typeof (GLib.FileMonitor), typeof (GLib.FileMonitor), typeof (GLib.FileMonitor)); set_model (store); insert_column_with_attributes (-1, "Icon", new Gtk.CellRendererPixbuf (), "stock-id", Columns.ICON); @@ -113,6 +114,8 @@ public class Postler.Folders : Gtk.TreeView { } try { + var folder_dir = File.new_for_path (account_info.path); + Gtk.TreeIter account_iter; bool existing_iter = false; if (store.iter_children (out account_iter, null)) { @@ -134,14 +137,21 @@ public class Postler.Folders : Gtk.TreeView { while (store.iter_children (out iter, account_iter)) store.remove (iter); } - else + else { + var monitor = folder_dir.monitor_directory (0, null); + monitor.changed.connect ((monitor, file, other, event) => { + var account_infos = new GLib.List<AccountInfo> (); + account_infos.prepend (account_info); + populate_accounts (account_infos); + }); store.insert_with_values (out account_iter, null, -1, Columns.ICON, Gtk.STOCK_DIRECTORY, Columns.NAME, account_info.name, Columns.LOCATION, null, - Columns.INFO, account_info); + Columns.INFO, account_info, + Columns.TOPLEVEL_MONITOR, monitor); + } - var folder_dir = File.new_for_path (account_info.path); var folder_enumerator = folder_dir.enumerate_children ( FILE_ATTRIBUTE_STANDARD_NAME, 0, null); FileInfo info; _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits