|
@ -1715,6 +1715,9 @@ XsheetViewer {
|
|||
qproperty-MeshColumnColor: #684D86;
|
||||
qproperty-MeshColumnBorderColor: #BA92EF;
|
||||
qproperty-SelectedMeshColumnColor: #82689e;
|
||||
qproperty-SoundTextColumnColor: #c8c8c8;
|
||||
qproperty-SoundTextColumnBorderColor: #8c8c8c;
|
||||
qproperty-SelectedSoundTextColumnColor: #e2e2e2;
|
||||
qproperty-SoundColumnColor: #657456;
|
||||
qproperty-SoundColumnBorderColor: #A0AF7D;
|
||||
qproperty-SelectedSoundColumnColor: #7e8b72;
|
||||
|
@ -1759,8 +1762,11 @@ XsheetViewer {
|
|||
qproperty-TimelineConfigButtonBgColor: rgba(255, 255, 255, 0);
|
||||
qproperty-TimelineConfigButtonImage: url('../Default/imgs/white/timeline_config.svg');
|
||||
qproperty-LayerHeaderPreviewImage: url('../Default/imgs/white/layer_header_prev_eye.svg');
|
||||
qproperty-LayerHeaderPreviewOverImage: url('../Default/imgs/white/layer_header_prev_eye_over.svg');
|
||||
qproperty-LayerHeaderCamstandImage: url('../Default/imgs/white/layer_header_table_view.svg');
|
||||
qproperty-LayerHeaderCamstandOverImage: url('../Default/imgs/white/layer_header_table_view_over.svg');
|
||||
qproperty-LayerHeaderLockImage: url('../Default/imgs/white/lock_on.svg');
|
||||
qproperty-LayerHeaderLockOverImage: url('../Default/imgs/white/lock_on_over.svg');
|
||||
}
|
||||
/* XSheet Toolbar
|
||||
----------------------------------------------------------------------------- */
|
||||
|
|
|
@ -1715,6 +1715,9 @@ XsheetViewer {
|
|||
qproperty-MeshColumnColor: #684D86;
|
||||
qproperty-MeshColumnBorderColor: #BA92EF;
|
||||
qproperty-SelectedMeshColumnColor: #82689e;
|
||||
qproperty-SoundTextColumnColor: #c8c8c8;
|
||||
qproperty-SoundTextColumnBorderColor: #8c8c8c;
|
||||
qproperty-SelectedSoundTextColumnColor: #e2e2e2;
|
||||
qproperty-SoundColumnColor: #657456;
|
||||
qproperty-SoundColumnBorderColor: #A0AF7D;
|
||||
qproperty-SelectedSoundColumnColor: #7e8b72;
|
||||
|
@ -1759,8 +1762,11 @@ XsheetViewer {
|
|||
qproperty-TimelineConfigButtonBgColor: rgba(255, 255, 255, 0);
|
||||
qproperty-TimelineConfigButtonImage: url('../Default/imgs/white/timeline_config.svg');
|
||||
qproperty-LayerHeaderPreviewImage: url('../Default/imgs/white/layer_header_prev_eye.svg');
|
||||
qproperty-LayerHeaderPreviewOverImage: url('../Default/imgs/white/layer_header_prev_eye_over.svg');
|
||||
qproperty-LayerHeaderCamstandImage: url('../Default/imgs/white/layer_header_table_view.svg');
|
||||
qproperty-LayerHeaderCamstandOverImage: url('../Default/imgs/white/layer_header_table_view_over.svg');
|
||||
qproperty-LayerHeaderLockImage: url('../Default/imgs/white/lock_on.svg');
|
||||
qproperty-LayerHeaderLockOverImage: url('../Default/imgs/white/lock_on_over.svg');
|
||||
}
|
||||
/* XSheet Toolbar
|
||||
----------------------------------------------------------------------------- */
|
||||
|
|
|
@ -1715,6 +1715,9 @@ XsheetViewer {
|
|||
qproperty-MeshColumnColor: #684D86;
|
||||
qproperty-MeshColumnBorderColor: #BA92EF;
|
||||
qproperty-SelectedMeshColumnColor: #82689e;
|
||||
qproperty-SoundTextColumnColor: #c8c8c8;
|
||||
qproperty-SoundTextColumnBorderColor: #8c8c8c;
|
||||
qproperty-SelectedSoundTextColumnColor: #e2e2e2;
|
||||
qproperty-SoundColumnColor: #657456;
|
||||
qproperty-SoundColumnBorderColor: #A0AF7D;
|
||||
qproperty-SelectedSoundColumnColor: #7e8b72;
|
||||
|
@ -1759,8 +1762,11 @@ XsheetViewer {
|
|||
qproperty-TimelineConfigButtonBgColor: rgba(255, 255, 255, 0);
|
||||
qproperty-TimelineConfigButtonImage: url('imgs/white/timeline_config.svg');
|
||||
qproperty-LayerHeaderPreviewImage: url('imgs/white/layer_header_prev_eye.svg');
|
||||
qproperty-LayerHeaderPreviewOverImage: url('imgs/white/layer_header_prev_eye_over.svg');
|
||||
qproperty-LayerHeaderCamstandImage: url('imgs/white/layer_header_table_view.svg');
|
||||
qproperty-LayerHeaderCamstandOverImage: url('imgs/white/layer_header_table_view_over.svg');
|
||||
qproperty-LayerHeaderLockImage: url('imgs/white/lock_on.svg');
|
||||
qproperty-LayerHeaderLockOverImage: url('imgs/white/lock_on_over.svg');
|
||||
}
|
||||
/* XSheet Toolbar
|
||||
----------------------------------------------------------------------------- */
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1"
|
||||
id="svg6" inkscape:version="0.91 r13725" sodipodi:docname="layer_header_prev_eye.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 18 18"
|
||||
style="enable-background:new 0 0 18 18;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#E6E6E6;stroke:#303030;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:1.4142;}
|
||||
.st1{fill:#E6E6E6;}
|
||||
.st2{fill:#303030;}
|
||||
</style>
|
||||
<sodipodi:namedview bordercolor="#666666" borderopacity="1" gridtolerance="10" guidetolerance="10" id="namedview9" inkscape:current-layer="svg6" inkscape:cx="9" inkscape:cy="9" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-height="480" inkscape:window-maximized="0" inkscape:window-width="796" inkscape:window-x="0" inkscape:window-y="0" inkscape:zoom="13.111111" objecttolerance="10" pagecolor="#ffffff" showgrid="false">
|
||||
</sodipodi:namedview>
|
||||
<rect
|
||||
y="0.0010595348"
|
||||
x="0.0010603889"
|
||||
height="17.997881"
|
||||
width="17.997881"
|
||||
id="rect829"
|
||||
style="clip-rule:evenodd;fill:#e6e6e6;fill-opacity:0.29019608;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41420996;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path id="path821" inkscape:connector-curvature="0" class="st0" d="M2,9.6c0,0,2.6-4.5,7-4.5s7,4.5,7,4.5s-2.6,4.5-7,4.5
|
||||
S2,9.6,2,9.6z"/>
|
||||
<path id="path832" inkscape:connector-curvature="0" class="st1" d="M2,9.6c0,0,2.6-4.5,7-4.5s7,4.5,7,4.5s-2.6,4.5-7,4.5
|
||||
S2,9.6,2,9.6z"/>
|
||||
<ellipse id="path21" class="st2" cx="9" cy="9.6" rx="3.5" ry="3.6"/>
|
||||
<circle id="path1450" class="st1" cx="8" cy="8.6" r="1.5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1"
|
||||
id="svg6" inkscape:version="0.91 r13725" sodipodi:docname="layer_header_table_view.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 18 18"
|
||||
style="enable-background:new 0 0 18 18;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#E6E6E6;stroke:#303030;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:1.4142;}
|
||||
.st1{fill:#E6E6E6;}
|
||||
.st2{fill:#303030;}
|
||||
</style>
|
||||
<rect
|
||||
y="-0.0084745837"
|
||||
x="-0.0084745763"
|
||||
height="17.997881"
|
||||
width="17.997881"
|
||||
id="rect829"
|
||||
style="clip-rule:evenodd;fill:#e6e6e6;fill-opacity:0.29019608;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41420996;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<ellipse id="path1869" class="st0" cx="9" cy="9.5" rx="6.5" ry="6.5"/>
|
||||
<ellipse id="ellipse9" class="st1" cx="9" cy="9.5" rx="6.5" ry="6.5"/>
|
||||
<rect id="rect1871" x="5" y="6" class="st2" width="8" height="7"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
67
stuff/config/qss/Default/imgs/black/lock_on_over.svg
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xml:space="preserve"
|
||||
style="enable-background:new 0 0 18 18;"
|
||||
viewBox="0 0 18 18"
|
||||
y="0px"
|
||||
x="0px"
|
||||
id="svg4489"
|
||||
version="1.1"><metadata
|
||||
id="metadata3765"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs3763" />
|
||||
<style
|
||||
id="style3752"
|
||||
type="text/css">
|
||||
.st0{fill:#FBFBFB;stroke:#303030;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:1.4142;}
|
||||
.st1{fill:#E6E6E6;}
|
||||
.st2{fill:#303030;}
|
||||
</style>
|
||||
<rect
|
||||
y="0.0010595216"
|
||||
x="0.0010592251"
|
||||
height="17.997881"
|
||||
width="17.997881"
|
||||
id="rect829"
|
||||
style="clip-rule:evenodd;fill:#e6e6e6;fill-opacity:0.29019608;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41420996;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:#fbfbfb;stroke:#303030;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:1.41419995"
|
||||
d="M 8.5,3 C 6.6,3 5,4.6 5,6.5 V 7 H 6 V 6.5 C 6,5.1 7.1,4 8.5,4 9.9,4 11,5.1 11,6.5 V 7 h 1 V 6.5 C 12,4.6 10.4,3 8.5,3 Z M 4,8 v 7 h 9 V 8 Z"
|
||||
class="st0"
|
||||
id="path4493" />
|
||||
<g
|
||||
transform="matrix(0.05555556,0,0,0.05555556,-0.5,0)"
|
||||
id="g4491">
|
||||
<path
|
||||
style="fill:#e6e6e6"
|
||||
d="M 81,144 V 270 H 243 V 144 Z"
|
||||
class="st1"
|
||||
id="rect4488" />
|
||||
<path
|
||||
style="fill:#e6e6e6"
|
||||
d="m 162,54 c -34.8,0 -63,28.2 -63,63 v 9 h 18 v -9 c 0,-24.8 20.2,-45 45,-45 24.8,0 45,20.1 45,45 v 9 h 18 v -9 C 225,82.2 196.8,54 162,54 Z"
|
||||
class="st1"
|
||||
id="path4509" />
|
||||
</g>
|
||||
<circle
|
||||
style="fill:#303030"
|
||||
r="1.5"
|
||||
cy="10.5"
|
||||
cx="8.5"
|
||||
class="st2"
|
||||
id="path820" />
|
||||
<rect
|
||||
style="fill:#303030"
|
||||
height="3"
|
||||
width="1.5"
|
||||
class="st2"
|
||||
y="11"
|
||||
x="7.8000002"
|
||||
id="rect822" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1"
|
||||
id="svg6" inkscape:version="0.91 r13725" sodipodi:docname="layer_header_prev_eye.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 18 18"
|
||||
style="enable-background:new 0 0 18 18;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#E6E6E6;stroke:#303030;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:1.4142;}
|
||||
.st1{fill:#E6E6E6;}
|
||||
.st2{fill:#303030;}
|
||||
</style>
|
||||
<sodipodi:namedview bordercolor="#666666" borderopacity="1" gridtolerance="10" guidetolerance="10" id="namedview9" inkscape:current-layer="svg6" inkscape:cx="9" inkscape:cy="9" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-height="480" inkscape:window-maximized="0" inkscape:window-width="796" inkscape:window-x="0" inkscape:window-y="0" inkscape:zoom="13.111111" objecttolerance="10" pagecolor="#ffffff" showgrid="false">
|
||||
</sodipodi:namedview>
|
||||
<rect
|
||||
y="0.0010595348"
|
||||
x="0.0010603889"
|
||||
height="17.997881"
|
||||
width="17.997881"
|
||||
id="rect829"
|
||||
style="clip-rule:evenodd;fill:#e6e6e6;fill-opacity:0.29019608;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41420996;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path id="path821" inkscape:connector-curvature="0" class="st0" d="M2,9.6c0,0,2.6-4.5,7-4.5s7,4.5,7,4.5s-2.6,4.5-7,4.5
|
||||
S2,9.6,2,9.6z"/>
|
||||
<path id="path832" inkscape:connector-curvature="0" class="st1" d="M2,9.6c0,0,2.6-4.5,7-4.5s7,4.5,7,4.5s-2.6,4.5-7,4.5
|
||||
S2,9.6,2,9.6z"/>
|
||||
<ellipse id="path21" class="st2" cx="9" cy="9.6" rx="3.5" ry="3.6"/>
|
||||
<circle id="path1450" class="st1" cx="8" cy="8.6" r="1.5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1"
|
||||
id="svg6" inkscape:version="0.91 r13725" sodipodi:docname="layer_header_table_view.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 18 18"
|
||||
style="enable-background:new 0 0 18 18;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#E6E6E6;stroke:#303030;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:1.4142;}
|
||||
.st1{fill:#E6E6E6;}
|
||||
.st2{fill:#303030;}
|
||||
</style>
|
||||
<rect
|
||||
y="-0.0084745837"
|
||||
x="-0.0084745763"
|
||||
height="17.997881"
|
||||
width="17.997881"
|
||||
id="rect829"
|
||||
style="clip-rule:evenodd;fill:#e6e6e6;fill-opacity:0.29019608;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41420996;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<ellipse id="path1869" class="st0" cx="9" cy="9.5" rx="6.5" ry="6.5"/>
|
||||
<ellipse id="ellipse9" class="st1" cx="9" cy="9.5" rx="6.5" ry="6.5"/>
|
||||
<rect id="rect1871" x="5" y="6" class="st2" width="8" height="7"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
67
stuff/config/qss/Default/imgs/white/lock_on_over.svg
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xml:space="preserve"
|
||||
style="enable-background:new 0 0 18 18;"
|
||||
viewBox="0 0 18 18"
|
||||
y="0px"
|
||||
x="0px"
|
||||
id="svg4489"
|
||||
version="1.1"><metadata
|
||||
id="metadata3765"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs3763" />
|
||||
<style
|
||||
id="style3752"
|
||||
type="text/css">
|
||||
.st0{fill:#FBFBFB;stroke:#303030;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:1.4142;}
|
||||
.st1{fill:#E6E6E6;}
|
||||
.st2{fill:#303030;}
|
||||
</style>
|
||||
<rect
|
||||
y="0.0010595216"
|
||||
x="0.0010592251"
|
||||
height="17.997881"
|
||||
width="17.997881"
|
||||
id="rect829"
|
||||
style="clip-rule:evenodd;fill:#e6e6e6;fill-opacity:0.29019608;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41420996;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:#fbfbfb;stroke:#303030;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:1.41419995"
|
||||
d="M 8.5,3 C 6.6,3 5,4.6 5,6.5 V 7 H 6 V 6.5 C 6,5.1 7.1,4 8.5,4 9.9,4 11,5.1 11,6.5 V 7 h 1 V 6.5 C 12,4.6 10.4,3 8.5,3 Z M 4,8 v 7 h 9 V 8 Z"
|
||||
class="st0"
|
||||
id="path4493" />
|
||||
<g
|
||||
transform="matrix(0.05555556,0,0,0.05555556,-0.5,0)"
|
||||
id="g4491">
|
||||
<path
|
||||
style="fill:#e6e6e6"
|
||||
d="M 81,144 V 270 H 243 V 144 Z"
|
||||
class="st1"
|
||||
id="rect4488" />
|
||||
<path
|
||||
style="fill:#e6e6e6"
|
||||
d="m 162,54 c -34.8,0 -63,28.2 -63,63 v 9 h 18 v -9 c 0,-24.8 20.2,-45 45,-45 24.8,0 45,20.1 45,45 v 9 h 18 v -9 C 225,82.2 196.8,54 162,54 Z"
|
||||
class="st1"
|
||||
id="path4509" />
|
||||
</g>
|
||||
<circle
|
||||
style="fill:#303030"
|
||||
r="1.5"
|
||||
cy="10.5"
|
||||
cx="8.5"
|
||||
class="st2"
|
||||
id="path820" />
|
||||
<rect
|
||||
style="fill:#303030"
|
||||
height="3"
|
||||
width="1.5"
|
||||
class="st2"
|
||||
y="11"
|
||||
x="7.8000002"
|
||||
id="rect822" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -361,6 +361,10 @@
|
|||
@xsheet-MeshColumnBorder-color: #BA92EF;
|
||||
@xsheet-SelectedMeshColumn-color: lighten(desaturate(@xsheet-MeshColumn-color, 5), 10);
|
||||
|
||||
@xsheet-SoundTextColumn-color: #c8c8c8;
|
||||
@xsheet-SoundTextColumnBorder-color: #8c8c8c;
|
||||
@xsheet-SelectedSoundTextColumn-color: lighten(desaturate(@xsheet-SoundTextColumn-color, 5), 10);
|
||||
|
||||
@xsheet-SoundColumn-color: #657456;
|
||||
@xsheet-SoundColumnBorder-color: #A0AF7D;
|
||||
@xsheet-SelectedSoundColumn-color: lighten(desaturate(@xsheet-SoundColumn-color, 5), 10);
|
||||
|
@ -419,9 +423,11 @@
|
|||
@timeline-ConfigButtonImage: 'timeline_config.svg';
|
||||
|
||||
@layerheader-PreviewImage: 'layer_header_prev_eye.svg';
|
||||
@layerheader-PreviewOverImage: 'layer_header_prev_eye_over.svg';
|
||||
@layerheader-CamstandImage: 'layer_header_table_view.svg';
|
||||
@layerheader-CamstandOverImage: 'layer_header_table_view_over.svg';
|
||||
@layerheader-LockImage: 'lock_on.svg';
|
||||
|
||||
@layerheader-LockOverImage: 'lock_on_over.svg';
|
||||
// -----------------------------------------------------------------------------
|
||||
// Function Editor
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
|
@ -98,6 +98,10 @@ XsheetViewer {
|
|||
qproperty-MeshColumnBorderColor: @xsheet-MeshColumnBorder-color;
|
||||
qproperty-SelectedMeshColumnColor: @xsheet-SelectedMeshColumn-color;
|
||||
|
||||
qproperty-SoundTextColumnColor: @xsheet-SoundTextColumn-color;
|
||||
qproperty-SoundTextColumnBorderColor: @xsheet-SoundTextColumnBorder-color;
|
||||
qproperty-SelectedSoundTextColumnColor: @xsheet-SelectedSoundTextColumn-color;
|
||||
|
||||
qproperty-SoundColumnColor: @xsheet-SoundColumn-color;
|
||||
qproperty-SoundColumnBorderColor: @xsheet-SoundColumnBorder-color;
|
||||
qproperty-SelectedSoundColumnColor: @xsheet-SelectedSoundColumn-color;
|
||||
|
@ -154,8 +158,11 @@ XsheetViewer {
|
|||
qproperty-TimelineConfigButtonImage: url('@{img-url}/@{timeline-ConfigButtonImage}');
|
||||
|
||||
qproperty-LayerHeaderPreviewImage: url('@{img-url}/@{layerheader-PreviewImage}');
|
||||
qproperty-LayerHeaderPreviewOverImage: url('@{img-url}/@{layerheader-PreviewOverImage}');
|
||||
qproperty-LayerHeaderCamstandImage: url('@{img-url}/@{layerheader-CamstandImage}');
|
||||
qproperty-LayerHeaderCamstandOverImage: url('@{img-url}/@{layerheader-CamstandOverImage}');
|
||||
qproperty-LayerHeaderLockImage: url('@{img-url}/@{layerheader-LockImage}');
|
||||
qproperty-LayerHeaderLockOverImage: url('@{img-url}/@{layerheader-LockOverImage}');
|
||||
}
|
||||
|
||||
/* XSheet Toolbar
|
||||
|
|
|
@ -1716,6 +1716,9 @@ XsheetViewer {
|
|||
qproperty-MeshColumnColor: #ac78d4;
|
||||
qproperty-MeshColumnBorderColor: #6b418c;
|
||||
qproperty-SelectedMeshColumnColor: #c3a2dd;
|
||||
qproperty-SoundTextColumnColor: #c8c8c8;
|
||||
qproperty-SoundTextColumnBorderColor: #8c8c8c;
|
||||
qproperty-SelectedSoundTextColumnColor: #e2e2e2;
|
||||
qproperty-SoundColumnColor: #acba82;
|
||||
qproperty-SoundColumnBorderColor: #656b51;
|
||||
qproperty-SelectedSoundColumnColor: #c0c9a6;
|
||||
|
@ -1760,8 +1763,11 @@ XsheetViewer {
|
|||
qproperty-TimelineConfigButtonBgColor: rgba(255, 255, 255, 0);
|
||||
qproperty-TimelineConfigButtonImage: url('../Default/imgs/black/timeline_config.svg');
|
||||
qproperty-LayerHeaderPreviewImage: url('../Default/imgs/black/layer_header_prev_eye.svg');
|
||||
qproperty-LayerHeaderPreviewOverImage: url('../Default/imgs/black/layer_header_prev_eye_over.svg');
|
||||
qproperty-LayerHeaderCamstandImage: url('../Default/imgs/black/layer_header_table_view.svg');
|
||||
qproperty-LayerHeaderCamstandOverImage: url('../Default/imgs/black/layer_header_table_view_over.svg');
|
||||
qproperty-LayerHeaderLockImage: url('../Default/imgs/black/lock_on.svg');
|
||||
qproperty-LayerHeaderLockOverImage: url('../Default/imgs/black/lock_on_over.svg');
|
||||
}
|
||||
/* XSheet Toolbar
|
||||
----------------------------------------------------------------------------- */
|
||||
|
|
|
@ -88,6 +88,7 @@
|
|||
<item>MI_OpenStyleControl</item>
|
||||
<item>MI_OpenLevelView</item>
|
||||
<item>MI_OpenXshView</item>
|
||||
<item>MI_OpenTimelineView</item>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
room1.ini
|
||||
room2.ini
|
||||
room3.ini
|
||||
room9.ini
|
||||
room4.ini
|
||||
room5.ini
|
||||
room6.ini
|
||||
|
|
|
@ -241,6 +241,7 @@
|
|||
<command>MI_OpenLevelView</command>
|
||||
<command>MI_OpenComboViewer</command>
|
||||
<command>MI_OpenXshView</command>
|
||||
<command>MI_OpenTimelineView</command>
|
||||
<command>MI_OpenHistoryPanel</command>
|
||||
<command>MI_AudioRecording</command>
|
||||
<separator/>
|
||||
|
|
23
stuff/profiles/layouts/rooms/Default/room9.ini
Normal file
|
@ -0,0 +1,23 @@
|
|||
[room]
|
||||
hierarchy="-1 1 [ 5 [ [ 0 6 ] 4 3 1 ] 2 ] "
|
||||
pane_0\name=StyleEditor
|
||||
name=Timeline
|
||||
pane_0\geometry=@Rect(0 30 238 487)
|
||||
pane_0\isVertical=true
|
||||
pane_0\visibleParts=15
|
||||
pane_0\splitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xa4\0\0\0\xd6\x1\xff\xff\xff\xff\x1\0\0\0\x2\0)
|
||||
pane_1\name=FilmStrip
|
||||
pane_1\geometry=@Rect(1660 30 260 681)
|
||||
pane_2\name=Timeline
|
||||
pane_2\geometry=@Rect(0 715 1920 278)
|
||||
pane_2\orientation=LeftToRight
|
||||
pane_2\frameZoomFactor=100
|
||||
pane_3\name=SceneViewer
|
||||
pane_3\geometry=@Rect(281 30 1375 681)
|
||||
pane_4\name=ToolBar
|
||||
pane_4\geometry=@Rect(242 30 35 681)
|
||||
pane_5\name=ToolOptions
|
||||
pane_5\geometry=@Rect(0 0 1920 26)
|
||||
pane_6\name=LevelPalette
|
||||
pane_6\geometry=@Rect(0 521 238 190)
|
||||
pane_6\viewtype=0
|
|
@ -109,15 +109,16 @@ enum class PredefinedRect {
|
|||
FILTER_COLOR, //! where to show layer's filter color
|
||||
CONFIG_AREA, //! clickable area larger than the config icon, containing it
|
||||
CONFIG, //! the config icon itself
|
||||
FRAME_DOT, //! Cell's frame indicator
|
||||
FRAME_INDICATOR, //! Row # indicator
|
||||
FRAME_MARKER_AREA, //! Cell's frame indicator
|
||||
FRAME_INDICATOR, //! Row # indicator
|
||||
ZOOM_SLIDER_AREA,
|
||||
ZOOM_SLIDER,
|
||||
ZOOM_IN_AREA,
|
||||
ZOOM_IN,
|
||||
ZOOM_OUT_AREA,
|
||||
ZOOM_OUT,
|
||||
LAYER_FOOTER_PANEL
|
||||
LAYER_FOOTER_PANEL,
|
||||
PREVIEW_FRAME_AREA
|
||||
};
|
||||
enum class PredefinedLine {
|
||||
LOCKED, //! dotted vertical line when cell is locked
|
||||
|
@ -144,7 +145,8 @@ enum class PredefinedPath {
|
|||
END_PLAY_RANGE,
|
||||
VOLUME_SLIDER_TRACK, //! slider track
|
||||
VOLUME_SLIDER_HEAD, //! slider head
|
||||
TIME_INDICATOR_HEAD //! current time indicator head
|
||||
TIME_INDICATOR_HEAD, //! current time indicator head
|
||||
FRAME_MARKER_DIAMOND
|
||||
};
|
||||
enum class PredefinedPoint {
|
||||
KEY_HIDDEN, //! move extender handle that much if key icons are disabled
|
||||
|
|
|
@ -456,6 +456,11 @@ public:
|
|||
void setLoadedXsheetLayout(std::string layout);
|
||||
QString getLoadedXsheetLayout() const { return m_loadedXsheetLayout; }
|
||||
|
||||
void setCurrentColumnData(const TPixel ¤tColumnColor);
|
||||
void getCurrentColumnData(TPixel ¤tColumnColor) const {
|
||||
currentColumnColor = m_currentColumnColor;
|
||||
}
|
||||
|
||||
// Animation tab
|
||||
|
||||
void setKeyframeType(int s);
|
||||
|
@ -697,6 +702,8 @@ private:
|
|||
QString m_cursorBrushStyle;
|
||||
bool m_cursorOutlineEnabled = false;
|
||||
|
||||
TPixel32 m_currentColumnColor;
|
||||
|
||||
private:
|
||||
Preferences();
|
||||
~Preferences();
|
||||
|
|
|
@ -420,7 +420,7 @@ public:
|
|||
return getSelectedCells().contains(QPoint(col, row));
|
||||
}
|
||||
void setMarkRow(int distance, int offset) {
|
||||
m_markRowDistance = distance > 0 ? distance : 6;
|
||||
m_markRowDistance = distance; // distance > 0 ? distance : 6;
|
||||
m_markRowOffset = offset;
|
||||
}
|
||||
void getMarkRow(int &distance, int &offset) const {
|
||||
|
@ -428,7 +428,8 @@ public:
|
|||
offset = m_markRowOffset;
|
||||
}
|
||||
int isMarkRow(int row) const {
|
||||
return (row - m_markRowOffset) % m_markRowDistance == 0;
|
||||
return m_markRowDistance > 0 &&
|
||||
((row - m_markRowOffset) % m_markRowDistance) == 0;
|
||||
}
|
||||
|
||||
void setFrameHandle(TFrameHandle *frameHandle);
|
||||
|
|
|
@ -1,23 +1,90 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1"
|
||||
id="svg2" inkscape:version="0.91 r13725" sodipodi:docname="newmemo.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 38 20"
|
||||
style="enable-background:new 0 0 38 20;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="newmemo.svg"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 30 20"
|
||||
xml:space="preserve"
|
||||
width="30"
|
||||
height="20"><metadata
|
||||
id="metadata16"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs14" /><style
|
||||
type="text/css"
|
||||
id="style3">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:#404040;}
|
||||
.st2{fill:#C8C8C8;}
|
||||
</style>
|
||||
<sodipodi:namedview bordercolor="#666666" borderopacity="1" gridtolerance="10" guidetolerance="10" id="namedview16" inkscape:current-layer="svg2" inkscape:cx="19" inkscape:cy="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-height="480" inkscape:window-maximized="0" inkscape:window-width="796" inkscape:window-x="0" inkscape:window-y="0" inkscape:zoom="11.8" objecttolerance="10" pagecolor="#ffffff" showgrid="false">
|
||||
</sodipodi:namedview>
|
||||
<g>
|
||||
<g id="g4">
|
||||
<path id="path6" inkscape:connector-curvature="0" class="st0" d="M36,3H9.5L2,10.5V17h34V3z"/>
|
||||
<path id="path8" inkscape:connector-curvature="0" class="st1" d="M37,18H1v-7.9L9.1,2H37V18z M9.5,3L2,10.5V17h34V3H9.5z"/>
|
||||
</g>
|
||||
<path id="path10" inkscape:connector-curvature="0" class="st2" d="M9,2l-8,8l0.1,1H10V2H9z"/>
|
||||
<path id="path12" inkscape:connector-curvature="0" class="st1" d="M10,2v9H1.1L1,10l8-8H10z M2.4,10H9V3.4L2.4,10z"/>
|
||||
<path id="path14" inkscape:connector-curvature="0" class="st1" d="M16,9h3V6h2v3h3v2h-3v3h-2v-3h-3V9z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</style><sodipodi:namedview
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
id="namedview16"
|
||||
inkscape:current-layer="g6"
|
||||
inkscape:cx="13.450899"
|
||||
inkscape:cy="10.157935"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-height="1015"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:zoom="47.2"
|
||||
objecttolerance="10"
|
||||
pagecolor="#ffffff"
|
||||
showgrid="true"
|
||||
showguides="false"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:snap-bbox-midpoints="false"
|
||||
inkscape:snap-nodes="true"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4140" /></sodipodi:namedview><g
|
||||
id="g6"><g
|
||||
id="g4"
|
||||
transform="matrix(0.93333333,0,0,1,0.06666667,0)"><path
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st0"
|
||||
d="M 29.928572,3 8.5,3 l -6.4285714,7 0,7 27.8571434,0 z"
|
||||
style="fill:#e6e6e6;fill-opacity:1"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="M 31,18 1,18 1,10 8.2321429,2 31,2 Z M 8.5,3 l -6.4285714,7 0,7 27.8571434,0 0,-14 z"
|
||||
style="fill:#404040"
|
||||
sodipodi:nodetypes="cccccccccccc" /></g><path
|
||||
id="path10"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st2"
|
||||
d="M 8.1111111,2 1,10 1.0888889,11 9,11 9,2 8.1111111,2 Z"
|
||||
style="fill:#c8c8c8" /><path
|
||||
id="path12"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="M 9,2 9,11 1,11 1,10 7.75,2 Z M 2.2444444,10 8,10 8,3.4 Z"
|
||||
style="fill:#404040"
|
||||
sodipodi:nodetypes="cccccccccc" /><path
|
||||
id="path14"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 12,9 3,0 0,-3 2,0 0,3 3,0 0,2 -3,0 0,3 -2,0 0,-3 -3,0 0,-2 z"
|
||||
style="fill:#404040" /></g></svg>
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 3.1 KiB |
|
@ -1,23 +1,91 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1"
|
||||
id="svg2" inkscape:version="0.91 r13725" sodipodi:docname="newmemo_disabled.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 38 20"
|
||||
style="enable-background:new 0 0 38 20;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="newmemo_disabled.svg"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 30 20"
|
||||
xml:space="preserve"
|
||||
width="30"
|
||||
height="20"><metadata
|
||||
id="metadata16"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs14" /><style
|
||||
type="text/css"
|
||||
id="style3">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:#404040;}
|
||||
.st2{fill:#C8C8C8;}
|
||||
</style>
|
||||
<sodipodi:namedview bordercolor="#666666" borderopacity="1" gridtolerance="10" guidetolerance="10" id="namedview16" inkscape:current-layer="svg2" inkscape:cx="19" inkscape:cy="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-height="480" inkscape:window-maximized="0" inkscape:window-width="796" inkscape:window-x="0" inkscape:window-y="0" inkscape:zoom="11.8" objecttolerance="10" pagecolor="#ffffff" showgrid="false">
|
||||
</sodipodi:namedview>
|
||||
<g>
|
||||
<g id="g4">
|
||||
<path id="path6" inkscape:connector-curvature="0" class="st0" d="M36,3H9.5L2,10.5V17h34V3z"/>
|
||||
<path id="path8" inkscape:connector-curvature="0" class="st1" d="M37,18H1v-7.9L9.1,2H37V18z M9.5,3L2,10.5V17h34V3H9.5z"/>
|
||||
</g>
|
||||
<path id="path10" inkscape:connector-curvature="0" class="st2" d="M9,2l-8,8l0.1,1H10V2H9z"/>
|
||||
<path id="path12" inkscape:connector-curvature="0" class="st1" d="M10,2v9H1.1L1,10l8-8H10z M2.4,10H9V3.4L2.4,10z"/>
|
||||
<path id="path14" inkscape:connector-curvature="0" class="st1" d="M16,9h3V6h2v3h3v2h-3v3h-2v-3h-3V9z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</style><sodipodi:namedview
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
id="namedview16"
|
||||
inkscape:current-layer="g6"
|
||||
inkscape:cx="13.071527"
|
||||
inkscape:cy="11.005393"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-height="1015"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:zoom="47.2"
|
||||
objecttolerance="10"
|
||||
pagecolor="#ffffff"
|
||||
showgrid="true"
|
||||
showguides="false"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:snap-grids="true"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4144" /></sodipodi:namedview><g
|
||||
id="g6"><g
|
||||
id="g4"
|
||||
style="stroke:none;stroke-opacity:1"
|
||||
transform="matrix(0.93333333,0,0,1,0.06666667,0)"><path
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st0"
|
||||
d="M 29.928572,3 8.5,3 l -6.4285714,7 0,7 27.8571434,0 z"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="M 31,18 1,18 1,10 8.2321429,2 31,2 Z M 8.5,3 l -6.4285714,7 0,7 27.8571434,0 0,-14 z"
|
||||
style="fill:#404040;stroke:none;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cccccccccccc" /></g><path
|
||||
id="path10"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st2"
|
||||
d="M 7.75,2 1,10 1.0777778,11 8,11 8,2 Z"
|
||||
style="fill:#c8c8c8"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
id="path12"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="M 9,2 9,11 1,11 1,10 7.75,2 Z M 2.24,10 8,10 8,3.4 Z"
|
||||
style="fill:#404040"
|
||||
sodipodi:nodetypes="cccccccccc" /><path
|
||||
id="path14"
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 12,9 3,0 0,-3 2,0 0,3 3,0 0,2 -3,0 0,3 -2,0 0,-3 -3,0 0,-2 z"
|
||||
style="fill:#404040" /></g></svg>
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 3.2 KiB |
197
toonz/sources/toonz/Resources/timeline2xsheet.svg
Normal file
|
@ -0,0 +1,197 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 10.0, SVG Export Plug-In . SVG Version: 3.0.0 Build 76) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns4="http://ns.adobe.com/SaveForWeb/1.0/"
|
||||
xmlns:ns3="http://ns.adobe.com/Variables/1.0/"
|
||||
xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
|
||||
xmlns:ns2="http://ns.adobe.com/AdobeIllustrator/10.0/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
ns2:viewOrigin="387 312"
|
||||
ns2:rulerOrigin="0 0"
|
||||
ns2:pageBounds="0 600 800 0"
|
||||
width="40"
|
||||
height="20"
|
||||
viewBox="0 0 40 20"
|
||||
overflow="visible"
|
||||
enable-background="new 0 0 26 26"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
id="svg1987"
|
||||
sodipodi:docname="timeline2xsheet.svg"
|
||||
inkscape:version="0.91 r13725"
|
||||
style="overflow:visible"><defs
|
||||
id="defs1991"><linearGradient
|
||||
y2="16.135401"
|
||||
x2="14.882"
|
||||
y1="9.3774004"
|
||||
x1="8.1245003"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="XMLID_1_"><stop
|
||||
id="stop1960"
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0" /><stop
|
||||
id="stop1962"
|
||||
style="stop-color:#CA97CF"
|
||||
offset="0.8595" /><stop
|
||||
id="stop1964"
|
||||
style="stop-color:#F0EDF7"
|
||||
offset="1" /><a:midPointStop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0" /><a:midPointStop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0.5" /><a:midPointStop
|
||||
style="stop-color:#CA97CF"
|
||||
offset="0.8595" /><a:midPointStop
|
||||
style="stop-color:#CA97CF"
|
||||
offset="0.5" /><a:midPointStop
|
||||
style="stop-color:#F0EDF7"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
y2="4.4947"
|
||||
x2="13.4068"
|
||||
y1="11.2783"
|
||||
x1="20.190399"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="XMLID_2_"><stop
|
||||
id="stop1975"
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0" /><stop
|
||||
id="stop1977"
|
||||
style="stop-color:#657EAC"
|
||||
offset="0.8595" /><a:midPointStop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0" /><a:midPointStop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0.5" /><a:midPointStop
|
||||
style="stop-color:#657EAC"
|
||||
offset="0.8595" /></linearGradient><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath6631-5"><path
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6633-7"
|
||||
d="m -17.271586,15.458392 0,10.215929 11.9569912,0 0,11.060056 1.0914803,0 0,-21.275985 z"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /></clipPath><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath997"><path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 26.924548,9.3978546 7.620687,0 0,8.5060394 8.618534,0 0,1.898007 -16.239221,0 z"
|
||||
id="path999"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" /></clipPath><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath1001"><path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 26.924548,9.3978546 7.620687,0 0,8.5060394 8.618534,0 0,1.898007 -16.239221,0 z"
|
||||
id="path1003"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" /></clipPath><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath1005"><path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 9.3978546,-26.924548 0,-7.620687 8.5060394,0 0,-8.618534 1.898007,0 0,16.239221 z"
|
||||
id="path1007"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" /></clipPath><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath1009"><path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 9.3978546,-26.924548 0,-7.620687 8.5060394,0 0,-8.618534 1.898007,0 0,16.239221 z"
|
||||
id="path1011"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" /></clipPath></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#ffffff"
|
||||
borderopacity="0"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1015"
|
||||
id="namedview1989"
|
||||
showgrid="true"
|
||||
inkscape:zoom="32"
|
||||
inkscape:cx="18.890707"
|
||||
inkscape:cy="12.652361"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg1987"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:showpageshadow="true"
|
||||
borderlayer="false"
|
||||
showguides="false"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4178" /></sodipodi:namedview><metadata
|
||||
id="metadata1956"><ns3:variableSets><ns3:variableSet
|
||||
varSetName="binding1"
|
||||
locked="none"><ns3:variables /><ns3:sampleDataSets /></ns3:variableSet></ns3:variableSets><ns4:sfw><ns4:slices /><ns4:sliceSourceBounds
|
||||
y="286"
|
||||
x="387"
|
||||
width="26"
|
||||
height="26"
|
||||
bottomLeftOrigin="true" /></ns4:sfw><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.08274567;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-6"
|
||||
width="10.917254"
|
||||
height="14.917256"
|
||||
x="4.5413737"
|
||||
y="-16.458628"
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
clip-path="none" /><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.06277537;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-6-4"
|
||||
width="2.9372244"
|
||||
height="14.937225"
|
||||
x="4.5313878"
|
||||
y="-16.468613"
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
clip-path="none" /><rect
|
||||
mask="none"
|
||||
clip-path="none"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.97888446;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711"
|
||||
width="11.021115"
|
||||
height="15.021115"
|
||||
x="-38.510559"
|
||||
y="2.4894419"
|
||||
transform="scale(-1,1)" /><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.00494051;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-4"
|
||||
width="2.9950588"
|
||||
height="14.995059"
|
||||
x="27.50247"
|
||||
y="2.50247" /><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.99675596;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-4-1"
|
||||
width="8.0032444"
|
||||
height="3.0032442"
|
||||
x="30.498377"
|
||||
y="2.4983778" /><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.04993284;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-6-4-7"
|
||||
width="7.950067"
|
||||
height="2.950067"
|
||||
x="7.5249667"
|
||||
y="-4.4750319"
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
clip-path="none" /><path
|
||||
style="overflow:visible;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.15400004;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 19.577,5.3741654 0,9.2516696 4.609548,-4.625834 z"
|
||||
id="path4157"
|
||||
inkscape:connector-curvature="0" /></svg>
|
After Width: | Height: | Size: 13 KiB |
198
toonz/sources/toonz/Resources/xsheet2timeline.svg
Normal file
|
@ -0,0 +1,198 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 10.0, SVG Export Plug-In . SVG Version: 3.0.0 Build 76) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns4="http://ns.adobe.com/SaveForWeb/1.0/"
|
||||
xmlns:ns3="http://ns.adobe.com/Variables/1.0/"
|
||||
xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
|
||||
xmlns:ns2="http://ns.adobe.com/AdobeIllustrator/10.0/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
ns2:viewOrigin="387 312"
|
||||
ns2:rulerOrigin="0 0"
|
||||
ns2:pageBounds="0 600 800 0"
|
||||
width="40"
|
||||
height="20"
|
||||
viewBox="0 0 40 20"
|
||||
overflow="visible"
|
||||
enable-background="new 0 0 26 26"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
id="svg1987"
|
||||
sodipodi:docname="xsheet2timeline.svg"
|
||||
inkscape:version="0.91 r13725"
|
||||
style="overflow:visible"><defs
|
||||
id="defs1991"><linearGradient
|
||||
y2="16.135401"
|
||||
x2="14.882"
|
||||
y1="9.3774004"
|
||||
x1="8.1245003"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="XMLID_1_"><stop
|
||||
id="stop1960"
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0" /><stop
|
||||
id="stop1962"
|
||||
style="stop-color:#CA97CF"
|
||||
offset="0.8595" /><stop
|
||||
id="stop1964"
|
||||
style="stop-color:#F0EDF7"
|
||||
offset="1" /><a:midPointStop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0" /><a:midPointStop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0.5" /><a:midPointStop
|
||||
style="stop-color:#CA97CF"
|
||||
offset="0.8595" /><a:midPointStop
|
||||
style="stop-color:#CA97CF"
|
||||
offset="0.5" /><a:midPointStop
|
||||
style="stop-color:#F0EDF7"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
y2="4.4947"
|
||||
x2="13.4068"
|
||||
y1="11.2783"
|
||||
x1="20.190399"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="XMLID_2_"><stop
|
||||
id="stop1975"
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0" /><stop
|
||||
id="stop1977"
|
||||
style="stop-color:#657EAC"
|
||||
offset="0.8595" /><a:midPointStop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0" /><a:midPointStop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0.5" /><a:midPointStop
|
||||
style="stop-color:#657EAC"
|
||||
offset="0.8595" /></linearGradient><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath6631-5"><path
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6633-7"
|
||||
d="m -17.271586,15.458392 0,10.215929 11.9569912,0 0,11.060056 1.0914803,0 0,-21.275985 z"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /></clipPath><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath997"><path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 26.924548,9.3978546 7.620687,0 0,8.5060394 8.618534,0 0,1.898007 -16.239221,0 z"
|
||||
id="path999"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" /></clipPath><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath1001"><path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 26.924548,9.3978546 7.620687,0 0,8.5060394 8.618534,0 0,1.898007 -16.239221,0 z"
|
||||
id="path1003"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" /></clipPath><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath1005"><path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 9.3978546,-26.924548 0,-7.620687 8.5060394,0 0,-8.618534 1.898007,0 0,16.239221 z"
|
||||
id="path1007"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" /></clipPath><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath1009"><path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#32cfb7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 9.3978546,-26.924548 0,-7.620687 8.5060394,0 0,-8.618534 1.898007,0 0,16.239221 z"
|
||||
id="path1011"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" /></clipPath></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#ffffff"
|
||||
borderopacity="0"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1015"
|
||||
id="namedview1989"
|
||||
showgrid="true"
|
||||
inkscape:zoom="22.627417"
|
||||
inkscape:cx="31.511742"
|
||||
inkscape:cy="1.9846809"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg1987"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:showpageshadow="true"
|
||||
borderlayer="false"
|
||||
showguides="true"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
showborder="true"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4178" /></sodipodi:namedview><metadata
|
||||
id="metadata1956"><ns3:variableSets><ns3:variableSet
|
||||
varSetName="binding1"
|
||||
locked="none"><ns3:variables /><ns3:sampleDataSets /></ns3:variableSet></ns3:variableSets><ns4:sfw><ns4:slices /><ns4:sliceSourceBounds
|
||||
y="286"
|
||||
x="387"
|
||||
width="26"
|
||||
height="26"
|
||||
bottomLeftOrigin="true" /></ns4:sfw><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.08274567;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-6"
|
||||
width="10.917254"
|
||||
height="14.917256"
|
||||
x="4.5413737"
|
||||
y="-16.458628"
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
clip-path="none" /><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.06277537;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-6-4"
|
||||
width="2.9372244"
|
||||
height="14.937225"
|
||||
x="4.5313878"
|
||||
y="-16.468613"
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
clip-path="none" /><rect
|
||||
mask="none"
|
||||
clip-path="none"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.97888446;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711"
|
||||
width="11.021115"
|
||||
height="15.021115"
|
||||
x="-38.510559"
|
||||
y="2.4894423"
|
||||
transform="scale(-1,1)" /><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.00494051;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-4"
|
||||
width="2.9950588"
|
||||
height="14.995059"
|
||||
x="27.502466"
|
||||
y="2.5024705" /><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.99675596;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-4-1"
|
||||
width="8.0032444"
|
||||
height="3.0032442"
|
||||
x="30.498373"
|
||||
y="2.4983783" /><rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.04993284;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect5711-6-4-7"
|
||||
width="7.950067"
|
||||
height="2.950067"
|
||||
x="7.5249667"
|
||||
y="-4.4750319"
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
clip-path="none" /><path
|
||||
style="overflow:visible;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:1.16245127px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 24.418774,5.3060946 0,9.3878114 -4.606119,-4.693905 z"
|
||||
id="path4157"
|
||||
inkscape:connector-curvature="0" /></svg>
|
After Width: | Height: | Size: 13 KiB |
|
@ -67,12 +67,19 @@ void LayerHeaderPanel::paintEvent(QPaintEvent *event) {
|
|||
QRect rect = QRect(QPoint(0, 0), size());
|
||||
p.fillRect(rect.adjusted(0, 0, -3, 0), slightlyLighter);
|
||||
|
||||
drawIcon(p, PredefinedRect::EYE, boost::none,
|
||||
m_viewer->getLayerHeaderPreviewImage());
|
||||
drawIcon(p, PredefinedRect::PREVIEW_LAYER, boost::none,
|
||||
m_viewer->getLayerHeaderCamstandImage());
|
||||
drawIcon(p, PredefinedRect::LOCK, boost::none,
|
||||
m_viewer->getLayerHeaderLockImage());
|
||||
QImage preview = (m_buttonHighlighted == PreviewButton
|
||||
? m_viewer->getLayerHeaderPreviewOverImage()
|
||||
: m_viewer->getLayerHeaderPreviewImage());
|
||||
QImage camstand = (m_buttonHighlighted == CamstandButton
|
||||
? m_viewer->getLayerHeaderCamstandOverImage()
|
||||
: m_viewer->getLayerHeaderCamstandImage());
|
||||
QImage lock = (m_buttonHighlighted == LockButton
|
||||
? m_viewer->getLayerHeaderLockOverImage()
|
||||
: m_viewer->getLayerHeaderLockImage());
|
||||
|
||||
drawIcon(p, PredefinedRect::EYE, boost::none, preview);
|
||||
drawIcon(p, PredefinedRect::PREVIEW_LAYER, boost::none, camstand);
|
||||
drawIcon(p, PredefinedRect::LOCK, boost::none, lock);
|
||||
|
||||
QRect numberRect = o->rect(PredefinedRect::LAYER_NUMBER);
|
||||
|
||||
|
@ -126,6 +133,17 @@ void LayerHeaderPanel::showOrHide(const Orientation *o) {
|
|||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void LayerHeaderPanel::enterEvent(QEvent *) {
|
||||
m_buttonHighlighted = NoButton;
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
void LayerHeaderPanel::leaveEvent(QEvent *) {
|
||||
m_buttonHighlighted = NoButton;
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
void LayerHeaderPanel::mousePressEvent(QMouseEvent *event) {
|
||||
const Orientation *o = Orientations::leftToRight();
|
||||
|
@ -156,19 +174,23 @@ void LayerHeaderPanel::mousePressEvent(QMouseEvent *event) {
|
|||
void LayerHeaderPanel::mouseMoveEvent(QMouseEvent *event) {
|
||||
const Orientation *o = Orientations::leftToRight();
|
||||
|
||||
QPoint pos = event->pos();
|
||||
QPoint pos = event->pos();
|
||||
m_buttonHighlighted = NoButton;
|
||||
|
||||
// preview button
|
||||
if (o->rect(PredefinedRect::EYE_AREA).contains(pos)) {
|
||||
m_tooltip = tr("Preview Visbility Toggle All");
|
||||
m_tooltip = tr("Preview Visbility Toggle All");
|
||||
m_buttonHighlighted = PreviewButton;
|
||||
}
|
||||
// camstand button
|
||||
else if (o->rect(PredefinedRect::PREVIEW_LAYER_AREA).contains(pos)) {
|
||||
m_tooltip = tr("Camera Stand Visibility Toggle All");
|
||||
m_tooltip = tr("Camera Stand Visibility Toggle All");
|
||||
m_buttonHighlighted = CamstandButton;
|
||||
}
|
||||
// lock button
|
||||
else if (o->rect(PredefinedRect::LOCK).contains(pos)) {
|
||||
m_tooltip = tr("Lock Toggle All");
|
||||
m_tooltip = tr("Lock Toggle All");
|
||||
m_buttonHighlighted = LockButton;
|
||||
} else {
|
||||
m_tooltip = tr("");
|
||||
}
|
||||
|
|
|
@ -18,9 +18,12 @@ class LayerHeaderPanel final : public QWidget {
|
|||
|
||||
enum { ToggleAllTransparency = 1, ToggleAllPreviewVisible, ToggleAllLock };
|
||||
|
||||
enum { NoButton, PreviewButton, CamstandButton, LockButton };
|
||||
|
||||
int m_doOnRelease;
|
||||
QString m_tooltip;
|
||||
QPoint m_pos;
|
||||
int m_buttonHighlighted;
|
||||
|
||||
private:
|
||||
XsheetViewer *m_viewer;
|
||||
|
@ -43,6 +46,8 @@ protected:
|
|||
void mousePressEvent(QMouseEvent *event) override;
|
||||
void mouseMoveEvent(QMouseEvent *event) override;
|
||||
void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
void enterEvent(QEvent *);
|
||||
void leaveEvent(QEvent *);
|
||||
bool event(QEvent *event) override;
|
||||
|
||||
private:
|
||||
|
|
|
@ -2036,6 +2036,7 @@ void MainWindow::defineActions() {
|
|||
createMenuWindowsAction(MI_OpenLineTestView, tr("&LineTest Viewer"), "");
|
||||
#endif
|
||||
createMenuWindowsAction(MI_OpenXshView, tr("&Xsheet"), "");
|
||||
createMenuWindowsAction(MI_OpenTimelineView, tr("&Timeline"), "");
|
||||
// createAction(MI_TestAnimation, "Test Animation", "Ctrl+Return");
|
||||
// createAction(MI_Export, "Export", "Ctrl+E");
|
||||
|
||||
|
@ -2415,9 +2416,9 @@ RecentFiles::~RecentFiles() {}
|
|||
|
||||
void RecentFiles::addFilePath(QString path, FileType fileType) {
|
||||
QList<QString> files =
|
||||
(fileType == Scene)
|
||||
? m_recentScenes
|
||||
: (fileType == Level) ? m_recentLevels : m_recentFlipbookImages;
|
||||
(fileType == Scene) ? m_recentScenes : (fileType == Level)
|
||||
? m_recentLevels
|
||||
: m_recentFlipbookImages;
|
||||
int i;
|
||||
for (i = 0; i < files.size(); i++)
|
||||
if (files.at(i) == path) files.removeAt(i);
|
||||
|
@ -2542,9 +2543,9 @@ void RecentFiles::saveRecentFiles() {
|
|||
|
||||
QList<QString> RecentFiles::getFilesNameList(FileType fileType) {
|
||||
QList<QString> files =
|
||||
(fileType == Scene)
|
||||
? m_recentScenes
|
||||
: (fileType == Level) ? m_recentLevels : m_recentFlipbookImages;
|
||||
(fileType == Scene) ? m_recentScenes : (fileType == Level)
|
||||
? m_recentLevels
|
||||
: m_recentFlipbookImages;
|
||||
QList<QString> names;
|
||||
int i;
|
||||
for (i = 0; i < files.size(); i++) {
|
||||
|
@ -2571,9 +2572,9 @@ void RecentFiles::refreshRecentFilesMenu(FileType fileType) {
|
|||
menu->setEnabled(false);
|
||||
else {
|
||||
CommandId clearActionId =
|
||||
(fileType == Scene)
|
||||
? MI_ClearRecentScene
|
||||
: (fileType == Level) ? MI_ClearRecentLevel : MI_ClearRecentImage;
|
||||
(fileType == Scene) ? MI_ClearRecentScene : (fileType == Level)
|
||||
? MI_ClearRecentLevel
|
||||
: MI_ClearRecentImage;
|
||||
menu->setActions(names);
|
||||
menu->addSeparator();
|
||||
QAction *clearAction = CommandManager::instance()->getAction(clearActionId);
|
||||
|
|
|
@ -423,6 +423,7 @@ QMenuBar *StackedMenuBar::createCleanupMenuBar() {
|
|||
addMenuItem(windowsMenu, MI_OpenStyleControl);
|
||||
addMenuItem(windowsMenu, MI_OpenComboViewer);
|
||||
addMenuItem(windowsMenu, MI_OpenXshView);
|
||||
addMenuItem(windowsMenu, MI_OpenTimelineView);
|
||||
windowsMenu->addSeparator();
|
||||
QMenu *otherWindowsMenu = windowsMenu->addMenu(tr("Other Windows"));
|
||||
{
|
||||
|
@ -593,6 +594,7 @@ QMenuBar *StackedMenuBar::createPltEditMenuBar() {
|
|||
addMenuItem(windowsMenu, MI_OpenLevelView);
|
||||
addMenuItem(windowsMenu, MI_OpenComboViewer);
|
||||
addMenuItem(windowsMenu, MI_OpenXshView);
|
||||
addMenuItem(windowsMenu, MI_OpenTimelineView);
|
||||
windowsMenu->addSeparator();
|
||||
QMenu *otherWindowsMenu = windowsMenu->addMenu(tr("Other Windows"));
|
||||
{
|
||||
|
@ -765,6 +767,7 @@ QMenuBar *StackedMenuBar::createInknPaintMenuBar() {
|
|||
addMenuItem(windowsMenu, MI_OpenStudioPalette);
|
||||
addMenuItem(windowsMenu, MI_OpenComboViewer);
|
||||
addMenuItem(windowsMenu, MI_OpenXshView);
|
||||
addMenuItem(windowsMenu, MI_OpenTimelineView);
|
||||
addMenuItem(windowsMenu, MI_OpenColorModel);
|
||||
addMenuItem(windowsMenu, MI_OpenFileBrowser);
|
||||
addMenuItem(windowsMenu, MI_OpenFilmStrip);
|
||||
|
@ -947,6 +950,7 @@ QMenuBar *StackedMenuBar::createXsheetMenuBar() {
|
|||
addMenuItem(windowsMenu, MI_OpenFilmStrip);
|
||||
addMenuItem(windowsMenu, MI_OpenLevelView);
|
||||
addMenuItem(windowsMenu, MI_OpenXshView);
|
||||
addMenuItem(windowsMenu, MI_OpenTimelineView);
|
||||
windowsMenu->addSeparator();
|
||||
QMenu *otherWindowsMenu = windowsMenu->addMenu(tr("Other Windows"));
|
||||
{
|
||||
|
@ -1362,6 +1366,7 @@ QMenuBar *StackedMenuBar::createFullMenuBar() {
|
|||
addMenuItem(windowsMenu, MI_OpenLevelView);
|
||||
addMenuItem(windowsMenu, MI_OpenComboViewer);
|
||||
addMenuItem(windowsMenu, MI_OpenXshView);
|
||||
addMenuItem(windowsMenu, MI_OpenTimelineView);
|
||||
addMenuItem(windowsMenu, MI_OpenHistoryPanel);
|
||||
addMenuItem(windowsMenu, MI_AudioRecording);
|
||||
windowsMenu->addSeparator();
|
||||
|
|
|
@ -108,6 +108,7 @@
|
|||
#define MI_Binarize "MI_Binarize"
|
||||
#define MI_LinesFade "MI_LinesFade"
|
||||
#define MI_OpenXshView "MI_OpenXshView"
|
||||
#define MI_OpenTimelineView "MI_OpenTimelineView"
|
||||
#define MI_OpenMessage "MI_OpenMessage"
|
||||
#define MI_OpenTest "MI_OpenTest"
|
||||
#define MI_OpenTasks "MI_OpenTasks"
|
||||
|
@ -228,6 +229,7 @@
|
|||
#define MI_OpenFunctionEditor "MI_OpenFunctionEditor"
|
||||
#define MI_OpenLevelView "MI_OpenLevelView"
|
||||
#define MI_OpenXshView "MI_OpenXshView"
|
||||
#define MI_OpenTimelineView "MI_OpenTimelineView"
|
||||
#define MI_OpenCleanupSettings "MI_OpenCleanupSettings"
|
||||
#define MI_ResetRoomLayout "MI_ResetRoomLayout"
|
||||
#define MI_MaximizePanel "MI_MaximizePanel"
|
||||
|
|
|
@ -1193,6 +1193,14 @@ void PreferencesPopup::onCursorOutlineChanged(int index) {
|
|||
m_pref->enableCursorOutline(index == Qt::Checked);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
|
||||
void PreferencesPopup::onCurrentColumnDataChanged(const TPixel32 &,
|
||||
bool isDragging) {
|
||||
if (isDragging) return;
|
||||
m_pref->setCurrentColumnData(m_currentColumnColor->getColor());
|
||||
}
|
||||
|
||||
//**********************************************************************************
|
||||
// PrefencesPopup's constructor
|
||||
//**********************************************************************************
|
||||
|
@ -1456,6 +1464,10 @@ PreferencesPopup::PreferencesPopup()
|
|||
new QLabel(tr("* Changes will take effect the next time you run Toonz"));
|
||||
note_xsheet->setStyleSheet("font-size: 10px; font: italic;");
|
||||
|
||||
TPixel32 currectColumnColor;
|
||||
m_pref->getCurrentColumnData(currectColumnColor);
|
||||
m_currentColumnColor = new ColorField(this, false, currectColumnColor);
|
||||
|
||||
//--- Animation ------------------------------
|
||||
categoryList->addItem(tr("Animation"));
|
||||
|
||||
|
@ -2411,6 +2423,10 @@ PreferencesPopup::PreferencesPopup()
|
|||
xsheetFrameLay->addWidget(showColumnNumbersCB, 12, 0, 1, 2);
|
||||
xsheetFrameLay->addWidget(m_syncLevelRenumberWithXsheet, 13, 0, 1, 2);
|
||||
xsheetFrameLay->addWidget(showCurrentTimelineCB, 14, 0, 1, 2);
|
||||
|
||||
xsheetFrameLay->addWidget(new QLabel(tr("Current Column Color:")), 15,
|
||||
0, Qt::AlignRight | Qt::AlignVCenter);
|
||||
xsheetFrameLay->addWidget(m_currentColumnColor, 15, 1);
|
||||
}
|
||||
xsheetFrameLay->setColumnStretch(0, 0);
|
||||
xsheetFrameLay->setColumnStretch(1, 0);
|
||||
|
@ -2849,6 +2865,11 @@ PreferencesPopup::PreferencesPopup()
|
|||
ret = ret && connect(m_xsheetLayout, SIGNAL(currentIndexChanged(int)), this,
|
||||
SLOT(onXsheetLayoutChanged(int)));
|
||||
|
||||
ret =
|
||||
ret && connect(m_currentColumnColor,
|
||||
SIGNAL(colorChanged(const TPixel32 &, bool)),
|
||||
SLOT(onCurrentColumnDataChanged(const TPixel32 &, bool)));
|
||||
|
||||
//--- Animation ----------------------
|
||||
ret = ret && connect(m_keyframeType, SIGNAL(currentIndexChanged(int)),
|
||||
SLOT(onKeyframeTypeChanged(int)));
|
||||
|
|
|
@ -89,6 +89,8 @@ private:
|
|||
|
||||
QGroupBox *m_autoSaveGroup, *m_showXSheetToolbar, *m_colorCalibration;
|
||||
|
||||
DVGui::ColorField *m_currentColumnColor;
|
||||
|
||||
private:
|
||||
// QWidget* create(const QString& lbl, bool def, const char* slot);
|
||||
void rebuildFormatsList();
|
||||
|
@ -211,6 +213,7 @@ private slots:
|
|||
void onCursorBrushTypeChanged(int index);
|
||||
void onCursorBrushStyleChanged(int index);
|
||||
void onCursorOutlineChanged(int);
|
||||
void onCurrentColumnDataChanged(const TPixel32 &, bool isDragging);
|
||||
};
|
||||
|
||||
//**********************************************************************************
|
||||
|
|
|
@ -463,5 +463,7 @@
|
|||
<file>Resources/colorchiporder_leftup.svg</file>
|
||||
<file>Resources/colorchiporder_lowleft.svg</file>
|
||||
<file>Resources/colorchiporder_upleft.svg</file>
|
||||
<file>Resources/timeline2xsheet.svg</file>
|
||||
<file>Resources/xsheet2timeline.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -100,6 +100,21 @@ public:
|
|||
}
|
||||
} xsheetViewerFactory;
|
||||
|
||||
//=============================================================================
|
||||
// XsheetViewer - Timeline mode
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class TimelineViewerFactory final : public TPanelFactory {
|
||||
public:
|
||||
TimelineViewerFactory() : TPanelFactory("Timeline") {}
|
||||
void initialize(TPanel *panel) override {
|
||||
panel->setWidget(new XsheetViewer(panel));
|
||||
XsheetViewer *xsh = (XsheetViewer *)panel->widget();
|
||||
xsh->flipOrientation();
|
||||
panel->resize(500, 300);
|
||||
}
|
||||
} timelineViewerFactory;
|
||||
|
||||
//=============================================================================
|
||||
// SchematicSceneViewer
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
@ -1046,6 +1046,46 @@ void CellArea::setDragTool(DragTool *dragTool) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void CellArea::drawFrameSeparator(QPainter &p, int row, int col,
|
||||
bool emptyFrame, bool heldFrame) {
|
||||
const Orientation *o = m_viewer->orientation();
|
||||
int layerAxis = m_viewer->columnToLayerAxis(col);
|
||||
|
||||
NumberRange layerAxisRange(layerAxis + 1,
|
||||
m_viewer->columnToLayerAxis(col + 1));
|
||||
if (!o->isVerticalTimeline()) {
|
||||
int adjY = o->cellHeight() - 1;
|
||||
layerAxisRange = NumberRange(layerAxis + 1, layerAxis + adjY);
|
||||
}
|
||||
|
||||
// marker interval every 6 frames
|
||||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
// if (distance == 0) distance = 6;
|
||||
|
||||
bool isAfterMarkers =
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
QColor color = isAfterMarkers ? m_viewer->getMarkerLineColor()
|
||||
: m_viewer->getLightLineColor();
|
||||
|
||||
int frameAxis = m_viewer->rowToFrameAxis(row);
|
||||
QLine horizontalLine = m_viewer->orientation()->horizontalLine(
|
||||
frameAxis,
|
||||
layerAxisRange.adjusted((o->isVerticalTimeline() ? 0 : -1), 0));
|
||||
if (heldFrame) {
|
||||
int x = horizontalLine.x1();
|
||||
int y = horizontalLine.y2() - 1;
|
||||
horizontalLine.setP1(QPoint(x, y));
|
||||
color.setAlpha(150);
|
||||
} else if (!o->isVerticalTimeline() && !isAfterMarkers && emptyFrame)
|
||||
color.setAlpha(100);
|
||||
p.setPen(color);
|
||||
p.drawLine(horizontalLine);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void CellArea::drawCells(QPainter &p, const QRect toBeUpdated) {
|
||||
TXsheet *xsh = m_viewer->getXsheet();
|
||||
const Orientation *o = m_viewer->orientation();
|
||||
|
@ -1072,12 +1112,6 @@ void CellArea::drawCells(QPainter &p, const QRect toBeUpdated) {
|
|||
|
||||
drawSelectionBackground(p);
|
||||
|
||||
// marker interval every 6 frames
|
||||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
if (distance == 0) distance = 6;
|
||||
|
||||
int currentRow = m_viewer->getCurrentRow();
|
||||
int col, row;
|
||||
|
||||
|
@ -1134,36 +1168,10 @@ void CellArea::drawCells(QPainter &p, const QRect toBeUpdated) {
|
|||
isReference = false;
|
||||
}
|
||||
|
||||
NumberRange layerAxisRange(layerAxis + 1,
|
||||
m_viewer->columnToLayerAxis(col + 1));
|
||||
if (!m_viewer->orientation()->isVerticalTimeline()) {
|
||||
int adjY = m_viewer->orientation()->cellHeight() - 1;
|
||||
layerAxisRange = NumberRange(layerAxis + 1, layerAxis + adjY);
|
||||
}
|
||||
|
||||
// draw vertical line
|
||||
if (layerAxis > 0) {
|
||||
p.setPen(m_viewer->getVerticalLineColor());
|
||||
QLine verticalLine =
|
||||
m_viewer->orientation()->verticalLine(layerAxis, frameSide);
|
||||
p.drawLine(verticalLine);
|
||||
}
|
||||
|
||||
// for each frame
|
||||
for (row = r0; row <= r1; row++) {
|
||||
// draw horizontal lines
|
||||
// hide top-most marker line
|
||||
QColor color = ((row - offset) % distance == 0 && row != 0)
|
||||
? m_viewer->getMarkerLineColor()
|
||||
: m_viewer->getLightLineColor();
|
||||
|
||||
p.setPen(color);
|
||||
int frameAxis = m_viewer->rowToFrameAxis(row);
|
||||
QLine horizontalLine =
|
||||
m_viewer->orientation()->horizontalLine(frameAxis, layerAxisRange);
|
||||
p.drawLine(horizontalLine);
|
||||
|
||||
if (!isColumn) {
|
||||
drawFrameSeparator(p, row, col, true);
|
||||
if (TApp::instance()->getCurrentFrame()->isEditingScene() &&
|
||||
!m_viewer->orientation()->isVerticalTimeline() &&
|
||||
row == m_viewer->getCurrentRow() &&
|
||||
|
@ -1191,6 +1199,14 @@ void CellArea::drawCells(QPainter &p, const QRect toBeUpdated) {
|
|||
else
|
||||
drawLevelCell(p, row, col, isReference);
|
||||
}
|
||||
|
||||
// draw vertical line
|
||||
if (layerAxis > 0) {
|
||||
p.setPen(m_viewer->getVerticalLineColor());
|
||||
QLine verticalLine =
|
||||
m_viewer->orientation()->verticalLine(layerAxis, frameSide);
|
||||
p.drawLine(verticalLine);
|
||||
}
|
||||
}
|
||||
|
||||
drawExtenderHandles(p);
|
||||
|
@ -1307,7 +1323,7 @@ void CellArea::drawExtenderHandles(QPainter &p) {
|
|||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
if (distance == 0) distance = 6;
|
||||
// if (distance == 0) distance = 6;
|
||||
|
||||
QPoint xyRadius = o->point(PredefinedPoint::EXTENDER_XY_RADIUS);
|
||||
|
||||
|
@ -1318,7 +1334,7 @@ void CellArea::drawExtenderHandles(QPainter &p) {
|
|||
p.setPen(Qt::black);
|
||||
p.setBrush(SmartTabColor);
|
||||
p.drawRoundRect(m_levelExtenderRect, xyRadius.x(), xyRadius.y());
|
||||
QColor color = ((selRow1 + 1 - offset) % distance != 0)
|
||||
QColor color = (distance > 0 && ((selRow1 + 1 - offset) % distance) != 0)
|
||||
? m_viewer->getLightLineColor()
|
||||
: m_viewer->getMarkerLineColor();
|
||||
p.setPen(color);
|
||||
|
@ -1334,7 +1350,7 @@ void CellArea::drawExtenderHandles(QPainter &p) {
|
|||
p.setPen(Qt::black);
|
||||
p.setBrush(SmartTabColor);
|
||||
p.drawRoundRect(m_upperLevelExtenderRect, xyRadius.x(), xyRadius.y());
|
||||
QColor color = ((selRow0 - offset) % distance != 0)
|
||||
QColor color = (distance > 0 && ((selRow0 - offset) % distance) != 0)
|
||||
? m_viewer->getLightLineColor()
|
||||
: m_viewer->getMarkerLineColor();
|
||||
p.setPen(color);
|
||||
|
@ -1360,16 +1376,26 @@ void CellArea::drawSoundCell(QPainter &p, int row, int col, bool isReference) {
|
|||
xy.setX(xy.x() + 1);
|
||||
}
|
||||
|
||||
TXshCell nextCell;
|
||||
nextCell =
|
||||
m_viewer->getXsheet()->getCell(row + 1, col); // cell in next frame
|
||||
|
||||
int frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
int frameZoomF = m_viewer->getFrameZoomFactor();
|
||||
QRect cellRect = o->rect(PredefinedRect::CELL).translated(QPoint(x, y));
|
||||
cellRect.adjust(0, 0, -frameAdj, 0);
|
||||
QRect rect = cellRect.adjusted(1, 1, 0, 0);
|
||||
QRect rect = cellRect.adjusted(
|
||||
1, 1,
|
||||
(!m_viewer->orientation()->isVerticalTimeline() && !nextCell.isEmpty()
|
||||
? 2
|
||||
: 0),
|
||||
0);
|
||||
int maxNumFrame = soundColumn->getMaxFrame() + 1;
|
||||
int startFrame = soundColumn->getFirstRow();
|
||||
TXshCell cell = soundColumn->getCell(row);
|
||||
if (soundColumn->isCellEmpty(row) || cell.isEmpty() || row > maxNumFrame ||
|
||||
row < startFrame) {
|
||||
drawFrameSeparator(p, row, col, true);
|
||||
if (TApp::instance()->getCurrentFrame()->isEditingScene() &&
|
||||
!m_viewer->orientation()->isVerticalTimeline() &&
|
||||
row == m_viewer->getCurrentRow() &&
|
||||
|
@ -1378,6 +1404,8 @@ void CellArea::drawSoundCell(QPainter &p, int row, int col, bool isReference) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (o->isVerticalTimeline() || !row) drawFrameSeparator(p, row, col, false);
|
||||
|
||||
TXshSoundLevelP soundLevel = cell.getSoundLevel();
|
||||
|
||||
int r0, r1;
|
||||
|
@ -1472,7 +1500,7 @@ void CellArea::drawSoundCell(QPainter &p, int row, int col, bool isReference) {
|
|||
QLine stroke = o->horizontalLine(i, previewBounds.adjusted(-1, -1));
|
||||
p.drawLine(stroke);
|
||||
}
|
||||
if (i != begin) {
|
||||
if (!o->isVerticalTimeline() || i != begin) {
|
||||
// "audio track" in the middle of the column
|
||||
p.setPen(m_viewer->getSoundColumnTrackColor());
|
||||
QLine minLine = o->horizontalLine(i, NumberRange(lastMin, min));
|
||||
|
@ -1512,11 +1540,12 @@ void CellArea::drawSoundCell(QPainter &p, int row, int col, bool isReference) {
|
|||
int distance, markerOffset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, markerOffset);
|
||||
// if (distance == 0) distance = 6;
|
||||
bool isAfterMarkers =
|
||||
(row - markerOffset) % distance == 0 && distance != 0 && row != 0;
|
||||
distance > 0 && ((row - markerOffset) % distance) == 0 && row != 0;
|
||||
|
||||
// draw marker interval
|
||||
if (isAfterMarkers) {
|
||||
if (o->isVerticalTimeline() && isAfterMarkers) {
|
||||
p.setPen(m_viewer->getMarkerLineColor());
|
||||
p.drawLine(o->line(PredefinedLine::SEE_MARKER_THROUGH).translated(xy));
|
||||
}
|
||||
|
@ -1580,15 +1609,25 @@ void CellArea::drawCurrentTimeIndicator(QPainter &p, const QPoint &xy,
|
|||
p.drawLine(cellMid, cellTop, cellMid, cellBottom);
|
||||
}
|
||||
|
||||
void CellArea::drawFrameDot(QPainter &p, const QPoint &xy, bool isValid) {
|
||||
int frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
QRect dotRect =
|
||||
m_viewer->orientation()->rect(PredefinedRect::FRAME_DOT).translated(xy);
|
||||
p.setPen(Qt::black);
|
||||
p.setBrush(isValid ? QColor(230, 100, 100) : m_viewer->getTextColor());
|
||||
void CellArea::drawFrameMarker(QPainter &p, const QPoint &xy, QColor color,
|
||||
bool isKeyFrame) {
|
||||
QColor outlineColor = Qt::black;
|
||||
int frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
QRect dotRect = m_viewer->orientation()
|
||||
->rect(PredefinedRect::FRAME_MARKER_AREA)
|
||||
.translated(xy);
|
||||
dotRect.adjust(-frameAdj / 2, 0, -frameAdj / 2, 0);
|
||||
p.drawEllipse(dotRect);
|
||||
p.setBrush(Qt::NoBrush);
|
||||
|
||||
if (isKeyFrame)
|
||||
m_viewer->drawPredefinedPath(p, PredefinedPath::FRAME_MARKER_DIAMOND,
|
||||
dotRect.adjusted(1, 1, 1, 1).center(), color,
|
||||
outlineColor);
|
||||
else {
|
||||
p.setPen(outlineColor);
|
||||
p.setBrush(color);
|
||||
p.drawEllipse(dotRect);
|
||||
p.setBrush(Qt::NoBrush);
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -1607,6 +1646,8 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) {
|
|||
|
||||
if (row > 0) prevCell = xsh->getCell(row - 1, col); // cell in previous frame
|
||||
|
||||
bool sameLevel = prevCell.m_level.getPointer() == cell.m_level.getPointer();
|
||||
|
||||
QPoint xy = m_viewer->positionToXY(CellPosition(row, col));
|
||||
int x = xy.x();
|
||||
int y = xy.y();
|
||||
|
@ -1619,6 +1660,8 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) {
|
|||
|
||||
// nothing to draw
|
||||
if (cell.isEmpty() && prevCell.isEmpty()) {
|
||||
drawFrameSeparator(p, row, col, true);
|
||||
|
||||
if (TApp::instance()->getCurrentFrame()->isEditingScene() &&
|
||||
!m_viewer->orientation()->isVerticalTimeline() &&
|
||||
row == m_viewer->getCurrentRow() &&
|
||||
|
@ -1626,13 +1669,23 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) {
|
|||
drawCurrentTimeIndicator(p, xy);
|
||||
return;
|
||||
}
|
||||
|
||||
bool heldFrame = (!o->isVerticalTimeline() && sameLevel &&
|
||||
prevCell.m_frameId == cell.m_frameId);
|
||||
drawFrameSeparator(p, row, col, false, heldFrame);
|
||||
|
||||
TXshCell nextCell;
|
||||
nextCell = xsh->getCell(row + 1, col); // cell in next frame
|
||||
|
||||
int frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
QRect cellRect = o->rect(PredefinedRect::CELL).translated(QPoint(x, y));
|
||||
cellRect.adjust(0, 0, -frameAdj, 0);
|
||||
QRect rect = cellRect.adjusted(1, 1, 0, 0);
|
||||
QRect rect = cellRect.adjusted(
|
||||
1, 1,
|
||||
(!m_viewer->orientation()->isVerticalTimeline() && !nextCell.isEmpty()
|
||||
? 2
|
||||
: 0),
|
||||
0);
|
||||
if (cell.isEmpty()) { // it means previous is not empty
|
||||
// diagonal cross meaning end of level
|
||||
QColor levelEndColor = m_viewer->getTextColor();
|
||||
|
@ -1700,16 +1753,15 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) {
|
|||
|
||||
drawLockedDottedLine(p, xsh->getColumn(col)->isLocked(), xy, cellColor);
|
||||
|
||||
bool sameLevel = prevCell.m_level.getPointer() == cell.m_level.getPointer();
|
||||
|
||||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
// if (distance == 0) distance = 6;
|
||||
bool isAfterMarkers =
|
||||
(row - offset) % distance == 0 && distance != 0 && row != 0;
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
|
||||
// draw marker interval
|
||||
if (isAfterMarkers) {
|
||||
if (o->isVerticalTimeline() && isAfterMarkers) {
|
||||
p.setPen(m_viewer->getMarkerLineColor());
|
||||
p.drawLine(o->line(PredefinedLine::SEE_MARKER_THROUGH).translated(xy));
|
||||
}
|
||||
|
@ -1733,9 +1785,10 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) {
|
|||
TXshChildLevel *cl = cell.getChildLevel();
|
||||
if (cl && cell.getFrameId().getNumber() - 1 >= cl->getFrameCount())
|
||||
isRed = true;
|
||||
p.setPen(
|
||||
QColor penColor =
|
||||
isRed ? QColor(230, 100, 100) // m_viewer->getSelectedColumnTextColor()
|
||||
: m_viewer->getTextColor());
|
||||
: m_viewer->getTextColor();
|
||||
p.setPen(penColor);
|
||||
|
||||
QString fontName = Preferences::instance()->getInterfaceFont();
|
||||
if (fontName == "") {
|
||||
|
@ -1756,6 +1809,8 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) {
|
|||
// draw continue line
|
||||
QString fnum;
|
||||
if (sameLevel && prevCell.m_frameId == cell.m_frameId) {
|
||||
if (!o->isVerticalTimeline()) return;
|
||||
|
||||
// not on line marker
|
||||
PredefinedLine which =
|
||||
Preferences::instance()->isLevelNameOnEachMarkerEnabled()
|
||||
|
@ -1769,7 +1824,11 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) {
|
|||
// draw frame number
|
||||
else {
|
||||
if (m_viewer->getFrameZoomFactor() <= 50) {
|
||||
drawFrameDot(p, QPoint(x, y), isRed);
|
||||
// Lets not draw normal marker if there is a keyframe here
|
||||
TStageObject *pegbar = xsh->getStageObject(m_viewer->getObjectId(col));
|
||||
if (pegbar->isKeyframe(row)) return;
|
||||
|
||||
drawFrameMarker(p, QPoint(x, y), (isRed ? Qt::red : Qt::black));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1825,6 +1884,9 @@ void CellArea::drawSoundTextCell(QPainter &p, int row, int col) {
|
|||
|
||||
if (row > 0) prevCell = xsh->getCell(row - 1, col); // cell in previous frame
|
||||
// nothing to draw
|
||||
|
||||
bool sameLevel = prevCell.m_level.getPointer() == cell.m_level.getPointer();
|
||||
|
||||
QPoint xy = m_viewer->positionToXY(CellPosition(row, col));
|
||||
int x = xy.x();
|
||||
int y = xy.y();
|
||||
|
@ -1836,6 +1898,7 @@ void CellArea::drawSoundTextCell(QPainter &p, int row, int col) {
|
|||
}
|
||||
|
||||
if (cell.isEmpty() && prevCell.isEmpty()) {
|
||||
drawFrameSeparator(p, row, col, true);
|
||||
if (TApp::instance()->getCurrentFrame()->isEditingScene() &&
|
||||
!m_viewer->orientation()->isVerticalTimeline() &&
|
||||
row == m_viewer->getCurrentRow() &&
|
||||
|
@ -1844,13 +1907,23 @@ void CellArea::drawSoundTextCell(QPainter &p, int row, int col) {
|
|||
|
||||
return;
|
||||
}
|
||||
|
||||
bool heldFrame = (!o->isVerticalTimeline() && sameLevel &&
|
||||
prevCell.m_frameId == cell.m_frameId);
|
||||
drawFrameSeparator(p, row, col, false, heldFrame);
|
||||
|
||||
TXshCell nextCell;
|
||||
nextCell = xsh->getCell(row + 1, col);
|
||||
|
||||
int frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
QRect cellRect = o->rect(PredefinedRect::CELL).translated(QPoint(x, y));
|
||||
cellRect.adjust(0, 0, -frameAdj, 0);
|
||||
QRect rect = cellRect.adjusted(1, 1, 0, 0);
|
||||
QRect rect = cellRect.adjusted(
|
||||
1, 1,
|
||||
(!m_viewer->orientation()->isVerticalTimeline() && !nextCell.isEmpty()
|
||||
? 2
|
||||
: 0),
|
||||
0);
|
||||
if (cell.isEmpty()) { // diagonal cross meaning end of level
|
||||
QColor levelEndColor = m_viewer->getTextColor();
|
||||
levelEndColor.setAlphaF(0.3);
|
||||
|
@ -1888,18 +1961,19 @@ void CellArea::drawSoundTextCell(QPainter &p, int row, int col) {
|
|||
drawEndOfDragHandle(p, isLastRow, xy, cellColor);
|
||||
|
||||
drawLockedDottedLine(p, xsh->getColumn(col)->isLocked(), xy, cellColor);
|
||||
bool sameLevel = prevCell.m_level.getPointer() == cell.m_level.getPointer();
|
||||
|
||||
TFrameId fid = cell.m_frameId;
|
||||
if (fid.getNumber() - 1 < 0) return;
|
||||
|
||||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
// if (distance == 0) distance = 6;
|
||||
bool isAfterMarkers =
|
||||
(row - offset) % distance == 0 && distance != 0 && row != 0;
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
|
||||
// draw marker interval
|
||||
if (isAfterMarkers) {
|
||||
if (o->isVerticalTimeline() && isAfterMarkers) {
|
||||
p.setPen(m_viewer->getMarkerLineColor());
|
||||
p.drawLine(o->line(PredefinedLine::SEE_MARKER_THROUGH).translated(xy));
|
||||
}
|
||||
|
@ -1925,6 +1999,7 @@ void CellArea::drawSoundTextCell(QPainter &p, int row, int col) {
|
|||
// if the same level & same fId with the previous cell,
|
||||
// draw continue line
|
||||
if (sameLevel && prevCell.m_frameId == cell.m_frameId) {
|
||||
if (!o->isVerticalTimeline()) return;
|
||||
// not on line marker
|
||||
PredefinedLine which =
|
||||
Preferences::instance()->isLevelNameOnEachMarkerEnabled()
|
||||
|
@ -1969,6 +2044,19 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
if (row > 0) prevCell = xsh->getCell(row - 1, col);
|
||||
TXshCell nextCell = xsh->getCell(row + 1, col);
|
||||
|
||||
bool sameLevel = prevCell.m_level.getPointer() == cell.m_level.getPointer();
|
||||
|
||||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
// if (distance == 0) distance = 6;
|
||||
bool isAfterMarkers =
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
|
||||
bool isRed = false;
|
||||
TXshPaletteLevel *pl = cell.getPaletteLevel();
|
||||
if (pl && !pl->getPalette()) isRed = true;
|
||||
|
||||
QPoint xy = m_viewer->positionToXY(CellPosition(row, col));
|
||||
int x = xy.x();
|
||||
int y = xy.y();
|
||||
|
@ -1978,7 +2066,9 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
else
|
||||
xy.setX(xy.x() + 1);
|
||||
}
|
||||
|
||||
if (cell.isEmpty() && prevCell.isEmpty()) {
|
||||
drawFrameSeparator(p, row, col, true);
|
||||
if (TApp::instance()->getCurrentFrame()->isEditingScene() &&
|
||||
!m_viewer->orientation()->isVerticalTimeline() &&
|
||||
row == m_viewer->getCurrentRow() &&
|
||||
|
@ -1988,10 +2078,19 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
return;
|
||||
}
|
||||
|
||||
bool heldFrame = (!o->isVerticalTimeline() && !isAfterMarkers && sameLevel &&
|
||||
prevCell.m_frameId == cell.m_frameId);
|
||||
drawFrameSeparator(p, row, col, false, heldFrame);
|
||||
|
||||
int frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
QRect cellRect = o->rect(PredefinedRect::CELL).translated(QPoint(x, y));
|
||||
cellRect.adjust(0, 0, -frameAdj, 0);
|
||||
QRect rect = cellRect.adjusted(1, 1, 0, 0);
|
||||
QRect rect = cellRect.adjusted(
|
||||
1, 1,
|
||||
(!m_viewer->orientation()->isVerticalTimeline() && !nextCell.isEmpty()
|
||||
? 2
|
||||
: 0),
|
||||
0);
|
||||
if (cell.isEmpty()) { // this means the former is not empty
|
||||
QColor levelEndColor = m_viewer->getTextColor();
|
||||
levelEndColor.setAlphaF(0.3);
|
||||
|
@ -2033,15 +2132,7 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
drawEndOfDragHandle(p, isLastRow, xy, cellColor);
|
||||
drawLockedDottedLine(p, xsh->getColumn(col)->isLocked(), xy, cellColor);
|
||||
|
||||
bool sameLevel = prevCell.m_level.getPointer() == cell.m_level.getPointer();
|
||||
|
||||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
if (distance == 0) distance = 6;
|
||||
bool isAfterMarkers = (row - offset) % distance == 0 && row != 0;
|
||||
|
||||
if (isAfterMarkers) {
|
||||
if (o->isVerticalTimeline() && isAfterMarkers) {
|
||||
p.setPen(m_viewer->getMarkerLineColor());
|
||||
p.drawLine(o->line(PredefinedLine::SEE_MARKER_THROUGH).translated(xy));
|
||||
}
|
||||
|
@ -2049,6 +2140,7 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
if (sameLevel && prevCell.m_frameId == cell.m_frameId &&
|
||||
!isAfterMarkers) { // cell equal to previous one (not on marker line):
|
||||
// do not write anything and draw a vertical line
|
||||
if (!o->isVerticalTimeline()) return;
|
||||
QPen oldPen = p.pen();
|
||||
p.setPen(QPen(m_viewer->getTextColor(), 1));
|
||||
QLine continueLine = o->line(PredefinedLine::CONTINUE_LEVEL).translated(xy);
|
||||
|
@ -2056,6 +2148,14 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
p.drawLine(continueLine);
|
||||
p.setPen(oldPen);
|
||||
} else {
|
||||
if (m_viewer->getFrameZoomFactor() <= 50) {
|
||||
// Lets not draw normal marker if there is a keyframe here
|
||||
TStageObject *pegbar = xsh->getStageObject(m_viewer->getObjectId(col));
|
||||
if (pegbar->isKeyframe(row)) return;
|
||||
drawFrameMarker(p, QPoint(x, y), (isRed ? Qt::red : Qt::black));
|
||||
return;
|
||||
}
|
||||
|
||||
TFrameId fid = cell.m_frameId;
|
||||
|
||||
std::wstring levelName = cell.m_level->getName();
|
||||
|
@ -2075,12 +2175,10 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
}
|
||||
|
||||
nameRect.adjust(0, 0, -frameAdj, 0);
|
||||
bool isRed = false;
|
||||
TXshPaletteLevel *pl = cell.getPaletteLevel();
|
||||
if (pl && !pl->getPalette()) isRed = true;
|
||||
p.setPen(
|
||||
QColor penColor =
|
||||
isRed ? QColor(230, 100, 100) // m_viewer->getSelectedColumnTextColor()
|
||||
: m_viewer->getTextColor());
|
||||
: m_viewer->getTextColor();
|
||||
p.setPen(penColor);
|
||||
// il nome va scritto se e' diverso dalla cella precedente oppure se
|
||||
// siamo su una marker line
|
||||
QString fontName = Preferences::instance()->getInterfaceFont();
|
||||
|
@ -2135,11 +2233,12 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
void CellArea::drawKeyframe(QPainter &p, const QRect toBeUpdated) {
|
||||
const Orientation *o = m_viewer->orientation();
|
||||
int r0, r1, c0, c1; // range of visible rows and columns
|
||||
CellRange visible = m_viewer->xyRectToRange(toBeUpdated);
|
||||
r0 = visible.from().frame();
|
||||
r1 = visible.to().frame();
|
||||
c0 = visible.from().layer();
|
||||
c1 = visible.to().layer();
|
||||
CellRange visible = m_viewer->xyRectToRange(toBeUpdated);
|
||||
QColor keyFrameColor = Qt::white, outline = Qt::black;
|
||||
r0 = visible.from().frame();
|
||||
r1 = visible.to().frame();
|
||||
c0 = visible.from().layer();
|
||||
c1 = visible.to().layer();
|
||||
|
||||
static QPixmap selectedKey = svgToPixmap(":Resources/selected_key.svg");
|
||||
static QPixmap key = svgToPixmap(":Resources/key.svg");
|
||||
|
@ -2183,16 +2282,20 @@ void CellArea::drawKeyframe(QPainter &p, const QRect toBeUpdated) {
|
|||
handleRow1)) {
|
||||
QPoint topLeft =
|
||||
m_viewer->positionToXY(CellPosition(handleRow0, col));
|
||||
if (!o->isVerticalTimeline() &&
|
||||
m_viewer->getFrameZoomFactor() <= 50)
|
||||
topLeft.setY(topLeft.y() - 1);
|
||||
m_viewer->drawPredefinedPath(p, PredefinedPath::BEGIN_EASE_TRIANGLE,
|
||||
topLeft + QPoint(-frameAdj / 2, 0),
|
||||
m_viewer->getLightLineColor(),
|
||||
m_viewer->getTextColor());
|
||||
keyFrameColor, outline);
|
||||
|
||||
topLeft = m_viewer->positionToXY(CellPosition(handleRow1, col));
|
||||
if (!o->isVerticalTimeline() &&
|
||||
m_viewer->getFrameZoomFactor() <= 50)
|
||||
topLeft.setY(topLeft.y() - 1);
|
||||
m_viewer->drawPredefinedPath(p, PredefinedPath::END_EASE_TRIANGLE,
|
||||
topLeft + QPoint(-frameAdj / 2, 0),
|
||||
m_viewer->getLightLineColor(),
|
||||
m_viewer->getTextColor());
|
||||
keyFrameColor, outline);
|
||||
}
|
||||
}
|
||||
// skip to next segment
|
||||
|
@ -2208,11 +2311,27 @@ void CellArea::drawKeyframe(QPainter &p, const QRect toBeUpdated) {
|
|||
for (row = row0; row <= row1; row++) {
|
||||
p.setPen(m_viewer->getTextColor());
|
||||
if (pegbar->isKeyframe(row)) {
|
||||
QPoint target =
|
||||
keyRect.translated(m_viewer->positionToXY(CellPosition(row, col)))
|
||||
.topLeft();
|
||||
if (m_viewer->getKeyframeSelection() &&
|
||||
m_viewer->getKeyframeSelection()->isSelected(row, col)) {
|
||||
QPoint xy = m_viewer->positionToXY(CellPosition(row, col));
|
||||
QPoint target = keyRect.translated(xy).topLeft();
|
||||
if (!o->isVerticalTimeline() && m_viewer->getFrameZoomFactor() <= 50) {
|
||||
QColor color = Qt::white;
|
||||
int x = xy.x();
|
||||
int y = xy.y();
|
||||
if (row == 0) {
|
||||
if (o->isVerticalTimeline())
|
||||
xy.setY(xy.y() + 1);
|
||||
else
|
||||
xy.setX(xy.x() + 1);
|
||||
}
|
||||
|
||||
if (m_viewer->getKeyframeSelection() &&
|
||||
m_viewer->getKeyframeSelection()->isSelected(row, col))
|
||||
color = QColor(85, 157, 255);
|
||||
|
||||
drawFrameMarker(p, QPoint(x, y), color, true);
|
||||
|
||||
} else if (m_viewer->getKeyframeSelection() &&
|
||||
m_viewer->getKeyframeSelection()->isSelected(row, col)) {
|
||||
// keyframe selected
|
||||
p.drawPixmap(target, selectedKey);
|
||||
} else {
|
||||
|
@ -2274,7 +2393,13 @@ void CellArea::drawKeyframeLine(QPainter &p, int col,
|
|||
QPoint end =
|
||||
keyRect.center() + m_viewer->positionToXY(CellPosition(rows.to(), col));
|
||||
|
||||
p.setPen(m_viewer->getTextColor());
|
||||
if (!m_viewer->orientation()->isVerticalTimeline() &&
|
||||
m_viewer->getFrameZoomFactor() <= 50) {
|
||||
begin.setY(begin.y() - 1);
|
||||
end.setY(end.y() - 1);
|
||||
}
|
||||
|
||||
p.setPen(Qt::white);
|
||||
p.drawLine(QLine(begin, end));
|
||||
}
|
||||
|
||||
|
@ -2373,8 +2498,6 @@ void CellArea::paintEvent(QPaintEvent *event) {
|
|||
drawKeyframe(p, toBeUpdated);
|
||||
drawNotes(p, toBeUpdated);
|
||||
|
||||
if (getDragTool()) getDragTool()->drawCellsArea(p);
|
||||
|
||||
// focus cell border
|
||||
int frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
int row = m_viewer->getCurrentRow();
|
||||
|
@ -2383,10 +2506,14 @@ void CellArea::paintEvent(QPaintEvent *event) {
|
|||
QRect rect = m_viewer->orientation()
|
||||
->rect(PredefinedRect::CELL)
|
||||
.translated(xy)
|
||||
.adjusted(1, 1, -1 - frameAdj, -1);
|
||||
.adjusted(0, 0, -1 - frameAdj, 0);
|
||||
p.setPen(Qt::black);
|
||||
p.setBrush(Qt::NoBrush);
|
||||
p.drawRect(rect);
|
||||
for (int i = 0; i < 2; i++) // thick border within cell
|
||||
p.drawRect(QRect(rect.topLeft() + QPoint(i, i),
|
||||
rect.size() - QSize(2 * i, 2 * i)));
|
||||
|
||||
if (getDragTool()) getDragTool()->drawCellsArea(p);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -2485,11 +2612,18 @@ void CellArea::mousePressEvent(QMouseEvent *event) {
|
|||
(k1 > k0 || k0 == row) && k0 <= row &&
|
||||
row <= k1 + 1;
|
||||
|
||||
bool isKeyFrameArea = isKeyframeFrame &&
|
||||
o->rect(PredefinedRect::KEYFRAME_AREA)
|
||||
.adjusted(-frameAdj / 2, 0, -frameAdj / 2, 0)
|
||||
.contains(mouseInCell) &&
|
||||
row < k1 + 1;
|
||||
bool isKeyFrameArea =
|
||||
isKeyframeFrame &&
|
||||
((o->isVerticalTimeline() &&
|
||||
o->rect(PredefinedRect::KEYFRAME_AREA)
|
||||
.adjusted(-frameAdj / 2, 0, -frameAdj / 2, 0)
|
||||
.contains(mouseInCell))
|
||||
|
||||
|| (!o->isVerticalTimeline() &&
|
||||
o->rect(PredefinedRect::FRAME_MARKER_AREA)
|
||||
.adjusted(-frameAdj / 2, 0, -frameAdj / 2, 0)
|
||||
.contains(mouseInCell))) &&
|
||||
row < k1 + 1;
|
||||
bool accept = false;
|
||||
|
||||
if (isKeyFrameArea) { // They are in the keyframe selection
|
||||
|
|
|
@ -88,6 +88,8 @@ class CellArea final : public QWidget {
|
|||
void drawLockedDottedLine(QPainter &p, bool isLocked, const QPoint &xy,
|
||||
const QColor &cellColor) const;
|
||||
|
||||
void drawFrameSeparator(QPainter &p, int row, int col, bool emptyFrame,
|
||||
bool heldFrame = false);
|
||||
void drawLevelCell(QPainter &p, int row, int col, bool isReference = false);
|
||||
void drawSoundTextCell(QPainter &p, int row, int col);
|
||||
void drawSoundCell(QPainter &p, int row, int col, bool isReference = false);
|
||||
|
@ -101,7 +103,8 @@ class CellArea final : public QWidget {
|
|||
void drawCurrentTimeIndicator(QPainter &p, const QPoint &xy,
|
||||
bool isFolded = false);
|
||||
|
||||
void drawFrameDot(QPainter &p, const QPoint &xy, bool isValid);
|
||||
void drawFrameMarker(QPainter &p, const QPoint &xy, QColor color,
|
||||
bool isKeyFrame = false);
|
||||
|
||||
// Restistusce true
|
||||
bool getEaseHandles(int r0, int r1, double e0, double e1, int &rh0, int &rh1);
|
||||
|
|
|
@ -689,7 +689,7 @@ void ColumnArea::DrawHeader::drawEye() const {
|
|||
// preview visible toggle
|
||||
p.setPen(m_viewer->getVerticalLineColor());
|
||||
|
||||
if (column->getPaletteColumn() || column->getSoundTextColumn()) {
|
||||
if (column->getSoundTextColumn()) {
|
||||
if (o->flag(PredefinedFlag::EYE_AREA_BORDER)) p.drawRect(prevViewRect);
|
||||
return;
|
||||
}
|
||||
|
@ -1827,7 +1827,7 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) {
|
|||
// preview button
|
||||
else if (o->rect(PredefinedRect::EYE_AREA).contains(mouseInCell) &&
|
||||
event->button() == Qt::LeftButton) {
|
||||
if (column->getPaletteColumn() || column->getSoundTextColumn()) {
|
||||
if (column->getSoundTextColumn()) {
|
||||
// do nothing
|
||||
} else {
|
||||
m_doOnRelease =
|
||||
|
|
|
@ -100,8 +100,9 @@ void XsheetViewer::getCellTypeAndColors(int <ype, QColor &cellColor,
|
|||
sideColor = m_soundColumnBorderColor;
|
||||
break;
|
||||
case SND_TXT_XSHLEVEL:
|
||||
cellColor = XsheetGUI::SoundTextColumnColor;
|
||||
sideColor = XsheetGUI::SoundTextColumnBorderColor;
|
||||
cellColor = (isSelected) ? getSelectedSoundTextColumnColor()
|
||||
: getSoundTextColumnColor();
|
||||
sideColor = getSoundTextColumnBorderColor();
|
||||
break;
|
||||
case MESH_XSHLEVEL:
|
||||
cellColor =
|
||||
|
@ -718,10 +719,10 @@ void XsheetViewer::updateAreeSize() {
|
|||
: o->foldedCellSize()));
|
||||
}
|
||||
}
|
||||
if (viewArea.right() < areaFilled.x()) viewArea.setRight(areaFilled.x());
|
||||
if (viewArea.bottom() < areaFilled.y() ||
|
||||
(!o->isVerticalTimeline() && viewArea.bottom() != areaFilled.y()))
|
||||
viewArea.setBottom(areaFilled.y());
|
||||
if (viewArea.width() < areaFilled.x()) viewArea.setWidth(areaFilled.x());
|
||||
if (viewArea.height() < areaFilled.y() ||
|
||||
(!o->isVerticalTimeline() && viewArea.height() != areaFilled.y()))
|
||||
viewArea.setHeight(areaFilled.y());
|
||||
|
||||
NumberRange allLayer = o->layerSide(viewArea);
|
||||
NumberRange allFrame = o->frameSide(viewArea);
|
||||
|
@ -1099,7 +1100,7 @@ void XsheetViewer::wheelEvent(QWheelEvent *event) {
|
|||
return;
|
||||
}
|
||||
|
||||
int markerDistance = 6, markerOffset = 0;
|
||||
int markerDistance = 0, markerOffset = 0;
|
||||
TApp::instance()
|
||||
->getCurrentScene()
|
||||
->getScene()
|
||||
|
@ -1750,9 +1751,22 @@ void XsheetViewer::zoomOnFrame(int frame, int factor) {
|
|||
m_rowArea->update();
|
||||
}
|
||||
|
||||
QColor XsheetViewer::getSelectedColumnTextColor() const {
|
||||
// get colors
|
||||
TPixel currentColumnPixel;
|
||||
Preferences::instance()->getCurrentColumnData(currentColumnPixel);
|
||||
QColor currentColumnColor((int)currentColumnPixel.r,
|
||||
(int)currentColumnPixel.g,
|
||||
(int)currentColumnPixel.b, 255);
|
||||
return currentColumnColor;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// XSheetViewerCommand
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
OpenFloatingPanel openXsheetViewerCommand(MI_OpenXshView, "Xsheet",
|
||||
QObject::tr("Xsheet"));
|
||||
|
||||
OpenFloatingPanel openTimelineViewerCommand(MI_OpenTimelineView, "Timeline",
|
||||
QObject::tr("Timeline"));
|
||||
|
|
|
@ -325,6 +325,18 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings {
|
|||
setMeshColumnBorderColor)
|
||||
Q_PROPERTY(QColor SelectedMeshColumnColor READ getSelectedMeshColumnColor
|
||||
WRITE setSelectedMeshColumnColor)
|
||||
// SoundText column
|
||||
QColor m_soundTextColumnColor;
|
||||
QColor m_soundTextColumnBorderColor;
|
||||
QColor m_selectedSoundTextColumnColor;
|
||||
Q_PROPERTY(QColor SoundTextColumnColor READ getSoundTextColumnColor WRITE
|
||||
setSoundTextColumnColor)
|
||||
Q_PROPERTY(
|
||||
QColor SoundTextColumnBorderColor READ getSoundTextColumnBorderColor WRITE
|
||||
setSoundTextColumnBorderColor)
|
||||
Q_PROPERTY(
|
||||
QColor SelectedSoundTextColumnColor READ getSelectedSoundTextColumnColor
|
||||
WRITE setSelectedSoundTextColumnColor)
|
||||
// Sound column
|
||||
QColor m_soundColumnColor;
|
||||
QColor m_soundColumnBorderColor;
|
||||
|
@ -478,14 +490,25 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings {
|
|||
WRITE setTimelineConfigButtonImage)
|
||||
// Layer Header icons
|
||||
QImage m_layerHeaderPreviewImage;
|
||||
QImage m_layerHeaderPreviewOverImage;
|
||||
QImage m_layerHeaderCamstandImage;
|
||||
QImage m_layerHeaderCamstandOverImage;
|
||||
QImage m_layerHeaderLockImage;
|
||||
QImage m_layerHeaderLockOverImage;
|
||||
Q_PROPERTY(QImage LayerHeaderPreviewImage READ getLayerHeaderPreviewImage
|
||||
WRITE setLayerHeaderPreviewImage)
|
||||
Q_PROPERTY(
|
||||
QImage LayerHeaderPreviewOverImage READ getLayerHeaderPreviewOverImage
|
||||
WRITE setLayerHeaderPreviewOverImage)
|
||||
Q_PROPERTY(QImage LayerHeaderCamstandImage READ getLayerHeaderCamstandImage
|
||||
WRITE setLayerHeaderCamstandImage)
|
||||
Q_PROPERTY(
|
||||
QImage LayerHeaderCamstandOverImage READ getLayerHeaderCamstandOverImage
|
||||
WRITE setLayerHeaderCamstandOverImage)
|
||||
Q_PROPERTY(QImage LayerHeaderLockImage READ getLayerHeaderLockImage WRITE
|
||||
setLayerHeaderLockImage)
|
||||
Q_PROPERTY(QImage LayerHeaderLockOverImage READ getLayerHeaderLockOverImage
|
||||
WRITE setLayerHeaderLockOverImage)
|
||||
|
||||
XsheetScrollArea *m_cellScrollArea;
|
||||
XsheetScrollArea *m_columnScrollArea;
|
||||
|
@ -704,9 +727,8 @@ public:
|
|||
void setSelectedColumnTextColor(const QColor &color) {
|
||||
m_selectedColumnTextColor = color;
|
||||
}
|
||||
QColor getSelectedColumnTextColor() const {
|
||||
return m_selectedColumnTextColor;
|
||||
}
|
||||
QColor getSelectedColumnTextColor() const;
|
||||
|
||||
// Cell
|
||||
void setEmptyCellColor(const QColor &color) { m_emptyCellColor = color; }
|
||||
QColor getEmptyCellColor() const { return m_emptyCellColor; }
|
||||
|
@ -837,6 +859,23 @@ public:
|
|||
QColor getSelectedMeshColumnColor() const {
|
||||
return m_selectedMeshColumnColor;
|
||||
}
|
||||
// SoundText column
|
||||
void setSoundTextColumnColor(const QColor &color) {
|
||||
m_soundTextColumnColor = color;
|
||||
}
|
||||
void setSoundTextColumnBorderColor(const QColor &color) {
|
||||
m_soundTextColumnBorderColor = color;
|
||||
}
|
||||
void setSelectedSoundTextColumnColor(const QColor &color) {
|
||||
m_selectedSoundTextColumnColor = color;
|
||||
}
|
||||
QColor getSoundTextColumnColor() const { return m_soundTextColumnColor; }
|
||||
QColor getSoundTextColumnBorderColor() const {
|
||||
return m_soundTextColumnBorderColor;
|
||||
}
|
||||
QColor getSelectedSoundTextColumnColor() const {
|
||||
return m_selectedSoundTextColumnColor;
|
||||
}
|
||||
// Sound column
|
||||
QColor getSoundColumnHlColor() const { return m_soundColumnHlColor; }
|
||||
QColor getSoundColumnTrackColor() const { return m_soundColumnTrackColor; }
|
||||
|
@ -1060,19 +1099,37 @@ public:
|
|||
void setLayerHeaderPreviewImage(const QImage &image) {
|
||||
m_layerHeaderPreviewImage = image;
|
||||
}
|
||||
void setLayerHeaderPreviewOverImage(const QImage &image) {
|
||||
m_layerHeaderPreviewOverImage = image;
|
||||
}
|
||||
void setLayerHeaderCamstandImage(const QImage &image) {
|
||||
m_layerHeaderCamstandImage = image;
|
||||
}
|
||||
void setLayerHeaderCamstandOverImage(const QImage &image) {
|
||||
m_layerHeaderCamstandOverImage = image;
|
||||
}
|
||||
void setLayerHeaderLockImage(const QImage &image) {
|
||||
m_layerHeaderLockImage = image;
|
||||
}
|
||||
void setLayerHeaderLockOverImage(const QImage &image) {
|
||||
m_layerHeaderLockOverImage = image;
|
||||
}
|
||||
QImage getLayerHeaderPreviewImage() const {
|
||||
return m_layerHeaderPreviewImage;
|
||||
}
|
||||
QImage getLayerHeaderPreviewOverImage() const {
|
||||
return m_layerHeaderPreviewOverImage;
|
||||
}
|
||||
QImage getLayerHeaderCamstandImage() const {
|
||||
return m_layerHeaderCamstandImage;
|
||||
}
|
||||
QImage getLayerHeaderCamstandOverImage() const {
|
||||
return m_layerHeaderCamstandOverImage;
|
||||
}
|
||||
QImage getLayerHeaderLockImage() const { return m_layerHeaderLockImage; }
|
||||
QImage getLayerHeaderLockOverImage() const {
|
||||
return m_layerHeaderLockOverImage;
|
||||
}
|
||||
|
||||
void getButton(int &btype, QColor &bgColor, QImage &iconImage,
|
||||
bool isTimeline = false);
|
||||
|
|
|
@ -465,8 +465,7 @@ NoteArea::NoteArea(XsheetViewer *parent, Qt::WFlags flags)
|
|||
setFrameStyle(QFrame::StyledPanel);
|
||||
setObjectName("cornerWidget");
|
||||
|
||||
m_flipOrientationButton =
|
||||
new QPushButton(m_viewer->orientation()->caption(), this);
|
||||
m_flipOrientationButton = new QPushButton(this);
|
||||
m_noteButton = new QToolButton(this);
|
||||
m_precNoteButton = new QToolButton(this);
|
||||
m_nextNoteButton = new QToolButton(this);
|
||||
|
@ -475,33 +474,42 @@ NoteArea::NoteArea(XsheetViewer *parent, Qt::WFlags flags)
|
|||
|
||||
//-----
|
||||
|
||||
m_flipOrientationButton->setObjectName("PushButton_NoPadding");
|
||||
m_flipOrientationButton->setObjectName("flipOrientationButton");
|
||||
m_flipOrientationButton->setFocusPolicy(Qt::FocusPolicy::NoFocus);
|
||||
m_flipOrientationButton->setFixedSize(QSize(70, 23));
|
||||
m_flipOrientationButton->setIconSize(QSize(40, 20));
|
||||
QIcon flipOrientationIcon;
|
||||
flipOrientationIcon.addFile(QString(":Resources/xsheet2timeline.svg"),
|
||||
QSize(), QIcon::Normal);
|
||||
m_flipOrientationButton->setIcon(flipOrientationIcon);
|
||||
m_flipOrientationButton->setToolTip(tr("Toggle Xsheet/Timeline"));
|
||||
|
||||
m_noteButton->setObjectName("ToolbarToolButton");
|
||||
m_noteButton->setFixedSize(44, 26);
|
||||
m_noteButton->setIconSize(QSize(38, 20));
|
||||
m_noteButton->setFixedSize(34, 25);
|
||||
m_noteButton->setIconSize(QSize(30, 20));
|
||||
QIcon addNoteIcon = createQIcon("newmemo");
|
||||
addNoteIcon.addFile(QString(":Resources/newmemo_disabled.svg"), QSize(),
|
||||
QIcon::Disabled);
|
||||
m_noteButton->setIcon(addNoteIcon);
|
||||
m_noteButton->setToolTip(tr("Add New Memo"));
|
||||
|
||||
m_precNoteButton->setObjectName("ToolbarToolButton");
|
||||
m_precNoteButton->setFixedSize(22, 22);
|
||||
m_precNoteButton->setFixedSize(18, 25);
|
||||
m_precNoteButton->setIconSize(QSize(17, 17));
|
||||
QIcon precNoteIcon = createQIcon("prevkey");
|
||||
precNoteIcon.addFile(QString(":Resources/prevkey_disabled.svg"), QSize(),
|
||||
QIcon::Disabled);
|
||||
m_precNoteButton->setIcon(precNoteIcon);
|
||||
m_precNoteButton->setToolTip(tr("Previous Memo"));
|
||||
|
||||
m_nextNoteButton->setObjectName("ToolbarToolButton");
|
||||
m_nextNoteButton->setFixedSize(22, 22);
|
||||
m_nextNoteButton->setFixedSize(18, 25);
|
||||
m_nextNoteButton->setIconSize(QSize(17, 17));
|
||||
QIcon nextNoteIcon = createQIcon("nextkey");
|
||||
nextNoteIcon.addFile(QString(":Resources/nextkey_disabled.svg"), QSize(),
|
||||
QIcon::Disabled);
|
||||
m_nextNoteButton->setIcon(nextNoteIcon);
|
||||
m_nextNoteButton->setToolTip(tr("Next Memo"));
|
||||
|
||||
QStringList frameDisplayStyles;
|
||||
frameDisplayStyles << tr("Frame") << tr("Sec Frame") << tr("6sec Sheet")
|
||||
|
@ -557,11 +565,6 @@ void NoteArea::createLayout() {
|
|||
|
||||
setFixedSize(rect.size());
|
||||
|
||||
if (o->isVerticalTimeline())
|
||||
m_noteButton->setFixedSize(44, 26);
|
||||
else
|
||||
m_noteButton->setFixedSize(44, 22);
|
||||
|
||||
// has two elements: main layout and header panel
|
||||
QVBoxLayout *panelLayout = new QVBoxLayout();
|
||||
panelLayout->setMargin(1);
|
||||
|
@ -578,16 +581,13 @@ void NoteArea::createLayout() {
|
|||
|
||||
mainLayout->addStretch(1);
|
||||
|
||||
mainLayout->addWidget(m_noteButton, 0, centerAlign);
|
||||
|
||||
QHBoxLayout *buttonsLayout = new QHBoxLayout();
|
||||
buttonsLayout->setMargin(0);
|
||||
buttonsLayout->setSpacing(0);
|
||||
{
|
||||
buttonsLayout->addStretch(1);
|
||||
buttonsLayout->addWidget(m_precNoteButton, 0);
|
||||
buttonsLayout->addWidget(m_noteButton, 0, centerAlign);
|
||||
buttonsLayout->addWidget(m_nextNoteButton, 0);
|
||||
buttonsLayout->addStretch(1);
|
||||
}
|
||||
mainLayout->addLayout(buttonsLayout, 0);
|
||||
|
||||
|
@ -627,7 +627,15 @@ void NoteArea::updateButtons() {
|
|||
void NoteArea::flipOrientation() { m_viewer->flipOrientation(); }
|
||||
|
||||
void NoteArea::onXsheetOrientationChanged(const Orientation *newOrientation) {
|
||||
m_flipOrientationButton->setText(newOrientation->caption());
|
||||
// m_flipOrientationButton->setText(newOrientation->caption());
|
||||
|
||||
QIcon flipOrientationIcon;
|
||||
QString iconFile = newOrientation->isVerticalTimeline()
|
||||
? QString(":Resources/xsheet2timeline.svg")
|
||||
: QString(":Resources/timeline2xsheet.svg");
|
||||
flipOrientationIcon.addFile(iconFile, QSize(), QIcon::Normal);
|
||||
m_flipOrientationButton->setIcon(flipOrientationIcon);
|
||||
|
||||
removeLayout();
|
||||
createLayout();
|
||||
}
|
||||
|
|
|
@ -108,7 +108,7 @@ void RowArea::drawRows(QPainter &p, int r0, int r1) {
|
|||
distance, offset);
|
||||
|
||||
// default value
|
||||
if (distance == 0) distance = 6;
|
||||
// if (distance == 0) distance = 6;
|
||||
|
||||
QRect visibleRect = visibleRegion().boundingRect();
|
||||
|
||||
|
@ -124,30 +124,19 @@ void RowArea::drawRows(QPainter &p, int r0, int r1) {
|
|||
int frameAxis = m_viewer->rowToFrameAxis(r);
|
||||
|
||||
//--- draw horizontal line
|
||||
QColor color = ((r - offset) % distance == 0 && r != 0)
|
||||
? m_viewer->getMarkerLineColor()
|
||||
: m_viewer->getLightLineColor();
|
||||
bool isAfterMarkers =
|
||||
(distance > 0 && ((r - offset) % distance) == 0 && r != 0);
|
||||
QColor color = isAfterMarkers ? m_viewer->getMarkerLineColor()
|
||||
: m_viewer->getLightLineColor();
|
||||
p.setPen(color);
|
||||
QLine horizontalLine = o->horizontalLine(frameAxis, layerSide);
|
||||
p.drawLine(horizontalLine);
|
||||
|
||||
if (!o->isVerticalTimeline() && m_viewer->getFrameZoomFactor() <= 50) {
|
||||
QPoint basePoint = m_viewer->positionToXY(CellPosition(r, 0));
|
||||
if (!o->isVerticalTimeline()) basePoint.setY(0);
|
||||
QRect indRect =
|
||||
o->rect(PredefinedRect::FRAME_INDICATOR).translated(basePoint);
|
||||
indRect.adjust(-frameAdj / 2, 0, -frameAdj / 2, 0);
|
||||
QColor useColor;
|
||||
if (playR0 <= r && r <= playR1) {
|
||||
useColor = ((r - m_r0) % step == 0)
|
||||
? m_viewer->getPreviewFrameTextColor()
|
||||
: m_viewer->getTextColor();
|
||||
}
|
||||
// not in preview range
|
||||
else
|
||||
useColor = m_viewer->getTextColor();
|
||||
p.fillRect(indRect, useColor);
|
||||
if (!o->isVerticalTimeline()) {
|
||||
int x = horizontalLine.x1();
|
||||
int y = horizontalLine.y2() - (isAfterMarkers ? 6 : 3);
|
||||
horizontalLine.setP1(QPoint(x, y));
|
||||
if (!isAfterMarkers) p.setPen(m_viewer->getTextColor());
|
||||
}
|
||||
p.drawLine(horizontalLine);
|
||||
}
|
||||
|
||||
int z = 0;
|
||||
|
@ -205,7 +194,7 @@ void RowArea::drawRows(QPainter &p, int r0, int r1) {
|
|||
|
||||
case XsheetViewer::Frame: {
|
||||
if (!o->isVerticalTimeline() && m_viewer->getFrameZoomFactor() <= 50 &&
|
||||
r > 0 && (r + 1) % 5)
|
||||
r > 0 && (r + 1) % (distance > 0 ? distance : 5))
|
||||
break;
|
||||
QString number = QString::number(r + 1);
|
||||
p.drawText(labelRect, align, number);
|
||||
|
@ -275,6 +264,43 @@ void RowArea::drawRows(QPainter &p, int r0, int r1) {
|
|||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void RowArea::drawPlayRangeBackground(QPainter &p, int r0, int r1) {
|
||||
if (!XsheetGUI::isPlayRangeEnabled()) return;
|
||||
|
||||
const Orientation *o = m_viewer->orientation();
|
||||
TXsheet *xsh = m_viewer->getXsheet();
|
||||
int frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
QRect playRangeRect = o->rect(PredefinedRect::PLAY_RANGE);
|
||||
|
||||
int playR0, playR1, step;
|
||||
XsheetGUI::getPlayRange(playR0, playR1, step);
|
||||
|
||||
for (int r = r0; r <= r1; r++) {
|
||||
if (!(playR0 <= r && r <= playR1) && ((r - m_r0) % step == 0)) continue;
|
||||
|
||||
QPoint basePoint = m_viewer->positionToXY(CellPosition(r, 0));
|
||||
if (!o->isVerticalTimeline()) basePoint.setY(0);
|
||||
|
||||
QRect previewBoxRect = o->rect(PredefinedRect::PREVIEW_FRAME_AREA)
|
||||
.adjusted(0, 0, -frameAdj, 0)
|
||||
.translated(basePoint);
|
||||
p.fillRect(previewBoxRect, m_viewer->getNotEmptyColumnColor());
|
||||
|
||||
if (!o->isVerticalTimeline()) {
|
||||
if (r == playR0) {
|
||||
QLine horizontalLine(previewBoxRect.topLeft(),
|
||||
previewBoxRect.bottomLeft());
|
||||
p.setPen(m_viewer->getLightLineColor());
|
||||
p.drawLine(horizontalLine);
|
||||
} else if (r == playR1) {
|
||||
QLine horizontalLine(previewBoxRect.topRight(),
|
||||
previewBoxRect.bottomRight());
|
||||
p.setPen(m_viewer->getLightLineColor());
|
||||
p.drawLine(horizontalLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void RowArea::drawPlayRange(QPainter &p, int r0, int r1) {
|
||||
bool playRangeEnabled = XsheetGUI::isPlayRangeEnabled();
|
||||
|
@ -297,8 +323,6 @@ void RowArea::drawPlayRange(QPainter &p, int r0, int r1) {
|
|||
QColor ArrowColor = (playRangeEnabled) ? QColor(255, 255, 255) : grey150;
|
||||
p.setBrush(QBrush(ArrowColor));
|
||||
|
||||
int topOrLeftCol =
|
||||
m_viewer->orientation()->isVerticalTimeline() ? 0 : xsh->getColumnCount();
|
||||
if (m_r0 > r0 - 1 && r1 + 1 > m_r0) {
|
||||
QPoint topLeft = m_viewer->positionToXY(CellPosition(m_r0, 0));
|
||||
if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0);
|
||||
|
@ -350,15 +374,19 @@ void RowArea::drawOnionSkinSelection(QPainter &p) {
|
|||
QColor frontColor((int)frontPixel.r, (int)frontPixel.g, (int)frontPixel.b,
|
||||
128);
|
||||
QColor backColor((int)backPixel.r, (int)backPixel.g, (int)backPixel.b, 128);
|
||||
QColor frontDotColor((int)frontPixel.r, (int)frontPixel.g, (int)frontPixel.b);
|
||||
QColor backDotColor((int)backPixel.r, (int)backPixel.g, (int)backPixel.b);
|
||||
QPen frontPen, backPen;
|
||||
|
||||
// If the onion skin is disabled, draw dash line instead.
|
||||
if (osMask.isEnabled())
|
||||
p.setPen(Qt::red);
|
||||
else {
|
||||
QPen currentPen = p.pen();
|
||||
currentPen.setStyle(Qt::DashLine);
|
||||
currentPen.setColor(QColor(128, 128, 128, 255));
|
||||
p.setPen(currentPen);
|
||||
if (osMask.isEnabled()) {
|
||||
frontPen.setColor(frontDotColor);
|
||||
backPen.setColor(backDotColor);
|
||||
} else {
|
||||
frontPen.setStyle(Qt::DashLine);
|
||||
frontPen.setColor(QColor(128, 128, 128));
|
||||
backPen.setStyle(Qt::DashLine);
|
||||
backPen.setColor(QColor(128, 128, 128));
|
||||
}
|
||||
|
||||
QRect onionRect = m_viewer->orientation()->rect(PredefinedRect::ONION);
|
||||
|
@ -388,6 +416,7 @@ void RowArea::drawOnionSkinSelection(QPainter &p) {
|
|||
(frameAdj / 2);
|
||||
QLine verticalLine = m_viewer->orientation()->verticalLine(
|
||||
layerAxis, NumberRange(fromFrameAxis, toFrameAxis));
|
||||
p.setPen(backPen);
|
||||
if (m_viewer->orientation()->isVerticalTimeline())
|
||||
p.drawLine(verticalLine.x1(), verticalLine.y1() + 5, verticalLine.x2(),
|
||||
verticalLine.y2() - 9);
|
||||
|
@ -404,12 +433,13 @@ void RowArea::drawOnionSkinSelection(QPainter &p) {
|
|||
onionCenter_frame - (frameAdj / 2);
|
||||
QLine verticalLine = m_viewer->orientation()->verticalLine(
|
||||
layerAxis, NumberRange(fromFrameAxis, toFrameAxis));
|
||||
p.setPen(frontPen);
|
||||
if (m_viewer->orientation()->isVerticalTimeline())
|
||||
p.drawLine(verticalLine.x1(), verticalLine.y1() + 10, verticalLine.x2(),
|
||||
verticalLine.y2() - 5);
|
||||
else
|
||||
p.drawLine(verticalLine.x1() + 10, verticalLine.y1(),
|
||||
verticalLine.x2() - 5, verticalLine.y2());
|
||||
verticalLine.x2() - 3, verticalLine.y2());
|
||||
}
|
||||
// Draw onion skin main handle
|
||||
QPoint handleTopLeft = m_viewer->positionToXY(CellPosition(currentRow, 0));
|
||||
|
@ -419,21 +449,23 @@ void RowArea::drawOnionSkinSelection(QPainter &p) {
|
|||
int angle180 = 16 * 180;
|
||||
int turn =
|
||||
m_viewer->orientation()->dimension(PredefinedDimension::ONION_TURN) * 16;
|
||||
p.setPen(backDotColor);
|
||||
p.setBrush(QBrush(backColor));
|
||||
p.drawChord(handleRect, turn, angle180);
|
||||
p.setPen(frontDotColor);
|
||||
p.setBrush(QBrush(frontColor));
|
||||
p.drawChord(handleRect, turn + angle180, angle180);
|
||||
|
||||
// draw onion skin dots
|
||||
p.setPen(Qt::red);
|
||||
for (int i = 0; i < mosCount; i++) {
|
||||
// mos : frame offset from the current frame
|
||||
int mos = osMask.getMos(i);
|
||||
// skip drawing if the frame is under the mouse cursor
|
||||
if (m_showOnionToSet == Mos && currentRow + mos == m_row) continue;
|
||||
|
||||
p.setPen(mos < 0 ? backDotColor : frontDotColor);
|
||||
if (osMask.isEnabled())
|
||||
p.setBrush(mos < 0 ? backColor : frontColor);
|
||||
p.setBrush(mos < 0 ? backDotColor : frontDotColor);
|
||||
else
|
||||
p.setBrush(Qt::NoBrush);
|
||||
QPoint topLeft = m_viewer->positionToXY(CellPosition(currentRow + mos, 0));
|
||||
|
@ -452,6 +484,7 @@ void RowArea::drawOnionSkinSelection(QPainter &p) {
|
|||
// skip drawing if the frame is under the mouse cursor
|
||||
if (m_showOnionToSet == Fos && fos == m_row) continue;
|
||||
|
||||
p.setPen(QColor(0, 255, 255, 128));
|
||||
if (osMask.isEnabled())
|
||||
p.setBrush(QBrush(QColor(0, 255, 255, 128)));
|
||||
else
|
||||
|
@ -467,7 +500,7 @@ void RowArea::drawOnionSkinSelection(QPainter &p) {
|
|||
|
||||
//-- onion placement hint under mouse
|
||||
if (m_showOnionToSet != None) {
|
||||
p.setPen(QColor(255, 128, 0));
|
||||
p.setPen(QColor(255, 255, 0));
|
||||
p.setBrush(QBrush(QColor(255, 255, 0)));
|
||||
QPoint topLeft = m_viewer->positionToXY(CellPosition(m_row, 0));
|
||||
if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0);
|
||||
|
@ -625,6 +658,8 @@ void RowArea::paintEvent(QPaintEvent *event) {
|
|||
// fill background
|
||||
p.fillRect(toBeUpdated, m_viewer->getBGColor());
|
||||
|
||||
drawPlayRangeBackground(p, r0, r1);
|
||||
|
||||
if (TApp::instance()->getCurrentFrame()->isEditingScene())
|
||||
// current frame
|
||||
drawCurrentRowGadget(p, r0, r1);
|
||||
|
|
|
@ -44,6 +44,7 @@ class RowArea final : public QWidget {
|
|||
bool m_isPanning;
|
||||
|
||||
void drawRows(QPainter &p, int r0, int r1);
|
||||
void drawPlayRangeBackground(QPainter &p, int r0, int r1);
|
||||
void drawPlayRange(QPainter &p, int r0, int r1);
|
||||
void drawCurrentRowGadget(QPainter &p, int r0, int r1);
|
||||
void drawOnionSkinSelection(QPainter &p);
|
||||
|
|
|
@ -17,8 +17,7 @@ const int PLAY_MARKER_SIZE = 10;
|
|||
const int ONION_SIZE = 19;
|
||||
const int ONION_DOT_SIZE = 8;
|
||||
const int PINNED_SIZE = 10;
|
||||
const int FRAME_DOT_SIZE = 8;
|
||||
const int FRAME_IND_SIZE = 3;
|
||||
const int FRAME_MARKER_SIZE = 4;
|
||||
const int FOLDED_CELL_SIZE = 9;
|
||||
}
|
||||
|
||||
|
@ -305,7 +304,7 @@ TopToBottomOrientation::TopToBottomOrientation() {
|
|||
PredefinedRect::END_SOUND_EDIT,
|
||||
QRect(CELL_DRAG_WIDTH, CELL_HEIGHT - 2, CELL_WIDTH - CELL_DRAG_WIDTH, 2));
|
||||
addRect(PredefinedRect::LOOP_ICON, QRect(keyRect.left(), 0, 10, 11));
|
||||
addRect(PredefinedRect::FRAME_DOT, QRect(0, 0, -1, -1)); // hide
|
||||
addRect(PredefinedRect::FRAME_MARKER_AREA, QRect(0, 0, -1, -1)); // hide
|
||||
|
||||
// Note viewer
|
||||
addRect(
|
||||
|
@ -344,7 +343,9 @@ TopToBottomOrientation::TopToBottomOrientation() {
|
|||
addRect(PredefinedRect::PINNED_CENTER_KEY,
|
||||
QRect((FRAME_HEADER_WIDTH - PINNED_SIZE) / 2,
|
||||
(CELL_HEIGHT - PINNED_SIZE) / 2, PINNED_SIZE, PINNED_SIZE));
|
||||
addRect(PredefinedRect::FRAME_INDICATOR, QRect(0, 0, -1, -1)); // hide
|
||||
addRect(
|
||||
PredefinedRect::PREVIEW_FRAME_AREA,
|
||||
QRect(PLAY_RANGE_X, 0, (FRAME_HEADER_WIDTH - PLAY_RANGE_X), CELL_HEIGHT));
|
||||
|
||||
// Column viewer
|
||||
addRect(PredefinedRect::LAYER_HEADER,
|
||||
|
@ -902,10 +903,10 @@ LeftToRightOrientation::LeftToRightOrientation() {
|
|||
QRect(CELL_WIDTH - 2, CELL_DRAG_HEIGHT, 2,
|
||||
CELL_HEIGHT - CELL_DRAG_HEIGHT));
|
||||
addRect(PredefinedRect::LOOP_ICON, QRect(0, keyRect.top(), 10, 11));
|
||||
addRect(
|
||||
PredefinedRect::FRAME_DOT,
|
||||
QRect((CELL_WIDTH - FRAME_DOT_SIZE) / 2 - 1,
|
||||
CELL_HEIGHT - FRAME_DOT_SIZE - 6, FRAME_DOT_SIZE, FRAME_DOT_SIZE));
|
||||
QRect frameMarker((CELL_WIDTH - FRAME_MARKER_SIZE) / 2 - 1,
|
||||
CELL_HEIGHT - FRAME_MARKER_SIZE - 6, FRAME_MARKER_SIZE,
|
||||
FRAME_MARKER_SIZE);
|
||||
addRect(PredefinedRect::FRAME_MARKER_AREA, frameMarker);
|
||||
|
||||
// Notes viewer
|
||||
addRect(
|
||||
|
@ -948,10 +949,9 @@ LeftToRightOrientation::LeftToRightOrientation() {
|
|||
PredefinedRect::PINNED_CENTER_KEY,
|
||||
QRect((CELL_WIDTH - PINNED_SIZE) / 2,
|
||||
(FRAME_HEADER_HEIGHT - PINNED_SIZE) / 2, PINNED_SIZE, PINNED_SIZE));
|
||||
addRect(PredefinedRect::FRAME_INDICATOR,
|
||||
QRect((CELL_WIDTH - FRAME_IND_SIZE) / 2,
|
||||
FRAME_HEADER_HEIGHT - FRAME_IND_SIZE, FRAME_IND_SIZE,
|
||||
FRAME_IND_SIZE));
|
||||
addRect(
|
||||
PredefinedRect::PREVIEW_FRAME_AREA,
|
||||
QRect(0, PLAY_RANGE_Y, CELL_WIDTH, (FRAME_HEADER_HEIGHT - PLAY_RANGE_Y)));
|
||||
|
||||
// Column viewer
|
||||
addRect(PredefinedRect::LAYER_HEADER,
|
||||
|
@ -959,8 +959,8 @@ LeftToRightOrientation::LeftToRightOrientation() {
|
|||
addRect(
|
||||
PredefinedRect::FOLDED_LAYER_HEADER,
|
||||
QRect(1, 0, FOLDED_LAYER_HEADER_WIDTH - 2, FOLDED_LAYER_HEADER_HEIGHT));
|
||||
QRect columnName(ICONS_WIDTH + 2, 1,
|
||||
LAYER_NAME_WIDTH + LAYER_NUMBER_WIDTH - 4, CELL_HEIGHT - 1);
|
||||
QRect columnName(ICONS_WIDTH + 1, 0,
|
||||
LAYER_NAME_WIDTH + LAYER_NUMBER_WIDTH - 4, CELL_HEIGHT);
|
||||
addRect(PredefinedRect::RENAME_COLUMN, columnName);
|
||||
QRect eye(1, 0, ICON_WIDTH, ICON_HEIGHT);
|
||||
addRect(PredefinedRect::EYE_AREA, eye);
|
||||
|
@ -1019,9 +1019,9 @@ LeftToRightOrientation::LeftToRightOrientation() {
|
|||
// Flags
|
||||
addFlag(PredefinedFlag::DRAG_LAYER_BORDER, false);
|
||||
addFlag(PredefinedFlag::DRAG_LAYER_VISIBLE, true);
|
||||
addFlag(PredefinedFlag::LAYER_NAME_BORDER, false);
|
||||
addFlag(PredefinedFlag::LAYER_NAME_BORDER, true);
|
||||
addFlag(PredefinedFlag::LAYER_NAME_VISIBLE, true);
|
||||
addFlag(PredefinedFlag::LAYER_NUMBER_BORDER, false);
|
||||
addFlag(PredefinedFlag::LAYER_NUMBER_BORDER, true);
|
||||
addFlag(PredefinedFlag::LAYER_NUMBER_VISIBLE, true);
|
||||
addFlag(PredefinedFlag::EYE_AREA_BORDER, true);
|
||||
addFlag(PredefinedFlag::EYE_AREA_VISIBLE, true);
|
||||
|
@ -1043,7 +1043,7 @@ LeftToRightOrientation::LeftToRightOrientation() {
|
|||
// Lines
|
||||
//
|
||||
addLine(PredefinedLine::LOCKED,
|
||||
verticalLine(CELL_DRAG_HEIGHT / 2, NumberRange(0, CELL_WIDTH)));
|
||||
verticalLine((CELL_DRAG_HEIGHT + 1) / 2, NumberRange(0, CELL_WIDTH)));
|
||||
addLine(PredefinedLine::SEE_MARKER_THROUGH,
|
||||
horizontalLine(0, NumberRange(0, CELL_DRAG_HEIGHT)));
|
||||
addLine(PredefinedLine::CONTINUE_LEVEL,
|
||||
|
@ -1076,6 +1076,13 @@ LeftToRightOrientation::LeftToRightOrientation() {
|
|||
corner.lineTo(QPointF(CELL_WIDTH, 0));
|
||||
addPath(PredefinedPath::DRAG_HANDLE_CORNER, corner);
|
||||
|
||||
QPainterPath diamond(QPointF(0, -4));
|
||||
diamond.lineTo(4, 0);
|
||||
diamond.lineTo(0, 4);
|
||||
diamond.lineTo(-4, 0);
|
||||
diamond.lineTo(0, -4);
|
||||
addPath(PredefinedPath::FRAME_MARKER_DIAMOND, diamond);
|
||||
|
||||
QPainterPath fromTriangle(QPointF(EASE_TRIANGLE_SIZE / 2, 0));
|
||||
fromTriangle.lineTo(QPointF(-EASE_TRIANGLE_SIZE / 2, EASE_TRIANGLE_SIZE));
|
||||
fromTriangle.lineTo(QPointF(-EASE_TRIANGLE_SIZE / 2, -EASE_TRIANGLE_SIZE));
|
||||
|
@ -1101,7 +1108,7 @@ LeftToRightOrientation::LeftToRightOrientation() {
|
|||
playTo.lineTo(QPointF(-PLAY_MARKER_SIZE, 0));
|
||||
playTo.lineTo(QPointF(0, PLAY_MARKER_SIZE));
|
||||
playTo.lineTo(QPointF(0, 0));
|
||||
playTo.translate(CELL_WIDTH - 1, PLAY_RANGE_Y);
|
||||
playTo.translate(CELL_WIDTH - 2, PLAY_RANGE_Y);
|
||||
addPath(PredefinedPath::END_PLAY_RANGE, playTo);
|
||||
|
||||
QPainterPath track(QPointF(0, 0));
|
||||
|
|
|
@ -341,7 +341,8 @@ Preferences::Preferences()
|
|||
, m_enableAutoStretch(true)
|
||||
, m_cursorBrushType("Small")
|
||||
, m_cursorBrushStyle("Default")
|
||||
, m_cursorOutlineEnabled(true) {
|
||||
, m_cursorOutlineEnabled(true)
|
||||
, m_currentColumnColor(TPixel::Black) {
|
||||
TCamera camera;
|
||||
m_defLevelType = PLI_XSHLEVEL;
|
||||
m_defLevelWidth = camera.getSize().lx;
|
||||
|
@ -703,6 +704,12 @@ Preferences::Preferences()
|
|||
setCursorBrushStyle(m_cursorBrushStyle.toStdString());
|
||||
|
||||
getValue(*m_settings, "cursorOutlineEnabled", m_cursorOutlineEnabled);
|
||||
|
||||
r = 255, g = 0, b = 0;
|
||||
getValue(*m_settings, "currentColumnColor.r", r);
|
||||
getValue(*m_settings, "currentColumnColor.g", g);
|
||||
getValue(*m_settings, "currentColumnColor.b", b);
|
||||
m_currentColumnColor = TPixel32(r, g, b);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
@ -1708,3 +1715,13 @@ void Preferences::enableCursorOutline(bool on) {
|
|||
m_cursorOutlineEnabled = on;
|
||||
m_settings->setValue("cursorOutlineEnabled", on ? "1" : "0");
|
||||
}
|
||||
|
||||
void Preferences::setCurrentColumnData(const TPixel ¤tColumnColor) {
|
||||
m_currentColumnColor = currentColumnColor;
|
||||
m_settings->setValue("currentColumnColor.r",
|
||||
QString::number(currentColumnColor.r));
|
||||
m_settings->setValue("currentColumnColor.g",
|
||||
QString::number(currentColumnColor.g));
|
||||
m_settings->setValue("currentColumnColor.b",
|
||||
QString::number(currentColumnColor.b));
|
||||
}
|
||||
|
|