Merge lp:~manishsinha/ubuntu/precise/totem/enable-zeitgeist-datasource into lp:~ubuntu-desktop/totem/ubuntu
- Precise (12.04)
- enable-zeitgeist-datasource
- Merge into 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 |
Related bugs: |
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/
Description of the change
Enabled Zeitgeist datasource
Changed made
* Enabled the vala support in debian/rules
* Added an entry in totem-plugins.
* Updated the respective dependencies in debian/control
- 187. By Manish Sinha (मनीष सिन्हा)
-
Enable zeitgeist-dp vala plugin for totem (LP: #879702)
Jeremy Bícha (jbicha) wrote : | # |
Sebastien Bacher (seb128) wrote : | # |
Could you update he merge request as requested before?
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:/
which has now been merged
https:/
Can you please reject this merge proposal. I cannot set it myself
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
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 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.