Commit 2539522f authored by shibakaneki's avatar shibakaneki

Merge branch 'master' of github.com:Sankore/Sankore-3.1

Conflicts:
	resources/sankore.qrc
	src/adaptors/UBSvgSubsetAdaptor.cpp
	src/adaptors/UBSvgSubsetAdaptor.h
	src/gui/UBDockPalette.cpp
	src/gui/UBDockPalette.h
	src/gui/UBLibPalette.cpp
	src/gui/UBNavigatorPalette.cpp
parents cd9820ab d98ceb6c
......@@ -7,8 +7,8 @@ CONFIG += debug_and_release \
no_include_pwd
VERSION_MAJ = 1
VERSION_MIN = 15
VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error
VERSION_MIN = 20
VERSION_TYPE = r # a = alpha, b = beta, r = release, other => error
VERSION_PATCH = 00
VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}"
......
<d!`
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
<d!`
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In -->
<!DOCTYPE svg [
<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
]>
<svg version="1.2" baseProfile="tiny"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
x="0px" y="0px" width="96px" height="96px" viewBox="0 0 96 96" overflow="visible" xml:space="preserve">
<defs>
</defs>
<g id="XMLID_1_">
<path fill="none" stroke="#000000" stroke-miterlimit="10" d="M0.8,63.9"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="38.2183" y1="69.75" x2="38.2183" y2="0.75">
<stop offset="0" style="stop-color:#B7B6B7"/>
<stop offset="1" style="stop-color:#D9D9DE"/>
<a:midPointStop offset="0" style="stop-color:#B7B6B7"/>
<a:midPointStop offset="0.4847" style="stop-color:#B7B6B7"/>
<a:midPointStop offset="1" style="stop-color:#D9D9DE"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M75.7,17.1V12c0-1.2-1-2.3-2.3-2.3H30.7V3.8c0-1.7-1.3-3-3-3h-24c-1.7,0-3,1.3-3,3v60
c0,3.3,1.1,6,2.8,6c1.7,0,2.7-2.7,3.2-6l5.7-44.4c0.2-1.2,1.3-2.2,2.6-2.2H75.7"/>
<path fill="none" stroke="#000000" stroke-miterlimit="10" d="M0.8,63.9"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="45.7817" y1="69.7832" x2="45.7817" y2="17.0337">
<stop offset="0" style="stop-color:#ECECED"/>
<stop offset="1" style="stop-color:#FFFFFF"/>
<a:midPointStop offset="0" style="stop-color:#ECECED"/>
<a:midPointStop offset="0.4847" style="stop-color:#ECECED"/>
<a:midPointStop offset="1" style="stop-color:#FFFFFF"/>
</linearGradient>
<path fill="url(#SVGID_2_)" d="M3.5,69.7c1.7,0,2.7-2.7,3.2-6l5.8-44.4C12.6,18,13.8,17,15,17l71.1,0.1c1.2,0,2.1,1,1.9,2.2
l-7.9,42.2c-0.2,1.2-0.8,3.2-1.2,4.3c0,0-1.5,3.9-3.2,3.9L4.3,69.7L3.5,69.7z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="47.1133" y1="69.75" x2="47.1133" y2="19.7076">
<stop offset="0" style="stop-color:#C7C8CC"/>
<stop offset="4.531335e-03" style="stop-color:#C8C9CD"/>
<stop offset="0.1361" style="stop-color:#D5D5DA"/>
<stop offset="0.2577" style="stop-color:#D9D9DE"/>
<stop offset="1" style="stop-color:#E5E5E9"/>
<a:midPointStop offset="0" style="stop-color:#C7C8CC"/>
<a:midPointStop offset="0.3095" style="stop-color:#C7C8CC"/>
<a:midPointStop offset="0.2577" style="stop-color:#D9D9DE"/>
<a:midPointStop offset="0.4847" style="stop-color:#D9D9DE"/>
<a:midPointStop offset="1" style="stop-color:#E5E5E9"/>
</linearGradient>
<path fill="url(#SVGID_3_)" d="M6.2,69.8c1.6,0,2.6-2.5,3.1-5.7l5.5-42.2c0.2-1.2,1.3-2.1,2.5-2.1h68.9c1.2,0,2,1,1.8,2.1
l-7.6,40.1c-0.2,1.2-0.8,3-1.2,4.1c0,0-1.5,3.7-3.1,3.7H6.9H6.2z"/>
<g>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="3.6626" y1="43.4033" x2="75.8658" y2="43.4033">
<stop offset="0" style="stop-color:#828584"/>
<stop offset="6.628114e-03" style="stop-color:#878A89"/>
<stop offset="3.552453e-02" style="stop-color:#999C9C"/>
<stop offset="6.966200e-02" style="stop-color:#A6A9A9"/>
<stop offset="0.1136" style="stop-color:#AEB0B1"/>
<stop offset="0.2025" style="stop-color:#B0B2B3"/>
<stop offset="0.4962" style="stop-color:#ADAFB0"/>
<stop offset="0.6903" style="stop-color:#A5A7A7"/>
<stop offset="0.8549" style="stop-color:#969999"/>
<stop offset="1" style="stop-color:#828584"/>
<a:midPointStop offset="0" style="stop-color:#828584"/>
<a:midPointStop offset="0.1707" style="stop-color:#828584"/>
<a:midPointStop offset="0.2025" style="stop-color:#B0B2B3"/>
<a:midPointStop offset="0.7846" style="stop-color:#B0B2B3"/>
<a:midPointStop offset="1" style="stop-color:#828584"/>
</linearGradient>
<path fill="url(#SVGID_4_)" d="M3.7,69c0.7-0.3,1.7-1.9,2.3-5.4l5.7-44.4c0.2-1.6,1.7-2.9,3.3-2.9h60.8v1.5H15
c-0.9,0-1.7,0.7-1.8,1.6L7.5,63.8c-0.7,4.3-2,6.5-3.7,6.6L3.7,69z"/>
</g>
<path fill="none" stroke="#828584" stroke-width="1.5" stroke-miterlimit="10" d="M75.7,17.1V12c0-1.2-1-2.3-2.3-2.3H30.7V3.8
c0-1.7-1.3-3-3-3h-24c-1.7,0-3,1.3-3,3v60c0,3.3,1.1,6,2.8,6"/>
<path fill="none" stroke="#828584" stroke-width="1.5" stroke-miterlimit="10" d="M75.8,17.1h10.3c1.2,0,2.1,1,1.9,2.2l-7.8,42.2
c-0.2,1.2-0.8,3.2-1.2,4.3c0,0-1.5,3.9-3.2,3.9H3.5"/>
</g>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="53.6504" y1="83.4883" x2="53.6504" y2="37.084">
<stop offset="0" style="stop-color:#D35F5F"/>
<stop offset="1" style="stop-color:#F66C6C"/>
<a:midPointStop offset="0" style="stop-color:#D35F5F"/>
<a:midPointStop offset="0.5" style="stop-color:#D35F5F"/>
<a:midPointStop offset="1" style="stop-color:#F66C6C"/>
</linearGradient>
<path fill="url(#SVGID_5_)" d="M59.2,41.6c-5.9,5-8.4,13.2-10.1,17.4c-2.3,5.7-3.7,8.7-6.5,12.2c-2.8,3.3-8.3,3.1-8.3,3.1v9.2
c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-9.2
C73,37.1,65.1,36.6,59.2,41.6z"/>
<path fill="#C30101" d="M59.2,44.6c-4.4,5-7.4,13.2-9.1,17.4c-2.3,5.7-4,9.4-7.5,12.2c-2.9,2.3-8.3,2.1-8.3,2.1v7.2
c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-7.2
C73,39.1,64.4,38.6,59.2,44.6z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="33.8525" y1="60.3037" x2="72.5508" y2="60.3037">
<stop offset="0" style="stop-color:#D80101"/>
<stop offset="1" style="stop-color:#F72121"/>
<a:midPointStop offset="0" style="stop-color:#D80101"/>
<a:midPointStop offset="0.5" style="stop-color:#D80101"/>
<a:midPointStop offset="1" style="stop-color:#F72121"/>
</linearGradient>
<path fill="url(#SVGID_6_)" d="M58.7,44.6c-4.4,5-7.4,13.2-9.1,17.4c-2.3,5.7-4,9.4-7.5,12.2c-2.9,2.3-8.3,2.1-8.3,2.1v5.2
c0,0,8.2,0.8,13.8-4.5c4.2-4,6.2-9.8,7.9-14.2h12.1v-7.2l-9.3,1.6c0.7-2.6,2.6-6.7,4.4-8.7c4.1-4.5,9.8-4.2,9.8-4.2v-5.2
C72.6,39.1,64,38.6,58.7,44.6z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="58.3408" y1="56.4512" x2="68.0664" y2="56.4512">
<stop offset="0" style="stop-color:#D35F5F"/>
<stop offset="1" style="stop-color:#F66C6C"/>
<a:midPointStop offset="0" style="stop-color:#D35F5F"/>
<a:midPointStop offset="0.5" style="stop-color:#D35F5F"/>
<a:midPointStop offset="1" style="stop-color:#F66C6C"/>
</linearGradient>
<polygon fill="url(#SVGID_7_)" points="68.1,57.2 58.3,57.2 60.8,55.7 68.1,55.7 "/>
<path fill="none" stroke="#7E0606" stroke-linejoin="round" stroke-miterlimit="10" d="M59.2,41.6c-5.9,5-8.4,13.2-10.1,17.4
c-2.3,5.7-3.7,8.7-6.5,12.2c-2.8,3.3-8.3,3.1-8.3,3.1v9.2c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3
c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-9.2C73,37.1,65.1,36.6,59.2,41.6z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In -->
<!DOCTYPE svg [
<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
]>
<svg version="1.2" baseProfile="tiny"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
x="0px" y="0px" width="96px" height="96px" viewBox="0 0 96 96" overflow="visible" xml:space="preserve">
<defs>
</defs>
<path fill="#FFFFFF" d="M40.2,0.8c-3.3,0-39.5,0-39.5,0v79h60c0,0,0-57.8,0-60.7c0-1.7-0.8-3.9-1.8-5.1c-1.6-1.9-10.3-9.1-12.1-10.8
C45.7,2.1,41.2,0.8,40.2,0.8z"/>
<image width="55" height="72" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAABICAYAAABSr21SAAAACXBIWXMAAAsSAAALEgHS3X78AAAA
GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAOFJREFUeNrsmbEOgkAUBG+JnQL+
/1d6IDVqDImYSC7Q3Ftne4vJPHZRdcvjnCrNtW915POqGe4oaJOCZI+EMHB7AJWH+5yCpe8usjO3
pFRISHOlFpsUPFtywsNtASqPsc9ydaLt+kQ1GMG90n0APuEmK7g34Fk2z9x3FmGWcFZt+cuetblT
kjGcrM0Zq6MtKRTM0ZaY4yydd462BI4pwBxwhW3JVx7gaEvMAfff75b8+gUcU4A52hJzTAFtiTna
EnOcJVPAFNCWnCVwTIHx38a0Jc8ccMABxxTQlsBVl4cAAwAfQzexj9E6ZQAAAABJRU5ErkJggg==" transform="matrix(1 0 0 1 3.5 4.5)">
</image>
<image width="29" height="24" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAYCAYAAAAGXva8AAAACXBIWXMAAAsSAAALEgHS3X78AAAA
GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAjJJREFUeNqclm1S4zAMhiWlMHsD
9v6HAkqZblk+Bn7ABZhY2JZky447CQ1orKSNH7+SLHcH3fU9z5zGMM8whwAh2xzvza/29+YG4YKL
RkBmdhaAg/iBW+jr2ys/vzzzxVADFqg46b9bRF2MwU+nEx//Hfkipf4SMAsYBARefRqDmMEPhwNv
hnqVBhQHFAwKlodefQ4519zf7+/5YqWKa8DgwPW5qrdcxwK8u7vl/cOefw9dWa8uqfmaqdcbODyO
w019aMuFdUR/UzwsY/IQEYgoW/Kzxb9RgdF5Xp0WdFIZ9ROEOjlGkAJpmgScTT5/+v/UgOlqmpYb
HBWIVUULUVAaKSmMhgKcHDg/U0t7ej2neWIHBAfMEBfODKpKJ1NtalXx+8d7Bu/GPByoYufH78Tl
YoirJllQ2jalsvwiNQqodj6nrhC8Om85pCWPBJOFdKrPzEen/PPri7PSlNe+igUUX4hLJzZpUIxp
2ShsO2OTHiqVbWEu4e3BbWVWnoUmdr/oJxi6ltnEdxBigTc5PQcmWXKkxNxFFFlTQu5UcpdTU6xQ
hS8KyYNtZcFUcu1FyFI8Bci82OxNTTjFw+odgTMuCDmlOJ0uaKFlrq3RKV1uNWpzugVcz9gIQz3c
u0OgbWsGrAWFiLD6c6Ov6nSS9Ac62KHvN6q2TOhC/Of6Gndr0L64suIRsAH7bYONf7YjrYHRTdAc
Z4Mm40fr87utv2vshWETQdz8/q+ga/AtMLt+BBgAihO9fP/BydQAAAAASUVORK5CYII=" transform="matrix(1 0 0 1 29.5 4.5)">
</image>
<path fill="#FFFFFF" d="M43.7,16.4c1.8,0,10.5-0.2,12.1,0.4c1.6,0.7,4,4.5,4,6.5v-8.5L39.9,1.3c0,0,2.4,2.2,3.1,4.8
C43.7,8.7,43.7,16.4,43.7,16.4z"/>
<path fill="none" stroke="#A1A9AD" stroke-width="1.5" stroke-linejoin="round" stroke-miterlimit="10" d="M41.5,0.8
c-3.3,0-40.8,0-40.8,0v79h60c0,0,0-57.4,0-60.2c0-0.8-0.1-3.5-1-4.7C58.2,12.9,48,4.1,46.1,2.4C45,1.3,42.4,0.8,41.5,0.8z"/>
<path fill="#FFFFFF" d="M40.2,0.8c-3.3,0-39.5,0-39.5,0v79h60c0,0,0-57.8,0-60.7c0-1.7-0.8-3.9-1.8-5.1c-1.6-1.9-10.3-9.1-12.1-10.8
C45.7,2.1,41.2,0.8,40.2,0.8z"/>
<image width="55" height="72" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAABICAYAAABSr21SAAAACXBIWXMAAAsSAAALEgHS3X78AAAA
GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAOFJREFUeNrsmbEOgkAUBG+JnQL+
/1d6IDVqDImYSC7Q3Ftne4vJPHZRdcvjnCrNtW915POqGe4oaJOCZI+EMHB7AJWH+5yCpe8usjO3
pFRISHOlFpsUPFtywsNtASqPsc9ydaLt+kQ1GMG90n0APuEmK7g34Fk2z9x3FmGWcFZt+cuetblT
kjGcrM0Zq6MtKRTM0ZaY4yydd462BI4pwBxwhW3JVx7gaEvMAfff75b8+gUcU4A52hJzTAFtiTna
EnOcJVPAFNCWnCVwTIHx38a0Jc8ccMABxxTQlsBVl4cAAwAfQzexj9E6ZQAAAABJRU5ErkJggg==" transform="matrix(1 0 0 1 3.5 4.5)">
</image>
<image width="29" height="24" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAYCAYAAAAGXva8AAAACXBIWXMAAAsSAAALEgHS3X78AAAA
GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAiJJREFUeNqclktLxDAQx/Nob8qu
+iFEL4IeRG+in1oRX6CIIoooeFDwGyh4a9rYyew0j0623c3ukD7S/Gamk38qRdJ+fv8s9HVdO2ua
pjtGM93x9tamFEs0yQGttT2oMSbqPbwRe7s7cikoAaERiAeato8jprGHB/uj4Iq7CJFS761x1jTW
AdAhn3pw6OLq2o6GhlGGYLL2LHHAOjg64bNhKiNOz87tqPSGUJwwLh43YWCYYm9VVYnKVO4YntVK
i6IoxMnxkRyd3qFmbZKR9uf+swJs4FW0v8urGzZqlaZWyvm1ALfDITBeSSWkki7CsiyF1hqvtfdu
7+7tQpHCQ6nBG/HnSiiFVujCpbQsStcDGAzGPTw+RWA1nazIHIyDKxXDwGByB2yjdJaAYczzy6sd
jJSLEh5GoJzBVDexpkhLBBLUO6fF2/uHAxc5YAimB2GJYK9dMVFBwRioWmtV/K6DTKCDeD8Lxclt
BAaY1rhu0aiw/Pg4U6rLCEQK9vn1bVkZDPU3lUQve6i7GCEqFTnCZQmAFDEr+JwGe+mrg2t1J4te
uWhJ9YuOIpa5rS1Up9RSR2LJ9NC02qmwWCUYAw7TmkL7y8xH667llsw8MJ3HO5DIQlP4XM3jwH1g
P8rBtT4k7lxxpeBwD84pG6V2Y30iR+303HIaipITGbC16aoc/W3DbfShA+E5p9vQSOcX/prLwYda
uLEs9Qm5CJzbxf4FGADWJXT0zm6P3AAAAABJRU5ErkJggg==" transform="matrix(1 0 0 1 29.5 4.5)">
</image>
<path fill="#FFFFFF" d="M43.7,16.4c1.8,0,10.5-0.2,12.1,0.4c1.6,0.7,4,4.5,4,6.5v-8.5L39.9,1.3c0,0,2.4,2.2,3.1,4.8
C43.7,8.7,43.7,16.4,43.7,16.4z"/>
<path fill="none" stroke="#A1A9AD" stroke-width="1.5" stroke-linejoin="round" stroke-miterlimit="10" d="M41.5,0.8
c-3.3,0-40.8,0-40.8,0v79h60c0,0,0-57.4,0-60.2c0-0.8-0.1-3.5-1-4.7C58.2,12.9,48,4.1,46.1,2.4C45,1.3,42.4,0.8,41.5,0.8z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="31.4927" y1="93.2764" x2="31.4927" y2="46.8726">
<stop offset="0" style="stop-color:#D25F5F"/>
<stop offset="1" style="stop-color:#EA6C6C"/>
<a:midPointStop offset="0" style="stop-color:#D25F5F"/>
<a:midPointStop offset="0.5" style="stop-color:#D25F5F"/>
<a:midPointStop offset="1" style="stop-color:#EA6C6C"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M37,51.4c-5.9,5-8.4,13.2-10.1,17.4c-2.3,5.7-3.7,8.7-6.5,12.2c-2.8,3.3-8.3,3.1-8.3,3.1v9.2
c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-9.2
C50.8,46.9,42.9,46.4,37,51.4z"/>
<path fill="#C10B1D" d="M37,54.4c-4.4,5-7.4,13.2-9.1,17.4c-2.3,5.7-4,9.4-7.5,12.2c-2.9,2.3-8.3,2.1-8.3,2.1v7.2
c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-7.2
C50.8,48.9,42.3,48.4,37,54.4z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="11.6943" y1="70.0918" x2="50.3926" y2="70.0918">
<stop offset="0" style="stop-color:#D50B1B"/>
<stop offset="1" style="stop-color:#E32E2D"/>
<a:midPointStop offset="0" style="stop-color:#D50B1B"/>
<a:midPointStop offset="0.5" style="stop-color:#D50B1B"/>
<a:midPointStop offset="1" style="stop-color:#E32E2D"/>
</linearGradient>
<path fill="url(#SVGID_2_)" d="M36.6,54.4c-4.4,5-7.4,13.2-9.1,17.4c-2.3,5.7-4,9.4-7.5,12.2C17,86.1,11.7,86,11.7,86v5.2
c0,0,8.2,0.8,13.8-4.5c4.2-4,6.2-9.8,7.9-14.2h12.1v-7.2L36.2,67c0.7-2.6,2.6-6.7,4.4-8.7c4.1-4.5,9.8-4.2,9.8-4.2v-5.2
C50.4,48.9,41.8,48.4,36.6,54.4z"/>
<path fill="none" stroke="#7E1518" stroke-linejoin="round" stroke-miterlimit="10" d="M37,51.4c-5.9,5-8.4,13.2-10.1,17.4
c-2.3,5.7-3.7,8.7-6.5,12.2c-2.8,3.3-8.3,3.1-8.3,3.1v9.2c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3
c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-9.2C50.8,46.9,42.9,46.4,37,51.4z"/>
</svg>
resources/images/toolbar/stylusTab.png

2.08 KB | W: | H:

resources/images/toolbar/stylusTab.png

3.13 KB | W: | H:

resources/images/toolbar/stylusTab.png
resources/images/toolbar/stylusTab.png
resources/images/toolbar/stylusTab.png
resources/images/toolbar/stylusTab.png
  • 2-up
  • Swipe
  • Onion skin
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
function addChar(input, character) {
if(input.value == null || input.value == "0")
input.value = character
else
input.value += character
}
function cos(form) {
form.display.value = Math.cos(form.display.value);
}
function sin(form) {
form.display.value = Math.sin(form.display.value);
}
function tan(form) {
form.display.value = Math.tan(form.display.value);
}
function sqrt(form) {
form.display.value = Math.sqrt(form.display.value);
}
function ln(form) {
form.display.value = Math.log(form.display.value);
}
function exp(form) {
form.display.value = Math.exp(form.display.value);
}
function deleteChar(input) {
input.value = input.value.substring(0, input.value.length - 1)
}
function changeSign(input) {
if(input.value.substring(0, 1) == "-")
input.value = input.value.substring(1, input.value.length)
else
input.value = "-" + input.value
}
function square(form) {
form.display.value = eval(form.display.value) * eval(form.display.value)
}
function checkNum(str) {
for (var i = 0; i < str.length; i++) {
var ch = str.substring(i, i+1)
if (ch < "0" || ch > "9") {
if (ch != "/" && ch != "*" && ch != "+" && ch != "-" && ch != "."
&& ch != "(" && ch!= ")") {
$("#display").text("ERROR");
return false
}
}
}
return true
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
jQuery.fn.center = function(params) {
var options = {
vertical: true,
horizontal: true
}
op = jQuery.extend(options, params);
this.each(function(){
//initializing variables
var $self = jQuery(this);
//get the dimensions using dimensions plugin
var width = $self.width();
var height = $self.height();
//get the paddings
var paddingTop = parseInt($self.css("padding-top"));
var paddingBottom = parseInt($self.css("padding-bottom"));
//get the borders
var borderTop = parseInt($self.css("border-top-width"));
var borderBottom = parseInt($self.css("border-bottom-width"));
//get the media of padding and borders
var mediaBorder = (borderTop+borderBottom)/2;
var mediaPadding = (paddingTop+paddingBottom)/2;
//get the type of positioning
var positionType = $self.parent().css("position");
// get the half minus of width and height
var halfWidth = (width/2)*(-1);
var halfHeight = ((height/2)*(-1))-mediaPadding-mediaBorder;
// initializing the css properties
var cssProp = {
position: 'absolute'
};
if(op.vertical) {
cssProp.height = height;
cssProp.top = '50%';
cssProp.marginTop = halfHeight;
}
if(op.horizontal) {
cssProp.width = width;
cssProp.left = '50%';
cssProp.marginLeft = halfWidth;
}
//check the current position
if(positionType == 'static') {
$self.parent().css("position","relative");
}
//aplying the css
$self.css(cssProp);
});
};
\ No newline at end of file
/**
* .disableTextSelect - Disable Text Select Plugin
*
* Version: 1.1
* Updated: 2007-11-28
*
* Used to stop users from selecting text
*
* Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/)
*
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
**/
/**
* Requirements:
* - jQuery (John Resig, http://www.jquery.com/)
**/
(function($) {
if ($.browser.mozilla) {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).css({
'MozUserSelect' : 'none'
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).css({
'MozUserSelect' : ''
});
});
};
} else if ($.browser.msie) {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).bind('selectstart.disableTextSelect', function() {
return false;
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).unbind('selectstart.disableTextSelect');
});
};
} else {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).bind('mousedown.disableTextSelect', function() {
return false;
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).unbind('mousedown.disableTextSelect');
});
};
}
})(jQuery);
\ No newline at end of file
/*
* jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php
*
* Uses the built In easIng capabilities added In jQuery 1.1
* to offer multiple easIng options
*
* Copyright (c) 2007 George Smith
* Licensed under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*/
// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.extend( jQuery.easing,
{
easeInQuad: function (x, t, b, c, d) {
return c*(t/=d)*t + b;
},
easeOutQuad: function (x, t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
},
easeInOutQuad: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
},
easeInCubic: function (x, t, b, c, d) {
return c*(t/=d)*t*t + b;
},
easeOutCubic: function (x, t, b, c, d) {
return c*((t=t/d-1)*t*t + 1) + b;
},
easeInOutCubic: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t + b;
return c/2*((t-=2)*t*t + 2) + b;
},
easeInQuart: function (x, t, b, c, d) {
return c*(t/=d)*t*t*t + b;
},
easeOutQuart: function (x, t, b, c, d) {
return -c * ((t=t/d-1)*t*t*t - 1) + b;
},
easeInOutQuart: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
return -c/2 * ((t-=2)*t*t*t - 2) + b;
},
easeInQuint: function (x, t, b, c, d) {
return c*(t/=d)*t*t*t*t + b;
},
easeOutQuint: function (x, t, b, c, d) {
return c*((t=t/d-1)*t*t*t*t + 1) + b;
},
easeInOutQuint: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
return c/2*((t-=2)*t*t*t*t + 2) + b;
},
easeInSine: function (x, t, b, c, d) {
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
},
easeOutSine: function (x, t, b, c, d) {
return c * Math.sin(t/d * (Math.PI/2)) + b;
},
easeInOutSine: function (x, t, b, c, d) {
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
},
easeInExpo: function (x, t, b, c, d) {
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
},
easeOutExpo: function (x, t, b, c, d) {
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
},
easeInOutExpo: function (x, t, b, c, d) {
if (t==0) return b;
if (t==d) return b+c;
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
},
easeInCirc: function (x, t, b, c, d) {
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
},
easeOutCirc: function (x, t, b, c, d) {
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
},
easeInOutCirc: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
},
easeInElastic: function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
},
easeOutElastic: function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
},
easeInOutElastic: function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
},
easeInBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c*(t/=d)*t*((s+1)*t - s) + b;
},
easeOutBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
},
easeInOutBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
},
easeInBounce: function (x, t, b, c, d) {
return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
},
easeOutBounce: function (x, t, b, c, d) {
if ((t/=d) < (1/2.75)) {
return c*(7.5625*t*t) + b;
} else if (t < (2/2.75)) {
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
} else if (t < (2.5/2.75)) {
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
} else {
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
}
},
easeInOutBounce: function (x, t, b, c, d) {
if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
}
});
\ No newline at end of file
(function($) {
jQuery.fn.ubwidget = function(options) {
var settings = jQuery.extend({}, jQuery.fn.ubwidget.defaults, options);
DD_roundies.addRule('.ubw-standard-corners', '5px', true);
DD_roundies.addRule('.ubw-button-corners', '4px', true);
DD_roundies.addRule('.ubw-i-corners', '4px', true);
$(window)
.bind("blur", function(event){
})
.trigger("focus");
return this.each(function() {
var ubwbody = $(this)
.addClass("ubw-body");
var ubwcontainer = $("<div></div>")
.append(ubwbody)
.addClass("ubw-container")
.css({
width:settings.width,
height:settings.height
})
.disableTextSelect();
$('body').append(ubwcontainer);
});
};
// Default options
jQuery.fn.ubwidget.defaults = {
width:200,
height:250
};
// Shadows
jQuery.fn.ubwshadows = function(settings){
var shadow = $("<div class='ubw-shadow'></div>")
.addClass("ubw-standard-corners")
.css({
backgroundColor:"#333377",
opacity:".1",
filter: "alpha(opacity = 10)",
position:"absolute",
top:settings.t,
left:settings.l,
width:settings.w,
height:settings.h
});
$(this).before(shadow);
};
jQuery.fn.ubwbutton = function(size, arrows) {
var arrows = typeof(arrows) != "undefined" ? arrows = arrows : arrows = {top:0, right:0, bottom:0, left:0};
var button = null;
var scale = 0.20;
var url = "";
var buttonbody;
return this.each(function() {
button = $(this)
.addClass("ubw-button-wrapper")
.css({zIndex:0});
url = $(this).find("img").attr("src");
url = url.split(".");
var buttonContent = $("<table cellpadding='0' cellspacing='0' border='0' width='auto' height='100%'><tr><td height='auto' width='auto' valign='middle' align='center'></td></tr></table>")
.addClass("ubw-button-content");
buttonContent.find("td").html($(this).html());
$(this).empty();
var buttonCanvas = $("<div></div>")
.addClass("ubw-button-canvas")
.appendTo(button)
.html('<table width="auto" height="auto" cellpadding="0" cellspacing="0"><tr><td class="ubw-button-arrowTop" align="center"><img style="visibility:hidden; margin-bottom:-1px" src="images/arrows_out/top.png"></td></tr><tr><td><table width="auto" height="auto" border="0" cellpadding="0" cellspacing="0"><tr><td class="ubw-button-arrowLeft"><img style="visibility:hidden; margin-right:-1px" src="images/arrows_out/left.png"></td><td class="ubw-button-body"></td><td class="ubw-button-arrowRight"><img style="visibility:hidden; margin-left:-1px" src="images/arrows_out/right.png"></td></tr></table></td></tr><tr><td class="ubw-button-arrowBottom" align="center"><img style="visibility:hidden; margin-top:-1px" src="images/arrows_out/bottom.png"></td></tr></table>');
if(arrows.top)buttonCanvas.find(".ubw-button-arrowTop").children("img").css({visibility:"visible"});
if(arrows.right)buttonCanvas.find(".ubw-button-arrowRight").children("img").css({visibility:"visible"});
if(arrows.bottom)buttonCanvas.find(".ubw-button-arrowBottom").children("img").css({visibility:"visible"});
if(arrows.left)buttonCanvas.find(".ubw-button-arrowLeft").children("img").css({visibility:"visible"});
var buttonBody = buttonCanvas.find(".ubw-button-body")
.addClass("ubw-button-out")
.append(buttonContent)
.bind("mouseenter", buttonOverHandler)
.bind("mouseleave", buttonOutHandler)
.bind("mousedown", buttonDownHandler)
.bind("mouseup", buttonUpHandler)
.css({
width:size.w,
height:size.h
});
button.width(size.w+9).height(size.h+2);
buttonbody = buttonBody.find(".ubw-button-content");
});
function buttonOverHandler(e) {
buttonbody.find("img").attr("src", url[0]+"_over.png");
button.css({
zIndex:1
});
};
function buttonOutHandler(e){
buttonbody.find("img").attr("src", url[0]+".png");
button.css({
zIndex:0
});
};
function buttonDownHandler(e){
buttonbody.find("img").attr("src", url[0]+"_over_down.png");
};
function buttonUpHandler(e){
url[0] = url[0].replace("_down", "");
buttonbody.find("img").attr("src", url[0]+"_over.png");
};
};
jQuery.fn.ubwtoggle = function(activated, _firstFunc, _secondFunc) {
var activated = typeof(activated) != "undefined" ? activated = 1 : activated = 0;
return this.each(function(){
var button = $(this);
var buttonBody = button.find(".ubw-button-body");
var img = buttonBody.find("img");
var imgsrc = img.attr("src");
var firstFunc = _firstFunc;
var secondFunc = _secondFunc;
buttonBody
.toggle(
function(){
img.css({visibility:"hidden"});
firstFunc();
},
function(){
img.css({visibility:"visible"});
secondFunc();
}
);
if(activated){
buttonBody.trigger("click");
};
});
};
jQuery.fn.ubwidget.sliderbutton = function() {
};
jQuery.fn.ubwidget.inspector = function(_position, content, button){
var position = {x:_position.x, y:_position.y};
var catcher = $("<div id='ubw-catcher'></div>")
.css({
position:"absolute",
width:"100%",
height:"100%"
})
.mousedown(function(){
inspector.hide();
removeDropShadow();
catcher.hide();
//resizeubcanvas()
});
$("body").append(catcher);
catcher.hide();
var inspector = $("<div class='ubw-inspector'></div>")
.css({
left:position.x,
top:position.y
})
.append(content)
.appendTo($("body"))
.hide()
.disableTextSelect();
var inspectorWidth = inspector.width();
var inspectorHeight = inspector.height();
var windowWidth = $(window).width();
var windowHeight = $(window).height();
$("body").prepend(button);
button.addClass("ubw-rounded")
.click(function(){
catcher.show();
inspector.show();
dropShadow();
resizeubcanvas()
});
function dropShadow (){
inspector.ubwshadows({w:inspectorWidth+23,h:inspectorHeight+22,l:55,t:55})}
function removeDropShadow (){
$(".ubw-shadow").remove()}
// !!
$(".ubw-shadow")
.mousedown(function(){
inspector.hide();
removeDropShadow();
catcher.hide();
resizeubcanvas()
});
function resizeWidget(w, h){
window.resizeTo(w+2, h+2);
$("#indicator").remove();
var indicator = $("<div id='indicator'></div>")
.css({
width:w,
height:h,
position:"absolute",
left:0,
top:0,
border:"1px solid #ff0000"
});
//$("body").prepend(indicator);
}
function resizeubcanvas(){
if(inspector.css("display")=="none"){
resizeWidget(windowWidth, windowHeight);
return 0;
};
var inspectorbottom = inspector.position().top+inspector.height()+40;
var inspectorright = inspector.position().left+inspector.width()+40;
if($(window).height()<inspectorbottom){
resizeWidget($(window).width(), inspectorbottom)};
if($(window).width()<inspectorright){
resizeWidget(inspectorright, $(window).height())};
}
};
})(jQuery);
\ No newline at end of file
/**
* .disableTextSelect - Disable Text Select Plugin
*
* Version: 1.1
* Updated: 2007-11-28
*
* Used to stop users from selecting text
*
* Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/)
*
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
**/
/**
* Requirements:
* - jQuery (John Resig, http://www.jquery.com/)
**/
(function($) {
if ($.browser.mozilla) {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).css({
'MozUserSelect' : 'none'
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).css({
'MozUserSelect' : ''
});
});
};
} else if ($.browser.msie) {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).bind('selectstart.disableTextSelect', function() {
return false;
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).unbind('selectstart.disableTextSelect');
});
};
} else {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).bind('mousedown.disableTextSelect', function() {
return false;
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).unbind('mousedown.disableTextSelect');
});
};
}
})(jQuery);
\ No newline at end of file
......@@ -8,7 +8,6 @@
<title>Web Browser</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<!--DEFAULT FR-->
</head>
<body>
......@@ -43,6 +42,9 @@
if(window.sankore){
url = window.sankore.preference("url", "");
if(sankore.preference("browserHistory", ""))
references = sankore.preference("browserHistory", "").split(",");
currentHistory = parseInt(sankore.preference("browserIndex", "0"));
}else{
url = "";
};
......@@ -141,6 +143,8 @@
if(window.sankore){
window.sankore.setPreference("url", $("#textbox").val());
window.sankore.setPreference("browserHistory", references.toString());
window.sankore.setPreference("browserIndex", currentHistory);
};
$("#embeded-content").hide();
......@@ -152,6 +156,9 @@
clearTimeout(resizer);
resizerIndex = 0;
$("#web-content")
.attr("width", globalWidth - 25)
.attr("height", globalHeight - 90);
$("#web-content").show();
return false;
};
......
......@@ -203,7 +203,6 @@
<file>images/toolbar/tutorial.png</file>
<file>images/edit-mode.svg</file>
<file>images/save.svg</file>
<file>images/toolbar/stylusTab.png</file>
<file>images/libpalette/social.png</file>
<file>images/navig_arrow.png</file>
<file>images/flags/ar.png</file>
......@@ -308,5 +307,12 @@
<file>images/virtual.keyboard/29/capslock.png</file>
<file>images/virtual.keyboard/29/tab.png</file>
<file>images/toolPalette/cacheTool.png</file>
<file>images/libpalette/FlashCategory.svg</file>
<file>images/libpalette/FlashIcon.svg</file>
<file>images/toolbar/stylusTab.png</file>
<file>images/library_close.png</file>
<file>images/library_open.png</file>
<file>images/pages_close.png</file>
<file>images/pages_open.png</file>
</qresource>
</RCC>
......@@ -902,6 +902,7 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene()
{
QGraphicsItem *item = items.takeFirst();
UBGraphicsPolygonItem *polygonItem = qgraphicsitem_cast<UBGraphicsPolygonItem*> (item);
if (polygonItem && polygonItem->isVisible())
......@@ -1078,6 +1079,13 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene()
continue;
}
UBGraphicsTriangle *triangle = qgraphicsitem_cast<UBGraphicsTriangle*> (item);
if (triangle && triangle->isVisible())
{
triangleToSvg(triangle);
continue;
}
}
if (openStroke)
......@@ -1905,7 +1913,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsItemFromSvg(QGraphicsItem* g
{
if (!svgX.isNull() && !svgY.isNull())
{
gItem->setPos(svgX.toString().toFloat(), svgY.toString().toFloat());
#ifndef Q_WS_X11
gItem->setPos(svgX.toString().toFloat(), svgY.toString().toFloat());
#endif
}
}
......@@ -2540,7 +2550,6 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::protractorToSvg(UBGraphicsProtractor
</ub:protractor>
*/
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "protractor");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->rect().x()));
......@@ -2607,6 +2616,39 @@ UBGraphicsProtractor* UBSvgSubsetAdaptor::UBSvgSubsetReader::protractorFromSvg()
return protractor;
}
void UBSvgSubsetAdaptor::UBSvgSubsetWriter::triangleToSvg(UBGraphicsTriangle *item)
{
/**
*
* sample
*
<ub:triangle x="250" y="150" width="122" height="67"...>
</ub:triangle>
*/
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "triangle");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->boundingRect().x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(item->boundingRect().y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
mXmlWriter.writeAttribute("orientation", UBGraphicsTriangle::orientationToStr(item->getOrientation()));
QString zs;
zs.setNum(item->zValue(), 'f'); // 'f' keeps precision
mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "z-value", zs);
UBItem* ubItem = dynamic_cast<UBItem*>(item);
if (ubItem)
{
mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(ubItem->uuid()));
}
mXmlWriter.writeEndElement();
}
UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg()
{
UBGraphicsTriangle* triangle = new UBGraphicsTriangle();
......@@ -2620,16 +2662,18 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg()
QStringRef svgY = mXmlReader.attributes().value("y");
QStringRef svgWidth = mXmlReader.attributes().value("width");
QStringRef svgHeight = mXmlReader.attributes().value("height");
QStringRef orientationStringRef = mXmlReader.attributes().value("orientation");
UBGraphicsTriangle::UBGraphicsTriangleOrientation orientation = UBGraphicsTriangle::orientationFromStr(orientationStringRef);
triangle->setOrientation(orientation);
if (!svgX.isNull() && !svgY.isNull() && !svgWidth.isNull() && !svgHeight.isNull())
if (!svgX.isNull() && !svgY.isNull() && !svgWidth.isNull() && !svgHeight.isNull())
{
triangle->setRect(svgX.toString().toFloat(), svgY.toString().toFloat(), svgWidth.toString().toFloat(), svgHeight.toString().toFloat(), orientation);
}
triangle->setVisible(true);
triangle->setVisible(true);
return triangle;
}
......
......@@ -214,6 +214,7 @@ class UBSvgSubsetAdaptor
void compassToSvg(UBGraphicsCompass *item);
void protractorToSvg(UBGraphicsProtractor *item);
void cacheToSvg(UBGraphicsCache* item);
void triangleToSvg(UBGraphicsTriangle *item);
void writeSvgElement();
private:
......
......@@ -21,7 +21,7 @@
#include "ui_webPublishing.h"
#include "UBAbstractPublisher.h"
#define DOCPUBLICATION_URL "http://planetsankore-staging.devxwiki.com/xwiki/bin/view/CreateResources/UniboardUpload?xpage=plain&outputSyntax=plain"
#define DOCPUBLICATION_URL "http://planete.sankore.org/xwiki/bin/view/CreateResources/UniboardUpload?xpage=plain&outputSyntax=plain"
#define XWIKI_ORIGIN_HEADER "http://sankore.devxwiki.com"
typedef struct
......
......@@ -60,11 +60,11 @@
UBBoardPaletteManager::UBBoardPaletteManager(QWidget* container, UBBoardController* pBoardController)
: QObject(container)
, mKeyboardPalette(0)
, mContainer(container)
, mBoardControler(pBoardController)
, mStylusPalette(0)
, mZoomPalette(0)
, mKeyboardPalette(0)
, mNavigPalette(NULL)
, mLibPalette(NULL)
, mBackgroundsPalette(0)
......@@ -132,7 +132,9 @@ void UBBoardPaletteManager::setupPalettes()
if (UBPlatformUtils::hasVirtualKeyboard())
{
mKeyboardPalette = UBKeyboardPalette::create(0);
#ifndef Q_WS_MAC
mKeyboardPalette->setParent(mContainer);
#endif
}
mZoomPalette = new UBZoomPalette(mContainer);
......
......@@ -245,7 +245,7 @@ QList<UBLibElement*> UBLibraryController::rootCategoriesList()
element->setMoveable(false);
categories << element;
categoryImage = new QImage(":images/libpalette/InteractivesCategory.svg");
categoryImage = new QImage(":images/libpalette/FlashCategory.svg");
element = new UBLibElement(eUBLibElementType_Folder, mAnimationUserDirectoryPath, tr("Animations", "Animations category element"));
element->setThumbnail(categoryImage);
element->setMoveable(false);
......
......@@ -34,7 +34,6 @@ class UBControlView;
class UBPreferencesController;
class UBResources;
class UBSettings;
class UBLicense;
class UBPersistenceManager;
class UBApplicationController;
class UBDocumentController;
......
......@@ -519,15 +519,10 @@ void UBApplicationController::ftpCommandFinished(int id, bool error)
mFtp->close();
}
else{
// 3 stand for the third command we have sent
// in our case
// 1->connect
// 2->login
// 3->get
if (id == 3){
QString updateString = QString(mFtp->readAll());
QString responseString = QString(mFtp->readAll());
if (!responseString.isEmpty() && responseString.contains("version:") && responseString.contains("url:")){
mFtp->close();
downloadJsonFinished(updateString);
downloadJsonFinished(responseString);
}
}
}
......
......@@ -51,6 +51,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
, mTransparentDrawingView(0)
, mTransparentDrawingScene(0)
, mDesktopPalette(NULL)
, mKeyboardPalette(0)
, mDesktopToolsPalette(NULL)
, mDesktopPenPalette(NULL)
, mDesktopMarkerPalette(NULL)
......@@ -65,7 +66,6 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
, mbArrowClicked(false)
, mBoardStylusTool(UBStylusTool::Pen)
, mDesktopStylusTool(UBStylusTool::Selector)
, mKeyboardPalette(0)
{
mTransparentDrawingView = new UBBoardView(UBApplication::boardController, 0); // deleted in UBDesktopAnnotationController::destructor
......@@ -73,7 +73,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
mTransparentDrawingView->setAttribute(Qt::WA_TranslucentBackground, true);
// !!!! Should be included into Windows after QT recompilation
#ifdef Q_WS_MAC
//mTransparentDrawingView->setAttribute(Qt::WA_MacNoShadow, true);
mTransparentDrawingView->setAttribute(Qt::WA_MacNoShadow, true);
#endif
mTransparentDrawingView->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Window);
mTransparentDrawingView->setCacheMode(QGraphicsView::CacheNone);
......@@ -104,7 +104,9 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
mKeyboardPalette->setParent(mTransparentDrawingView);
#endif
connect(mKeyboardPalette, SIGNAL(keyboardActivated(bool)), mTransparentDrawingView, SLOT(virtualKeyboardActivated(bool)));
#ifdef Q_WS_X11
connect(mKeyboardPalette, SIGNAL(moved(QPoint)), this, SLOT(refreshMask()));
#endif
}
connect(mDesktopPalette, SIGNAL(uniboardClick()), this, SLOT(goToUniboard()));
......@@ -115,8 +117,6 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize()));
connect(UBApplication::mainWindow->actionVirtualKeyboard, SIGNAL(triggered(bool)), this, SLOT(showKeyboard(bool)));
// connect(mDesktopPalette, SIGNAL(showVirtualKeyboard(bool)), this, SLOT());
connect(mTransparentDrawingView, SIGNAL(resized(QResizeEvent*)), this, SLOT(onTransparentWidgetResized()));
......@@ -158,9 +158,10 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
connect(&mHoldTimerMarker, SIGNAL(timeout()), this, SLOT(markerActionReleased()));
connect(&mHoldTimerEraser, SIGNAL(timeout()), this, SLOT(eraserActionReleased()));
#ifdef Q_WS_X11
connect(mDesktopPalette, SIGNAL(moving()), this, SLOT(refreshMask()));
connect(mLibPalette, SIGNAL(resized()), this, SLOT(refreshMask()));
#endif
onDesktopPaletteMaximized();
}
......@@ -176,8 +177,11 @@ void UBDesktopAnnotationController::showKeyboard(bool show)
if(show)
UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector);
mKeyboardPalette->setVisible(show);
updateMask(true);
// mDesktopPalette->showVirtualKeyboard(show);
#ifdef Q_WS_X11
updateMask(true);
#endif
}
}
......@@ -349,7 +353,6 @@ void UBDesktopAnnotationController::showWindow()
{
QRect desktopRect = QApplication::desktop()->screenGeometry(mDesktopPalette->pos());
//mDesktopPalette->move((desktopRect.right() - (mDesktopPalette->width() + 20)), desktopRect.top() + 150);
mDesktopPalette->move(5, desktopRect.top() + 150);
mWindowPositionInitialized = true;
......@@ -385,7 +388,7 @@ void UBDesktopAnnotationController::stylusToolChanged(int tool)
if(eTool != UBStylusTool::Selector && eTool != UBStylusTool::Text)
{
if(mKeyboardPalette->m_isVisible)
UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction::Trigger);
UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction::Trigger);
}
updateBackground();
......@@ -439,8 +442,6 @@ void UBDesktopAnnotationController::goToUniboard()
UBPlatformUtils::setDesktopMode(false);
// UBApplication::mainWindow->actionVirtualKeyboard->setEnabled(true);
emit restoreUniboard();
}
......@@ -799,8 +800,6 @@ void UBDesktopAnnotationController::onDesktopPaletteMinimize()
*/
void UBDesktopAnnotationController::onTransparentWidgetResized()
{
// qDebug() << "mTransparentDrawingView (" << mTransparentDrawingView->width() << "," << mTransparentDrawingView->height() << ")";
// qDebug() << "mLibPalette (" << mLibPalette->width() << "," << mLibPalette->height() << ")";
mLibPalette->resize(mLibPalette->width(), mTransparentDrawingView->height());
}
......
......@@ -70,7 +70,7 @@ UBDocumentController::UBDocumentController(UBMainWindow* mainWindow)
, mToolsPalette(0)
, mToolsPalettePositionned(false)
, mTrashTi(0)
, mKeyboardPalette(0)
, mKeyboardPalette(0)
{
setupViews();
setupToolbar();
......
......@@ -40,7 +40,6 @@ UBW3CWidget::UBW3CWidget(const QUrl& pWidgetUrl, QWidget *parent)
{
QString path = pWidgetUrl.toLocalFile();
QDir potentialDir(path);
if (!path.endsWith(".wgt") && !path.endsWith(".wgt/") && !potentialDir.exists())
......@@ -58,7 +57,7 @@ UBW3CWidget::UBW3CWidget(const QUrl& pWidgetUrl, QWidget *parent)
int width = 300;
int height = 150;
QFile configFile(path + "/config.xml");
QFile configFile(path + "config.xml");
configFile.open(QFile::ReadOnly);
QDomDocument doc;
......@@ -202,6 +201,8 @@ UBW3CWidget::UBW3CWidget(const QUrl& pWidgetUrl, QWidget *parent)
connect(page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(javaScriptWindowObjectCleared()));
connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(javaScriptWindowObjectCleared()));
QWebView::load(mMainHtmlUrl);
setFixedSize(QSize(width, height));
mNominalSize = QSize(width, height);
......
......@@ -99,8 +99,9 @@ protected:
QTime mClickTime;
/** The mouse pressed position */
QPoint mMousePressPos;
///** The palette icon */
//QPixmap mIcon;
// /** The palette icon */
// QPixmap mIcon;
// QPixmap mCollapsedIcon;
/** The tab orientation */
eUBDockTabOrientation mTabsOrientation;
/** The h position of the tab */
......
......@@ -33,8 +33,9 @@ UBFloatingPalette::UBFloatingPalette(Qt::Corner position, QWidget *parent)
setAttribute(Qt::WA_MacAlwaysShowToolWindow);
#endif
#ifdef Q_WS_MAC
//setAttribute(Qt::WA_MacNonActivatingToolWindow);
//setAttribute(Qt::WA_MacNoShadow);
setAttribute(Qt::WA_MacAlwaysShowToolWindow);
setAttribute(Qt::WA_MacNonActivatingToolWindow);
setAttribute(Qt::WA_MacNoShadow);
#endif
}
......
......@@ -31,7 +31,9 @@ UBLibPalette::UBLibPalette(QWidget *parent, const char *name):UBDockPalette(pare
, mDropWidget(NULL)
{
setOrientation(eUBDockOrientation_Right);
//mIcon = QPixmap(":images/paletteLibrary.png");
//mCollapsedIcon = QPixmap(":images/library_open.png");
//mIcon = QPixmap(":images/library_close.png");
setAcceptDrops(true);
resize(UBSettings::settings()->libPaletteWidth->get().toInt(), parentWidget()->height());
......
......@@ -28,7 +28,6 @@ UBMainWindow::UBMainWindow(QWidget *parent, Qt::WindowFlags flags)
, mBoardWidget(0)
, mWebWidget(0)
, mDocumentsWidget(0)
, mSankoreWebDocumentWidget(0)
{
Ui::MainWindow::setupUi(this);
......
......@@ -60,8 +60,6 @@ class UBMainWindow : public QMainWindow, public Ui::MainWindow
QWidget *mBoardWidget;
QWidget *mWebWidget;
QWidget *mDocumentsWidget;
QWebView* mSankoreWebDocumentWidget;
};
#endif /* UBMAINWINDOW_H_ */
......@@ -32,7 +32,8 @@ UBNavigatorPalette::UBNavigatorPalette(QWidget *parent, const char *name):UBDock
{
setOrientation(eUBDockOrientation_Left);
setMaximumWidth(300);
//mIcon = QPixmap(":images/paletteNavigator.png");
//mCollapsedIcon = QPixmap(":images/pages_open.png");
//mIcon = QPixmap(":images/pages_close.png");
resize(UBSettings::settings()->navigPaletteWidth->get().toInt(), height());
mLastWidth = 300;
......
......@@ -168,6 +168,7 @@ void UBUpdateDlg::onBrowse()
void UBUpdateDlg::onUpdate()
{
mProgressLabel = new QLabel(mProgressWidget);
mProgressLabel->setText(tr("Please wait the import process will start soon..."));
mProgressLayout = new QHBoxLayout();
mProgressLayout->addWidget(mProgressLabel);
mProgressWidget->setLayout(mProgressLayout);
......
......@@ -349,7 +349,10 @@ void UBAudioQueueRecorder::audioQueueInputCallback (void *inUserData, AudioQueue
void UBAudioQueueRecorder::emitNewWaveBuffer(AudioQueueBufferRef pBuffer,
int inNumberPacketDescriptions, const AudioStreamPacketDescription *inPacketDescs)
{
emit newWaveBuffer(pBuffer->mAudioData, pBuffer->mAudioDataByteSize, inNumberPacketDescriptions, inPacketDescs);
AudioStreamPacketDescription* tmpPackages = (AudioStreamPacketDescription*)malloc(inNumberPacketDescriptions *sizeof(AudioStreamPacketDescription));
memcpy(tmpPackages,inPacketDescs,inNumberPacketDescriptions * sizeof(AudioStreamPacketDescription));
emit newWaveBuffer(pBuffer->mAudioData, pBuffer->mAudioDataByteSize, inNumberPacketDescriptions, tmpPackages);
qreal level = 0;
UInt32 size;
......
......@@ -629,6 +629,9 @@ void UBQuickTimeFile::appendAudioBuffer(void* pBuffer, long pLength, int inNumbe
}
}
}
#ifdef Q_WS_MACX
free((void*)inPacketDescs);
#endif
}
......
......@@ -107,9 +107,15 @@ QFont UBAbstractDrawRuler::font() const
}
void UBAbstractDrawRuler::StartLine(const QPointF& position, qreal width)
{}
{
Q_UNUSED(position);
Q_UNUSED(width);
}
void UBAbstractDrawRuler::DrawLine(const QPointF& position, qreal width)
{}
{
Q_UNUSED(position);
Q_UNUSED(width);
}
void UBAbstractDrawRuler::EndLine()
{}
......
......@@ -29,12 +29,12 @@ const UBGraphicsTriangle::UBGraphicsTriangleOrientation UBGraphicsTriangle::sDef
UBGraphicsTriangle::BottomLeft;
UBGraphicsTriangle::UBGraphicsTriangle()
: QGraphicsPolygonItem()
, UBAbstractDrawRuler()
: UBAbstractDrawRuler()
, QGraphicsPolygonItem()
, angle(0)
, mResizing1(false)
, mResizing2(false)
, mRotating(false)
, angle(0)
{
setRect(sDefaultRect, sDefaultOrientation);
......
......@@ -66,12 +66,24 @@ class UBGraphicsTriangle : public UBAbstractDrawRuler, public QGraphicsPolygonIt
if (str == "TopRight") return TopRight;
return sDefaultOrientation;
}
static QString orientationToStr(UBGraphicsTriangleOrientation orientation)
{
QString result;
if (orientation == 0) result = "BottomLeft";
else if (orientation == 1) result = "BottomRight";
else if (orientation == 2) result = "TopLeft";
else if (orientation == 3) result = "TopRight";
return result;
}
void setRect(const QRectF &rect, UBGraphicsTriangleOrientation orientation)
{
setRect(rect.x(), rect.y(), rect.width(), rect.height(), orientation);
}
void setRect(qreal x, qreal y, qreal w, qreal h, UBGraphicsTriangleOrientation orientation);
void setOrientation(UBGraphicsTriangleOrientation orientation);
UBGraphicsTriangleOrientation getOrientation() const {return mOrientation;}
QRectF rect() const {return boundingRect();}
UBGraphicsScene* scene() const;
......
......@@ -111,7 +111,7 @@ bool UniboardSankoreTransition::checkPage(QString& sankorePagePath)
file.close();
QString sankoreDirectory = sankorePagePath.left(sankorePagePath.indexOf("/page"));
;
sankoreDirectory = QUrl::fromLocalFile(sankoreDirectory).toString();
QString documentString(documentByteArray);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment