+(defun elmo-filter-connect-signals (folder target)
+ (elmo-connect-signal
+ target 'flag-changing folder
+ (elmo-define-signal-handler (folder target number old-flags new-flags)
+ (elmo-filter-add-flag-count folder number old-flags -1)
+ (elmo-filter-add-flag-count folder number new-flags)
+ (elmo-emit-signal 'flag-changing folder number old-flags new-flags))
+ (elmo-define-signal-filter (folder target number)
+ (memq number (elmo-folder-list-messages folder nil t))))
+ (elmo-connect-signal
+ target 'flag-changed folder
+ (elmo-define-signal-handler (folder target numbers)
+ (let ((filterd (elmo-list-filter
+ (elmo-folder-list-messages folder nil t)
+ numbers)))
+ (when filterd
+ (elmo-emit-signal 'flag-changed folder filterd)))))
+ (elmo-connect-signal
+ target 'cache-changed folder
+ (elmo-define-signal-handler (folder target number)
+ (elmo-emit-signal 'cache-changed folder number))
+ (elmo-define-signal-filter (folder target number)
+ (memq number (elmo-folder-list-messages folder nil t)))))
+