[Xfce4-commits] <postler:master> Recognise ~- as subfolder separator
Christian Dywan
noreply at xfce.org
Fri Nov 5 01:02:01 CET 2010
Updating branch refs/heads/master
to 560cab7bc7ea8639323c8891836e22bfabfd17d4 (commit)
from 76c5b41bbab7ddd32e16aeeedb03deeac4a51c4c (commit)
commit 560cab7bc7ea8639323c8891836e22bfabfd17d4
Author: Christian Dywan <christian at twotoasts.de>
Date: Thu Nov 4 23:19:17 2010 +0100
Recognise ~- as subfolder separator
postler/postler-folders.vala | 38 +++++++++++++++++++++++++++++++++++---
postler/postler-messages.vala | 2 ++
2 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/postler/postler-folders.vala b/postler/postler-folders.vala
index b574cb0..bf948ed 100644
--- a/postler/postler-folders.vala
+++ b/postler/postler-folders.vala
@@ -171,7 +171,39 @@ public class Postler.Folders : Gtk.TreeView {
store.set (account_iter,
Columns.FOLDER_MONITOR, monitor);
+ Gtk.TreeIter parent_iter = account_iter;
Gtk.TreeIter folder_iter;
+ string folder_name = name;
+
+ /* A ~- separates parent and subfolder */
+ if ("~-" in name) {
+ string[]? name_pieces = name.split ("~-");
+ string folder_dir_path = folder_dir.get_path ();
+ existing_iter = false;
+ if (store.iter_children (out folder_iter, account_iter)) {
+ do {
+ string existing_parent;
+ store.get (folder_iter,
+ Columns.LOCATION, out existing_parent);
+ if (folder_dir_path == existing_parent) {
+ parent_iter = folder_iter;
+ existing_iter = true;
+ break;
+ }
+ } while (store.iter_next (ref folder_iter));
+ }
+ if (!existing_iter) {
+ store.insert_with_values (out parent_iter, account_iter, -1,
+ Columns.ICON, Gtk.STOCK_DIRECTORY,
+ Columns.NAME, name_pieces[0],
+ Columns.LOCATION, folder_dir_path,
+ Columns.INFO, account_info);
+ }
+ folder_name = name_pieces[1];
+ } else if ("~~" in name) {
+ folder_name = folder_name.replace ("~~", "~");
+ }
+
if (name == "INBOX") {
var msg_dir = folder_dir.resolve_relative_path (
account_info.path + "/" + name + "/new");
@@ -200,9 +232,9 @@ public class Postler.Folders : Gtk.TreeView {
}
}
- store.insert_with_values (out folder_iter, account_iter, -1,
+ store.insert_with_values (out folder_iter, parent_iter, -1,
Columns.ICON, stock_id,
- Columns.NAME, localized_name ?? name,
+ Columns.NAME, localized_name ?? folder_name,
Columns.LOCATION, account_info.path + "/" + name,
Columns.INFO, account_info);
var status_dir = folder_dir.resolve_relative_path (name);
@@ -210,7 +242,7 @@ public class Postler.Folders : Gtk.TreeView {
if (!new_dir.query_exists (null))
store.remove (folder_iter);
}
- expand_row (store.get_path (account_iter), true);
+ expand_row (store.get_path (account_iter), false);
}
catch (GLib.Error error) {
GLib.critical (_("Failed to read folder \"%s\": %s"),
diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index dcec8f7..381829c 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -412,6 +412,8 @@ public class Postler.Messages : Gtk.TreeView {
clear ();
if (location == null)
return true;
+ if (!FileUtils.test (location + "/cur", FileTest.EXISTS))
+ return true;
model = sort = null;
More information about the Xfce4-commits
mailing list