ActiveState Community

File Save notification

Posted by bcorfman on 2007-05-15 05:30
OS: All / Any

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?

ToddW | Tue, 2007-05-15 08:42

You will need to use a nsIObserver object to listen for changes through the global event notification system.

Example for python:

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

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

Cheers,
Todd