[conduit] Port to gtkbuilder
- From: John Stowers <jstowers src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [conduit] Port to gtkbuilder
- Date: Thu, 7 Jan 2010 15:52:00 +0000 (UTC)
commit 92d3989ae151bd43866b74babf65f05f98d4b0c2
Author: John Stowers <john stowers gmail com>
Date: Sat Nov 21 14:05:06 2009 +0100
Port to gtkbuilder
conduit/gtkui/Canvas.py | 34 +-
conduit/gtkui/ConflictResolver.py | 20 +-
conduit/gtkui/UI.py | 126 ++++--
data/Makefile.am | 2 +-
data/{conduit.glade => conduit.ui} | 886 +++++++++++++++++-------------------
5 files changed, 527 insertions(+), 541 deletions(-)
---
diff --git a/conduit/gtkui/Canvas.py b/conduit/gtkui/Canvas.py
index 8aafa96..b34f581 100644
--- a/conduit/gtkui/Canvas.py
+++ b/conduit/gtkui/Canvas.py
@@ -150,7 +150,7 @@ class Canvas(goocanvas.Canvas, _StyleMixin):
]
WELCOME_MESSAGE = _("Drag a Data Provider here to continue")
- def __init__(self, parentWindow, typeConverter, syncManager, dataproviderMenu, conduitMenu, msg):
+ def __init__(self, parentWindow, typeConverter, syncManager, gtkbuilder, msg):
"""
Draws an empty canvas of the appropriate size
"""
@@ -173,7 +173,7 @@ class Canvas(goocanvas.Canvas, _StyleMixin):
self.configurator = WindowConfigurator.WindowConfigurator(self.parentWindow)
- self._setup_popup_menus(dataproviderMenu, conduitMenu)
+ self._setup_popup_menus(gtkbuilder)
#set up DND from the treeview
self.drag_dest_set( gtk.gdk.BUTTON1_MASK | gtk.gdk.BUTTON3_MASK,
@@ -256,7 +256,7 @@ class Canvas(goocanvas.Canvas, _StyleMixin):
)
self._changing_style = False
- def _setup_popup_menus(self, dataproviderPopupXML, conduitPopupXML):
+ def _setup_popup_menus(self, gtkbuilder):
"""
Sets up the popup menus and their callbacks
@@ -268,31 +268,35 @@ class Canvas(goocanvas.Canvas, _StyleMixin):
@type dataproviderPopupXML: C{gtk.glade.XML}
"""
- self.dataproviderMenu = dataproviderPopupXML.get_widget("DataProviderMenu")
- self.configureMenuItem = dataproviderPopupXML.get_widget("configure")
+ self.dataproviderMenu = gtkbuilder.get_object("DataProviderMenu")
+ self.conduitMenu = gtkbuilder.get_object("ConduitMenu")
- self.conduitMenu = conduitPopupXML.get_widget("ConduitMenu")
- self.twoWayMenuItem = conduitPopupXML.get_widget("two_way_sync")
- self.slowSyncMenuItem = conduitPopupXML.get_widget("slow_sync")
- self.autoSyncMenuItem = conduitPopupXML.get_widget("auto_sync")
+ self.configureMenuItem = gtkbuilder.get_object("configure_dataprovider")
+ self.twoWayMenuItem = gtkbuilder.get_object("two_way_sync")
+ self.slowSyncMenuItem = gtkbuilder.get_object("slow_sync")
+ self.autoSyncMenuItem = gtkbuilder.get_object("auto_sync")
+
+ #connect the toggled signals
self.twoWayMenuItem.connect("toggled", self.on_two_way_sync_toggle)
self.slowSyncMenuItem.connect("toggled", self.on_slow_sync_toggle)
self.autoSyncMenuItem.connect("toggled", self.on_auto_sync_toggle)
+ #connect the dataprovider and conduit menu signals
+ for widget in ( "delete_dataprovider", "configure_dataprovider",
+ "refresh_dataprovider", "delete_conduit",
+ "synchronize_conduit", "refresh_conduit"):
+ gtkbuilder.get_object(widget).connect("activate", getattr(self, "on_%s_clicked" % widget))
+
#connect the conflict popups
self.policyWidgets = {}
for policyName in Conduit.CONFLICT_POLICY_NAMES:
for policyValue in Conduit.CONFLICT_POLICY_VALUES:
widgetName = "%s_%s" % (policyName,policyValue)
#store the widget and connect to toggled signal
- widget = conduitPopupXML.get_widget(widgetName)
+ widget = gtkbuilder.get_object(widgetName)
widget.connect("toggled", self.on_policy_toggle, policyName, policyValue)
self.policyWidgets[widgetName] = widget
-
- #connect the menu callbacks
- conduitPopupXML.signal_autoconnect(self)
- dataproviderPopupXML.signal_autoconnect(self)
def _delete_welcome(self):
idx = self.root.find_child(self.welcome)
@@ -383,7 +387,7 @@ class Canvas(goocanvas.Canvas, _StyleMixin):
self.selectedDataproviderItem = selected_dataprovider
self.selectedConduitItem = selected_conduit
-
+
def get_selected_conduit(self):
if self.selectedConduitItem:
return self.selectedConduitItem.model
diff --git a/conduit/gtkui/ConflictResolver.py b/conduit/gtkui/ConflictResolver.py
index e3a2ba9..119a02d 100644
--- a/conduit/gtkui/ConflictResolver.py
+++ b/conduit/gtkui/ConflictResolver.py
@@ -45,7 +45,7 @@ class ConflictResolver:
Manages a gtk.TreeView which is used for asking the user what they
wish to do in the case of a conflict
"""
- def __init__(self, widgets):
+ def __init__(self, gtkbuilder):
self.model = gtk.TreeStore( gobject.TYPE_PYOBJECT, #Conflict
gobject.TYPE_INT #Resolved direction
)
@@ -58,18 +58,18 @@ class ConflictResolver:
#Connect up the GUI
#this is the scrolled window in the bottom of the main gui
- self.expander = widgets.get_widget("conflictExpander")
+ self.expander = gtkbuilder.get_object("conflictExpander")
self.expander.connect("activate", self.on_expand)
- self.vpane = widgets.get_widget("vpaned1")
+ self.vpane = gtkbuilder.get_object("vpaned1")
self.expander.set_sensitive(False)
- self.fullscreenButton = widgets.get_widget("conflictFullscreenButton")
+ self.fullscreenButton = gtkbuilder.get_object("conflictFullscreenButton")
self.fullscreenButton.connect("toggled", self.on_fullscreen_toggled)
- self.conflictScrolledWindow = widgets.get_widget("conflictExpanderVBox")
- widgets.get_widget("conflictScrolledWindow").add(self.view)
+ self.conflictScrolledWindow = gtkbuilder.get_object("conflictExpanderVBox")
+ gtkbuilder.get_object("conflictScrolledWindow").add(self.view)
#this is a stand alone window for showing conflicts in an easier manner
self.standalone = gtk.Window()
self.standalone.set_title("Conflicts")
- self.standalone.set_transient_for(widgets.get_widget("MainWindow"))
+ self.standalone.set_transient_for(gtkbuilder.get_object("MainWindow"))
self.standalone.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
self.standalone.set_destroy_with_parent(True)
self.standalone.set_default_size(-1, 200)
@@ -77,10 +77,10 @@ class ConflictResolver:
#self.standalone.add(self.conflictScrolledWindow)
self.standalone.connect("delete-event", self.on_standalone_closed)
#the button callbacks are shared
- widgets.get_widget("conflictCancelButton").connect("clicked", self.on_cancel_conflicts)
- widgets.get_widget("conflictResolveButton").connect("clicked", self.on_resolve_conflicts)
+ gtkbuilder.get_object("conflictCancelButton").connect("clicked", self.on_cancel_conflicts)
+ gtkbuilder.get_object("conflictResolveButton").connect("clicked", self.on_resolve_conflicts)
#the state of the compare button is managed by the selection changed callback
- self.compareButton = widgets.get_widget("conflictCompareButton")
+ self.compareButton = gtkbuilder.get_object("conflictCompareButton")
self.compareButton.connect("clicked", self.on_compare_conflicts)
self.compareButton.set_sensitive(False)
diff --git a/conduit/gtkui/UI.py b/conduit/gtkui/UI.py
index 2dbf2a0..54fc483 100644
--- a/conduit/gtkui/UI.py
+++ b/conduit/gtkui/UI.py
@@ -8,7 +8,7 @@ License: GPLv2
"""
import thread
import gobject
-import gtk, gtk.glade
+import gtk
import os.path
import gettext
import threading
@@ -38,7 +38,7 @@ DEVELOPER_WEB_LINKS = (
)
#set up the gettext system and locales
-for module in gtk.glade, gettext:
+for module in (gettext,):
module.bindtextdomain('conduit', conduit.LOCALE_DIR)
module.textdomain('conduit')
if hasattr(module, 'bind_textdomain_codeset'):
@@ -85,11 +85,51 @@ class _PreconfiguredConduitMenu:
def _dp_removed(self, manager, dpw):
self.menu.remove(self._items[dpw])
+class _GtkBuilderWrapper(gtk.Builder):
+ def __init__(self, *path):
+ gtk.Builder.__init__(self)
+ self.add_from_file(os.path.join(*path))
+ self._resources = {}
+
+ def set_instance_resources(self, obj, *resources):
+ for r in resources:
+ setattr(obj, "_%s" % r.lower(), self.get_resource(r))
+
+ def get_object(self, name):
+ if name not in self._resources:
+ w = gtk.Builder.get_object(self,name)
+ if not w:
+ raise Exception("Could not find widget: %s" % name)
+ self._resources[name] = w
+
+ return self._resources[name]
+
+ def connect_signals(self, obj):
+ #FIXME: connect_signals seems to be only able to be called once
+ missing = gtk.Builder.connect_signals(self, obj)
+ if missing:
+ log.critical("Failed to connect signals: %s" % ",".join(missing))
+
class PreferencesWindow:
- def __init__(self, widgets):
- self._widgets = widgets
+
+ NOTEBOOK_FIXED_PAGES = 3
+
+ def __init__(self, gtkbuilder):
+ self._gtkbuilder = gtkbuilder
+ self._extra_pages = []
+ self._notebook = self._gtkbuilder.get_object("prop_notebook")
self._autostartmanager = AutostartManager.AutostartManager()
+ def _add_page(self, widget, label):
+ self._notebook.append_page(widget,label)
+ self._extra_pages.append(widget)
+
+ def _remove_extra_pages(self):
+ for w in self._extra_pages:
+ pn = self._notebook.page_num(w)
+ if pn >= self.NOTEBOOK_FIXED_PAGES:
+ self._notebook.remove_page( pn )
+
def show(self, parent):
def on_clear_button_clicked(sender, treeview, sqliteListStore):
treeview.set_model(None)
@@ -100,6 +140,9 @@ class PreferencesWindow:
CONVERT_FROM_MESSAGE = _("Convert from")
CONVERT_INTO_MESSAGE = _("into")
+ #reset the prefs window, removing all dynamically added pages
+ self._remove_extra_pages()
+
convertables = conduit.GLOBALS.typeConverter.get_convertables_list()
converterListStore = gtk.ListStore( str )
for froms,tos in convertables:
@@ -113,10 +156,6 @@ class PreferencesWindow:
for f in conduit.GLOBALS.moduleManager.invalidFiles:
dataProviderListStore.append(("Error loading file: %s" % f, False))
- #construct the dialog
- tree = gtk.glade.XML(self._widgets, "PreferencesDialog")
- notebook = tree.get_widget("prop_notebook")
-
#Show the DB contents to help debugging
if conduit.IS_DEVELOPMENT_VERSION:
vbox = gtk.VBox(False,5)
@@ -149,15 +188,15 @@ class PreferencesWindow:
clear.connect("clicked", on_clear_button_clicked, treeview, store)
vbox.pack_start(clear, False, False)
- notebook.append_page(vbox,gtk.Label(_('Relationship Database')))
+ self._add_page(vbox,gtk.Label(_('Relationship Database')))
- converterTreeView = tree.get_widget("dataConversionsTreeView")
+ converterTreeView = self._gtkbuilder.get_object("dataConversionsTreeView")
converterTreeView.set_model(converterListStore)
converterTreeView.append_column(gtk.TreeViewColumn(_("Conversions Available"),
gtk.CellRendererText(),
text=0)
)
- dataproviderTreeView = tree.get_widget("dataProvidersTreeView")
+ dataproviderTreeView = self._gtkbuilder.get_object("dataProvidersTreeView")
dataproviderTreeView.set_model(dataProviderListStore)
dataproviderTreeView.append_column(gtk.TreeViewColumn(_("Name"),
gtk.CellRendererText(),
@@ -169,18 +208,18 @@ class PreferencesWindow:
)
#fill out the configuration tab
- save_settings_check = tree.get_widget("save_settings_check")
+ save_settings_check = self._gtkbuilder.get_object("save_settings_check")
save_settings_check.set_active(conduit.GLOBALS.settings.get("save_on_exit"))
- status_icon_check = tree.get_widget("status_icon_check")
+ status_icon_check = self._gtkbuilder.get_object("status_icon_check")
status_icon_check.set_active(conduit.GLOBALS.settings.get("show_status_icon"))
- minimize_to_tray_check = tree.get_widget("minimize_to_tray_check")
+ minimize_to_tray_check = self._gtkbuilder.get_object("minimize_to_tray_check")
minimize_to_tray_check.set_active(conduit.GLOBALS.settings.get("gui_minimize_to_tray"))
- show_hints_check = tree.get_widget("show_hints_check")
+ show_hints_check = self._gtkbuilder.get_object("show_hints_check")
show_hints_check.set_active(conduit.GLOBALS.settings.get("gui_show_hints"))
#special case start at login. Because we copy the desktop file from the
#system to ~/.config/autostart, we require conduit to be installed
- start_at_login_check = tree.get_widget("start_at_login")
+ start_at_login_check = self._gtkbuilder.get_object("start_at_login")
if conduit.IS_INSTALLED:
start_at_login_check.set_active(self._autostartmanager.is_start_at_login_enabled())
else:
@@ -191,7 +230,7 @@ class PreferencesWindow:
currentValue = conduit.GLOBALS.settings.get("default_policy_%s" % policyName)
for policyValue in Conduit.CONFLICT_POLICY_VALUES:
name = "%s_%s" % (policyName,policyValue)
- widget = tree.get_widget(name+"_radio")
+ widget = self._gtkbuilder.get_object(name+"_radio")
widget.set_image(
gtk.image_new_from_icon_name(
Conduit.CONFLICT_POLICY_VALUE_ICONS[name],
@@ -204,12 +243,12 @@ class PreferencesWindow:
for i in conduit.GLOBALS.moduleManager.dataproviderFactories:#get_modules_by_type("dataprovider-factory"):
widget = i.setup_configuration_widget()
if widget:
- notebook.append_page(
+ self._add_page(
widget,
gtk.Label(i.get_name()))
#Show the dialog
- dialog = tree.get_widget("PreferencesDialog")
+ dialog = self._gtkbuilder.get_object("PreferencesDialog")
dialog.show_all()
dialog.set_transient_for(parent)
@@ -224,7 +263,7 @@ class PreferencesWindow:
for policyName in Conduit.CONFLICT_POLICY_NAMES:
for policyValue in Conduit.CONFLICT_POLICY_VALUES:
name = "%s_%s" % (policyName,policyValue)
- if tree.get_widget(name+"_radio").get_active() == True:
+ if self._gtkbuilder.get_object(name+"_radio").get_active() == True:
conduit.GLOBALS.settings.set(
"default_policy_%s" % policyName,
policyValue)
@@ -233,7 +272,7 @@ class PreferencesWindow:
for factory in conduit.GLOBALS.moduleManager.dataproviderFactories:
factory.save_configuration(response == gtk.RESPONSE_OK)
- dialog.destroy()
+ dialog.hide()
class MainWindow:
"""
@@ -256,11 +295,8 @@ class MainWindow:
gtk.icon_theme_get_default().prepend_search_path(i)
gtk.window_set_default_icon_name("conduit")
- self.conduitApplication = conduitApplication
- self.gladeFile = os.path.join(conduit.SHARED_DATA_DIR, "conduit.glade")
- self.widgets = gtk.glade.XML(self.gladeFile, "MainWindow")
-
- dic = { "on_mainwindow_delete" : self.on_window_closed,
+ signals = {
+ "on_mainwindow_delete" : self.on_window_closed,
"on_mainwindow_state_event" : self.on_window_state_event,
"on_synchronize_activate" : self.on_synchronize_all_clicked,
"on_cancel_activate" : self.on_cancel_all_clicked,
@@ -270,16 +306,18 @@ class MainWindow:
"on_about_activate" : self.on_about_conduit,
"on_contents_activate" : self.on_help,
"on_save1_activate" : self.save_settings,
- None : None
}
- self.widgets.signal_autoconnect(dic)
+
+ self.conduitApplication = conduitApplication
+ self.builder = _GtkBuilderWrapper(conduit.SHARED_DATA_DIR, "conduit.ui")
+ self.builder.connect_signals(signals)
#type converter and sync manager
self.type_converter = typeConverter
self.sync_manager = syncManager
#Initialize the mainWindow
- self.mainWindow = self.widgets.get_widget("MainWindow")
+ self.mainWindow = self.builder.get_object("MainWindow")
#Enable RGBA colormap
if conduit.GLOBALS.settings.get("gui_use_rgba_colormap") == True:
screen = self.mainWindow.get_screen()
@@ -295,18 +333,17 @@ class MainWindow:
self.mainWindow.set_title(title)
#Configure canvas
- self.canvasSW = self.widgets.get_widget("canvasScrolledWindow")
- self.hpane = self.widgets.get_widget("hpaned1")
+ self.canvasSW = self.builder.get_object("canvasScrolledWindow")
+ self.hpane = self.builder.get_object("hpaned1")
#start up the canvas
msg = MsgArea.MsgAreaController()
- self.widgets.get_widget("mainVbox").pack_start(msg, False, False)
+ self.builder.get_object("mainVbox").pack_start(msg, False, False)
self.canvas = Canvas.Canvas(
parentWindow=self.mainWindow,
typeConverter=self.type_converter,
syncManager=self.sync_manager,
- dataproviderMenu=gtk.glade.XML(self.gladeFile, "DataProviderMenu"),
- conduitMenu=gtk.glade.XML(self.gladeFile, "ConduitMenu"),
+ gtkbuilder=self.builder,
msg=msg
)
self.canvasSW.add(self.canvas)
@@ -315,27 +352,27 @@ class MainWindow:
# Populate the tree model
self.dataproviderTreeModel = Tree.DataProviderTreeModel()
- dataproviderScrolledWindow = self.widgets.get_widget("scrolledwindow2")
+ dataproviderScrolledWindow = self.builder.get_object("scrolledwindow2")
self.dataproviderTreeView = Tree.DataProviderTreeView(self.dataproviderTreeModel)
dataproviderScrolledWindow.add(self.dataproviderTreeView)
#Set up the expander used for resolving sync conflicts
- self.conflictResolver = ConflictResolver.ConflictResolver(self.widgets)
+ self.conflictResolver = ConflictResolver.ConflictResolver(self.builder)
#Preferences manager
- self.preferences = PreferencesWindow(self.gladeFile)
+ self.preferences = PreferencesWindow(self.builder)
#add the preconfigured Conduit menu
if conduit.GLOBALS.settings.get("gui_show_hints"):
self.preconfiguredConduitsMenu = _PreconfiguredConduitMenu()
- self.widgets.get_widget("file_menu").insert(self.preconfiguredConduitsMenu.item, 3)
+ self.builder.get_object("file_menu").insert(self.preconfiguredConduitsMenu.item, 3)
else:
self.preconfiguredConduitsMenu = None
#if running a development version, add some developer specific links
#to the help menu
if conduit.IS_DEVELOPMENT_VERSION:
- helpMenu = self.widgets.get_widget("help_menu")
+ helpMenu = self.builder.get_object("help_menu")
developersMenuItem = gtk.ImageMenuItem(_("Developers"))
developersMenuItem.set_image(
gtk.image_new_from_icon_name(
@@ -354,11 +391,20 @@ class MainWindow:
developersMenu.append(item)
#final GUI setup
- self.cancelSyncButton = self.widgets.get_widget('cancel')
+ self.cancelSyncButton = self.builder.get_object('cancel')
self.hpane.set_position(conduit.GLOBALS.settings.get("gui_hpane_postion"))
self.dataproviderTreeView.set_expand_rows()
self.window_state = 0
log.info("Main window constructed (thread: %s)" % thread.get_ident())
+
+ def _ui_get_resource(self, name):
+ if name not in self.builder_resources:
+ w = self.builder.get_object(name)
+ if not w:
+ raise Exception("Could not find widget: %s" % name)
+ self.builder_resources[name] = w
+
+ return self.builder_resources[name]
def on_developer_menu_item_clicked(self, menuitem, name, url):
threading.Thread(
diff --git a/data/Makefile.am b/data/Makefile.am
index 32de9e8..c6b7a91 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -34,7 +34,7 @@ update-icon-cache:
resourcesdir = $(pkgdatadir)
resources_DATA = \
- conduit.glade \
+ conduit.ui \
backpack.png \
evolution-tasks.png \
evolution-memos.png \
diff --git a/data/conduit.glade b/data/conduit.ui
similarity index 62%
rename from data/conduit.glade
rename to data/conduit.ui
index ad834ba..285fb4f 100644
--- a/data/conduit.glade
+++ b/data/conduit.ui
@@ -1,772 +1,660 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
-<glade-interface>
- <widget class="GtkWindow" id="MainWindow">
+<?xml version="1.0"?>
+<interface>
+ <requires lib="gtk+" version="2.16"/>
+ <!-- interface-naming-policy toplevel-contextual -->
+ <object class="GtkWindow" id="MainWindow">
<property name="title" translatable="yes">Title</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">Editor</atkproperty>
- </accessibility>
- <signal name="size_allocate" handler="on_mainwindow_resized"/>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="MainWindow-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes">Editor</property>
+ </object>
+ </child>
<signal name="delete_event" handler="on_mainwindow_delete"/>
<signal name="window_state_event" handler="on_mainwindow_state_event"/>
<child>
- <widget class="GtkVBox" id="vbox1">
+ <object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkMenuBar" id="menubar1">
+ <object class="GtkMenuBar" id="menubar1">
<property name="visible">True</property>
<child>
- <widget class="GtkMenuItem" id="file_menu_item">
+ <object class="GtkMenuItem" id="file_menu_item">
<property name="visible">True</property>
<property name="label" translatable="yes">_File</property>
<property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="file_menu">
+ <child type="submenu">
+ <object class="GtkMenu" id="file_menu">
<child>
- <widget class="GtkImageMenuItem" id="save1">
- <property name="visible">True</property>
+ <object class="GtkImageMenuItem" id="save1">
<property name="label">gtk-save</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_save1_activate"/>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="synchronize">
+ <object class="GtkImageMenuItem" id="synchronize">
+ <property name="label">Synchronize All</property>
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Synchronizes all groups</property>
- <property name="label" translatable="yes">Synchronize All</property>
- <property name="use_underline">True</property>
+ <property name="image">image7</property>
+ <property name="use_stock">False</property>
<signal name="activate" handler="on_synchronize_activate"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image67">
- <property name="visible">True</property>
- <property name="stock">gtk-execute</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="cancel">
+ <object class="GtkImageMenuItem" id="cancel">
+ <property name="label">Cancel Synchronization</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Cancel currently-synchronizing groups</property>
- <property name="label" translatable="yes">Cancel Synchronization</property>
- <property name="use_underline">True</property>
+ <property name="image">image8</property>
+ <property name="use_stock">False</property>
<signal name="activate" handler="on_cancel_activate"/>
- <child internal-child="image">
- <widget class="GtkImage" id="menu-item-image10">
- <property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="stock">gtk-cancel</property>
- </widget>
- </child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkSeparatorMenuItem" id="separator7">
+ <object class="GtkSeparatorMenuItem" id="separator7">
<property name="visible">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="quit">
- <property name="visible">True</property>
+ <object class="GtkImageMenuItem" id="quit">
<property name="label">gtk-quit</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_quit_activate"/>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkMenuItem" id="edit_menu_item">
+ <object class="GtkMenuItem" id="edit_menu_item">
<property name="visible">True</property>
<property name="label" translatable="yes">_Edit</property>
<property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="edit_menu">
+ <child type="submenu">
+ <object class="GtkMenu" id="edit_menu">
<child>
- <widget class="GtkImageMenuItem" id="clear_canvas">
+ <object class="GtkImageMenuItem" id="clear_canvas">
+ <property name="label">Clear Canvas</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">Clear Canvas</property>
- <property name="use_underline">True</property>
+ <property name="image">image9</property>
+ <property name="use_stock">False</property>
<signal name="activate" handler="on_clear_canvas_activate"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image68">
- <property name="visible">True</property>
- <property name="stock">gtk-clear</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkSeparatorMenuItem" id="separator2">
+ <object class="GtkSeparatorMenuItem" id="separator2">
<property name="visible">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="preferences">
- <property name="visible">True</property>
+ <object class="GtkImageMenuItem" id="preferences">
<property name="label">gtk-preferences</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_preferences_activate"/>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkMenuItem" id="help_menu_item">
+ <object class="GtkMenuItem" id="help_menu_item">
<property name="visible">True</property>
<property name="label" translatable="yes">_Help</property>
<property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="help_menu">
+ <child type="submenu">
+ <object class="GtkMenu" id="help_menu">
<child>
- <widget class="GtkImageMenuItem" id="contents">
+ <object class="GtkImageMenuItem" id="contents">
+ <property name="label">gtk-help</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">Contents</property>
<property name="use_underline">True</property>
+ <property name="use_stock">True</property>
<signal name="activate" handler="on_contents_activate"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image69">
- <property name="visible">True</property>
- <property name="stock">gtk-help</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="about">
- <property name="visible">True</property>
+ <object class="GtkImageMenuItem" id="about">
<property name="label">gtk-about</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_about_activate"/>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkHPaned" id="hpaned1">
+ <object class="GtkHPaned" id="hpaned1">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <signal name="size_request" handler="on_hpane_move_handle"/>
<child>
- <widget class="GtkVBox" id="vbox3">
+ <object class="GtkVBox" id="vbox3">
<property name="width_request">250</property>
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkLabel" id="label1">
+ <object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">Data Providers</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow2">
+ <object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">in</property>
<child>
<placeholder/>
</child>
- </widget>
+ </object>
<packing>
<property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="resize">False</property>
<property name="shrink">False</property>
</packing>
</child>
<child>
- <widget class="GtkVPaned" id="vpaned1">
+ <object class="GtkVPaned" id="vpaned1">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkVBox" id="mainVbox">
+ <object class="GtkVBox" id="mainVbox">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkScrolledWindow" id="canvasScrolledWindow">
+ <object class="GtkScrolledWindow" id="canvasScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
<child>
<placeholder/>
</child>
- </widget>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
- </widget>
+ </object>
<packing>
<property name="resize">False</property>
<property name="shrink">False</property>
</packing>
</child>
<child>
- <widget class="GtkExpander" id="conflictExpander">
+ <object class="GtkExpander" id="conflictExpander">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
- <widget class="GtkVBox" id="conflictExpanderVBox">
+ <object class="GtkVBox" id="conflictExpanderVBox">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkScrolledWindow" id="conflictScrolledWindow">
+ <object class="GtkScrolledWindow" id="conflictScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
<child>
<placeholder/>
</child>
- </widget>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox20">
+ <object class="GtkHBox" id="hbox20">
<property name="visible">True</property>
<child>
- <widget class="GtkHButtonBox" id="hbuttonbox13">
+ <object class="GtkHButtonBox" id="hbuttonbox13">
<property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
- <widget class="GtkButton" id="conflictCompareButton">
+ <object class="GtkButton" id="conflictCompareButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="response_id">0</property>
+ <property name="receives_default">False</property>
<child>
- <widget class="GtkAlignment" id="alignment15">
+ <object class="GtkAlignment" id="alignment15">
<property name="visible">True</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
- <widget class="GtkHBox" id="hbox21">
+ <object class="GtkHBox" id="hbox21">
<property name="visible">True</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkImage" id="image75">
+ <object class="GtkImage" id="image75">
<property name="visible">True</property>
<property name="stock">gtk-find</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label79">
+ <object class="GtkLabel" id="label79">
<property name="visible">True</property>
<property name="label" translatable="yes">Compare</property>
<property name="use_underline">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <widget class="GtkButton" id="conflictCancelButton">
+ <object class="GtkButton" id="conflictCancelButton">
+ <property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="label">gtk-cancel</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
+ </object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="conflictResolveButton">
+ <object class="GtkButton" id="conflictResolveButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="response_id">0</property>
+ <property name="receives_default">False</property>
<child>
- <widget class="GtkAlignment" id="alignment13">
+ <object class="GtkAlignment" id="alignment13">
<property name="visible">True</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
- <widget class="GtkHBox" id="hbox20">
+ <object class="GtkHBox" id="hbox111">
<property name="visible">True</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkImage" id="image73">
+ <object class="GtkImage" id="image73">
<property name="visible">True</property>
<property name="stock">gtk-apply</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label75">
+ <object class="GtkLabel" id="label75">
<property name="visible">True</property>
<property name="label" translatable="yes">Resolve Conflicts</property>
<property name="use_underline">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
- </widget>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <widget class="GtkToggleButton" id="conflictFullscreenButton">
+ <object class="GtkToggleButton" id="conflictFullscreenButton">
<property name="height_request">36</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="border_width">3</property>
- <property name="response_id">0</property>
<child>
- <widget class="GtkImage" id="image74">
+ <object class="GtkImage" id="image74">
<property name="visible">True</property>
<property name="stock">gtk-fullscreen</property>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- <child>
- <widget class="GtkLabel" id="label74">
+ <child type="label">
+ <object class="GtkLabel" id="label74">
<property name="visible">True</property>
<property name="label" translatable="yes">Conflicts</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="resize">False</property>
<property name="shrink">False</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="resize">False</property>
<property name="shrink">False</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkStatusbar" id="statusbar1">
+ <object class="GtkStatusbar" id="statusbar1">
<property name="visible">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
- <widget class="GtkMenu" id="ConduitMenu">
+ </object>
+ <object class="GtkMenu" id="ConduitMenu">
<child>
- <widget class="GtkImageMenuItem" id="refresh_group">
+ <object class="GtkImageMenuItem" id="refresh_conduit">
+ <property name="label">Regresh Group</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">Refresh Group</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_refresh_conduit_clicked"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image86">
- <property name="visible">True</property>
- <property name="stock">gtk-refresh</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ <property name="image">image1</property>
+ <property name="use_stock">False</property>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="synchronize_group">
+ <object class="GtkImageMenuItem" id="synchronize_conduit">
+ <property name="label">Synchronize Group</property>
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Synchronize group</property>
- <property name="label" translatable="yes">Synchronize Group</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_synchronize_conduit_clicked"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image87">
- <property name="visible">True</property>
- <property name="stock">gtk-execute</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ <property name="image">image2</property>
+ <property name="use_stock">False</property>
+ </object>
</child>
<child>
- <widget class="GtkSeparatorMenuItem" id="separator6">
+ <object class="GtkSeparatorMenuItem" id="separator6">
<property name="visible">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="delete_group">
+ <object class="GtkImageMenuItem" id="delete_conduit">
+ <property name="label">Delete Group</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">Delete Group</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_delete_conduit_clicked"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image88">
- <property name="visible">True</property>
- <property name="stock">gtk-delete</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ <property name="image">image3</property>
+ <property name="use_stock">False</property>
+ </object>
</child>
<child>
- <widget class="GtkSeparatorMenuItem" id="separator8">
+ <object class="GtkSeparatorMenuItem" id="separator8">
<property name="visible">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkMenuItem" id="sync_options">
+ <object class="GtkMenuItem" id="sync_options">
<property name="visible">True</property>
<property name="label" translatable="yes">Synchronization Options</property>
<property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sync_options_menu">
+ <child type="submenu">
+ <object class="GtkMenu" id="sync_options_menu">
<child>
- <widget class="GtkCheckMenuItem" id="slow_sync">
+ <object class="GtkCheckMenuItem" id="slow_sync">
<property name="visible">True</property>
<property name="label" translatable="yes">Slow Synchronization</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="on_slow_sync_activate"/>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkCheckMenuItem" id="two_way_sync">
+ <object class="GtkCheckMenuItem" id="two_way_sync">
<property name="visible">True</property>
<property name="label" translatable="yes">Two-Way Synchronization</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="on_two_way_sync_group_clicked"/>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkCheckMenuItem" id="auto_sync">
+ <object class="GtkCheckMenuItem" id="auto_sync">
<property name="visible">True</property>
<property name="label" translatable="yes">Always Up-To-Date</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="on_autosync_clicked"/>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkMenuItem" id="conflict">
+ <object class="GtkMenuItem" id="conflict">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">When there is a conflict...</property>
<property name="label" translatable="yes">Conflict Options</property>
<property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="conflict_menu">
+ <child type="submenu">
+ <object class="GtkMenu" id="conflict_menu">
<child>
- <widget class="GtkRadioMenuItem" id="conflict_ask">
+ <object class="GtkRadioMenuItem" id="conflict_ask">
<property name="visible">True</property>
<property name="label" translatable="yes">Ask Me What to Do</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkRadioMenuItem" id="conflict_replace">
+ <object class="GtkRadioMenuItem" id="conflict_replace">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Replace the Older Item</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<property name="group">conflict_ask</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkRadioMenuItem" id="conflict_skip">
+ <object class="GtkRadioMenuItem" id="conflict_skip">
<property name="visible">True</property>
<property name="label" translatable="yes">Skip</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<property name="group">conflict_ask</property>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkMenuItem" id="deleted">
+ <object class="GtkMenuItem" id="deleted">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">When an item is deleted...</property>
<property name="label" translatable="yes">Delete Options</property>
<property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="deleted_menu">
+ <child type="submenu">
+ <object class="GtkMenu" id="deleted_menu">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
- <widget class="GtkRadioMenuItem" id="deleted_ask">
+ <object class="GtkRadioMenuItem" id="deleted_ask">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Ask Me What to Do</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkRadioMenuItem" id="deleted_replace">
+ <object class="GtkRadioMenuItem" id="deleted_replace">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Delete the Corresponding Item</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<property name="group">deleted_ask</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkRadioMenuItem" id="deleted_skip">
+ <object class="GtkRadioMenuItem" id="deleted_skip">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Skip</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<property name="group">deleted_ask</property>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
- <widget class="GtkMenu" id="DataProviderMenu">
+ </object>
+ <object class="GtkMenu" id="DataProviderMenu">
<child>
- <widget class="GtkImageMenuItem" id="refresh_item">
+ <object class="GtkImageMenuItem" id="refresh_dataprovider">
+ <property name="label">Refresh Item</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">Refresh Item</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_refresh_dataprovider_clicked"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image81">
- <property name="visible">True</property>
- <property name="stock">gtk-refresh</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ <property name="image">image4</property>
+ <property name="use_stock">False</property>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="configure">
+ <object class="GtkImageMenuItem" id="configure_dataprovider">
+ <property name="label">Configure Item</property>
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Configure the synchronization settings for this item</property>
- <property name="label" translatable="yes">Configure Item</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_configure_dataprovider_clicked"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image82">
- <property name="visible">True</property>
- <property name="stock">gtk-preferences</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ <property name="image">image5</property>
+ <property name="use_stock">False</property>
+ </object>
</child>
<child>
- <widget class="GtkSeparatorMenuItem" id="separator5">
+ <object class="GtkSeparatorMenuItem" id="separator5">
<property name="visible">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="delete_item">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Delete Item</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_delete_dataprovider_clicked"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image83">
- <property name="visible">True</property>
- <property name="stock">gtk-delete</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkDialog" id="DataProviderConfigDialog">
- <property name="visible">True</property>
- <property name="title">dialog1</property>
- <property name="resizable">False</property>
- <property name="modal">True</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <signal name="close" handler="on_dialog_close"/>
- <child internal-child="vbox">
- <widget class="GtkVBox" id="configVBox">
+ <object class="GtkImageMenuItem" id="delete_dataprovider">
+ <property name="label">Delete Item</property>
<property name="visible">True</property>
- <property name="spacing">8</property>
- <child>
- <placeholder/>
- </child>
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
- <child>
- <widget class="GtkButton" id="helpbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="label">gtk-help</property>
- <property name="use_stock">True</property>
- <property name="response_id">-11</property>
- <signal name="clicked" handler="on_helpbutton_clicked"/>
- </widget>
- </child>
- <child>
- <widget class="GtkButton" id="cancelbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="response_id">-6</property>
- <signal name="clicked" handler="on_cancelbutton_clicked"/>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="okbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="response_id">-5</property>
- <signal name="clicked" handler="on_okbutton_clicked"/>
- </widget>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
+ <property name="image">image6</property>
+ <property name="use_stock">False</property>
+ </object>
</child>
- </widget>
- <widget class="GtkDialog" id="PreferencesDialog">
- <property name="visible">True</property>
+ </object>
+ <object class="GtkDialog" id="PreferencesDialog">
<property name="title" translatable="yes">Conduit Preferences</property>
<property name="default_width">350</property>
<property name="default_height">450</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">dialog</property>
<child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
+ <object class="GtkVBox" id="dialog-vbox1">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkNotebook" id="prop_notebook">
+ <object class="GtkNotebook" id="prop_notebook">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
- <widget class="GtkVBox" id="vbox28">
+ <object class="GtkVBox" id="vbox28">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkFrame" id="frame5">
+ <object class="GtkFrame" id="frame5">
<property name="visible">True</property>
<property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="shadow_type">none</property>
<child>
- <widget class="GtkAlignment" id="alignment12">
+ <object class="GtkAlignment" id="alignment12">
<property name="visible">True</property>
<property name="left_padding">12</property>
<child>
- <widget class="GtkVBox" id="vbox29">
+ <object class="GtkVBox" id="vbox29">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <widget class="GtkCheckButton" id="start_at_login">
+ <object class="GtkCheckButton" id="start_at_login">
+ <property name="label" translatable="yes">Start Conduit at login</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Start Conduit at login</property>
- <property name="response_id">0</property>
+ <property name="receives_default">False</property>
<property name="draw_indicator">True</property>
- </widget>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <widget class="GtkCheckButton" id="save_settings_check">
+ <object class="GtkCheckButton" id="save_settings_check">
+ <property name="label" translatable="yes">Save settings on exit</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Save settings on exit</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
@@ -774,14 +662,14 @@
</packing>
</child>
<child>
- <widget class="GtkCheckButton" id="status_icon_check">
+ <object class="GtkCheckButton" id="status_icon_check">
+ <property name="label" translatable="yes">Show status icon</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Show status icon</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
@@ -789,14 +677,14 @@
</packing>
</child>
<child>
- <widget class="GtkCheckButton" id="minimize_to_tray_check">
+ <object class="GtkCheckButton" id="minimize_to_tray_check">
+ <property name="label" translatable="yes">Minimize to notification area</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Minimize to notification area</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
@@ -804,91 +692,93 @@
</packing>
</child>
<child>
- <widget class="GtkCheckButton" id="show_hints_check">
+ <object class="GtkCheckButton" id="show_hints_check">
+ <property name="label" translatable="yes">Show Hints</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Show Hints</property>
- <property name="response_id">0</property>
+ <property name="receives_default">False</property>
<property name="draw_indicator">True</property>
- </widget>
+ </object>
<packing>
<property name="position">4</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- <child>
- <widget class="GtkLabel" id="label66">
+ <child type="label">
+ <object class="GtkLabel" id="label66">
<property name="visible">True</property>
<property name="label" translatable="yes"><b>General</b></property>
<property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkFrame" id="frame6">
+ <object class="GtkFrame" id="frame6">
<property name="visible">True</property>
<property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="shadow_type">none</property>
<child>
- <widget class="GtkAlignment" id="alignment14">
+ <object class="GtkAlignment" id="alignment14">
<property name="visible">True</property>
<property name="left_padding">12</property>
<child>
- <widget class="GtkVBox" id="vbox34">
+ <object class="GtkVBox" id="vbox34">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <widget class="GtkLabel" id="label78">
+ <object class="GtkLabel" id="label78">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">When an item has been deleted:</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox1">
+ <object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<child>
- <widget class="GtkVBox" id="vbox2">
+ <object class="GtkVBox" id="vbox2">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <widget class="GtkRadioButton" id="deleted_ask_radio">
+ <object class="GtkRadioButton" id="deleted_ask_radio">
+ <property name="label" translatable="yes">Ask me what to do</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Ask me what to do</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="deleted_replace_radio">
+ <object class="GtkRadioButton" id="deleted_replace_radio">
+ <property name="label" translatable="yes">Delete from the corresponding sink</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Delete from the corresponding sink</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
<property name="group">deleted_ask_radio</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
@@ -896,39 +786,40 @@
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="deleted_skip_radio">
+ <object class="GtkRadioButton" id="deleted_skip_radio">
+ <property name="label" translatable="yes">Skip</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Skip</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
<property name="group">deleted_ask_radio</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="padding">12</property>
+ <property name="position">0</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label77">
+ <object class="GtkLabel" id="label77">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">When there is a two-way conflict:</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
@@ -936,36 +827,38 @@
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox2">
+ <object class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<child>
- <widget class="GtkVBox" id="vbox4">
+ <object class="GtkVBox" id="vbox4">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <widget class="GtkRadioButton" id="conflict_ask_radio">
+ <object class="GtkRadioButton" id="conflict_ask_radio">
+ <property name="label" translatable="yes">Ask me what to do</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Ask me what to do</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="conflict_replace_radio">
+ <object class="GtkRadioButton" id="conflict_replace_radio">
+ <property name="label" translatable="yes">Replace the older item</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Replace the older item</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
<property name="group">conflict_ask_radio</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
@@ -973,155 +866,198 @@
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="conflict_skip_radio">
+ <object class="GtkRadioButton" id="conflict_skip_radio">
+ <property name="label" translatable="yes">Skip</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Skip</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
<property name="group">conflict_ask_radio</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="padding">12</property>
+ <property name="position">0</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="position">3</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- <child>
- <widget class="GtkLabel" id="label76">
+ <child type="label">
+ <object class="GtkLabel" id="label76">
<property name="visible">True</property>
<property name="label" translatable="yes"><b>Default Synchronization Options</b></property>
<property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- <child>
- <widget class="GtkLabel" id="label65">
+ <child type="tab">
+ <object class="GtkLabel" id="label65">
<property name="visible">True</property>
<property name="label" translatable="yes">Configuration</property>
- </widget>
+ </object>
<packing>
- <property name="type">tab</property>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow9">
+ <object class="GtkScrolledWindow" id="scrolledwindow9">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
- <widget class="GtkTreeView" id="dataProvidersTreeView">
+ <object class="GtkTreeView" id="dataProvidersTreeView">
<property name="visible">True</property>
<property name="can_focus">True</property>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel" id="label37">
+ <child type="tab">
+ <object class="GtkLabel" id="label37">
<property name="visible">True</property>
<property name="label" translatable="yes">Data Providers</property>
- </widget>
+ </object>
<packing>
- <property name="type">tab</property>
<property name="position">1</property>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow11">
+ <object class="GtkScrolledWindow" id="scrolledwindow11">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
- <widget class="GtkTreeView" id="dataConversionsTreeView">
+ <object class="GtkTreeView" id="dataConversionsTreeView">
<property name="visible">True</property>
<property name="can_focus">True</property>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="position">2</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel" id="label39">
+ <child type="tab">
+ <object class="GtkLabel" id="label39">
<property name="visible">True</property>
<property name="label" translatable="yes">Data Conversions</property>
- </widget>
+ </object>
<packing>
- <property name="type">tab</property>
<property name="position">2</property>
<property name="tab_fill">False</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="position">2</property>
</packing>
</child>
<child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area2">
+ <object class="GtkHButtonBox" id="dialog-action_area2">
<property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
- <widget class="GtkButton" id="helpbutton1">
+ <object class="GtkButton" id="helpbutton1">
+ <property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="label">gtk-cancel</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
- <property name="response_id">-6</property>
- </widget>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <widget class="GtkButton" id="button30">
+ <object class="GtkButton" id="button30">
+ <property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="label">gtk-ok</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
- <property name="response_id">-5</property>
- </widget>
+ </object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
-</glade-interface>
+ <action-widgets>
+ <action-widget response="-6">helpbutton1</action-widget>
+ <action-widget response="-5">button30</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-refresh</property>
+ </object>
+ <object class="GtkImage" id="image2">
+ <property name="visible">True</property>
+ <property name="stock">gtk-execute</property>
+ </object>
+ <object class="GtkImage" id="image3">
+ <property name="visible">True</property>
+ <property name="stock">gtk-delete</property>
+ </object>
+ <object class="GtkImage" id="image4">
+ <property name="visible">True</property>
+ <property name="stock">gtk-refresh</property>
+ </object>
+ <object class="GtkImage" id="image5">
+ <property name="visible">True</property>
+ <property name="stock">gtk-preferences</property>
+ </object>
+ <object class="GtkImage" id="image6">
+ <property name="visible">True</property>
+ <property name="stock">gtk-delete</property>
+ </object>
+ <object class="GtkImage" id="image7">
+ <property name="visible">True</property>
+ <property name="stock">gtk-execute</property>
+ </object>
+ <object class="GtkImage" id="image8">
+ <property name="visible">True</property>
+ <property name="stock">gtk-cancel</property>
+ </object>
+ <object class="GtkImage" id="image9">
+ <property name="visible">True</property>
+ <property name="stock">gtk-clear</property>
+ </object>
+</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]