Merge lp:~manishsinha/ubuntu/precise/totem/enable-zeitgeist-datasource into lp:~ubuntu-desktop/totem/ubuntu

Status: Rejected
Rejected by: Sebastien Bacher
Proposed branch: lp:~manishsinha/ubuntu/precise/totem/enable-zeitgeist-datasource
Merge into: lp:~ubuntu-desktop/totem/ubuntu
Diff against target: 576300 lines (+572877/-0) (has conflicts)
637 files modified
.pc/.version (+1/-0)
.pc/02_lpi.patch/configure.in (+917/-0)
.pc/02_lpi.patch/data/totem.ui (+2355/-0)
.pc/02_lpi.patch/src/totem-menu.c (+1407/-0)
.pc/03_default_options.patch/data/org.gnome.totem.gschema.xml.in.in (+124/-0)
.pc/04_port_to_gobject.patch/src/plugins/coherence_upnp/coherence_upnp.py (+125/-0)
.pc/04_port_to_gobject.patch/src/plugins/dbus-service/dbus-service.py (+291/-0)
.pc/04_port_to_gobject.patch/src/plugins/iplayer/iplayer.py (+233/-0)
.pc/04_port_to_gobject.patch/src/plugins/jamendo/jamendo.py (+687/-0)
.pc/04_port_to_gobject.patch/src/plugins/opensubtitles/hash.py (+47/-0)
.pc/04_port_to_gobject.patch/src/plugins/opensubtitles/opensubtitles.py (+668/-0)
.pc/04_port_to_gobject.patch/src/plugins/pythonconsole/console.py (+316/-0)
.pc/04_port_to_gobject.patch/src/plugins/pythonconsole/pythonconsole.py (+157/-0)
.pc/04_port_to_gobject.patch/src/plugins/sample-python/sample-python.py (+17/-0)
.pc/90_fix_save_playlist.patch/data/playlist.ui (+181/-0)
.pc/applied-patches (+5/-0)
.pc/youtube-api-gdata9.patch/src/plugins/youtube/totem-youtube.c (+827/-0)
ABOUT-NLS (+1068/-0)
AUTHORS (+4/-0)
COPYING (+354/-0)
ChangeLog (+13577/-0)
ChangeLog.pre-gitlog (+27047/-0)
INSTALL (+365/-0)
MAINTAINERS (+7/-0)
Makefile.am (+65/-0)
Makefile.in (+923/-0)
NEWS (+1984/-0)
README (+121/-0)
TODO (+1/-0)
aclocal.m4 (+2159/-0)
autogen.sh (+20/-0)
browser-plugin/Makefile.am (+247/-0)
browser-plugin/Makefile.in (+1552/-0)
browser-plugin/README.browser-plugin (+49/-0)
browser-plugin/TODO (+14/-0)
browser-plugin/marshal.c (+190/-0)
browser-plugin/marshal.h (+36/-0)
browser-plugin/marshal.list (+3/-0)
browser-plugin/npapi.h (+808/-0)
browser-plugin/npruntime.h (+351/-0)
browser-plugin/npupp.h (+719/-0)
browser-plugin/org_gnome_totem_PluginViewer.xml (+85/-0)
browser-plugin/plugin.symbols (+4/-0)
browser-plugin/test-glow-button.c (+58/-0)
browser-plugin/totem-glow-button.c (+351/-0)
browser-plugin/totem-glow-button.h (+52/-0)
browser-plugin/totem-plugin-viewer-constants.h (+46/-0)
browser-plugin/totem-plugin-viewer-interface.h (+673/-0)
browser-plugin/totem-plugin-viewer-options.h (+41/-0)
browser-plugin/totem-plugin-viewer.c (+2432/-0)
browser-plugin/totemCone.cpp (+118/-0)
browser-plugin/totemCone.h (+59/-0)
browser-plugin/totemConeAudio.cpp (+139/-0)
browser-plugin/totemConeAudio.h (+58/-0)
browser-plugin/totemConeInput.cpp (+132/-0)
browser-plugin/totemConeInput.h (+53/-0)
browser-plugin/totemConePlaylist.cpp (+166/-0)
browser-plugin/totemConePlaylist.h (+60/-0)
browser-plugin/totemConePlaylistItems.cpp (+95/-0)
browser-plugin/totemConePlaylistItems.h (+52/-0)
browser-plugin/totemConeVideo.cpp (+136/-0)
browser-plugin/totemConeVideo.h (+61/-0)
browser-plugin/totemGMPControls.cpp (+209/-0)
browser-plugin/totemGMPControls.h (+71/-0)
browser-plugin/totemGMPError.cpp (+104/-0)
browser-plugin/totemGMPError.h (+54/-0)
browser-plugin/totemGMPNetwork.cpp (+171/-0)
browser-plugin/totemGMPNetwork.h (+81/-0)
browser-plugin/totemGMPPlayer.cpp (+313/-0)
browser-plugin/totemGMPPlayer.h (+99/-0)
browser-plugin/totemGMPPlaylist.cpp (+158/-0)
browser-plugin/totemGMPPlaylist.h (+65/-0)
browser-plugin/totemGMPSettings.cpp (+223/-0)
browser-plugin/totemGMPSettings.h (+68/-0)
browser-plugin/totemMullYPlugin.cpp (+179/-0)
browser-plugin/totemMullYPlugin.h (+104/-0)
browser-plugin/totemNPClass.cpp (+209/-0)
browser-plugin/totemNPClass.h (+156/-0)
browser-plugin/totemNPNGlue.cpp (+324/-0)
browser-plugin/totemNPObject.cpp (+586/-0)
browser-plugin/totemNPObject.h (+186/-0)
browser-plugin/totemNPObjectWrapper.h (+124/-0)
browser-plugin/totemNPVariantWrapper.h (+113/-0)
browser-plugin/totemNarrowSpacePlugin.cpp (+554/-0)
browser-plugin/totemNarrowSpacePlugin.h (+142/-0)
browser-plugin/totemPlugin.cpp (+2691/-0)
browser-plugin/totemPlugin.h (+420/-0)
browser-plugin/totemPluginGlue.cpp (+482/-0)
compile (+143/-0)
config.guess (+1501/-0)
config.h.in (+107/-0)
config.rpath (+666/-0)
config.sub (+1705/-0)
configure (+25566/-0)
configure.in (+918/-0)
data/Makefile.am (+117/-0)
data/Makefile.in (+1034/-0)
data/desktop.sh (+22/-0)
data/fullscreen.ui (+267/-0)
data/icons/16x16/Makefile.am (+9/-0)
data/icons/16x16/Makefile.in (+566/-0)
data/icons/16x16/totem-tv.svg (+320/-0)
data/icons/22x22/Makefile.am (+9/-0)
data/icons/22x22/Makefile.in (+566/-0)
data/icons/22x22/totem-tv.svg (+352/-0)
data/icons/24x24/Makefile.am (+9/-0)
data/icons/24x24/Makefile.in (+566/-0)
data/icons/256x256/Makefile.am (+6/-0)
data/icons/256x256/Makefile.in (+543/-0)
data/icons/32x32/Makefile.am (+9/-0)
data/icons/32x32/Makefile.in (+566/-0)
data/icons/32x32/totem-tv.svg (+374/-0)
data/icons/48x48/Makefile.am (+9/-0)
data/icons/48x48/Makefile.in (+566/-0)
data/icons/Makefile.am (+5/-0)
data/icons/Makefile.in (+696/-0)
data/icons/scalable/Makefile.am (+9/-0)
data/icons/scalable/Makefile.in (+567/-0)
data/icons/scalable/totem-tv.svg (+386/-0)
data/icons/scalable/view-sidebar-symbolic.svg (+88/-0)
data/icons/totem.svg (+6363/-0)
data/mime-functions.sh (+14/-0)
data/mime-type-include.sh (+53/-0)
data/mime-type-list.txt (+114/-0)
data/mozilla-viewer.css (+5/-0)
data/mozilla-viewer.ui (+153/-0)
data/org.gnome.totem.gschema.xml.in.in (+124/-0)
data/playlist.ui (+182/-0)
data/properties.ui (+741/-0)
data/thumbnailer.sh (+21/-0)
data/totem-bugreport.py (+21/-0)
data/totem-video-thumbnailer.1 (+183/-0)
data/totem-video-thumbnailer.pod (+65/-0)
data/totem.1 (+225/-0)
data/totem.convert (+26/-0)
data/totem.desktop.in.in.in (+16/-0)
data/totem.pc.in (+11/-0)
data/totem.thumbnailer.in (+3/-0)
data/totem.ui (+2356/-0)
data/uri-schemes-list.txt (+9/-0)
data/uri.ui (+35/-0)
data/video-list.ui (+35/-0)
debian/bug/control (+1/-0)
debian/changelog (+1899/-0)
debian/compat (+1/-0)
debian/control (+283/-0)
debian/control.in (+275/-0)
debian/copyright (+67/-0)
debian/gir1.2-totem-1.0.install (+1/-0)
debian/libtotem-dev.install (+4/-0)
debian/libtotem0.install (+1/-0)
debian/patches/02_lpi.patch (+49/-0)
debian/patches/03_default_options.patch (+13/-0)
debian/patches/04_port_to_gobject.patch (+427/-0)
debian/patches/90_fix_save_playlist.patch (+19/-0)
debian/patches/series (+5/-0)
debian/patches/youtube-api-gdata9.patch (+30/-0)
debian/rules (+40/-0)
debian/source/format (+1/-0)
debian/source_totem.py (+18/-0)
debian/test.html (+51/-0)
debian/totem-common.install (+12/-0)
debian/totem-mozilla.docs (+1/-0)
debian/totem-mozilla.install (+1/-0)
debian/totem-plugins-extra.install (+3/-0)
debian/totem-plugins.install (+5/-0)
debian/totem.README.Debian (+9/-0)
debian/totem.install (+6/-0)
debian/totem.lintian-overrides (+2/-0)
debian/totem.menu (+6/-0)
debian/totem.xpm (+295/-0)
debian/watch (+2/-0)
depcomp (+630/-0)
docs/Makefile.am (+3/-0)
docs/Makefile.in (+695/-0)
docs/reference/Makefile.am (+164/-0)
docs/reference/Makefile.in (+921/-0)
docs/reference/html/BaconVideoWidget.html (+3055/-0)
docs/reference/html/TotemCellRendererVideo.html (+181/-0)
docs/reference/html/TotemObject.html (+1863/-0)
docs/reference/html/TotemVideoList.html (+264/-0)
docs/reference/html/annotation-glossary.html (+494/-0)
docs/reference/html/api-index-deprecated.html (+31/-0)
docs/reference/html/api-index-full.html (+853/-0)
docs/reference/html/core-api.html (+44/-0)
docs/reference/html/index.html (+66/-0)
docs/reference/html/index.sgml (+373/-0)
docs/reference/html/ix02.html (+38/-0)
docs/reference/html/ix03.html (+38/-0)
docs/reference/html/ix04.html (+31/-0)
docs/reference/html/style.css (+266/-0)
docs/reference/html/totem-Interface.html (+170/-0)
docs/reference/html/totem-TotemPlugin.html (+228/-0)
docs/reference/html/totem-plugins.html (+250/-0)
docs/reference/html/totem.devhelp (+228/-0)
docs/reference/html/totem.devhelp2 (+348/-0)
docs/reference/html/tutorials.html (+33/-0)
docs/reference/html/widget-api.html (+38/-0)
docs/reference/totem-docs.xml (+58/-0)
docs/reference/totem-plugins.xml (+147/-0)
docs/reference/totem-sections.txt (+281/-0)
docs/reference/totem.types (+9/-0)
docs/reference/version.xml (+1/-0)
docs/reference/version.xml.in (+1/-0)
gnome-doc-utils.make (+655/-0)
gtk-doc.make (+229/-0)
help/C/legal.xml (+76/-0)
help/C/totem.xml (+1112/-0)
help/ChangeLog (+526/-0)
help/Makefile.am (+21/-0)
help/Makefile.in (+1065/-0)
help/bg/bg.po (+1083/-0)
help/bg/totem.xml (+1183/-0)
help/ca/ca.po (+792/-0)
help/ca/totem.xml (+1100/-0)
help/cs/cs.po (+1113/-0)
help/cs/totem.xml (+764/-0)
help/da/da.po (+2175/-0)
help/da/totem.xml (+772/-0)
help/de/de.po (+2236/-0)
help/de/totem.xml (+764/-0)
help/el/el.po (+2377/-0)
help/el/totem.xml (+764/-0)
help/en_GB/en_GB.po (+2278/-0)
help/en_GB/totem.xml (+773/-0)
help/es/es.po (+2351/-0)
help/es/totem.xml (+764/-0)
help/eu/eu.po (+1434/-0)
help/eu/totem.xml (+1058/-0)
help/fi/fi.po (+1090/-0)
help/fi/totem.xml (+777/-0)
help/fr/fr.po (+2235/-0)
help/fr/totem.xml (+764/-0)
help/it/it.po (+2507/-0)
help/it/totem.xml (+814/-0)
help/ja/ja.po (+2140/-0)
help/ja/totem.xml (+1048/-0)
help/oc/oc.po (+1117/-0)
help/oc/totem.xml (+1181/-0)
help/pa/pa.po (+820/-0)
help/pa/totem.xml (+1119/-0)
help/pl/pl.po (+1108/-0)
help/pl/totem.xml (+764/-0)
help/pt_BR/pt_BR.po (+2223/-0)
help/pt_BR/totem.xml (+764/-0)
help/ro/ro.po (+2206/-0)
help/ro/totem.xml (+761/-0)
help/ru/ru.po (+1463/-0)
help/ru/totem.xml (+1058/-0)
help/sl/sl.po (+1102/-0)
help/sl/totem.xml (+1183/-0)
help/sv/sv.po (+1277/-0)
help/sv/totem.xml (+976/-0)
help/totem-docs.h (+61/-0)
help/totem.omf.in (+13/-0)
help/uk/totem.xml (+764/-0)
help/uk/uk.po (+2527/-0)
help/zh_CN/totem.xml (+764/-0)
help/zh_CN/zh_CN.po (+1995/-0)
help/zh_HK/totem.xml (+1124/-0)
help/zh_HK/zh_HK.po (+795/-0)
help/zh_TW/totem.xml (+1124/-0)
help/zh_TW/zh_TW.po (+795/-0)
install-sh (+520/-0)
lib/Makefile.am (+19/-0)
lib/Makefile.in (+653/-0)
lib/totem-scrsaver.c (+536/-0)
lib/totem-scrsaver.h (+57/-0)
license_change (+65/-0)
ltmain.sh (+9636/-0)
m4/libtool.m4 (+7835/-0)
m4/ltoptions.m4 (+369/-0)
m4/ltsugar.m4 (+123/-0)
m4/ltversion.m4 (+23/-0)
m4/lt~obsolete.m4 (+98/-0)
m4/nls.m4 (+31/-0)
missing (+376/-0)
omf.make (+55/-0)
po/ChangeLog (+8361/-0)
po/LINGUAS (+88/-0)
po/Makefile.in.in (+217/-0)
po/POTFILES.in (+103/-0)
po/POTFILES.skip (+24/-0)
po/af.po (+3102/-0)
po/am.po (+997/-0)
po/ar.po (+3021/-0)
po/as.po (+3484/-0)
po/ast.po (+3214/-0)
po/az.po (+1547/-0)
po/be.po (+2950/-0)
po/be@latin.po (+2874/-0)
po/bg.po (+3044/-0)
po/bn.po (+3225/-0)
po/bn_IN.po (+2962/-0)
po/br.po (+2884/-0)
po/ca.po (+4147/-0)
po/ca@valencia.po (+3944/-0)
po/crh.po (+3213/-0)
po/cs.po (+3326/-0)
po/cy.po (+2836/-0)
po/da.po (+3830/-0)
po/de.po (+3097/-0)
po/dz.po (+2281/-0)
po/el.po (+3077/-0)
po/en@shaw.po (+2890/-0)
po/en_CA.po (+1799/-0)
po/en_GB.po (+3873/-0)
po/eo.po (+3303/-0)
po/es.po (+3518/-0)
po/et.po (+2396/-0)
po/eu.po (+3189/-0)
po/fa.po (+3373/-0)
po/fi.po (+3392/-0)
po/fr.po (+3095/-0)
po/ga.po (+2809/-0)
po/gl.po (+3170/-0)
po/gu.po (+3072/-0)
po/gv.po (+3065/-0)
po/he.po (+3418/-0)
po/hi.po (+2802/-0)
po/hr.po (+2379/-0)
po/hu.po (+3004/-0)
po/id.po (+3018/-0)
po/is.po (+1616/-0)
po/it.po (+3074/-0)
po/ja.po (+3273/-0)
po/ka.po (+2220/-0)
po/kk.po (+2843/-0)
po/kn.po (+2904/-0)
po/ko.po (+3126/-0)
po/ku.po (+1635/-0)
po/lt.po (+3477/-0)
po/lv.po (+3505/-0)
po/mai.po (+2787/-0)
po/mg.po (+1842/-0)
po/mk.po (+2476/-0)
po/ml.po (+2975/-0)
po/mr.po (+2770/-0)
po/ms.po (+3402/-0)
po/nb.po (+3020/-0)
po/ne.po (+2010/-0)
po/nl.po (+3526/-0)
po/nn.po (+3617/-0)
po/oc.po (+2327/-0)
po/or.po (+3125/-0)
po/pa.po (+3376/-0)
po/pl.po (+2923/-0)
po/pt.po (+3979/-0)
po/pt_BR.po (+3066/-0)
po/ro.po (+3290/-0)
po/ru.po (+2984/-0)
po/rw.po (+1860/-0)
po/si.po (+1766/-0)
po/sk.po (+3140/-0)
po/sl.po (+3034/-0)
po/sq.po (+2424/-0)
po/sr.po (+3087/-0)
po/sr@latin.po (+3087/-0)
po/sv.po (+3008/-0)
po/ta.po (+3228/-0)
po/te.po (+2868/-0)
po/th.po (+3544/-0)
po/tr.po (+2897/-0)
po/ug.po (+3217/-0)
po/uk.po (+3180/-0)
po/vi.po (+3377/-0)
po/wa.po (+1589/-0)
po/xh.po (+1716/-0)
po/zh_CN.po (+3317/-0)
po/zh_HK.po (+2958/-0)
po/zh_TW.po (+2983/-0)
py-compile (+146/-0)
src/Makefile.am (+334/-0)
src/Makefile.in (+1923/-0)
src/backend/Makefile.am (+92/-0)
src/backend/Makefile.in (+827/-0)
src/backend/bacon-resize.c (+350/-0)
src/backend/bacon-resize.h (+55/-0)
src/backend/bacon-video-widget-enums.c (+212/-0)
src/backend/bacon-video-widget-enums.h (+34/-0)
src/backend/bacon-video-widget-gst-0.10.c (+7142/-0)
src/backend/bacon-video-widget-gst-missing-plugins.c (+357/-0)
src/backend/bacon-video-widget-gst-missing-plugins.h (+35/-0)
src/backend/bacon-video-widget.h (+507/-0)
src/backend/baconvideowidget-marshal.c (+200/-0)
src/backend/baconvideowidget-marshal.h (+36/-0)
src/backend/baconvideowidget-marshal.list (+3/-0)
src/backend/bvw-test.c (+115/-0)
src/backend/gstscreenshot.c (+202/-0)
src/backend/gstscreenshot.h (+32/-0)
src/backend/video-utils.c (+380/-0)
src/backend/video-utils.h (+42/-0)
src/egg-macros.h (+154/-0)
src/eggdesktopfile.c (+1520/-0)
src/eggdesktopfile.h (+163/-0)
src/eggfileformatchooser.c (+1202/-0)
src/eggfileformatchooser.h (+84/-0)
src/eggsmclient-osx.c (+235/-0)
src/eggsmclient-private.h (+59/-0)
src/eggsmclient-win32.c (+353/-0)
src/eggsmclient-xsmp.c (+1410/-0)
src/eggsmclient.c (+625/-0)
src/eggsmclient.h (+123/-0)
src/ev-sidebar.c (+336/-0)
src/ev-sidebar.h (+76/-0)
src/gsd-media-keys-window.c (+710/-0)
src/gsd-media-keys-window.h (+74/-0)
src/gsd-osd-window.c (+762/-0)
src/gsd-osd-window.h (+95/-0)
src/plugins/Makefile.am (+6/-0)
src/plugins/Makefile.in (+696/-0)
src/plugins/Makefile.plugins (+28/-0)
src/plugins/bemused/Makefile.am (+17/-0)
src/plugins/bemused/Makefile.in (+746/-0)
src/plugins/bemused/bemused.plugin.in (+9/-0)
src/plugins/bemused/totem-bemused.c (+748/-0)
src/plugins/brasero-disc-recorder/Makefile.am (+17/-0)
src/plugins/brasero-disc-recorder/Makefile.in (+750/-0)
src/plugins/brasero-disc-recorder/brasero-disc-recorder.plugin.in (+9/-0)
src/plugins/brasero-disc-recorder/totem-disc-recorder.c (+467/-0)
src/plugins/chapters/Makefile.am (+28/-0)
src/plugins/chapters/Makefile.in (+811/-0)
src/plugins/chapters/chapters-edit.ui (+35/-0)
src/plugins/chapters/chapters-list.ui (+237/-0)
src/plugins/chapters/chapters.plugin.in (+9/-0)
src/plugins/chapters/totem-chapters-utils.c (+95/-0)
src/plugins/chapters/totem-chapters-utils.h (+33/-0)
src/plugins/chapters/totem-chapters.c (+1239/-0)
src/plugins/chapters/totem-cmml-parser.c (+929/-0)
src/plugins/chapters/totem-cmml-parser.h (+82/-0)
src/plugins/chapters/totem-edit-chapter.c (+145/-0)
src/plugins/chapters/totem-edit-chapter.h (+58/-0)
src/plugins/coherence_upnp/Makefile.am (+8/-0)
src/plugins/coherence_upnp/Makefile.in (+612/-0)
src/plugins/coherence_upnp/coherence_upnp.plugin.in (+9/-0)
src/plugins/coherence_upnp/coherence_upnp.py (+128/-0)
src/plugins/dbus-service/Makefile.am (+8/-0)
src/plugins/dbus-service/Makefile.in (+612/-0)
src/plugins/dbus-service/dbus-service.plugin.in (+9/-0)
src/plugins/dbus-service/dbus-service.py (+298/-0)
src/plugins/gromit/Makefile.am (+13/-0)
src/plugins/gromit/Makefile.in (+739/-0)
src/plugins/gromit/gromit.plugin.in (+8/-0)
src/plugins/gromit/totem-gromit.c (+261/-0)
src/plugins/im-status/Makefile.am (+15/-0)
src/plugins/im-status/Makefile.in (+745/-0)
src/plugins/im-status/totem-im-status.c (+203/-0)
src/plugins/im-status/totem-im-status.plugin.in (+9/-0)
src/plugins/iplayer/Makefile.am (+12/-0)
src/plugins/iplayer/Makefile.in (+637/-0)
src/plugins/iplayer/iplayer.plugin.in (+9/-0)
src/plugins/iplayer/iplayer.py (+235/-0)
src/plugins/iplayer/iplayer.ui (+41/-0)
src/plugins/iplayer/iplayer2.py (+1023/-0)
src/plugins/iplayer/listparser.py (+52/-0)
src/plugins/jamendo/Makefile.am (+22/-0)
src/plugins/jamendo/Makefile.in (+667/-0)
src/plugins/jamendo/jamendo.convert (+3/-0)
src/plugins/jamendo/jamendo.plugin.in (+9/-0)
src/plugins/jamendo/jamendo.py (+689/-0)
src/plugins/jamendo/jamendo.ui (+603/-0)
src/plugins/jamendo/org.gnome.totem.plugins.jamendo.gschema.xml.in.in (+20/-0)
src/plugins/lirc/Makefile.am (+21/-0)
src/plugins/lirc/Makefile.in (+772/-0)
src/plugins/lirc/lirc.plugin.in (+8/-0)
src/plugins/lirc/totem-lirc.c (+299/-0)
src/plugins/lirc/totem_lirc_default (+236/-0)
src/plugins/media-player-keys/Makefile.am (+33/-0)
src/plugins/media-player-keys/Makefile.in (+775/-0)
src/plugins/media-player-keys/media-player-keys.plugin.in (+9/-0)
src/plugins/media-player-keys/totem-marshal.c (+102/-0)
src/plugins/media-player-keys/totem-marshal.h (+20/-0)
src/plugins/media-player-keys/totem-marshal.list (+1/-0)
src/plugins/media-player-keys/totem-media-player-keys.c (+208/-0)
src/plugins/ontop/Makefile.am (+13/-0)
src/plugins/ontop/Makefile.in (+739/-0)
src/plugins/ontop/ontop.plugin.in (+8/-0)
src/plugins/ontop/totem-ontop.c (+122/-0)
src/plugins/opensubtitles/Makefile.am (+22/-0)
src/plugins/opensubtitles/Makefile.in (+668/-0)
src/plugins/opensubtitles/hash.py (+47/-0)
src/plugins/opensubtitles/opensubtitles.convert (+2/-0)
src/plugins/opensubtitles/opensubtitles.plugin.in (+9/-0)
src/plugins/opensubtitles/opensubtitles.py (+672/-0)
src/plugins/opensubtitles/opensubtitles.ui (+196/-0)
src/plugins/opensubtitles/org.gnome.totem.plugins.opensubtitles.gschema.xml.in.in (+10/-0)
src/plugins/properties/Makefile.am (+18/-0)
src/plugins/properties/Makefile.in (+749/-0)
src/plugins/properties/movie-properties.plugin.in (+9/-0)
src/plugins/properties/totem-movie-properties.c (+172/-0)
src/plugins/publish/Makefile.am (+31/-0)
src/plugins/publish/Makefile.in (+802/-0)
src/plugins/publish/org.gnome.totem.plugins.publish.gschema.xml.in.in (+28/-0)
src/plugins/publish/publish-plugin.ui (+111/-0)
src/plugins/publish/publish.convert (+3/-0)
src/plugins/publish/publish.plugin.in (+8/-0)
src/plugins/publish/totem-publish.c (+681/-0)
src/plugins/pythonconsole/Makefile.am (+18/-0)
src/plugins/pythonconsole/Makefile.in (+646/-0)
src/plugins/pythonconsole/console.py (+316/-0)
src/plugins/pythonconsole/org.gnome.totem.plugins.pythonconsole.gschema.xml.in.in (+10/-0)
src/plugins/pythonconsole/pythonconsole.convert (+3/-0)
src/plugins/pythonconsole/pythonconsole.plugin.in (+9/-0)
src/plugins/pythonconsole/pythonconsole.py (+159/-0)
src/plugins/sample-python/Makefile.am (+14/-0)
src/plugins/sample-python/Makefile.in (+560/-0)
src/plugins/sample-python/sample-python.plugin.in (+9/-0)
src/plugins/sample-python/sample-python.py (+17/-0)
src/plugins/sample-vala/Makefile.am (+25/-0)
src/plugins/sample-vala/Makefile.in (+730/-0)
src/plugins/sample-vala/sample-vala.plugin.in (+8/-0)
src/plugins/sample-vala/totem-sample-vala-plugin.c (+203/-0)
src/plugins/sample-vala/totem-sample-vala-plugin.vala (+23/-0)
src/plugins/save-file/Makefile.am (+17/-0)
src/plugins/save-file/Makefile.in (+747/-0)
src/plugins/save-file/save-file.plugin.in (+9/-0)
src/plugins/save-file/totem-save-file.c (+356/-0)
src/plugins/screensaver/Makefile.am (+21/-0)
src/plugins/screensaver/Makefile.in (+752/-0)
src/plugins/screensaver/screensaver.plugin.in (+9/-0)
src/plugins/screensaver/totem-screensaver.c (+166/-0)
src/plugins/screenshot/Makefile.am (+27/-0)
src/plugins/screenshot/Makefile.in (+818/-0)
src/plugins/screenshot/gallery.ui (+100/-0)
src/plugins/screenshot/gnome-screenshot-widget.c (+439/-0)
src/plugins/screenshot/gnome-screenshot-widget.h (+71/-0)
src/plugins/screenshot/gnome-screenshot.ui (+148/-0)
src/plugins/screenshot/screenshot.plugin.in (+9/-0)
src/plugins/screenshot/totem-gallery-progress.c (+232/-0)
src/plugins/screenshot/totem-gallery-progress.h (+61/-0)
src/plugins/screenshot/totem-gallery.c (+205/-0)
src/plugins/screenshot/totem-gallery.h (+62/-0)
src/plugins/screenshot/totem-screenshot-plugin.c (+355/-0)
src/plugins/screenshot/totem-screenshot-plugin.h (+44/-0)
src/plugins/screenshot/totem-screenshot.c (+185/-0)
src/plugins/screenshot/totem-screenshot.h (+62/-0)
src/plugins/sidebar-test/Makefile.am (+19/-0)
src/plugins/sidebar-test/Makefile.in (+705/-0)
src/plugins/sidebar-test/sidebar-test.plugin.in (+9/-0)
src/plugins/sidebar-test/totem-sidebar-test.c (+75/-0)
src/plugins/skipto/Makefile.am (+22/-0)
src/plugins/skipto/Makefile.in (+790/-0)
src/plugins/skipto/skipto.plugin.in (+9/-0)
src/plugins/skipto/skipto.ui (+112/-0)
src/plugins/skipto/totem-skipto-plugin.c (+252/-0)
src/plugins/skipto/totem-skipto.c (+222/-0)
src/plugins/skipto/totem-skipto.h (+69/-0)
src/plugins/skipto/totem-time-entry.c (+154/-0)
src/plugins/skipto/totem-time-entry.h (+62/-0)
src/plugins/thumbnail/Makefile.am (+13/-0)
src/plugins/thumbnail/Makefile.in (+740/-0)
src/plugins/thumbnail/thumbnail.plugin.in (+8/-0)
src/plugins/thumbnail/totem-thumbnail.c (+179/-0)
src/plugins/totem-dirs.c (+194/-0)
src/plugins/totem-dirs.h (+39/-0)
src/plugins/totem-plugin.h (+179/-0)
src/plugins/totem-plugins-engine.c (+215/-0)
src/plugins/totem-plugins-engine.h (+68/-0)
src/plugins/tracker/Makefile.am (+19/-0)
src/plugins/tracker/Makefile.in (+759/-0)
src/plugins/tracker/totem-tracker-widget.c (+885/-0)
src/plugins/tracker/totem-tracker-widget.h (+54/-0)
src/plugins/tracker/totem-tracker.c (+79/-0)
src/plugins/tracker/tracker.plugin.in (+9/-0)
src/plugins/youtube/Makefile.am (+23/-0)
src/plugins/youtube/Makefile.in (+775/-0)
src/plugins/youtube/totem-youtube.c (+827/-0)
src/plugins/youtube/youtube.plugin.in (+8/-0)
src/plugins/youtube/youtube.ui (+177/-0)
src/plugins/zeitgeist-dp/Makefile.am (+23/-0)
src/plugins/zeitgeist-dp/Makefile.in (+773/-0)
src/plugins/zeitgeist-dp/totem-zeitgeist-dp-plugin.c (+792/-0)
src/plugins/zeitgeist-dp/totem-zeitgeist-dp-plugin.vala (+229/-0)
src/plugins/zeitgeist-dp/zeitgeist-dp.plugin.in (+8/-0)
src/properties/Makefile.am (+17/-0)
src/properties/Makefile.in (+650/-0)
src/properties/bacon-video-widget-properties.c (+324/-0)
src/properties/bacon-video-widget-properties.h (+56/-0)
src/test-properties-page.c (+106/-0)
src/totem-audio-preview.c (+142/-0)
src/totem-cell-renderer-video.c (+468/-0)
src/totem-cell-renderer-video.h (+71/-0)
src/totem-dnd-menu.c (+121/-0)
src/totem-dnd-menu.h (+29/-0)
src/totem-fullscreen.c (+645/-0)
src/totem-fullscreen.h (+88/-0)
src/totem-interface.c (+367/-0)
src/totem-interface.h (+58/-0)
src/totem-menu.c (+1410/-0)
src/totem-menu.h (+45/-0)
src/totem-object.c (+4363/-0)
src/totem-open-location.c (+249/-0)
src/totem-open-location.h (+62/-0)
src/totem-options.c (+217/-0)
src/totem-options.h (+68/-0)
src/totem-playlist.c (+3003/-0)
src/totem-playlist.h (+174/-0)
src/totem-preferences.c (+496/-0)
src/totem-preferences.h (+39/-0)
src/totem-private.h (+199/-0)
src/totem-profile.h (+57/-0)
src/totem-properties-main.c (+154/-0)
src/totem-properties-view.c (+192/-0)
src/totem-properties-view.h (+59/-0)
src/totem-resources.c (+123/-0)
src/totem-resources.h (+33/-0)
src/totem-session.c (+191/-0)
src/totem-session.h (+36/-0)
src/totem-sidebar.c (+189/-0)
src/totem-sidebar.h (+41/-0)
src/totem-statusbar.c (+352/-0)
src/totem-statusbar.h (+73/-0)
src/totem-subtitle-encoding.c (+533/-0)
src/totem-subtitle-encoding.h (+12/-0)
src/totem-time-label.c (+85/-0)
src/totem-time-label.h (+33/-0)
src/totem-uri.c (+805/-0)
src/totem-uri.h (+56/-0)
src/totem-video-indexer.c (+219/-0)
src/totem-video-list.c (+575/-0)
src/totem-video-list.h (+75/-0)
src/totem-video-thumbnailer.c (+921/-0)
src/totem.c (+283/-0)
src/totem.h (+307/-0)
src/totemobject-marshal.c (+106/-0)
src/totemobject-marshal.h (+20/-0)
src/totemobject-marshal.list (+1/-0)
src/totemplaylist-marshal.c (+102/-0)
src/totemplaylist-marshal.h (+20/-0)
src/totemplaylist-marshal.list (+1/-0)
src/totemvideolist-marshal.c (+104/-0)
src/totemvideolist-marshal.h (+20/-0)
src/totemvideolist-marshal.list (+1/-0)
totem.doap (+24/-0)
totem.spec (+241/-0)
totem.spec.in (+241/-0)
xmldocs.make (+92/-0)
Conflict adding file debian.  Moved existing file to debian.moved.
To merge this branch: bzr merge lp:~manishsinha/ubuntu/precise/totem/enable-zeitgeist-datasource
Reviewer Review Type Date Requested Status
Ubuntu Desktop Pending
Review via email: mp+80434@code.launchpad.net

Commit message

* debian/rules: Enabled vala support
* debian/control: Added valac, libzeitgeist-dev as build-dep and libzeitgeist-1.0-1 as dependency of totem-plugins
* debian/totem-plugins.intall: Added another entry for zeitgeist-dp

Description of the change

Enabled Zeitgeist datasource

Changed made
* Enabled the vala support in debian/rules
* Added an entry in totem-plugins.install
* Updated the respective dependencies in debian/control

To post a comment you must log in.
187. By Manish Sinha (मनीष सिन्हा)

Enable zeitgeist-dp vala plugin for totem (LP: #879702)

Revision history for this message
Jeremy Bícha (jbicha) wrote :

The ubuntu-desktop branch is packaging only (just the debian/ directory) so you'll need to:
bzr branch lp:~ubuntu-desktop/totem/ubuntu
make your changes
and then repropose for merging. The diff will be quite a bit smaller then.

See also https://wiki.ubuntu.com/DesktopTeam/Bzr And if you have questions (as it's a bit confusing), feel free to ask in #ubuntu-desktop and someone will help you out.

Revision history for this message
Sebastien Bacher (seb128) wrote :

Could you update he merge request as requested before?

Revision history for this message
Manish Sinha (मनीष सिन्हा) (manishsinha) wrote :

Sebastien,
I had proposed merging a wrong to lp:~ubuntu-desktop/totem/ubuntu

I reworked on it and created a new merge proposal
https://code.launchpad.net/~manishsinha/totem/enable-zg-dp-building/+merge/80492
which has now been merged
https://code.launchpad.net/~ubuntu-desktop/totem/ubuntu

Can you please reject this merge proposal. I cannot set it myself

Revision history for this message
Sebastien Bacher (seb128) wrote :

sure, done ;-)

Unmerged revisions

187. By Manish Sinha (मनीष सिन्हा)

Enable zeitgeist-dp vala plugin for totem (LP: #879702)

186. By Manish Sinha (मनीष सिन्हा)

Enable zeitgeist-dp vala plugin for totem

185. By Jeremy Bícha

* debian/patches/04_port_to_gobject.patch:
  Port opensubtitles/hash.py also
* debian/patches/90_fix_save_playlist.patch:
  Git patch to fix broken save plugin button (LP: #873719)

184. By Mathieu Trudel-Lapierre

* debian/control: backport libtotem-dev from Debian.
* debian/libtotem-dev.install: add install file for libtotem-dev.
* debian/control, debian/totem.install, debian/libtotem-dev.install: move
  /usr/share/gir1.0 to libtotem-dev.

183. By Mathieu Trudel-Lapierre

debian/patches/youtube-api-gdata9.patch: fix FTBFS: use the new gdata 0.9
API to interface with Google services for youtube. (LP: #829427)

182. By Steve Langasek

* Build-depend on gstreamer0.10-gconf, which is split out now from
  gstreamer0.10-plugins-good.
* python-support is deprecated; migrate to dh_python2.

181. By Sebastien Bacher

debian/control.in: build-depends on gtk-doc-tools

180. By Sebastien Bacher

* Resynchronize on Debian, remaining diffs:
* debian/control.in:
  - use suggests rather than recommends for universe gstreamer components
  - add totem-plugins-extra for the components which have depends in universe
  - add build-depends on gnome-common, dh-autoreconf,
    liblaunchpad-intrgration-3.0-dev, hardening-wrapper
  - drop build-depends on libepc-ui-dev, python-feedparser, xulrunner-dev,
    libtracker-sparql-0.10-dev
  - add XB-Npp-Description and XB-Npp-Filename header to the
    totem-mozilla package to improve ubufox/ubuntu plugin db integration
  - change refences from Iceweasel to Firefox
  - recommends gnome-icon-theme-symbolic rather than depending on it
  - list firefox as a totem-mozilla recommends before epiphany-browser
  - libtotem replaces totem (<< 3.0.1-1) for ppa upgrades
* debian/totem-common.install:
  - Install apport hook
* debian/totem-plugins-extra.install:
  - Plugins split out ouf totem-plugins
* debian/totem-plugins.install:
  - Move some plugins to totem-plugins-extra
* debian/totem.preinst:
  - No longer required as Lucid has been released
* debian/patches/01_fake_keypresses.patch:
  - dropped it's an old workaround and should not be required
* debian/patches/02_lpi.patch:
  - Launchpad integration
* debian/patches/03_default_options.patch:
  - enable the youtube option by default
* debian/patches/70_bbc_plugin.patch:
  - bbc content viewer, needs to be fixed for the new version
* debian/source_totem.py:
  - ubuntu apport debugging
* debian/rules:
  - run autoreconf on build
* debian/watch:
  - Watch for unstable versions

179. By Omer Akram

* debian/patches/74_add_new_playlist_api.patch
  debian/patches/74_use_new_playlist_api.patch:
  - Fix the DnD of files in the playlist sidepane. (LP: #659001)
* debian/patches/74_fix_compile.patch:
  - Fix compiling after the above two patches.
* debian/patches/75_fix_screenshotting_of_interlaced_videos.patch:
  - Take screenshot does not work for some videos. (LP: #705361)

178. By Kees Cook

debian/{control{,.in},rules}: enable PIE build for security hardening
(Closes: #613763).

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory '.pc'
2=== added file '.pc/.version'
3--- .pc/.version 1970-01-01 00:00:00 +0000
4+++ .pc/.version 2011-10-26 10:18:23 +0000
5@@ -0,0 +1,1 @@
6+2
7
8=== added directory '.pc/02_lpi.patch'
9=== added file '.pc/02_lpi.patch/configure.in'
10--- .pc/02_lpi.patch/configure.in 1970-01-01 00:00:00 +0000
11+++ .pc/02_lpi.patch/configure.in 2011-10-26 10:18:23 +0000
12@@ -0,0 +1,917 @@
13+AC_PREREQ(2.52)
14+
15+m4_define(totem_version_major, 3)
16+m4_define(totem_version_minor, 0)
17+m4_define(totem_version_micro, 1)
18+
19+# The version of the API exposed to plugins
20+m4_define(totem_api_version_major, 1)
21+m4_define(totem_api_version_minor, 0)
22+
23+AC_INIT([totem],
24+ [totem_version_major.totem_version_minor.totem_version_micro],
25+ [http://bugzilla.gnome.org/enter_bug.cgi?product=totem])
26+
27+AM_MAINTAINER_MODE
28+AC_CONFIG_SRCDIR([src/totem.c])
29+AC_CONFIG_HEADERS([config.h])
30+
31+AM_INIT_AUTOMAKE([1.11 dist-bzip2 no-dist-gzip check-news subdir-objects])
32+
33+# Enable silent build when available (Automake 1.11)
34+m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
35+
36+dnl Add the languages which your application supports to po/LINGUAS
37+GETTEXT_PACKAGE=totem
38+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define to the Gettext package name])
39+AC_SUBST(GETTEXT_PACKAGE)
40+IT_PROG_INTLTOOL([0.40.0])
41+
42+GNOME_DOC_INIT([0.20.3])
43+GOBJECT_INTROSPECTION_CHECK([0.6.7])
44+
45+AC_PROG_CXX
46+AM_PROG_CC_C_O
47+AC_PROG_LIBTOOL
48+m4_ifdef([LT_OUTPUT], [LT_OUTPUT])
49+
50+PKG_PROG_PKG_CONFIG
51+
52+AC_PATH_PROG([GLIB_GENMARSHAL],[glib-genmarshal])
53+AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums])
54+
55+# Requirements
56+GLIB_REQS=2.27.92
57+GIO_REQS=2.27.92
58+GTK_REQS=2.99.3
59+TOTEM_PLPARSER_REQS=2.32.4
60+GNOMEICON_REQS=2.15.90
61+DBUS_REQS=0.82
62+VALA_REQS=0.11.1
63+PEAS_REQS=0.7.2
64+PYTHON_REQS=2.3
65+PYGOBJECT_REQS=2.27.0
66+
67+AC_SUBST(GLIB_REQS)
68+AC_SUBST(GTK_REQS)
69+AC_SUBST(TOTEM_PLPARSER_REQS)
70+
71+TOTEM_VERSION_MAJOR=totem_version_major
72+TOTEM_VERSION_MINOR=totem_version_minor
73+TOTEM_VERSION_MICRO=totem_version_micro
74+AC_SUBST(TOTEM_VERSION_MAJOR)
75+AC_SUBST(TOTEM_VERSION_MINOR)
76+AC_SUBST(TOTEM_VERSION_MICRO)
77+
78+TOTEM_API_VERSION=totem_api_version_major.totem_api_version_minor
79+AC_SUBST(TOTEM_API_VERSION)
80+AC_DEFINE_UNQUOTED(TOTEM_API_VERSION, ["$TOTEM_API_VERSION"], [Define to the Totem plugin API version])
81+
82+# The full list of plugins
83+allowed_plugins="bemused brasero-disc-recorder chapters coherence_upnp dbus-service im-status gromit iplayer jamendo lirc media-player-keys ontop opensubtitles properties publish pythonconsole save-file sample-python sample-vala screensaver screenshot sidebar-test skipto thumbnail tracker youtube zeitgeist-dp"
84+
85+PLUGINDIR='${libdir}/totem/plugins'
86+AC_SUBST(PLUGINDIR)
87+
88+dnl the two versions here implicate the gstreamer core and gst-plugins
89+dnl release versions.
90+GST_MAJORMINOR=0.10
91+GST_REQS=0.10.30
92+GSTPLUG_REQS=0.10.30
93+
94+HAVE_GSTREAMER=no
95+
96+dnl Check for the required GStreamer versions for missing plugins
97+dnl installation, unless this has been disabled.
98+AC_MSG_CHECKING([whether to enable easy codec installation support])
99+AC_ARG_ENABLE([easy-codec-installation],
100+ [
101+ AS_HELP_STRING([--enable-easy-codec-installation],
102+ [Whether to enable easy codec installation support for GStreamer]
103+ )
104+ ], [
105+ case "${enableval}" in
106+ yes) enable_easy_codec_installation=yes ;;
107+ no) enable_easy_codec_installation=no ;;
108+ *) enable_easy_codec_installation=auto ;;
109+ esac
110+ ], [
111+ dnl default value
112+ enable_easy_codec_installation=auto
113+ ]
114+)
115+AC_MSG_RESULT([$enable_easy_codec_installation])
116+
117+if test "x$enable_easy_codec_installation" != "xno"; then
118+ PKG_CHECK_MODULES(MISSING_PLUGINS, gstreamer-plugins-base-0.10,
119+ [
120+ MISSING_PLUGINS_LIBS="$MISSING_PLUGINS_LIBS -lgstpbutils-0.10"
121+ AC_DEFINE([ENABLE_MISSING_PLUGIN_INSTALLATION], 1,
122+ [Whether we can and want to do installation of missing plugins])
123+ ])
124+fi
125+
126+MM="gstreamer-0.10 >= $GST_REQS gstreamer-base-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GSTPLUG_REQS gstreamer-tag-0.10 >= $GSTPLUG_REQS"
127+PKG_CHECK_MODULES(GST, $MM)
128+GST_LIBS="$GST_LIBS -lgstbase-$GST_MAJORMINOR -lgstinterfaces-$GST_MAJORMINOR -lgstvideo-$GST_MAJORMINOR -lgstaudio-$GST_MAJORMINOR -lgstpbutils-$GST_MAJORMINOR -lgsttag-$GST_MAJORMINOR"
129+AC_SUBST(GST_LIBS)
130+EXTRA_BACKEND_LIBS="-lgstinterfaces-$GST_MAJORMINOR -lgstvideo-$GST_MAJORMINOR -lgstaudio-$GST_MAJORMINOR -lgstpbutils-$GST_MAJORMINOR"
131+
132+dnl Check for required plugins
133+gst010_toolsdir=`$PKG_CONFIG --variable=toolsdir gstreamer-0.10`
134+gst010_inspect="$gst010_toolsdir/gst-inspect-0.10"
135+
136+dnl Give error and exit if we don't have the gst_inspect tool
137+AC_MSG_CHECKING([GStreamer 0.10 inspection tool])
138+if test -r "$gst010_inspect"; then
139+ AC_MSG_RESULT([yes])
140+else
141+ AC_MSG_RESULT([no])
142+ AC_MSG_ERROR([
143+ Cannot find required GStreamer-0.10 tool 'gst-inspect-0.10'.
144+ It should be part of gstreamer-0_10-utils. Please install it.
145+ ])
146+fi
147+
148+dnl Check for elements from gst-plugins-base
149+for base_element in playbin2 ffmpegcolorspace videoscale
150+do
151+ AC_MSG_CHECKING([GStreamer 0.10 $base_element plugin])
152+ if $gst010_inspect $base_element >/dev/null 2>/dev/null; then
153+ AC_MSG_RESULT([yes])
154+ else
155+ AC_MSG_RESULT([no])
156+ AC_MSG_ERROR([
157+ Cannot find required GStreamer-0.10 plugin '$base_element'.
158+ It should be part of gst-plugins-base. Please install it.
159+ ])
160+ fi
161+done
162+
163+dnl Check for elements from gst-plugins-good
164+for good_element in gconfaudiosink gconfvideosink goom
165+do
166+ AC_MSG_CHECKING([GStreamer 0.10 $good_element plugin])
167+ if $gst010_inspect $good_element >/dev/null 2>/dev/null; then
168+ AC_MSG_RESULT([yes])
169+ else
170+ AC_MSG_RESULT([no])
171+ AC_MSG_ERROR([
172+ Cannot find required GStreamer-0.10 plugin '$good_element'.
173+ It should be part of gst-plugins-good. Please install it.
174+ ])
175+ fi
176+done
177+
178+dnl Check the smclient backend
179+GDK_TARGET="$($PKG_CONFIG --variable targets gdk-3.0)"
180+
181+SMCLIENT_PKGS=
182+AC_MSG_CHECKING([which smclient backend to use])
183+AC_ARG_WITH([smclient],
184+ [AS_HELP_STRING([--with-smclient],[which smclient backend to use (xsmp/win32/quartz)])],
185+ [],
186+ [case "$GDK_TARGET" in
187+ x11) with_smclient=xsmp SMCLIENT_PKGS="sm ice" ;;
188+ win32|quartz) with_smclient=$GDK_TARGET ;;
189+ *) with_smclient=no ;;
190+ esac])
191+AC_MSG_RESULT([$with_smclient])
192+
193+if test "$with_smclient" != "no"; then
194+ PKG_CHECK_MODULES([SMCLIENT],[$SMCLIENT_PKGS])
195+ AC_DEFINE([WITH_SMCLIENT],[1],[Define if smclient is enabled])
196+fi
197+
198+AM_CONDITIONAL([WITH_SMCLIENT],[test "$with_smclient" != "no"])
199+AM_CONDITIONAL([WITH_SMCLIENT_XSMP],[test "$with_smclient" = "xsmp"])
200+AM_CONDITIONAL([WITH_SMCLIENT_WIN32],[test "$with_smclient" = "win32"])
201+AM_CONDITIONAL([WITH_SMCLIENT_QUARTZ],[test "$with_smclient" = "quartz"])
202+
203+dnl Pkg-config checks
204+
205+PKG_CHECK_MODULES([DEPENDENCY],[
206+ glib-2.0 >= $GLIB_REQS
207+ gio-2.0 >= $GIO_REQS
208+ gtk+-3.0 >= $GTK_REQS
209+ gdk-x11-3.0 >= $GTK_REQS
210+ gmodule-2.0
211+ totem-plparser >= $TOTEM_PLPARSER_REQS
212+ gstreamer-tag-0.10 >= 0.10.26
213+ cairo])
214+
215+PKG_CHECK_MODULES(MM, $MM)
216+
217+PKG_CHECK_MODULES([GTK],[gtk+-3.0 gthread-2.0])
218+GTK_LIBS="$GTK_LIBS $EXTRA_BACKEND_LIBS"
219+AC_SUBST(GTK_LIBS)
220+
221+AC_SUBST([EXTRA_BACKEND_LIBS])
222+
223+PKG_CHECK_EXISTS([
224+ $ISO_CODES
225+ gnome-icon-theme >= $GNOMEICON_REQS])
226+
227+dnl *************************
228+dnl X11 related functionality
229+dnl *************************
230+have_x11=no
231+if test x$(pkg-config --variable=targets gtk+-3.0) = xx11; then
232+ AC_PATH_X
233+
234+ have_x11=yes
235+
236+ if test x"$x_includes" != x"NONE" && test -n "$x_includes" ; then
237+ X_INCLUDES=-I`echo $x_includes | sed -e "s/:/ -I/g"`
238+ fi
239+ if test x"$x_libraries" != x"NONE" && test -n "$x_libraries" ; then
240+ X_LIBRARIES=-L`echo $x_libraries | sed -e "s/:/ -L/g"`
241+ fi
242+ CFLAGS="$X_INCLUDES $CFLAGS"
243+ LIBS="$X_LIBRARIES $LIBS"
244+
245+ XTEST_LIBS=""
246+ enable_xtest=no
247+ AC_CHECK_LIB(Xtst, XTestFakeKeyEvent,
248+ XTEST_LIBS="-lX11 -lXtst $X_LIBRARIES"
249+ enable_xtest=yes
250+ AC_DEFINE(HAVE_XTEST, 1, [defined if you have XTest library]),
251+ ,
252+ $X_LIBRARIES)
253+ AC_SUBST(XTEST_LIBS)
254+
255+ PKG_CHECK_MODULES(XVIDMODE, xrandr >= 1.1.1 xxf86vm >= 1.0.1,
256+ have_xvidmode=yes, have_xvidmode=no)
257+
258+ if test x$have_xvidmode = xyes; then
259+ AC_DEFINE(HAVE_XVIDMODE,, [Define this if you have the XVidMode and XRandR extension installed])
260+ fi
261+
262+ X_LIBS=""
263+
264+ dnl Explicitely link against libX11 to avoid problems with crappy linkers
265+ X_LIBS="$X_LIBRARIES -lX11"
266+ AC_SUBST(X_LIBS)
267+
268+ dnl Multimedia keys
269+ have_xfree=no
270+ AC_COMPILE_IFELSE([
271+ #include <X11/XF86keysym.h>
272+ int main(int argc,char **argv) {
273+ return 0;
274+ }
275+ ],
276+ have_xfree=yes
277+ )
278+ AC_MSG_CHECKING(for X11 XFree86 headers)
279+ AC_MSG_RESULT([$have_xfree])
280+ if test x"$have_xfree" = "xyes" ; then
281+ AC_DEFINE(HAVE_XFREE, 1, [defined if you have X11/XF86keysym.h])
282+ fi
283+fi
284+AM_CONDITIONAL(HAVE_XVIDMODE, [test x$have_xvidmode = xyes])
285+
286+dnl ================================================================
287+dnl Plugins support
288+dnl ================================================================
289+
290+PKG_CHECK_MODULES(PEAS, libpeas-1.0 >= $PEAS_REQS)
291+PKG_CHECK_MODULES(PEASGTK, libpeas-gtk-1.0 >= $PEAS_REQS)
292+
293+# ================================================================
294+# Python plugins
295+# ================================================================
296+# We don't need any of this at compile time, but it is needed for the Python plugins at runtime, so we check anyway.
297+
298+AC_MSG_CHECKING([whether Python plugin support is requested])
299+AC_ARG_ENABLE([python],
300+ AS_HELP_STRING([--enable-python],[Enable python support]),
301+ [enable_python=$enableval],
302+ [enable_python=autodetect])
303+AC_MSG_RESULT([$enable_python])
304+
305+have_python=no
306+have_pygobject=no
307+
308+# Test for the Python run time and PyGObject
309+if test "x$enable_python" != "xno"; then
310+ AM_PATH_PYTHON([$PYTHON_REQS],[have_python=yes],[have_python=no])
311+ if test "x$PYTHON" = "x:"; then
312+ have_python=no
313+ fi
314+
315+ PKG_CHECK_MODULES([PYGOBJECT],[pygobject-2.0 >= $PYGOBJECT_REQS],[have_pygobject=yes],[have_pygobject=no])
316+fi
317+
318+# Output the results of the Python checks
319+if test "x$have_python" != "xyes" -o "x$have_pygobject" != "xyes"; then
320+ if test "x$enable_python" = "xyes"; then
321+ AC_MSG_ERROR([python >= $PYTHON_REQS or pygobject-2.0 >= $PYGOBJECT_REQS not found])
322+ elif test "x$enable_python" = "xautodetect"; then
323+ enable_python=no
324+ AC_MSG_WARN([python >= $PYTHON_REQS or pygobject-2.0 >= $PYGOBJECT_REQS not found; disabling Python support])
325+ fi
326+elif test "x$enable_python" != "xno"; then
327+ enable_python=yes
328+fi
329+
330+AM_CONDITIONAL([ENABLE_PYTHON],[test "x$enable_python" = "xyes"])
331+
332+dnl ================================================================
333+dnl Vala plugins
334+dnl ================================================================
335+AC_MSG_CHECKING([whether Vala plugin support is requested])
336+AC_ARG_ENABLE([vala],
337+ AS_HELP_STRING([--enable-vala],[Enable Vala plugin support]),
338+ [enable_vala=$enableval],
339+ [enable_vala=auto])
340+AC_MSG_RESULT([$enable_vala])
341+if test "x$enable_vala" != "xno"; then
342+ AM_PROG_VALAC([$VALA_REQS])
343+ if test "x$VALAC" = "x"; then
344+ if test "x$enable_vala" = "xyes"; then
345+ AC_MSG_ERROR([Vala plugin support explicitly requested, but not found])
346+ fi
347+ with_vala=no
348+ else
349+ with_vala=yes
350+ fi
351+fi
352+
353+AM_CONDITIONAL(ENABLE_VALA, test "x$with_vala" = "xyes")
354+
355+# ********************
356+# Movie player plugins
357+# ********************
358+
359+plugin_error_or_ignore()
360+{
361+ if test "${error_on_bad_plugin}" = "1" ; then
362+ AC_MSG_ERROR([$1])
363+ else
364+ AC_MSG_WARN([$1 (disabling plugin)])
365+ fi
366+}
367+
368+AC_ARG_WITH([plugins],
369+ [AS_HELP_STRING([--with-plugins],[Which Totem plugins to compile (default: auto; "all", "none" and "autodetect" are valid)])],
370+ [], [with_plugins=autodetect])
371+
372+used_plugins=""
373+used_plugins2=""
374+
375+if test "x${with_plugins}" = "xautodetect" ; then
376+ # Default to all plugins and just ignore them if they won't compile
377+ with_plugins="all"
378+ error_on_bad_plugin="0"
379+else
380+ # Clean up the plugin list and error if a plugin won't compile
381+ with_plugins=`echo ,"${with_plugins}", | sed -e 's/[[ ,]][[ ,]]*/ /g' -e 's/,$//'`
382+ error_on_bad_plugin="1"
383+fi
384+
385+# Iterate through the wanted plugins and weed out bad ones (or error)
386+for wanted_plugin in ${with_plugins}; do
387+ for allowed_plugin in ${allowed_plugins}; do
388+ case ${wanted_plugin} in
389+ all)
390+ # List all plugins as being used
391+ used_plugins=${allowed_plugins}
392+ ;;
393+ autodetect)
394+ # List all plugins as being used
395+ used_plugins=${allowed_plugins}
396+ ;;
397+ none) used_plugins="";; # List no plugins
398+ ${allowed_plugin}) used_plugins="${used_plugins} ${wanted_plugin}";; # List the plugin
399+ *) ;;
400+ esac
401+ done
402+done
403+
404+# Check for plugin-specific requirements and error if necessary
405+for plugin in ${used_plugins}; do
406+ add_plugin="1"
407+
408+ case ${plugin} in
409+ coherence_upnp)
410+ # The Coherence framework still uses PyGTK, and thus conflicts with the new pygobject introspected bindings
411+ plugin_error_or_ignore "the coherence_upnp plugin uses PyGTK and conflicts with the new pygobject bindings"
412+ add_plugin="0"
413+ ;;
414+ gromit)
415+ if test "${have_x11}" != "yes" ; then
416+ plugin_error_or_ignore "the gromit plugin is not supported on non-X11 targets"
417+ add_plugin="0"
418+ fi
419+ ;;
420+ media-player-keys)
421+ PKG_CHECK_MODULES(MEDIA_PLAYER_KEYS, dbus-glib-1,
422+ [HAVE_MEDIA_PLAYER_KEYS=yes], [HAVE_MEDIA_PLAYER_KEYS=no])
423+ if test "${HAVE_MEDIA_PLAYER_KEYS}" != "yes" ; then
424+ plugin_error_or_ignore "you need dbus-glib-1 installed for the media-player-keys plugin"
425+ add_plugin="0"
426+ fi
427+ ;;
428+ lirc)
429+ AC_CHECK_LIB(lirc_client, lirc_init,
430+ [AC_CHECK_HEADER(lirc/lirc_client.h,
431+ [LIRC_LIBS="-llirc_client"
432+ HAVE_LIRC=yes],
433+ [
434+ LIRC_LIBS=""
435+ HAVE_LIRC=no])])
436+ AC_SUBST(LIRC_LIBS)
437+ if test "${HAVE_LIRC}" != "yes" ; then
438+ plugin_error_or_ignore "you need lirc_client installed for the lirc plugin"
439+ add_plugin="0"
440+ fi
441+ ;;
442+ bemused)
443+ PKG_CHECK_MODULES(BEMUSED, bluez, [HAVE_BLUEZ=yes], [HAVE_BLUEZ=no])
444+ if test "${HAVE_BLUEZ}" != "yes" ; then
445+ plugin_error_or_ignore "you need the bluez libraries installed for the Bemused plugin"
446+ add_plugin="0"
447+ fi
448+ ;;
449+ publish)
450+ # FIXME
451+ PKG_CHECK_MODULES(LIBEPC, libepc-ui-1.0 >= 0.3.0, [HAVE_LIBEPC=yes], [HAVE_LIBEPC=no])
452+ if test "${HAVE_LIBEPC}" != "yes" ; then
453+ plugin_error_or_ignore "you need the easy-publish-and-consume library installed for the publish plugin"
454+ add_plugin="0"
455+ fi
456+ ;;
457+ tracker)
458+ PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.10 >= 0.9.34, [HAVE_TRACKER=yes], [HAVE_TRACKER=no])
459+ if test "${HAVE_TRACKER}" != "yes" ; then
460+ plugin_error_or_ignore "you need the tracker development headers installed for the tracker plugin"
461+ add_plugin="0"
462+ fi
463+ ;;
464+ sample-vala)
465+ if test "${with_vala}" != "yes" ; then
466+ plugin_error_or_ignore "you need vala installed to use the sample-vala plugin"
467+ add_plugin="0"
468+ fi
469+ ;;
470+ thumbnail)
471+ PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.15.0,
472+ [HAVE_GLIB_2_15=yes], [HAVE_GLIB_2_15=no])
473+ if test "${HAVE_GLIB_2_15}" != "yes" ; then
474+ plugin_error_or_ignore "you need glib >= 2.15.0 to use the thumbnail plugin"
475+ add_plugin="0"
476+ fi
477+ ;;
478+ brasero-disc-recorder)
479+ dnl this is only needed to use brasero icons
480+ PKG_CHECK_MODULES(DISC_RECORDER, libxml-2.0 >= 2.6.0 gtk+-x11-3.0,
481+ [BUILD_RECORDER=yes], [BUILD_RECORDER=no])
482+ if test "${BUILD_RECORDER}" != "yes" ; then
483+ plugin_error_or_ignore "you need libxml-2.0 >= 2.6.0 and gtk+-x11-3.0 to use the brasero-disc-recorder plugin"
484+ add_plugin="0"
485+ fi
486+ ;;
487+ save-file)
488+ dnl the nautilus check should be a run-time check
489+ dnl but it might not always be running
490+ PKG_CHECK_MODULES(SAVE_FILE_CHECK, gio-2.0 >= 2.26 libnautilus-extension >= 2.91.3,
491+ [BUILD_SAVE_FILE=yes], [BUILD_SAVE_FILE=no])
492+ if test "${BUILD_SAVE_FILE}" != "yes" ; then
493+ plugin_error_or_ignore "you need gio-2.0 >=2.26 to use the save-file plugin"
494+ add_plugin="0"
495+ else
496+ PKG_CHECK_MODULES(SAVE_FILE, gio-2.0 >= 2.26)
497+ fi
498+ ;;
499+ youtube)
500+ PKG_CHECK_MODULES(LIBGDATA, libgdata >= 0.4.0 gdk-pixbuf-2.0 >= 2.23.0,
501+ [HAVE_LIBGDATA=yes], [HAVE_LIBGDATA=no])
502+ if test "${HAVE_LIBGDATA}" != "yes" ; then
503+ plugin_error_or_ignore "you need libgdata >= 0.4.0 installed for the YouTube plugin"
504+ add_plugin="0"
505+ fi
506+
507+ # For timeout support. Remove this once we depend on libgdata >= 0.7.0
508+ PKG_CHECK_MODULES(LIBGDATA_0_7, libgdata >= 0.7.0,
509+ [HAVE_LIBGDATA_0_7=yes], [HAVE_LIBGDATA_0_7=no])
510+ if test "${HAVE_LIBGDATA_0_7}" = "yes" ; then
511+ AC_DEFINE([HAVE_LIBGDATA_0_7],[1],[Define if libgdata >= 0.7.0 is available])
512+ fi
513+
514+ PKG_CHECK_MODULES(LIBSOUP, libsoup-2.4,
515+ [HAVE_LIBSOUP=yes], [HAVE_LIBSOUP=no])
516+ if test "${HAVE_LIBSOUP}" != "yes" ; then
517+ plugin_error_or_ignore "you need libsoup-2.4 installed for the YouTube plugin"
518+ add_plugin="0"
519+ fi
520+
521+ dnl We need the souphttpsrc element for the YouTube plugin
522+ AC_MSG_CHECKING([GStreamer 0.10 souphttpsrc plugin])
523+ if $gst010_inspect souphttpsrc >/dev/null 2>/dev/null; then
524+ AC_MSG_RESULT([yes])
525+ else
526+ AC_MSG_RESULT([no])
527+ plugin_error_or_ignore "you need souphttpsrc from gst-plugins-good installed for the YouTube plugin"
528+ add_plugin="0"
529+ fi
530+ ;;
531+ chapters)
532+ PKG_CHECK_MODULES(CHAPTERS, libxml-2.0 >= 2.6.0 gtk+-3.0 glib-2.0 >= 2.15.0,
533+ [BUILD_CHAPTERS=yes], [BUILD_CHAPTERS=no])
534+ if test "${BUILD_CHAPTERS}" != "yes" ; then
535+ plugin_error_or_ignore "you need gtk+-3.0, glib-2.0 >= 2.15.0 and libxml-2.0 >= 2.6.0 to use the chapters plugin"
536+ add_plugin="0"
537+ fi
538+ ;;
539+ zeitgeist-dp)
540+ if test "${with_vala}" != "yes" ; then
541+ plugin_error_or_ignore "you need vala installed to use the zeitgeist-dp plugin"
542+ add_plugin="0"
543+ else
544+ PKG_CHECK_MODULES(LIBZEITGEIST, zeitgeist-1.0 >= 0.3.6,
545+ [HAS_LIBZEITGEIST=yes], [HAS_LIBZEITGEIST=no])
546+ if test "${HAS_LIBZEITGEIST}" != "yes" ; then
547+ plugin_error_or_ignore "you need zeitgeist-1.0 >= 0.3.6 to use the zeitgeist-dp plugin"
548+ add_plugin="0"
549+ fi
550+ fi
551+ ;;
552+ esac
553+
554+ # Add the specified plugin
555+ if test "${add_plugin}" = "1" ; then
556+ used_plugins2="${used_plugins2} ${plugin}"
557+ fi
558+done
559+
560+ALL_PLUGINS=$allowed_plugins
561+PLUGINS=$used_plugins2
562+
563+AC_MSG_CHECKING([which plugins to compile])
564+AC_MSG_RESULT([$PLUGINS])
565+
566+AC_SUBST([ALL_PLUGINS])
567+AC_SUBST([PLUGINS])
568+
569+# ***************
570+# Browser plugins
571+# ***************
572+
573+AC_MSG_CHECKING([whether to compile the browser plugins])
574+
575+AC_ARG_ENABLE([browser-plugins],
576+ [AS_HELP_STRING([--enable-browser-plugins],[compile the totem browser plugins])],
577+ [],[enable_browser_plugins=yes])
578+AC_MSG_RESULT([$enable_browser_plugins])
579+
580+if test "$enable_browser_plugins" = "yes" ; then
581+ AC_DEFINE([ENABLE_BROWSER_PLUGINS],[1],[Define to build the browser plugin])
582+
583+ BROWSER_PLUGIN_DIR="${BROWSER_PLUGIN_DIR:-"\${libdir}/mozilla/plugins"}"
584+ AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
585+
586+ PKG_CHECK_MODULES([BROWSER_PLUGIN],
587+ [glib-2.0
588+ gio-2.0
589+ x11
590+ totem-plparser-mini >= $TOTEM_PLPARSER_REQS],
591+ [],[enable_browser_plugins=no])
592+
593+ AC_SUBST([BROWSER_PLUGIN_CFLAGS])
594+ AC_SUBST([BROWSER_PLUGIN_LIBS])
595+
596+ # Earlier versions misdetect playlists
597+ PKG_CHECK_EXISTS([shared-mime-info >= 0.22],
598+ [],
599+ [AC_MSG_ERROR([
600+ The Browser plugin requires shared-mime-info
601+ >= 0.22 to function.])])
602+
603+ PKG_CHECK_MODULES([DBUS], [dbus-glib-1 >= $DBUS_REQS],,
604+ [enable_browser_plugins=no])
605+ DBUSLIBDIR="`$PKG_CONFIG dbus-glib-1 --variable=libdir`"
606+ DBUSBINDIR="`echo $DBUSLIBDIR | sed -e s/lib/bin/`"
607+ AC_PATH_PROG([DBUS_BIND], [dbus-binding-tool], [no], [$DBUSBINDIR:$PATH])
608+ if test "x$DBUS_BIND" = "xno"; then
609+ AC_MSG_WARN([dbus-binding-tool not found])
610+ enable_browser_plugins=no
611+ fi
612+
613+ # check for -fno-rtti flag
614+
615+ AC_LANG_PUSH([C++])
616+ __SAVE_CXXFLAGS=$CXXFLAGS
617+ CXXFLAGS="-fno-rtti $CXXFLAGS"
618+
619+ AC_MSG_CHECKING([for -fno-rtti compiler flag])
620+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],[have_no_rtti_flag=yes],[have_no_rtti_flag=no])
621+ AC_MSG_RESULT([$have_no_rtti_flag])
622+
623+ CXXFLAGS=$__SAVE_CXXFLAGS
624+ AC_LANG_POP([C++])
625+
626+ if test "$have_no_rtti_flag" = "yes"; then
627+ AM_CXXFLAGS="-fno-rtti $AM_CXXFLAGS"
628+ fi
629+fi
630+
631+AM_CONDITIONAL([ENABLE_BROWSER_PLUGINS], [test "$enable_browser_plugins" = "yes"])
632+
633+# check which plugins to enable
634+
635+if test "$enable_browser_plugins" = "yes"; then
636+
637+AC_MSG_CHECKING([whether to enable the GMP browser plugin])
638+AC_ARG_ENABLE([gmp-plugin],
639+ AS_HELP_STRING([--enable-gmp-plugin],[Whether to enable the GMP browser plugin]),
640+ [],[enable_gmp_plugin=yes])
641+AC_MSG_RESULT([$enable_gmp_plugin])
642+
643+AC_MSG_CHECKING([whether to enable the NarrowSpace browser plugin])
644+AC_ARG_ENABLE([narrowspace-plugin],
645+ AS_HELP_STRING([--enable-narrowspace-plugin],[Whether to enable the NarrowSpace browser plugin]),
646+ [],[enable_narrowspace_plugin=yes])
647+AC_MSG_RESULT([$enable_narrowspace_plugin])
648+
649+AC_MSG_CHECKING([whether to enable the MullY browser plugin])
650+AC_ARG_ENABLE([mully-plugin],
651+ AS_HELP_STRING([--enable-mully-plugin],[Whether to enable the MullY browser plugin]),
652+ [],[enable_mully_plugin=yes])
653+AC_MSG_RESULT([$enable_mully_plugin])
654+
655+AC_MSG_CHECKING([whether to enable the Cone browser plugin])
656+AC_ARG_ENABLE([cone-plugin],
657+ AS_HELP_STRING([--enable-cone-plugin],[Whether to enable the Cone browser plugin]),
658+ [],[enable_cone_plugin=yes])
659+AC_MSG_RESULT([$enable_cone_plugin])
660+
661+fi
662+
663+AM_CONDITIONAL([ENABLE_GMP_PLUGIN],[test "$enable_gmp_plugin" = "yes"])
664+AM_CONDITIONAL([ENABLE_NARROWSPACE_PLUGIN],[test "$enable_narrowspace_plugin" = "yes"])
665+AM_CONDITIONAL([ENABLE_MULLY_PLUGIN],[test "$enable_mully_plugin" = "yes"])
666+AM_CONDITIONAL([ENABLE_CONE_PLUGIN],[test "$enable_cone_plugin" = "yes"])
667+
668+dnl ********
669+dnl Nautilus
670+dnl ********
671+
672+dnl Check for Nautilus property page build
673+AC_ARG_ENABLE(nautilus,
674+ AC_HELP_STRING([--enable-nautilus],[compile the nautilus plugin]),
675+ [case "${enableval}" in
676+ yes) ENABLE_NAUTILUS=yes ;;
677+ no) ENABLE_NAUTILUS=no ;;
678+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-nautilus) ;;
679+ esac],
680+ [ENABLE_NAUTILUS=yes]) dnl Default value
681+
682+if test x$ENABLE_NAUTILUS = "xyes" ; then
683+ PKG_CHECK_MODULES(NAUTILUS, gtk+-3.0 gthread-2.0 libnautilus-extension,
684+ [HAVE_NAUTILUS=yes], [HAVE_NAUTILUS=no])
685+fi
686+
687+AC_ARG_WITH(nautilusdir,
688+ AS_HELP_STRING([--with-nautilusdir=DIR],[Installation path for Nautilus extension @<:@auto@:>@]),
689+ [ac_with_nautilusdir=$withval],
690+ [ac_with_nautilusdir=""])
691+
692+NAUTILUS_LIBS="$NAUTILUS_LIBS $EXTRA_BACKEND_LIBS"
693+AC_SUBST(NAUTILUS_CFLAGS)
694+AC_SUBST(NAUTILUS_LIBS)
695+if test x$HAVE_NAUTILUS = "xyes"; then
696+ AC_DEFINE(HAVE_NAUTILUS, 1, [defined if you build the nautilus plugin])
697+ if test "${ac_with_nautilusdir}" = ""; then
698+ ac_with_nautilusdir=`pkg-config --variable=extensiondir libnautilus-extension`
699+ fi
700+ AC_SUBST(NAUTILUSDIR)
701+ AC_MSG_NOTICE([installing nautilus plugin in ${ac_with_nautilusdir}])
702+ AC_SUBST([NAUTILUSDIR],[${ac_with_nautilusdir}])
703+
704+fi
705+AM_CONDITIONAL(HAVE_NAUTILUS, test x$HAVE_NAUTILUS = "xyes")
706+
707+dnl ***************************
708+dnl D-Bus for gnome-screensaver
709+dnl ***************************
710+AC_ARG_WITH(dbus,
711+ AC_HELP_STRING([--with-dbus],
712+ [Enable D-BUS support]),,
713+ with_dbus=auto)
714+if test "x$with_dbus" != "xno"; then
715+ PKG_CHECK_MODULES(DBUS, dbus-glib-1 >= $DBUS_REQS, enable_dbus=yes, enable_dbus=no)
716+ if test "x$with_dbus" = xyes && test "x$enable_dbus" = xno; then
717+ AC_MSG_ERROR([D-BUS explicitly requested but no support found])
718+ fi
719+ if test "x$enable_dbus" = xyes; then
720+ AC_DEFINE(WITH_DBUS, 1, [Define if D-BUS is enabled])
721+ AC_DEFINE(ENABLE_DBUS, 1, [Define if D-BUS is enabled])
722+ fi
723+fi
724+AM_CONDITIONAL(WITH_DBUS, test "x$enable_dbus" = "xyes")
725+
726+GLIB_GSETTINGS
727+
728+GNOME_COMMON_INIT
729+GNOME_DEBUG_CHECK
730+GNOME_COMPILE_WARNINGS([maximum])
731+GNOME_CXX_WARNINGS
732+GNOME_MAINTAINER_MODE_DEFINES
733+GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
734+
735+# This macro expands DIR and assigns it to RET.
736+# If DIR is NONE, then it's replaced by DEFAULT.
737+# Based on AC_DEFINE_DIR
738+AC_DEFUN([TOTEM_FULLPATH], [
739+ test "x$prefix" = xNONE && prefix="$ac_default_prefix"
740+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
741+ ac_expand=[$]$1
742+ test "x$ac_expand" = xNONE && ac_expand="[$]$2"
743+ ac_expand=`eval echo [$]ac_expand`
744+ $3=`eval echo [$]ac_expand`
745+])
746+
747+dnl FULL_LIBEXECDIR is used for X-GNOME-Bugzilla-ExtraInfoScript expansion
748+dnl in data/totem.desktop.in.in.in
749+TOTEM_FULLPATH(libexecdir, NONE, FULL_LIBEXECDIR)
750+AC_SUBST(FULL_LIBEXECDIR)
751+
752+dnl run in source tree
753+AC_ARG_ENABLE(run-in-source-tree,
754+ AC_HELP_STRING([--disable-run-in-source-tree],[disable search for UI files and plugins in local directory ]),
755+ [case "${enableval}" in
756+ yes) ENABLE_RUN_IN_SOURCE_TREE=yes ;;
757+ no) ENABLE_RUN_IN_SOURCE_TREE=no ;;
758+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-run-in-source-tree) ;;
759+ esac],
760+[ENABLE_RUN_IN_SOURCE_TREE=yes]) dnl Default value
761+if test x$ENABLE_RUN_IN_SOURCE_TREE = xyes; then
762+ AC_DEFINE(TOTEM_RUN_IN_SOURCE_TREE, 1, [enable search for UI files and plugins in local directory])
763+fi
764+
765+if test "$GCC" = "yes" ; then
766+ CFLAGS="\
767+ -Wall \
768+ -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
769+ -Wnested-externs -Wpointer-arith \
770+ -Wcast-align -Wsign-compare \
771+ -fno-strict-aliasing \
772+ $CFLAGS"
773+fi
774+
775+AC_SUBST([AM_CPPFLAGS])
776+AC_SUBST([AM_CFLAGS])
777+AC_SUBST([AM_CXXFLAGS])
778+AC_SUBST([AM_LDFLAGS])
779+
780+AC_OUTPUT([
781+Makefile
782+totem.spec
783+lib/Makefile
784+src/Makefile
785+src/properties/Makefile
786+src/plugins/Makefile
787+src/plugins/bemused/Makefile
788+src/plugins/coherence_upnp/Makefile
789+src/plugins/dbus-service/Makefile
790+src/plugins/screensaver/Makefile
791+src/plugins/screenshot/Makefile
792+src/plugins/ontop/Makefile
793+src/plugins/im-status/Makefile
794+src/plugins/gromit/Makefile
795+src/plugins/iplayer/Makefile
796+src/plugins/lirc/Makefile
797+src/plugins/media-player-keys/Makefile
798+src/plugins/opensubtitles/Makefile
799+src/plugins/opensubtitles/org.gnome.totem.plugins.opensubtitles.gschema.xml.in
800+src/plugins/properties/Makefile
801+src/plugins/save-file/Makefile
802+src/plugins/sidebar-test/Makefile
803+src/plugins/skipto/Makefile
804+src/plugins/sample-python/Makefile
805+src/plugins/sample-vala/Makefile
806+src/plugins/thumbnail/Makefile
807+src/plugins/tracker/Makefile
808+src/plugins/youtube/Makefile
809+src/plugins/pythonconsole/Makefile
810+src/plugins/pythonconsole/org.gnome.totem.plugins.pythonconsole.gschema.xml.in
811+src/plugins/publish/Makefile
812+src/plugins/publish/org.gnome.totem.plugins.publish.gschema.xml.in
813+src/plugins/jamendo/Makefile
814+src/plugins/jamendo/org.gnome.totem.plugins.jamendo.gschema.xml.in
815+src/plugins/brasero-disc-recorder/Makefile
816+src/plugins/chapters/Makefile
817+src/plugins/zeitgeist-dp/Makefile
818+src/backend/Makefile
819+browser-plugin/Makefile
820+data/Makefile
821+data/org.gnome.totem.gschema.xml.in
822+data/totem.desktop.in.in
823+data/totem.pc
824+data/icons/Makefile
825+data/icons/16x16/Makefile
826+data/icons/22x22/Makefile
827+data/icons/24x24/Makefile
828+data/icons/32x32/Makefile
829+data/icons/48x48/Makefile
830+data/icons/256x256/Makefile
831+data/icons/scalable/Makefile
832+po/Makefile.in
833+help/Makefile
834+docs/Makefile
835+docs/reference/Makefile
836+docs/reference/version.xml
837+])
838+
839+AC_MSG_NOTICE([Totem was configured with the following options:])
840+AC_MSG_NOTICE([** Using the GStreamer-$GST_MAJORMINOR backend])
841+if test "x$MISSING_PLUGINS_LIBS" != "x"; then
842+ AC_MSG_NOTICE([** Easy codec installation support enabled])
843+else
844+ AC_MSG_NOTICE([ Easy codec installation support disabled])
845+fi
846+if test x$enable_python = xyes ; then
847+ AC_MSG_NOTICE([** Python plugin support enabled])
848+else
849+ AC_MSG_NOTICE([ Python plugin support disabled])
850+fi
851+if test x$with_vala = xyes ; then
852+ AC_MSG_NOTICE([** Vala plugin support enabled])
853+else
854+ AC_MSG_NOTICE([ Vala plugin support disabled])
855+fi
856+if test "x${PLUGINS}" != "x" ; then
857+ for allowed_plugin in ${ALL_PLUGINS}; do
858+ for plugin in ${PLUGINS}; do
859+ case ${allowed_plugin} in
860+ ${plugin})
861+ AC_MSG_NOTICE([** ${allowed_plugin} plugin enabled])
862+ continue 2
863+ ;;
864+ *);;
865+ esac
866+ done
867+ AC_MSG_NOTICE([ ${allowed_plugin} plugin disabled])
868+ done
869+else
870+ AC_MSG_NOTICE([ No Totem plugins enabled])
871+fi
872+if test x$enable_browser_plugins = xyes ; then
873+ AC_MSG_NOTICE([** Browser plugin enabled])
874+ if test x$enable_gmp_plugin = xyes ; then
875+ AC_MSG_NOTICE([** GMP (Windows Media) plugin enabled])
876+ else
877+ AC_MSG_NOTICE([ GMP (Windows Media) plugin disabled])
878+ fi
879+ if test x$enable_narrowspace_plugin = xyes ; then
880+ AC_MSG_NOTICE([** NarrowSpace (QuickTime) plugin enabled])
881+ else
882+ AC_MSG_NOTICE([ NarrowSpace (QuickTime) plugin disabled])
883+ fi
884+ if test x$enable_mully_plugin = xyes ; then
885+ AC_MSG_NOTICE([** MullY (DivX) plugin enabled])
886+ else
887+ AC_MSG_NOTICE([ MullY (DivX) plugin disabled])
888+ fi
889+ if test x$enable_cone_plugin = xyes ; then
890+ AC_MSG_NOTICE([** Cone (VLC) plugin enabled])
891+ else
892+ AC_MSG_NOTICE([ Cone (VLC) plugin disabled])
893+ fi
894+else
895+ AC_MSG_NOTICE([ Browser plugin disabled])
896+fi
897+if test x$ENABLE_NAUTILUS = xyes ; then
898+ AC_MSG_NOTICE([** Nautilus properties page enabled])
899+else
900+ AC_MSG_NOTICE([ Nautilus properties page disabled])
901+fi
902+if test x$enable_xtest = xyes ; then
903+ AC_MSG_NOTICE([** XTest (legacy screensaver) support enabled])
904+else
905+ AC_MSG_NOTICE([ XTest (legacy screensaver) support disabled])
906+fi
907+if test x$enable_dbus = xyes ; then
908+ AC_MSG_NOTICE([** D-Bus (gnome-screensaver) support enabled])
909+else
910+ AC_MSG_NOTICE([ D-Bus (gnome-screensaver) support disabled])
911+fi
912+if test x$have_xvidmode = xyes ; then
913+ AC_MSG_NOTICE([** XVidmode support enabled])
914+else
915+ AC_MSG_NOTICE([ XVidmode support disabled])
916+fi
917+if test x$have_xfree = xyes ; then
918+ AC_MSG_NOTICE([** XFree86 multimedia keys support enabled])
919+else
920+ AC_MSG_NOTICE([ XFree86 multimedia keys support disabled])
921+fi
922+if test "$with_smclient" != "no" ; then
923+ AC_MSG_NOTICE([** SM client support enabled])
924+else
925+ AC_MSG_NOTICE([ SM client support disabled])
926+fi
927+
928+AC_MSG_NOTICE([End options])
929+
930
931=== added directory '.pc/02_lpi.patch/data'
932=== added file '.pc/02_lpi.patch/data/totem.ui'
933--- .pc/02_lpi.patch/data/totem.ui 1970-01-01 00:00:00 +0000
934+++ .pc/02_lpi.patch/data/totem.ui 2011-10-26 10:18:23 +0000
935@@ -0,0 +1,2355 @@
936+<?xml version="1.0" ?>
937+<!--*- mode: xml -*--><!DOCTYPE glade-interface
938+ SYSTEM 'http://glade.gnome.org/glade-2.0.dtd'>
939+<interface>
940+<requires lib="gtk+" version="2.20"/>
941+
942+<object class="GtkUIManager" id="totem-ui-manager">
943+ <child>
944+ <object class="GtkActionGroup" id="main-action-group">
945+ <child>
946+ <object class="GtkAction" id="movie-menu">
947+ <property name="label" translatable="yes">_Movie</property>
948+ </object>
949+ </child>
950+ <child>
951+ <object class="GtkAction" id="open">
952+ <property name="label" translatable="yes">_Open...</property>
953+ <property name="stock-id">gtk-open</property>
954+ <property name="tooltip" translatable="yes">Open a file</property>
955+ <signal name="activate" handler="open_action_callback"/>
956+ </object>
957+ <accelerator key="O" modifiers="GDK_CONTROL_MASK"/>
958+ </child>
959+ <child>
960+ <object class="GtkAction" id="open-location">
961+ <property name="label" translatable="yes">Open _Location...</property>
962+ <property name="tooltip" translatable="yes">Open a non-local file</property>
963+ <signal name="activate" handler="open_location_action_callback"/>
964+ </object>
965+ <accelerator key="L" modifiers="GDK_CONTROL_MASK"/>
966+ </child>
967+ <child>
968+ <object class="GtkAction" id="eject">
969+ <property name="label" translatable="yes">_Eject</property>
970+ <property name="icon-name">media-eject-symbolic</property>
971+ <property name="tooltip" translatable="yes">Eject the current disc</property>
972+ <signal name="activate" handler="eject_action_callback"/>
973+ </object>
974+ <accelerator key="E" modifiers="GDK_CONTROL_MASK"/>
975+ </child>
976+ <child>
977+ <object class="GtkAction" id="properties">
978+ <property name="label" translatable="yes">_Properties</property>
979+ <property name="stock-id">gtk-properties</property>
980+ <property name="tooltip" translatable="yes">View the properties of the current stream</property>
981+ <signal name="activate" handler="properties_action_callback"/>
982+ </object>
983+ <accelerator key="P" modifiers="GDK_CONTROL_MASK"/>
984+ </child>
985+ <child>
986+ <object class="GtkAction" id="play">
987+ <property name="label" translatable="yes">Play / P_ause</property>
988+ <property name="icon-name">media-playback-start-symbolic</property>
989+ <property name="tooltip" translatable="yes">Play or pause the movie</property>
990+ <signal name="activate" handler="play_action_callback"/>
991+ </object>
992+ <accelerator key="space" modifiers="GDK_CONTROL_MASK"/>
993+ </child>
994+ <child>
995+ <object class="GtkAction" id="quit">
996+ <property name="label" translatable="yes">_Quit</property>
997+ <property name="stock-id">gtk-quit</property>
998+ <property name="tooltip" translatable="yes">Quit the program</property>
999+ <signal name="activate" handler="quit_action_callback"/>
1000+ </object>
1001+ <accelerator key="Q" modifiers="GDK_CONTROL_MASK"/>
1002+ </child>
1003+
1004+ <child>
1005+ <object class="GtkAction" id="edit-menu">
1006+ <property name="label" translatable="yes">_Edit</property>
1007+ </object>
1008+ </child>
1009+ <child>
1010+ <object class="GtkAction" id="clear-playlist">
1011+ <property name="label" translatable="yes">_Clear Playlist</property>
1012+ <property name="icon-name">gtk-clear</property>
1013+ <property name="tooltip" translatable="yes">Clear the playlist</property>
1014+ <signal name="activate" handler="clear_playlist_action_callback"/>
1015+ </object>
1016+ </child>
1017+ <child>
1018+ <object class="GtkAction" id="preferences">
1019+ <property name="label" translatable="yes">Prefere_nces</property>
1020+ <property name="stock-id">gtk-preferences</property>
1021+ <property name="tooltip" translatable="yes">Configure the application</property>
1022+ <signal name="activate" handler="preferences_action_callback"/>
1023+ </object>
1024+ </child>
1025+ <child>
1026+ <object class="GtkAction" id="plugins">
1027+ <property name="label" translatable="yes">Plugins...</property>
1028+ <property name="tooltip" translatable="yes">Configure plugins to extend the application</property>
1029+ <signal name="activate" handler="plugins_action_callback"/>
1030+ </object>
1031+ </child>
1032+
1033+ <child>
1034+ <object class="GtkAction" id="view-menu">
1035+ <property name="label" translatable="yes">_View</property>
1036+ </object>
1037+ </child>
1038+ <child>
1039+ <object class="GtkAction" id="fullscreen">
1040+ <property name="label" translatable="yes">_Fullscreen</property>
1041+ <property name="icon-name">view-fullscreen-symbolic</property>
1042+ <property name="tooltip" translatable="yes">Switch to fullscreen</property>
1043+ <signal name="activate" handler="fullscreen_action_callback"/>
1044+ </object>
1045+ <accelerator key="F11"/>
1046+ </child>
1047+ <child>
1048+ <object class="GtkAction" id="zoom-window-menu">
1049+ <property name="label" translatable="yes">Fit Window to Movie</property>
1050+ </object>
1051+ </child>
1052+ <child>
1053+ <object class="GtkAction" id="zoom-1-2">
1054+ <property name="label" translatable="yes">_Resize 1:2</property>
1055+ <property name="tooltip" translatable="yes">Resize to half the original video size</property>
1056+ <signal name="activate" handler="zoom_1_2_action_callback"/>
1057+ </object>
1058+ </child>
1059+ <child>
1060+ <object class="GtkAction" id="zoom-1-1">
1061+ <property name="label" translatable="yes">Resize _1:1</property>
1062+ <property name="tooltip" translatable="yes">Resize to the original video size</property>
1063+ <signal name="activate" handler="zoom_1_1_action_callback"/>
1064+ </object>
1065+ </child>
1066+ <child>
1067+ <object class="GtkAction" id="zoom-2-1">
1068+ <property name="label" translatable="yes">Resize _2:1</property>
1069+ <property name="tooltip" translatable="yes">Resize to double the original video size</property>
1070+ <signal name="activate" handler="zoom_2_1_action_callback"/>
1071+ </object>
1072+ </child>
1073+ <child>
1074+ <object class="GtkAction" id="aspect-ratio-menu">
1075+ <property name="label" translatable="yes">_Aspect Ratio</property>
1076+ </object>
1077+ </child>
1078+ <child>
1079+ <object class="GtkAction" id="next-angle">
1080+ <property name="label" translatable="yes">Switch An_gles</property>
1081+ <property name="tooltip" translatable="yes">Switch camera angles</property>
1082+ <signal name="activate" handler="next_angle_action_callback"/>
1083+ </object>
1084+ <accelerator key="G" modifiers="GDK_CONTROL_MASK"/>
1085+ </child>
1086+
1087+ <child>
1088+ <object class="GtkAction" id="go-menu">
1089+ <property name="label" translatable="yes">_Go</property>
1090+ </object>
1091+ </child>
1092+ <child>
1093+ <object class="GtkAction" id="dvd-root-menu">
1094+ <property name="label" translatable="yes">_DVD Menu</property>
1095+ <property name="stock-id">gtk-index</property>
1096+ <property name="tooltip" translatable="yes">Go to the DVD menu</property>
1097+ <signal name="activate" handler="dvd_root_menu_action_callback"/>
1098+ </object>
1099+ <accelerator key="M" modifiers="GDK_CONTROL_MASK"/>
1100+ </child>
1101+ <child>
1102+ <object class="GtkAction" id="dvd-title-menu">
1103+ <property name="label" translatable="yes">_Title Menu</property>
1104+ <property name="tooltip" translatable="yes">Go to the title menu</property>
1105+ <signal name="activate" handler="dvd_title_menu_action_callback"/>
1106+ </object>
1107+ </child>
1108+ <child>
1109+ <object class="GtkAction" id="dvd-audio-menu">
1110+ <property name="label" translatable="yes">A_udio Menu</property>
1111+ <property name="tooltip" translatable="yes">Go to the audio menu</property>
1112+ <signal name="activate" handler="dvd_audio_menu_action_callback"/>
1113+ </object>
1114+ </child>
1115+ <child>
1116+ <object class="GtkAction" id="dvd-angle-menu">
1117+ <property name="label" translatable="yes">_Angle Menu</property>
1118+ <property name="tooltip" translatable="yes">Go to the angle menu</property>
1119+ <signal name="activate" handler="dvd_angle_menu_action_callback"/>
1120+ </object>
1121+ </child>
1122+ <child>
1123+ <object class="GtkAction" id="dvd-chapter-menu">
1124+ <property name="label" translatable="yes">_Chapter Menu</property>
1125+ <property name="stock-id">gtk-index</property>
1126+ <property name="tooltip" translatable="yes">Go to the chapter menu</property>
1127+ <signal name="activate" handler="dvd_chapter_menu_action_callback"/>
1128+ </object>
1129+ <accelerator key="C" modifiers="GDK_CONTROL_MASK"/>
1130+ </child>
1131+ <child>
1132+ <object class="GtkAction" id="next-chapter">
1133+ <property name="label" translatable="yes">_Next Chapter/Movie</property>
1134+ <property name="icon-name">media-skip-forward-symbolic</property>
1135+ <property name="tooltip" translatable="yes">Next chapter or movie</property>
1136+ <signal name="activate" handler="next_chapter_action_callback"/>
1137+ </object>
1138+ <accelerator key="Right" modifiers="GDK_MOD1_MASK"/>
1139+ </child>
1140+ <child>
1141+ <object class="GtkAction" id="previous-chapter">
1142+ <property name="label" translatable="yes">_Previous Chapter/Movie</property>
1143+ <property name="icon-name">media-skip-backward-symbolic</property>
1144+ <property name="tooltip" translatable="yes">Previous chapter or movie</property>
1145+ <signal name="activate" handler="previous_chapter_action_callback"/>
1146+ </object>
1147+ <accelerator key="Left" modifiers="GDK_MOD1_MASK"/>
1148+ </child>
1149+
1150+ <child>
1151+ <object class="GtkAction" id="sound-menu">
1152+ <property name="label" translatable="yes">_Sound</property>
1153+ </object>
1154+ </child>
1155+ <child>
1156+ <object class="GtkAction" id="volume-up">
1157+ <property name="label" translatable="yes">Volume _Up</property>
1158+ <property name="icon-name">audio-volume-high-symbolic</property>
1159+ <property name="tooltip" translatable="yes">Increase volume</property>
1160+ <signal name="activate" handler="volume_up_action_callback"/>
1161+ </object>
1162+ <accelerator key="Up"/>
1163+ </child>
1164+ <child>
1165+ <object class="GtkAction" id="volume-down">
1166+ <property name="label" translatable="yes">Volume _Down</property>
1167+ <property name="icon-name">audio-volume-low-symbolic</property>
1168+ <property name="tooltip" translatable="yes">Decrease volume</property>
1169+ <signal name="activate" handler="volume_down_action_callback"/>
1170+ </object>
1171+ <accelerator key="Down"/>
1172+ </child>
1173+
1174+ <child>
1175+ <object class="GtkAction" id="help-menu">
1176+ <property name="label" translatable="yes">_Help</property>
1177+ </object>
1178+ </child>
1179+ <child>
1180+ <object class="GtkAction" id="contents">
1181+ <property name="label" translatable="yes">_Contents</property>
1182+ <property name="stock-id">gtk-help</property>
1183+ <property name="tooltip" translatable="yes">Help contents</property>
1184+ <signal name="activate" handler="contents_action_callback"/>
1185+ </object>
1186+ <accelerator key="F1"/>
1187+ </child>
1188+ <child>
1189+ <object class="GtkAction" id="about">
1190+ <property name="label" translatable="yes">_About</property>
1191+ <property name="stock-id">gtk-about</property>
1192+ <property name="tooltip" translatable="yes">About this application</property>
1193+ <signal name="activate" handler="about_action_callback"/>
1194+ </object>
1195+ </child>
1196+
1197+ <child>
1198+ <object class="GtkToggleAction" id="repeat-mode">
1199+ <property name="label" translatable="yes">_Repeat Mode</property>
1200+ <property name="tooltip" translatable="yes">Set the repeat mode</property>
1201+ <property name="active">False</property>
1202+ <signal name="activate" handler="repeat_mode_action_callback"/>
1203+ </object>
1204+ </child>
1205+ <child>
1206+ <object class="GtkToggleAction" id="shuffle-mode">
1207+ <property name="label" translatable="yes">Shuff_le Mode</property>
1208+ <property name="tooltip" translatable="yes">Set the shuffle mode</property>
1209+ <property name="active">False</property>
1210+ <signal name="activate" handler="shuffle_mode_action_callback"/>
1211+ </object>
1212+ </child>
1213+ <child>
1214+ <object class="GtkToggleAction" id="show-controls">
1215+ <property name="label" translatable="yes">Show _Controls</property>
1216+ <property name="tooltip" translatable="yes">Show controls</property>
1217+ <property name="active">TRUE</property>
1218+ <signal name="activate" handler="show_controls_action_callback"/>
1219+ </object>
1220+ <accelerator key="H" modifiers="GDK_CONTROL_MASK"/>
1221+ </child>
1222+ <child>
1223+ <object class="GtkToggleAction" id="sidebar">
1224+ <property name="label" translatable="yes">S_idebar</property>
1225+ <property name="tooltip" translatable="yes">Show or hide the sidebar</property>
1226+ <property name="active">TRUE</property>
1227+ <property name="icon-name">view-sidebar-symbolic</property>
1228+ <signal name="activate" handler="show_sidebar_action_callback"/>
1229+ </object>
1230+ <accelerator key="F9"/>
1231+ </child>
1232+
1233+ <child>
1234+ <object class="GtkRadioAction" id="aspect-ratio-auto">
1235+ <property name="label" translatable="yes" comments="Translators: an entry in the 'Aspect Ratio' menu, used to choose the displayed aspect ratio of a video" context="Aspect ratio">Auto</property>
1236+ <property name="tooltip" translatable="yes">Sets automatic aspect ratio</property>
1237+ <!-- BVW_RATIO_AUTO -->
1238+ <property name="value">0</property>
1239+ <property name="current-value">0</property>
1240+ <signal name="changed" handler="aspect_ratio_changed_callback"/>
1241+ </object>
1242+ </child>
1243+ <child>
1244+ <object class="GtkRadioAction" id="aspect-ratio-square">
1245+ <property name="label" translatable="yes">Square</property>
1246+ <property name="tooltip" translatable="yes">Sets square aspect ratio</property>
1247+ <!-- BVW_RATIO_SQUARE -->
1248+ <property name="group">aspect-ratio-auto</property>
1249+ <property name="value">1</property>
1250+ </object>
1251+ </child>
1252+ <child>
1253+ <object class="GtkRadioAction" id="aspect-ratio-fbt">
1254+ <property name="label" translatable="yes">4:3 (TV)</property>
1255+ <property name="tooltip" translatable="yes">Sets 4:3 (TV) aspect ratio</property>
1256+ <!-- BVW_RATIO_FOURBYTHREE -->
1257+ <property name="group">aspect-ratio-auto</property>
1258+ <property name="value">2</property>
1259+ </object>
1260+ </child>
1261+ <child>
1262+ <object class="GtkRadioAction" id="aspect-ratio-anamorphic">
1263+ <property name="label" translatable="yes">16:9 (Widescreen)</property>
1264+ <property name="tooltip" translatable="yes">Sets 16:9 (widescreen) aspect ratio</property>
1265+ <!-- BVW_RATIO_ANAMORPHIC -->
1266+ <property name="group">aspect-ratio-auto</property>
1267+ <property name="value">3</property>
1268+ </object>
1269+ </child>
1270+ <child>
1271+ <object class="GtkRadioAction" id="aspect-ratio-dvb">
1272+ <property name="label" translatable="yes">2.11:1 (DVB)</property>
1273+ <property name="tooltip" translatable="yes">Sets 2.11:1 (DVB) aspect ratio</property>
1274+ <!-- BVW_RATIO_DVB -->
1275+ <property name="group">aspect-ratio-auto</property>
1276+ <property name="value">4</property>
1277+ </object>
1278+ </child>
1279+
1280+ <child>
1281+ <object class="GtkAction" id="subtitles-menu">
1282+ <property name="label" translatable="yes">S_ubtitles</property>
1283+ <property name="hide-if-empty">False</property>
1284+ </object>
1285+ </child>
1286+ <child>
1287+ <object class="GtkAction" id="select-subtitle">
1288+ <property name="label" translatable="yes">_Select Text Subtitles...</property>
1289+ <property name="tooltip" translatable="yes">Select a file to use for text subtitles</property>
1290+ <signal name="activate" handler="select_subtitle_action_callback"/>
1291+ </object>
1292+ </child>
1293+
1294+ <child>
1295+ <object class="GtkAction" id="languages-menu">
1296+ <property name="label" translatable="yes">_Languages</property>
1297+ <property name="hide-if-empty">False</property>
1298+ </object>
1299+ </child>
1300+ </object>
1301+ </child>
1302+ <child>
1303+ <object class="GtkActionGroup" id="zoom-action-group">
1304+ <child>
1305+ <object class="GtkAction" id="zoom-in">
1306+ <property name="label" translatable="yes">Zoom In</property>
1307+ <property name="stock-id">gtk-zoom-in</property>
1308+ <property name="tooltip" translatable="yes">Zoom in</property>
1309+ <signal name="activate" handler="zoom_in_action_callback"/>
1310+ </object>
1311+ <accelerator key="R" modifiers="GDK_CONTROL_MASK"/>
1312+ </child>
1313+ <child>
1314+ <object class="GtkAction" id="zoom-reset">
1315+ <property name="label" translatable="yes">Zoom Reset</property>
1316+ <property name="stock-id">gtk-zoom-100</property>
1317+ <property name="tooltip" translatable="yes">Zoom reset</property>
1318+ <signal name="activate" handler="zoom_reset_action_callback"/>
1319+ </object>
1320+ <accelerator key="0" modifiers="GDK_CONTROL_MASK"/>
1321+ </child>
1322+ <child>
1323+ <object class="GtkAction" id="zoom-out">
1324+ <property name="label" translatable="yes">Zoom Out</property>
1325+ <property name="stock-id">gtk-zoom-out</property>
1326+ <property name="tooltip" translatable="yes">Zoom out</property>
1327+ <signal name="activate" handler="zoom_out_action_callback"/>
1328+ </object>
1329+ <accelerator key="T" modifiers="GDK_CONTROL_MASK"/>
1330+ </child>
1331+ </object>
1332+ </child>
1333+ <child>
1334+ <object class="GtkActionGroup" id="skip-action-group">
1335+ <child>
1336+ <object class="GtkAction" id="skip-forward">
1337+ <property name="label" translatable="yes">Skip _Forward</property>
1338+ <property name="tooltip" translatable="yes">Skip forward</property>
1339+ <property name="icon-name">media-seek-forward-symbolic</property>
1340+ <signal name="activate" handler="skip_forward_action_callback"/>
1341+ </object>
1342+ <accelerator key="Right"/>
1343+ </child>
1344+ <child>
1345+ <object class="GtkAction" id="skip-backwards">
1346+ <property name="label" translatable="yes">Skip _Backwards</property>
1347+ <property name="tooltip" translatable="yes">Skip backwards</property>
1348+ <property name="icon-name">media-seek-backward-symbolic</property>
1349+ <signal name="activate" handler="skip_backwards_action_callback"/>
1350+ </object>
1351+ <accelerator key="Left"/>
1352+ </child>
1353+ </object>
1354+ </child>
1355+ <ui>
1356+ <menubar name="tmw-menubar">
1357+ <menu name="movie" action="movie-menu">
1358+ <menuitem name="open" action="open"/>
1359+ <menuitem name="open-location" action="open-location"/>
1360+ <placeholder name="save-placeholder"/>
1361+ <placeholder name="devices-placeholder"/>
1362+ <separator name="recent-separator"/>
1363+ <placeholder name="recent-placeholder"/>
1364+ <separator/>
1365+ <placeholder name="burn-placeholder"/>
1366+ <menuitem name="properties" action="properties"/>
1367+ <separator/>
1368+ <menuitem name="eject" action="eject"/>
1369+ <separator/>
1370+ <menuitem name="play" action="play"/>
1371+ <separator/>
1372+ <menuitem name="quit" action="quit"/>
1373+ </menu>
1374+ <menu name="edit" action="edit-menu">
1375+ <menuitem name="repeat-mode" action="repeat-mode"/>
1376+ <menuitem name="shuffle-mode" action="shuffle-mode"/>
1377+ <separator/>
1378+ <menuitem name="clear-playlist" action="clear-playlist"/>
1379+ <separator/>
1380+ <menuitem name="plugins" action="plugins"/>
1381+ <menuitem name="preferences" action="preferences"/>
1382+ </menu>
1383+ <menu name="view" action="view-menu">
1384+ <menuitem name="fullscreen" action="fullscreen"/>
1385+ <menu name="zoom-window" action="zoom-window-menu">
1386+ <menuitem name="zoom-1-2" action="zoom-1-2"/>
1387+ <menuitem name="zoom-1-1" action="zoom-1-1"/>
1388+ <menuitem name="zoom-2-1" action="zoom-2-1"/>
1389+ </menu>
1390+ <menuitem name="zoom-in" action="zoom-in"/>
1391+ <menuitem name="zoom-reset" action="zoom-reset"/>
1392+ <menuitem name="zoom-out" action="zoom-out"/>
1393+ <separator/>
1394+ <menu name="aspect-ratio" action="aspect-ratio-menu">
1395+ <menuitem name="aspect-ratio-auto" action="aspect-ratio-auto"/>
1396+ <menuitem name="aspect-ratio-square" action="aspect-ratio-square"/>
1397+ <menuitem name="aspect-ratio-fbt" action="aspect-ratio-fbt"/>
1398+ <menuitem name="aspect-ratio-anamorphic" action="aspect-ratio-anamorphic"/>
1399+ <menuitem name="aspect-ratio-dvb" action="aspect-ratio-dvb"/>
1400+ </menu>
1401+ <menuitem name="next-angle" action="next-angle"/>
1402+ <menuitem name="show-controls" action="show-controls"/>
1403+ <separator/>
1404+ <menu name="subtitles" action="subtitles-menu">
1405+ <menuitem name="select-subtitle" action="select-subtitle"/>
1406+ <placeholder name="subtitle-download-placeholder"/>
1407+ <separator/>
1408+ <placeholder name="placeholder"/>
1409+ </menu>
1410+ <separator/>
1411+ <menuitem name="sidebar" action="sidebar"/>
1412+ </menu>
1413+ <menu name="go" action="go-menu">
1414+ <menuitem name="dvd-root-menu" action="dvd-root-menu"/>
1415+ <menuitem name="dvd-title-menu" action="dvd-title-menu"/>
1416+ <menuitem name="dvd-audio-menu" action="dvd-audio-menu"/>
1417+ <menuitem name="dvd-angle-menu" action="dvd-angle-menu"/>
1418+ <menuitem name="dvd-chapter-menu" action="dvd-chapter-menu"/>
1419+ <separator/>
1420+ <menuitem name="next-chapter" action="next-chapter"/>
1421+ <menuitem name="previous-chapter" action="previous-chapter"/>
1422+ <separator/>
1423+ <menuitem name="skip-forward" action="skip-forward"/>
1424+ <menuitem name="skip-backwards" action="skip-backwards"/>
1425+ </menu>
1426+ <menu name="sound" action="sound-menu">
1427+ <menu name="languages" action="languages-menu">
1428+ <placeholder name="placeholder"/>
1429+ </menu>
1430+ <menuitem name="volume-up" action="volume-up"/>
1431+ <menuitem name="volume-down" action="volume-down"/>
1432+ </menu>
1433+ <menu name="help" action="help-menu">
1434+ <menuitem name="contents" action="contents"/>
1435+ <menuitem name="about" action="about"/>
1436+ </menu>
1437+ </menubar>
1438+ <popup name="totem-main-popup">
1439+ <menuitem name="play" action="play"/>
1440+ <menuitem name="next-chapter" action="next-chapter"/>
1441+ <menuitem name="previous-chapter" action="previous-chapter"/>
1442+ <menuitem name="skip-forward" action="skip-forward"/>
1443+ <menuitem name="skip-backwards" action="skip-backwards"/>
1444+ <menuitem name="show-controls" action="show-controls"/>
1445+ <menuitem name="fullscreen" action="fullscreen"/>
1446+ <menuitem name="select-subtitle" action="select-subtitle"/>
1447+ <separator/>
1448+ <placeholder name="save-placeholder"/>
1449+ <separator/>
1450+ <menu name="popup-languages" action="languages-menu">
1451+ <placeholder name="placeholder"/>
1452+ </menu>
1453+ <menu name="popup-subtitles" action="subtitles-menu">
1454+ <placeholder name="placeholder"/>
1455+ </menu>
1456+ </popup>
1457+ </ui>
1458+</object>
1459+
1460+<object class="GtkListStore" id="tpw_speed_liststore">
1461+ <columns>
1462+ <column type="gchararray"/>
1463+ </columns>
1464+ <data>
1465+ <row>
1466+ <col id="0" translatable="yes">14.4 Kbps Modem</col>
1467+ </row>
1468+ <row>
1469+ <col id="0" translatable="yes">19.2 Kbps Modem</col>
1470+ </row>
1471+ <row>
1472+ <col id="0" translatable="yes">28.8 Kbps Modem</col>
1473+ </row>
1474+ <row>
1475+ <col id="0" translatable="yes">33.6 Kbps Modem</col>
1476+ </row>
1477+ <row>
1478+ <col id="0" translatable="yes">34.4 Kbps Modem</col>
1479+ </row>
1480+ <row>
1481+ <col id="0" translatable="yes">56 Kbps Modem/ISDN</col>
1482+ </row>
1483+ <row>
1484+ <col id="0" translatable="yes">112 Kbps Dual ISDN/DSL</col>
1485+ </row>
1486+ <row>
1487+ <col id="0" translatable="yes">256 Kbps DSL/Cable</col>
1488+ </row>
1489+ <row>
1490+ <col id="0" translatable="yes">384 Kbps DSL/Cable</col>
1491+ </row>
1492+ <row>
1493+ <col id="0" translatable="yes">512 Kbps DSL/Cable</col>
1494+ </row>
1495+ <row>
1496+ <col id="0" translatable="yes">1.5 Mbps T1/Intranet/LAN</col>
1497+ </row>
1498+ <row>
1499+ <col id="0" translatable="yes">Intranet/LAN</col>
1500+ </row>
1501+ </data>
1502+</object>
1503+
1504+<object class="GtkListStore" id="tpw_visuals_size_liststore">
1505+ <columns>
1506+ <column type="gchararray"/>
1507+ </columns>
1508+ <data>
1509+ <row>
1510+ <col id="0" translatable="yes" comments="Audio visualization dimensions">Normal</col>
1511+ </row>
1512+ <row>
1513+ <col id="0" translatable="yes" comments="Audio visualization dimensions">Large</col>
1514+ </row>
1515+ <row>
1516+ <col id="0" translatable="yes" comments="Audio visualization dimensions">Extra Large</col>
1517+ </row>
1518+ </data>
1519+</object>
1520+
1521+<object class="GtkListStore" id="tpw_visuals_type_liststore">
1522+ <columns>
1523+ <column type="gchararray"/>
1524+ </columns>
1525+ <data>
1526+ </data>
1527+</object>
1528+
1529+<object class="GtkListStore" id="tpw_sound_output_liststore">
1530+ <columns>
1531+ <column type="gchararray"/>
1532+ </columns>
1533+ <data>
1534+ <row>
1535+ <col id="0" translatable="yes">Stereo</col>
1536+ </row>
1537+ <row>
1538+ <col id="0" translatable="yes">4-channel</col>
1539+ </row>
1540+ <row>
1541+ <col id="0" translatable="yes">4.1-channel</col>
1542+ </row>
1543+ <row>
1544+ <col id="0" translatable="yes">5.0-channel</col>
1545+ </row>
1546+ <row>
1547+ <col id="0" translatable="yes">5.1-channel</col>
1548+ </row>
1549+ <row>
1550+ <col id="0" translatable="yes">AC3 Passthrough</col>
1551+ </row>
1552+ </data>
1553+</object>
1554+
1555+<object class="GtkAdjustment" id="tpw_bright_adjustment">
1556+ <property name="lower">0</property>
1557+ <property name="upper">65535</property>
1558+ <property name="step-increment">1000</property>
1559+ <property name="page-increment">2000</property>
1560+ <property name="page-size">250</property>
1561+ <property name="value">32767</property>
1562+</object>
1563+
1564+<object class="GtkAdjustment" id="tpw_contrast_adjustment">
1565+ <property name="lower">0</property>
1566+ <property name="upper">65535</property>
1567+ <property name="step-increment">1000</property>
1568+ <property name="page-increment">2000</property>
1569+ <property name="page-size">250</property>
1570+ <property name="value">32767</property>
1571+</object>
1572+
1573+<object class="GtkAdjustment" id="tpw_saturation_adjustment">
1574+ <property name="lower">0</property>
1575+ <property name="upper">65535</property>
1576+ <property name="step-increment">1000</property>
1577+ <property name="page-increment">2000</property>
1578+ <property name="page-size">250</property>
1579+ <property name="value">32767</property>
1580+</object>
1581+
1582+<object class="GtkAdjustment" id="tpw_hue_adjustment">
1583+ <property name="lower">0</property>
1584+ <property name="upper">65535</property>
1585+ <property name="step-increment">1000</property>
1586+ <property name="page-increment">2000</property>
1587+ <property name="page-size">250</property>
1588+ <property name="value">32767</property>
1589+</object>
1590+
1591+<object class="GtkAdjustment" id="tmw_seek_adjustment">
1592+ <property name="lower">0</property>
1593+ <property name="upper">0</property>
1594+ <property name="step-increment">1</property>
1595+ <property name="page-increment">10</property>
1596+ <property name="page-size">0</property>
1597+ <property name="value">0</property>
1598+ <signal name="value-changed" handler="seek_slider_changed_cb"/>
1599+</object>
1600+
1601+<object class="GtkDialog" id="totem_preferences_window">
1602+ <property name="border_width">5</property>
1603+ <property name="title" translatable="yes">Totem Preferences</property>
1604+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
1605+ <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
1606+ <property name="modal">False</property>
1607+ <property name="resizable">False</property>
1608+ <property name="destroy_with_parent">False</property>
1609+ <property name="decorated">True</property>
1610+ <property name="skip_taskbar_hint">False</property>
1611+ <property name="skip_pager_hint">False</property>
1612+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
1613+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
1614+ <property name="focus_on_map">True</property>
1615+ <property name="urgency_hint">False</property>
1616+
1617+ <child internal-child="vbox">
1618+ <object class="GtkVBox" id="tpw_dialog_vbox">
1619+ <property name="visible">True</property>
1620+ <property name="homogeneous">False</property>
1621+ <property name="spacing">2</property>
1622+ <property name="orientation">vertical</property>
1623+
1624+ <child internal-child="action_area">
1625+ <object class="GtkHButtonBox" id="tpw_dialog_action_area">
1626+ <property name="visible">True</property>
1627+ <property name="layout_style">GTK_BUTTONBOX_END</property>
1628+
1629+ <child>
1630+ <object class="GtkButton" id="tpw_close_button">
1631+ <property name="visible">True</property>
1632+ <property name="can_default">True</property>
1633+ <property name="can_focus">True</property>
1634+ <property name="label">gtk-close</property>
1635+ <property name="use_stock">True</property>
1636+ <property name="relief">GTK_RELIEF_NORMAL</property>
1637+ <property name="focus_on_click">True</property>
1638+
1639+ </object>
1640+ </child>
1641+ </object>
1642+ <packing>
1643+ <property name="padding">0</property>
1644+ <property name="expand">False</property>
1645+ <property name="fill">True</property>
1646+ <property name="pack_type">GTK_PACK_END</property>
1647+ </packing>
1648+ </child>
1649+
1650+ <child>
1651+ <object class="GtkNotebook" id="tpw_notebook">
1652+ <property name="border_width">5</property>
1653+ <property name="visible">True</property>
1654+ <property name="can_focus">True</property>
1655+ <property name="show_tabs">True</property>
1656+ <property name="show_border">True</property>
1657+ <property name="tab_pos">GTK_POS_TOP</property>
1658+ <property name="scrollable">False</property>
1659+ <property name="enable_popup">False</property>
1660+
1661+ <child>
1662+ <object class="GtkVBox" id="tpw_general_vbox">
1663+ <property name="border_width">12</property>
1664+ <property name="visible">True</property>
1665+ <property name="homogeneous">False</property>
1666+ <property name="spacing">18</property>
1667+ <property name="orientation">vertical</property>
1668+
1669+ <child>
1670+ <object class="GtkVBox" id="vbox2">
1671+ <property name="visible">True</property>
1672+ <property name="homogeneous">False</property>
1673+ <property name="spacing">6</property>
1674+ <property name="orientation">vertical</property>
1675+
1676+ <child>
1677+ <object class="GtkLabel" id="tpw_playback_label">
1678+ <property name="visible">True</property>
1679+ <property name="label" translatable="yes">Playback</property>
1680+ <property name="use_underline">False</property>
1681+ <property name="use_markup">True</property>
1682+ <property name="justify">GTK_JUSTIFY_LEFT</property>
1683+ <property name="wrap">False</property>
1684+ <property name="selectable">False</property>
1685+ <property name="xalign">0</property>
1686+ <property name="yalign">0.5</property>
1687+ <property name="xpad">0</property>
1688+ <property name="ypad">0</property>
1689+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1690+ <property name="width_chars">-1</property>
1691+ <property name="single_line_mode">False</property>
1692+ <property name="angle">0</property>
1693+ <attributes>
1694+ <attribute name="weight" value="bold"/>
1695+ </attributes>
1696+ </object>
1697+ <packing>
1698+ <property name="padding">0</property>
1699+ <property name="expand">False</property>
1700+ <property name="fill">False</property>
1701+ </packing>
1702+ </child>
1703+
1704+ <child>
1705+ <object class="GtkAlignment" id="alignment2">
1706+ <property name="visible">True</property>
1707+ <property name="xalign">0.5</property>
1708+ <property name="yalign">0.5</property>
1709+ <property name="xscale">1</property>
1710+ <property name="yscale">1</property>
1711+ <property name="top_padding">0</property>
1712+ <property name="bottom_padding">0</property>
1713+ <property name="left_padding">12</property>
1714+ <property name="right_padding">0</property>
1715+
1716+ <child>
1717+ <object class="GtkCheckButton" id="tpw_remember_position_checkbutton">
1718+ <property name="visible">True</property>
1719+ <property name="can_focus">True</property>
1720+ <property name="label" translatable="yes">Start playing files from last position</property>
1721+ <property name="use_underline">True</property>
1722+ <property name="relief">GTK_RELIEF_NORMAL</property>
1723+ <property name="focus_on_click">True</property>
1724+ <property name="active">False</property>
1725+ <property name="inconsistent">False</property>
1726+ <property name="draw_indicator">True</property>
1727+ </object>
1728+ </child>
1729+ </object>
1730+ <packing>
1731+ <property name="padding">0</property>
1732+ <property name="expand">False</property>
1733+ <property name="fill">True</property>
1734+ </packing>
1735+ </child>
1736+ </object>
1737+ <packing>
1738+ <property name="padding">0</property>
1739+ <property name="expand">False</property>
1740+ <property name="fill">True</property>
1741+ </packing>
1742+ </child><child>
1743+ <object class="GtkVBox" id="vbox3">
1744+ <property name="visible">True</property>
1745+ <property name="homogeneous">False</property>
1746+ <property name="spacing">6</property>
1747+ <property name="orientation">vertical</property>
1748+
1749+ <child>
1750+ <object class="GtkLabel" id="tpw_network_label">
1751+ <property name="visible">True</property>
1752+ <property name="label" translatable="yes">Networking</property>
1753+ <property name="use_underline">False</property>
1754+ <property name="use_markup">True</property>
1755+ <property name="justify">GTK_JUSTIFY_LEFT</property>
1756+ <property name="wrap">False</property>
1757+ <property name="selectable">False</property>
1758+ <property name="xalign">0</property>
1759+ <property name="yalign">0.5</property>
1760+ <property name="xpad">0</property>
1761+ <property name="ypad">0</property>
1762+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1763+ <property name="width_chars">-1</property>
1764+ <property name="single_line_mode">False</property>
1765+ <property name="angle">0</property>
1766+ <attributes>
1767+ <attribute name="weight" value="bold"/>
1768+ </attributes>
1769+ </object>
1770+ <packing>
1771+ <property name="padding">0</property>
1772+ <property name="expand">False</property>
1773+ <property name="fill">False</property>
1774+ </packing>
1775+ </child>
1776+
1777+ <child>
1778+ <object class="GtkAlignment" id="alignment1">
1779+ <property name="visible">True</property>
1780+ <property name="xalign">0.5</property>
1781+ <property name="yalign">0.5</property>
1782+ <property name="xscale">1</property>
1783+ <property name="yscale">1</property>
1784+ <property name="top_padding">0</property>
1785+ <property name="bottom_padding">0</property>
1786+ <property name="left_padding">12</property>
1787+ <property name="right_padding">0</property>
1788+
1789+ <child>
1790+ <object class="GtkHBox" id="hbox6">
1791+ <property name="visible">True</property>
1792+ <property name="homogeneous">False</property>
1793+ <property name="spacing">12</property>
1794+
1795+ <child>
1796+ <object class="GtkLabel" id="tpw_speed_label">
1797+ <property name="visible">True</property>
1798+ <property name="label" translatable="yes">Connection _speed:</property>
1799+ <property name="use_underline">True</property>
1800+ <property name="use_markup">False</property>
1801+ <property name="justify">GTK_JUSTIFY_LEFT</property>
1802+ <property name="wrap">False</property>
1803+ <property name="selectable">False</property>
1804+ <property name="xalign">0</property>
1805+ <property name="yalign">0.5</property>
1806+ <property name="xpad">0</property>
1807+ <property name="ypad">0</property>
1808+ <property name="mnemonic_widget">tpw_speed_combobox</property>
1809+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1810+ <property name="width_chars">-1</property>
1811+ <property name="single_line_mode">False</property>
1812+ <property name="angle">0</property>
1813+ </object>
1814+ <packing>
1815+ <property name="padding">0</property>
1816+ <property name="expand">False</property>
1817+ <property name="fill">False</property>
1818+ </packing>
1819+ </child>
1820+
1821+ <child>
1822+ <object class="GtkComboBox" id="tpw_speed_combobox">
1823+ <property name="visible">True</property>
1824+ <property name="model">tpw_speed_liststore</property>
1825+ <property name="add_tearoffs">False</property>
1826+ <property name="focus_on_click">True</property>
1827+ <child>
1828+ <object class="GtkCellRendererText" id="tpw_speed_cell"/>
1829+ <attributes>
1830+ <attribute name="text">0</attribute>
1831+ </attributes>
1832+ </child>
1833+ </object>
1834+ <packing>
1835+ <property name="padding">0</property>
1836+ <property name="expand">False</property>
1837+ <property name="fill">True</property>
1838+ </packing>
1839+ </child>
1840+ </object>
1841+ </child>
1842+ </object>
1843+ <packing>
1844+ <property name="padding">0</property>
1845+ <property name="expand">False</property>
1846+ <property name="fill">True</property>
1847+ </packing>
1848+ </child>
1849+ </object>
1850+ <packing>
1851+ <property name="padding">0</property>
1852+ <property name="expand">False</property>
1853+ <property name="fill">True</property>
1854+ </packing>
1855+ </child>
1856+
1857+ <child>
1858+ <object class="GtkVBox" id="vbox6">
1859+ <property name="visible">True</property>
1860+ <property name="homogeneous">False</property>
1861+ <property name="spacing">6</property>
1862+ <property name="orientation">vertical</property>
1863+
1864+ <child>
1865+ <object class="GtkLabel" id="tpw_text_subtitles_label">
1866+ <property name="visible">True</property>
1867+ <property name="label" translatable="yes">Text Subtitles</property>
1868+ <property name="use_underline">False</property>
1869+ <property name="use_markup">True</property>
1870+ <property name="justify">GTK_JUSTIFY_LEFT</property>
1871+ <property name="wrap">False</property>
1872+ <property name="selectable">False</property>
1873+ <property name="xalign">0</property>
1874+ <property name="yalign">0.5</property>
1875+ <property name="xpad">0</property>
1876+ <property name="ypad">0</property>
1877+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1878+ <property name="width_chars">-1</property>
1879+ <property name="single_line_mode">False</property>
1880+ <property name="angle">0</property>
1881+ <attributes>
1882+ <attribute name="weight" value="bold"/>
1883+ </attributes>
1884+ </object>
1885+ <packing>
1886+ <property name="padding">0</property>
1887+ <property name="expand">False</property>
1888+ <property name="fill">False</property>
1889+ </packing>
1890+ </child>
1891+
1892+ <child>
1893+ <object class="GtkAlignment" id="alignment3">
1894+ <property name="visible">True</property>
1895+ <property name="xalign">0.5</property>
1896+ <property name="yalign">0.5</property>
1897+ <property name="xscale">1</property>
1898+ <property name="yscale">1</property>
1899+ <property name="top_padding">0</property>
1900+ <property name="bottom_padding">0</property>
1901+ <property name="left_padding">12</property>
1902+ <property name="right_padding">0</property>
1903+
1904+ <child>
1905+ <object class="GtkTable" id="table3">
1906+ <property name="visible">True</property>
1907+ <property name="n_rows">3</property>
1908+ <property name="n_columns">2</property>
1909+ <property name="homogeneous">False</property>
1910+ <property name="row_spacing">6</property>
1911+ <property name="column_spacing">12</property>
1912+
1913+ <child>
1914+ <object class="GtkCheckButton" id="tpw_auto_subtitles_checkbutton">
1915+ <property name="visible">True</property>
1916+ <property name="can_focus">True</property>
1917+ <property name="label" translatable="yes">_Load subtitle files when movie is loaded</property>
1918+ <property name="use_underline">True</property>
1919+ <property name="relief">GTK_RELIEF_NORMAL</property>
1920+ <property name="focus_on_click">True</property>
1921+ <property name="active">False</property>
1922+ <property name="inconsistent">False</property>
1923+ <property name="draw_indicator">True</property>
1924+ </object>
1925+ <packing>
1926+ <property name="left_attach">0</property>
1927+ <property name="right_attach">2</property>
1928+ <property name="top_attach">0</property>
1929+ <property name="bottom_attach">1</property>
1930+ <property name="x_options">fill</property>
1931+ <property name="y_options"/>
1932+ </packing>
1933+ </child>
1934+
1935+ <child>
1936+ <object class="GtkLabel" id="label32">
1937+ <property name="visible">True</property>
1938+ <property name="label" translatable="yes">_Font:</property>
1939+ <property name="use_underline">True</property>
1940+ <property name="use_markup">False</property>
1941+ <property name="justify">GTK_JUSTIFY_LEFT</property>
1942+ <property name="wrap">False</property>
1943+ <property name="selectable">False</property>
1944+ <property name="xalign">0</property>
1945+ <property name="yalign">0.5</property>
1946+ <property name="xpad">0</property>
1947+ <property name="ypad">0</property>
1948+ <property name="mnemonic_widget">font_sel_button</property>
1949+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1950+ <property name="width_chars">-1</property>
1951+ <property name="single_line_mode">False</property>
1952+ <property name="angle">0</property>
1953+ </object>
1954+ <packing>
1955+ <property name="left_attach">0</property>
1956+ <property name="right_attach">1</property>
1957+ <property name="top_attach">1</property>
1958+ <property name="bottom_attach">2</property>
1959+ <property name="x_options">fill</property>
1960+ <property name="y_options"/>
1961+ </packing>
1962+ </child>
1963+
1964+ <child>
1965+ <object class="GtkLabel" id="label35">
1966+ <property name="visible">True</property>
1967+ <property name="label" translatable="yes">_Encoding:</property>
1968+ <property name="use_underline">True</property>
1969+ <property name="use_markup">False</property>
1970+ <property name="justify">GTK_JUSTIFY_LEFT</property>
1971+ <property name="wrap">False</property>
1972+ <property name="selectable">False</property>
1973+ <property name="xalign">0</property>
1974+ <property name="yalign">0.5</property>
1975+ <property name="xpad">0</property>
1976+ <property name="ypad">0</property>
1977+ <property name="mnemonic_widget">subtitle_encoding_combo</property>
1978+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1979+ <property name="width_chars">-1</property>
1980+ <property name="single_line_mode">False</property>
1981+ <property name="angle">0</property>
1982+ </object>
1983+ <packing>
1984+ <property name="left_attach">0</property>
1985+ <property name="right_attach">1</property>
1986+ <property name="top_attach">2</property>
1987+ <property name="bottom_attach">3</property>
1988+ <property name="x_options">fill</property>
1989+ <property name="y_options"/>
1990+ </packing>
1991+ </child>
1992+
1993+ <child>
1994+ <object class="GtkComboBox" id="subtitle_encoding_combo">
1995+ <property name="visible">True</property>
1996+ <property name="add_tearoffs">False</property>
1997+ <property name="focus_on_click">True</property>
1998+ <signal name="changed" handler="encoding_set_cb"/>
1999+ </object>
2000+ <packing>
2001+ <property name="left_attach">1</property>
2002+ <property name="right_attach">2</property>
2003+ <property name="top_attach">2</property>
2004+ <property name="bottom_attach">3</property>
2005+ <property name="x_options">fill</property>
2006+ <property name="y_options">fill</property>
2007+ </packing>
2008+ </child>
2009+
2010+ <child>
2011+ <object class="GtkFontButton" id="font_sel_button">
2012+ <property name="visible">True</property>
2013+ <property name="can_focus">True</property>
2014+ <property name="show_style">True</property>
2015+ <property name="show_size">True</property>
2016+ <property name="use_font">False</property>
2017+ <property name="use_size">False</property>
2018+ <property name="focus_on_click">True</property>
2019+ <signal name="font-set" handler="font_set_cb"/>
2020+ </object>
2021+ <packing>
2022+ <property name="left_attach">1</property>
2023+ <property name="right_attach">2</property>
2024+ <property name="top_attach">1</property>
2025+ <property name="bottom_attach">2</property>
2026+ <property name="y_options"/>
2027+ </packing>
2028+ </child>
2029+ </object>
2030+ </child>
2031+ </object>
2032+ <packing>
2033+ <property name="padding">0</property>
2034+ <property name="expand">False</property>
2035+ <property name="fill">True</property>
2036+ </packing>
2037+ </child>
2038+ </object>
2039+ <packing>
2040+ <property name="padding">0</property>
2041+ <property name="expand">False</property>
2042+ <property name="fill">True</property>
2043+ </packing>
2044+ </child>
2045+
2046+ <child>
2047+ <object class="GtkVBox" id="vbox7">
2048+ <property name="visible">True</property>
2049+ <property name="homogeneous">False</property>
2050+ <property name="spacing">6</property>
2051+ <property name="orientation">vertical</property>
2052+
2053+ <child>
2054+ <object class="GtkLabel" id="tpw_ext_chapters_label">
2055+ <property name="visible">True</property>
2056+ <property name="label" translatable="yes">External Chapters</property>
2057+ <property name="use_underline">False</property>
2058+ <property name="use_markup">True</property>
2059+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2060+ <property name="wrap">False</property>
2061+ <property name="selectable">False</property>
2062+ <property name="xalign">0</property>
2063+ <property name="yalign">0.5</property>
2064+ <property name="xpad">0</property>
2065+ <property name="ypad">0</property>
2066+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2067+ <property name="width_chars">-1</property>
2068+ <property name="single_line_mode">False</property>
2069+ <property name="angle">0</property>
2070+ <attributes>
2071+ <attribute name="weight" value="bold"/>
2072+ </attributes>
2073+ </object>
2074+ <packing>
2075+ <property name="padding">0</property>
2076+ <property name="expand">False</property>
2077+ <property name="fill">False</property>
2078+ </packing>
2079+ </child>
2080+
2081+ <child>
2082+ <object class="GtkAlignment" id="alignment3_2">
2083+ <property name="visible">True</property>
2084+ <property name="xalign">0.5</property>
2085+ <property name="yalign">0.5</property>
2086+ <property name="xscale">1</property>
2087+ <property name="yscale">1</property>
2088+ <property name="top_padding">0</property>
2089+ <property name="bottom_padding">0</property>
2090+ <property name="left_padding">12</property>
2091+ <property name="right_padding">0</property>
2092+
2093+ <child>
2094+ <object class="GtkTable" id="table3_2">
2095+ <property name="visible">True</property>
2096+ <property name="n_rows">1</property>
2097+ <property name="n_columns">2</property>
2098+ <property name="homogeneous">False</property>
2099+ <property name="row_spacing">6</property>
2100+ <property name="column_spacing">12</property>
2101+
2102+ <child>
2103+ <object class="GtkCheckButton" id="tpw_auto_chapters_checkbutton">
2104+ <property name="visible">True</property>
2105+ <property name="can_focus">True</property>
2106+ <property name="label" translatable="yes">Load _chapter files when movie is loaded</property>
2107+ <property name="use_underline">True</property>
2108+ <property name="relief">GTK_RELIEF_NORMAL</property>
2109+ <property name="focus_on_click">True</property>
2110+ <property name="active">False</property>
2111+ <property name="inconsistent">False</property>
2112+ <property name="draw_indicator">True</property>
2113+ </object>
2114+ <packing>
2115+ <property name="left_attach">0</property>
2116+ <property name="right_attach">2</property>
2117+ <property name="top_attach">0</property>
2118+ <property name="bottom_attach">1</property>
2119+ <property name="x_options">fill</property>
2120+ <property name="y_options"/>
2121+ </packing>
2122+ </child>
2123+ </object>
2124+ </child>
2125+ </object>
2126+ <packing>
2127+ <property name="padding">0</property>
2128+ <property name="expand">False</property>
2129+ <property name="fill">True</property>
2130+ </packing>
2131+ </child>
2132+ </object>
2133+ <packing>
2134+ <property name="padding">0</property>
2135+ <property name="expand">False</property>
2136+ <property name="fill">True</property>
2137+ </packing>
2138+ </child>
2139+ </object>
2140+ <packing>
2141+ <property name="tab_expand">False</property>
2142+ <property name="tab_fill">True</property>
2143+ </packing>
2144+ </child>
2145+
2146+ <child type="tab">
2147+ <object class="GtkLabel" id="tpw_general_notebook_label">
2148+ <property name="visible">True</property>
2149+ <property name="label" translatable="yes">General</property>
2150+ <property name="use_underline">True</property>
2151+ <property name="use_markup">False</property>
2152+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2153+ <property name="wrap">False</property>
2154+ <property name="selectable">False</property>
2155+ <property name="xalign">0.5</property>
2156+ <property name="yalign">0.5</property>
2157+ <property name="xpad">0</property>
2158+ <property name="ypad">0</property>
2159+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2160+ <property name="width_chars">-1</property>
2161+ <property name="single_line_mode">False</property>
2162+ <property name="angle">0</property>
2163+ </object>
2164+
2165+ </child>
2166+
2167+ <child>
2168+ <object class="GtkVBox" id="vbox1">
2169+ <property name="border_width">12</property>
2170+ <property name="visible">True</property>
2171+ <property name="homogeneous">False</property>
2172+ <property name="spacing">18</property>
2173+ <property name="orientation">vertical</property>
2174+
2175+ <child>
2176+ <object class="GtkVBox" id="tpw_visuals_display_vbox">
2177+ <property name="visible">True</property>
2178+ <property name="homogeneous">False</property>
2179+ <property name="spacing">6</property>
2180+ <property name="orientation">vertical</property>
2181+
2182+ <child>
2183+ <object class="GtkLabel" id="tpw_display_label">
2184+ <property name="visible">True</property>
2185+ <property name="label" translatable="yes" comments="Tab label in the Preferences dialogue">Display</property>
2186+ <property name="use_underline">False</property>
2187+ <property name="use_markup">True</property>
2188+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2189+ <property name="wrap">False</property>
2190+ <property name="selectable">False</property>
2191+ <property name="xalign">0</property>
2192+ <property name="yalign">0.5</property>
2193+ <property name="xpad">0</property>
2194+ <property name="ypad">0</property>
2195+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2196+ <property name="width_chars">-1</property>
2197+ <property name="single_line_mode">False</property>
2198+ <property name="angle">0</property>
2199+ <attributes>
2200+ <attribute name="weight" value="bold"/>
2201+ </attributes>
2202+ </object>
2203+ <packing>
2204+ <property name="padding">0</property>
2205+ <property name="expand">False</property>
2206+ <property name="fill">False</property>
2207+ </packing>
2208+ </child>
2209+
2210+ <child>
2211+ <object class="GtkAlignment" id="alignment4">
2212+ <property name="visible">True</property>
2213+ <property name="xalign">0.5</property>
2214+ <property name="yalign">0.5</property>
2215+ <property name="xscale">1</property>
2216+ <property name="yscale">1</property>
2217+ <property name="top_padding">0</property>
2218+ <property name="bottom_padding">0</property>
2219+ <property name="left_padding">12</property>
2220+ <property name="right_padding">0</property>
2221+
2222+ <child>
2223+ <object class="GtkCheckButton" id="tpw_display_checkbutton">
2224+ <property name="visible">True</property>
2225+ <property name="can_focus">True</property>
2226+ <property name="label" translatable="yes">_Resize the window when a new video is loaded</property>
2227+ <property name="use_underline">True</property>
2228+ <property name="relief">GTK_RELIEF_NORMAL</property>
2229+ <property name="focus_on_click">True</property>
2230+ <property name="active">False</property>
2231+ <property name="inconsistent">False</property>
2232+ <property name="draw_indicator">True</property>
2233+ </object>
2234+ </child>
2235+ </object>
2236+ <packing>
2237+ <property name="padding">0</property>
2238+ <property name="expand">False</property>
2239+ <property name="fill">False</property>
2240+ </packing>
2241+ </child>
2242+ <child>
2243+ <object class="GtkAlignment" id="alignment9">
2244+ <property name="visible">True</property>
2245+ <property name="left_padding">12</property>
2246+ <child>
2247+ <object class="GtkCheckButton" id="tpw_no_deinterlace_checkbutton">
2248+ <property name="label" translatable="yes">Disable _deinterlacing of interlaced videos</property>
2249+ <property name="visible">True</property>
2250+ <property name="can_focus">False</property>
2251+ <property name="receives_default">False</property>
2252+ <property name="use_action_appearance">False</property>
2253+ <property name="use_underline">True</property>
2254+ <property name="draw_indicator">True</property>
2255+ </object>
2256+ </child>
2257+ </object>
2258+ <packing>
2259+ <property name="expand">False</property>
2260+ <property name="fill">False</property>
2261+ <property name="position">3</property>
2262+ </packing>
2263+ </child>
2264+ <child>
2265+ <object class="GtkAlignment" id="alignment8">
2266+ <property name="visible">True</property>
2267+ <property name="left_padding">12</property>
2268+ <child>
2269+ <object class="GtkHBox" id="hbox1">
2270+ <property name="visible">True</property>
2271+ <child>
2272+ <object class="GtkLabel" id="label1">
2273+ <property name="visible">True</property>
2274+ <property name="label" translatable="yes">Disable screensaver when playing </property>
2275+ </object>
2276+ <packing>
2277+ <property name="position">0</property>
2278+ </packing>
2279+ </child>
2280+ <child>
2281+ <object class="GtkRadioButton" id="tpw_video_toggle_button">
2282+ <property name="label" translatable="yes">Video</property>
2283+ <property name="visible">True</property>
2284+ <property name="can_focus">True</property>
2285+ <property name="receives_default">False</property>
2286+ <property name="use_action_appearance">False</property>
2287+ <property name="draw_indicator">True</property>
2288+ <property name="group">tpw_audio_toggle_button</property>
2289+ </object>
2290+ <packing>
2291+ <property name="position">1</property>
2292+ </packing>
2293+ </child>
2294+ <child>
2295+ <object class="GtkRadioButton" id="tpw_audio_toggle_button">
2296+ <property name="label" translatable="yes">Video or Audio</property>
2297+ <property name="visible">True</property>
2298+ <property name="can_focus">True</property>
2299+ <property name="receives_default">False</property>
2300+ <property name="use_action_appearance">False</property>
2301+ <property name="active">True</property>
2302+ <property name="draw_indicator">True</property>
2303+ <signal name="toggled" handler="audio_screensaver_button_toggled_cb"/>
2304+ </object>
2305+ <packing>
2306+ <property name="position">2</property>
2307+ </packing>
2308+ </child>
2309+ </object>
2310+ </child>
2311+ </object>
2312+ <packing>
2313+ <property name="expand">False</property>
2314+ <property name="fill">False</property>
2315+ <property name="position">3</property>
2316+ </packing>
2317+ </child>
2318+
2319+
2320+ </object>
2321+ <packing>
2322+ <property name="padding">0</property>
2323+ <property name="expand">False</property>
2324+ <property name="fill">True</property>
2325+ </packing>
2326+ </child>
2327+
2328+ <child>
2329+ <object class="GtkVBox" id="tpw_visuals_effects_vbox">
2330+ <property name="visible">True</property>
2331+ <property name="homogeneous">False</property>
2332+ <property name="spacing">6</property>
2333+ <property name="orientation">vertical</property>
2334+
2335+ <child>
2336+ <object class="GtkLabel" id="tpw_visuals_label">
2337+ <property name="visible">True</property>
2338+ <property name="label" translatable="yes">Visual Effects</property>
2339+ <property name="use_underline">False</property>
2340+ <property name="use_markup">True</property>
2341+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2342+ <property name="wrap">False</property>
2343+ <property name="selectable">False</property>
2344+ <property name="xalign">0</property>
2345+ <property name="yalign">0.5</property>
2346+ <property name="xpad">0</property>
2347+ <property name="ypad">0</property>
2348+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2349+ <property name="width_chars">-1</property>
2350+ <property name="single_line_mode">False</property>
2351+ <property name="angle">0</property>
2352+ <attributes>
2353+ <attribute name="weight" value="bold"/>
2354+ </attributes>
2355+ </object>
2356+ <packing>
2357+ <property name="padding">0</property>
2358+ <property name="expand">False</property>
2359+ <property name="fill">False</property>
2360+ </packing>
2361+ </child>
2362+
2363+ <child>
2364+ <object class="GtkAlignment" id="alignment5">
2365+ <property name="visible">True</property>
2366+ <property name="xalign">0.5</property>
2367+ <property name="yalign">0.5</property>
2368+ <property name="xscale">1</property>
2369+ <property name="yscale">1</property>
2370+ <property name="top_padding">0</property>
2371+ <property name="bottom_padding">0</property>
2372+ <property name="left_padding">12</property>
2373+ <property name="right_padding">0</property>
2374+
2375+ <child>
2376+ <object class="GtkVBox" id="vbox9">
2377+ <property name="visible">True</property>
2378+ <property name="homogeneous">False</property>
2379+ <property name="spacing">6</property>
2380+ <property name="orientation">vertical</property>
2381+
2382+ <child>
2383+ <object class="GtkCheckButton" id="tpw_visuals_checkbutton">
2384+ <property name="visible">True</property>
2385+ <property name="can_focus">True</property>
2386+ <property name="label" translatable="yes">Show _visual effects when an audio file is played</property>
2387+ <property name="use_underline">True</property>
2388+ <property name="relief">GTK_RELIEF_NORMAL</property>
2389+ <property name="focus_on_click">True</property>
2390+ <property name="active">False</property>
2391+ <property name="inconsistent">False</property>
2392+ <property name="draw_indicator">True</property>
2393+ <signal name="toggled" handler="checkbutton2_toggled_cb"/>
2394+ </object>
2395+ <packing>
2396+ <property name="padding">0</property>
2397+ <property name="expand">False</property>
2398+ <property name="fill">False</property>
2399+ </packing>
2400+ </child>
2401+
2402+ <child>
2403+ <object class="GtkTable" id="table1">
2404+ <property name="visible">True</property>
2405+ <property name="n_rows">2</property>
2406+ <property name="n_columns">2</property>
2407+ <property name="homogeneous">False</property>
2408+ <property name="row_spacing">6</property>
2409+ <property name="column_spacing">12</property>
2410+
2411+ <child>
2412+ <object class="GtkLabel" id="tpw_visuals_type_label">
2413+ <property name="visible">True</property>
2414+ <property name="label" translatable="yes">_Type of visualization:</property>
2415+ <property name="use_underline">True</property>
2416+ <property name="use_markup">False</property>
2417+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2418+ <property name="wrap">False</property>
2419+ <property name="selectable">False</property>
2420+ <property name="xalign">0</property>
2421+ <property name="yalign">0.5</property>
2422+ <property name="xpad">0</property>
2423+ <property name="ypad">0</property>
2424+ <property name="mnemonic_widget">tpw_visuals_type_combobox</property>
2425+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2426+ <property name="width_chars">-1</property>
2427+ <property name="single_line_mode">False</property>
2428+ <property name="angle">0</property>
2429+ </object>
2430+ <packing>
2431+ <property name="left_attach">0</property>
2432+ <property name="right_attach">1</property>
2433+ <property name="top_attach">0</property>
2434+ <property name="bottom_attach">1</property>
2435+ <property name="x_options">fill</property>
2436+ <property name="y_options"/>
2437+ </packing>
2438+ </child>
2439+
2440+ <child>
2441+ <object class="GtkLabel" id="tpw_visuals_size_label">
2442+ <property name="visible">True</property>
2443+ <property name="label" translatable="yes">Visualization _size:</property>
2444+ <property name="use_underline">True</property>
2445+ <property name="use_markup">False</property>
2446+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2447+ <property name="wrap">False</property>
2448+ <property name="selectable">False</property>
2449+ <property name="xalign">0</property>
2450+ <property name="yalign">0.5</property>
2451+ <property name="xpad">0</property>
2452+ <property name="ypad">0</property>
2453+ <property name="mnemonic_widget">tpw_visuals_size_combobox</property>
2454+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2455+ <property name="width_chars">-1</property>
2456+ <property name="single_line_mode">False</property>
2457+ <property name="angle">0</property>
2458+ </object>
2459+ <packing>
2460+ <property name="left_attach">0</property>
2461+ <property name="right_attach">1</property>
2462+ <property name="top_attach">1</property>
2463+ <property name="bottom_attach">2</property>
2464+ <property name="x_options">fill</property>
2465+ <property name="y_options"/>
2466+ </packing>
2467+ </child>
2468+
2469+ <child>
2470+ <object class="GtkComboBox" id="tpw_visuals_size_combobox">
2471+ <property name="visible">True</property>
2472+ <property name="model">tpw_visuals_size_liststore</property>
2473+ <property name="add_tearoffs">False</property>
2474+ <property name="focus_on_click">True</property>
2475+ <child>
2476+ <object class="GtkCellRendererText" id="tpw_visuals_size_cell"/>
2477+ <attributes>
2478+ <attribute name="text">0</attribute>
2479+ </attributes>
2480+ </child>
2481+ </object>
2482+ <packing>
2483+ <property name="left_attach">1</property>
2484+ <property name="right_attach">2</property>
2485+ <property name="top_attach">1</property>
2486+ <property name="bottom_attach">2</property>
2487+ <property name="x_options">fill</property>
2488+ <property name="y_options">fill</property>
2489+ </packing>
2490+ </child>
2491+
2492+ <child>
2493+ <object class="GtkComboBox" id="tpw_visuals_type_combobox">
2494+ <property name="visible">True</property>
2495+ <property name="add_tearoffs">False</property>
2496+ <property name="focus_on_click">True</property>
2497+ <property name="model">tpw_visuals_type_liststore</property>
2498+ <signal name="changed" handler="visual_menu_changed"/>
2499+ <child>
2500+ <object class="GtkCellRendererText" id="renderer1"/>
2501+ <attributes>
2502+ <attribute name="text">0</attribute>
2503+ </attributes>
2504+ </child>
2505+ </object>
2506+ <packing>
2507+ <property name="left_attach">1</property>
2508+ <property name="right_attach">2</property>
2509+ <property name="top_attach">0</property>
2510+ <property name="bottom_attach">1</property>
2511+ <property name="y_options">fill</property>
2512+ </packing>
2513+ </child>
2514+ </object>
2515+ <packing>
2516+ <property name="padding">0</property>
2517+ <property name="expand">False</property>
2518+ <property name="fill">True</property>
2519+ </packing>
2520+ </child>
2521+ </object>
2522+ </child>
2523+ </object>
2524+ <packing>
2525+ <property name="padding">0</property>
2526+ <property name="expand">False</property>
2527+ <property name="fill">True</property>
2528+ </packing>
2529+ </child>
2530+ </object>
2531+ <packing>
2532+ <property name="padding">0</property>
2533+ <property name="expand">False</property>
2534+ <property name="fill">True</property>
2535+ </packing>
2536+ </child>
2537+
2538+ <child>
2539+ <object class="GtkVBox" id="tpw_bright_contr_vbox">
2540+ <property name="visible">True</property>
2541+ <property name="homogeneous">False</property>
2542+ <property name="spacing">6</property>
2543+ <property name="orientation">vertical</property>
2544+
2545+ <child>
2546+ <object class="GtkHBox" id="hbox14">
2547+ <property name="visible">True</property>
2548+ <property name="homogeneous">False</property>
2549+ <property name="spacing">6</property>
2550+
2551+ <child>
2552+ <object class="GtkLabel" id="tpw_color_balance_label">
2553+ <property name="visible">True</property>
2554+ <property name="label" translatable="yes">Color Balance</property>
2555+ <property name="use_underline">False</property>
2556+ <property name="use_markup">True</property>
2557+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2558+ <property name="wrap">False</property>
2559+ <property name="selectable">False</property>
2560+ <property name="xalign">0</property>
2561+ <property name="yalign">0.5</property>
2562+ <property name="xpad">0</property>
2563+ <property name="ypad">0</property>
2564+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2565+ <property name="width_chars">-1</property>
2566+ <property name="single_line_mode">False</property>
2567+ <property name="angle">0</property>
2568+ <attributes>
2569+ <attribute name="weight" value="bold"/>
2570+ </attributes>
2571+ </object>
2572+ <packing>
2573+ <property name="padding">0</property>
2574+ <property name="expand">False</property>
2575+ <property name="fill">False</property>
2576+ </packing>
2577+ </child>
2578+ </object>
2579+ <packing>
2580+ <property name="padding">0</property>
2581+ <property name="expand">False</property>
2582+ <property name="fill">False</property>
2583+ </packing>
2584+ </child>
2585+
2586+ <child>
2587+ <object class="GtkAlignment" id="alignment6">
2588+ <property name="visible">True</property>
2589+ <property name="xalign">0.5</property>
2590+ <property name="yalign">0.5</property>
2591+ <property name="xscale">1</property>
2592+ <property name="yscale">1</property>
2593+ <property name="top_padding">0</property>
2594+ <property name="bottom_padding">0</property>
2595+ <property name="left_padding">12</property>
2596+ <property name="right_padding">0</property>
2597+
2598+ <child>
2599+ <object class="GtkTable" id="table2">
2600+ <property name="visible">True</property>
2601+ <property name="n_rows">5</property>
2602+ <property name="n_columns">2</property>
2603+ <property name="homogeneous">False</property>
2604+ <property name="row_spacing">6</property>
2605+ <property name="column_spacing">12</property>
2606+
2607+ <child>
2608+ <object class="GtkLabel" id="tpw_brightness_label">
2609+ <property name="visible">True</property>
2610+ <property name="label" translatable="yes">_Brightness:</property>
2611+ <property name="use_underline">True</property>
2612+ <property name="use_markup">False</property>
2613+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2614+ <property name="wrap">False</property>
2615+ <property name="selectable">False</property>
2616+ <property name="xalign">0</property>
2617+ <property name="yalign">0.5</property>
2618+ <property name="xpad">0</property>
2619+ <property name="ypad">0</property>
2620+ <property name="mnemonic_widget">tpw_bright_scale</property>
2621+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2622+ <property name="width_chars">-1</property>
2623+ <property name="single_line_mode">False</property>
2624+ <property name="angle">0</property>
2625+ </object>
2626+ <packing>
2627+ <property name="left_attach">0</property>
2628+ <property name="right_attach">1</property>
2629+ <property name="top_attach">0</property>
2630+ <property name="bottom_attach">1</property>
2631+ <property name="x_options">fill</property>
2632+ <property name="y_options"/>
2633+ </packing>
2634+ </child>
2635+
2636+ <child>
2637+ <object class="GtkLabel" id="tpw_contrast_label">
2638+ <property name="visible">True</property>
2639+ <property name="label" translatable="yes">Co_ntrast:</property>
2640+ <property name="use_underline">True</property>
2641+ <property name="use_markup">False</property>
2642+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2643+ <property name="wrap">False</property>
2644+ <property name="selectable">False</property>
2645+ <property name="xalign">0</property>
2646+ <property name="yalign">0.5</property>
2647+ <property name="xpad">0</property>
2648+ <property name="ypad">0</property>
2649+ <property name="mnemonic_widget">tpw_contrast_scale</property>
2650+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2651+ <property name="width_chars">-1</property>
2652+ <property name="single_line_mode">False</property>
2653+ <property name="angle">0</property>
2654+ </object>
2655+ <packing>
2656+ <property name="left_attach">0</property>
2657+ <property name="right_attach">1</property>
2658+ <property name="top_attach">1</property>
2659+ <property name="bottom_attach">2</property>
2660+ <property name="x_options">fill</property>
2661+ <property name="y_options"/>
2662+ </packing>
2663+ </child>
2664+
2665+ <child>
2666+ <object class="GtkHScale" id="tpw_bright_scale">
2667+ <property name="visible">True</property>
2668+ <property name="can_focus">True</property>
2669+ <property name="draw_value">False</property>
2670+ <property name="value_pos">GTK_POS_TOP</property>
2671+ <property name="digits">1</property>
2672+ <property name="inverted">False</property>
2673+ <property name="adjustment">tpw_bright_adjustment</property>
2674+ </object>
2675+ <packing>
2676+ <property name="left_attach">1</property>
2677+ <property name="right_attach">2</property>
2678+ <property name="top_attach">0</property>
2679+ <property name="bottom_attach">1</property>
2680+ <property name="y_options"/>
2681+ </packing>
2682+ </child>
2683+
2684+ <child>
2685+ <object class="GtkHScale" id="tpw_contrast_scale">
2686+ <property name="visible">True</property>
2687+ <property name="can_focus">True</property>
2688+ <property name="draw_value">False</property>
2689+ <property name="value_pos">GTK_POS_TOP</property>
2690+ <property name="digits">1</property>
2691+ <property name="inverted">False</property>
2692+ <property name="adjustment">tpw_contrast_adjustment</property>
2693+ </object>
2694+ <packing>
2695+ <property name="left_attach">1</property>
2696+ <property name="right_attach">2</property>
2697+ <property name="top_attach">1</property>
2698+ <property name="bottom_attach">2</property>
2699+ <property name="x_options">fill</property>
2700+ <property name="y_options">fill</property>
2701+ </packing>
2702+ </child>
2703+
2704+ <child>
2705+ <object class="GtkLabel" id="tpw_saturation_label">
2706+ <property name="visible">True</property>
2707+ <property name="label" translatable="yes">Sat_uration:</property>
2708+ <property name="use_underline">True</property>
2709+ <property name="use_markup">False</property>
2710+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2711+ <property name="wrap">False</property>
2712+ <property name="selectable">False</property>
2713+ <property name="xalign">0</property>
2714+ <property name="yalign">0.5</property>
2715+ <property name="xpad">0</property>
2716+ <property name="ypad">0</property>
2717+ <property name="mnemonic_widget">tpw_saturation_scale</property>
2718+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2719+ <property name="width_chars">-1</property>
2720+ <property name="single_line_mode">False</property>
2721+ <property name="angle">0</property>
2722+ </object>
2723+ <packing>
2724+ <property name="left_attach">0</property>
2725+ <property name="right_attach">1</property>
2726+ <property name="top_attach">2</property>
2727+ <property name="bottom_attach">3</property>
2728+ <property name="x_options">fill</property>
2729+ <property name="y_options"/>
2730+ </packing>
2731+ </child>
2732+
2733+ <child>
2734+ <object class="GtkLabel" id="tpw_hue_label">
2735+ <property name="visible">True</property>
2736+ <property name="label" translatable="yes">_Hue:</property>
2737+ <property name="use_underline">True</property>
2738+ <property name="use_markup">False</property>
2739+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2740+ <property name="wrap">False</property>
2741+ <property name="selectable">False</property>
2742+ <property name="xalign">0</property>
2743+ <property name="yalign">0.5</property>
2744+ <property name="xpad">0</property>
2745+ <property name="ypad">0</property>
2746+ <property name="mnemonic_widget">tpw_hue_scale</property>
2747+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2748+ <property name="width_chars">-1</property>
2749+ <property name="single_line_mode">False</property>
2750+ <property name="angle">0</property>
2751+ </object>
2752+ <packing>
2753+ <property name="left_attach">0</property>
2754+ <property name="right_attach">1</property>
2755+ <property name="top_attach">3</property>
2756+ <property name="bottom_attach">4</property>
2757+ <property name="x_options">fill</property>
2758+ <property name="y_options"/>
2759+ </packing>
2760+ </child>
2761+
2762+ <child>
2763+ <object class="GtkHScale" id="tpw_saturation_scale">
2764+ <property name="visible">True</property>
2765+ <property name="can_focus">True</property>
2766+ <property name="draw_value">False</property>
2767+ <property name="value_pos">GTK_POS_TOP</property>
2768+ <property name="digits">1</property>
2769+ <property name="inverted">False</property>
2770+ <property name="adjustment">tpw_saturation_adjustment</property>
2771+ </object>
2772+ <packing>
2773+ <property name="left_attach">1</property>
2774+ <property name="right_attach">2</property>
2775+ <property name="top_attach">2</property>
2776+ <property name="bottom_attach">3</property>
2777+ <property name="x_options">fill</property>
2778+ <property name="y_options">fill</property>
2779+ </packing>
2780+ </child>
2781+
2782+ <child>
2783+ <object class="GtkHScale" id="tpw_hue_scale">
2784+ <property name="visible">True</property>
2785+ <property name="can_focus">True</property>
2786+ <property name="draw_value">False</property>
2787+ <property name="value_pos">GTK_POS_TOP</property>
2788+ <property name="digits">1</property>
2789+ <property name="inverted">False</property>
2790+ <property name="adjustment">tpw_hue_adjustment</property>
2791+ </object>
2792+ <packing>
2793+ <property name="left_attach">1</property>
2794+ <property name="right_attach">2</property>
2795+ <property name="top_attach">3</property>
2796+ <property name="bottom_attach">4</property>
2797+ <property name="x_options">fill</property>
2798+ <property name="y_options">fill</property>
2799+ </packing>
2800+ </child>
2801+
2802+ <child>
2803+ <object class="GtkHButtonBox" id="hbox23">
2804+ <property name="visible">True</property>
2805+ <property name="homogeneous">False</property>
2806+ <property name="spacing">0</property>
2807+ <property name="layout_style">GTK_BUTTONBOX_END</property>
2808+
2809+ <child>
2810+ <object class="GtkButton" id="tpw_color_reset">
2811+ <property name="visible">True</property>
2812+ <property name="can_focus">True</property>
2813+ <property name="label" translatable="yes">Reset to _Defaults</property>
2814+ <property name="use_underline">True</property>
2815+ <property name="relief">GTK_RELIEF_NORMAL</property>
2816+ <property name="focus_on_click">True</property>
2817+ <signal name="clicked" handler="tpw_color_reset_clicked_cb"/>
2818+ </object>
2819+ <packing>
2820+ <property name="padding">0</property>
2821+ <property name="expand">False</property>
2822+ <property name="fill">False</property>
2823+ </packing>
2824+ </child>
2825+ </object>
2826+ <packing>
2827+ <property name="left_attach">1</property>
2828+ <property name="right_attach">2</property>
2829+ <property name="top_attach">4</property>
2830+ <property name="bottom_attach">5</property>
2831+ <property name="x_options">shrink|fill</property>
2832+ </packing>
2833+ </child>
2834+ </object>
2835+ </child>
2836+ </object>
2837+ <packing>
2838+ <property name="padding">0</property>
2839+ <property name="expand">False</property>
2840+ <property name="fill">True</property>
2841+ </packing>
2842+ </child>
2843+ </object>
2844+ <packing>
2845+ <property name="padding">0</property>
2846+ <property name="expand">False</property>
2847+ <property name="fill">True</property>
2848+ </packing>
2849+ </child>
2850+ </object>
2851+ <packing>
2852+ <property name="tab_expand">False</property>
2853+ <property name="tab_fill">True</property>
2854+ </packing>
2855+ </child>
2856+
2857+ <child type="tab">
2858+ <object class="GtkLabel" id="tpw_visuals_notebook_label">
2859+ <property name="visible">True</property>
2860+ <property name="label" translatable="yes">Display</property>
2861+ <property name="use_underline">True</property>
2862+ <property name="use_markup">False</property>
2863+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2864+ <property name="wrap">False</property>
2865+ <property name="selectable">False</property>
2866+ <property name="xalign">0.5</property>
2867+ <property name="yalign">0.5</property>
2868+ <property name="xpad">0</property>
2869+ <property name="ypad">0</property>
2870+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2871+ <property name="width_chars">-1</property>
2872+ <property name="single_line_mode">False</property>
2873+ <property name="angle">0</property>
2874+ </object>
2875+
2876+ </child>
2877+
2878+ <child>
2879+ <object class="GtkVBox" id="vbox12">
2880+ <property name="border_width">12</property>
2881+ <property name="visible">True</property>
2882+ <property name="homogeneous">False</property>
2883+ <property name="spacing">18</property>
2884+ <property name="orientation">vertical</property>
2885+
2886+ <child>
2887+ <object class="GtkVBox" id="vbox13">
2888+ <property name="visible">True</property>
2889+ <property name="homogeneous">False</property>
2890+ <property name="spacing">0</property>
2891+ <property name="orientation">vertical</property>
2892+
2893+ <child>
2894+ <object class="GtkVBox" id="vbox22">
2895+ <property name="visible">True</property>
2896+ <property name="homogeneous">False</property>
2897+ <property name="spacing">6</property>
2898+ <property name="orientation">vertical</property>
2899+
2900+ <child>
2901+ <object class="GtkLabel" id="tpw_audio_output_label">
2902+ <property name="visible">True</property>
2903+ <property name="label" translatable="yes">Audio Output</property>
2904+ <property name="use_underline">False</property>
2905+ <property name="use_markup">True</property>
2906+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2907+ <property name="wrap">False</property>
2908+ <property name="selectable">False</property>
2909+ <property name="xalign">0</property>
2910+ <property name="yalign">0.5</property>
2911+ <property name="xpad">0</property>
2912+ <property name="ypad">0</property>
2913+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2914+ <property name="width_chars">-1</property>
2915+ <property name="single_line_mode">False</property>
2916+ <property name="angle">0</property>
2917+ <attributes>
2918+ <attribute name="weight" value="bold"/>
2919+ </attributes>
2920+ </object>
2921+ <packing>
2922+ <property name="padding">0</property>
2923+ <property name="expand">False</property>
2924+ <property name="fill">False</property>
2925+ </packing>
2926+ </child>
2927+
2928+ <child>
2929+ <object class="GtkAlignment" id="alignment7">
2930+ <property name="visible">True</property>
2931+ <property name="xalign">0.5</property>
2932+ <property name="yalign">0.5</property>
2933+ <property name="xscale">1</property>
2934+ <property name="yscale">1</property>
2935+ <property name="top_padding">0</property>
2936+ <property name="bottom_padding">0</property>
2937+ <property name="left_padding">12</property>
2938+ <property name="right_padding">0</property>
2939+
2940+ <child>
2941+ <object class="GtkHBox" id="hbox22">
2942+ <property name="visible">True</property>
2943+ <property name="homogeneous">False</property>
2944+ <property name="spacing">12</property>
2945+
2946+ <child>
2947+ <object class="GtkLabel" id="tpw_audio_output_type_label">
2948+ <property name="visible">True</property>
2949+ <property name="label" translatable="yes">_Audio output type:</property>
2950+ <property name="use_underline">True</property>
2951+ <property name="use_markup">False</property>
2952+ <property name="justify">GTK_JUSTIFY_LEFT</property>
2953+ <property name="wrap">False</property>
2954+ <property name="selectable">False</property>
2955+ <property name="xalign">0</property>
2956+ <property name="yalign">0.5</property>
2957+ <property name="xpad">0</property>
2958+ <property name="ypad">0</property>
2959+ <property name="mnemonic_widget">tpw_sound_output_combobox</property>
2960+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2961+ <property name="width_chars">-1</property>
2962+ <property name="single_line_mode">False</property>
2963+ <property name="angle">0</property>
2964+ </object>
2965+ <packing>
2966+ <property name="padding">0</property>
2967+ <property name="expand">False</property>
2968+ <property name="fill">False</property>
2969+ </packing>
2970+ </child>
2971+
2972+ <child>
2973+ <object class="GtkComboBox" id="tpw_sound_output_combobox">
2974+ <property name="visible">True</property>
2975+ <property name="model">tpw_sound_output_liststore</property>
2976+ <property name="add_tearoffs">False</property>
2977+ <property name="focus_on_click">True</property>
2978+ <child>
2979+ <object class="GtkCellRendererText" id="tpw_sound_output_cell"/>
2980+ <attributes>
2981+ <attribute name="text">0</attribute>
2982+ </attributes>
2983+ </child>
2984+ </object>
2985+ <packing>
2986+ <property name="padding">0</property>
2987+ <property name="expand">False</property>
2988+ <property name="fill">True</property>
2989+ </packing>
2990+ </child>
2991+ </object>
2992+ </child>
2993+ </object>
2994+ <packing>
2995+ <property name="padding">0</property>
2996+ <property name="expand">False</property>
2997+ <property name="fill">True</property>
2998+ </packing>
2999+ </child>
3000+ </object>
3001+ <packing>
3002+ <property name="padding">0</property>
3003+ <property name="expand">False</property>
3004+ <property name="fill">False</property>
3005+ </packing>
3006+ </child>
3007+
3008+ <!--Placeholder-->
3009+ </object>
3010+ <packing>
3011+ <property name="padding">0</property>
3012+ <property name="expand">False</property>
3013+ <property name="fill">True</property>
3014+ </packing>
3015+ </child>
3016+ </object>
3017+ <packing>
3018+ <property name="tab_expand">False</property>
3019+ <property name="tab_fill">True</property>
3020+ </packing>
3021+ </child>
3022+
3023+ <child type="tab">
3024+ <object class="GtkLabel" id="label11">
3025+ <property name="visible">True</property>
3026+ <property name="label" translatable="yes">Audio</property>
3027+ <property name="use_underline">True</property>
3028+ <property name="use_markup">False</property>
3029+ <property name="justify">GTK_JUSTIFY_LEFT</property>
3030+ <property name="wrap">False</property>
3031+ <property name="selectable">False</property>
3032+ <property name="xalign">0.5</property>
3033+ <property name="yalign">0.5</property>
3034+ <property name="xpad">0</property>
3035+ <property name="ypad">0</property>
3036+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3037+ <property name="width_chars">-1</property>
3038+ <property name="single_line_mode">False</property>
3039+ <property name="angle">0</property>
3040+ </object>
3041+
3042+ </child>
3043+ </object>
3044+ <packing>
3045+ <property name="padding">0</property>
3046+ <property name="expand">False</property>
3047+ <property name="fill">True</property>
3048+ </packing>
3049+ </child>
3050+ </object>
3051+ </child>
3052+<action-widgets><action-widget response="-7">tpw_close_button</action-widget></action-widgets></object>
3053+
3054+<object class="GtkWindow" id="totem_main_window">
3055+ <property name="title" translatable="yes">Movie Player</property>
3056+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
3057+ <property name="window_position">GTK_WIN_POS_NONE</property>
3058+ <property name="modal">False</property>
3059+ <property name="resizable">True</property>
3060+ <property name="destroy_with_parent">False</property>
3061+ <property name="decorated">True</property>
3062+ <property name="skip_taskbar_hint">False</property>
3063+ <property name="skip_pager_hint">False</property>
3064+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
3065+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
3066+ <property name="focus_on_map">True</property>
3067+ <property name="urgency_hint">False</property>
3068+ <signal name="delete-event" handler="main_window_destroy_cb"/>
3069+ <signal name="window-state-event" handler="window_state_event_cb"/>
3070+ <signal name="key-press-event" handler="window_key_press_event_cb"/>
3071+ <signal name="key-release-event" handler="window_key_press_event_cb"/>
3072+ <signal name="scroll-event" handler="window_scroll_event_cb"/>
3073+
3074+ <child>
3075+ <object class="GtkVBox" id="totem_main_vbox">
3076+ <property name="visible">True</property>
3077+ <property name="homogeneous">False</property>
3078+ <property name="spacing">0</property>
3079+ <property name="orientation">vertical</property>
3080+
3081+ <child>
3082+ <object class="GtkVBox" id="tmw_menubar_box">
3083+ <property name="visible">True</property>
3084+ <property name="homogeneous">False</property>
3085+ <property name="spacing">0</property>
3086+ <property name="orientation">vertical</property>
3087+
3088+ <child>
3089+ <object class="GtkMenuBar" id="tmw-menubar" constructor="totem-ui-manager"/>
3090+ <packing>
3091+ <property name="pack-type">start</property>
3092+ <property name="expand">False</property>
3093+ <property name="fill">False</property>
3094+ <property name="padding">0</property>
3095+ </packing>
3096+ </child>
3097+ </object>
3098+ <packing>
3099+ <property name="padding">0</property>
3100+ <property name="expand">False</property>
3101+ <property name="fill">False</property>
3102+ </packing>
3103+ </child>
3104+
3105+ <child>
3106+ <object class="GtkHPaned" id="tmw_main_pane">
3107+ <property name="visible">True</property>
3108+ <property name="can_focus">True</property>
3109+ <signal name="size-allocate" handler="main_pane_size_allocated"/>
3110+
3111+ <child>
3112+ <object class="GtkVBox" id="tmw_main_vbox">
3113+ <property name="visible">True</property>
3114+ <property name="homogeneous">False</property>
3115+ <property name="spacing">0</property>
3116+ <property name="orientation">vertical</property>
3117+
3118+ <child>
3119+ <object class="GtkEventBox" id="tmw_bvw_box">
3120+ <property name="border_width">0</property>
3121+ <property name="visible">True</property>
3122+ <property name="visible_window">True</property>
3123+ <property name="above_child">False</property>
3124+
3125+ <!--Placeholder-->
3126+ </object>
3127+ <packing>
3128+ <property name="padding">0</property>
3129+ <property name="expand">True</property>
3130+ <property name="fill">True</property>
3131+ </packing>
3132+ </child>
3133+
3134+ <child>
3135+ <object class="GtkVBox" id="tmw_controls_vbox">
3136+ <property name="border_width">6</property>
3137+ <property name="visible">True</property>
3138+ <property name="homogeneous">False</property>
3139+ <property name="spacing">6</property>
3140+ <property name="orientation">vertical</property>
3141+
3142+ <child>
3143+ <object class="GtkHBox" id="tmw_seek_hbox">
3144+ <property name="visible">True</property>
3145+ <property name="homogeneous">False</property>
3146+ <property name="spacing">6</property>
3147+
3148+ <child>
3149+ <object class="GtkLabel" id="tmw_time_label">
3150+ <property name="visible">True</property>
3151+ <property name="label" translatable="yes">Time:</property>
3152+ <property name="use_underline">False</property>
3153+ <property name="use_markup">False</property>
3154+ <property name="justify">GTK_JUSTIFY_LEFT</property>
3155+ <property name="wrap">False</property>
3156+ <property name="selectable">False</property>
3157+ <property name="xalign">0.5</property>
3158+ <property name="yalign">0.5</property>
3159+ <property name="xpad">0</property>
3160+ <property name="ypad">0</property>
3161+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3162+ <property name="width_chars">-1</property>
3163+ <property name="single_line_mode">False</property>
3164+ <property name="angle">0</property>
3165+ <accessibility>
3166+ <relation target="tmw_seek_hscale" type="label-for"/>
3167+ </accessibility>
3168+ </object>
3169+ <packing>
3170+ <property name="padding">0</property>
3171+ <property name="expand">False</property>
3172+ <property name="fill">False</property>
3173+ </packing>
3174+ </child>
3175+
3176+ <child>
3177+ <object class="GtkHScale" id="tmw_seek_hscale">
3178+ <property name="visible">True</property>
3179+ <property name="sensitive">False</property>
3180+ <property name="can_focus">True</property>
3181+ <property name="draw_value">False</property>
3182+ <property name="value_pos">GTK_POS_TOP</property>
3183+ <property name="digits">1</property>
3184+ <property name="inverted">False</property>
3185+ <property name="adjustment">tmw_seek_adjustment</property>
3186+ <signal name="button-press-event" handler="seek_slider_pressed_cb"/>
3187+ <signal name="button-release-event" handler="seek_slider_released_cb"/>
3188+ <signal name="scroll-event" handler="window_scroll_event_cb"/>
3189+ <child internal-child="accessible">
3190+ <object class="AtkObject" id="a11y-tmw_seek_hscale">
3191+ <property name="AtkObject::accessible-name" translatable="yes">Time seek bar</property>
3192+ </object>
3193+ </child>
3194+ <accessibility>
3195+ <relation target="tmw_time_label" type="labelled-by"/>
3196+ </accessibility>
3197+ </object>
3198+ <packing>
3199+ <property name="padding">0</property>
3200+ <property name="expand">True</property>
3201+ <property name="fill">True</property>
3202+ </packing>
3203+ </child>
3204+ </object>
3205+ <packing>
3206+ <property name="padding">0</property>
3207+ <property name="expand">False</property>
3208+ <property name="fill">True</property>
3209+ </packing>
3210+ </child>
3211+
3212+ <child>
3213+ <object class="GtkHBox" id="tmw_buttons_hbox">
3214+ <property name="visible">True</property>
3215+ <property name="homogeneous">False</property>
3216+ <property name="spacing">6</property>
3217+
3218+ <child>
3219+ <object class="GtkHBox" id="tmw_sidebar_button_hbox">
3220+ <property name="visible">True</property>
3221+ <property name="homogeneous">False</property>
3222+ <property name="spacing">0</property>
3223+ </object>
3224+ <packing>
3225+ <property name="padding">0</property>
3226+ <property name="expand">False</property>
3227+ <property name="fill">False</property>
3228+ <property name="pack_type">GTK_PACK_END</property>
3229+ </packing>
3230+ </child>
3231+
3232+ <child>
3233+ <object class="GtkVolumeButton" id="tmw_volume_button">
3234+ <property name="visible">True</property>
3235+ <property name="sensitive">False</property>
3236+ <property name="use-symbolic">True</property>
3237+ <signal name="value-changed" handler="volume_button_value_changed_cb"/>
3238+ </object>
3239+ <packing>
3240+ <property name="padding">0</property>
3241+ <property name="expand">False</property>
3242+ <property name="fill">True</property>
3243+ <property name="pack_type">GTK_PACK_END</property>
3244+ </packing>
3245+ </child>
3246+ </object>
3247+ <packing>
3248+ <property name="padding">0</property>
3249+ <property name="expand">False</property>
3250+ <property name="fill">True</property>
3251+ </packing>
3252+ </child>
3253+ </object>
3254+ <packing>
3255+ <property name="padding">0</property>
3256+ <property name="expand">False</property>
3257+ <property name="fill">True</property>
3258+ </packing>
3259+ </child>
3260+ </object>
3261+ <packing>
3262+ <property name="shrink">False</property>
3263+ <property name="resize">True</property>
3264+ </packing>
3265+ </child>
3266+
3267+ <!--Placeholder-->
3268+ </object>
3269+ <packing>
3270+ <property name="padding">0</property>
3271+ <property name="expand">True</property>
3272+ <property name="fill">True</property>
3273+ </packing>
3274+ </child>
3275+
3276+ <child>
3277+ <object class="TotemStatusbar" id="tmw_statusbar">
3278+ <property name="visible">True</property>
3279+ </object>
3280+ <packing>
3281+ <property name="padding">0</property>
3282+ <property name="expand">False</property>
3283+ <property name="fill">True</property>
3284+ </packing>
3285+ </child>
3286+ </object>
3287+ </child>
3288+</object>
3289+
3290+</interface>
3291
3292=== added directory '.pc/02_lpi.patch/src'
3293=== added file '.pc/02_lpi.patch/src/totem-menu.c'
3294--- .pc/02_lpi.patch/src/totem-menu.c 1970-01-01 00:00:00 +0000
3295+++ .pc/02_lpi.patch/src/totem-menu.c 2011-10-26 10:18:23 +0000
3296@@ -0,0 +1,1407 @@
3297+/* totem-menu.c
3298+
3299+ Copyright (C) 2004-2005 Bastien Nocera
3300+
3301+ The Gnome Library is free software; you can redistribute it and/or
3302+ modify it under the terms of the GNU Library General Public License as
3303+ published by the Free Software Foundation; either version 2 of the
3304+ License, or (at your option) any later version.
3305+
3306+ The Gnome Library is distributed in the hope that it will be useful,
3307+ but WITHOUT ANY WARRANTY; without even the implied warranty of
3308+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3309+ Library General Public License for more details.
3310+
3311+ You should have received a copy of the GNU Library General Public
3312+ License along with the Gnome Library; see the file COPYING.LIB. If not,
3313+ write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
3314+ Boston, MA 02110-1301 USA.
3315+
3316+ Author: Bastien Nocera <hadess@hadess.net>
3317+ */
3318+
3319+#include "config.h"
3320+
3321+#include <gtk/gtk.h>
3322+#include <glib/gi18n.h>
3323+#include <gst/tag/tag.h>
3324+#include <string.h>
3325+#include <libpeas-gtk/peas-gtk-plugin-manager.h>
3326+
3327+#include "totem-menu.h"
3328+#include "totem.h"
3329+#include "totem-interface.h"
3330+#include "totem-private.h"
3331+#include "totem-sidebar.h"
3332+#include "totem-statusbar.h"
3333+#include "bacon-video-widget.h"
3334+#include "totem-uri.h"
3335+
3336+#include "totem-profile.h"
3337+
3338+#define TOTEM_MAX_RECENT_ITEM_LEN 40
3339+
3340+/* Callback functions for GtkBuilder */
3341+G_MODULE_EXPORT void open_action_callback (GtkAction *action, Totem *totem);
3342+G_MODULE_EXPORT void open_location_action_callback (GtkAction *action, Totem *totem);
3343+G_MODULE_EXPORT void eject_action_callback (GtkAction *action, Totem *totem);
3344+G_MODULE_EXPORT void properties_action_callback (GtkAction *action, Totem *totem);
3345+G_MODULE_EXPORT void play_action_callback (GtkAction *action, Totem *totem);
3346+G_MODULE_EXPORT void quit_action_callback (GtkAction *action, Totem *totem);
3347+G_MODULE_EXPORT void preferences_action_callback (GtkAction *action, Totem *totem);
3348+G_MODULE_EXPORT void fullscreen_action_callback (GtkAction *action, Totem *totem);
3349+G_MODULE_EXPORT void zoom_1_2_action_callback (GtkAction *action, Totem *totem);
3350+G_MODULE_EXPORT void zoom_1_1_action_callback (GtkAction *action, Totem *totem);
3351+G_MODULE_EXPORT void zoom_2_1_action_callback (GtkAction *action, Totem *totem);
3352+G_MODULE_EXPORT void zoom_in_action_callback (GtkAction *action, Totem *totem);
3353+G_MODULE_EXPORT void zoom_reset_action_callback (GtkAction *action, Totem *totem);
3354+G_MODULE_EXPORT void zoom_out_action_callback (GtkAction *action, Totem *totem);
3355+G_MODULE_EXPORT void next_angle_action_callback (GtkAction *action, Totem *totem);
3356+G_MODULE_EXPORT void dvd_root_menu_action_callback (GtkAction *action, Totem *totem);
3357+G_MODULE_EXPORT void dvd_title_menu_action_callback (GtkAction *action, Totem *totem);
3358+G_MODULE_EXPORT void dvd_audio_menu_action_callback (GtkAction *action, Totem *totem);
3359+G_MODULE_EXPORT void dvd_angle_menu_action_callback (GtkAction *action, Totem *totem);
3360+G_MODULE_EXPORT void dvd_chapter_menu_action_callback (GtkAction *action, Totem *totem);
3361+G_MODULE_EXPORT void next_chapter_action_callback (GtkAction *action, Totem *totem);
3362+G_MODULE_EXPORT void previous_chapter_action_callback (GtkAction *action, Totem *totem);
3363+G_MODULE_EXPORT void skip_forward_action_callback (GtkAction *action, Totem *totem);
3364+G_MODULE_EXPORT void skip_backwards_action_callback (GtkAction *action, Totem *totem);
3365+G_MODULE_EXPORT void volume_up_action_callback (GtkAction *action, Totem *totem);
3366+G_MODULE_EXPORT void volume_down_action_callback (GtkAction *action, Totem *totem);
3367+G_MODULE_EXPORT void contents_action_callback (GtkAction *action, Totem *totem);
3368+G_MODULE_EXPORT void about_action_callback (GtkAction *action, Totem *totem);
3369+G_MODULE_EXPORT void plugins_action_callback (GtkAction *action, Totem *totem);
3370+G_MODULE_EXPORT void repeat_mode_action_callback (GtkToggleAction *action, Totem *totem);
3371+G_MODULE_EXPORT void shuffle_mode_action_callback (GtkToggleAction *action, Totem *totem);
3372+G_MODULE_EXPORT void show_controls_action_callback (GtkToggleAction *action, Totem *totem);
3373+G_MODULE_EXPORT void show_sidebar_action_callback (GtkToggleAction *action, Totem *totem);
3374+G_MODULE_EXPORT void aspect_ratio_changed_callback (GtkRadioAction *action, GtkRadioAction *current, Totem *totem);
3375+G_MODULE_EXPORT void select_subtitle_action_callback (GtkAction *action, Totem *totem);
3376+G_MODULE_EXPORT void clear_playlist_action_callback (GtkAction *action, Totem *totem);
3377+
3378+/* Helper function to escape underscores in labels
3379+ * before putting them in menu items */
3380+static char *
3381+escape_label_for_menu (const char *name)
3382+{
3383+ char *new, **a;
3384+
3385+ a = g_strsplit (name, "_", -1);
3386+ new = g_strjoinv ("__", a);
3387+ g_strfreev (a);
3388+
3389+ return new;
3390+}
3391+
3392+/* Subtitle and language menus */
3393+static void
3394+totem_g_list_deep_free (GList *list)
3395+{
3396+ GList *l;
3397+
3398+ for (l = list; l != NULL; l = l->next)
3399+ g_free (l->data);
3400+ g_list_free (list);
3401+}
3402+
3403+static void
3404+subtitles_changed_callback (GtkRadioAction *action, GtkRadioAction *current,
3405+ Totem *totem)
3406+{
3407+ int rank;
3408+
3409+ rank = gtk_radio_action_get_current_value (current);
3410+
3411+ bacon_video_widget_set_subtitle (totem->bvw, rank);
3412+}
3413+
3414+
3415+static void
3416+languages_changed_callback (GtkRadioAction *action, GtkRadioAction *current,
3417+ Totem *totem)
3418+{
3419+ int rank;
3420+
3421+ rank = gtk_radio_action_get_current_value (current);
3422+
3423+ bacon_video_widget_set_language (totem->bvw, rank);
3424+}
3425+
3426+static GtkAction *
3427+add_lang_action (Totem *totem, GtkActionGroup *action_group, guint ui_id,
3428+ const char **paths, const char *prefix, const char *lang,
3429+ int lang_id, int lang_index, GSList **group)
3430+{
3431+ const char *full_lang;
3432+ char *label;
3433+ char *name;
3434+ GtkAction *action;
3435+ guint i;
3436+
3437+ full_lang = gst_tag_get_language_name (lang);
3438+
3439+ if (lang_index > 1) {
3440+ char *num_lang;
3441+
3442+ num_lang = g_strdup_printf ("%s #%u",
3443+ full_lang ? full_lang : lang,
3444+ lang_index);
3445+ label = escape_label_for_menu (num_lang);
3446+ g_free (num_lang);
3447+ } else {
3448+ label = escape_label_for_menu (full_lang ? full_lang : lang);
3449+ }
3450+
3451+ name = g_strdup_printf ("%s-%d", prefix, lang_id);
3452+
3453+ action = g_object_new (GTK_TYPE_RADIO_ACTION,
3454+ "name", name,
3455+ "label", label,
3456+ "value", lang_id,
3457+ NULL);
3458+ g_free (label);
3459+
3460+ gtk_radio_action_set_group (GTK_RADIO_ACTION (action), *group);
3461+ *group = gtk_radio_action_get_group (GTK_RADIO_ACTION (action));
3462+ gtk_action_group_add_action (action_group, action);
3463+ g_object_unref (action);
3464+ for (i = 0; paths[i] != NULL; i++) {
3465+ gtk_ui_manager_add_ui (totem->ui_manager, ui_id,
3466+ paths[i], name, name, GTK_UI_MANAGER_MENUITEM, FALSE);
3467+ }
3468+ g_free (name);
3469+
3470+ return action;
3471+}
3472+
3473+static GtkAction *
3474+create_lang_actions (Totem *totem, GtkActionGroup *action_group, guint ui_id,
3475+ const char **paths, const char *prefix, GList *list,
3476+ gboolean is_lang)
3477+{
3478+ GtkAction *action = NULL;
3479+ unsigned int i, *hash_value;
3480+ GList *l;
3481+ GSList *group = NULL;
3482+ GHashTable *lookup;
3483+ char *action_data;
3484+
3485+ if (is_lang == FALSE) {
3486+ add_lang_action (totem, action_group, ui_id, paths, prefix,
3487+ /* Translators: an entry in the "Languages" menu, used to choose the audio language of a DVD */
3488+ _("None"), -2, 0, &group);
3489+ }
3490+
3491+ action = add_lang_action (totem, action_group, ui_id, paths, prefix,
3492+ /* Translators: an entry in the "Languages" menu, used to choose the audio language of a DVD */
3493+ C_("Language", "Auto"), -1, 0, &group);
3494+
3495+ i = 0;
3496+ lookup = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, NULL);
3497+
3498+ for (l = list; l != NULL; l = l->next)
3499+ {
3500+ guint num;
3501+
3502+ hash_value = g_hash_table_lookup (lookup, l->data);
3503+ if (hash_value == NULL) {
3504+ num = 0;
3505+ action_data = g_strdup (l->data);
3506+ g_hash_table_insert (lookup, l->data, GINT_TO_POINTER (1));
3507+ } else {
3508+ num = GPOINTER_TO_INT (hash_value);
3509+ action_data = g_strdup (l->data);
3510+ g_hash_table_replace (lookup, l->data, GINT_TO_POINTER (num + 1));
3511+ }
3512+
3513+ add_lang_action (totem, action_group, ui_id, paths, prefix,
3514+ action_data, i, num + 1, &group);
3515+ g_free (action_data);
3516+ i++;
3517+ }
3518+
3519+ g_hash_table_destroy (lookup);
3520+
3521+ return action;
3522+}
3523+
3524+static gboolean
3525+totem_sublang_equal_lists (GList *orig, GList *new)
3526+{
3527+ GList *o, *n;
3528+ gboolean retval;
3529+
3530+ if ((orig == NULL && new != NULL) || (orig != NULL && new == NULL))
3531+ return FALSE;
3532+ if (orig == NULL && new == NULL)
3533+ return TRUE;
3534+
3535+ if (g_list_length (orig) != g_list_length (new))
3536+ return FALSE;
3537+
3538+ retval = TRUE;
3539+ o = orig;
3540+ n = new;
3541+ while (o != NULL && n != NULL && retval != FALSE)
3542+ {
3543+ if (g_str_equal (o->data, n->data) == FALSE)
3544+ retval = FALSE;
3545+ o = g_list_next (o);
3546+ n = g_list_next (n);
3547+ }
3548+
3549+ return retval;
3550+}
3551+
3552+static void
3553+totem_languages_update (Totem *totem, GList *list)
3554+{
3555+ GtkAction *action;
3556+ const char *paths[3] = { "/tmw-menubar/sound/languages/placeholder", "/totem-main-popup/popup-languages/placeholder", NULL };
3557+ int current;
3558+
3559+ /* Remove old UI */
3560+ gtk_ui_manager_remove_ui (totem->ui_manager, totem->languages_ui_id);
3561+ gtk_ui_manager_ensure_update (totem->ui_manager);
3562+
3563+ /* Create new ActionGroup */
3564+ if (totem->languages_action_group) {
3565+ gtk_ui_manager_remove_action_group (totem->ui_manager,
3566+ totem->languages_action_group);
3567+ g_object_unref (totem->languages_action_group);
3568+ }
3569+ totem->languages_action_group = gtk_action_group_new ("languages-action-group");
3570+ gtk_ui_manager_insert_action_group (totem->ui_manager,
3571+ totem->languages_action_group, -1);
3572+
3573+ if (list != NULL) {
3574+ action = create_lang_actions (totem, totem->languages_action_group,
3575+ totem->languages_ui_id,
3576+ paths,
3577+ "languages", list, TRUE);
3578+ gtk_ui_manager_ensure_update (totem->ui_manager);
3579+
3580+ current = bacon_video_widget_get_language (totem->bvw);
3581+ gtk_radio_action_set_current_value (GTK_RADIO_ACTION (action),
3582+ current);
3583+ g_signal_connect (G_OBJECT (action), "changed",
3584+ G_CALLBACK (languages_changed_callback), totem);
3585+ }
3586+
3587+ totem_g_list_deep_free (totem->language_list);
3588+ totem->language_list = list;
3589+}
3590+
3591+static void
3592+totem_subtitles_update (Totem *totem, GList *list)
3593+{
3594+ GtkAction *action;
3595+ int current;
3596+ const char *paths[3] = { "/tmw-menubar/view/subtitles/placeholder", "/totem-main-popup/popup-subtitles/placeholder", NULL };
3597+
3598+ /* Remove old UI */
3599+ gtk_ui_manager_remove_ui (totem->ui_manager, totem->subtitles_ui_id);
3600+ gtk_ui_manager_ensure_update (totem->ui_manager);
3601+
3602+ /* Create new ActionGroup */
3603+ if (totem->subtitles_action_group) {
3604+ gtk_ui_manager_remove_action_group (totem->ui_manager,
3605+ totem->subtitles_action_group);
3606+ g_object_unref (totem->subtitles_action_group);
3607+ }
3608+ totem->subtitles_action_group = gtk_action_group_new ("subtitles-action-group");
3609+ gtk_ui_manager_insert_action_group (totem->ui_manager,
3610+ totem->subtitles_action_group, -1);
3611+
3612+
3613+ if (list != NULL) {
3614+ action = create_lang_actions (totem, totem->subtitles_action_group,
3615+ totem->subtitles_ui_id,
3616+ paths,
3617+ "subtitles", list, FALSE);
3618+ gtk_ui_manager_ensure_update (totem->ui_manager);
3619+
3620+ current = bacon_video_widget_get_subtitle (totem->bvw);
3621+ gtk_radio_action_set_current_value (GTK_RADIO_ACTION (action),
3622+ current);
3623+ g_signal_connect (G_OBJECT (action), "changed",
3624+ G_CALLBACK (subtitles_changed_callback), totem);
3625+ }
3626+
3627+ totem_g_list_deep_free (totem->subtitles_list);
3628+ totem->subtitles_list = list;
3629+}
3630+
3631+void
3632+totem_sublang_update (Totem *totem)
3633+{
3634+ GList *list;
3635+
3636+ list = bacon_video_widget_get_languages (totem->bvw);
3637+ if (totem_sublang_equal_lists (totem->language_list, list) == TRUE) {
3638+ totem_g_list_deep_free (list);
3639+ } else {
3640+ totem_languages_update (totem, list);
3641+ }
3642+
3643+ list = bacon_video_widget_get_subtitles (totem->bvw);
3644+ if (totem_sublang_equal_lists (totem->subtitles_list, list) == TRUE) {
3645+ totem_g_list_deep_free (list);
3646+ } else {
3647+ totem_subtitles_update (totem, list);
3648+ }
3649+}
3650+
3651+void
3652+totem_sublang_exit (Totem *totem)
3653+{
3654+ totem_g_list_deep_free (totem->subtitles_list);
3655+ totem_g_list_deep_free (totem->language_list);
3656+}
3657+
3658+/* Recent files */
3659+static void
3660+connect_proxy_cb (GtkActionGroup *action_group,
3661+ GtkAction *action,
3662+ GtkWidget *proxy,
3663+ gpointer data)
3664+{
3665+ GtkLabel *label;
3666+
3667+ if (!GTK_IS_MENU_ITEM (proxy))
3668+ return;
3669+
3670+ label = GTK_LABEL (gtk_bin_get_child (GTK_BIN (proxy)));
3671+
3672+ gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_MIDDLE);
3673+ gtk_label_set_max_width_chars (label,TOTEM_MAX_RECENT_ITEM_LEN);
3674+}
3675+
3676+static void
3677+on_recent_file_item_activated (GtkAction *action,
3678+ Totem *totem)
3679+{
3680+ GtkRecentInfo *recent_info;
3681+ const gchar *uri, *display_name;
3682+
3683+ recent_info = g_object_get_data (G_OBJECT (action), "recent-info");
3684+ uri = gtk_recent_info_get_uri (recent_info);
3685+ display_name = gtk_recent_info_get_display_name (recent_info);
3686+
3687+ totem_add_to_playlist_and_play (totem, uri, display_name, FALSE);
3688+}
3689+
3690+static gint
3691+totem_compare_recent_items (GtkRecentInfo *a, GtkRecentInfo *b)
3692+{
3693+ gboolean has_totem_a, has_totem_b;
3694+
3695+ has_totem_a = gtk_recent_info_has_group (a, "Totem");
3696+ has_totem_b = gtk_recent_info_has_group (b, "Totem");
3697+
3698+ if (has_totem_a && has_totem_b) {
3699+ time_t time_a, time_b;
3700+
3701+ time_a = gtk_recent_info_get_modified (a);
3702+ time_b = gtk_recent_info_get_modified (b);
3703+
3704+ return (time_b - time_a);
3705+ } else if (has_totem_a) {
3706+ return -1;
3707+ } else if (has_totem_b) {
3708+ return 1;
3709+ }
3710+
3711+ return 0;
3712+}
3713+
3714+static void
3715+totem_recent_manager_changed_callback (GtkRecentManager *recent_manager, Totem *totem)
3716+{
3717+ GList *items, *totem_items, *l;
3718+ guint n_items = 0;
3719+
3720+ if (totem->recent_ui_id != 0) {
3721+ gtk_ui_manager_remove_ui (totem->ui_manager, totem->recent_ui_id);
3722+ gtk_ui_manager_ensure_update (totem->ui_manager);
3723+ }
3724+
3725+ if (totem->recent_action_group) {
3726+ gtk_ui_manager_remove_action_group (totem->ui_manager,
3727+ totem->recent_action_group);
3728+ }
3729+
3730+ totem->recent_action_group = gtk_action_group_new ("recent-action-group");
3731+ g_signal_connect (totem->recent_action_group, "connect-proxy",
3732+ G_CALLBACK (connect_proxy_cb), NULL);
3733+ gtk_ui_manager_insert_action_group (totem->ui_manager,
3734+ totem->recent_action_group, -1);
3735+ g_object_unref (totem->recent_action_group);
3736+
3737+ totem->recent_ui_id = gtk_ui_manager_new_merge_id (totem->ui_manager);
3738+ items = gtk_recent_manager_get_items (recent_manager);
3739+
3740+ /* Remove the non-Totem items */
3741+ totem_items = NULL;
3742+ for (l = items; l && l->data; l = l->next) {
3743+ GtkRecentInfo *info;
3744+
3745+ info = (GtkRecentInfo *) l->data;
3746+
3747+ if (gtk_recent_info_has_group (info, "Totem")) {
3748+ gtk_recent_info_ref (info);
3749+ totem_items = g_list_prepend (totem_items, info);
3750+ }
3751+ }
3752+ g_list_foreach (items, (GFunc) gtk_recent_info_unref, NULL);
3753+ g_list_free (items);
3754+
3755+ totem_items = g_list_sort (totem_items, (GCompareFunc) totem_compare_recent_items);
3756+
3757+ for (l = totem_items; l && l->data; l = l->next) {
3758+ GtkRecentInfo *info;
3759+ GtkAction *action;
3760+ char action_name[32];
3761+ const char *display_name;
3762+ char *label;
3763+ char *escaped_label;
3764+ const gchar *mime_type;
3765+ gchar *content_type;
3766+ GIcon *icon = NULL;
3767+
3768+ info = (GtkRecentInfo *) l->data;
3769+
3770+ if (!gtk_recent_info_has_group (info, "Totem"))
3771+ continue;
3772+
3773+ g_snprintf (action_name, sizeof (action_name), "RecentFile%u", n_items);
3774+
3775+ display_name = gtk_recent_info_get_display_name (info);
3776+ escaped_label = escape_label_for_menu (display_name);
3777+
3778+ label = g_strdup_printf ("_%d. %s", n_items + 1, escaped_label);
3779+ g_free (escaped_label);
3780+
3781+ action = gtk_action_new (action_name, label, NULL, NULL);
3782+ g_object_set_data_full (G_OBJECT (action), "recent-info",
3783+ gtk_recent_info_ref (info),
3784+ (GDestroyNotify) gtk_recent_info_unref);
3785+ g_signal_connect (G_OBJECT (action), "activate",
3786+ G_CALLBACK (on_recent_file_item_activated),
3787+ totem);
3788+
3789+ mime_type = gtk_recent_info_get_mime_type (info);
3790+ content_type = g_content_type_from_mime_type (mime_type);
3791+ if (content_type != NULL) {
3792+ icon = g_content_type_get_icon (content_type);
3793+ g_free (content_type);
3794+ }
3795+ if (icon != NULL) {
3796+ gtk_action_set_gicon (action, icon);
3797+ gtk_action_set_always_show_image (action, TRUE);
3798+ g_object_unref (icon);
3799+ }
3800+
3801+ gtk_action_group_add_action (totem->recent_action_group,
3802+ action);
3803+ g_object_unref (action);
3804+
3805+ gtk_ui_manager_add_ui (totem->ui_manager, totem->recent_ui_id,
3806+ "/tmw-menubar/movie/recent-placeholder",
3807+ label, action_name, GTK_UI_MANAGER_MENUITEM,
3808+ FALSE);
3809+ g_free (label);
3810+
3811+ if (++n_items == 5)
3812+ break;
3813+ }
3814+
3815+ g_list_foreach (totem_items, (GFunc) gtk_recent_info_unref, NULL);
3816+ g_list_free (totem_items);
3817+}
3818+
3819+void
3820+totem_setup_recent (Totem *totem)
3821+{
3822+ totem->recent_manager = gtk_recent_manager_get_default ();
3823+ totem->recent_action_group = NULL;
3824+ totem->recent_ui_id = 0;
3825+
3826+ g_signal_connect (G_OBJECT (totem->recent_manager), "changed",
3827+ G_CALLBACK (totem_recent_manager_changed_callback),
3828+ totem);
3829+
3830+ totem_recent_manager_changed_callback (totem->recent_manager, totem);
3831+}
3832+
3833+static void
3834+recent_info_cb (GFile *file,
3835+ GAsyncResult *res,
3836+ Totem *totem)
3837+{
3838+ GtkRecentData data;
3839+ char *groups[] = { NULL, NULL };
3840+ GFileInfo *file_info;
3841+ const char *uri, *display_name;
3842+
3843+ memset (&data, 0, sizeof (data));
3844+
3845+ file_info = g_file_query_info_finish (file, res, NULL);
3846+ uri = g_object_get_data (G_OBJECT (file), "uri");
3847+ display_name = g_object_get_data (G_OBJECT (file), "display_name");
3848+
3849+ /* Probably an unsupported URI scheme */
3850+ if (file_info == NULL) {
3851+ data.display_name = g_strdup (display_name);
3852+ /* Bogus mime-type, we just want it added */
3853+ data.mime_type = g_strdup ("video/x-totem-stream");
3854+ groups[0] = (gchar*) "TotemStreams";
3855+ } else {
3856+ data.mime_type = g_strdup (g_file_info_get_content_type (file_info));
3857+ data.display_name = g_strdup (g_file_info_get_display_name (file_info));
3858+ g_object_unref (file_info);
3859+ groups[0] = (gchar*) "Totem";
3860+ }
3861+
3862+ data.app_name = g_strdup (g_get_application_name ());
3863+ data.app_exec = g_strjoin (" ", g_get_prgname (), "%u", NULL);
3864+ data.groups = groups;
3865+ if (gtk_recent_manager_add_full (totem->recent_manager,
3866+ uri, &data) == FALSE) {
3867+ g_warning ("Couldn't add recent file for '%s'", uri);
3868+ }
3869+
3870+ g_free (data.display_name);
3871+ g_free (data.mime_type);
3872+ g_free (data.app_name);
3873+ g_free (data.app_exec);
3874+
3875+ g_object_unref (file);
3876+}
3877+
3878+void
3879+totem_action_add_recent (Totem *totem,
3880+ const char *uri,
3881+ const char *display_name,
3882+ const char *content_type)
3883+{
3884+ GFile *file;
3885+
3886+ if (totem_is_special_mrl (uri) != FALSE)
3887+ return;
3888+
3889+ /* If we already have a content-type, the display_name is
3890+ * probably decent as well */
3891+ if (content_type != NULL) {
3892+ GtkRecentData data;
3893+ char *groups[] = { NULL, NULL };
3894+
3895+ memset (&data, 0, sizeof (data));
3896+
3897+ data.mime_type = (char *) content_type;
3898+ data.display_name = (char *) display_name;
3899+ groups[0] = (char*) "Totem";
3900+ data.app_name = (char *) g_get_application_name ();
3901+ data.app_exec = g_strjoin (" ", g_get_prgname (), "%u", NULL);
3902+ data.groups = groups;
3903+
3904+ if (gtk_recent_manager_add_full (totem->recent_manager,
3905+ uri, &data) == FALSE) {
3906+ g_warning ("Couldn't add recent file for '%s'", uri);
3907+ }
3908+ g_free (data.app_exec);
3909+
3910+ return;
3911+ }
3912+
3913+ file = g_file_new_for_uri (uri);
3914+ g_object_set_data_full (G_OBJECT (file), "uri", g_strdup (uri), g_free);
3915+ g_object_set_data_full (G_OBJECT (file), "display_name", g_strdup (display_name), g_free);
3916+ g_file_query_info_async (file,
3917+ G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "," G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
3918+ G_FILE_QUERY_INFO_NONE, 0, NULL, (GAsyncReadyCallback) recent_info_cb, totem);
3919+}
3920+
3921+/* Play Disc menu items */
3922+
3923+static void
3924+on_play_disc_activate (GtkAction *action, Totem *totem)
3925+{
3926+ char *device_path;
3927+
3928+ device_path = g_object_get_data (G_OBJECT (action), "device_path");
3929+ totem_action_play_media_device (totem, device_path);
3930+}
3931+
3932+static const char *
3933+get_icon_name_for_gicon (GtkIconTheme *theme,
3934+ GIcon *icon)
3935+{
3936+ const char * const *icon_names;
3937+ const char *icon_name;
3938+ guint j;
3939+
3940+ icon_name = NULL;
3941+
3942+ if (G_IS_EMBLEMED_ICON (icon) != FALSE) {
3943+ GIcon *new_icon;
3944+ new_icon = g_emblemed_icon_get_icon (G_EMBLEMED_ICON (icon));
3945+ g_object_unref (icon);
3946+ icon = g_object_ref (new_icon);
3947+ }
3948+
3949+ if (G_IS_THEMED_ICON (icon)) {
3950+ icon_names = g_themed_icon_get_names (G_THEMED_ICON (icon));
3951+
3952+ for (j = 0; icon_names[j] != NULL; j++) {
3953+ icon_name = icon_names[j];
3954+ if (gtk_icon_theme_has_icon (theme, icon_name) != FALSE)
3955+ break;
3956+ }
3957+ }
3958+
3959+ return icon_name;
3960+}
3961+
3962+static char *
3963+unescape_archive_name (GFile *root)
3964+{
3965+ char *uri;
3966+ guint len;
3967+ char *escape1, *escape2;
3968+
3969+ uri = g_file_get_uri (root);
3970+
3971+ /* Remove trailing slash */
3972+ len = strlen (uri);
3973+ if (uri[len - 1] == '/')
3974+ uri[len - 1] = '\0';
3975+
3976+ /* Unescape the path */
3977+ escape1 = g_uri_unescape_string (uri + strlen ("archive://"), NULL);
3978+ escape2 = g_uri_unescape_string (escape1, NULL);
3979+ g_free (escape1);
3980+ g_free (uri);
3981+
3982+ return escape2;
3983+}
3984+
3985+static void
3986+add_mount_to_menu (GMount *mount,
3987+ GtkIconTheme *theme,
3988+ guint position,
3989+ Totem *totem)
3990+{
3991+ char *name, *escaped_name, *label;
3992+ GtkAction *action;
3993+ GIcon *icon;
3994+ const char *icon_name;
3995+ char *device_path;
3996+
3997+ GVolume *volume;
3998+ GFile *root, *iso;
3999+ char **content_types;
4000+ gboolean has_content;
4001+ guint i;
4002+
4003+ /* Check whether we have an archive mount */
4004+ volume = g_mount_get_volume (mount);
4005+ if (volume != NULL) {
4006+ g_object_unref (volume);
4007+ return;
4008+ }
4009+
4010+ root = g_mount_get_root (mount);
4011+ if (g_file_has_uri_scheme (root, "archive") == FALSE) {
4012+ g_object_unref (root);
4013+ return;
4014+ }
4015+
4016+ /* Check whether it's a DVD or VCD image */
4017+ content_types = g_content_type_guess_for_tree (root);
4018+ if (content_types == NULL ||
4019+ g_strv_length (content_types) == 0) {
4020+ g_strfreev (content_types);
4021+ g_object_unref (root);
4022+ return;
4023+ }
4024+
4025+ has_content = FALSE;
4026+ for (i = 0; content_types[i] != NULL; i++) {
4027+ /* XXX: Keep in sync with mime-type-list.txt */
4028+ if (g_str_equal (content_types[i], "x-content/video-dvd") ||
4029+ g_str_equal (content_types[i], "x-content/video-vcd") ||
4030+ g_str_equal (content_types[i], "x-content/video-svcd")) {
4031+ has_content = TRUE;
4032+ break;
4033+ }
4034+ }
4035+ g_strfreev (content_types);
4036+
4037+ if (has_content == FALSE) {
4038+ g_object_unref (root);
4039+ return;
4040+ }
4041+
4042+ device_path = unescape_archive_name (root);
4043+ g_object_unref (root);
4044+
4045+ /* And ensure it's a local path */
4046+ iso = g_file_new_for_uri (device_path);
4047+ g_free (device_path);
4048+ device_path = g_file_get_path (iso);
4049+ g_object_unref (iso);
4050+
4051+ /* Work out an icon to display */
4052+ icon = g_mount_get_icon (mount);
4053+ icon_name = get_icon_name_for_gicon (theme, icon);
4054+
4055+ /* Get the mount's pretty name for the menu label */
4056+ name = g_mount_get_name (mount);
4057+ g_strstrip (name);
4058+ escaped_name = escape_label_for_menu (name);
4059+ g_free (name);
4060+ /* Translators:
4061+ * This is not a JPEG image, but a disc image, for example,
4062+ * an ISO file */
4063+ label = g_strdup_printf (_("Play Image '%s'"), escaped_name);
4064+ g_free (escaped_name);
4065+
4066+ name = g_strdup_printf (_("device%d"), position);
4067+
4068+ action = gtk_action_new (name, label, NULL, NULL);
4069+ g_object_set (G_OBJECT (action),
4070+ "icon-name", icon_name, NULL);
4071+ gtk_action_set_always_show_image (action, TRUE);
4072+ gtk_action_group_add_action (totem->devices_action_group, action);
4073+ g_object_unref (action);
4074+
4075+ gtk_ui_manager_add_ui (totem->ui_manager, totem->devices_ui_id,
4076+ "/tmw-menubar/movie/devices-placeholder", name, name,
4077+ GTK_UI_MANAGER_MENUITEM, FALSE);
4078+
4079+ g_free (name);
4080+ g_free (label);
4081+ g_object_unref (icon);
4082+
4083+ g_object_set_data_full (G_OBJECT (action),
4084+ "device_path", device_path,
4085+ (GDestroyNotify) g_free);
4086+
4087+ g_signal_connect (G_OBJECT (action), "activate",
4088+ G_CALLBACK (on_play_disc_activate), totem);
4089+}
4090+
4091+static void
4092+add_volume_to_menu (GVolume *volume,
4093+ GDrive *drive,
4094+ GtkIconTheme *theme,
4095+ guint position,
4096+ Totem *totem)
4097+{
4098+ char *name, *escaped_name, *label;
4099+ GtkAction *action;
4100+ gboolean disabled;
4101+ GIcon *icon;
4102+ const char *icon_name;
4103+ char *device_path;
4104+ GtkWidget *menu_item;
4105+ char *menu_item_path;
4106+
4107+ disabled = FALSE;
4108+ device_path = NULL;
4109+
4110+ /* Add devices with blank CDs and audio CDs in them, but disable them */
4111+ if (drive != NULL) {
4112+ device_path = g_volume_get_identifier (volume, G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);
4113+ if (device_path == NULL)
4114+ return;
4115+ }
4116+
4117+ /* Check whether we have a media... */
4118+ if (drive != NULL &&
4119+ g_drive_has_media (drive) == FALSE) {
4120+ disabled = TRUE;
4121+ } else {
4122+ /* ... Or an audio CD or a blank media */
4123+ GMount *mount;
4124+ GFile *root;
4125+
4126+ mount = g_volume_get_mount (volume);
4127+ if (mount != NULL) {
4128+ root = g_mount_get_root (mount);
4129+ g_object_unref (mount);
4130+
4131+ if (g_file_has_uri_scheme (root, "burn") != FALSE || g_file_has_uri_scheme (root, "cdda") != FALSE)
4132+ disabled = TRUE;
4133+ g_object_unref (root);
4134+ }
4135+ }
4136+
4137+ /* Work out an icon to display */
4138+ icon = g_volume_get_icon (volume);
4139+ icon_name = get_icon_name_for_gicon (theme, icon);
4140+
4141+ /* Get the volume's pretty name for the menu label */
4142+ name = g_volume_get_name (volume);
4143+ g_strstrip (name);
4144+ escaped_name = escape_label_for_menu (name);
4145+ g_free (name);
4146+ label = g_strdup_printf (_("Play Disc '%s'"), escaped_name);
4147+ g_free (escaped_name);
4148+
4149+ name = g_strdup_printf (_("device%d"), position);
4150+
4151+ action = gtk_action_new (name, label, NULL, NULL);
4152+ g_object_set (G_OBJECT (action),
4153+ "icon-name", icon_name,
4154+ "sensitive", !disabled, NULL);
4155+ gtk_action_group_add_action (totem->devices_action_group, action);
4156+ g_object_unref (action);
4157+
4158+ gtk_ui_manager_add_ui (totem->ui_manager, totem->devices_ui_id,
4159+ "/tmw-menubar/movie/devices-placeholder", name, name,
4160+ GTK_UI_MANAGER_MENUITEM, FALSE);
4161+
4162+ /* TODO: This can be made cleaner once bug #589842 is fixed */
4163+ menu_item_path = g_strdup_printf ("/tmw-menubar/movie/devices-placeholder/%s", name);
4164+ menu_item = gtk_ui_manager_get_widget (totem->ui_manager, menu_item_path);
4165+ g_free (menu_item_path);
4166+
4167+ if (menu_item != NULL)
4168+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menu_item), TRUE);
4169+
4170+ g_free (name);
4171+ g_free (label);
4172+ g_object_unref (icon);
4173+
4174+ if (disabled != FALSE) {
4175+ g_free (device_path);
4176+ return;
4177+ }
4178+
4179+ g_object_set_data_full (G_OBJECT (action),
4180+ "device_path", device_path,
4181+ (GDestroyNotify) g_free);
4182+
4183+ g_signal_connect (G_OBJECT (action), "activate",
4184+ G_CALLBACK (on_play_disc_activate), totem);
4185+}
4186+
4187+static void
4188+add_drive_to_menu (GDrive *drive,
4189+ GtkIconTheme *theme,
4190+ guint position,
4191+ Totem *totem)
4192+{
4193+ GList *volumes, *i;
4194+
4195+ /* FIXME: We used to explicitly check whether it was a CD/DVD drive
4196+ * Use:
4197+ * udi = g_volume_get_identifier (i->data, G_VOLUME_IDENTIFIER_KIND_HAL_UDI); */
4198+ if (g_drive_can_eject (drive) == FALSE)
4199+ return;
4200+
4201+ /* Repeat for all the drive's volumes */
4202+ volumes = g_drive_get_volumes (drive);
4203+
4204+ for (i = volumes; i != NULL; i = i->next) {
4205+ GVolume *volume = i->data;
4206+ add_volume_to_menu (volume, drive, theme, position, totem);
4207+ g_object_unref (volume);
4208+ }
4209+
4210+ g_list_free (volumes);
4211+}
4212+
4213+static void
4214+update_drive_menu_items (GtkMenuItem *movie_menuitem, Totem *totem)
4215+{
4216+ GList *drives, *mounts, *i;
4217+ GtkIconTheme *theme;
4218+ guint position;
4219+
4220+ /* Add any suitable devices to the menu */
4221+ position = 0;
4222+
4223+ theme = gtk_icon_theme_get_default ();
4224+
4225+ drives = g_volume_monitor_get_connected_drives (totem->monitor);
4226+ for (i = drives; i != NULL; i = i->next) {
4227+ GDrive *drive = i->data;
4228+
4229+ position++;
4230+ add_drive_to_menu (drive, theme, position, totem);
4231+ g_object_unref (drive);
4232+ }
4233+ g_list_free (drives);
4234+
4235+ /* Look for mounted archives */
4236+ mounts = g_volume_monitor_get_mounts (totem->monitor);
4237+ for (i = mounts; i != NULL; i = i->next) {
4238+ GMount *mount = i->data;
4239+
4240+ position++;
4241+ add_mount_to_menu (mount, theme, position, totem);
4242+ g_object_unref (mount);
4243+ }
4244+ g_list_free (mounts);
4245+
4246+ totem->drives_changed = FALSE;
4247+}
4248+
4249+static void
4250+on_movie_menu_select (GtkMenuItem *movie_menuitem, Totem *totem)
4251+{
4252+ if (totem->drives_changed == FALSE)
4253+ return;
4254+
4255+ /* Remove old UI */
4256+ gtk_ui_manager_remove_ui (totem->ui_manager, totem->devices_ui_id);
4257+ gtk_ui_manager_ensure_update (totem->ui_manager);
4258+
4259+ /* Create new ActionGroup */
4260+ if (totem->devices_action_group) {
4261+ gtk_ui_manager_remove_action_group (totem->ui_manager,
4262+ totem->devices_action_group);
4263+ g_object_unref (totem->devices_action_group);
4264+ }
4265+ totem->devices_action_group = gtk_action_group_new ("devices-action-group");
4266+ gtk_ui_manager_insert_action_group (totem->ui_manager,
4267+ totem->devices_action_group, -1);
4268+
4269+ update_drive_menu_items (movie_menuitem, totem);
4270+
4271+ gtk_ui_manager_ensure_update (totem->ui_manager);
4272+}
4273+
4274+static void
4275+on_g_volume_monitor_event (GVolumeMonitor *monitor,
4276+ gpointer *device,
4277+ Totem *totem)
4278+{
4279+ totem->drives_changed = TRUE;
4280+}
4281+
4282+void
4283+totem_setup_play_disc (Totem *totem)
4284+{
4285+ GtkWidget *item;
4286+
4287+ item = gtk_ui_manager_get_widget (totem->ui_manager, "/tmw-menubar/movie");
4288+ g_signal_connect (G_OBJECT (item), "select",
4289+ G_CALLBACK (on_movie_menu_select), totem);
4290+
4291+ g_signal_connect (G_OBJECT (totem->monitor),
4292+ "volume-added",
4293+ G_CALLBACK (on_g_volume_monitor_event), totem);
4294+ g_signal_connect (G_OBJECT (totem->monitor),
4295+ "volume-removed",
4296+ G_CALLBACK (on_g_volume_monitor_event), totem);
4297+ g_signal_connect (G_OBJECT (totem->monitor),
4298+ "mount-added",
4299+ G_CALLBACK (on_g_volume_monitor_event), totem);
4300+ g_signal_connect (G_OBJECT (totem->monitor),
4301+ "mount-removed",
4302+ G_CALLBACK (on_g_volume_monitor_event), totem);
4303+
4304+ totem->drives_changed = TRUE;
4305+}
4306+
4307+void
4308+open_action_callback (GtkAction *action, Totem *totem)
4309+{
4310+ totem_action_open (totem);
4311+}
4312+
4313+void
4314+open_location_action_callback (GtkAction *action, Totem *totem)
4315+{
4316+ totem_action_open_location (totem);
4317+}
4318+
4319+void
4320+eject_action_callback (GtkAction *action, Totem *totem)
4321+{
4322+ totem_action_eject (totem);
4323+}
4324+
4325+void
4326+properties_action_callback (GtkAction *action, Totem *totem)
4327+{
4328+ totem_action_show_properties (totem);
4329+}
4330+
4331+void
4332+play_action_callback (GtkAction *action, Totem *totem)
4333+{
4334+ totem_action_play_pause (totem);
4335+}
4336+
4337+G_GNUC_NORETURN void
4338+quit_action_callback (GtkAction *action, Totem *totem)
4339+{
4340+ totem_action_exit (totem);
4341+}
4342+
4343+void
4344+preferences_action_callback (GtkAction *action, Totem *totem)
4345+{
4346+ gtk_widget_show (totem->prefs);
4347+}
4348+
4349+void
4350+fullscreen_action_callback (GtkAction *action, Totem *totem)
4351+{
4352+ totem_action_fullscreen_toggle (totem);
4353+}
4354+
4355+void
4356+zoom_1_2_action_callback (GtkAction *action, Totem *totem)
4357+{
4358+ totem_action_set_scale_ratio (totem, 0.5);
4359+}
4360+
4361+void
4362+zoom_1_1_action_callback (GtkAction *action, Totem *totem)
4363+{
4364+ totem_action_set_scale_ratio (totem, 1);
4365+}
4366+
4367+void
4368+zoom_2_1_action_callback (GtkAction *action, Totem *totem)
4369+{
4370+ totem_action_set_scale_ratio (totem, 2);
4371+}
4372+
4373+void
4374+zoom_in_action_callback (GtkAction *action, Totem *totem)
4375+{
4376+ totem_action_zoom_relative (totem, ZOOM_IN_OFFSET);
4377+}
4378+
4379+void
4380+zoom_reset_action_callback (GtkAction *action, Totem *totem)
4381+{
4382+ totem_action_zoom_reset (totem);
4383+}
4384+
4385+void
4386+zoom_out_action_callback (GtkAction *action, Totem *totem)
4387+{
4388+ totem_action_zoom_relative (totem, ZOOM_OUT_OFFSET);
4389+}
4390+
4391+void
4392+select_subtitle_action_callback (GtkAction *action, Totem *totem)
4393+{
4394+ totem_playlist_select_subtitle_dialog (totem->playlist,
4395+ TOTEM_PLAYLIST_DIALOG_PLAYING);
4396+}
4397+
4398+void
4399+next_angle_action_callback (GtkAction *action, Totem *totem)
4400+{
4401+ totem_action_next_angle (totem);
4402+}
4403+
4404+void
4405+dvd_root_menu_action_callback (GtkAction *action, Totem *totem)
4406+{
4407+ bacon_video_widget_dvd_event (totem->bvw, BVW_DVD_ROOT_MENU);
4408+}
4409+
4410+void
4411+dvd_title_menu_action_callback (GtkAction *action, Totem *totem)
4412+{
4413+ bacon_video_widget_dvd_event (totem->bvw, BVW_DVD_TITLE_MENU);
4414+}
4415+
4416+void
4417+dvd_audio_menu_action_callback (GtkAction *action, Totem *totem)
4418+{
4419+ bacon_video_widget_dvd_event (totem->bvw, BVW_DVD_AUDIO_MENU);
4420+}
4421+
4422+void
4423+dvd_angle_menu_action_callback (GtkAction *action, Totem *totem)
4424+{
4425+ bacon_video_widget_dvd_event (totem->bvw, BVW_DVD_ANGLE_MENU);
4426+}
4427+
4428+void
4429+dvd_chapter_menu_action_callback (GtkAction *action, Totem *totem)
4430+{
4431+ bacon_video_widget_dvd_event (totem->bvw, BVW_DVD_CHAPTER_MENU);
4432+}
4433+
4434+void
4435+next_chapter_action_callback (GtkAction *action, Totem *totem)
4436+{
4437+ TOTEM_PROFILE (totem_action_next (totem));
4438+}
4439+
4440+void
4441+previous_chapter_action_callback (GtkAction *action, Totem *totem)
4442+{
4443+ TOTEM_PROFILE (totem_action_previous (totem));
4444+}
4445+
4446+void
4447+skip_forward_action_callback (GtkAction *action, Totem *totem)
4448+{
4449+ totem_action_seek_relative (totem, SEEK_FORWARD_OFFSET * 1000, FALSE);
4450+}
4451+
4452+void
4453+skip_backwards_action_callback (GtkAction *action, Totem *totem)
4454+{
4455+ totem_action_seek_relative (totem, SEEK_BACKWARD_OFFSET * 1000, FALSE);
4456+}
4457+
4458+void
4459+volume_up_action_callback (GtkAction *action, Totem *totem)
4460+{
4461+ totem_action_volume_relative (totem, VOLUME_UP_OFFSET);
4462+}
4463+
4464+void
4465+volume_down_action_callback (GtkAction *action, Totem *totem)
4466+{
4467+ totem_action_volume_relative (totem, VOLUME_DOWN_OFFSET);
4468+}
4469+
4470+void
4471+contents_action_callback (GtkAction *action, Totem *totem)
4472+{
4473+ totem_action_show_help (totem);
4474+}
4475+
4476+void
4477+about_action_callback (GtkAction *action, Totem *totem)
4478+{
4479+ char *backend_version, *description;
4480+
4481+ const char *authors[] =
4482+ {
4483+ "Bastien Nocera <hadess@hadess.net>",
4484+ "Ronald Bultje <rbultje@ronald.bitfreak.net>",
4485+ "Julien Moutte <julien@moutte.net> (GStreamer backend)",
4486+ "Tim-Philipp M\303\274ller <tim\100centricular\056net> (GStreamer backend)",
4487+ "Philip Withnall <philip@tecnocode.co.uk>",
4488+ NULL
4489+ };
4490+ const char *artists[] = { "Jakub Steiner <jimmac@ximian.com>", NULL };
4491+ #include "../help/totem-docs.h"
4492+ char *license = totem_interface_get_license ();
4493+
4494+ backend_version = bacon_video_widget_get_backend_name (totem->bvw);
4495+ /* This lists the back-end type and version, such as
4496+ * Movie Player using GStreamer 0.10.1 */
4497+ description = g_strdup_printf (_("Movie Player using %s"), backend_version);
4498+
4499+ gtk_show_about_dialog (GTK_WINDOW (totem->win),
4500+ "version", VERSION,
4501+ "copyright", _("Copyright \xc2\xa9 2002-2009 Bastien Nocera"),
4502+ "comments", description,
4503+ "authors", authors,
4504+ "documenters", documentation_credits,
4505+ "artists", artists,
4506+ "translator-credits", _("translator-credits"),
4507+ "logo-icon-name", "totem",
4508+ "license", license,
4509+ "wrap-license", TRUE,
4510+ "website-label", _("Totem Website"),
4511+ "website", "http://projects.gnome.org/totem/",
4512+ NULL);
4513+
4514+ g_free (backend_version);
4515+ g_free (description);
4516+ g_free (license);
4517+}
4518+
4519+static gboolean
4520+totem_plugins_window_delete_cb (GtkWidget *window,
4521+ GdkEventAny *event,
4522+ gpointer data)
4523+{
4524+ gtk_widget_hide (window);
4525+
4526+ return TRUE;
4527+}
4528+
4529+static void
4530+totem_plugins_response_cb (GtkDialog *dialog,
4531+ int response_id,
4532+ gpointer data)
4533+{
4534+ gtk_widget_hide (GTK_WIDGET (dialog));
4535+}
4536+
4537+
4538+void
4539+plugins_action_callback (GtkAction *action, Totem *totem)
4540+{
4541+ if (totem->plugins == NULL) {
4542+ GtkWidget *manager;
4543+
4544+ totem->plugins = gtk_dialog_new_with_buttons (_("Configure Plugins"),
4545+ GTK_WINDOW (totem->win),
4546+ GTK_DIALOG_DESTROY_WITH_PARENT,
4547+ GTK_STOCK_CLOSE,
4548+ GTK_RESPONSE_CLOSE,
4549+ NULL);
4550+ gtk_container_set_border_width (GTK_CONTAINER (totem->plugins), 5);
4551+ gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (totem->plugins))), 2);
4552+
4553+ g_signal_connect_object (G_OBJECT (totem->plugins),
4554+ "delete_event",
4555+ G_CALLBACK (totem_plugins_window_delete_cb),
4556+ NULL, 0);
4557+ g_signal_connect_object (G_OBJECT (totem->plugins),
4558+ "response",
4559+ G_CALLBACK (totem_plugins_response_cb),
4560+ NULL, 0);
4561+
4562+ manager = peas_gtk_plugin_manager_new (NULL);
4563+ gtk_widget_show_all (GTK_WIDGET (manager));
4564+ gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (totem->plugins))),
4565+ manager, TRUE, TRUE, 0);
4566+ gtk_window_set_default_size (GTK_WINDOW (totem->plugins), 600, 400);
4567+ }
4568+
4569+ gtk_window_present (GTK_WINDOW (totem->plugins));
4570+}
4571+
4572+void
4573+repeat_mode_action_callback (GtkToggleAction *action, Totem *totem)
4574+{
4575+ totem_playlist_set_repeat (totem->playlist,
4576+ gtk_toggle_action_get_active (action));
4577+}
4578+
4579+void
4580+shuffle_mode_action_callback (GtkToggleAction *action, Totem *totem)
4581+{
4582+ totem_playlist_set_shuffle (totem->playlist,
4583+ gtk_toggle_action_get_active (action));
4584+}
4585+
4586+void
4587+show_controls_action_callback (GtkToggleAction *action, Totem *totem)
4588+{
4589+ gboolean show;
4590+
4591+ show = gtk_toggle_action_get_active (action);
4592+
4593+ /* Let's update our controls visibility */
4594+ if (show)
4595+ totem->controls_visibility = TOTEM_CONTROLS_VISIBLE;
4596+ else
4597+ totem->controls_visibility = TOTEM_CONTROLS_HIDDEN;
4598+
4599+ show_controls (totem, FALSE);
4600+}
4601+
4602+void
4603+show_sidebar_action_callback (GtkToggleAction *action, Totem *totem)
4604+{
4605+ if (totem_is_fullscreen (totem))
4606+ return;
4607+
4608+ totem_sidebar_toggle (totem, gtk_toggle_action_get_active (action));
4609+}
4610+
4611+void
4612+aspect_ratio_changed_callback (GtkRadioAction *action, GtkRadioAction *current, Totem *totem)
4613+{
4614+ totem_action_set_aspect_ratio (totem, gtk_radio_action_get_current_value (current));
4615+}
4616+
4617+void
4618+clear_playlist_action_callback (GtkAction *action, Totem *totem)
4619+{
4620+ totem_playlist_clear (totem->playlist);
4621+ totem_action_set_mrl (totem, NULL, NULL);
4622+}
4623+
4624+/* Show help in status bar when selecting (hovering over) a menu item. */
4625+static void
4626+menu_item_select_cb (GtkMenuItem *proxy, Totem *totem)
4627+{
4628+ GtkAction *action;
4629+ const gchar *message;
4630+
4631+ action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (proxy));
4632+ g_return_if_fail (action != NULL);
4633+
4634+ message = gtk_action_get_tooltip (action);
4635+ if (message)
4636+ totem_statusbar_push_help (TOTEM_STATUSBAR (totem->statusbar), message);
4637+}
4638+
4639+static void
4640+menu_item_deselect_cb (GtkMenuItem *proxy, Totem *totem)
4641+{
4642+ totem_statusbar_pop_help (TOTEM_STATUSBAR (totem->statusbar));
4643+}
4644+
4645+static void
4646+setup_action (Totem *totem, GtkAction *action)
4647+{
4648+ GSList *proxies;
4649+ for (proxies = gtk_action_get_proxies (action); proxies != NULL; proxies = proxies->next) {
4650+ if (GTK_IS_MENU_ITEM (proxies->data)) {
4651+ g_signal_connect (proxies->data, "select", G_CALLBACK (menu_item_select_cb), totem);
4652+ g_signal_connect (proxies->data, "deselect", G_CALLBACK (menu_item_deselect_cb), totem);
4653+ }
4654+
4655+ }
4656+}
4657+
4658+static void
4659+setup_menu_items (Totem *totem)
4660+{
4661+ GList *action_groups;
4662+
4663+ /* FIXME: We can remove this once GTK+ bug #574001 is fixed */
4664+ for (action_groups = gtk_ui_manager_get_action_groups (totem->ui_manager);
4665+ action_groups != NULL; action_groups = action_groups->next) {
4666+ GtkActionGroup *action_group = GTK_ACTION_GROUP (action_groups->data);
4667+ GList *actions;
4668+ for (actions = gtk_action_group_list_actions (action_group); actions != NULL; actions = actions->next) {
4669+ setup_action (totem, GTK_ACTION (actions->data));
4670+ }
4671+ }
4672+}
4673+
4674+void
4675+totem_ui_manager_setup (Totem *totem)
4676+{
4677+ totem->main_action_group = GTK_ACTION_GROUP (gtk_builder_get_object (totem->xml, "main-action-group"));
4678+ totem->zoom_action_group = GTK_ACTION_GROUP (gtk_builder_get_object (totem->xml, "zoom-action-group"));
4679+
4680+ /* FIXME: Moving these to GtkBuilder depends on bug #457631 */
4681+ if (gtk_widget_get_direction (totem->win) == GTK_TEXT_DIR_RTL) {
4682+ GtkActionGroup *action_group = GTK_ACTION_GROUP (gtk_builder_get_object (totem->xml, "skip-action-group"));
4683+ GtkAction *action;
4684+
4685+ action = gtk_action_group_get_action (action_group, "skip-forward");
4686+ gtk_action_set_accel_path (action, "Left");
4687+
4688+ action = gtk_action_group_get_action (action_group, "skip-backwards");
4689+ gtk_action_set_accel_path (action, "Right");
4690+ }
4691+
4692+ totem->ui_manager = GTK_UI_MANAGER (gtk_builder_get_object (totem->xml, "totem-ui-manager"));
4693+
4694+ setup_menu_items (totem);
4695+
4696+ totem->devices_action_group = NULL;
4697+ totem->devices_ui_id = gtk_ui_manager_new_merge_id (totem->ui_manager);
4698+ totem->languages_action_group = NULL;
4699+ totem->languages_ui_id = gtk_ui_manager_new_merge_id (totem->ui_manager);
4700+ totem->subtitles_action_group = NULL;
4701+ totem->subtitles_ui_id = gtk_ui_manager_new_merge_id (totem->ui_manager);
4702+}
4703+
4704
4705=== added directory '.pc/03_default_options.patch'
4706=== added directory '.pc/03_default_options.patch/data'
4707=== added file '.pc/03_default_options.patch/data/org.gnome.totem.gschema.xml.in.in'
4708--- .pc/03_default_options.patch/data/org.gnome.totem.gschema.xml.in.in 1970-01-01 00:00:00 +0000
4709+++ .pc/03_default_options.patch/data/org.gnome.totem.gschema.xml.in.in 2011-10-26 10:18:23 +0000
4710@@ -0,0 +1,124 @@
4711+<?xml version="1.0" encoding="UTF-8"?>
4712+<schemalist>
4713+ <schema id="org.gnome.totem" path="/org/gnome/Totem/" gettext-domain="@GETTEXT_PACKAGE@">
4714+ <key name="lock-screensaver-on-audio" type="b">
4715+ <default>true</default>
4716+ <_summary>Allow the screensaver to activate when playing audio</_summary>
4717+ <_description>Allow the screensaver to activate when playing audio. Disable if you have monitor-powered speakers.</_description>
4718+ </key>
4719+ <key name="show-visualizations" type="b">
4720+ <default>true</default>
4721+ <_summary>Show visual effects when no video is displayed</_summary>
4722+ <_description>Show visual effects when playing an audio only file.</_description>
4723+ </key>
4724+ <key name="visualization-name" type="s">
4725+ <default>'goom'</default>
4726+ <_summary>Name of the visual effects plugin</_summary>
4727+ </key>
4728+ <key name="brightness" type="i">
4729+ <default>32767</default>
4730+ <_summary>The brightness of the video</_summary>
4731+ </key>
4732+ <key name="contrast" type="i">
4733+ <default>32767</default>
4734+ <_summary>The contrast of the video</_summary>
4735+ </key>
4736+ <key name="hue" type="i">
4737+ <default>32767</default>
4738+ <_summary>The hue of the video</_summary>
4739+ </key>
4740+ <key name="saturation" type="i">
4741+ <default>32767</default>
4742+ <_summary>The saturation of the video</_summary>
4743+ </key>
4744+ <key name="auto-resize" type="b">
4745+ <default>false</default>
4746+ <_summary>Resize the canvas automatically on file load</_summary>
4747+ </key>
4748+ <key name="connection-speed" enum="org.gnome.totem.BvwConnectionSpeed">
4749+ <default>'lan'</default>
4750+ <_summary>Network connection speed</_summary>
4751+ <_description>Approximate network connection speed, used to select quality on media over the network.</_description>
4752+ </key>
4753+ <key name="repeat" type="b">
4754+ <default>false</default>
4755+ <_summary>Repeat mode</_summary>
4756+ </key>
4757+ <key name="shuffle" type="b">
4758+ <default>false</default>
4759+ <_summary>Shuffle mode</_summary>
4760+ </key>
4761+ <key name="disable-deinterlacing" type="b">
4762+ <default>false</default>
4763+ <_summary>Whether to disable deinterlacing for interlaced movies</_summary>
4764+ </key>
4765+ <key name="debug" type="b">
4766+ <default>false</default>
4767+ <_summary>Whether to enable debug for the playback engine</_summary>
4768+ </key>
4769+ <key name="audio-output-type" enum="org.gnome.totem.BvwAudioOutputType">
4770+ <default>'stereo'</default>
4771+ <_summary>Type of audio output to use</_summary>
4772+ </key>
4773+ <key name="visualization-quality" enum="org.gnome.totem.BvwVisualizationQuality">
4774+ <default>'small'</default>
4775+ <_summary>Visualization quality setting</_summary>
4776+ <_description>Quality setting for the audio visualization.</_description>
4777+ </key>
4778+ <key name="network-buffer-threshold" type="d">
4779+ <default>2</default>
4780+ <_summary>Network buffering threshold</_summary>
4781+ <_description>Amount of data to buffer for network streams before starting to display the stream (in seconds).</_description>
4782+ </key>
4783+ <key name="subtitle-font" type="s">
4784+ <default>'Sans Bold 20'</default>
4785+ <_summary>Subtitle font</_summary>
4786+ <_description>Pango font description for subtitle rendering.</_description>
4787+ </key>
4788+ <key name="subtitle-encoding" type="s">
4789+ <default l10n="messages" context="subtitle-encoding">
4790+ <!-- Translators: This is default subtitle encoding
4791+ character set. You can change this to be the most common
4792+ encoding for fansub subtitles in your language. File a bug
4793+ against Totem, and leave UTF-8 as the default if in doubt. -->
4794+ 'UTF-8'</default>
4795+ <_summary>Subtitle encoding</_summary>
4796+ <_description>Encoding character set for subtitle.</_description>
4797+ </key>
4798+ <key name="open-uri" type="s">
4799+ <default>''</default>
4800+ <_summary>Default location for the "Open..." dialogs</_summary>
4801+ <_description>Default location for the "Open..." dialogs. Default is the current directory.</_description>
4802+ </key>
4803+ <key name="screenshot-save-uri" type="s">
4804+ <default>''</default>
4805+ <_summary>Default location for the "Take Screenshot" dialogs</_summary>
4806+ <_description>Default location for the "Take Screenshot" dialogs. Default is the Pictures directory.</_description>
4807+ </key>
4808+ <key name="disable-user-plugins" type="b">
4809+ <default>false</default>
4810+ <_summary>Whether to disable the plugins in the user's home directory</_summary>
4811+ </key>
4812+ <key name="disable-keyboard-shortcuts" type="b">
4813+ <default>false</default>
4814+ <_summary>Whether to disable the keyboard shortcuts</_summary>
4815+ </key>
4816+ <key name="autoload-subtitles" type="b">
4817+ <default>false</default>
4818+ <_summary>Whether to autoload text subtitle files when a movie is loaded</_summary>
4819+ </key>
4820+ <key name="autoload-chapters" type="b">
4821+ <default>true</default>
4822+ <_summary>Whether to autoload external chapter files when a movie is loaded</_summary>
4823+ </key>
4824+ <key name="remember-position" type="b">
4825+ <default>false</default>
4826+ <_summary>Whether to remember the position of played audio/video files when pausing or closing them</_summary>
4827+ </key>
4828+ <key name="active-plugins" type="as">
4829+ <default>['skipto','chapters','screenshot','media_player_keys','screensaver','movie-properties','save-file']</default>
4830+ <_summary>Active plugins list</_summary>
4831+ <_description>A list of the names of the plugins which are currently active (loaded and running).</_description>
4832+ </key>
4833+ </schema>
4834+</schemalist>
4835
4836=== added directory '.pc/04_port_to_gobject.patch'
4837=== added directory '.pc/04_port_to_gobject.patch/src'
4838=== added directory '.pc/04_port_to_gobject.patch/src/plugins'
4839=== added directory '.pc/04_port_to_gobject.patch/src/plugins/coherence_upnp'
4840=== added file '.pc/04_port_to_gobject.patch/src/plugins/coherence_upnp/coherence_upnp.py'
4841--- .pc/04_port_to_gobject.patch/src/plugins/coherence_upnp/coherence_upnp.py 1970-01-01 00:00:00 +0000
4842+++ .pc/04_port_to_gobject.patch/src/plugins/coherence_upnp/coherence_upnp.py 2011-10-26 10:18:23 +0000
4843@@ -0,0 +1,125 @@
4844+# -*- coding: utf-8 -*-
4845+
4846+# Licensed under the MIT license
4847+# http://opensource.org/licenses/mit-license.php
4848+
4849+# Copyright 2008, Frank Scholz <coherence@beebits.net>
4850+
4851+from gi.repository import Peas
4852+from gi.repository import Gtk
4853+from gi.repository import Totem
4854+
4855+from coherence.ui.av_widgets import TreeWidget
4856+from coherence.ui.av_widgets import UDN_COLUMN,UPNP_CLASS_COLUMN,SERVICE_COLUMN
4857+
4858+gettext.textdomain("totem")
4859+
4860+D_ = gettext.dgettext
4861+_ = gettext.gettext
4862+
4863+class UPnPClient(gobject.GObject, Peas.Activatable):
4864+ __gtype_name__ = 'UPnPClient'
4865+
4866+ object = gobject.property(type = gobject.GObject)
4867+
4868+ def __init__ (self):
4869+ self.totem_object = None
4870+ self.ui = TreeWidget()
4871+ self.ui.window.set_shadow_type(gtk.SHADOW_IN)
4872+ self.ui.cb_item_right_click = self.button_pressed
4873+ self.ui.window.show_all()
4874+ selection = self.ui.treeview.get_selection()
4875+ selection.set_mode(gtk.SELECTION_MULTIPLE)
4876+
4877+ def button_pressed(self, widget, event):
4878+ if event.button == 3:
4879+ x = int(event.x)
4880+ y = int(event.y)
4881+ try:
4882+ row_path,column,_,_ = self.ui.treeview.get_path_at_pos(x, y)
4883+ selection = self.ui.treeview.get_selection()
4884+ if not selection.path_is_selected(row_path):
4885+ self.ui.treeview.set_cursor(row_path,column,False)
4886+ print "button_pressed", row_path, (row_path[0],)
4887+ iter = self.ui.store.get_iter((row_path[0],))
4888+ udn, = self.ui.store.get(iter,UDN_COLUMN)
4889+ iter = self.ui.store.get_iter(row_path)
4890+ upnp_class,url = self.ui.store.get(iter,UPNP_CLASS_COLUMN,SERVICE_COLUMN)
4891+ print udn, upnp_class, url
4892+ if(not upnp_class.startswith('object.container') and
4893+ not upnp_class == 'root'):
4894+ self.create_item_context(has_delete=self.ui.device_has_action(udn,'ContentDirectory','DestroyObject'))
4895+ self.context.popup(None,None,None,event.button,event.time)
4896+ return 1
4897+ except TypeError:
4898+ pass
4899+ return 1
4900+
4901+ def create_item_context(self,has_delete=False):
4902+ """ create context menu for right click in treeview item"""
4903+
4904+ def action(menu, text):
4905+ selection = self.ui.treeview.get_selection()
4906+ model, selected_rows = selection.get_selected_rows()
4907+ if text == 'item.delete':
4908+ for row_path in selected_rows:
4909+ self.ui.destroy_object(row_path)
4910+ return
4911+ if(len(selected_rows) > 0 and
4912+ text ==' item.play'):
4913+ row_path = selected_rows.pop(0)
4914+ iter = self.ui.store.get_iter(row_path)
4915+ url, = self.ui.store.get(iter,SERVICE_COLUMN)
4916+ self.totem_object.action_remote(totem.REMOTE_COMMAND_REPLACE,url)
4917+ self.totem_object.action_remote(totem.REMOTE_COMMAND_PLAY,url)
4918+ for row_path in selected_rows:
4919+ iter = self.ui.store.get_iter(row_path)
4920+ url, = self.ui.store.get(iter,SERVICE_COLUMN)
4921+ self.totem_object.action_remote(totem.REMOTE_COMMAND_ENQUEUE,url)
4922+ self.totem_object.action_remote(totem.REMOTE_COMMAND_PLAY,url)
4923+
4924+ if not hasattr(self, 'context_no_delete'):
4925+ self.context_no_delete = gtk.Menu()
4926+ # Translators: this refers to a media file
4927+ play_menu = gtk.MenuItem(_(u"Play"))
4928+ play_menu.connect("activate", action, 'item.play')
4929+ # Translators: this refers to a media file
4930+ enqueue_menu = gtk.MenuItem(_(u"Enqueue"))
4931+ enqueue_menu.connect("activate", action, 'item.enqueue')
4932+ self.context_no_delete.append(play_menu)
4933+ self.context_no_delete.append(enqueue_menu)
4934+ self.context_no_delete.show_all()
4935+
4936+ if not hasattr(self, 'context_with_delete'):
4937+ self.context_with_delete = gtk.Menu()
4938+ # Translators: this refers to a media file
4939+ play_menu = gtk.MenuItem(_(u"Play"))
4940+ play_menu.connect("activate", action, 'item.play')
4941+ # Translators: this refers to a media file
4942+ enqueue_menu = gtk.MenuItem(_(u"Enqueue"))
4943+ enqueue_menu.connect("activate", action, 'item.enqueue')
4944+ self.context_with_delete.append(play_menu)
4945+ self.context_with_delete.append(enqueue_menu)
4946+ self.context_with_delete.append(gtk.SeparatorMenuItem())
4947+ # Translators: this refers to a media file
4948+ menu = gtk.MenuItem(_(u"Delete"))
4949+ menu.connect("activate", action, 'item.delete')
4950+ self.context_with_delete.append(menu)
4951+ self.context_with_delete.show_all()
4952+
4953+ if has_delete:
4954+ self.context = self.context_with_delete
4955+ else:
4956+ self.context = self.context_no_delete
4957+
4958+ def do_activate (self):
4959+ self.totem_object = self.object
4960+ self.totem_object.add_sidebar_page ("upnp-coherence", _(u"Coherence DLNA/UPnP Client"), self.ui.window)
4961+
4962+ def load_and_play(url):
4963+ self.totem_object.add_to_playlist_and_play (url, '', True)
4964+
4965+ self.ui.cb_item_dbl_click = load_and_play
4966+
4967+ def do_deactivate (self):
4968+ self.totem_object.remove_sidebar_page ("upnp-coherence")
4969
4970=== added directory '.pc/04_port_to_gobject.patch/src/plugins/dbus-service'
4971=== added file '.pc/04_port_to_gobject.patch/src/plugins/dbus-service/dbus-service.py'
4972--- .pc/04_port_to_gobject.patch/src/plugins/dbus-service/dbus-service.py 1970-01-01 00:00:00 +0000
4973+++ .pc/04_port_to_gobject.patch/src/plugins/dbus-service/dbus-service.py 2011-10-26 10:18:23 +0000
4974@@ -0,0 +1,291 @@
4975+## Totem D-Bus plugin
4976+## Copyright (C) 2009 Lucky <lucky1.data@gmail.com>
4977+## Copyright (C) 2009 Philip Withnall <philip@tecnocode.co.uk>
4978+##
4979+## This program is free software; you can redistribute it and/or modify
4980+## it under the terms of the GNU General Public License as published by
4981+## the Free Software Foundation; either version 2 of the License, or
4982+## (at your option) any later version.
4983+##
4984+## This program is distributed in the hope that it will be useful,
4985+## but WITHOUT ANY WARRANTY; without even the implied warranty of
4986+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4987+## GNU General Public License for more details.
4988+##
4989+## You should have received a copy of the GNU General Public License
4990+## along with this program; if not, write to the Free Software
4991+## Foundation, Inc., 51 Franklin St, Fifth Floor,
4992+## Boston, MA 02110-1301 USA.
4993+##
4994+## Sunday 13th May 2007: Bastien Nocera: Add exception clause.
4995+## See license_change file for details.
4996+
4997+import gobject
4998+from gi.repository import Peas
4999+from gi.repository import Gtk
5000+from gi.repository import Totem
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches