In my extension, I want to get notified that a File: Save or File: Save As operation has occurred and kick off some additional processing of my own in response. How do I hook into a File:Save event?
class FileObserver:
_com_interfaces_ = [components.interfaces.nsIObserver] def observe(self, subject, topic, data): if topic == "file_changed":
file_uri = data # do something
observerSvc = components.classes["@mozilla.org/observer-service;1"].\
getService(components.interfaces.nsIObserverService)
observer_object = FileObserver()
observerSvc.addObserver(observer_object, "file_changed", 0)
class FileObserver:
_com_interfaces_ = [components.interfaces.nsIObserver]
def observe(self, subject, topic, data):
if topic == "file_changed":
file_uri = data
# do something
You will need to use a nsIObserver object to listen for changes through the global event notification system.
Example for python:
getService(components.interfaces.nsIObserverService)
observer_object = FileObserver()
observerSvc.addObserver(observer_object, "file_changed", 0)
class FileObserver:
_com_interfaces_ = [components.interfaces.nsIObserver]
def observe(self, subject, topic, data):
if topic == "file_changed":
file_uri = data
# do something
observerSvc = components.classes["@mozilla.org/observer-service;1"].\ getService(components.interfaces.nsIObserverService) observer_object = FileObserver() observerSvc.addObserver(observer_object, "file_changed", 0) class FileObserver: _com_interfaces_ = [components.interfaces.nsIObserver] def observe(self, subject, topic, data): if topic == "file_changed": file_uri = data # do somethingCheers,
Todd