[pitivi: 5/9] ui/mainwindow, timeline: added timeline button, menu item and key accel to add and create editing key
- From: Edward Hervey <edwardrv src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi: 5/9] ui/mainwindow, timeline: added timeline button, menu item and key accel to add and create editing key
- Date: Sun, 5 Sep 2010 09:07:52 +0000 (UTC)
commit 542495867fe83dc3a093b1a369bc507b78c540a6
Author: Luis de Bethencourt <luis debethencourt com>
Date: Tue Aug 31 15:31:57 2010 +0200
ui/mainwindow,timeline: added timeline button, menu item and key accel to add and create editing keyframes
pitivi/pixmaps/Makefile.am | 2 +
pitivi/pixmaps/pitivi-keyframe-24.svg | 485 +++++++++++++++++++++++++++++++++
pitivi/pixmaps/pitivi-keyframe.svg | 419 ++++++++++++++++++++++++++++
pitivi/ui/mainwindow.py | 3 +-
pitivi/ui/timeline.py | 29 ++
5 files changed, 937 insertions(+), 1 deletions(-)
---
diff --git a/pitivi/pixmaps/Makefile.am b/pitivi/pixmaps/Makefile.am
index a4d71e4..8dff59e 100644
--- a/pitivi/pixmaps/Makefile.am
+++ b/pitivi/pixmaps/Makefile.am
@@ -5,6 +5,8 @@ pixmap_DATA = \
pitivi-advanced-16.png \
pitivi-advanced-22.png \
pitivi-advanced-24.png \
+ pitivi-keyframe-24.png \
+ pitivi-keyframe.png \
pitivi-relink-24.svg \
pitivi-relink.svg \
pitivi-render-16.png \
diff --git a/pitivi/pixmaps/pitivi-keyframe-24.svg b/pitivi/pixmaps/pitivi-keyframe-24.svg
new file mode 100644
index 0000000..c8ce0b8
--- /dev/null
+++ b/pitivi/pixmaps/pitivi-keyframe-24.svg
@@ -0,0 +1,485 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="24"
+ height="24"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.47 r22583"
+ sodipodi:modified="true"
+ version="1.0"
+ sodipodi:docname="pitivi-keyframe-24.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3766">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3768" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3770" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3758">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3760" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3762" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3243">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="0"
+ id="stop3245" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="1"
+ id="stop3247" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective7" />
+ <linearGradient
+ gradientTransform="matrix(1.004639,0,0,1,-1.037685,4.7681e-2)"
+ gradientUnits="userSpaceOnUse"
+ y2="40.231434"
+ x2="34.744495"
+ y1="10.445395"
+ x1="17.498823"
+ id="linearGradient5315"
+ xlink:href="#linearGradient5113"
+ inkscape:collect="always" />
+ <radialGradient
+ r="8.0625"
+ fy="19.03125"
+ fx="11.25"
+ cy="19.03125"
+ cx="11.25"
+ gradientTransform="matrix(1,0,0,0.282946,0,13.64644)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4354"
+ xlink:href="#linearGradient5105"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5113"
+ inkscape:collect="always">
+ <stop
+ id="stop5115"
+ offset="0"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ id="stop5117"
+ offset="1"
+ style="stop-color:white;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5105"
+ inkscape:collect="always">
+ <stop
+ id="stop5107"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5109"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective3181"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 24 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5113"
+ id="linearGradient3199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,0.2905223,-0.2891808,0,18.630492,26.384583)"
+ x1="17.498823"
+ y1="10.445395"
+ x2="34.744495"
+ y2="40.231434" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5105"
+ id="radialGradient3204"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.282946,0,13.64644)"
+ cx="11.25"
+ cy="19.03125"
+ fx="11.25"
+ fy="19.03125"
+ r="8.0625" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.444008,0,21.02345)"
+ r="7.953125"
+ fy="37.8125"
+ fx="25.015625"
+ cy="37.8125"
+ cx="25.015625"
+ id="radialGradient3131"
+ xlink:href="#linearGradient3125"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.39823,0,25.31195)"
+ r="7.0625"
+ fy="42.0625"
+ fx="16.6875"
+ cy="42.0625"
+ cx="16.6875"
+ id="radialGradient3117"
+ xlink:href="#linearGradient3109"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.39823,0,25.31195)"
+ r="7.0625"
+ fy="42.0625"
+ fx="16.6875"
+ cy="42.0625"
+ cx="16.6875"
+ id="radialGradient3115"
+ xlink:href="#linearGradient3109"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3109"
+ inkscape:collect="always">
+ <stop
+ id="stop3111"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop3113"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3125"
+ inkscape:collect="always">
+ <stop
+ id="stop3127"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop3129"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective2435"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 24 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243"
+ id="linearGradient3479"
+ gradientUnits="userSpaceOnUse"
+ x1="11.976621"
+ y1="5.1620197"
+ x2="0.75"
+ y2="4.8084664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243"
+ id="linearGradient3621"
+ gradientUnits="userSpaceOnUse"
+ x1="-6.2459664"
+ y1="10.0739"
+ x2="-3.0284903"
+ y2="11.345978"
+ gradientTransform="matrix(1.1145165,0,0,1.1095789,40.201481,4.7203315)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243"
+ id="linearGradient3639"
+ gradientUnits="userSpaceOnUse"
+ x1="4.8276639"
+ y1="5.2473125"
+ x2="0.74999982"
+ y2="4.6316895"
+ gradientTransform="matrix(0.97223518,-0.23400589,0.23400589,0.97223518,-1.9889438,9.45988)" />
+ <inkscape:perspective
+ id="perspective2868"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243-1"
+ id="linearGradient3639-2"
+ gradientUnits="userSpaceOnUse"
+ x1="4.8276639"
+ y1="5.2473125"
+ x2="0.74999982"
+ y2="4.6316895"
+ gradientTransform="translate(-0.827664,5.7526874)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3243-1">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="0"
+ id="stop3245-5" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="1"
+ id="stop3247-9" />
+ </linearGradient>
+ <linearGradient
+ y2="4.6316895"
+ x2="0.74999982"
+ y1="5.2473125"
+ x1="4.8276639"
+ gradientTransform="matrix(-0.76362812,0.64565634,-0.64565634,-0.76362812,27.010613,6.252417)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2877"
+ xlink:href="#linearGradient3243-1"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective2859"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243-9"
+ id="linearGradient3639-3"
+ gradientUnits="userSpaceOnUse"
+ x1="4.8276639"
+ y1="5.2473125"
+ x2="0.74999982"
+ y2="4.6316895"
+ gradientTransform="matrix(0.97223518,-0.23400589,0.23400589,0.97223518,-1.9889438,9.45988)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3243-9">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="0"
+ id="stop3245-0" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="1"
+ id="stop3247-8" />
+ </linearGradient>
+ <linearGradient
+ y2="4.6316895"
+ x2="0.74999982"
+ y1="5.2473125"
+ x1="4.8276639"
+ gradientTransform="matrix(-0.01930431,1.1812884,-0.73119538,0.05792925,17.122136,-5.0366374)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2868"
+ xlink:href="#linearGradient3243-9"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective2897"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ y2="4.6316895"
+ x2="0.74999982"
+ y1="5.2473125"
+ x1="4.8276639"
+ gradientTransform="matrix(-0.01930431,1.1812884,-0.73119538,0.05792925,17.122136,-5.0366374)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2868-7"
+ xlink:href="#linearGradient3243-9-7"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3243-9-7">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="0"
+ id="stop3245-0-6" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="1"
+ id="stop3247-8-4" />
+ </linearGradient>
+ <linearGradient
+ y2="4.6316895"
+ x2="0.74999982"
+ y1="5.2473125"
+ x1="4.8276639"
+ gradientTransform="matrix(-0.01930431,1.1812884,-0.73119538,0.05792925,5.1280996,10.647059)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2906"
+ xlink:href="#linearGradient3243-9-7"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective2956"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243-9-7-3"
+ id="linearGradient2946-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.06349797,-1.1797385,0.73285107,-0.03052526,8.1998181,26.903462)"
+ x1="4.8276639"
+ y1="5.2473125"
+ x2="-1.0660375"
+ y2="5.2778435" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3243-9-7-3">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="0"
+ id="stop3245-0-6-8" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="1"
+ id="stop3247-8-4-0" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3758"
+ id="linearGradient3764"
+ x1="12"
+ y1="-3.805639"
+ x2="13.209049"
+ y2="-3.805639"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3766"
+ id="linearGradient3772"
+ x1="12.365561"
+ y1="25.812646"
+ x2="13.295311"
+ y2="25.812646"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="6.4495935"
+ inkscape:cy="12.325449"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ showgrid="true"
+ inkscape:window-width="1440"
+ inkscape:window-height="856"
+ inkscape:window-x="0"
+ inkscape:window-y="21"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2380"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Calque 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:url(#linearGradient3639);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M -10.146721,14.763412 C -4.051718,13.283469 2.726342,12.693571 9.5319882,11.05553 L 10,13 c -6.8056463,1.638041 -13.1334185,4.115928 -19.210698,5.652353 l -0.936023,-3.888941 z"
+ id="rect2382"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path10844"
+ d="M 10.861186,3.3028055 11.666995,15.250175 11.712235,2.6329213 10.861186,3.3028055 z"
+ style="opacity:0.6;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ style="fill:url(#linearGradient2877);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 31.918219,-2.1494989 C 27.136798,1.909728 21.345396,5.480405 16,10 L 14.708692,8.472741 C 20.05409,3.953148 24.595377,-1.1022792 29.335597,-5.2040146 l 2.582625,3.0545124 z"
+ id="rect2382-9"
+ sodipodi:nodetypes="ccccc" />
+ <rect
+ style="fill:none;stroke:none"
+ id="rect2898"
+ width="3.0398445"
+ height="3.4073012"
+ x="10.960155"
+ y="9.5926991" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2909"
+ sodipodi:cx="13"
+ sodipodi:cy="11"
+ sodipodi:rx="2"
+ sodipodi:ry="2"
+ d="m 15,11 a 2,2 0 1 1 -4,0 2,2 0 1 1 4,0 z" />
+ <path
+ style="fill:url(#linearGradient3772);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 12.365561,37.625293 C 12.366451,30 12.683225,22 12.683225,14 L 13,14 c 0,8 0.316775,16 0.294155,23.503193 l -0.928594,0.1221 z"
+ id="rect2382-8-3"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#linearGradient3764);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 13.185644,-15.645838 C 13.291322,-8.025004 12.99834,0.00478 13.110405,8 L 12.705358,8.03456 C 12.593294,0.039343 12.076182,-7.921314 12,-15.422492 l 1.185644,-0.223346 z"
+ id="rect2382-8-3-4"
+ sodipodi:nodetypes="ccccc"
+ inkscape:transform-center-x="0.95582947"
+ inkscape:transform-center-y="1.7451722" />
+ </g>
+</svg>
diff --git a/pitivi/pixmaps/pitivi-keyframe.svg b/pitivi/pixmaps/pitivi-keyframe.svg
new file mode 100644
index 0000000..7151fbd
--- /dev/null
+++ b/pitivi/pixmaps/pitivi-keyframe.svg
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.47 r22583"
+ sodipodi:modified="true"
+ version="1.0"
+ sodipodi:docname="pitivi-keyframe.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3243">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="0"
+ id="stop3245" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="1"
+ id="stop3247" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective7" />
+ <linearGradient
+ gradientTransform="matrix(1.004639,0,0,1,-1.037685,4.7681e-2)"
+ gradientUnits="userSpaceOnUse"
+ y2="40.231434"
+ x2="34.744495"
+ y1="10.445395"
+ x1="17.498823"
+ id="linearGradient5315"
+ xlink:href="#linearGradient5113"
+ inkscape:collect="always" />
+ <radialGradient
+ r="8.0625"
+ fy="19.03125"
+ fx="11.25"
+ cy="19.03125"
+ cx="11.25"
+ gradientTransform="matrix(1,0,0,0.282946,0,13.64644)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4354"
+ xlink:href="#linearGradient5105"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5113"
+ inkscape:collect="always">
+ <stop
+ id="stop5115"
+ offset="0"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ id="stop5117"
+ offset="1"
+ style="stop-color:white;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5105"
+ inkscape:collect="always">
+ <stop
+ id="stop5107"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5109"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective3181"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 24 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5113"
+ id="linearGradient3199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,0.2905223,-0.2891808,0,18.630492,26.384583)"
+ x1="17.498823"
+ y1="10.445395"
+ x2="34.744495"
+ y2="40.231434" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5105"
+ id="radialGradient3204"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.282946,0,13.64644)"
+ cx="11.25"
+ cy="19.03125"
+ fx="11.25"
+ fy="19.03125"
+ r="8.0625" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.444008,0,21.02345)"
+ r="7.953125"
+ fy="37.8125"
+ fx="25.015625"
+ cy="37.8125"
+ cx="25.015625"
+ id="radialGradient3131"
+ xlink:href="#linearGradient3125"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.39823,0,25.31195)"
+ r="7.0625"
+ fy="42.0625"
+ fx="16.6875"
+ cy="42.0625"
+ cx="16.6875"
+ id="radialGradient3117"
+ xlink:href="#linearGradient3109"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.39823,0,25.31195)"
+ r="7.0625"
+ fy="42.0625"
+ fx="16.6875"
+ cy="42.0625"
+ cx="16.6875"
+ id="radialGradient3115"
+ xlink:href="#linearGradient3109"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3109"
+ inkscape:collect="always">
+ <stop
+ id="stop3111"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop3113"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3125"
+ inkscape:collect="always">
+ <stop
+ id="stop3127"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop3129"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective2435"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 24 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243"
+ id="linearGradient3479"
+ gradientUnits="userSpaceOnUse"
+ x1="11.976621"
+ y1="5.1620197"
+ x2="0.75"
+ y2="4.8084664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243"
+ id="linearGradient3621"
+ gradientUnits="userSpaceOnUse"
+ x1="-6.2459664"
+ y1="10.0739"
+ x2="-3.0284903"
+ y2="11.345978"
+ gradientTransform="translate(23.260723,1.1964693)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243"
+ id="linearGradient3639"
+ gradientUnits="userSpaceOnUse"
+ x1="4.2868342"
+ y1="4.9758639"
+ x2="0.74999982"
+ y2="4.6316895"
+ gradientTransform="translate(-8.8388326e-2,1.5071295)" />
+ <inkscape:perspective
+ id="perspective2893"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3243-6"
+ id="linearGradient3639-5"
+ gradientUnits="userSpaceOnUse"
+ x1="4.8276639"
+ y1="5.2473125"
+ x2="0.74999982"
+ y2="4.6316895"
+ gradientTransform="matrix(0.97223518,-0.23400589,0.23400589,0.97223518,-1.9889438,9.45988)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3243-6">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="0"
+ id="stop3245-6" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="1"
+ id="stop3247-4" />
+ </linearGradient>
+ <linearGradient
+ y2="4.6316895"
+ x2="0.74999982"
+ y1="5.2473125"
+ x1="4.8276639"
+ gradientTransform="matrix(-0.76362812,0.64565634,-0.64565634,-0.76362812,27.010613,6.252417)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2877"
+ xlink:href="#linearGradient3243-1"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3243-1">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="0"
+ id="stop3245-5" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="1"
+ id="stop3247-9" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3766"
+ id="linearGradient3772"
+ x1="12.365561"
+ y1="25.812647"
+ x2="13.295311"
+ y2="25.812647"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3766">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3768" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3770" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3758"
+ id="linearGradient3764"
+ x1="12"
+ y1="-3.805639"
+ x2="13.209049"
+ y2="-3.805639"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3758">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3760" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3762" />
+ </linearGradient>
+ <linearGradient
+ y2="-3.805639"
+ x2="13.209049"
+ y1="-3.805639"
+ x1="12"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2919"
+ xlink:href="#linearGradient3758"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="13.336976"
+ inkscape:cy="4.6539205"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ showgrid="true"
+ inkscape:window-width="1440"
+ inkscape:window-height="856"
+ inkscape:window-x="0"
+ inkscape:window-y="21"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2380"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Calque 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="opacity:0.5;fill:#73d216;fill-opacity:1;fill-rule:evenodd;stroke:#4e9a06;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3162"
+ width="18.8125"
+ height="5.125"
+ x="-10.3125"
+ y="23.5" />
+ <path
+ style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 39.460726,14.961509 C 37.869651,16.793387 36.278575,18.625264 34.6875,20.457142 C 33.1044,18.625264 31.5213,16.793387 29.9382,14.961509 C 30.696802,14.961509 31.455404,14.961509 32.214005,14.961509 C 32.214005,13.516006 32.214005,13.133003 32.214005,11.6875 C 33.858011,11.6875 35.502017,11.6875 37.146023,11.6875 C 37.146023,13.133003 37.146023,13.516006 37.146023,14.961509 C 37.91759,14.961509 38.689158,14.961509 39.460726,14.961509 z"
+ id="path4348"
+ sodipodi:nodetypes="cccccccc" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path4348"
+ id="use3209"
+ transform="matrix(1,0,0,-1,-6.25e-2,20.457142)"
+ width="22"
+ height="22" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#rect3162"
+ id="use2398"
+ transform="translate(23.75,6.25e-2)"
+ width="22"
+ height="22" />
+ <g
+ transform="matrix(0.91359467,0,0,0.83770079,0.12326929,1.1098897)"
+ id="g2878">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="rect2382-0"
+ d="M -10.146721,14.763412 C -4.051718,13.283469 2.726342,12.693571 9.5319882,11.05553 L 10,13 c -6.8056463,1.638041 -13.1334185,4.115928 -19.210698,5.652353 l -0.936023,-3.888941 z"
+ style="fill:url(#linearGradient3639-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="rect2382-9"
+ d="M 31.918219,-2.1494989 C 27.136798,1.909728 21.345396,5.480405 16,10 L 14.708692,8.472741 C 20.05409,3.953148 24.595377,-1.1022792 29.335597,-5.2040146 l 2.582625,3.0545124 z"
+ style="fill:url(#linearGradient2877);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ d="m 15,11 c 0,1.104569 -0.895431,2 -2,2 -1.104569,0 -2,-0.895431 -2,-2 0,-1.1045695 0.895431,-2 2,-2 1.104569,0 2,0.8954305 2,2 z"
+ sodipodi:ry="2"
+ sodipodi:rx="2"
+ sodipodi:cy="11"
+ sodipodi:cx="13"
+ id="path2909"
+ style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="rect2382-8-3"
+ d="M 12.365561,37.625293 C 12.366451,30 12.683225,22 12.683225,14 L 13,14 c 0,8 0.316775,16 0.294155,23.503193 l -0.928594,0.1221 z"
+ style="fill:url(#linearGradient3772);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:transform-center-y="1.7451722"
+ inkscape:transform-center-x="0.95582947"
+ sodipodi:nodetypes="ccccc"
+ id="rect2382-8-3-4"
+ d="M 13.185644,-15.645838 C 13.291322,-8.025004 12.99834,0.00478 13.110405,8 L 12.705358,8.03456 C 12.593294,0.039343 12.076182,-7.921314 12,-15.422492 l 1.185644,-0.223346 z"
+ style="fill:url(#linearGradient2919);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+ </g>
+</svg>
diff --git a/pitivi/ui/mainwindow.py b/pitivi/ui/mainwindow.py
index eb4b7e5..bcc4c2f 100644
--- a/pitivi/ui/mainwindow.py
+++ b/pitivi/ui/mainwindow.py
@@ -127,6 +127,7 @@ def create_stock_icons():
gtk.stock_add([
('pitivi-render', _('Render'), 0, 0, 'pitivi'),
('pitivi-split', _('Split'), 0, 0, 'pitivi'),
+ ('pitivi-keyframe', _('Keyframe'), 0, 0, 'pitivi'),
('pitivi-unlink', _('Unlink'), 0, 0, 'pitivi'),
# Translators: This is an action, the title of a button
('pitivi-link', _('Link'), 0, 0, 'pitivi'),
@@ -137,6 +138,7 @@ def create_stock_icons():
pixmaps = {
"pitivi-render" : "pitivi-render-24.png",
"pitivi-split" : "pitivi-split-24.svg",
+ "pitivi-keyframe" : "pitivi-keyframe-24.svg",
"pitivi-unlink" : "pitivi-unlink-24.svg",
"pitivi-link" : "pitivi-relink-24.svg",
"pitivi-ungroup" : "pitivi-unlink-24.svg",
@@ -1114,4 +1116,3 @@ class PitiviMainWindow(gtk.Window, Loggable):
self.project.pipeline.seek(position, format)
except:
self.debug("Seeking failed")
-
diff --git a/pitivi/ui/timeline.py b/pitivi/ui/timeline.py
index d0958be..9861262 100644
--- a/pitivi/ui/timeline.py
+++ b/pitivi/ui/timeline.py
@@ -41,10 +41,12 @@ from pitivi.ui.common import LAYER_HEIGHT_EXPANDED, LAYER_SPACING
from pitivi.timeline.timeline import MoveContext
from pitivi.utils import Seeker
from pitivi.ui.filelisterrordialog import FileListErrorDialog
+from pitivi.ui.curve import Curve
# tooltip text for toolbar
DELETE = _("Delete Selected")
SPLIT = _("Split clip at playhead position")
+KEYFRAME = _("Create a keyframe")
ZOOM_IN = _("Zoom In")
ZOOM_OUT = _("Zoom Out")
UNLINK = _("Break links between clips")
@@ -66,6 +68,7 @@ ui = '''
<menu action="Timeline">
<placeholder name="Timeline">
<menuitem action="Split" />
+ <menuitem action="Keyframe" />
<separator />
<menuitem action="DeleteObj" />
<menuitem action="LinkObj" />
@@ -79,6 +82,7 @@ ui = '''
<placeholder name="Timeline">
<separator />
<toolitem action="Split" />
+ <toolitem action="Keyframe" />
<separator />
<toolitem action="DeleteObj" />
<toolitem action="UnlinkObj" />
@@ -294,6 +298,8 @@ class Timeline(gtk.Table, Loggable, Zoomable):
playhead_actions = (
("Split", "pitivi-split", _("Split"), "S", SPLIT,
self.split),
+ ("Keyframe", "pitivi-keyframe", _("Keyframe"), "K", KEYFRAME,
+ self.keyframe),
)
actiongroup = gtk.ActionGroup("timelinepermanent")
@@ -628,3 +634,26 @@ class Timeline(gtk.Table, Loggable, Zoomable):
self.app.action_log.commit()
# work-around for 603149
self.project.seeker.seek(self._position)
+
+ def keyframe(self, action):
+ timeline_position = self._position
+ selected = self.timeline.selection.getSelectedTrackObjs()
+
+ for obj in selected:
+ keyframe_exists = False
+
+ position_in_obj = timeline_position - obj.start
+ interpolators = obj.getInterpolators()
+ for value in interpolators:
+ interpolator = obj.getInterpolator(value)
+ keyframes = interpolator.getInteriorKeyframes()
+ for kf in keyframes:
+ if kf.getTime() == position_in_obj:
+ keyframe_exists = True
+ self.app.action_log.begin("remove volume point")
+ interpolator.removeKeyframe(kf)
+ self.app.action_log.commit()
+ if keyframe_exists == False:
+ self.app.action_log.begin("add volume point")
+ interpolator.newKeyframe(position_in_obj)
+ self.app.action_log.commit()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]