以前、QsMLで民田さんに提案していただいたことですが、サブアカウントの一括切り替えも出来るようにしたいですね。UI的に複雑になるのはいやなので、単純に同じ名前のサブアカウントがあったら全て切り替えるというのはどうでしょう?
オフライン周りに取り掛かりました。基本的なやり方は今までと同じですが、今回からリモートフォルダにローカルメールを置けるようにしたいと思っています。例えば今までだと、オフライン状態であるフォルダから別のフォルダにメールを移動しても、次に同期するときまでは移動先のフォルダにメールが現われませんでしたが、そこに仮メッセージが現われるようにしたいと思います。でもって、次回同期するときにはその仮に作ったメッセージは削除してサーバからリストをもらいなおすということで。
動作自体はそれほど難しくないですが、その仮メッセージに対してさらに移動・削除・フラグ変更などをされた場合の処理を考えると結構ややこしいですね。
試しに書いてみたアドレス帳のスキーマ(in RELAX NG Compact Syntax)です。こんな感じで他の設定ファイルについても書いておくとわからなくならないですね。コメントなんかもつけたら別のところにまとめて置きたい所です。
datatypes xsd="http://www.w3.org/2001/XMLSchema-datatypes" element addressBook { element entry { element name { xsd:string }, element addresses { element address { xsd:string, attribute alias { xsd:string }?, attribute category { xsd:string { pattern = "[^/]+(/[^/]+)*" } }?, attribute comment { xsd:string }?, attribute rfc2822 { xsd:boolean }? }+ } }* }