deskbar-applet r2464 - in trunk: . data deskbar/core deskbar/handlers deskbar/handlers/actions deskbar/ui deskbar/ui/cuemiac deskbar/ui/preferences po
- From: sebp svn gnome org
- To: svn-commits-list gnome org
- Subject: deskbar-applet r2464 - in trunk: . data deskbar/core deskbar/handlers deskbar/handlers/actions deskbar/ui deskbar/ui/cuemiac deskbar/ui/preferences po
- Date: Sat, 1 Nov 2008 13:51:32 +0000 (UTC)
Author: sebp
Date: Sat Nov 1 13:51:32 2008
New Revision: 2464
URL: http://svn.gnome.org/viewvc/deskbar-applet?rev=2464&view=rev
Log:
Ported from gnomevfs to gio and from glade to GTK builder.
This requires pygobject 2.15.3 or later.
Changes have been merged from bzr branch at
https://code.launchpad.net/~marduk-k-d-w/deskbar-applet/gio-port
Added:
trunk/data/mozilla-search.ui
trunk/data/prefs-dialog.ui
trunk/data/smart-bookmarks.ui
Modified:
trunk/ChangeLog
trunk/configure.ac
trunk/data/Makefile.am
trunk/deskbar/core/BrowserMatch.py
trunk/deskbar/core/CoreImpl.py
trunk/deskbar/core/ModuleInstaller.py
trunk/deskbar/core/ModuleLoader.py
trunk/deskbar/core/Utils.py
trunk/deskbar/core/Watcher.py
trunk/deskbar/handlers/actions/ActionsFactory.py
trunk/deskbar/handlers/actions/OpenFileAction.py
trunk/deskbar/handlers/actions/OpenWithNautilusAction.py
trunk/deskbar/handlers/beagle-live.py
trunk/deskbar/handlers/files.py
trunk/deskbar/handlers/gdmactions.py
trunk/deskbar/handlers/mozilla.py
trunk/deskbar/handlers/programs.py
trunk/deskbar/handlers/templates.py
trunk/deskbar/handlers/yahoo.py
trunk/deskbar/ui/About.py
trunk/deskbar/ui/AbstractCuemiacView.py
trunk/deskbar/ui/CuemiacAlignedView.py
trunk/deskbar/ui/CuemiacWindowController.py
trunk/deskbar/ui/DeskbarApplet.py
trunk/deskbar/ui/cuemiac/CuemiacActionsTreeView.py
trunk/deskbar/ui/cuemiac/CuemiacHeader.py
trunk/deskbar/ui/cuemiac/CuemiacTreeView.py
trunk/deskbar/ui/cuemiac/LingeringSelectionWindow.py
trunk/deskbar/ui/preferences/DeskbarPreferences.py
trunk/deskbar/ui/preferences/ModuleListView.py
trunk/po/POTFILES.in
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Sat Nov 1 13:51:32 2008
@@ -69,7 +69,7 @@
PKG_CHECK_MODULES(DESKBAR,
gtk+-2.0 >= 2.12
pygtk-2.0 >= 2.12
- pygobject-2.0 >= 2.12
+ pygobject-2.0 >= 2.15.3
gnome-python-2.0 >= 2.10
gnome-desktop-2.0 >= 2.10
dbus-python >= 0.80.2
@@ -98,6 +98,8 @@
dnl ******************
AM_CHECK_PYMOD(dbus)
AM_CHECK_PYMOD(gconf)
+AM_CHECK_PYMOD(gio)
+AM_CHECK_PYMOD(glib)
AM_CHECK_PYMOD(gnomedesktop)
AM_CHECK_PYMOD(gnomekeyring)
AM_CHECK_PYMOD(gnome.ui)
Modified: trunk/data/Makefile.am
==============================================================================
--- trunk/data/Makefile.am (original)
+++ trunk/data/Makefile.am Sat Nov 1 13:51:32 2008
@@ -28,9 +28,9 @@
resourcesdir = $(pkgdatadir)
resources_DATA = \
Deskbar_Applet.xml \
- mozilla-search.glade \
- smart-bookmarks.glade \
- prefs-dialog.glade
+ mozilla-search.ui \
+ smart-bookmarks.ui \
+ prefs-dialog.ui
deskbarbindir = $(libdir)/deskbar-applet
Added: trunk/data/mozilla-search.ui
==============================================================================
--- (empty file)
+++ trunk/data/mozilla-search.ui Sat Nov 1 13:51:32 2008
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+ <object class="GtkDialog" id="prefs-dialog">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Deskbar Preferences - Web Searches</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_CENTER</property>
+ <property name="modal">False</property>
+ <property name="resizable">False</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="icon_name"/>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">False</property>
+ <signal handler="prefs_dialog_response_cb" last_modification_time="Sat, 10 May 2003 09:37:44 GMT" name="response"/>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area2">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <object class="GtkButton" id="close">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-close</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="frame1">
+ <property name="border_width">5</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1317">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Search Engines</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment18">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkVBox" id="vbox157">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkRadioButton" id="show_all_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Show all available search engines</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="show_primary_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Show only the primary search engine</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">show_all_radio</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-7">close</action-widget>
+ </action-widgets>
+ </object>
+</interface>
Added: trunk/data/prefs-dialog.ui
==============================================================================
--- (empty file)
+++ trunk/data/prefs-dialog.ui Sat Nov 1 13:51:32 2008
@@ -0,0 +1,1337 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+ <object class="GtkAdjustment" id="adjustment1">
+ <property name="upper">1000</property>
+ <property name="lower">10</property>
+ <property name="page_increment">10</property>
+ <property name="step_increment">1</property>
+ <property name="page_size">0</property>
+ <property name="value">20</property>
+ </object>
+ <object class="GtkDialog" id="preferences">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Deskbar Preferences</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_CENTER</property>
+ <property name="modal">False</property>
+ <property name="default_height">450</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">False</property>
+ <signal handler="prefs_dialog_response_cb" name="response"/>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area2">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <object class="GtkButton" id="close">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-close</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkNotebook" id="notebook1">
+ <property name="border_width">5</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_tabs">True</property>
+ <property name="show_border">True</property>
+ <property name="tab_pos">GTK_POS_TOP</property>
+ <property name="scrollable">True</property>
+ <property name="enable_popup">False</property>
+ <child>
+ <object class="GtkVBox" id="big_box">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkVBox" id="loaded_extensions_box">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1310">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Loaded Extensions</b></property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment16">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkVBox" id="vbox156">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="hbox198">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow" id="handlers">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVButtonBox" id="vbuttonbox1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkButton" id="button_top">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-goto-top</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_up">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-go-up</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_down">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-go-down</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_bottom">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-goto-bottom</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox188">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkButton" id="reload">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkAlignment" id="alignment30">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox199">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image8">
+ <property name="visible">True</property>
+ <property name="stock">gtk-refresh</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1332">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Reload</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="more">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkAlignment" id="alignment27">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox196">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image6">
+ <property name="visible">True</property>
+ <property name="stock">gtk-preferences</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1328">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_More...</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkAlignment" id="alignment22">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox190">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image2">
+ <property name="visible">True</property>
+ <property name="stock">gtk-network</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1321">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Check For Updates</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="update">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkAlignment" id="alignment21">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox189">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-refresh</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1320">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Update</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="info_area">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1315">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Searches</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox163">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkVBox" id="vbox164">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1331">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Extensions with Errors</b></property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment29">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkVBox" id="disabledhandlers_box">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow" id="disabledhandlers">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1330">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Extensions with Errors</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkVBox" id="extensions_vbox">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkVBox" id="vbox159">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1323">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Available Extensions</b></property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment23">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkVBox" id="vbox160">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="hbox200">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1334">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Display extensions with tag:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="combobox_tags">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="newhandlers">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox191">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkButton" id="check_new_extensions">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkAlignment" id="alignment28">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox197">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image7">
+ <property name="visible">True</property>
+ <property name="stock">gtk-network</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1329">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Check for new extensions</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="install">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkAlignment" id="alignment26">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox195">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image5">
+ <property name="visible">True</property>
+ <property name="stock">gtk-save</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1327">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Install</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1322">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">New Extensions</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkVBox" id="view_vbox">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkVBox" id="vbox166">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1335">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Window Behavior</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment33">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkCheckButton" id="sticktopanel_checkbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Stick to panel</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="frame_width">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1318">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Width</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment19">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox187">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkSpinButton" id="width">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">False</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">adjustment1</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="width_units">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">characters</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="frame3">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1319">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Focus</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment20">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkVBox" id="vbox161">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="keybinding_entry_container">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label1315">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Keyboard shortcut to focus:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="use_selection">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Search selection when triggering the shortcut</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1316">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">General</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-7">close</action-widget>
+ </action-widgets>
+ </object>
+</interface>
Added: trunk/data/smart-bookmarks.ui
==============================================================================
--- (empty file)
+++ trunk/data/smart-bookmarks.ui Sat Nov 1 13:51:32 2008
@@ -0,0 +1,123 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+ <object class="GtkDialog" id="smart-bookmarks">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Shortcuts for Bookmarked Searches</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_CENTER</property>
+ <property name="modal">False</property>
+ <property name="default_height">450</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="icon_name"/>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">False</property>
+ <signal handler="prefs_dialog_response_cb" last_modification_time="Sat, 10 May 2003 09:37:44 GMT" name="response"/>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="vbox100">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area2">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <object class="GtkButton" id="close">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-close</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox101">
+ <property name="border_width">5</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow100">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <object class="GtkTreeView" id="bookmarks-view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">True</property>
+ <property name="rules_hint">True</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><i><small><b>Note:</b> To use a shortcut (for example <b>wp</b>) to search for <b>something</b>, type "<b>wp something</b>" in the deskbar</small></i>.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-7">close</action-widget>
+ </action-widgets>
+ </object>
+</interface>
Modified: trunk/deskbar/core/BrowserMatch.py
==============================================================================
--- trunk/deskbar/core/BrowserMatch.py (original)
+++ trunk/deskbar/core/BrowserMatch.py Sat Nov 1 13:51:32 2008
@@ -235,9 +235,10 @@
list_store = gtk.ListStore(str, gobject.TYPE_PYOBJECT)
_sync_list_store_from_shortcuts_map(list_store, smart_bookmarks, shortcuts_to_smart_bookmarks_map)
- glade = gtk.glade.XML(os.path.join(deskbar.SHARED_DATA_DIR, "smart-bookmarks.glade"))
+ builder = gtk.Builder()
+ builder.add_from_file(os.path.join(deskbar.SHARED_DATA_DIR, "smart-bookmarks.ui"))
- view = glade.get_widget("bookmarks-view")
+ view = builder.get_object("bookmarks-view")
view.set_model(list_store)
crt_shortcut = gtk.CellRendererText()
@@ -255,7 +256,7 @@
tvc_name.set_cell_data_func(crt_name, bookmark_to_bookmark_name)
view.append_column(tvc_name)
- dialog = glade.get_widget("smart-bookmarks")
+ dialog = builder.get_object("smart-bookmarks")
dialog.set_icon_name("deskbar-applet")
dialog.show_all()
dialog.run()
Modified: trunk/deskbar/core/CoreImpl.py
==============================================================================
--- trunk/deskbar/core/CoreImpl.py (original)
+++ trunk/deskbar/core/CoreImpl.py Sat Nov 1 13:51:32 2008
@@ -1,6 +1,6 @@
import sys
import logging
-import gobject
+import glib
import gtk
import deskbar
import deskbar.interfaces.Match
@@ -297,8 +297,8 @@
"""
if (len(text) >= self.get_min_chars()):
if (self._start_query_id != 0):
- gobject.source_remove(self._start_query_id)
- self._start_query_id = gobject.timeout_add( self.get_type_delay(), self._query_real, text )
+ glib.source_remove(self._start_query_id)
+ self._start_query_id = glib.timeout_add( self.get_type_delay(), self._query_real, text )
self._stop_queries = False
def _query_real(self, text):
Modified: trunk/deskbar/core/ModuleInstaller.py
==============================================================================
--- trunk/deskbar/core/ModuleInstaller.py (original)
+++ trunk/deskbar/core/ModuleInstaller.py Sat Nov 1 13:51:32 2008
@@ -1,4 +1,4 @@
-import gnomevfs
+import gio
import urllib
import shutil
import bz2
@@ -8,9 +8,12 @@
import zipfile
from os.path import join, exists
from os import unlink
+import logging
import deskbar
+LOGGER = logging.getLogger(__name__)
+
class FormatNotSupportedError(Exception):
"""
Raised if the MIME type isn't supported
@@ -87,7 +90,14 @@
Extract the contents of the file to C{self.dest_dir}
@raise FormatNotSupportedError:
"""
- mime_type = gnomevfs.get_mime_type(self.path)
+ gfile = gio.File(path=self.path)
+ try:
+ fileinfo = gfile.query_info("standard::content-type")
+ except Exception, e:
+ self.parent_error = (Exception, e.message)
+ return
+
+ mime_type = gio.content_type_get_mime_type (fileinfo.get_content_type())
if mime_type == 'application/x-bzip-compressed-tar':
extracter = Bzip2Extracter
elif mime_type == 'application/x-compressed-tar':
@@ -138,18 +148,22 @@
do_cleanup = False
self._reset()
- uri = gnomevfs.URI(uri_string)
- if (uri.is_local == 1):
- handlers_path = join(deskbar.USER_HANDLERS_DIR[0], uri.short_name)
- self.local_path = uri.path
+ if (uri_string.startswith("file://")):
+ gfile = gio.File(uri=uri_string)
+ handlers_path = join(deskbar.USER_HANDLERS_DIR[0], gfile.get_basename())
+ self.local_path = gfile.get_path()
if handlers_path == join(deskbar.USER_HANDLERS_DIR[0], self.local_path):
# Source and destination are the same, nothing to do here
return
- if (gnomevfs.get_mime_type(uri_string) == "text/x-python"):
+
+ fileinfo = gfile.query_info ("standard::content-type")
+ mime_type = gio.content_type_get_mime_type (fileinfo.get_content_type())
+ if (mime_type == "text/x-python"):
shutil.copy(self.local_path, deskbar.USER_HANDLERS_DIR[0])
return
else:
- handlers_path = join(deskbar.USER_HANDLERS_DIR[0], uri.short_name)
+ gfile = gio.File(path=uri_string)
+ handlers_path = join(deskbar.USER_HANDLERS_DIR[0], gfile.get_basename())
urllib.urlretrieve(uri_string, handlers_path)
self.local_path = handlers_path
do_cleanup = True
Modified: trunk/deskbar/core/ModuleLoader.py
==============================================================================
--- trunk/deskbar/core/ModuleLoader.py (original)
+++ trunk/deskbar/core/ModuleLoader.py Sat Nov 1 13:51:32 2008
@@ -3,6 +3,7 @@
import deskbar
import deskbar.core.Categories
import deskbar.interfaces.Module
+import glib
import gobject
import gtk
import logging
@@ -211,19 +212,19 @@
"""
Same as load_all() except the loading is done in an idle mainloop call.
"""
- gobject.idle_add(self.load_all)
+ glib.idle_add(self.load_all)
def initialize_module_async (self, module):
"""
Invokes initialize_module in an idle mainloop call.
"""
- gobject.idle_add(self.initialize_module, module)
+ glib.idle_add(self.initialize_module, module)
def stop_module_async (self, module):
"""
Invokes stop_module in an idle mainloop call.
"""
- gobject.idle_add(self.stop_module, module)
+ glib.idle_add(self.stop_module, module)
if gtk.pygtk_version < (2,8,0):
gobject.type_register(ModuleLoader)
Modified: trunk/deskbar/core/Utils.py
==============================================================================
--- trunk/deskbar/core/Utils.py (original)
+++ trunk/deskbar/core/Utils.py Sat Nov 1 13:51:32 2008
@@ -7,8 +7,8 @@
import deskbar
import gnomedesktop
import gnome.ui
-import gnomevfs
-import gobject
+import gio
+import glib
import gtk
import gtk.gdk
import locale
@@ -96,7 +96,7 @@
"""
pixbuf = None
if icon != None and icon != "":
- if icon.startswith("file://") and gnomevfs.exists(icon):
+ if icon.startswith("file://") and gio.File(uri=icon).query_exists():
icon, flags = gnome.ui.icon_lookup(ICON_THEME, factory,
icon, "",
gnome.ui.ICON_LOOKUP_FLAGS_SHOW_SMALL_IMAGES_AS_THEMSELVES)
@@ -177,7 +177,7 @@
def spawn_async(args):
try:
- gobject.spawn_async(args, flags=gobject.SPAWN_SEARCH_PATH)
+ glib.spawn_async(args, flags=glib.SPAWN_SEARCH_PATH)
return True
except Exception, e:
message_dialog = gtk.MessageDialog(flags=gtk.DIALOG_MODAL, type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_CLOSE)
@@ -196,30 +196,61 @@
manager = gtk.recent_manager_get_default()
manager.add_item(uri)
+def launch_default_for_uri(uri_string):
+ """
+ Open uri_string with the default application
+ according to content type
+
+ @type uri_string: str
+ """
+ gfile = gio.File(uri=uri_string)
+ appinfo = gfile.query_default_handler()
+
+ if appinfo != None:
+ appinfo.launch([gfile], None)
+ else:
+ LOGGER.error("Could not detect default application for %s", uri.get_uri())
+
+def launch_default_for_uri_and_scheme(uri_string):
+ """
+ Open uri_string with the default application
+ according to scheme
+
+ @type uri_string: str
+ """
+ gfile = gio.File(uri=uri_string)
+ appinfo = gio.app_info_get_default_for_uri_scheme(gfile.get_uri_scheme())
+
+ if appinfo != None:
+ appinfo.launch([gfile], None)
+ else:
+ LOGGER.error("Could not detect default application for %s", uri.get_uri())
+
def url_show_file(url, escape=True):
"""
@param escape: Whether C{url} should be escaped or not
"""
try:
if escape:
- url = gnomevfs.escape_host_and_path_string(url)
- gnomevfs.url_show(url)
+ url = gio.File(uri=url).get_uri()
+ launch_default_for_uri(url)
add_to_recent(url)
except Exception, e:
executed = False
try:
- executed = spawn_async([gnomevfs.get_local_path_from_uri(url)])
+ executed = spawn_async([gio.File(uri=url).get_path()])
except:
if not executed:
if escape:
- url = gnomevfs.escape_host_and_path_string(dirname(url))
+ url = gio.File(uri=url).get_uri()
url_show(url)
add_to_recent(url)
def url_show(url):
try:
- gnomevfs.url_show(url)
+ launch_default_for_uri(url)
except Exception, e:
+ LOGGER.exception(e)
message_dialog = gtk.MessageDialog(flags=gtk.DIALOG_MODAL, type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_CLOSE)
message_dialog.set_markup("<span size='larger' weight='bold'>%s</span>\n\n '%s'" % (
_("Cannot show URL:"), cgi.escape(url)))
Modified: trunk/deskbar/core/Watcher.py
==============================================================================
--- trunk/deskbar/core/Watcher.py (original)
+++ trunk/deskbar/core/Watcher.py Sat Nov 1 13:51:32 2008
@@ -1,11 +1,13 @@
"""
-Helper classes to monitor directories/files for changes using gnomevfs
+Helper classes to monitor directories/files for changes
"""
-import gnomevfs
+import gio
+import glib
import gobject
import gtk
import logging
+from os.path import isdir
LOGGER = logging.getLogger(__name__)
@@ -16,7 +18,7 @@
def __init__(self):
gobject.GObject.__init__(self)
self.watched = {}
- self.monitor_type = gnomevfs.MONITOR_FILE
+ self._get_monitor_func = "monitor_file"
def add(self, args):
if not type(args) is list:
@@ -27,11 +29,15 @@
continue
if not name in self.watched:
+ gfile = gio.File (path=name)
+
try:
- self.watched[name] = gnomevfs.monitor_add(name, self.monitor_type, self._on_change)
+ self.watched[name] = getattr(gfile, self._get_monitor_func) ()
except Exception, msg:
LOGGER.exception(msg)
self.watched[name] = 0
+
+ self.watched[name].connect ("changed", self._on_changed)
def remove(self, args):
if not type(args) is list:
@@ -40,15 +46,16 @@
for name in args:
if name in self.watched:
if self.watched[name] != 0:
- gnomevfs.monitor_cancel(self.watched[name])
+ self.watched[name].cancel()
del self.watched[name]
def remove_all(self):
self.remove(self.watched.keys())
- def _on_change(self, monitor, changed, event):
- if event == gnomevfs.MONITOR_EVENT_CHANGED or event == gnomevfs.MONITOR_EVENT_CREATED:
- gobject.idle_add(self.emit, 'changed', gnomevfs.get_local_path_from_uri(changed))
+ def _on_changed(self, monitor, file, other_file, event_type):
+ if event_type == gio.FILE_MONITOR_EVENT_CHANGED \
+ or event_type == gio.FILE_MONITOR_EVENT_CREATED:
+ glib.idle_add(self.emit, 'changed', file.get_path ())
class FileWatcher(Watcher):
def __init__(self):
@@ -57,7 +64,7 @@
class DirWatcher(Watcher):
def __init__(self):
Watcher.__init__(self)
- self.monitor_type = gnomevfs.MONITOR_DIRECTORY
+ self._get_monitor_func = "monitor_directory"
if gtk.pygtk_version < (2,8,0):
gobject.type_register(Watcher)
Modified: trunk/deskbar/handlers/actions/ActionsFactory.py
==============================================================================
--- trunk/deskbar/handlers/actions/ActionsFactory.py (original)
+++ trunk/deskbar/handlers/actions/ActionsFactory.py Sat Nov 1 13:51:32 2008
@@ -1,10 +1,10 @@
-import gnomevfs
+import gio
import logging
from deskbar.handlers.actions.OpenWithApplicationAction import OpenWithApplicationAction
from deskbar.handlers.actions.CopyToClipboardAction import CopyToClipboardAction
from deskbar.handlers.actions.GoToLocationAction import GoToLocationAction
from deskbar.handlers.actions.SendFileViaEmailAction import SendFileViaEmailAction
-from os.path import basename, isdir
+from os.path import isdir
from gettext import gettext as _
LOGGER = logging.getLogger(__name__)
@@ -21,41 +21,31 @@
@param display_name: The optional name of
the file for display.
"""
- if uri.startswith("file://"):
- uri = uri
- path = uri[7:] # remove file:// prefix
+ if not uri.startswith("file://"):
+ gfile = gio.File(path=uri)
else:
- path = uri
- uri = "file://"+path
+ gfile = gio.File(uri=uri)
if display_name == None:
- display_name = basename(path)
+ display_name = gfile.get_basename()
# If we have a directory only return one action
- if isdir(path):
- return [CopyToClipboardAction( _("Location"), path)]
+ if isdir(gfile.get_path()):
+ return [CopyToClipboardAction( _("Location"), gfile.get_path())]
try:
- fileinfo = gnomevfs.get_file_info(uri, gnomevfs.FILE_INFO_GET_MIME_TYPE | gnomevfs.FILE_INFO_FOLLOW_LINKS)
+ fileinfo = gfile.query_info("standard::content-type")
except Exception, msg:
- LOGGER.error("Could not retrieve MIME type of %s: %s", uri, msg)
+ LOGGER.error("Could not retrieve content type of %s: %s", gfile.get_path(), msg)
return []
- mime = fileinfo.mime_type
+
actions = []
- mime_default_cmd = gnomevfs.mime_get_default_application(mime)
- if mime_default_cmd != None:
- mime_default_cmd = mime_default_cmd[2]
- mime_apps = gnomevfs.mime_get_all_applications(mime)
- for app in mime_apps:
- # 0: .desktop file (str)
- # 1: name (str)
- # 2: command (str)
- # 3: can open multiple files (bool)
- # 4: expects_uri (int)
- # 5: supported uri schemes (list)
- if (mime_default_cmd == None or app[2] != mime_default_cmd) and app[2] != None:
- cmd = app[2]
- args = [path]
+ default_appinfo = gio.app_info_get_default_for_type(fileinfo.get_content_type(), True)
+ for appinfo in gio.app_info_get_all_for_type(fileinfo.get_content_type()):
+ if default_appinfo == None \
+ or appinfo.get_executable() != default_appinfo.get_executable():
+ cmd = appinfo.get_executable()
+ args = [gfile.get_path ()]
cmd_args = cmd.split(" ")
if len(cmd_args) > 0:
@@ -63,10 +53,10 @@
args = cmd_args[1:] + args
actions.append( OpenWithApplicationAction(display_name, cmd, args,
- display_program_name=app[1]) )
-
- actions.append( GoToLocationAction(display_name, uri) )
- actions.append( SendFileViaEmailAction(display_name, uri) )
- actions.append( CopyToClipboardAction( _("URL of %s") % display_name, path) )
+ display_program_name=appinfo.get_name()) )
+
+ actions.append( GoToLocationAction(display_name, gfile.get_uri ()) )
+ actions.append( SendFileViaEmailAction(display_name, gfile.get_uri ()) )
+ actions.append( CopyToClipboardAction( _("URL of %s") % display_name, gfile.get_path ()) )
return actions
Modified: trunk/deskbar/handlers/actions/OpenFileAction.py
==============================================================================
--- trunk/deskbar/handlers/actions/OpenFileAction.py (original)
+++ trunk/deskbar/handlers/actions/OpenFileAction.py Sat Nov 1 13:51:32 2008
@@ -1,8 +1,7 @@
from deskbar.core.Utils import url_show_file
from gettext import gettext as _
-from os.path import exists
import deskbar.interfaces.Action
-import gnomevfs
+import gio
import logging
LOGGER = logging.getLogger(__name__)
@@ -25,27 +24,25 @@
def get_icon(self):
return "gtk-open"
- def _get_unesacped_url_without_protocol(self):
- url = self._url[7:]
- if not self._escape:
- url = gnomevfs.unescape_string_for_display(url)
- return url
+ def _get_unescaped_url_without_protocol(self):
+ return gio.File(uri=self._url).get_path()
def is_valid(self):
- url = self._get_unesacped_url_without_protocol()
+ gfile = gio.File (uri=self._url)
- if not exists(url):
- LOGGER.debug("File %s does not exist", url)
+ if not gfile.query_exists():
+ LOGGER.debug("File %s does not exist", gfile.get_uri ())
return False
else:
- try:
- mime_type = gnomevfs.get_mime_type(url)
- returnval = gnomevfs.mime_get_default_application(mime_type) != None
- except RuntimeError, e:
+ try:
+ fileinfo = gfile.query_info("standard::content-type")
+ returnval = gio.app_info_get_default_for_type(
+ fileinfo.get_content_type(), True) != None
+ except Exception, e:
# get_mime_type throws a RuntimeException when something went wrong
returnval = False
if not returnval:
- LOGGER.debug("File %s has no default application", url)
+ LOGGER.debug("File %s has no default application", gfile.get_uri ())
return returnval
def get_hash(self):
@@ -58,4 +55,4 @@
url_show_file(self._url, escape=self._escape)
def get_tooltip(self, text=None):
- return self._get_unesacped_url_without_protocol()
+ return self._get_unescaped_url_without_protocol()
Modified: trunk/deskbar/handlers/actions/OpenWithNautilusAction.py
==============================================================================
--- trunk/deskbar/handlers/actions/OpenWithNautilusAction.py (original)
+++ trunk/deskbar/handlers/actions/OpenWithNautilusAction.py Sat Nov 1 13:51:32 2008
@@ -1,6 +1,6 @@
from deskbar.handlers.actions.OpenWithApplicationAction import OpenWithApplicationAction
from gettext import gettext as _
-import gnomevfs
+import gio
class OpenWithNautilusAction(OpenWithApplicationAction):
"""
@@ -22,7 +22,7 @@
return "file-manager"
def get_verb(self):
- uri_scheme = gnomevfs.get_uri_scheme(self._url)
+ uri_scheme = gio.File(uri=self._url).get_uri_scheme()
if uri_scheme in self.NETWORK_URIS:
return _("Open network place %s") % "<b>%(name)s</b>"
@@ -32,4 +32,4 @@
return _("Open location %s") % "<b>%(name)s</b>"
def get_tooltip(self, text=None):
- return self._url
\ No newline at end of file
+ return gio.File(uri=self._url).get_parse_name()
\ No newline at end of file
Modified: trunk/deskbar/handlers/beagle-live.py
==============================================================================
--- trunk/deskbar/handlers/beagle-live.py (original)
+++ trunk/deskbar/handlers/beagle-live.py Sat Nov 1 13:51:32 2008
@@ -12,7 +12,7 @@
import re
import deskbar, deskbar.interfaces.Module
import deskbar.interfaces.Match
-import gnomevfs
+import gio
import logging
import threading
@@ -291,7 +291,7 @@
class OpenIMLogAction(OpenWithApplicationAction):
def __init__(self, name, uri, client, snippet=None):
OpenWithApplicationAction.__init__(self, name, "beagle-imlogviewer", [])
- self._uri = gnomevfs.get_local_path_from_uri(uri)
+ self._uri = gio.File(uri=uri).get_path ()
self._client = client
def get_icon(self):
@@ -317,7 +317,7 @@
class OpenWebHistoryAction(ShowUrlAction):
def __init__(self, name, uri, escaped_uri):
ShowUrlAction.__init__(self, name, uri)
- self._display_uri = gnomevfs.unescape_string_for_display(escaped_uri)
+ self._display_uri = gio.File (uri=escaped_uri).get_parse_name()
def get_icon(self):
return "system-search"
@@ -437,7 +437,7 @@
# For files inside archives only work with the archive itsself
result["escaped_uri"] = result["escaped_uri"].split('#')[0]
# Unescape URI again
- unescaped_uri = gnomevfs.unescape_string_for_display(result["escaped_uri"])
+ unescaped_uri = gio.File(uri=result["escaped_uri"]).get_parse_name()
if not result.has_key("inside_archive"):
result["inside_archive"] = "false"
Modified: trunk/deskbar/handlers/files.py
==============================================================================
--- trunk/deskbar/handlers/files.py (original)
+++ trunk/deskbar/handlers/files.py Sat Nov 1 13:51:32 2008
@@ -11,14 +11,13 @@
import deskbar, deskbar.core.Indexer
import deskbar.interfaces.Match
import deskbar.interfaces.Module
-import gnomevfs
+import gio
import gtk
import logging
import os
import urllib
LOGGER = logging.getLogger(__name__)
-MONITOR = gnomevfs.VolumeMonitor()
HANDLERS = ["FileFolderHandler"]
@@ -76,6 +75,7 @@
def __init__(self):
deskbar.interfaces.Module.__init__(self)
self._locations = {}
+ self._volume_monitor = gio.volume_monitor_get()
def initialize(self):
# Gtk Bookmarks --
@@ -102,24 +102,17 @@
gtk_bookmark_match = GtkBookmarkMatch(name, loc, priority=self.get_priority())
result.append(gtk_bookmark_match)
- # Volumes
- # We search both mounted_volumes() and connected_drives.
- # This way an audio cd in the cd drive will show up both
- # on "au" and "cd".
- # Drives returned by mounted_volumes() and connected_drives()
- # does not have the same display_name() strings.
- for drive in MONITOR.get_mounted_volumes() + MONITOR.get_connected_drives():
- if not drive.is_user_visible() : continue
- if not drive.is_mounted () : continue
- display_name = drive.get_display_name()
- if display_name == None or not display_name.lower().startswith(query): continue
+ # Mounts
+ for mount in self._volume_monitor.get_mounts():
+ if not mount.get_name().lower().startswith(query): continue
- uri = drive.get_activation_uri()
+ uri = mount.get_root()
if uri != None:
- vol_match = VolumeMatch (display_name, uri, drive.get_icon(), priority=self.get_priority())
+ icon = "drive-harddisk"
+ vol_match = VolumeMatch (mount.get_name(), uri.get_path(), icon, priority=self.get_priority())
result.append (vol_match)
- self._emit_query_ready(query, result )
+ self._emit_query_ready(query, result)
def _query_filefolder(self, query, is_file):
completions, prefix, relative = filesystem_possible_completions(query, is_file)
@@ -134,15 +127,22 @@
for line in file(GTK_BOOKMARKS_FILE):
line = line.strip()
+ # First column is url, second the label
+ cols = line.split(" ", 1)
try:
- if gnomevfs.exists(line):
- uri = urllib.unquote(line)
- head, tail = split(uri)
- # Sometimes tail=="" when for example using "file:///tmp"
- if tail == "":
- i = head.rfind("/")
- tail = head[i+1:]
- self._locations[tail.lower()] = (tail, line)
+ uri = urllib.unquote(cols[0])
+
+ gfile = gio.File(uri=uri)
+ if gfile.query_exists():
+ name = gfile.get_basename().lower()
+
+ if len(cols) > 1:
+ display_name = cols[1]
+ else:
+ display_name = name
+
+ self._locations[name] = (display_name, gfile.get_path())
+ self._locations[display_name] = (display_name, gfile.get_path())
except Exception, msg:
LOGGER.exception(msg)
Modified: trunk/deskbar/handlers/gdmactions.py
==============================================================================
--- trunk/deskbar/handlers/gdmactions.py (original)
+++ trunk/deskbar/handlers/gdmactions.py Sat Nov 1 13:51:32 2008
@@ -11,7 +11,7 @@
import deskbar.interfaces.Match
import deskbar.interfaces.Module
import gnome.ui
-import gobject
+import glib
import gtk
HANDLERS = ["GdmHandler"]
@@ -90,12 +90,12 @@
return False
def run(self):
- self.countdown_thread = gobject.timeout_add(1000, self.countdown_func)
+ self.countdown_thread = glib.timeout_add(1000, self.countdown_func)
return gtk.MessageDialog.run(self)
def on_response(self, dialog, response):
if response == gtk.RESPONSE_CANCEL and self.countdown_thread != None:
- gobject.source_remove(self.countdown_thread)
+ glib.source_remove(self.countdown_thread)
class GpmAction(deskbar.interfaces.Action):
Modified: trunk/deskbar/handlers/mozilla.py
==============================================================================
--- trunk/deskbar/handlers/mozilla.py (original)
+++ trunk/deskbar/handlers/mozilla.py Sat Nov 1 13:51:32 2008
@@ -128,10 +128,11 @@
show_all_radio.set_active(not new_show_only_primary)
show_primary_radio.set_active(new_show_only_primary)
- glade = gtk.glade.XML(os.path.join(deskbar.SHARED_DATA_DIR, "mozilla-search.glade"))
- dialog = glade.get_widget("prefs-dialog")
- show_all_radio = glade.get_widget("show_all_radio")
- show_primary_radio = glade.get_widget("show_primary_radio")
+ builder = gtk.Builder()
+ builder.add_from_file(os.path.join(deskbar.SHARED_DATA_DIR, "mozilla-search.ui"))
+ dialog = builder.get_object("prefs-dialog")
+ show_all_radio = builder.get_object("show_all_radio")
+ show_primary_radio = builder.get_object("show_primary_radio")
show_primary_radio.set_active(SHOW_ONLY_PRIMARY)
show_all_radio.set_active(not SHOW_ONLY_PRIMARY)
Modified: trunk/deskbar/handlers/programs.py
==============================================================================
--- trunk/deskbar/handlers/programs.py (original)
+++ trunk/deskbar/handlers/programs.py Sat Nov 1 13:51:32 2008
@@ -11,7 +11,7 @@
import deskbar.interfaces.Match
import deskbar.interfaces.Module
import glob
-import gobject
+import glib
import gtk
import os
import re
@@ -228,8 +228,8 @@
stdin=prog.stdout)
# Reap the processes when they have done
- gobject.child_watch_add(zenity.pid, lambda pid, code: None)
- gobject.child_watch_add(prog.pid, lambda pid, code: None)
+ glib.child_watch_add(zenity.pid, lambda pid, code: None)
+ glib.child_watch_add(prog.pid, lambda pid, code: None)
return
except:
#No zenity, get out of the if, and launch without GUI
Modified: trunk/deskbar/handlers/templates.py
==============================================================================
--- trunk/deskbar/handlers/templates.py (original)
+++ trunk/deskbar/handlers/templates.py Sat Nov 1 13:51:32 2008
@@ -5,14 +5,15 @@
import deskbar.interfaces.Action
import deskbar.interfaces.Match
import deskbar.interfaces.Module
-import gnomevfs
+import gio
import gtk
+import logging
import os
import os.path
import shutil
import subprocess
-
+LOGGER = logging.getLogger(__name__)
HANDLERS = ["TemplateHandler"]
class TemplateFile(object):
@@ -176,38 +177,40 @@
def __init__(self):
deskbar.interfaces.Module.__init__(self)
self.indexer = deskbar.core.Indexer.Indexer()
- self.monitor_id = None
+ self.monitors = []
def _add_template_file(self, path):
template_file = TemplateFile(path)
match = TemplateMatch(template_file)
self.indexer.add(match.get_name(), match)
- def _templates_dir_monitor_cb(self, monitor_uri, info_uri, event_type):
- if event_type == gnomevfs.MONITOR_EVENT_CREATED:
- # strip "file://"
- self._add_template_file(info_uri[7:])
+ def _templates_dir_monitor_cb(self, monitor, file, other_file, event_type):
+ self._add_template_file(file.get_path())
def initialize(self):
templates_dir = deskbar.core.Utils.get_xdg_user_dir(deskbar.core.Utils.DIRECTORY_TEMPLATES)
- if templates_dir != None:
- for f in os.listdir(templates_dir):
- # Skip backup files and hidden files
- if f.endswith("~") or f.startswith("."):
- continue
- self._add_template_file(os.path.join(templates_dir, f))
-
- self.monitor_id = gnomevfs.monitor_add(templates_dir,
- gnomevfs.MONITOR_DIRECTORY,
- self._templates_dir_monitor_cb)
-
- def stop(self):
- if self.monitor_id != None:
- gnomevfs.monitor_cancel(self.monitor_id)
+ for f in os.listdir(templates_dir):
+ # Skip backup files and hidden files
+ if f.endswith("~") or f.startswith("."):
+ continue
+ self._add_template_file(os.path.join(templates_dir, f))
+
+ gfile = gio.File(path=templates_dir)
+ try:
+ filemonitor = gfile.monitor_directory()
+ if filemonitor != None:
+ filemonitor.connect ("changed", self._templates_dir_monitor_cb)
+ self.monitors.append(filemonitor)
+ except Exception, e:
+ LOGGER.exception(e)
def query(self, query):
matches = self.indexer.look_up(query)
self.set_priority_for_matches(matches)
self._emit_query_ready(query, matches)
+ def stop(self):
+ for filemonitor in self.monitors:
+ filemonitor.cancel()
+
\ No newline at end of file
Modified: trunk/deskbar/handlers/yahoo.py
==============================================================================
--- trunk/deskbar/handlers/yahoo.py (original)
+++ trunk/deskbar/handlers/yahoo.py Sat Nov 1 13:51:32 2008
@@ -228,7 +228,6 @@
RESULT_ELEMENT = "Result"
TITLE_ELMENT = "Title"
SUMMARY_ELEMENT = "Summary"
- URL_ELEMENT = "Url"
CLICK_URL_ELEMENT = "ClickUrl"
MIME_TYPE_ELEMENT = "MimeType"
@@ -237,7 +236,6 @@
# Elements we want to store the contents of
self._elements = set([self.TITLE_ELMENT,
self.SUMMARY_ELEMENT,
- self.URL_ELEMENT,
self.CLICK_URL_ELEMENT,
self.MIME_TYPE_ELEMENT])
Modified: trunk/deskbar/ui/About.py
==============================================================================
--- trunk/deskbar/ui/About.py (original)
+++ trunk/deskbar/ui/About.py Sat Nov 1 13:51:32 2008
@@ -1,14 +1,16 @@
# -*- coding: utf-8 -*-
-from gettext import gettext as _
+from deskbar.core.Utils import launch_default_for_uri
from deskbar.defs import VERSION
-import gtk, gtk.gdk, gnomevfs
+from gettext import gettext as _
+import gtk
+import gtk.gdk
def on_email(about, mail):
- gnomevfs.url_show("mailto:%s" % mail)
+ launch_default_for_uri("mailto:%s" % mail)
def on_url(about, link):
- gnomevfs.url_show(link)
+ launch_default_for_uri(link)
gtk.about_dialog_set_email_hook(on_email)
gtk.about_dialog_set_url_hook(on_url)
Modified: trunk/deskbar/ui/AbstractCuemiacView.py
==============================================================================
--- trunk/deskbar/ui/AbstractCuemiacView.py (original)
+++ trunk/deskbar/ui/AbstractCuemiacView.py Sat Nov 1 13:51:32 2008
@@ -1,6 +1,6 @@
import gtk
import gtk.gdk
-import gobject
+import glib
from gettext import gettext as _
import deskbar.core.Utils
import deskbar.interfaces.View
@@ -32,7 +32,7 @@
deskbar.interfaces.View.__init__(self, controller, model)
self._do_clear = True
- self._model.connect("query-ready", lambda s,m: gobject.idle_add(self.append_matches, s, m))
+ self._model.connect("query-ready", lambda s,m: glib.idle_add(self.append_matches, s, m))
# VBox
self._create_vbox_main()
Modified: trunk/deskbar/ui/CuemiacAlignedView.py
==============================================================================
--- trunk/deskbar/ui/CuemiacAlignedView.py (original)
+++ trunk/deskbar/ui/CuemiacAlignedView.py Sat Nov 1 13:51:32 2008
@@ -1,6 +1,6 @@
import gtk
import gtk.gdk
-import gobject
+import glib
import gnomeapplet
from deskbar.core.GconfStore import GconfStore
from deskbar.ui.AbstractCuemiacView import AbstractCuemiacView
@@ -79,7 +79,7 @@
def append_matches (self, sender, matches):
AbstractCuemiacView.append_matches(self, sender, matches)
# Wait a little bit to resize, otherwise we get a size that's too small
- gobject.timeout_add(200, self.__adjust_popup_size)
+ glib.timeout_add(200, self.__adjust_popup_size)
def __on_window_key_press_event(self, window, event):
if event.keyval == gtk.keysyms.Escape:
Modified: trunk/deskbar/ui/CuemiacWindowController.py
==============================================================================
--- trunk/deskbar/ui/CuemiacWindowController.py (original)
+++ trunk/deskbar/ui/CuemiacWindowController.py Sat Nov 1 13:51:32 2008
@@ -1,6 +1,5 @@
import gtk
import gtk.gdk
-import gnomevfs
import logging
import deskbar
import deskbar.interfaces.Controller
@@ -55,7 +54,7 @@
prefs.show_run_hide(self._view.get_toplevel())
def on_show_help(self, sender):
- gnomevfs.url_show("ghelp:deskbar")
+ deskbar.core.Utils.launch_default_for_uri_and_scheme("ghelp:deskbar")
def on_query_entry_changed(self, entry):
self._view.set_clear()
Modified: trunk/deskbar/ui/DeskbarApplet.py
==============================================================================
--- trunk/deskbar/ui/DeskbarApplet.py (original)
+++ trunk/deskbar/ui/DeskbarApplet.py Sat Nov 1 13:51:32 2008
@@ -2,6 +2,7 @@
import gtk
import deskbar
import os.path
+import glib
import gobject
from deskbar.ui.AbstractCuemiacDeskbarIcon import AbstractCuemiacDeskbarIcon
from deskbar.ui.cuemiac.CuemiacHistory import CuemiacHistoryView, CuemiacHistoryPopup
@@ -187,7 +188,7 @@
self.applet.handler_block(self.handler_size_allocate_id)
self.tray.set_button_image_from_pixbuf(pixbuf)
# If we unblock immediately we get an infinite loop
- gobject.timeout_add(100, self.unblock_allocate)
+ glib.timeout_add(100, self.unblock_allocate)
def unblock_allocate(self):
self.applet.handler_unblock (self.handler_size_allocate_id)
Modified: trunk/deskbar/ui/cuemiac/CuemiacActionsTreeView.py
==============================================================================
--- trunk/deskbar/ui/cuemiac/CuemiacActionsTreeView.py (original)
+++ trunk/deskbar/ui/cuemiac/CuemiacActionsTreeView.py Sat Nov 1 13:51:32 2008
@@ -1,3 +1,4 @@
+import glib
import gtk
import gtk.gdk
import gobject
@@ -93,7 +94,7 @@
def __select_path(self, path):
self.get_selection().select_path( path )
- gobject.idle_add(self.scroll_to_cell, path )
+ glib.idle_add(self.scroll_to_cell, path )
self.set_cursor_on_cell( path )
def __on_query_tooltip(self, widget, x, y, keyboard_mode, tooltip):
Modified: trunk/deskbar/ui/cuemiac/CuemiacHeader.py
==============================================================================
--- trunk/deskbar/ui/cuemiac/CuemiacHeader.py (original)
+++ trunk/deskbar/ui/cuemiac/CuemiacHeader.py Sat Nov 1 13:51:32 2008
@@ -1,6 +1,6 @@
import gtk
import gtk.gdk
-import gobject
+import glib
from gettext import gettext as _
@@ -42,7 +42,7 @@
self.modify_bg (gtk.STATE_NORMAL, self.style.bg[gtk.STATE_SELECTED])
self.label.modify_fg (gtk.STATE_NORMAL, self.style.fg[gtk.STATE_SELECTED])
self.entry.modify_bg (gtk.STATE_NORMAL, self.style.bg[gtk.STATE_SELECTED])
- gobject.timeout_add (100, self._enable_styles) # reenable style changes
+ glib.timeout_add (100, self._enable_styles) # reenable style changes
def _enable_styles (self):
self._ignore_style = False
Modified: trunk/deskbar/ui/cuemiac/CuemiacTreeView.py
==============================================================================
--- trunk/deskbar/ui/cuemiac/CuemiacTreeView.py (original)
+++ trunk/deskbar/ui/cuemiac/CuemiacTreeView.py Sat Nov 1 13:51:32 2008
@@ -1,3 +1,4 @@
+import glib
import gtk
import gtk.gdk
import gobject
@@ -366,7 +367,7 @@
def __select_path(self, path):
self.get_selection().select_path( path )
- gobject.idle_add(self.scroll_to_cell, path )
+ glib.idle_add(self.scroll_to_cell, path )
self.set_cursor_on_cell( path )
def __select_iter(self, iter):
Modified: trunk/deskbar/ui/cuemiac/LingeringSelectionWindow.py
==============================================================================
--- trunk/deskbar/ui/cuemiac/LingeringSelectionWindow.py (original)
+++ trunk/deskbar/ui/cuemiac/LingeringSelectionWindow.py Sat Nov 1 13:51:32 2008
@@ -1,5 +1,5 @@
import gtk
-import gobject
+import glib
class LingeringSelectionWindow (gtk.Window):
"""
@@ -59,7 +59,5 @@
Display for a short while
"""
self.show_all ()
- gobject.timeout_add (self.linger_time, self.hide)
-
-
+ glib.timeout_add (self.linger_time, self.hide)
Modified: trunk/deskbar/ui/preferences/DeskbarPreferences.py
==============================================================================
--- trunk/deskbar/ui/preferences/DeskbarPreferences.py (original)
+++ trunk/deskbar/ui/preferences/DeskbarPreferences.py Sat Nov 1 13:51:32 2008
@@ -1,6 +1,5 @@
import gtk
import gtk.gdk
-import gtk.glade
import traceback
from gettext import gettext as _
from os.path import join, basename
@@ -41,9 +40,10 @@
self.module_list = self._model.get_module_list()
- self.glade = gtk.glade.XML(join(deskbar.SHARED_DATA_DIR, "prefs-dialog.glade"))
+ self.builder = gtk.Builder()
+ self.builder.add_from_file(join(deskbar.SHARED_DATA_DIR, "prefs-dialog.ui"))
- self.dialog = self.glade.get_widget("preferences")
+ self.dialog = self.builder.get_object("preferences")
# Since capuchin is optional we have to check if self.capuchin is None each time we use it
self.__capuchin = None
@@ -71,7 +71,7 @@
self.sync_ui()
def __setup_active_modules_tab(self):
- container = self.glade.get_widget("handlers")
+ container = self.builder.get_object("handlers")
self.moduleview = ModuleListView(self.module_list)
self.moduleview.connect ("row-toggled", self.on_module_toggled)
self.moduleview.get_selection().connect("changed", self.on_module_selected)
@@ -81,16 +81,16 @@
container.add(self.moduleview)
# Buttons beneath list
- self.more_button = self.glade.get_widget("more")
+ self.more_button = self.builder.get_object("more")
self.more_button.set_sensitive(False)
self.more_button.connect("clicked", self.on_more_button_clicked)
self.more_button_callback = None
- self.reload_button = self.glade.get_widget("reload")
+ self.reload_button = self.builder.get_object("reload")
self.reload_button.connect("clicked", self.on_reload_button_clicked)
self.reload_button.set_tooltip_markup(("Reload all extensions"))
# Info are at the bottom
- self.info_area = self.glade.get_widget("info_area")
+ self.info_area = self.builder.get_object("info_area")
self.old_info_message = None
info_text = _("<i><small>Drag and drop an extension to change its order.</small></i>")
self.default_info = InfoBox(info_text, gtk.STOCK_DIALOG_INFO)
@@ -98,38 +98,38 @@
self.info_area.add(self.default_info)
# Buttons on the right
- self.button_top = self.glade.get_widget("button_top")
+ self.button_top = self.builder.get_object("button_top")
self.button_top.connect("clicked", self.on_button_top_clicked)
- self.button_up = self.glade.get_widget("button_up")
+ self.button_up = self.builder.get_object("button_up")
self.button_up.connect("clicked", self.on_button_up_clicked)
- self.button_down = self.glade.get_widget("button_down")
+ self.button_down = self.builder.get_object("button_down")
self.button_down.connect("clicked", self.on_button_down_clicked)
- self.button_bottom = self.glade.get_widget("button_bottom")
+ self.button_bottom = self.builder.get_object("button_bottom")
self.button_bottom.connect("clicked", self.on_button_bottom_clicked)
def __setup_general_tab(self):
self.keyboard_shortcut_entry = AccelEntry()
self.keyboard_shortcut_entry.connect('accel-edited', self.on_keyboard_shortcut_entry_changed)
self.keyboard_shortcut_entry.get_widget().show()
- self.glade.get_widget("keybinding_entry_container").pack_start(self.keyboard_shortcut_entry.get_widget(), False)
+ self.builder.get_object("keybinding_entry_container").pack_start(self.keyboard_shortcut_entry.get_widget(), False)
if self._model.get_ui_name() == deskbar.BUTTON_UI_NAME:
- spinbutton = self.glade.get_widget("width")
+ spinbutton = self.builder.get_object("width")
spinbutton.set_value(self._model.get_entry_width())
spinbutton.connect('value-changed', self.on_entry_width_changed)
else:
- frame = self.glade.get_widget("frame_width")
+ frame = self.builder.get_object("frame_width")
frame.hide()
self.use_selection = self._model.get_use_selection()
- self.use_selection_box = self.glade.get_widget("use_selection")
+ self.use_selection_box = self.builder.get_object("use_selection")
self.use_selection_box.connect('toggled', self.on_use_selection_toggled)
- self.sticktopanel_checkbox = self.glade.get_widget("sticktopanel_checkbox")
+ self.sticktopanel_checkbox = self.builder.get_object("sticktopanel_checkbox")
self.sticktopanel_checkbox.connect("toggled", self.on_ui_changed)
def __setup_drag_and_drop(self):
- big_box = self.glade.get_widget("big_box")
+ big_box = self.builder.get_object("big_box")
self.TARGET_URI_LIST, self.TARGET_NS_URL = range(2)
DROP_TYPES = [('text/uri-list', 0, self.TARGET_URI_LIST),
('_NETSCAPE_URL', 0, self.TARGET_NS_URL),
@@ -146,14 +146,14 @@
self.disabledmoduleview.get_selection().connect("changed", self.on_disabled_module_changed)
self.disabledmoduleview.show()
- disabledhandlers = self.glade.get_widget("disabledhandlers")
+ disabledhandlers = self.builder.get_object("disabledhandlers")
disabledhandlers.add(self.disabledmoduleview)
- self.disabledhandlers_box = self.glade.get_widget("disabledhandlers_box")
+ self.disabledhandlers_box = self.builder.get_object("disabledhandlers_box")
def __select_first_tab(self):
""" Select first tab """
- notebook = self.glade.get_widget("notebook1")
+ notebook = self.builder.get_object("notebook1")
current = notebook.get_current_page()
if (current != 0):
for i in range(current):
@@ -168,7 +168,7 @@
self.ROW_SEPERATOR_STRING = "<-->"
self.ALL_EXTENSIONS_TEXT = _("All Extensions")
- self.combobox_tags = self.glade.get_widget("combobox_tags")
+ self.combobox_tags = self.builder.get_object("combobox_tags")
self.combobox_tags.set_row_separator_func( lambda model, iter: model[iter][0] == self.ROW_SEPERATOR_STRING )
tag_cell = gtk.CellRendererText ()
@@ -182,7 +182,7 @@
self.combobox_tags.set_model (self.tags_list)
self.combobox_tags.connect ("changed", self.on_combobox_tags_changed)
- container = self.glade.get_widget("newhandlers")
+ container = self.builder.get_object("newhandlers")
self.webmoduleview = WebModuleListView(self.web_module_list)
self.webmoduleview.get_selection().connect("changed", self.on_webmodule_selected)
@@ -190,10 +190,10 @@
self.webmoduleview.show()
container.add(self.webmoduleview)
- self.install = self.glade.get_widget("install")
- self.check_new_extensions = self.glade.get_widget("check_new_extensions")
- self.check = self.glade.get_widget("check")
- self.update = self.glade.get_widget("update")
+ self.install = self.builder.get_object("install")
+ self.check_new_extensions = self.builder.get_object("check_new_extensions")
+ self.check = self.builder.get_object("check")
+ self.update = self.builder.get_object("update")
self.check.connect('clicked', self.on_check_handlers)
self.update.connect('clicked', self.on_update_handler)
@@ -202,12 +202,12 @@
self.install.connect('clicked', self.on_install_handler)
self.install.set_sensitive(False)
else:
- notebook = self.glade.get_widget("notebook1")
- tab = self.glade.get_widget("extensions_vbox")
+ notebook = self.builder.get_object("notebook1")
+ tab = self.builder.get_object("extensions_vbox")
notebook.remove_page( notebook.page_num(tab) )
# Remove buttons in handlers tab
- self.glade.get_widget("check").destroy()
- self.glade.get_widget("update").destroy()
+ self.builder.get_object("check").destroy()
+ self.builder.get_object("update").destroy()
def _get_capuchin_instance(self):
if self.__capuchin == None:
@@ -631,7 +631,7 @@
self.moduleview.grab_focus()
def on_ui_changed(self, check):
- frame = self.glade.get_widget("frame_width")
+ frame = self.builder.get_object("frame_width")
if self.sticktopanel_checkbox.get_active():
self._model.set_ui_name(deskbar.BUTTON_UI_NAME)
frame.show()
Modified: trunk/deskbar/ui/preferences/ModuleListView.py
==============================================================================
--- trunk/deskbar/ui/preferences/ModuleListView.py (original)
+++ trunk/deskbar/ui/preferences/ModuleListView.py Sat Nov 1 13:51:32 2008
@@ -1,3 +1,4 @@
+import glib
import gtk
import gobject
from gettext import gettext as _
@@ -76,7 +77,7 @@
def scroll_to_iter(self, iter):
path = self.get_model().get_path(iter)
self.get_selection().select_path( path )
- gobject.idle_add(self.scroll_to_cell, path )
+ glib.idle_add(self.scroll_to_cell, path )
self.set_cursor_on_cell( path )
if gtk.pygtk_version < (2,8,0):
Modified: trunk/po/POTFILES.in
==============================================================================
--- trunk/po/POTFILES.in (original)
+++ trunk/po/POTFILES.in Sat Nov 1 13:51:32 2008
@@ -2,9 +2,9 @@
data/deskbar-applet.schemas.in
data/Deskbar_Applet.xml
data/Deskbar_Applet.server.in.in
-data/prefs-dialog.glade
-data/smart-bookmarks.glade
-data/mozilla-search.glade
+data/prefs-dialog.ui
+data/smart-bookmarks.ui
+data/mozilla-search.ui
deskbar/core/BrowserMatch.py
deskbar/core/Categories.py
deskbar/core/DeskbarHistory.py
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]