diff options
| -rw-r--r-- | examples/background-image.py | 22 | ||||
| -rw-r--r-- | examples/block-size-column.py | 12 | ||||
| -rw-r--r-- | examples/location-widget-provider.py | 7 | ||||
| -rw-r--r-- | examples/md5sum-property-page.py | 31 | ||||
| -rw-r--r-- | examples/open-terminal.py | 25 | ||||
| -rw-r--r-- | examples/submenu.py | 33 | ||||
| -rw-r--r-- | examples/update-file-info-async.py | 9 | 
7 files changed, 73 insertions, 66 deletions
| diff --git a/examples/background-image.py b/examples/background-image.py index 0f5bea6..426dc4f 100644 --- a/examples/background-image.py +++ b/examples/background-image.py @@ -1,22 +1,18 @@ -import urllib - -import mateconf -import caja +from gi.repository import Caja, GObject, Gio  SUPPORTED_FORMATS = 'image/jpeg', 'image/png' -BACKGROUND_KEY = '/desktop/mate/background/picture_filename' +BACKGROUND_SCHEMA = 'org.mate.desktop.background' +BACKGROUND_KEY = 'picture-uri' -class BackgroundImageExtension(caja.MenuProvider): +class BackgroundImageExtension(GObject.GObject, Caja.MenuProvider):      def __init__(self): -        self.mateconf = mateconf.client_get_default() +        self.bgsettings = Gio.Settings.new(BACKGROUND_SCHEMA)      def menu_activate_cb(self, menu, file):          if file.is_gone():              return -        # Strip leading file:// -        filename = urllib.unquote(file.get_uri()[7:]) -        self.mateconf.set_string(BACKGROUND_KEY, filename) +        self.bgsettings[BACKGROUND_KEY] = file.get_uri()      def get_file_items(self, window, files):          if len(files) != 1: @@ -33,8 +29,8 @@ class BackgroundImageExtension(caja.MenuProvider):          if file.get_uri_scheme() != 'file':              return -        item = caja.MenuItem('Caja::set_background_image', -                                 'Use as background image', -                                 'Set the current image as a background image') +        item = Caja.MenuItem(name='Caja::set_background_image', +                                 label='Use as background image', +                                 tip='Set the current image as a background image')          item.connect('activate', self.menu_activate_cb, file)          return item, diff --git a/examples/block-size-column.py b/examples/block-size-column.py index 6f94158..3fd64ce 100644 --- a/examples/block-size-column.py +++ b/examples/block-size-column.py @@ -1,17 +1,17 @@  import os  import urllib -import caja +from gi.repository import GObject, Caja -class ColumnExtension(caja.ColumnProvider, caja.InfoProvider): +class ColumnExtension(GObject.GObject, Caja.ColumnProvider, Caja.InfoProvider):      def __init__(self):          pass      def get_columns(self): -        return caja.Column("CajaPython::block_size_column", -                               "block_size", -                               "Block size", -                               "Get the block size"), +        return Caja.Column(name="CajaPython::block_size_column", +                               attribute="block_size", +                               label="Block size", +                               description="Get the block size"),      def update_file_info(self, file):          if file.get_uri_scheme() != 'file': diff --git a/examples/location-widget-provider.py b/examples/location-widget-provider.py index 0e7504c..c12301c 100644 --- a/examples/location-widget-provider.py +++ b/examples/location-widget-provider.py @@ -1,12 +1,11 @@ -import caja -import gtk +from gi.repository import Caja, Gtk, GObject -class LocationProviderExample(caja.LocationWidgetProvider): +class LocationProviderExample(GObject.GObject, Caja.LocationWidgetProvider):      def __init__(self):          pass      def get_widget(self, uri, window): -        entry = gtk.Entry() +        entry = Gtk.Entry()          entry.set_text(uri)          entry.show()          return entry diff --git a/examples/md5sum-property-page.py b/examples/md5sum-property-page.py index 13c59e7..dd2a7ee 100644 --- a/examples/md5sum-property-page.py +++ b/examples/md5sum-property-page.py @@ -1,10 +1,9 @@  import hashlib  import urllib -import gtk -import caja +from gi.repository import Caja, Gtk, GObject -class MD5SumPropertyPage(caja.PropertyPageProvider): +class MD5SumPropertyPage(GObject.GObject, Caja.PropertyPageProvider):      def __init__(self):          pass @@ -21,22 +20,28 @@ class MD5SumPropertyPage(caja.PropertyPageProvider):          filename = urllib.unquote(file.get_uri()[7:]) -        self.property_label = gtk.Label('MD5Sum') +        self.property_label = Gtk.Label('MD5Sum')          self.property_label.show() -        self.hbox = gtk.HBox(0, False) +        self.hbox = Gtk.HBox(homogeneous=False, spacing=0)          self.hbox.show() -        label = gtk.Label('MD5Sum:') +        label = Gtk.Label('MD5Sum:')          label.show() -        self.hbox.pack_start(label) +        self.hbox.pack_start(label, False, False, 0) -        self.value_label = gtk.Label() -        self.hbox.pack_start(self.value_label) +        self.value_label = Gtk.Label() +        self.hbox.pack_start(self.value_label, False, False, 0) -        md5sum = hashlib.md5(filename).hexdigest() -        self.value_label.set_text(md5sum) +        md5sum = hashlib.md5() +        with open(filename,'rb') as f:  +            for chunk in iter(lambda: f.read(8192), ''):  +                md5sum.update(chunk) +        f.close()        + +        self.value_label.set_text(md5sum.hexdigest())          self.value_label.show() -        return caja.PropertyPage("CajaPython::md5_sum", -                                     self.property_label, self.hbox), +        return Caja.PropertyPage(name="CajaPython::md5_sum", +                                     label=self.property_label,  +                                     page=self.hbox), diff --git a/examples/open-terminal.py b/examples/open-terminal.py index 8e22ccf..1d0e5aa 100644 --- a/examples/open-terminal.py +++ b/examples/open-terminal.py @@ -2,19 +2,18 @@  import os  import urllib -import gtk -import caja -import mateconf +from gi.repository import Caja, GObject, Gio -TERMINAL_KEY = '/desktop/mate/applications/terminal/exec' +TERMINAL_SCHEMA = 'org.mate.applications-terminal' +TERMINAL_KEY = 'exec' -class OpenTerminalExtension(caja.MenuProvider): +class OpenTerminalExtension(Caja.MenuProvider, GObject.GObject):      def __init__(self): -        self.client = mateconf.client_get_default() +        self.gsettings = Gio.Settings.new(TERMINAL_SCHEMA)      def _open_terminal(self, file):          filename = urllib.unquote(file.get_uri()[7:]) -        terminal = self.client.get_string(TERMINAL_KEY) +        terminal = self.gsettings[TERMINAL_KEY]          os.chdir(filename)          os.system('%s &' % terminal) @@ -33,15 +32,15 @@ class OpenTerminalExtension(caja.MenuProvider):          if not file.is_directory() or file.get_uri_scheme() != 'file':              return -        item = caja.MenuItem('CajaPython::openterminal_file_item', -                                 'Open Terminal' , -                                 'Open Terminal In %s' % file.get_name()) +        item = Caja.MenuItem(name='CajaPython::openterminal_file_item', +                                 label='Open Terminal' , +                                 tip='Open Terminal In %s' % file.get_name())          item.connect('activate', self.menu_activate_cb, file)          return item,      def get_background_items(self, window, file): -        item = caja.MenuItem('CajaPython::openterminal_item', -                                 'Open Terminal Here', -                                 'Open Terminal In This Directory') +        item = Caja.MenuItem(name='CajaPython::openterminal_item', +                                 label='Open Terminal Here', +                                 tip='Open Terminal In This Directory')          item.connect('activate', self.menu_background_activate_cb, file)          return item, diff --git a/examples/submenu.py b/examples/submenu.py index 7b91459..9d149f5 100644 --- a/examples/submenu.py +++ b/examples/submenu.py @@ -1,28 +1,37 @@ -import caja +from gi.repository import Caja, GObject -class ExampleMenuProvider(caja.MenuProvider): -     -    # Caja crashes if a plugin doesn't implement the __init__ method. -    # See Bug #374958 +class ExampleMenuProvider(GObject.GObject, Caja.MenuProvider):      def __init__(self):          pass      def get_file_items(self, window, files): -        top_menuitem = caja.MenuItem('ExampleMenuProvider::Foo', 'Foo', '') +        top_menuitem = Caja.MenuItem(name='ExampleMenuProvider::Foo',  +                                         label='Foo',  +                                         tip='', +                                         icon='') -        submenu = caja.Menu() +        submenu = Caja.Menu()          top_menuitem.set_submenu(submenu) -        sub_menuitem = caja.MenuItem('ExampleMenuProvider::Bar', 'Bar', '') +        sub_menuitem = Caja.MenuItem(name='ExampleMenuProvider::Bar',  +                                         label='Bar',  +                                         tip='', +                                         icon='')          submenu.append_item(sub_menuitem)          return top_menuitem,      def get_background_items(self, window, file): -        submenu = caja.Menu() -        submenu.append_item(caja.MenuItem('ExampleMenuProvider::Bar', 'Bar', '')) - -        menuitem = caja.MenuItem('ExampleMenuProvider::Foo', 'Foo', '') +        submenu = Caja.Menu() +        submenu.append_item(Caja.MenuItem(name='ExampleMenuProvider::Bar2',  +                                         label='Bar2',  +                                         tip='', +                                         icon='')) + +        menuitem = Caja.MenuItem(name='ExampleMenuProvider::Foo2',  +                                         label='Foo2',  +                                         tip='', +                                         icon='')          menuitem.set_submenu(submenu)          return menuitem, diff --git a/examples/update-file-info-async.py b/examples/update-file-info-async.py index 349b169..e4f90c7 100644 --- a/examples/update-file-info-async.py +++ b/examples/update-file-info-async.py @@ -1,15 +1,14 @@ -import caja -import gobject +from gi.repository import Caja, GObject -class UpdateFileInfoAsync(caja.InfoProvider): +class UpdateFileInfoAsync(GObject.GObject, Caja.InfoProvider):      def __init__(self):          pass      def update_file_info_full(self, provider, handle, closure, file):          print "update_file_info_full"          gobject.timeout_add_seconds(3, self.update_cb, provider, handle, closure) -        return caja.OPERATION_IN_PROGRESS +        return Caja.OperationResult.IN_PROGRESS      def update_cb(self, provider, handle, closure):          print "update_cb" -        self.update_complete_invoke(provider, handle, closure, result=caja.OPERATION_FAILED) +        Caja.info_provider_update_complete_invoke(closure, provider, handle, Caja.OperationResult.FAILED) | 
