Opened 14 months ago

Closed 7 months ago

#3002 closed feature-request (Fixed)

Convert Deluge Plugins to GtkBuilder

Reported by: Cas Owned by: DjLegolas
Priority: trivial Milestone: 2.0
Component: Plugin Version: develop (git)
Keywords: Cc:

Description

The plugins needs converting from libglade to Gtk Builder. It is a fairly simply process with the following steps:

Glade file conversion

  1. Open <filename>.glade file in Glade 3.8.1 UI designer.
  2. Choose Edit | Preferences
  3. Change Libglade to GtkBuilder and 2.24 toolkit.
  4. Then File | Save As... and change filename extension to .ui. (e.g. <filename>.ui)

PyGtk code conversion

  • Remove any gtk.glade imports
  • Replace glade.XML with Builder instance and add_from_file method, for example:
-      self.glade = gtk.glade.XML(get_resource('<filename>.glade'))
+      self.builder = gtk.Builder()
+      self.builder.add_from_file(get_resource('<filename>.ui'))
  • Ensure .glade files are renamed to .ui equivalents.
  • Replace glade.get_widget with builder.get_object
  • Replace glade.signal_autoconnect with builder.connect_signals
  • If the naming of handler methods match the signals it is possible to use builder.connect_signals(self) instead of specifying the mapping.

Also see: https://developer.gnome.org/gtk2/stable/gtk-migrating-GtkBuilder.html

Change History (5)

comment:1 Changed 14 months ago by Cas

Label plugin fixed: [665c047541]

Stats plugins fixed: [676574ff19]

comment:2 Changed 9 months ago by DjLegolas

  • Owner set to DjLegolas
  • Status changed from new to assigned

Changed the remaining plugins and all tests passes in the PR. See PR: ​https://github.com/deluge-torrent/deluge/pull/169

Last edited 9 months ago by DjLegolas (previous) (diff)

comment:3 Changed 9 months ago by DjLegolas

  • Resolution set to Fixed
  • Status changed from assigned to closed
Last edited 9 months ago by DjLegolas (previous) (diff)

comment:4 Changed 9 months ago by DjLegolas

  • Resolution Fixed deleted
  • Status changed from closed to reopened

Reopen cause: not my decision to close.

comment:5 Changed 7 months ago by Cas

  • Resolution set to Fixed
  • Status changed from reopened to closed
Note: See TracTickets for help on using tickets.