+(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 old-flags -1)
+ (elmo-filter-add-flag-count folder 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 'status-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 'status-changed folder filterd)))))
+ (elmo-connect-signal
+ target 'update-overview folder
+ (elmo-define-signal-handler (folder target number)
+ (elmo-emit-signal 'update-overview folder number))
+ (elmo-define-signal-filter (folder target number)
+ (memq number (elmo-folder-list-messages folder nil t)))))
+