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
No related merge requests found
......@@ -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
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
<d!`
\ No newline at end of file
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
<?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/library_close.png

1.63 KB

resources/images/library_open.png

1.63 KB

resources/images/pages_close.png

1.3 KB

resources/images/pages_open.png

1.29 KB

resources/images/toolbar/stylusTab.png

2.08 KB | W: 0px | H: 0px

resources/images/toolbar/stylusTab.png

3.13 KB | W: 0px | H: 0px

  • 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