Merge pull request #1183 from konero/refactoriconcode

refactor: Icon stuff (Tahoma2D)
This commit is contained in:
manongjohn 2023-07-11 21:14:32 -04:00 committed by GitHub
commit 3547b29ad4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
86 changed files with 1963 additions and 2583 deletions

View file

@ -362,10 +362,7 @@ TPanelTitleBar {
min-height: 18;
qproperty-TitleColor: #7d7d7d;
qproperty-ActiveTitleColor: #fff;
qproperty-BorderPixmap: url('none');
qproperty-ActiveBorderPixmap: url('../Medium/imgs/white/none');
qproperty-FloatBorderPixmap: url('none');
qproperty-FloatActiveBorderPixmap: url('../Medium/imgs/white/none');
qproperty-OverColor: #C34040;
}
TPanelTitleBarButton {
qproperty-PressedColor: #a35293;
@ -597,20 +594,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #PreviousKey:disabled {
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #NextKey {
margin: 0 2;
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #NextKey:disabled {
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo,
#keyFrameNavigator #KeyPartial,
@ -619,20 +616,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled,
#keyFrameNavigator #KeyPartial:disabled,
#keyFrameNavigator #KeyTotal:disabled {
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo {
background-color: rgba(0, 0, 0, 0);
border: 1 solid rgba(0, 0, 0, 0);
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled {
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo:hover {
background-color: #595959;
@ -641,7 +638,7 @@ DvScrollWidget {
#keyFrameNavigator #KeyPartial {
background-color: #be7323;
border: 1 solid #be7323;
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyPartial:hover {
background-color: #db8d39;
@ -2372,24 +2369,18 @@ XsheetViewer {
qproperty-TimelinePreviewButtonBgOnColor: #303030;
qproperty-TimelinePreviewButtonOnImage: url('../Medium/imgs/white/preview_small.svg');
qproperty-TimelinePreviewButtonBgOffColor: #303030;
qproperty-TimelinePreviewButtonOffImage: url('none');
qproperty-TimelinePreviewButtonOffImage: url('../Medium/imgs/white/transparent.svg');
qproperty-TimelineCamstandButtonBgOnColor: #303030;
qproperty-TimelineCamstandButtonOnImage: url('../Medium/imgs/white/table_small.svg');
qproperty-TimelineCamstandButtonTranspImage: url('../Medium/imgs/white/trans_small.svg');
qproperty-TimelineCamstandButtonBgOffColor: #303030;
qproperty-TimelineCamstandButtonOffImage: url('none');
qproperty-TimelineCamstandButtonOffImage: url('../Medium/imgs/white/transparent.svg');
qproperty-TimelineLockButtonBgOnColor: #303030;
qproperty-TimelineLockButtonOnImage: url('../Medium/imgs/white/lock_on_small.svg');
qproperty-TimelineLockButtonBgOffColor: #303030;
qproperty-TimelineLockButtonOffImage: url('none');
qproperty-TimelineLockButtonOffImage: url('../Medium/imgs/white/transparent.svg');
qproperty-TimelineConfigButtonBgColor: #303030;
qproperty-TimelineConfigButtonImage: url('../Medium/imgs/white/timeline_config.svg');
qproperty-LayerHeaderPreviewImage: url('../Medium/imgs/white/layer_header_prev_eye.svg');
qproperty-LayerHeaderPreviewOverImage: url('../Medium/imgs/white/layer_header_prev_eye_over.svg');
qproperty-LayerHeaderCamstandImage: url('../Medium/imgs/white/layer_header_table_view.svg');
qproperty-LayerHeaderCamstandOverImage: url('../Medium/imgs/white/layer_header_table_view_over.svg');
qproperty-LayerHeaderLockImage: url('../Medium/imgs/white/layer_lock_on.svg');
qproperty-LayerHeaderLockOverImage: url('../Medium/imgs/white/layer_lock_on_over.svg');
}
/* -----------------------------------------------------------------------------
Function Editor

View file

@ -362,10 +362,7 @@ TPanelTitleBar {
min-height: 18;
qproperty-TitleColor: #6d6d6d;
qproperty-ActiveTitleColor: #fff;
qproperty-BorderPixmap: url('none');
qproperty-ActiveBorderPixmap: url('../Medium/imgs/white/none');
qproperty-FloatBorderPixmap: url('none');
qproperty-FloatActiveBorderPixmap: url('../Medium/imgs/white/none');
qproperty-OverColor: #C34040;
}
TPanelTitleBarButton {
qproperty-PressedColor: #a35293;
@ -597,20 +594,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #PreviousKey:disabled {
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #NextKey {
margin: 0 2;
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #NextKey:disabled {
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo,
#keyFrameNavigator #KeyPartial,
@ -619,20 +616,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled,
#keyFrameNavigator #KeyPartial:disabled,
#keyFrameNavigator #KeyTotal:disabled {
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo {
background-color: rgba(0, 0, 0, 0);
border: 1 solid rgba(0, 0, 0, 0);
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled {
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo:hover {
background-color: #494949;
@ -641,7 +638,7 @@ DvScrollWidget {
#keyFrameNavigator #KeyPartial {
background-color: #be7323;
border: 1 solid #be7323;
image: url('');
image: url('../Medium/imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyPartial:hover {
background-color: #db8d39;
@ -2372,24 +2369,18 @@ XsheetViewer {
qproperty-TimelinePreviewButtonBgOnColor: #202020;
qproperty-TimelinePreviewButtonOnImage: url('../Medium/imgs/white/preview_small.svg');
qproperty-TimelinePreviewButtonBgOffColor: #202020;
qproperty-TimelinePreviewButtonOffImage: url('none');
qproperty-TimelinePreviewButtonOffImage: url('../Medium/imgs/white/transparent.svg');
qproperty-TimelineCamstandButtonBgOnColor: #202020;
qproperty-TimelineCamstandButtonOnImage: url('../Medium/imgs/white/table_small.svg');
qproperty-TimelineCamstandButtonTranspImage: url('../Medium/imgs/white/trans_small.svg');
qproperty-TimelineCamstandButtonBgOffColor: #202020;
qproperty-TimelineCamstandButtonOffImage: url('none');
qproperty-TimelineCamstandButtonOffImage: url('../Medium/imgs/white/transparent.svg');
qproperty-TimelineLockButtonBgOnColor: #202020;
qproperty-TimelineLockButtonOnImage: url('../Medium/imgs/white/lock_on_small.svg');
qproperty-TimelineLockButtonBgOffColor: #202020;
qproperty-TimelineLockButtonOffImage: url('none');
qproperty-TimelineLockButtonOffImage: url('../Medium/imgs/white/transparent.svg');
qproperty-TimelineConfigButtonBgColor: #202020;
qproperty-TimelineConfigButtonImage: url('../Medium/imgs/white/timeline_config.svg');
qproperty-LayerHeaderPreviewImage: url('../Medium/imgs/white/layer_header_prev_eye.svg');
qproperty-LayerHeaderPreviewOverImage: url('../Medium/imgs/white/layer_header_prev_eye_over.svg');
qproperty-LayerHeaderCamstandImage: url('../Medium/imgs/white/layer_header_table_view.svg');
qproperty-LayerHeaderCamstandOverImage: url('../Medium/imgs/white/layer_header_table_view_over.svg');
qproperty-LayerHeaderLockImage: url('../Medium/imgs/white/layer_lock_on.svg');
qproperty-LayerHeaderLockOverImage: url('../Medium/imgs/white/layer_lock_on_over.svg');
}
/* -----------------------------------------------------------------------------
Function Editor

View file

@ -362,10 +362,7 @@ TPanelTitleBar {
min-height: 18;
qproperty-TitleColor: rgba(0, 0, 0, 0.5);
qproperty-ActiveTitleColor: #000;
qproperty-BorderPixmap: url('none');
qproperty-ActiveBorderPixmap: url('../Medium/imgs/black/none');
qproperty-FloatBorderPixmap: url('none');
qproperty-FloatActiveBorderPixmap: url('../Medium/imgs/black/none');
qproperty-OverColor: #e0625c;
}
TPanelTitleBarButton {
qproperty-PressedColor: #d060ae;
@ -597,20 +594,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #PreviousKey:disabled {
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #NextKey {
margin: 0 2;
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #NextKey:disabled {
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo,
#keyFrameNavigator #KeyPartial,
@ -619,20 +616,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled,
#keyFrameNavigator #KeyPartial:disabled,
#keyFrameNavigator #KeyTotal:disabled {
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo {
background-color: rgba(0, 0, 0, 0);
border: 1 solid rgba(0, 0, 0, 0);
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled {
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo:hover {
background-color: #b5b5b5;
@ -641,7 +638,7 @@ DvScrollWidget {
#keyFrameNavigator #KeyPartial {
background-color: #f8a145;
border: 1 solid #cf6e08;
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyPartial:hover {
background-color: #faba76;
@ -2372,24 +2369,18 @@ XsheetViewer {
qproperty-TimelinePreviewButtonBgOnColor: #DBDBDB;
qproperty-TimelinePreviewButtonOnImage: url('../Medium/imgs/black/preview_small.svg');
qproperty-TimelinePreviewButtonBgOffColor: #DBDBDB;
qproperty-TimelinePreviewButtonOffImage: url('none');
qproperty-TimelinePreviewButtonOffImage: url('../Medium/imgs/black/transparent.svg');
qproperty-TimelineCamstandButtonBgOnColor: #DBDBDB;
qproperty-TimelineCamstandButtonOnImage: url('../Medium/imgs/black/table_small.svg');
qproperty-TimelineCamstandButtonTranspImage: url('../Medium/imgs/black/trans_small.svg');
qproperty-TimelineCamstandButtonBgOffColor: #DBDBDB;
qproperty-TimelineCamstandButtonOffImage: url('none');
qproperty-TimelineCamstandButtonOffImage: url('../Medium/imgs/black/transparent.svg');
qproperty-TimelineLockButtonBgOnColor: #DBDBDB;
qproperty-TimelineLockButtonOnImage: url('../Medium/imgs/black/lock_on_small.svg');
qproperty-TimelineLockButtonBgOffColor: #DBDBDB;
qproperty-TimelineLockButtonOffImage: url('none');
qproperty-TimelineLockButtonOffImage: url('../Medium/imgs/black/transparent.svg');
qproperty-TimelineConfigButtonBgColor: #DBDBDB;
qproperty-TimelineConfigButtonImage: url('../Medium/imgs/black/timeline_config.svg');
qproperty-LayerHeaderPreviewImage: url('../Medium/imgs/black/layer_header_prev_eye.svg');
qproperty-LayerHeaderPreviewOverImage: url('../Medium/imgs/black/layer_header_prev_eye_over.svg');
qproperty-LayerHeaderCamstandImage: url('../Medium/imgs/black/layer_header_table_view.svg');
qproperty-LayerHeaderCamstandOverImage: url('../Medium/imgs/black/layer_header_table_view_over.svg');
qproperty-LayerHeaderLockImage: url('../Medium/imgs/black/layer_lock_on.svg');
qproperty-LayerHeaderLockOverImage: url('../Medium/imgs/black/layer_lock_on_over.svg');
}
/* -----------------------------------------------------------------------------
Function Editor

View file

@ -362,10 +362,7 @@ TPanelTitleBar {
min-height: 18;
qproperty-TitleColor: #949494;
qproperty-ActiveTitleColor: #fff;
qproperty-BorderPixmap: url('none');
qproperty-ActiveBorderPixmap: url('imgs/white/none');
qproperty-FloatBorderPixmap: url('none');
qproperty-FloatActiveBorderPixmap: url('imgs/white/none');
qproperty-OverColor: #C34040;
}
TPanelTitleBarButton {
qproperty-PressedColor: #a35293;
@ -597,20 +594,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('imgs/white/transparent.svg');
}
#keyFrameNavigator #PreviousKey:disabled {
image: url('');
image: url('imgs/white/transparent.svg');
}
#keyFrameNavigator #NextKey {
margin: 0 2;
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('imgs/white/transparent.svg');
}
#keyFrameNavigator #NextKey:disabled {
image: url('');
image: url('imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo,
#keyFrameNavigator #KeyPartial,
@ -619,20 +616,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled,
#keyFrameNavigator #KeyPartial:disabled,
#keyFrameNavigator #KeyTotal:disabled {
image: url('');
image: url('imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo {
background-color: rgba(0, 0, 0, 0);
border: 1 solid rgba(0, 0, 0, 0);
image: url('');
image: url('imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled {
image: url('');
image: url('imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyNo:hover {
background-color: #717171;
@ -641,7 +638,7 @@ DvScrollWidget {
#keyFrameNavigator #KeyPartial {
background-color: #be7323;
border: 1 solid #be7323;
image: url('');
image: url('imgs/white/transparent.svg');
}
#keyFrameNavigator #KeyPartial:hover {
background-color: #db8d39;
@ -2372,24 +2369,18 @@ XsheetViewer {
qproperty-TimelinePreviewButtonBgOnColor: #484848;
qproperty-TimelinePreviewButtonOnImage: url('imgs/white/preview_small.svg');
qproperty-TimelinePreviewButtonBgOffColor: #484848;
qproperty-TimelinePreviewButtonOffImage: url('none');
qproperty-TimelinePreviewButtonOffImage: url('imgs/white/transparent.svg');
qproperty-TimelineCamstandButtonBgOnColor: #484848;
qproperty-TimelineCamstandButtonOnImage: url('imgs/white/table_small.svg');
qproperty-TimelineCamstandButtonTranspImage: url('imgs/white/trans_small.svg');
qproperty-TimelineCamstandButtonBgOffColor: #484848;
qproperty-TimelineCamstandButtonOffImage: url('none');
qproperty-TimelineCamstandButtonOffImage: url('imgs/white/transparent.svg');
qproperty-TimelineLockButtonBgOnColor: #484848;
qproperty-TimelineLockButtonOnImage: url('imgs/white/lock_on_small.svg');
qproperty-TimelineLockButtonBgOffColor: #484848;
qproperty-TimelineLockButtonOffImage: url('none');
qproperty-TimelineLockButtonOffImage: url('imgs/white/transparent.svg');
qproperty-TimelineConfigButtonBgColor: #484848;
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/layer_lock_on.svg');
qproperty-LayerHeaderLockOverImage: url('imgs/white/layer_lock_on_over.svg');
}
/* -----------------------------------------------------------------------------
Function Editor

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1.125,0,0,1.125,-6.75,-8.5)">
<path d="M8,15.991C8,15.991 10.248,12 14.001,12C17.752,12 20,15.991 20,15.991C20,15.991 17.761,20 14.001,20C10.239,20 8,15.991 8,15.991ZM14,13C15.656,13 17,14.344 17,16C17,17.656 15.656,19 14,19C12.344,19 11,17.656 11,16C11,14.344 12.344,13 14,13ZM14,14.5C14.828,14.5 15.5,15.172 15.5,16C15.5,16.828 14.828,17.5 14,17.5C13.172,17.5 12.5,16.828 12.5,16C12.5,15.172 13.172,14.5 14,14.5Z" style="fill-opacity:0.8;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 916 B

View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M18,2C18,0.896 17.104,0 16,0L2,0C0.896,0 0,0.896 0,2L0,16C0,17.104 0.896,18 2,18L16,18C17.104,18 18,17.104 18,16L18,2Z" style="fill-opacity:0.2;"/>
<g transform="matrix(1.125,0,0,1.125,-6.75,-8.5)">
<path d="M8,15.991C8,15.991 10.248,12 14.001,12C17.752,12 20,15.991 20,15.991C20,15.991 17.761,20 14.001,20C10.239,20 8,15.991 8,15.991ZM14,13C15.656,13 17,14.344 17,16C17,17.656 15.656,19 14,19C12.344,19 11,17.656 11,16C11,14.344 12.344,13 14,13ZM14,14.5C14.828,14.5 15.5,15.172 15.5,16C15.5,16.828 14.828,17.5 14,17.5C13.172,17.5 12.5,16.828 12.5,16C12.5,15.172 13.172,14.5 14,14.5Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="18" height="18" style="fill-opacity:0;"/>
<g id="ellipse9" transform="matrix(0.928571,0,0,0.928571,0.642857,0.642857)">
<path d="M9,2C12.863,2 16,5.137 16,9C16,12.863 12.863,16 9,16C5.137,16 2,12.863 2,9C2,5.137 5.137,2 9,2Z" style="fill:none;stroke:black;stroke-opacity:0.8;stroke-width:1.29px;"/>
</g>
<rect x="5" y="6" width="8" height="6" style="fill-opacity:0.8;"/>
</svg>

Before

Width:  |  Height:  |  Size: 850 B

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M18,2C18,0.896 17.104,0 16,0L2,0C0.896,0 0,0.896 0,2L0,16C0,17.104 0.896,18 2,18L16,18C17.104,18 18,17.104 18,16L18,2Z" style="fill-opacity:0.2;"/>
<g id="ellipse9" transform="matrix(0.928571,0,0,0.928571,0.642857,0.642857)">
<path d="M9,2C12.863,2 16,5.137 16,9C16,12.863 12.863,16 9,16C5.137,16 2,12.863 2,9C2,5.137 5.137,2 9,2Z" style="fill:none;stroke:black;stroke-width:1.29px;"/>
</g>
<rect x="5" y="6" width="8" height="6"/>
</svg>

Before

Width:  |  Height:  |  Size: 895 B

View file

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(0.818182,0,0,0.818182,1.77636e-15,1.77636e-15)">
<rect x="0" y="0" width="22" height="22" style="fill-opacity:0;"/>
</g>
<g>
<g id="path4509" transform="matrix(0.0555556,0,0,0.0555556,-0.5,0)">
<path d="M162,54C127.2,54 99,82.2 99,117L99,144L117,144L117,117C117,92.2 137.2,72 162,72C186.8,72 207,92.1 207,117L207,144L225,144L225,117C225,82.2 196.8,54 162,54Z" style="fill-opacity:0.8;fill-rule:nonzero;"/>
</g>
<path id="rect4488" d="M5,8C4.735,8 4.48,8.105 4.293,8.293C4.105,8.48 4,8.735 4,9L4,14C4,14.265 4.105,14.52 4.293,14.707C4.48,14.895 4.735,15 5,15L12,15C12.265,15 12.52,14.895 12.707,14.707C12.895,14.52 13,14.265 13,14L13,9C13,8.735 12.895,8.48 12.707,8.293C12.52,8.105 12.265,8 12,8L5,8ZM7.75,11.799C7.302,11.54 7,11.055 7,10.5C7,9.672 7.672,9 8.5,9C9.328,9 10,9.672 10,10.5C10,11.055 9.698,11.54 9.25,11.799L9.25,13.25C9.25,13.664 8.914,14 8.5,14C8.086,14 7.75,13.664 7.75,13.25L7.75,11.799Z" style="fill-opacity:0.8;fill-rule:nonzero;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
</svg>

After

Width:  |  Height:  |  Size: 450 B

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1.125,0,0,1.125,-6.75,-8.5)">
<path d="M8,15.991C8,15.991 10.248,12 14.001,12C17.752,12 20,15.991 20,15.991C20,15.991 17.761,20 14.001,20C10.239,20 8,15.991 8,15.991ZM14,13C15.656,13 17,14.344 17,16C17,17.656 15.656,19 14,19C12.344,19 11,17.656 11,16C11,14.344 12.344,13 14,13ZM14,14.5C14.828,14.5 15.5,15.172 15.5,16C15.5,16.828 14.828,17.5 14,17.5C13.172,17.5 12.5,16.828 12.5,16C12.5,15.172 13.172,14.5 14,14.5Z" style="fill:white;fill-opacity:0.8;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 927 B

View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M18,2C18,0.896 17.104,0 16,0L2,0C0.896,0 0,0.896 0,2L0,16C0,17.104 0.896,18 2,18L16,18C17.104,18 18,17.104 18,16L18,2Z" style="fill:white;fill-opacity:0.2;"/>
<g transform="matrix(1.125,0,0,1.125,-6.75,-8.5)">
<path d="M8,15.991C8,15.991 10.248,12 14.001,12C17.752,12 20,15.991 20,15.991C20,15.991 17.761,20 14.001,20C10.239,20 8,15.991 8,15.991ZM14,13C15.656,13 17,14.344 17,16C17,17.656 15.656,19 14,19C12.344,19 11,17.656 11,16C11,14.344 12.344,13 14,13ZM14,14.5C14.828,14.5 15.5,15.172 15.5,16C15.5,16.828 14.828,17.5 14,17.5C13.172,17.5 12.5,16.828 12.5,16C12.5,15.172 13.172,14.5 14,14.5Z" style="fill:white;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="18" height="18" style="fill-opacity:0;"/>
<g id="ellipse9" transform="matrix(0.928571,0,0,0.928571,0.642857,0.642857)">
<path d="M9,2C12.863,2 16,5.137 16,9C16,12.863 12.863,16 9,16C5.137,16 2,12.863 2,9C2,5.137 5.137,2 9,2Z" style="fill:none;stroke:white;stroke-opacity:0.8;stroke-width:1.29px;"/>
</g>
<rect x="5" y="6" width="8" height="6" style="fill:white;fill-opacity:0.8;"/>
</svg>

Before

Width:  |  Height:  |  Size: 861 B

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M18,2C18,0.896 17.104,0 16,0L2,0C0.896,0 0,0.896 0,2L0,16C0,17.104 0.896,18 2,18L16,18C17.104,18 18,17.104 18,16L18,2Z" style="fill:white;fill-opacity:0.2;"/>
<g id="ellipse9" transform="matrix(0.928571,0,0,0.928571,0.642857,0.642857)">
<path d="M9,2C12.863,2 16,5.137 16,9C16,12.863 12.863,16 9,16C5.137,16 2,12.863 2,9C2,5.137 5.137,2 9,2Z" style="fill:none;stroke:white;stroke-width:1.29px;"/>
</g>
<rect x="5" y="6" width="8" height="6" style="fill:white;"/>
</svg>

Before

Width:  |  Height:  |  Size: 926 B

View file

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(0.818182,0,0,0.818182,1.77636e-15,1.77636e-15)">
<rect x="0" y="0" width="22" height="22" style="fill-opacity:0;"/>
</g>
<g>
<g id="path4509" transform="matrix(0.0555556,0,0,0.0555556,-0.5,0)">
<path d="M162,54C127.2,54 99,82.2 99,117L99,144L117,144L117,117C117,92.2 137.2,72 162,72C186.8,72 207,92.1 207,117L207,144L225,144L225,117C225,82.2 196.8,54 162,54Z" style="fill:white;fill-opacity:0.8;fill-rule:nonzero;"/>
</g>
<path id="rect4488" d="M5,8C4.735,8 4.48,8.105 4.293,8.293C4.105,8.48 4,8.735 4,9L4,14C4,14.265 4.105,14.52 4.293,14.707C4.48,14.895 4.735,15 5,15L12,15C12.265,15 12.52,14.895 12.707,14.707C12.895,14.52 13,14.265 13,14L13,9C13,8.735 12.895,8.48 12.707,8.293C12.52,8.105 12.265,8 12,8L5,8ZM7.75,11.799C7.302,11.54 7,11.055 7,10.5C7,9.672 7.672,9 8.5,9C9.328,9 10,9.672 10,10.5C10,11.055 9.698,11.54 9.25,11.799L9.25,13.25C9.25,13.664 8.914,14 8.5,14C8.086,14 7.75,13.664 7.75,13.25L7.75,11.799Z" style="fill:white;fill-opacity:0.8;fill-rule:nonzero;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(0.818182,0,0,0.818182,1.77636e-15,1.77636e-15)">
<rect x="0" y="0" width="22" height="22" style="fill-opacity:0;"/>
</g>
<path d="M18,2C18,0.896 17.104,0 16,0L2,0C0.896,0 0,0.896 0,2L0,16C0,17.104 0.896,18 2,18L16,18C17.104,18 18,17.104 18,16L18,2Z" style="fill:white;fill-opacity:0.2;"/>
<g>
<g id="path4509" transform="matrix(0.0555556,0,0,0.0555556,-0.5,0)">
<path d="M162,54C127.2,54 99,82.2 99,117L99,144L117,144L117,117C117,92.2 137.2,72 162,72C186.8,72 207,92.1 207,117L207,144L225,144L225,117C225,82.2 196.8,54 162,54Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<path id="rect4488" d="M5,8C4.735,8 4.48,8.105 4.293,8.293C4.105,8.48 4,8.735 4,9L4,14C4,14.265 4.105,14.52 4.293,14.707C4.48,14.895 4.735,15 5,15L12,15C12.265,15 12.52,14.895 12.707,14.707C12.895,14.52 13,14.265 13,14L13,9C13,8.735 12.895,8.48 12.707,8.293C12.52,8.105 12.265,8 12,8L5,8ZM7.75,11.799C7.302,11.54 7,11.055 7,10.5C7,9.672 7.672,9 8.5,9C9.328,9 10,9.672 10,10.5C10,11.055 9.698,11.54 9.25,11.799L9.25,13.25C9.25,13.664 8.914,14 8.5,14C8.086,14 7.75,13.664 7.75,13.25L7.75,11.799Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
</svg>

After

Width:  |  Height:  |  Size: 450 B

View file

@ -34,6 +34,8 @@
@label-title: rgb(159, 218, 255);
@label-error: rgb(255, 0, 0);
@lock-color: #C34040;
// -----------------------------------------------------------------------------
// Tabs
// -----------------------------------------------------------------------------
@ -197,7 +199,7 @@
@toolbutton-border-color-disabled: @toolbutton-bg-color-disabled;
// Lock
@toolbutton-lock-bg-color-checked: #C34040;
@toolbutton-lock-bg-color-checked: @lock-color;
@toolbutton-lock-border-color-checked: @toolbutton-lock-bg-color-checked;
@toolbutton-lock-bg-color-checked-hover: lighten(@toolbutton-lock-bg-color-checked, 15);
@toolbutton-lock-border-color-checked-hover: @toolbutton-lock-bg-color-checked-hover;
@ -317,15 +319,15 @@
@title-text-color: lighten(@bg, 30);
@title-text-color-active: #fff;
@title-active-border-pixmap: 'none';
@title-border-width: 1px;
@title-border-color: @accent;
// Title pane icon colors
@title-button-rollover-color: @button-bg-color-hover;
@title-button-pressed-color: @hl-bg-color;
@title-button-freeze-color: @toolbutton-lock-bg-color-checked;
@title-button-freeze-color: @lock-color;
@title-button-preview-color: #1baf7e;
@title-close-over-color: @lock-color;
// -----------------------------------------------------------------------------
// File Browser / Trees

View file

@ -189,11 +189,9 @@ TPanelTitleBar {
min-height: 18;
qproperty-TitleColor: @title-text-color;
qproperty-ActiveTitleColor: @title-text-color-active;
// QSS only works when pixmaps are set to 'none'
qproperty-BorderPixmap: url('none');
qproperty-ActiveBorderPixmap: url('@{img-url}/@{title-active-border-pixmap}');
qproperty-FloatBorderPixmap: url('none');
qproperty-FloatActiveBorderPixmap: url('@{img-url}/@{title-active-border-pixmap}');
// Buttons
qproperty-OverColor: @title-close-over-color;
}
TPanelTitleBarButton {
@ -442,9 +440,9 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('@{img-url}/transparent.svg');
&:disabled {
image: url('');
image: url('@{img-url}/transparent.svg');
}
}
#NextKey {
@ -452,9 +450,9 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('@{img-url}/transparent.svg');
&:disabled {
image: url('');
image: url('@{img-url}/transparent.svg');
}
}
#KeyNo,
@ -464,17 +462,17 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('@{img-url}/transparent.svg');
&:disabled {
image: url('');
image: url('@{img-url}/transparent.svg');
}
}
#KeyNo {
background-color: @keyframe-off-color;
border: 1 solid @keyframe-off-border-color;
image: url('');
image: url('@{img-url}/transparent.svg');
&:disabled {
image: url('');
image: url('@{img-url}/transparent.svg');
}
&:hover {
background-color: @keyframe-off-color-hover;
@ -484,7 +482,7 @@ DvScrollWidget {
#KeyPartial {
background-color: @keyframe-partial-color;
border: 1 solid @keyframe-partial-border-color;
image: url('');
image: url('@{img-url}/transparent.svg');
&:hover {
background-color: @keyframe-partial-color-hover;
border-color: @keyframe-partial-border-color-hover;

View file

@ -188,29 +188,21 @@ XsheetViewer {
qproperty-TimelinePreviewButtonBgOnColor: @bg;
qproperty-TimelinePreviewButtonOnImage: url('@{img-url}/preview_small.svg');
qproperty-TimelinePreviewButtonBgOffColor: @bg;
qproperty-TimelinePreviewButtonOffImage: url('none');
qproperty-TimelinePreviewButtonOffImage: url('@{img-url}/transparent.svg');
qproperty-TimelineCamstandButtonBgOnColor: @bg;
qproperty-TimelineCamstandButtonOnImage: url('@{img-url}/table_small.svg');
qproperty-TimelineCamstandButtonTranspImage: url('@{img-url}/trans_small.svg');
qproperty-TimelineCamstandButtonBgOffColor: @bg;
qproperty-TimelineCamstandButtonOffImage: url('none');
qproperty-TimelineCamstandButtonOffImage: url('@{img-url}/transparent.svg');
qproperty-TimelineLockButtonBgOnColor: @bg;
qproperty-TimelineLockButtonOnImage: url('@{img-url}/lock_on_small.svg');
qproperty-TimelineLockButtonBgOffColor: @bg;
qproperty-TimelineLockButtonOffImage: url('none');
qproperty-TimelineLockButtonOffImage: url('@{img-url}/transparent.svg');
qproperty-TimelineConfigButtonBgColor: @bg;
qproperty-TimelineConfigButtonImage: url('@{img-url}/timeline_config.svg');
// Header Control
qproperty-LayerHeaderPreviewImage: url('@{img-url}/layer_header_prev_eye.svg');
qproperty-LayerHeaderPreviewOverImage: url('@{img-url}/layer_header_prev_eye_over.svg');
qproperty-LayerHeaderCamstandImage: url('@{img-url}/layer_header_table_view.svg');
qproperty-LayerHeaderCamstandOverImage: url('@{img-url}/layer_header_table_view_over.svg');
qproperty-LayerHeaderLockImage: url('@{img-url}/layer_lock_on.svg');
qproperty-LayerHeaderLockOverImage: url('@{img-url}/layer_lock_on_over.svg');
}
/* -----------------------------------------------------------------------------

View file

@ -20,6 +20,8 @@
@hl-text-color: #000;
@hl-bg-color-secondary: darken(@bg, 15);
@lock-color: #e0625c;
// -----------------------------------------------------------------------------
// Tabs
// -----------------------------------------------------------------------------
@ -52,7 +54,7 @@
// Title pane icon colors
@title-button-pressed-color: darken(@hl-bg-color, 8);
@title-button-rollover-color: darken(@title-bg-color, 20);
@title-button-freeze-color: #e0625c;
@title-button-freeze-color: @lock-color;
@title-button-preview-color: #2cb856;
// -----------------------------------------------------------------------------
@ -75,7 +77,7 @@
@toolbutton-border-color-checked: darken(@toolbutton-bg-color-checked, 10);
@toolbutton-bg-color-hover: darken(@bg, 15);
@toolbutton-lock-bg-color-checked: @title-button-freeze-color;
@toolbutton-lock-bg-color-checked: @lock-color;
@toolbutton-lock-border-color-checked: darken(@toolbutton-lock-bg-color-checked, 20);
// -----------------------------------------------------------------------------

View file

@ -21,6 +21,8 @@
@dock-bg-color: darken(@bg, 30);
@label-title: rgb(0, 0, 0);
@lock-color: #bd5454;
// -----------------------------------------------------------------------------
// Tabs
// -----------------------------------------------------------------------------
@ -112,8 +114,7 @@
@toolbutton-border-color-checked-hover: @toolbutton-border-color-checked;
// Lock
@toolbutton-lock-bg-color-checked: #bd5454;
@toolbutton-lock-border-color-checked: darken(@toolbutton-lock-bg-color-checked, 20);
@toolbutton-lock-border-color-checked: darken(@lock-color, 20);
@toolbutton-lock-border-color-checked-hover: @toolbutton-lock-border-color-checked;
// -----------------------------------------------------------------------------

View file

@ -362,10 +362,7 @@ TPanelTitleBar {
min-height: 18;
qproperty-TitleColor: #000;
qproperty-ActiveTitleColor: rgba(255, 255, 255, 0.8);
qproperty-BorderPixmap: url('none');
qproperty-ActiveBorderPixmap: url('../Medium/imgs/black/none');
qproperty-FloatBorderPixmap: url('none');
qproperty-FloatActiveBorderPixmap: url('../Medium/imgs/black/none');
qproperty-OverColor: #bd5454;
}
TPanelTitleBarButton {
qproperty-PressedColor: #c16099;
@ -597,20 +594,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #PreviousKey:disabled {
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #NextKey {
margin: 0 2;
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #NextKey:disabled {
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo,
#keyFrameNavigator #KeyPartial,
@ -619,20 +616,20 @@ DvScrollWidget {
padding-right: -1;
width: 20px;
height: 20px;
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled,
#keyFrameNavigator #KeyPartial:disabled,
#keyFrameNavigator #KeyTotal:disabled {
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo {
background-color: rgba(0, 0, 0, 0);
border: 1 solid rgba(0, 0, 0, 0);
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo:disabled {
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyNo:hover {
background-color: #b3b3b3;
@ -641,7 +638,7 @@ DvScrollWidget {
#keyFrameNavigator #KeyPartial {
background-color: #c77a27;
border: 1 solid #724616;
image: url('');
image: url('../Medium/imgs/black/transparent.svg');
}
#keyFrameNavigator #KeyPartial:hover {
background-color: #db9346;
@ -2372,24 +2369,18 @@ XsheetViewer {
qproperty-TimelinePreviewButtonBgOnColor: #808080;
qproperty-TimelinePreviewButtonOnImage: url('../Medium/imgs/black/preview_small.svg');
qproperty-TimelinePreviewButtonBgOffColor: #808080;
qproperty-TimelinePreviewButtonOffImage: url('none');
qproperty-TimelinePreviewButtonOffImage: url('../Medium/imgs/black/transparent.svg');
qproperty-TimelineCamstandButtonBgOnColor: #808080;
qproperty-TimelineCamstandButtonOnImage: url('../Medium/imgs/black/table_small.svg');
qproperty-TimelineCamstandButtonTranspImage: url('../Medium/imgs/black/trans_small.svg');
qproperty-TimelineCamstandButtonBgOffColor: #808080;
qproperty-TimelineCamstandButtonOffImage: url('none');
qproperty-TimelineCamstandButtonOffImage: url('../Medium/imgs/black/transparent.svg');
qproperty-TimelineLockButtonBgOnColor: #808080;
qproperty-TimelineLockButtonOnImage: url('../Medium/imgs/black/lock_on_small.svg');
qproperty-TimelineLockButtonBgOffColor: #808080;
qproperty-TimelineLockButtonOffImage: url('none');
qproperty-TimelineLockButtonOffImage: url('../Medium/imgs/black/transparent.svg');
qproperty-TimelineConfigButtonBgColor: #808080;
qproperty-TimelineConfigButtonImage: url('../Medium/imgs/black/timeline_config.svg');
qproperty-LayerHeaderPreviewImage: url('../Medium/imgs/black/layer_header_prev_eye.svg');
qproperty-LayerHeaderPreviewOverImage: url('../Medium/imgs/black/layer_header_prev_eye_over.svg');
qproperty-LayerHeaderCamstandImage: url('../Medium/imgs/black/layer_header_table_view.svg');
qproperty-LayerHeaderCamstandOverImage: url('../Medium/imgs/black/layer_header_table_view_over.svg');
qproperty-LayerHeaderLockImage: url('../Medium/imgs/black/layer_lock_on.svg');
qproperty-LayerHeaderLockOverImage: url('../Medium/imgs/black/layer_lock_on_over.svg');
}
/* -----------------------------------------------------------------------------
Function Editor

View file

@ -39,6 +39,11 @@ const QColor grey225(225, 225, 225);
const QColor grey190(190, 190, 190);
const QColor grey150(150, 150, 150);
struct SvgRenderParams {
QSize size;
QRectF rect;
};
} // namespace
class QPainter;
@ -49,10 +54,6 @@ class TStroke;
//-----------------------------------------------------------------------------
QString DVAPI getIconThemePath(const QString &filePath);
//-----------------------------------------------------------------------------
QString DVAPI fileSizeString(qint64 size, int precision = 2);
//-----------------------------------------------------------------------------
@ -95,11 +96,29 @@ QPixmap DVAPI scalePixmapKeepingAspectRatio(QPixmap p, QSize size,
//-----------------------------------------------------------------------------
SvgRenderParams calculateSvgRenderParams(const QSize &desiredSize,
QSize &imageSize,
Qt::AspectRatioMode aspectRatioMode);
//-----------------------------------------------------------------------------
// Workaround issue with QT5.9's svgRenderer not handling viewBox very well
QSize determineSvgSize(const QString &svgFilePath);
//-----------------------------------------------------------------------------
QPixmap DVAPI
svgToPixmap(const QString &svgFilePath, const QSize &size = QSize(),
svgToPixmap(const QString &svgFilePath, QSize size = QSize(),
Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio,
QColor bgColor = Qt::transparent);
//-----------------------------------------------------------------------------
QImage DVAPI
svgToImage(const QString &svgFilePath, QSize size = QSize(),
Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio,
QColor bgColor = Qt::transparent);
//-----------------------------------------------------------------------------
// returns device-pixel ratio. It is 1 for normal monitors and 2 (or higher
// ratio) for high DPI monitors. Setting "Display > Set custom text size(DPI)"
@ -108,18 +127,47 @@ int DVAPI getDevicePixelRatio(const QWidget *widget = nullptr);
//-----------------------------------------------------------------------------
QPixmap DVAPI compositePixmap(QPixmap pixmap, const qreal &opacity = 0.8,
const QSize &size = QSize(),
const int leftAdj = 0, const int topAdj = 0,
QColor bgColor = Qt::transparent);
QPixmap DVAPI recolorPixmap(
QPixmap pixmap, QColor color = Preferences::instance()->getIconTheme()
? Qt::black
: Qt::white);
QIcon DVAPI createQIcon(const char *iconSVGName, bool useFullOpacity = false,
bool isForMenuItem = false);
void DVAPI addSpecifiedSizedImageToIcon(QIcon &icon, const char *iconSVGName,
QSize newSize);
QImage DVAPI adjustImageOpacity(const QImage &input, qreal opacity = 1.0);
//-----------------------------------------------------------------------------
QImage DVAPI compositeImage(const QImage &input, QSize newSize = QSize(),
bool scaleInput = false,
QColor bgColor = Qt::transparent);
//-----------------------------------------------------------------------------
QPixmap DVAPI convertImageToPixmap(const QImage &image);
//-----------------------------------------------------------------------------
QImage DVAPI
generateIconImage(const QString &iconSVGName, qreal opacity = qreal(1.0),
QSize newSize = QSize(),
Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio);
//-----------------------------------------------------------------------------
QPixmap DVAPI
generateIconPixmap(const QString &iconSVGName, qreal opacity = qreal(1.0),
QSize newSize = QSize(),
Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio);
//-----------------------------------------------------------------------------
void DVAPI addImagesToIcon(QIcon &icon, const QImage &baseImg,
const QImage &overImg = QImage(),
const QImage &onImg = QImage(),
bool useFullOpacity = false);
//-----------------------------------------------------------------------------
void DVAPI addPixmapToAllModesAndStates(QIcon &icon, const QPixmap &pixmap);
//-----------------------------------------------------------------------------
QIcon DVAPI createQIcon(const QString &iconSVGName, bool useFullOpacity = false,
bool isForMenuItem = false, QSize newSize = QSize());
QIcon DVAPI createQIconPNG(const char *iconPNGName);
QIcon DVAPI createQIconOnOffPNG(const char *iconPNGName, bool withOver = true);
QIcon DVAPI createTemporaryIconFromName(const char *commandName);
@ -219,6 +267,41 @@ protected:
QString DVAPI operator+(const QString &a, const TFilePath &fp);
//-----------------------------------------------------------------------------
// Theme Manager
// For managing icon themes
class DVAPI ThemeManager { // singleton
public:
static ThemeManager &getInstance();
void buildIconPathsMap(const QString &path);
bool hasIcon(const QString &iconName) const;
QString getIconPath(const QString &iconName) const;
qreal getOnOpacity() const;
qreal getOffOpacity() const;
qreal getDisabledOpacity() const;
QImage recolorBlackPixels(const QImage &image, QColor color = QColor());
QPixmap recolorBlackPixels(const QPixmap &input, QColor color = QColor());
// Debug
void printiconPathsMap();
ThemeManager(ThemeManager const &) = delete;
void operator=(ThemeManager const &) = delete;
~ThemeManager();
private:
ThemeManager();
class ThemeManagerImpl; // forward declaration
std::unique_ptr<ThemeManagerImpl> impl; // opaque pointer
};
QString DVAPI getIconPath(const QString &path);
//-----------------------------------------------------------------------------
// This is used to translate Windows keys to macOS keys
//

View file

@ -38,7 +38,7 @@ void CastSelection::getSelectedLevels(std::vector<TXshLevel *> &levels) {
CastItems const &castItems = m_browser->getCastItems();
for (int i = 0; i < castItems.getItemCount(); i++) {
if (!isSelected(i)) continue;
TXshLevel *level = castItems.getItem(i)->getSimpleLevel();
TXshLevel *level = castItems.getItem(i)->getSimpleLevel();
if (!level) level = castItems.getItem(i)->getPaletteLevel();
if (!level) level = castItems.getItem(i)->getSoundLevel();
if (level) levels.push_back(level);
@ -93,7 +93,7 @@ QPixmap LevelCastItem::getPixmap(bool isSelected) const {
bool onDemand = false;
if (Preferences::instance()->getColumnIconLoadingPolicy() ==
Preferences::LoadOnDemand)
onDemand = !isSelected;
onDemand = !isSelected;
QPixmap icon = IconGenerator::instance()->getIcon(sl, sl->getFirstFid(),
false, onDemand);
return scalePixmapKeepingAspectRatio(icon, m_itemPixmapSize, Qt::transparent);
@ -138,9 +138,8 @@ int SoundCastItem::getFrameCount() const {
//-----------------------------------------------------------------------------
QPixmap SoundCastItem::getPixmap(bool isSelected) const {
static QPixmap loudspeaker(
svgToPixmap(getIconThemePath("mimetypes/60/audio_icon.svg"),
m_itemPixmapSize, Qt::KeepAspectRatio));
static QPixmap loudspeaker(generateIconPixmap(
"audio_icon", qreal(1.0), m_itemPixmapSize, Qt::KeepAspectRatio));
return loudspeaker;
}

View file

@ -1037,8 +1037,7 @@ void DvItemViewerPanel::paintThumbnailItem(QPainter &p, int index) {
if (!thumbnail.isNull()) p.drawPixmap(iconRect.topLeft(), thumbnail);
//}
else {
static QPixmap missingPixmap =
QPixmap(getIconThemePath("mimetypes/60/missing_icon.svg"));
static QPixmap missingPixmap = generateIconPixmap("missing_icon");
QRect pixmapRect(rect.left() + (rect.width() - missingPixmap.width()) / 2,
rect.top(), missingPixmap.width(), missingPixmap.height());
p.drawPixmap(pixmapRect.topLeft(), missingPixmap);

View file

@ -123,10 +123,8 @@ ExportSceneDvDirModelFileFolderNode::createExposeSceneNode(
// ExportSceneDvDirModelProjectNode
QPixmap ExportSceneDvDirModelProjectNode::getPixmap(bool isOpen) const {
static QPixmap openProjectPixmap(recolorPixmap(
svgToPixmap(getIconThemePath("actions/18/folder_project_on.svg"))));
static QPixmap closeProjectPixmap(recolorPixmap(
svgToPixmap(getIconThemePath("actions/18/folder_project.svg"))));
static QPixmap openProjectPixmap(generateIconPixmap("folder_project_on"));
static QPixmap closeProjectPixmap(generateIconPixmap("folder_project"));
return isOpen ? openProjectPixmap : closeProjectPixmap;
}

View file

@ -909,22 +909,19 @@ QVariant FileBrowser::getItemData(int index, DataType dataType,
QSize iconSize = m_itemViewer->getPanel()->getIconSize();
// parent folder icons
if (item.m_path == m_folder.getParentDir()) {
static QPixmap folderUpPixmap(
svgToPixmap(getIconThemePath("actions/60/folder_browser_up.svg"),
iconSize, Qt::KeepAspectRatio));
static QPixmap folderUpPixmap(generateIconPixmap(
"folder_browser_up", qreal(1.0), iconSize, Qt::KeepAspectRatio));
return folderUpPixmap;
}
// folder icons
else if (item.m_isFolder) {
if (item.m_isLink) {
static QPixmap folderLinkPixmap(
svgToPixmap(getIconThemePath("actions/60/folder_browser_link.svg"),
iconSize, Qt::KeepAspectRatio));
static QPixmap folderLinkPixmap(generateIconPixmap(
"folder_browser_link", qreal(1.0), iconSize, Qt::KeepAspectRatio));
return folderLinkPixmap;
} else {
static QPixmap folderPixmap(
svgToPixmap(getIconThemePath("actions/60/folder_browser.svg"),
iconSize, Qt::KeepAspectRatio));
static QPixmap folderPixmap(generateIconPixmap(
"folder_browser", qreal(1.0), iconSize, Qt::KeepAspectRatio));
return folderPixmap;
}
}

View file

@ -214,7 +214,7 @@ bool DvDirModelFileFolderNode::exists() {
return m_existsChecked ? m_exists
: m_peeks
? m_existsChecked = true,
m_exists = TFileStatus(m_path).doesExist() : true;
m_exists = TFileStatus(m_path).doesExist() : true;
}
//-----------------------------------------------------------------------------
@ -236,7 +236,7 @@ DvDirModelFileFolderNode *DvDirModelFileFolderNode::createNode(
DvDirModelFileFolderNode *node;
// check the project nodes under the Project Root Node
if ( // QString::fromStdWString(parent->getName()).startsWith("Project root")
// &&
// &&
TProjectManager::instance()->isProject(path))
node = new DvDirModelProjectNode(parent, path);
else {
@ -371,10 +371,8 @@ DvDirModelNode *DvDirModelFileFolderNode::getNodeByPath(const TFilePath &path) {
//-----------------------------------------------------------------------------
QPixmap DvDirModelFileFolderNode::getPixmap(bool isOpen) const {
static QPixmap openFolderPixmap(
svgToPixmap(getIconThemePath("actions/18/folder_on.svg")));
static QPixmap closeFolderPixmap(
svgToPixmap(getIconThemePath("actions/18/folder.svg")));
static QPixmap openFolderPixmap = generateIconPixmap("folder_on");
static QPixmap closeFolderPixmap = generateIconPixmap("folder");
return isOpen ? openFolderPixmap : closeFolderPixmap;
}
@ -524,10 +522,8 @@ DvDirModelNode *DvDirVersionControlNode::makeChild(std::wstring name) {
//-----------------------------------------------------------------------------
QPixmap DvDirVersionControlNode::getPixmap(bool isOpen) const {
static QPixmap openFolderPixmap(
svgToPixmap(getIconThemePath("actions/18/folder_on.svg")));
static QPixmap closeFolderPixmap(
svgToPixmap(getIconThemePath("actions/18/folder.svg")));
static QPixmap openFolderPixmap(generateIconPixmap("folder_on"));
static QPixmap closeFolderPixmap(generateIconPixmap("folder"));
static QPixmap openMissingPixmap(
svgToPixmap(":Resources/vcfolder_mis_open.svg"));
static QPixmap closeMissingPixmap(
@ -802,10 +798,8 @@ void DvDirModelProjectNode::makeCurrent() {
//-----------------------------------------------------------------------------
QPixmap DvDirModelProjectNode::getPixmap(bool isOpen) const {
static QPixmap openProjectPixmap(
svgToPixmap(getIconThemePath("actions/18/folder_project_on.svg")));
static QPixmap closeProjectPixmap(
svgToPixmap(getIconThemePath("actions/18/folder_project.svg")));
static QPixmap openProjectPixmap = generateIconPixmap("folder_project_on");
static QPixmap closeProjectPixmap = generateIconPixmap("folder_project");
return isOpen ? openProjectPixmap : closeProjectPixmap;
}
@ -886,10 +880,8 @@ void DvDirModelDayNode::visualizeContent(FileBrowser *browser) {
//-----------------------------------------------------------------------------
QPixmap DvDirModelDayNode::getPixmap(bool isOpen) const {
static QPixmap openFolderPixmap(
svgToPixmap(getIconThemePath("actions/18/folder_on.svg")));
static QPixmap closeFolderPixmap(
svgToPixmap(getIconThemePath("actions/18/folder.svg")));
static QPixmap openFolderPixmap = generateIconPixmap("folder_on");
static QPixmap closeFolderPixmap = generateIconPixmap("folder");
return isOpen ? openFolderPixmap : closeFolderPixmap;
}
@ -1058,27 +1050,23 @@ void DvDirModelStuffFolderNode::refreshChildren() {
DvDirModelSpecialFileFolderNode *child = new DvDirModelSpecialFileFolderNode(
this, L"Library", ToonzFolder::getLibraryFolder());
child->setPixmap(
recolorPixmap(svgToPixmap(getIconThemePath("actions/16/library.svg"), QSize(16,16))));
child->setPixmap(generateIconPixmap("library"));
addChild(child);
child = new DvDirModelSpecialFileFolderNode(
this, L"Fx Macros",
ToonzFolder::getFxPresetFolder() + TFilePath("presets/macroFx"));
child->setPixmap(
recolorPixmap(svgToPixmap(getIconThemePath("actions/16/fx_logo.svg"))));
child->setPixmap(generateIconPixmap("fx_logo"));
addChild(child);
child = new DvDirModelSpecialFileFolderNode(this, L"Fx Plugins",
ToonzFolder::getPluginsFolder());
child->setPixmap(
recolorPixmap(svgToPixmap(getIconThemePath("actions/16/plugins.svg"))));
child->setPixmap(generateIconPixmap("plugins"));
addChild(child);
child = new DvDirModelSpecialFileFolderNode(
this, L"Studio Palettes", ToonzFolder::getStudioPaletteFolder());
child->setPixmap(recolorPixmap(
svgToPixmap(getIconThemePath("actions/16/palette.svg"), QSize(16, 16))));
child->setPixmap(generateIconPixmap("palette"));
addChild(child);
}
@ -1143,8 +1131,7 @@ void DvDirModelRootNode::refreshDefaultProjectPath() {
L" (" + projectRootDir.withoutParentDir().getWideString() + L")";
DvDirModelSpecialFileFolderNode *projectFolderNode =
new DvDirModelSpecialFileFolderNode(this, folderName, projectRootDir);
projectFolderNode->setPixmap(recolorPixmap(
svgToPixmap(getIconThemePath("actions/16/projects_folder.svg"))));
projectFolderNode->setPixmap(generateIconPixmap("projects_folder"));
m_projectDirNodes.push_back(projectFolderNode);
insertChild(row + folderCount, projectFolderNode);
folderCount++;
@ -1165,22 +1152,19 @@ void DvDirModelRootNode::refreshChildren() {
DvDirModelSpecialFileFolderNode *child;
child = new DvDirModelSpecialFileFolderNode(this, L"My Documents",
getMyDocumentsPath());
child->setPixmap(recolorPixmap(svgToPixmap(
getIconThemePath("actions/16/my_documents.svg"), QSize(16, 16))));
child->setPixmap(generateIconPixmap("my_documents"));
m_specialNodes.push_back(child);
addChild(child);
child =
new DvDirModelSpecialFileFolderNode(this, L"Desktop", getDesktopPath());
child->setPixmap(recolorPixmap(svgToPixmap(
getIconThemePath("actions/16/desktop.svg"), QSize(16, 16))));
child->setPixmap(generateIconPixmap("desktop"));
m_specialNodes.push_back(child);
addChild(child);
child = new DvDirModelSpecialFileFolderNode(this, L"Downloads",
getDownloadsPath());
child->setPixmap(recolorPixmap(
svgToPixmap(getIconThemePath("actions/16/downloads.svg"))));
child->setPixmap(generateIconPixmap("downloads"));
m_specialNodes.push_back(child);
addChild(child);
@ -1195,8 +1179,7 @@ void DvDirModelRootNode::refreshChildren() {
child = new DvDirModelSpecialFileFolderNode(
this, L"Favorites", ToonzFolder::getMyFavoritesFolder());
child->setPixmap(recolorPixmap(
svgToPixmap(getIconThemePath("actions/16/favorites.svg"))));
child->setPixmap(generateIconPixmap("favorites"));
m_specialNodes.push_back(child);
addChild(child);
@ -1217,8 +1200,8 @@ void DvDirModelRootNode::refreshChildren() {
DvDirModelSpecialFileFolderNode *projectFolderNode =
new DvDirModelSpecialFileFolderNode(this, folderName,
projectRootDir);
projectFolderNode->setPixmap(recolorPixmap(
svgToPixmap(getIconThemePath("actions/16/projects_folder.svg"))));
projectFolderNode->setPixmap(
QPixmap(generateIconPixmap("projects_folder")));
m_projectDirNodes.push_back(projectFolderNode);
addChild(projectFolderNode);
}
@ -1454,9 +1437,9 @@ void DvDirModel::refresh(const QModelIndex &index) {
DvDirModelNode *node = getNode(index);
if (!node) return;
emit layoutAboutToBeChanged();
bool emitBeginAndEnd = false;
int rc = rowCount(index);
int cc = node->getChildCount();
bool emitBeginAndEnd = false;
int rc = rowCount(index);
int cc = node->getChildCount();
if (cc < rc) emitBeginAndEnd = true;
if (emitBeginAndEnd) emit beginRemoveRows(index, 0, node->getChildCount());
node->refreshChildren();

View file

@ -269,8 +269,8 @@ void FlipBook::addFreezeButtonToTitleBar() {
TPanel *panel = qobject_cast<TPanel *>(parentWidget());
if (panel) {
TPanelTitleBar *titleBar = panel->getTitleBar();
m_freezeButton = new TPanelTitleBarButton(
titleBar, getIconThemePath("actions/20/pane_freeze.svg"));
m_freezeButton =
new TPanelTitleBarButton(titleBar, getIconPath("pane_freeze"));
m_freezeButton->setToolTip("Freeze");
titleBar->add(QPoint(-64, 0), m_freezeButton);
connect(m_freezeButton, SIGNAL(toggled(bool)), this, SLOT(freeze(bool)));

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-2,-2)">
<rect x="0" y="0" width="20" height="20" style="fill-opacity:0;"/>
</g>
<g transform="matrix(1,0,0,1,-1,-1)">
<g id="rect4488" transform="matrix(1,0,0,1,-1,0)">
<path d="M5,8C4.735,8 4.48,8.105 4.293,8.293C4.105,8.48 4,8.735 4,9L4,14C4,14.265 4.105,14.52 4.293,14.707C4.48,14.895 4.735,15 5,15L12,15C12.265,15 12.52,14.895 12.707,14.707C12.895,14.52 13,14.265 13,14L13,9C13,8.735 12.895,8.48 12.707,8.293C12.52,8.105 12.265,8 12,8L5,8ZM7.75,11.799C7.302,11.54 7,11.055 7,10.5C7,9.672 7.672,9 8.5,9C9.328,9 10,9.672 10,10.5C10,11.055 9.698,11.54 9.25,11.799L9.25,13.25C9.25,13.664 8.914,14 8.5,14C8.086,14 7.75,13.664 7.75,13.25L7.75,11.799Z" style="fill-rule:nonzero;"/>
</g>
<g id="path4491" transform="matrix(1,0,0,1,-1,0)">
<path d="M13.5,2C11.6,2 10,3.6 10,5.5L10,8L11,8L11,5.5C11,4.1 12.1,3 13.5,3C14.9,3 16,4.1 16,5.5L16,6.5C16,6.776 16.224,7 16.5,7C16.776,7 17,6.776 17,6.5L17,5.5C17,3.6 15.4,2 13.5,2Z" style="fill-rule:nonzero;"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1,11 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="18px" height="18px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(0.818182,0,0,0.818182,1.77636e-15,1.77636e-15)">
<rect x="0" y="0" width="22" height="22" style="fill-opacity:0;"/>
<svg width="100%" height="100%" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-2,-2)">
<rect x="0" y="0" width="20" height="20" style="fill-opacity:0;"/>
</g>
<path d="M18,2C18,0.896 17.104,0 16,0L2,0C0.896,0 0,0.896 0,2L0,16C0,17.104 0.896,18 2,18L16,18C17.104,18 18,17.104 18,16L18,2Z" style="fill-opacity:0.2;"/>
<g>
<g transform="matrix(1,0,0,1,-1,-1)">
<g id="path4509" transform="matrix(0.0555556,0,0,0.0555556,-0.5,0)">
<path d="M162,54C127.2,54 99,82.2 99,117L99,144L117,144L117,117C117,92.2 137.2,72 162,72C186.8,72 207,92.1 207,117L207,144L225,144L225,117C225,82.2 196.8,54 162,54Z" style="fill-rule:nonzero;"/>
</g>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -2,10 +2,10 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g id="new_note_level">
<rect id="bg" x="0.001" y="-0.04" width="16" height="16" style="fill:#878787;fill-opacity:0;"/>
<rect id="bg" x="0.001" y="-0.04" width="16" height="16" style="fill:rgb(135,135,135);fill-opacity:0;"/>
<rect x="4.501" y="4.235" width="5" height="1.45"/>
<rect x="4.501" y="7.235" width="7" height="1.45"/>
<rect x="4.501" y="10.235" width="6" height="1.45"/>
<path d="M15,5l0.019,10l-14.019,0l0,-14l10.001,0l3.999,4Zm-1,9l0,-9l-3,0l0,-3l-9,0l0,12l12,0Z"/>
<path d="M14.694,4.694C14.89,4.89 15,5.156 15.001,5.432C15.004,6.91 15.013,11.788 15.017,13.951C15.018,14.229 14.907,14.496 14.711,14.693C14.515,14.889 14.248,15 13.97,15C11.369,15 4.646,15 2.047,15C1.769,15 1.503,14.89 1.307,14.693C1.11,14.497 1,14.231 1,13.953C1,11.356 1,4.644 1,2.047C1,1.769 1.11,1.503 1.307,1.307C1.503,1.11 1.769,1 2.047,1C4.209,1 9.087,1 10.567,1C10.845,1 11.111,1.11 11.308,1.307C12.053,2.052 13.95,3.95 14.694,4.694ZM14,14L14,5L11,5L11,2L2,2L2,14L14,14Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 877 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-1,-1)">
<rect x="0" y="0" width="18" height="18" style="fill-opacity:0;"/>
</g>
<g transform="matrix(0.928571,0,0,0.928571,-0.357142,-0.357143)">
<g id="ellipse9">
<path d="M9,2C12.863,2 16,5.137 16,9C16,12.863 12.863,16 9,16C5.137,16 2,12.863 2,9C2,5.137 5.137,2 9,2Z" style="fill:none;stroke:#000;stroke-width:1.29px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,-1,-1)">
<rect x="5" y="6" width="8" height="6"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 965 B

View file

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="142225px" height="71113px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(4.16667,0,0,4.16667,0,0)">
<g transform="matrix(4.16667,0,0,4.16667,0,0)">
<svg width="100%" height="100%" viewBox="0 0 60 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(0.00732404,0,0,0.00732404,0.0841894,0.0703995)">
<g>
<g>
<path d="M7293.79,513.111L7293.79,3582.89L898.213,3582.89L875.367,1310.43L1725.51,493.988L7293.79,513.111ZM6263.38,1898L5997.06,2044.48C5946.99,1992.14 5897.52,1955.81 5848.63,1935.5C5799.74,1915.19 5742.45,1905.03 5676.75,1905.03C5557.07,1905.03 5460.28,1940.72 5386.36,2012.09C5312.45,2083.47 5275.49,2174.92 5275.49,2286.46C5275.49,2394.89 5311.08,2483.43 5382.26,2552.07C5453.44,2620.71 5546.91,2655.03 5662.67,2655.03C5805.82,2655.03 5917.28,2606.2 5997.06,2508.55L6249.32,2681.27C6112.6,2859.09 5919.63,2948 5670.41,2948C5446.19,2948 5270.61,2881.59 5143.66,2748.78C5016.7,2615.97 4953.23,2460.5 4953.23,2282.38C4953.23,2158.94 4984.09,2045.27 5045.81,1941.36C5107.52,1837.45 5193.66,1755.81 5304.2,1696.44C5414.75,1637.06 5538.38,1607.38 5675.1,1607.38C5801.66,1607.38 5915.34,1632.57 6016.12,1682.96C6116.9,1733.35 6199.32,1805.03 6263.38,1898ZM3107.52,2915.19L3107.52,1640.19L2787.6,1640.19L2787.6,1780.81C2730.63,1723 2668.59,1679.64 2601.48,1650.73C2534.38,1621.83 2462.59,1607.38 2386.13,1607.38C2219.91,1607.38 2078.67,1670.27 1962.4,1796.05C1846.13,1921.83 1787.99,2083.16 1787.99,2280.03C1787.99,2469.88 1848.08,2628.66 1968.25,2756.4C2088.42,2884.13 2230.83,2948 2395.48,2948C2468.83,2948 2536.92,2934.91 2599.74,2908.74C2662.55,2882.57 2725.18,2839.8 2787.6,2780.42L2787.6,2915.19L3107.52,2915.19ZM3748.54,2915.19L3748.54,2780.42C3811.04,2839.8 3873.93,2882.57 3937.21,2908.74C4000.49,2934.91 4068.85,2948 4142.29,2948C4307.13,2948 4449.71,2884.13 4570.02,2756.4C4690.34,2628.66 4750.49,2469.88 4750.49,2280.03C4750.49,2083.16 4692.29,1921.83 4575.88,1796.05C4459.48,1670.27 4318.07,1607.38 4151.66,1607.38C4075.1,1607.38 4003.23,1621.83 3936.04,1650.73C3868.85,1679.64 3806.35,1723 3748.54,1780.81L3748.54,1148L3430.96,1148L3430.96,2915.19L3748.54,2915.19ZM2451.29,1902.69C2352.4,1902.69 2270.26,1937.65 2204.85,2007.57C2139.45,2077.49 2106.74,2167.14 2106.74,2276.52C2106.74,2386.67 2140.03,2477.3 2206.6,2548.39C2273.17,2619.48 2355.12,2655.03 2452.45,2655.03C2552.9,2655.03 2636.21,2620.07 2702.39,2550.15C2768.57,2480.23 2801.66,2388.63 2801.66,2275.34C2801.66,2164.41 2768.57,2074.56 2702.39,2005.81C2636.21,1937.06 2552.51,1902.69 2451.29,1902.69ZM4084.87,1902.69C3984.09,1902.69 3900.49,1937.06 3834.09,2005.81C3767.68,2074.56 3734.48,2164.41 3734.48,2275.34C3734.48,2388.63 3767.68,2480.23 3834.09,2550.15C3900.49,2620.07 3984.09,2655.03 4084.87,2655.03C4182.52,2655.03 4264.75,2619.48 4331.55,2548.39C4398.34,2477.3 4431.74,2386.67 4431.74,2276.52C4431.74,2167.14 4398.93,2077.49 4333.31,2007.57C4267.68,1937.65 4184.87,1902.69 4084.87,1902.69Z"/>
<path d="M7224.95,536.535L7224.95,3540.34L944.262,3540.58L944.262,1355.76L1771.56,536.535L7224.95,536.535ZM6263.38,1898L5997.06,2044.48C5946.99,1992.14 5897.52,1955.81 5848.63,1935.5C5799.74,1915.19 5742.45,1905.03 5676.75,1905.03C5557.07,1905.03 5460.28,1940.72 5386.36,2012.09C5312.45,2083.47 5275.49,2174.92 5275.49,2286.46C5275.49,2394.89 5311.08,2483.43 5382.26,2552.07C5453.44,2620.71 5546.91,2655.03 5662.67,2655.03C5805.82,2655.03 5917.28,2606.2 5997.06,2508.55L6249.32,2681.27C6112.6,2859.09 5919.63,2948 5670.41,2948C5446.19,2948 5270.61,2881.59 5143.66,2748.78C5016.7,2615.97 4953.23,2460.5 4953.23,2282.38C4953.23,2158.94 4984.09,2045.27 5045.81,1941.36C5107.52,1837.45 5193.66,1755.81 5304.2,1696.44C5414.75,1637.06 5538.38,1607.38 5675.1,1607.38C5801.66,1607.38 5915.34,1632.57 6016.12,1682.96C6116.9,1733.35 6199.32,1805.03 6263.38,1898ZM3107.52,2915.19L3107.52,1640.19L2787.6,1640.19L2787.6,1780.81C2730.63,1723 2668.59,1679.64 2601.48,1650.73C2534.38,1621.83 2462.59,1607.38 2386.13,1607.38C2219.91,1607.38 2078.67,1670.27 1962.4,1796.05C1846.13,1921.83 1787.99,2083.16 1787.99,2280.03C1787.99,2469.88 1848.08,2628.66 1968.25,2756.4C2088.42,2884.13 2230.83,2948 2395.48,2948C2468.83,2948 2536.92,2934.91 2599.74,2908.74C2662.55,2882.57 2725.18,2839.8 2787.6,2780.42L2787.6,2915.19L3107.52,2915.19ZM3748.54,2915.19L3748.54,2780.42C3811.04,2839.8 3873.93,2882.57 3937.21,2908.74C4000.49,2934.91 4068.85,2948 4142.29,2948C4307.13,2948 4449.71,2884.13 4570.02,2756.4C4690.34,2628.66 4750.49,2469.88 4750.49,2280.03C4750.49,2083.16 4692.29,1921.83 4575.88,1796.05C4459.48,1670.27 4318.07,1607.38 4151.66,1607.38C4075.1,1607.38 4003.23,1621.83 3936.04,1650.73C3868.85,1679.64 3806.35,1723 3748.54,1780.81L3748.54,1148L3430.96,1148L3430.96,2915.19L3748.54,2915.19ZM2451.29,1902.69C2352.4,1902.69 2270.26,1937.65 2204.85,2007.57C2139.45,2077.49 2106.74,2167.14 2106.74,2276.52C2106.74,2386.67 2140.03,2477.3 2206.6,2548.39C2273.17,2619.48 2355.12,2655.03 2452.45,2655.03C2552.9,2655.03 2636.21,2620.07 2702.39,2550.15C2768.57,2480.23 2801.66,2388.63 2801.66,2275.34C2801.66,2164.41 2768.57,2074.56 2702.39,2005.81C2636.21,1937.06 2552.51,1902.69 2451.29,1902.69ZM4084.87,1902.69C3984.09,1902.69 3900.49,1937.06 3834.09,2005.81C3767.68,2074.56 3734.48,2164.41 3734.48,2275.34C3734.48,2388.63 3767.68,2480.23 3834.09,2550.15C3900.49,2620.07 3984.09,2655.03 4084.87,2655.03C4182.52,2655.03 4264.75,2619.48 4331.55,2548.39C4398.34,2477.3 4431.74,2386.67 4431.74,2276.52C4431.74,2167.14 4398.93,2077.49 4333.31,2007.57C4267.68,1937.65 4184.87,1902.69 4084.87,1902.69Z"/>
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -1,62 +0,0 @@
[Icon Theme]
Name=dark
Comment=a dark icon set for use in light themes
Inherits=light
Directories=actions/11,actions/15,actions/16,actions/18,actions/20,actions/30,actions/35,actions/48,actions/60,actions/74,console/20,tools/18,tools/20,devices/20
[actions/11]
Size=11
Type=Scalable
[actions/15]
Size=15
Type=Scalable
[actions/16]
Size=16
Type=Scalable
[actions/18]
Size=18
Type=Scalable
[actions/20]
Size=20
Type=Scalable
[actions/30]
Size=30
Type=Scalable
[actions/35]
Size=35
Type=Scalable
[actions/48]
Size=48
Type=Scalable
[actions/60]
Size=60
Type=Scalable
[actions/74]
Size=74
Type=Scalable
[console/20]
Size=20
Type=Scalable
[tools/18]
Size=18
Type=Scalabe
[tools/20]
Size=20
Type=Scalabe
[devices/20]
Size=20
Type=Scalable

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(184,184,184);fill-opacity:0;"/>
<g id="page">
<g id="base" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57Z" style="fill:rgb(64,181,185);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M41,14L41,2L42,2L42,3L43,3L43,4L44,4L44,5L45,5L45,6L46,6L46,7L47,7L47,8L48,8L48,9L49,9L49,10L50,10L50,11L51,11L51,12L52,12L52,13L53,13L53,14L41,14Z" style="fill:rgb(173,225,226);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
<g id="outline" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill:rgb(24,91,93);"/>
</g>
<g transform="matrix(1,0,0,1,2,2)">
<path d="M21,42.259L21,24.5L38,19L38,39.5C38,41.984 35.984,44 33.5,44C31.016,44 29,41.984 29,39.5C29,37.016 31.016,35 33.5,35C34.425,35 35.285,35.279 36,35.759L36,23.927L23,28.214L23,45.5L22.972,45.5C22.991,45.664 23,45.831 23,46C23,48.484 20.984,50.5 18.5,50.5C16.016,50.5 14,48.484 14,46C14,43.516 16.016,41.5 18.5,41.5C19.425,41.5 20.285,41.779 21,42.259Z" style="fill-opacity:0.3;"/>
</g>
<g transform="matrix(1,0,0,1,2,1)">
<path d="M21,42.259L21,24.5L38,19L38,39.5C38,41.984 35.984,44 33.5,44C31.016,44 29,41.984 29,39.5C29,37.016 31.016,35 33.5,35C34.425,35 35.285,35.279 36,35.759L36,23.927L23,28.214L23,45.5L22.972,45.5C22.991,45.664 23,45.831 23,46C23,48.484 20.984,50.5 18.5,50.5C16.016,50.5 14,48.484 14,46C14,43.516 16.016,41.5 18.5,41.5C19.425,41.5 20.285,41.779 21,42.259Z" style="fill:white;"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill-opacity:0;"/>
<g transform="matrix(1,0,0,1,-1,1)">
<g id="page">
<g id="outline">
<g transform="matrix(1,0,0,1,1,0)">
<path d="M8,34L14.5,40.5L22,33L29.5,40.5L37,33L44.5,40.5L51,34L51,56L8,56L8,34ZM51,23L44.5,29.5L37,22L29.5,29.5L22,22L14.5,29.5L8,23L8,2L40,2L51,13L51,23Z" style="fill:rgb(228,228,228);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,1,0)">
<path d="M40,2L51,13L40,13L40,2Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
</g>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
<path d="M15,41L14,41L14,42L15,42L15,41ZM45,41L44,41L44,42L45,42L45,41ZM30,41L29,41L29,42L30,42L30,41ZM44,40L43,40L43,41L44,41L44,40ZM46,40L45,40L45,41L46,41L46,40ZM29,40L28,40L28,41L29,41L29,40ZM31,40L30,40L30,41L31,41L31,40ZM14,40L13,40L13,41L14,41L14,40ZM16,40L15,40L15,41L16,41L16,40ZM17,39L16,39L16,40L17,40L17,39ZM13,39L12,39L12,40L13,40L13,39ZM43,39L42,39L42,40L43,40L43,39ZM47,39L46,39L46,40L47,40L47,39ZM28,39L27,39L27,40L28,40L28,39ZM32,39L31,39L31,40L32,40L32,39ZM27,38L26,38L26,39L27,39L27,38ZM33,38L32,38L32,39L33,39L33,38ZM12,38L11,38L11,39L12,39L12,38ZM18,38L17,38L17,39L18,39L18,38ZM42,38L41,38L41,39L42,39L42,38ZM48,38L47,38L47,39L48,39L48,38ZM41,37L40,37L40,38L41,38L41,37ZM49,37L48,37L48,38L49,38L49,37ZM26,37L25,37L25,38L26,38L26,37ZM34,37L33,37L33,38L34,38L34,37ZM11,37L10,37L10,38L11,38L11,37ZM19,37L18,37L18,38L19,38L19,37ZM20,36L19,36L19,37L20,37L20,36ZM10,36L9,36L9,37L10,37L10,36ZM35,36L34,36L34,37L35,37L35,36ZM25,36L24,36L24,37L25,37L25,36ZM40,36L39,36L39,37L40,37L40,36ZM50,36L49,36L49,37L50,37L50,36ZM39,35L38,35L38,36L39,36L39,35ZM24,35L23,35L23,36L24,36L24,35ZM36,35L35,35L35,36L36,36L36,35ZM8,57L51,57L51,36L50,36L50,35L51,35L51,34L52,34L52,58L7,58L7,34L8,34L8,35L9,35L9,36L8,36L8,57ZM21,35L20,35L20,36L21,36L21,35ZM36,35L36,34L38,34L38,35L36,35ZM23,34L23,35L21,35L21,34L23,34ZM15,30L14,30L14,31L15,31L15,30ZM30,30L29,30L29,31L30,31L30,30ZM45,30L44,30L44,31L45,31L45,30ZM16,29L15,29L15,30L16,30L16,29ZM29,29L28,29L28,30L29,30L29,29ZM14,29L13,29L13,30L14,30L14,29ZM31,29L30,29L30,30L31,30L31,29ZM46,29L45,29L45,30L46,30L46,29ZM44,29L43,29L43,30L44,30L44,29ZM43,28L42,28L42,29L43,29L43,28ZM13,28L12,28L12,29L13,29L13,28ZM17,28L16,28L16,29L17,29L17,28ZM32,28L31,28L31,29L32,29L32,28ZM28,28L27,28L27,29L28,29L28,28ZM47,28L46,28L46,29L47,29L47,28ZM42,27L41,27L41,28L42,28L42,27ZM48,27L47,27L47,28L48,28L48,27ZM18,27L17,27L17,28L18,28L18,27ZM12,27L11,27L11,28L12,28L12,27ZM27,27L26,27L26,28L27,28L27,27ZM33,27L32,27L32,28L33,28L33,27ZM41,26L40,26L40,27L41,27L41,26ZM49,26L48,26L48,27L49,27L49,26ZM26,26L25,26L25,27L26,27L26,26ZM34,26L33,26L33,27L34,27L34,26ZM11,26L10,26L10,27L11,27L11,26ZM19,26L18,26L18,27L19,27L19,26ZM20,25L19,25L19,26L20,26L20,25ZM10,25L9,25L9,26L10,26L10,25ZM35,25L34,25L34,26L35,26L35,25ZM25,25L24,25L24,26L25,26L25,25ZM50,25L49,25L49,26L50,26L50,25ZM40,25L39,25L39,26L40,26L40,25ZM51,24L50,24L50,25L51,25L51,24ZM39,24L38,24L38,25L39,25L39,24ZM9,24L8,24L8,25L9,25L9,24ZM36,24L35,24L35,25L36,25L36,24ZM24,24L23,24L23,25L24,25L24,24ZM21,24L20,24L20,25L21,25L21,24ZM51,14L40,3L8,3L8,24L7,24L7,2L41,2L41,3L42,3L42,4L43,4L43,5L44,5L44,6L45,6L45,7L46,7L46,8L47,8L47,9L48,9L48,10L49,10L49,11L50,11L50,12L51,12L51,13L52,13L52,24L51,24L51,14ZM23,23L23,24L21,24L21,23L23,23ZM36,24L36,23L38,23L38,24L36,24Z" style="fill:rgb(39,39,39);"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(59,59,59);fill-opacity:0;"/>
<g id="page">
<g id="base" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57Z" style="fill:rgb(72,121,52);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M41,14L41,2L42,2L42,3L43,3L43,4L44,4L44,5L45,5L45,6L46,6L46,7L47,7L47,8L48,8L48,9L49,9L49,10L50,10L50,11L51,11L51,12L52,12L52,13L53,13L53,14L41,14Z" style="fill:rgb(150,206,127);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
<g id="outline" transform="matrix(1,0,0,1,-1,1)">
<g transform="matrix(1,0,0,0.947836,8.71586,16.3208)">
<g transform="matrix(13,0,0,13.1217,9.77559,38.544)">
<path d="M0.575,-0.029C0.522,-0.002 0.456,0.012 0.378,0.012C0.276,0.012 0.195,-0.02 0.134,-0.084C0.073,-0.149 0.042,-0.233 0.042,-0.337C0.042,-0.449 0.076,-0.539 0.145,-0.608C0.214,-0.677 0.301,-0.712 0.406,-0.712C0.474,-0.712 0.53,-0.702 0.575,-0.683L0.575,-0.568C0.528,-0.596 0.475,-0.61 0.418,-0.61C0.343,-0.61 0.281,-0.586 0.234,-0.537C0.187,-0.489 0.164,-0.424 0.164,-0.343C0.164,-0.266 0.186,-0.204 0.229,-0.158C0.273,-0.113 0.331,-0.09 0.403,-0.09C0.469,-0.09 0.526,-0.105 0.575,-0.137L0.575,-0.029Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(13,0,0,13.561,18.0832,38.6978)">
<path d="M0.474,0L0.086,0L0.086,-0.7L0.203,-0.7L0.203,-0.098L0.474,-0.098L0.474,0Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(12.1579,0,0,13.561,24.9773,38.6978)">
<path d="M0.68,0L0.553,0L0.219,-0.515C0.21,-0.528 0.203,-0.541 0.198,-0.555L0.195,-0.555C0.197,-0.54 0.199,-0.508 0.199,-0.459L0.199,0L0.086,0L0.086,-0.7L0.222,-0.7L0.545,-0.198C0.559,-0.177 0.567,-0.163 0.571,-0.155L0.573,-0.155C0.57,-0.173 0.568,-0.205 0.568,-0.249L0.568,-0.7L0.68,-0.7L0.68,0Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
</g>
<g>
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill:rgb(33,63,21);"/>
</g>
<g transform="matrix(1,0,0,0.947836,8.71586,15.3208)">
<g transform="matrix(13,0,0,13.1217,9.77559,38.544)">
<path d="M0.575,-0.029C0.522,-0.002 0.456,0.012 0.378,0.012C0.276,0.012 0.195,-0.02 0.134,-0.084C0.073,-0.149 0.042,-0.233 0.042,-0.337C0.042,-0.449 0.076,-0.539 0.145,-0.608C0.214,-0.677 0.301,-0.712 0.406,-0.712C0.474,-0.712 0.53,-0.702 0.575,-0.683L0.575,-0.568C0.528,-0.596 0.475,-0.61 0.418,-0.61C0.343,-0.61 0.281,-0.586 0.234,-0.537C0.187,-0.489 0.164,-0.424 0.164,-0.343C0.164,-0.266 0.186,-0.204 0.229,-0.158C0.273,-0.113 0.331,-0.09 0.403,-0.09C0.469,-0.09 0.526,-0.105 0.575,-0.137L0.575,-0.029Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(13,0,0,13.561,18.0832,38.6978)">
<path d="M0.474,0L0.086,0L0.086,-0.7L0.203,-0.7L0.203,-0.098L0.474,-0.098L0.474,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(12.1579,0,0,13.561,24.9773,38.6978)">
<path d="M0.68,0L0.553,0L0.219,-0.515C0.21,-0.528 0.203,-0.541 0.198,-0.555L0.195,-0.555C0.197,-0.54 0.199,-0.508 0.199,-0.459L0.199,0L0.086,0L0.086,-0.7L0.222,-0.7L0.545,-0.198C0.559,-0.177 0.567,-0.163 0.571,-0.155L0.573,-0.155C0.57,-0.173 0.568,-0.205 0.568,-0.249L0.568,-0.7L0.68,-0.7L0.68,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
</g>
<g transform="matrix(1.22828,0,0,1.20913,-6.96115,-20.1923)">
<g transform="matrix(0.564739,0,0,0.564739,13.9574,18.7774)">
<g>
<path d="M33.862,42.304C35.557,39.628 35.78,37.025 33.29,34.535C30.799,32.045 27.505,32.22 25.605,34.083C22.136,36.502 18.621,38.391 14.343,39.046C13.863,39.526 14.445,40.916 14.445,40.916C17.154,40.74 21.227,39.813 23.46,38.361C20.341,41.498 18.501,42.948 16.149,44.035C16.149,44.035 16.205,44.113 16.233,44.152C16.615,44.678 17.386,45.7 17.386,45.7C18.587,45.349 20.682,44.465 21.695,43.551C21.066,44.717 19.641,46.155 18.637,46.947C18.637,46.947 22.43,50.792 24.446,52.18C24.525,52.236 24.662,52.362 24.715,52.283C26.411,49.781 28.298,47.896 28.283,47.939C28.227,48.103 26.838,50.53 26.885,53.526C26.885,53.526 28.33,53.93 28.779,53.481C29.792,49.942 31.647,45.353 33.862,42.304ZM35.299,30.017L40.961,24.355C41.652,23.664 42.774,23.664 43.465,24.355C44.156,25.046 44.156,26.168 43.465,26.859L37.803,32.521C38.488,33.957 37.905,36.224 37.228,37.661C37.23,36.022 36.55,34.413 34.978,32.842C33.5,31.363 31.787,30.659 30.153,30.593C31.593,29.914 33.862,29.331 35.299,30.017Z" style="fill-opacity:0.3;"/>
</g>
</g>
<g transform="matrix(0.564739,0,0,0.564739,13.9574,18.7774)">
<g>
<path d="M42.611,44.082L40.966,47.017C40.902,47.133 40.868,47.262 40.868,47.395C40.868,47.528 40.902,47.657 40.967,47.772L42.61,50.707L39.675,49.064C39.56,48.999 39.431,48.965 39.298,48.965C39.165,48.965 39.036,48.999 38.92,49.063L35.985,50.708L37.629,47.772C37.694,47.657 37.727,47.526 37.728,47.395C37.728,47.262 37.693,47.132 37.629,47.018L35.985,44.082L38.921,45.726C39.035,45.79 39.165,45.825 39.298,45.825C39.429,45.823 39.56,45.791 39.675,45.726L42.611,44.082ZM24.408,24.574L22.763,27.509C22.699,27.626 22.665,27.755 22.665,27.887C22.665,28.02 22.699,28.149 22.764,28.264L24.407,31.199L21.472,29.556C21.357,29.491 21.228,29.458 21.095,29.458C20.962,29.458 20.833,29.491 20.717,29.555L17.782,31.2L19.426,28.264C19.491,28.149 19.524,28.019 19.525,27.887C19.525,27.755 19.49,27.625 19.426,27.511L17.782,24.574L20.718,26.218C20.832,26.282 20.962,26.317 21.095,26.317C21.227,26.316 21.357,26.284 21.472,26.218L24.408,24.574Z" style="fill-opacity:0.3;"/>
</g>
</g>
</g>
<g transform="matrix(1.22828,0,0,1.20913,-6.96115,-21.1923)">
<g transform="matrix(0.564739,0,0,0.564739,13.9574,18.7774)">
<g>
<path d="M33.862,42.304C35.557,39.628 35.78,37.025 33.29,34.535C30.799,32.045 27.505,32.22 25.605,34.083C22.136,36.502 18.621,38.391 14.343,39.046C13.863,39.526 14.445,40.916 14.445,40.916C17.154,40.74 21.227,39.813 23.46,38.361C20.341,41.498 18.501,42.948 16.149,44.035C16.149,44.035 16.205,44.113 16.233,44.152C16.615,44.678 17.386,45.7 17.386,45.7C18.587,45.349 20.682,44.465 21.695,43.551C21.066,44.717 19.641,46.155 18.637,46.947C18.637,46.947 22.43,50.792 24.446,52.18C24.525,52.236 24.662,52.362 24.715,52.283C26.411,49.781 28.298,47.896 28.283,47.939C28.227,48.103 26.838,50.53 26.885,53.526C26.885,53.526 28.33,53.93 28.779,53.481C29.792,49.942 31.647,45.353 33.862,42.304ZM35.299,30.017L40.961,24.355C41.652,23.664 42.774,23.664 43.465,24.355C44.156,25.046 44.156,26.168 43.465,26.859L37.803,32.521C38.488,33.957 37.905,36.224 37.228,37.661C37.23,36.022 36.55,34.413 34.978,32.842C33.5,31.363 31.787,30.659 30.153,30.593C31.593,29.914 33.862,29.331 35.299,30.017Z" style="fill:white;"/>
</g>
</g>
<g transform="matrix(0.564739,0,0,0.564739,13.9574,18.7774)">
<g>
<path d="M42.611,44.082L40.966,47.017C40.902,47.133 40.868,47.262 40.868,47.395C40.868,47.528 40.902,47.657 40.967,47.772L42.61,50.707L39.675,49.064C39.56,48.999 39.431,48.965 39.298,48.965C39.165,48.965 39.036,48.999 38.92,49.063L35.985,50.708L37.629,47.772C37.694,47.657 37.727,47.526 37.728,47.395C37.728,47.262 37.693,47.132 37.629,47.018L35.985,44.082L38.921,45.726C39.035,45.79 39.165,45.825 39.298,45.825C39.429,45.823 39.56,45.791 39.675,45.726L42.611,44.082ZM24.408,24.574L22.763,27.509C22.699,27.626 22.665,27.755 22.665,27.887C22.665,28.02 22.699,28.149 22.764,28.264L24.407,31.199L21.472,29.556C21.357,29.491 21.228,29.458 21.095,29.458C20.962,29.458 20.833,29.491 20.717,29.555L17.782,31.2L19.426,28.264C19.491,28.149 19.524,28.019 19.525,27.887C19.525,27.755 19.49,27.625 19.426,27.511L17.782,24.574L20.718,26.218C20.832,26.282 20.962,26.317 21.095,26.317C21.227,26.316 21.357,26.284 21.472,26.218L24.408,24.574Z" style="fill:white;"/>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.9 KiB

View file

@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(184,184,184);fill-opacity:0;"/>
<g id="page">
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57Z" style="fill:rgb(72,121,52);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M41,14L41,2L42,2L42,3L43,3L43,4L44,4L44,5L45,5L45,6L46,6L46,7L47,7L47,8L48,8L48,9L49,9L49,10L50,10L50,11L51,11L51,12L52,12L52,13L53,13L53,14L41,14Z" style="fill:rgb(150,206,127);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill:rgb(33,63,21);"/>
</g>
<g transform="matrix(1,0,0,1,0,-12)">
<path d="M46,52L13,52L13,31L46,31L46,52ZM15,45L15,50L20,50L20,45L15,45ZM21,45L21,50L26,50L26,45L21,45ZM27,45L27,50L32,50L32,45L27,45ZM33,45L33,50L38,50L38,45L33,45ZM39,45L39,50L44,50L44,45L39,45ZM15,39L15,44L20,44L20,39L15,39ZM21,39L21,44L26,44L26,39L21,39ZM27,39L27,44L32,44L32,39L27,39ZM33,39L33,44L38,44L38,39L33,39ZM39,39L39,44L44,44L44,39L39,39ZM15,33L15,38L20,38L20,33L15,33ZM21,33L21,38L26,38L26,33L21,33ZM27,33L27,38L32,38L32,33L27,33ZM33,33L33,38L38,38L38,33L33,33ZM39,33L39,38L44,38L44,33L39,33Z" style="fill-opacity:0.5;"/>
</g>
<g>
<path d="M44,38.056C39.45,37.996 36.227,37.2 34.419,36.056C32.783,35.021 28.941,30.642 26.204,27.851C21.956,23.52 15.328,24.083 15.328,24.083C15.216,24.092 15.106,24.088 15,24.074L15,21.102C15.028,21.098 15.056,21.095 15.085,21.093C15.085,21.093 23.283,20.343 28.346,25.751C32.257,29.928 34.225,32.272 36.098,33.57C37.533,34.564 40.735,35.035 44,35.204L44,38.056Z" style="fill:rgb(255,127,33);"/>
</g>
<g transform="matrix(1,0,0,1.0221,-1.32985,2.89295)">
<g transform="matrix(11.2123,0,0,10.8163,13.886,49.8752)">
<path d="M0.575,-0.029C0.522,-0.002 0.456,0.012 0.378,0.012C0.276,0.012 0.195,-0.02 0.134,-0.084C0.073,-0.149 0.042,-0.233 0.042,-0.337C0.042,-0.449 0.076,-0.539 0.145,-0.608C0.214,-0.677 0.301,-0.712 0.406,-0.712C0.474,-0.712 0.53,-0.702 0.575,-0.683L0.575,-0.568C0.528,-0.596 0.475,-0.61 0.418,-0.61C0.343,-0.61 0.281,-0.586 0.234,-0.537C0.187,-0.489 0.164,-0.424 0.164,-0.343C0.164,-0.266 0.186,-0.204 0.229,-0.158C0.273,-0.113 0.331,-0.09 0.403,-0.09C0.469,-0.09 0.526,-0.105 0.575,-0.137L0.575,-0.029Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,10.9382,20.9705,49.8338)">
<path d="M0.625,-0.283C0.625,-0.087 0.532,0.012 0.346,0.012C0.167,0.012 0.078,-0.083 0.078,-0.272L0.078,-0.7L0.194,-0.7L0.194,-0.296C0.194,-0.159 0.248,-0.09 0.354,-0.09C0.457,-0.09 0.509,-0.156 0.509,-0.289L0.509,-0.7L0.625,-0.7L0.625,-0.283Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11.1783,28.4614,50.002)">
<path d="M0.627,0L0.492,0L0.38,-0.188C0.37,-0.205 0.36,-0.219 0.35,-0.232C0.341,-0.244 0.331,-0.254 0.321,-0.262C0.311,-0.27 0.3,-0.275 0.289,-0.279C0.277,-0.282 0.264,-0.284 0.249,-0.284L0.202,-0.284L0.202,0L0.086,0L0.086,-0.7L0.317,-0.7C0.35,-0.7 0.38,-0.696 0.408,-0.688C0.435,-0.681 0.459,-0.669 0.48,-0.653C0.5,-0.637 0.517,-0.618 0.528,-0.594C0.54,-0.57 0.545,-0.543 0.545,-0.511C0.545,-0.486 0.542,-0.464 0.534,-0.443C0.527,-0.422 0.517,-0.404 0.503,-0.388C0.49,-0.372 0.473,-0.358 0.454,-0.347C0.435,-0.335 0.414,-0.326 0.39,-0.32L0.39,-0.318C0.403,-0.311 0.414,-0.303 0.423,-0.295C0.433,-0.286 0.442,-0.277 0.45,-0.268C0.459,-0.259 0.467,-0.249 0.475,-0.237C0.484,-0.226 0.493,-0.212 0.503,-0.197L0.627,0ZM0.202,-0.606L0.202,-0.378L0.299,-0.378C0.317,-0.378 0.333,-0.381 0.348,-0.387C0.364,-0.392 0.377,-0.4 0.388,-0.411C0.399,-0.421 0.407,-0.434 0.414,-0.449C0.42,-0.464 0.423,-0.48 0.423,-0.499C0.423,-0.533 0.412,-0.559 0.391,-0.578C0.37,-0.597 0.34,-0.606 0.3,-0.606L0.202,-0.606Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11.1783,35.3421,50.002)">
<path d="M0.635,-0.7L0.384,0L0.254,0L0.007,-0.7L0.134,-0.7L0.307,-0.169C0.312,-0.152 0.316,-0.132 0.319,-0.11L0.321,-0.11C0.324,-0.128 0.328,-0.148 0.335,-0.17L0.512,-0.7L0.635,-0.7Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11.1783,42.3671,50.002)">
<path d="M0.479,0L0.086,0L0.086,-0.7L0.464,-0.7L0.464,-0.602L0.203,-0.602L0.203,-0.403L0.443,-0.403L0.443,-0.305L0.203,-0.305L0.203,-0.098L0.479,-0.098L0.479,0Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
</g>
<g transform="matrix(1,0,0,1.0221,-1.32985,1.89295)">
<g transform="matrix(11.2123,0,0,10.8163,13.886,49.8752)">
<path d="M0.575,-0.029C0.522,-0.002 0.456,0.012 0.378,0.012C0.276,0.012 0.195,-0.02 0.134,-0.084C0.073,-0.149 0.042,-0.233 0.042,-0.337C0.042,-0.449 0.076,-0.539 0.145,-0.608C0.214,-0.677 0.301,-0.712 0.406,-0.712C0.474,-0.712 0.53,-0.702 0.575,-0.683L0.575,-0.568C0.528,-0.596 0.475,-0.61 0.418,-0.61C0.343,-0.61 0.281,-0.586 0.234,-0.537C0.187,-0.489 0.164,-0.424 0.164,-0.343C0.164,-0.266 0.186,-0.204 0.229,-0.158C0.273,-0.113 0.331,-0.09 0.403,-0.09C0.469,-0.09 0.526,-0.105 0.575,-0.137L0.575,-0.029Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,10.9382,20.9705,49.8338)">
<path d="M0.625,-0.283C0.625,-0.087 0.532,0.012 0.346,0.012C0.167,0.012 0.078,-0.083 0.078,-0.272L0.078,-0.7L0.194,-0.7L0.194,-0.296C0.194,-0.159 0.248,-0.09 0.354,-0.09C0.457,-0.09 0.509,-0.156 0.509,-0.289L0.509,-0.7L0.625,-0.7L0.625,-0.283Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11.1783,28.4614,50.002)">
<path d="M0.627,0L0.492,0L0.38,-0.188C0.37,-0.205 0.36,-0.219 0.35,-0.232C0.341,-0.244 0.331,-0.254 0.321,-0.262C0.311,-0.27 0.3,-0.275 0.289,-0.279C0.277,-0.282 0.264,-0.284 0.249,-0.284L0.202,-0.284L0.202,0L0.086,0L0.086,-0.7L0.317,-0.7C0.35,-0.7 0.38,-0.696 0.408,-0.688C0.435,-0.681 0.459,-0.669 0.48,-0.653C0.5,-0.637 0.517,-0.618 0.528,-0.594C0.54,-0.57 0.545,-0.543 0.545,-0.511C0.545,-0.486 0.542,-0.464 0.534,-0.443C0.527,-0.422 0.517,-0.404 0.503,-0.388C0.49,-0.372 0.473,-0.358 0.454,-0.347C0.435,-0.335 0.414,-0.326 0.39,-0.32L0.39,-0.318C0.403,-0.311 0.414,-0.303 0.423,-0.295C0.433,-0.286 0.442,-0.277 0.45,-0.268C0.459,-0.259 0.467,-0.249 0.475,-0.237C0.484,-0.226 0.493,-0.212 0.503,-0.197L0.627,0ZM0.202,-0.606L0.202,-0.378L0.299,-0.378C0.317,-0.378 0.333,-0.381 0.348,-0.387C0.364,-0.392 0.377,-0.4 0.388,-0.411C0.399,-0.421 0.407,-0.434 0.414,-0.449C0.42,-0.464 0.423,-0.48 0.423,-0.499C0.423,-0.533 0.412,-0.559 0.391,-0.578C0.37,-0.597 0.34,-0.606 0.3,-0.606L0.202,-0.606Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11.1783,35.3421,50.002)">
<path d="M0.635,-0.7L0.384,0L0.254,0L0.007,-0.7L0.134,-0.7L0.307,-0.169C0.312,-0.152 0.316,-0.132 0.319,-0.11L0.321,-0.11C0.324,-0.128 0.328,-0.148 0.335,-0.17L0.512,-0.7L0.635,-0.7Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11.1783,42.3671,50.002)">
<path d="M0.479,0L0.086,0L0.086,-0.7L0.464,-0.7L0.464,-0.602L0.203,-0.602L0.203,-0.403L0.443,-0.403L0.443,-0.305L0.203,-0.305L0.203,-0.098L0.479,-0.098L0.479,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.1 KiB

View file

@ -1,110 +0,0 @@
<?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"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="60px"
height="60px"
version="1.1"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"
id="svg44"
sodipodi:docname="json_icon.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
id="metadata50"><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="defs48">
</defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1273"
inkscape:window-height="826"
id="namedview46"
showgrid="false"
showguides="false"
inkscape:zoom="3.9333333"
inkscape:cx="0.69877966"
inkscape:cy="48.877998"
inkscape:window-x="458"
inkscape:window-y="28"
inkscape:window-maximized="0"
inkscape:current-layer="svg44" />
<rect
x="0"
y="0"
width="60"
height="60"
style="fill:rgb(184,184,184);fill-opacity:0;"
id="rect2" />
<path
d="M 52,58 H 7 V 2 h 34 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 z"
style="fill:#a2e5db;fill-rule:nonzero;fill-opacity:1;stroke:none"
id="path4"
inkscape:connector-curvature="0" /><path
d="M 40,14 V 2 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 z"
style="fill:#cfecef;fill-rule:nonzero;fill-opacity:1"
id="path7"
inkscape:connector-curvature="0" /><g
id="g13"
transform="translate(-1,1)">
<path
inkscape:connector-curvature="0"
id="path11"
style="fill-opacity:0.25"
d="M 41,13 H 52 V 24 Z" />
</g><path
d="M 52,58 H 7 V 2 h 34 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 z M 40,3 H 8 V 57 H 51 V 14 Z"
style="fill:#3a839a;fill-opacity:1"
id="path15"
inkscape:connector-curvature="0" />
<g
aria-label="JSON"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
id="text884"><path
d="m 15.929203,42.828612 h 1.920573 v 6.041667 q 0,1.184896 -0.208334,1.822916 -0.279947,0.833334 -1.015625,1.341146 -0.735677,0.501302 -1.940104,0.501302 -1.41276,0 -2.174479,-0.78776 -0.761718,-0.794271 -0.768229,-2.324219 l 1.816406,-0.208333 q 0.03255,0.820312 0.240886,1.158854 0.3125,0.514323 0.950521,0.514323 0.644531,0 0.911458,-0.364583 0.266927,-0.371094 0.266927,-1.529948 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.33333302px;font-family:Arial;-inkscape-font-specification:'Arial Bold'"
id="path890" /><path
d="m 19.418786,49.267414 1.875,-0.182291 q 0.169271,0.94401 0.683594,1.386718 0.520833,0.442709 1.39974,0.442709 0.930989,0 1.399739,-0.390625 0.475261,-0.397136 0.475261,-0.92448 0,-0.338541 -0.201823,-0.572916 -0.195313,-0.240886 -0.690105,-0.416667 -0.338541,-0.117187 -1.542968,-0.416667 -1.549479,-0.384114 -2.174479,-0.94401 -0.878907,-0.78776 -0.878907,-1.920573 0,-0.729166 0.410157,-1.360677 0.416666,-0.638021 1.191406,-0.970052 0.78125,-0.332031 1.88151,-0.332031 1.796875,0 2.701823,0.78776 0.911458,0.787761 0.957031,2.102865 l -1.927083,0.08463 q -0.123698,-0.735677 -0.533854,-1.054687 -0.403646,-0.325521 -1.217448,-0.325521 -0.839844,0 -1.315104,0.345052 -0.30599,0.221354 -0.30599,0.592448 0,0.338542 0.286459,0.579427 0.364583,0.305989 1.770833,0.638021 1.40625,0.332031 2.076823,0.690104 0.677083,0.351562 1.054687,0.970052 0.384115,0.611979 0.384115,1.516927 0,0.820312 -0.455729,1.536458 -0.455729,0.716146 -1.289063,1.067709 -0.833333,0.345052 -2.076823,0.345052 -1.809895,0 -2.779948,-0.833334 -0.970052,-0.839843 -1.158854,-2.441406 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.33333302px;font-family:Arial;-inkscape-font-specification:'Arial Bold'"
id="path892" /><path
d="m 28.422693,47.659341 q 0,-1.458333 0.436198,-2.447916 0.32552,-0.729167 0.885416,-1.308594 0.566406,-0.579427 1.236979,-0.859375 0.891927,-0.377604 2.057292,-0.377604 2.109375,0 3.372396,1.308594 1.269531,1.308593 1.269531,3.639322 0,2.311198 -1.256511,3.619792 -1.25651,1.302083 -3.359374,1.302083 -2.128907,0 -3.385417,-1.295573 -1.25651,-1.302083 -1.25651,-3.580729 z m 1.985677,-0.0651 q 0,1.621094 0.748698,2.460938 0.748697,0.833333 1.901041,0.833333 1.152344,0 1.888021,-0.826823 0.742187,-0.833333 0.742187,-2.49349 0,-1.640625 -0.722656,-2.447916 -0.716146,-0.807292 -1.907552,-0.807292 -1.191406,0 -1.920573,0.820313 -0.729166,0.813802 -0.729166,2.460937 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.33333302px;font-family:Arial;-inkscape-font-specification:'Arial Bold'"
id="path894" /><path
d="m 39.197431,52.372883 v -9.544271 h 1.875 l 3.90625,6.373698 v -6.373698 h 1.790364 v 9.544271 h -1.933593 l -3.847657,-6.223958 v 6.223958 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.33333302px;font-family:Arial;-inkscape-font-specification:'Arial Bold'"
id="path896" /></g><g
aria-label="{;}"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
id="text888"><path
d="m 25.14849,36.250741 h -1.5625 q -1.864583,0 -3.03125,-1.041666 -1.15625,-1.03125 -1.15625,-2.989584 v -1.552083 q 0,-1.760417 -0.864583,-2.75 -0.864584,-1 -2.645834,-1 h -0.53125 v -1.625 h 0.53125 q 1.78125,0 2.645834,-0.989584 0.864583,-1 0.864583,-2.760416 v -1.552084 q 0,-1.958333 1.15625,-2.989583 1.166667,-1.041667 3.03125,-1.041667 h 1.5625 v 1.4375 h -1.1875 q -1.416666,0 -2.0625,0.65625 -0.635416,0.65625 -0.635416,2.114584 v 1.822916 q 0,1.447917 -0.802084,2.4375 -0.802083,0.979167 -2.229167,1.552084 v 0.25 q 1.427084,0.572916 2.229167,1.5625 0.802084,0.979167 0.802084,2.427083 v 1.822917 q 0,1.458333 0.635416,2.114583 0.645834,0.65625 2.0625,0.65625 h 1.1875 z"
style="font-size:21.33333397px"
id="path899" /><path
d="m 30.902022,23.500741 h -2.489584 v -2.96875 h 2.489584 z m 0.760416,5.697917 -2.9375,6.822917 h -1.520833 l 1.8125,-6.822917 z"
style="font-size:21.33333397px"
id="path901" /><path
d="m 43.205342,26.917408 h -0.53125 q -1.78125,0 -2.645833,1 -0.864584,0.989583 -0.864584,2.75 v 1.552083 q 0,1.958334 -1.166666,2.989584 -1.156251,1.041666 -3.020834,1.041666 h -1.5625 v -1.4375 h 1.1875 q 1.416667,0 2.052083,-0.65625 0.645834,-0.65625 0.645834,-2.114583 v -1.822917 q 0,-1.447916 0.802083,-2.427083 0.802084,-0.989584 2.229167,-1.5625 v -0.25 q -1.427083,-0.572917 -2.229167,-1.552084 -0.802083,-0.989583 -0.802083,-2.4375 v -1.822916 q 0,-1.458334 -0.645834,-2.114584 -0.635416,-0.65625 -2.052083,-0.65625 h -1.1875 v -1.4375 h 1.5625 q 1.864583,0 3.020834,1.041667 1.166666,1.03125 1.166666,2.989583 v 1.552084 q 0,1.760416 0.864584,2.760416 0.864583,0.989584 2.645833,0.989584 h 0.53125 z"
style="font-size:21.33333397px"
id="path903" /></g></svg>

Before

Width:  |  Height:  |  Size: 7.7 KiB

View file

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(59,59,59);fill-opacity:0;"/>
<g id="page">
<g id="outline" transform="matrix(1,0,0,1,-1,1)">
<g transform="matrix(1,0,0,1,1,0)">
<path d="M40,2L8,2L8,56L51,56L51,13L40,2Z" style="fill:rgb(228,228,228);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,1,0)">
<path d="M40,2L51,13L40,13L40,2Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill-opacity:0.6;"/>
</g>
<g transform="matrix(0.943825,0,0,0.871141,2.60099,0.57182)">
<path d="M26.38,23.595C26.82,22.794 27.627,22.302 28.5,22.302C29.373,22.302 30.18,22.794 30.62,23.595C33.912,29.584 40.217,41.056 43.529,47.082C43.971,47.888 43.975,48.883 43.537,49.692C43.099,50.501 42.287,51 41.408,51L15.592,51C14.713,51 13.901,50.501 13.463,49.692C13.025,48.883 13.029,47.888 13.471,47.082C16.783,41.056 23.088,29.584 26.38,23.595Z" style="fill-opacity:0.7;"/>
</g>
<g transform="matrix(16,0,0,16,24.96,42.068)">
<path d="M0.367,-0.185L0.242,-0.185L0.242,-0.217C0.242,-0.258 0.248,-0.291 0.262,-0.317C0.275,-0.343 0.302,-0.372 0.342,-0.405C0.382,-0.437 0.406,-0.459 0.414,-0.469C0.426,-0.485 0.432,-0.502 0.432,-0.521C0.432,-0.548 0.421,-0.571 0.4,-0.59C0.378,-0.609 0.35,-0.619 0.313,-0.619C0.279,-0.619 0.25,-0.609 0.226,-0.589C0.203,-0.569 0.187,-0.539 0.178,-0.498L0.052,-0.514C0.055,-0.572 0.08,-0.621 0.126,-0.662C0.172,-0.703 0.233,-0.723 0.308,-0.723C0.386,-0.723 0.449,-0.703 0.496,-0.661C0.542,-0.62 0.565,-0.572 0.565,-0.518C0.565,-0.487 0.557,-0.459 0.54,-0.432C0.523,-0.405 0.486,-0.368 0.43,-0.321C0.401,-0.297 0.383,-0.278 0.376,-0.263C0.369,-0.249 0.366,-0.222 0.367,-0.185ZM0.242,0L0.242,-0.137L0.379,-0.137L0.379,0L0.242,0Z" style="fill-opacity:0.25;fill-rule:nonzero;"/>
</g>
<g transform="matrix(16,0,0,16,24.96,41.068)">
<path d="M0.367,-0.185L0.242,-0.185L0.242,-0.217C0.242,-0.258 0.248,-0.291 0.262,-0.317C0.275,-0.343 0.302,-0.372 0.342,-0.405C0.382,-0.437 0.406,-0.459 0.414,-0.469C0.426,-0.485 0.432,-0.502 0.432,-0.521C0.432,-0.548 0.421,-0.571 0.4,-0.59C0.378,-0.609 0.35,-0.619 0.313,-0.619C0.279,-0.619 0.25,-0.609 0.226,-0.589C0.203,-0.569 0.187,-0.539 0.178,-0.498L0.052,-0.514C0.055,-0.572 0.08,-0.621 0.126,-0.662C0.172,-0.703 0.233,-0.723 0.308,-0.723C0.386,-0.723 0.449,-0.703 0.496,-0.661C0.542,-0.62 0.565,-0.572 0.565,-0.518C0.565,-0.487 0.557,-0.459 0.54,-0.432C0.523,-0.405 0.486,-0.368 0.43,-0.321C0.401,-0.297 0.383,-0.278 0.376,-0.263C0.369,-0.249 0.366,-0.222 0.367,-0.185ZM0.242,0L0.242,-0.137L0.379,-0.137L0.379,0L0.242,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(184,184,184);fill-opacity:0;"/>
<g id="page">
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57Z" style="fill:rgb(72,121,52);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M41,14L41,2L42,2L42,3L43,3L43,4L44,4L44,5L45,5L45,6L46,6L46,7L47,7L47,8L48,8L48,9L49,9L49,10L50,10L50,11L51,11L51,12L52,12L52,13L53,13L53,14L41,14Z" style="fill:rgb(150,206,127);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill:rgb(33,63,21);"/>
</g>
</g>
<g transform="matrix(0.884821,-0.237087,0.237087,0.884821,-4.15421,4.8312)">
<path d="M33.708,47.264L39.212,49.042L38.541,51.204L30.342,48.595C29.82,48.296 29.522,47.849 29.522,47.402C29.522,47.327 29.522,47.178 29.596,47.104L32.205,38.532L34.367,39.202L32.463,45.406C34.159,44.627 35.663,43.84 36.976,43.004L37.05,43.004L38.169,44.868C36.873,45.656 35.365,46.487 33.708,47.264ZM38.69,41.886C38.69,41.811 38.765,41.811 38.69,41.886C40.703,40.395 42.045,38.83 42.641,37.264L42.716,37.264L44.728,38.084L44.728,38.159C43.908,40.097 42.343,41.886 40.032,43.675L39.958,43.675L38.69,41.886ZM41.333,29.152C42.743,29.681 44.509,30.952 45.101,33.985L45.101,34.134C45.175,34.357 45.25,34.879 45.25,35.475L45.25,35.55L43.088,35.55L43.088,35.475C43.088,35.028 43.014,34.73 43.014,34.655C43.014,34.581 42.939,34.506 42.939,34.357C42.717,33.544 42.349,31.996 40.523,31.171L40.479,31.152L41.225,29.139L41.299,29.139L41.333,29.152ZM14.017,30.928L15.583,29.438C16.03,29.885 16.701,30.332 17.446,30.63C18.042,30.854 18.639,31.003 18.713,31.003L18.788,31.003C19.086,31.003 19.608,31.077 20.502,31.077L20.95,31.077L20.95,33.239L20.428,33.239C19.459,33.239 18.788,33.239 18.564,33.165L18.49,33.165C18.117,33.165 17.521,33.015 16.552,32.643C15.583,32.27 14.688,31.674 14.017,30.928ZM23.186,31.003C25.273,30.779 27.435,30.556 29.745,30.034L30.193,32.196L30.193,32.27C27.807,32.717 25.497,33.015 23.409,33.165L23.186,31.003ZM31.833,29.661C32.429,29.512 33.025,29.363 33.696,29.214C35.261,28.841 36.752,28.618 38.019,28.618L38.765,28.618C38.765,28.618 38.839,28.618 38.765,28.692L38.616,30.854L38.019,30.854C36.901,30.854 35.634,31.077 34.218,31.376C33.547,31.525 32.876,31.674 32.28,31.823L32.205,31.823L31.833,29.661ZM12.75,27.723C12.75,26.754 13.048,25.636 13.644,24.518C14.166,23.474 14.837,22.505 15.657,21.536L17.297,22.952C16.626,23.772 16.03,24.667 15.583,25.561C15.135,26.381 14.986,27.127 14.986,27.723L14.986,28.17L12.825,28.468C12.75,28.17 12.75,27.947 12.75,27.723ZM23.931,17.809C23.931,17.809 23.782,17.884 23.484,18.033C23.111,18.256 22.664,18.48 22.291,18.704C21.397,19.225 20.055,20.12 18.713,21.387L17.222,19.822C19.906,17.287 22.589,16.02 23.037,15.796L23.931,17.809Z" style="fill-opacity:0.25;fill-rule:nonzero;"/>
</g>
<g transform="matrix(0.884821,-0.237087,0.237087,0.884821,-4.15421,3.8312)">
<path d="M33.708,47.264L39.212,49.042L38.541,51.204L30.342,48.595C29.82,48.296 29.522,47.849 29.522,47.402C29.522,47.327 29.522,47.178 29.596,47.104L32.205,38.532L34.367,39.202L32.463,45.406C34.159,44.627 35.663,43.84 36.976,43.004L37.05,43.004L38.169,44.868C36.873,45.656 35.365,46.487 33.708,47.264ZM38.69,41.886C38.69,41.811 38.765,41.811 38.69,41.886C40.703,40.395 42.045,38.83 42.641,37.264L42.716,37.264L44.728,38.084L44.728,38.159C43.908,40.097 42.343,41.886 40.032,43.675L39.958,43.675L38.69,41.886ZM41.333,29.152C42.743,29.681 44.509,30.952 45.101,33.985L45.101,34.134C45.175,34.357 45.25,34.879 45.25,35.475L45.25,35.55L43.088,35.55L43.088,35.475C43.088,35.028 43.014,34.73 43.014,34.655C43.014,34.581 42.939,34.506 42.939,34.357C42.717,33.544 42.349,31.996 40.523,31.171L40.479,31.152L41.225,29.139L41.299,29.139L41.333,29.152ZM14.017,30.928L15.583,29.438C16.03,29.885 16.701,30.332 17.446,30.63C18.042,30.854 18.639,31.003 18.713,31.003L18.788,31.003C19.086,31.003 19.608,31.077 20.502,31.077L20.95,31.077L20.95,33.239L20.428,33.239C19.459,33.239 18.788,33.239 18.564,33.165L18.49,33.165C18.117,33.165 17.521,33.015 16.552,32.643C15.583,32.27 14.688,31.674 14.017,30.928ZM23.186,31.003C25.273,30.779 27.435,30.556 29.745,30.034L30.193,32.196L30.193,32.27C27.807,32.717 25.497,33.015 23.409,33.165L23.186,31.003ZM31.833,29.661C32.429,29.512 33.025,29.363 33.696,29.214C35.261,28.841 36.752,28.618 38.019,28.618L38.765,28.618C38.765,28.618 38.839,28.618 38.765,28.692L38.616,30.854L38.019,30.854C36.901,30.854 35.634,31.077 34.218,31.376C33.547,31.525 32.876,31.674 32.28,31.823L32.205,31.823L31.833,29.661ZM12.75,27.723C12.75,26.754 13.048,25.636 13.644,24.518C14.166,23.474 14.837,22.505 15.657,21.536L17.297,22.952C16.626,23.772 16.03,24.667 15.583,25.561C15.135,26.381 14.986,27.127 14.986,27.723L14.986,28.17L12.825,28.468C12.75,28.17 12.75,27.947 12.75,27.723ZM23.931,17.809C23.931,17.809 23.782,17.884 23.484,18.033C23.111,18.256 22.664,18.48 22.291,18.704C21.397,19.225 20.055,20.12 18.713,21.387L17.222,19.822C19.906,17.287 22.589,16.02 23.037,15.796L23.931,17.809Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1.03867,-2.03566,1.38139)">
<g transform="matrix(10.639,0,0,11,13.1202,50.6595)">
<path d="M0.838,0L0.723,0L0.723,-0.453C0.723,-0.49 0.725,-0.536 0.73,-0.589L0.728,-0.589C0.721,-0.559 0.715,-0.537 0.709,-0.523L0.5,0L0.42,0L0.21,-0.52C0.205,-0.535 0.198,-0.558 0.192,-0.589L0.19,-0.589C0.193,-0.561 0.194,-0.516 0.194,-0.452L0.194,0L0.086,0L0.086,-0.7L0.25,-0.7L0.434,-0.234C0.448,-0.198 0.457,-0.171 0.461,-0.154L0.464,-0.154C0.476,-0.191 0.486,-0.218 0.493,-0.236L0.681,-0.7L0.838,-0.7L0.838,0Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11,22.9637,50.6595)">
<path d="M0.202,-0.254L0.202,0L0.086,0L0.086,-0.7L0.299,-0.7C0.379,-0.7 0.442,-0.681 0.486,-0.644C0.53,-0.607 0.552,-0.554 0.552,-0.486C0.552,-0.418 0.529,-0.362 0.483,-0.319C0.437,-0.276 0.374,-0.254 0.295,-0.254L0.202,-0.254ZM0.202,-0.604L0.202,-0.349L0.277,-0.349C0.327,-0.349 0.365,-0.36 0.391,-0.383C0.417,-0.406 0.43,-0.439 0.43,-0.481C0.43,-0.563 0.382,-0.604 0.287,-0.604L0.202,-0.604Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11,28.8507,50.6705)">
<path d="M0.662,0L0.534,0L0.471,-0.178L0.196,-0.178L0.135,0L0.008,0L0.271,-0.7L0.401,-0.7L0.662,0ZM0.44,-0.273L0.343,-0.552C0.34,-0.561 0.337,-0.576 0.334,-0.596L0.332,-0.596C0.329,-0.578 0.326,-0.563 0.322,-0.552L0.226,-0.273L0.44,-0.273Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11,35.4929,50.6595)">
<path d="M0.536,-0.602L0.334,-0.602L0.334,0L0.218,0L0.218,-0.602L0.018,-0.602L0.018,-0.7L0.536,-0.7L0.536,-0.602Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11,41.9912,50.6595)">
<path d="M0.649,0L0.532,0L0.532,-0.304L0.203,-0.304L0.203,0L0.086,0L0.086,-0.7L0.203,-0.7L0.203,-0.406L0.532,-0.406L0.532,-0.7L0.649,-0.7L0.649,0Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
</g>
<g transform="matrix(1,0,0,1.03867,-2.03566,0.381386)">
<g transform="matrix(10.639,0,0,11,13.1202,50.6595)">
<path d="M0.838,0L0.723,0L0.723,-0.453C0.723,-0.49 0.725,-0.536 0.73,-0.589L0.728,-0.589C0.721,-0.559 0.715,-0.537 0.709,-0.523L0.5,0L0.42,0L0.21,-0.52C0.205,-0.535 0.198,-0.558 0.192,-0.589L0.19,-0.589C0.193,-0.561 0.194,-0.516 0.194,-0.452L0.194,0L0.086,0L0.086,-0.7L0.25,-0.7L0.434,-0.234C0.448,-0.198 0.457,-0.171 0.461,-0.154L0.464,-0.154C0.476,-0.191 0.486,-0.218 0.493,-0.236L0.681,-0.7L0.838,-0.7L0.838,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11,22.9637,50.6595)">
<path d="M0.202,-0.254L0.202,0L0.086,0L0.086,-0.7L0.299,-0.7C0.379,-0.7 0.442,-0.681 0.486,-0.644C0.53,-0.607 0.552,-0.554 0.552,-0.486C0.552,-0.418 0.529,-0.362 0.483,-0.319C0.437,-0.276 0.374,-0.254 0.295,-0.254L0.202,-0.254ZM0.202,-0.604L0.202,-0.349L0.277,-0.349C0.327,-0.349 0.365,-0.36 0.391,-0.383C0.417,-0.406 0.43,-0.439 0.43,-0.481C0.43,-0.563 0.382,-0.604 0.287,-0.604L0.202,-0.604Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11,28.8507,50.6705)">
<path d="M0.662,0L0.534,0L0.471,-0.178L0.196,-0.178L0.135,0L0.008,0L0.271,-0.7L0.401,-0.7L0.662,0ZM0.44,-0.273L0.343,-0.552C0.34,-0.561 0.337,-0.576 0.334,-0.596L0.332,-0.596C0.329,-0.578 0.326,-0.563 0.322,-0.552L0.226,-0.273L0.44,-0.273Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11,35.4929,50.6595)">
<path d="M0.536,-0.602L0.334,-0.602L0.334,0L0.218,0L0.218,-0.602L0.018,-0.602L0.018,-0.7L0.536,-0.7L0.536,-0.602Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(11,0,0,11,41.9912,50.6595)">
<path d="M0.649,0L0.532,0L0.532,-0.304L0.203,-0.304L0.203,0L0.086,0L0.086,-0.7L0.203,-0.7L0.203,-0.406L0.532,-0.406L0.532,-0.7L0.649,-0.7L0.649,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.8 KiB

View file

@ -1,62 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(42,42,42);fill-opacity:0;"/>
<g id="page">
<g id="base" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57Z" style="fill:rgb(33,44,102);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M41,14L41,2L42,2L42,3L43,3L43,4L44,4L44,5L45,5L45,6L46,6L46,7L47,7L47,8L48,8L48,9L49,9L49,10L50,10L50,11L51,11L51,12L52,12L52,13L53,13L53,14L41,14Z" style="fill:rgb(42,122,176);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
<g id="outline" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill:rgb(14,22,67);"/>
</g>
</g>
<g transform="matrix(1,0,0,1,2.03191,-0.79639)">
<g transform="matrix(1,0,0,1,6.39312,4.66075)">
<g transform="matrix(13,0,0,13,9.28273,50.1869)">
<path d="M0.202,-0.254L0.202,0L0.086,0L0.086,-0.7L0.299,-0.7C0.379,-0.7 0.442,-0.681 0.486,-0.644C0.53,-0.607 0.552,-0.554 0.552,-0.486C0.552,-0.418 0.529,-0.362 0.483,-0.319C0.437,-0.276 0.374,-0.254 0.295,-0.254L0.202,-0.254ZM0.202,-0.604L0.202,-0.349L0.277,-0.349C0.327,-0.349 0.365,-0.36 0.391,-0.383C0.417,-0.406 0.43,-0.439 0.43,-0.481C0.43,-0.563 0.382,-0.604 0.287,-0.604L0.202,-0.604Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(13,0,0,13,16.8809,50.1869)">
<path d="M0.054,-0.028L0.054,-0.147C0.065,-0.138 0.078,-0.129 0.093,-0.121C0.107,-0.113 0.123,-0.107 0.14,-0.101C0.156,-0.096 0.173,-0.092 0.189,-0.089C0.206,-0.086 0.221,-0.084 0.235,-0.084C0.284,-0.084 0.321,-0.093 0.344,-0.109C0.368,-0.125 0.38,-0.149 0.38,-0.18C0.38,-0.196 0.376,-0.211 0.368,-0.223C0.36,-0.235 0.349,-0.246 0.335,-0.256C0.321,-0.266 0.304,-0.276 0.284,-0.285C0.265,-0.295 0.244,-0.304 0.222,-0.314C0.198,-0.327 0.176,-0.34 0.156,-0.353C0.135,-0.366 0.117,-0.38 0.102,-0.396C0.087,-0.412 0.075,-0.43 0.067,-0.45C0.058,-0.47 0.054,-0.493 0.054,-0.52C0.054,-0.552 0.061,-0.581 0.076,-0.605C0.091,-0.629 0.11,-0.649 0.135,-0.665C0.159,-0.681 0.186,-0.693 0.217,-0.7C0.248,-0.708 0.28,-0.712 0.312,-0.712C0.385,-0.712 0.439,-0.704 0.472,-0.687L0.472,-0.572C0.432,-0.601 0.381,-0.615 0.319,-0.615C0.302,-0.615 0.284,-0.614 0.267,-0.61C0.25,-0.607 0.235,-0.602 0.221,-0.594C0.208,-0.587 0.197,-0.577 0.188,-0.565C0.18,-0.554 0.176,-0.54 0.176,-0.523C0.176,-0.507 0.179,-0.494 0.186,-0.482C0.192,-0.471 0.202,-0.461 0.214,-0.451C0.227,-0.442 0.242,-0.433 0.26,-0.424C0.278,-0.415 0.299,-0.405 0.323,-0.395C0.347,-0.382 0.37,-0.368 0.392,-0.354C0.413,-0.34 0.433,-0.325 0.449,-0.308C0.465,-0.291 0.478,-0.272 0.488,-0.252C0.498,-0.231 0.502,-0.208 0.502,-0.181C0.502,-0.146 0.495,-0.116 0.481,-0.091C0.467,-0.067 0.447,-0.047 0.423,-0.032C0.399,-0.016 0.371,-0.005 0.339,0.001C0.308,0.008 0.274,0.012 0.239,0.012C0.228,0.012 0.213,0.011 0.196,0.009C0.179,0.007 0.161,0.005 0.144,0.001C0.126,-0.002 0.109,-0.006 0.093,-0.011C0.077,-0.016 0.064,-0.022 0.054,-0.028Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(13,0,0,13,23.9585,50.1869)">
<path d="M0.086,0L0.086,-0.7L0.289,-0.7C0.547,-0.7 0.676,-0.586 0.676,-0.359C0.676,-0.251 0.64,-0.164 0.568,-0.098C0.497,-0.033 0.401,0 0.28,0L0.086,0ZM0.202,-0.602L0.202,-0.098L0.295,-0.098C0.377,-0.098 0.44,-0.121 0.486,-0.166C0.531,-0.21 0.554,-0.274 0.554,-0.356C0.554,-0.52 0.469,-0.602 0.299,-0.602L0.202,-0.602Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,6.39312,3.66075)">
<g transform="matrix(13,0,0,13,9.28273,50.1869)">
<path d="M0.202,-0.254L0.202,0L0.086,0L0.086,-0.7L0.299,-0.7C0.379,-0.7 0.442,-0.681 0.486,-0.644C0.53,-0.607 0.552,-0.554 0.552,-0.486C0.552,-0.418 0.529,-0.362 0.483,-0.319C0.437,-0.276 0.374,-0.254 0.295,-0.254L0.202,-0.254ZM0.202,-0.604L0.202,-0.349L0.277,-0.349C0.327,-0.349 0.365,-0.36 0.391,-0.383C0.417,-0.406 0.43,-0.439 0.43,-0.481C0.43,-0.563 0.382,-0.604 0.287,-0.604L0.202,-0.604Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(13,0,0,13,16.8809,50.1869)">
<path d="M0.054,-0.028L0.054,-0.147C0.065,-0.138 0.078,-0.129 0.093,-0.121C0.107,-0.113 0.123,-0.107 0.14,-0.101C0.156,-0.096 0.173,-0.092 0.189,-0.089C0.206,-0.086 0.221,-0.084 0.235,-0.084C0.284,-0.084 0.321,-0.093 0.344,-0.109C0.368,-0.125 0.38,-0.149 0.38,-0.18C0.38,-0.196 0.376,-0.211 0.368,-0.223C0.36,-0.235 0.349,-0.246 0.335,-0.256C0.321,-0.266 0.304,-0.276 0.284,-0.285C0.265,-0.295 0.244,-0.304 0.222,-0.314C0.198,-0.327 0.176,-0.34 0.156,-0.353C0.135,-0.366 0.117,-0.38 0.102,-0.396C0.087,-0.412 0.075,-0.43 0.067,-0.45C0.058,-0.47 0.054,-0.493 0.054,-0.52C0.054,-0.552 0.061,-0.581 0.076,-0.605C0.091,-0.629 0.11,-0.649 0.135,-0.665C0.159,-0.681 0.186,-0.693 0.217,-0.7C0.248,-0.708 0.28,-0.712 0.312,-0.712C0.385,-0.712 0.439,-0.704 0.472,-0.687L0.472,-0.572C0.432,-0.601 0.381,-0.615 0.319,-0.615C0.302,-0.615 0.284,-0.614 0.267,-0.61C0.25,-0.607 0.235,-0.602 0.221,-0.594C0.208,-0.587 0.197,-0.577 0.188,-0.565C0.18,-0.554 0.176,-0.54 0.176,-0.523C0.176,-0.507 0.179,-0.494 0.186,-0.482C0.192,-0.471 0.202,-0.461 0.214,-0.451C0.227,-0.442 0.242,-0.433 0.26,-0.424C0.278,-0.415 0.299,-0.405 0.323,-0.395C0.347,-0.382 0.37,-0.368 0.392,-0.354C0.413,-0.34 0.433,-0.325 0.449,-0.308C0.465,-0.291 0.478,-0.272 0.488,-0.252C0.498,-0.231 0.502,-0.208 0.502,-0.181C0.502,-0.146 0.495,-0.116 0.481,-0.091C0.467,-0.067 0.447,-0.047 0.423,-0.032C0.399,-0.016 0.371,-0.005 0.339,0.001C0.308,0.008 0.274,0.012 0.239,0.012C0.228,0.012 0.213,0.011 0.196,0.009C0.179,0.007 0.161,0.005 0.144,0.001C0.126,-0.002 0.109,-0.006 0.093,-0.011C0.077,-0.016 0.064,-0.022 0.054,-0.028Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(13,0,0,13,23.9585,50.1869)">
<path d="M0.086,0L0.086,-0.7L0.289,-0.7C0.547,-0.7 0.676,-0.586 0.676,-0.359C0.676,-0.251 0.64,-0.164 0.568,-0.098C0.497,-0.033 0.401,0 0.28,0L0.086,0ZM0.202,-0.602L0.202,-0.098L0.295,-0.098C0.377,-0.098 0.44,-0.121 0.486,-0.166C0.531,-0.21 0.554,-0.274 0.554,-0.356C0.554,-0.52 0.469,-0.602 0.299,-0.602L0.202,-0.602Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
</g>
<g>
<g transform="matrix(1.19231,0,0,0.846154,-12.2307,7.15384)">
<rect x="22" y="14" width="26" height="26" style="fill-opacity:0.25;"/>
</g>
<g transform="matrix(1.19231,0,0,0.846154,-12.2307,6.15384)">
<rect x="22" y="14" width="26" height="26" style="fill:rgb(42,122,176);"/>
</g>
<g>
<g transform="matrix(0.857143,0,0,0.857143,4.28571,5.57143)">
<circle cx="40.5" cy="21.5" r="3.5" style="fill:white;"/>
</g>
<g transform="matrix(1.54545,0,0,1.2,-9.27273,-5)">
<path d="M22.5,25L28,35L17,35L22.5,25Z" style="fill:rgb(149,189,216);"/>
</g>
<g transform="matrix(1.3,0,0,1.33333,-12.6,-11)">
<path d="M37,30L42,36L32,36L37,30Z" style="fill:white;"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.8 KiB

View file

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(184,184,184);fill-opacity:0;"/>
<g id="page">
<g id="base" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57Z" style="fill:rgb(239,216,29);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M41,14L41,2L42,2L42,3L43,3L43,4L44,4L44,5L45,5L45,6L46,6L46,7L47,7L47,8L48,8L48,9L49,9L49,10L50,10L50,11L51,11L51,12L52,12L52,13L53,13L53,14L41,14Z" style="fill:rgb(242,238,190);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill:rgb(131,122,19);"/>
</g>
<g transform="matrix(0.842601,0,0,1.26869,-0.600865,-4.37553)">
<g transform="matrix(20,0,0,20,18.1277,30.2886)">
<path d="M0.511,-0.142C0.521,-0.137 0.527,-0.129 0.528,-0.12C0.53,-0.11 0.525,-0.095 0.516,-0.076C0.511,-0.066 0.506,-0.058 0.502,-0.052C0.497,-0.047 0.493,-0.043 0.489,-0.041C0.485,-0.038 0.48,-0.037 0.476,-0.038C0.471,-0.038 0.467,-0.04 0.462,-0.042L0.081,-0.239C0.073,-0.243 0.068,-0.248 0.064,-0.254C0.06,-0.26 0.059,-0.271 0.059,-0.285C0.059,-0.299 0.06,-0.309 0.064,-0.315C0.068,-0.322 0.073,-0.327 0.081,-0.331L0.462,-0.527C0.467,-0.529 0.471,-0.531 0.476,-0.531C0.48,-0.532 0.485,-0.531 0.489,-0.529C0.493,-0.527 0.497,-0.523 0.502,-0.517C0.506,-0.511 0.511,-0.503 0.516,-0.494C0.525,-0.474 0.53,-0.459 0.528,-0.45C0.527,-0.44 0.521,-0.432 0.511,-0.427L0.225,-0.285L0.511,-0.142Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(20,0,0,20,30.1199,30.2886)">
<path d="M0.193,0.13C0.19,0.136 0.186,0.14 0.179,0.143C0.172,0.145 0.164,0.146 0.156,0.146C0.146,0.146 0.137,0.145 0.126,0.142C0.116,0.14 0.108,0.136 0.1,0.131C0.092,0.126 0.087,0.12 0.083,0.113C0.079,0.106 0.08,0.098 0.083,0.089L0.407,-0.637C0.409,-0.643 0.414,-0.647 0.421,-0.65C0.428,-0.652 0.436,-0.654 0.445,-0.654C0.454,-0.654 0.464,-0.652 0.474,-0.65C0.484,-0.647 0.493,-0.643 0.5,-0.638C0.508,-0.633 0.513,-0.627 0.517,-0.62C0.52,-0.613 0.52,-0.605 0.516,-0.596L0.193,0.13Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(20,0,0,20,42.1121,30.2886)">
<path d="M0.089,-0.427C0.078,-0.432 0.073,-0.44 0.071,-0.45C0.07,-0.459 0.074,-0.474 0.084,-0.494C0.089,-0.503 0.094,-0.511 0.098,-0.517C0.102,-0.523 0.107,-0.527 0.111,-0.529C0.115,-0.531 0.119,-0.532 0.124,-0.531C0.128,-0.531 0.133,-0.529 0.138,-0.527L0.519,-0.331C0.526,-0.327 0.532,-0.322 0.536,-0.315C0.539,-0.309 0.541,-0.299 0.541,-0.285C0.541,-0.271 0.539,-0.26 0.536,-0.254C0.532,-0.248 0.526,-0.243 0.519,-0.239L0.138,-0.042C0.133,-0.04 0.128,-0.038 0.124,-0.038C0.119,-0.037 0.115,-0.038 0.111,-0.041C0.107,-0.043 0.102,-0.047 0.098,-0.052C0.094,-0.058 0.089,-0.066 0.084,-0.076C0.074,-0.095 0.07,-0.11 0.071,-0.12C0.073,-0.129 0.078,-0.137 0.089,-0.142L0.375,-0.285L0.089,-0.427Z" style="fill-rule:nonzero;"/>
</g>
</g>
<g transform="matrix(0.991441,0,0,0.964309,-2.6367,5.83796)">
<g transform="matrix(15.4155,0,0,14.2441,23.5773,48.7337)">
<path d="M0.331,-0.716L0.475,-0.716L0.475,-0.263C0.475,-0.203 0.47,-0.158 0.459,-0.126C0.445,-0.084 0.42,-0.051 0.383,-0.026C0.347,0 0.298,0.012 0.238,0.012C0.167,0.012 0.113,-0.008 0.075,-0.047C0.037,-0.087 0.017,-0.145 0.017,-0.221L0.153,-0.237C0.155,-0.196 0.161,-0.167 0.171,-0.15C0.187,-0.124 0.211,-0.111 0.243,-0.111C0.275,-0.111 0.298,-0.121 0.311,-0.139C0.324,-0.157 0.331,-0.195 0.331,-0.253L0.331,-0.716Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(13.8636,0,0,14,32.4175,48.7299)">
<path d="M0.036,-0.233L0.177,-0.247C0.185,-0.199 0.202,-0.165 0.228,-0.143C0.254,-0.12 0.289,-0.109 0.333,-0.109C0.38,-0.109 0.415,-0.119 0.438,-0.139C0.462,-0.159 0.474,-0.182 0.474,-0.208C0.474,-0.225 0.469,-0.239 0.459,-0.251C0.449,-0.263 0.431,-0.273 0.407,-0.282C0.39,-0.288 0.351,-0.299 0.291,-0.313C0.214,-0.333 0.159,-0.356 0.128,-0.384C0.084,-0.424 0.062,-0.472 0.062,-0.528C0.062,-0.565 0.072,-0.599 0.093,-0.631C0.114,-0.662 0.143,-0.687 0.182,-0.703C0.221,-0.72 0.268,-0.728 0.323,-0.728C0.413,-0.728 0.481,-0.708 0.526,-0.669C0.572,-0.63 0.595,-0.577 0.598,-0.511L0.453,-0.505C0.447,-0.542 0.434,-0.568 0.413,-0.584C0.393,-0.6 0.362,-0.608 0.322,-0.608C0.28,-0.608 0.247,-0.6 0.223,-0.583C0.208,-0.571 0.2,-0.557 0.2,-0.538C0.2,-0.521 0.207,-0.507 0.222,-0.495C0.24,-0.479 0.284,-0.463 0.354,-0.447C0.425,-0.43 0.477,-0.413 0.51,-0.395C0.544,-0.378 0.571,-0.353 0.59,-0.323C0.609,-0.292 0.618,-0.254 0.618,-0.208C0.618,-0.167 0.607,-0.129 0.584,-0.093C0.561,-0.057 0.529,-0.031 0.487,-0.013C0.446,0.004 0.394,0.013 0.332,0.013C0.241,0.013 0.172,-0.008 0.123,-0.05C0.075,-0.092 0.046,-0.153 0.036,-0.233Z" style="fill-rule:nonzero;"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(59,59,59);fill-opacity:0;"/>
<g id="page">
<g id="base" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57Z" style="fill:rgb(229,78,62);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M41,14L41,2L42,2L42,3L43,3L43,4L44,4L44,5L45,5L45,6L46,6L46,7L47,7L47,8L48,8L48,9L49,9L49,10L50,10L50,11L51,11L51,12L52,12L52,13L53,13L53,14L41,14Z" style="fill:rgb(244,125,113);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
<g id="outline" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill:rgb(124,44,35);"/>
<g transform="matrix(1,0,0,1.06301,2.06643,0.562347)">
<g transform="matrix(13.3711,0,0,13,15.2154,49.1769)">
<path d="M0.054,-0.028L0.054,-0.147C0.065,-0.138 0.078,-0.129 0.093,-0.121C0.107,-0.113 0.123,-0.107 0.14,-0.101C0.156,-0.096 0.173,-0.092 0.189,-0.089C0.206,-0.086 0.221,-0.084 0.235,-0.084C0.284,-0.084 0.321,-0.093 0.344,-0.109C0.368,-0.125 0.38,-0.149 0.38,-0.18C0.38,-0.196 0.376,-0.211 0.368,-0.223C0.36,-0.235 0.349,-0.246 0.335,-0.256C0.321,-0.266 0.304,-0.276 0.284,-0.285C0.265,-0.295 0.244,-0.304 0.222,-0.314C0.198,-0.327 0.176,-0.34 0.156,-0.353C0.135,-0.366 0.117,-0.38 0.102,-0.396C0.087,-0.412 0.075,-0.43 0.067,-0.45C0.058,-0.47 0.054,-0.493 0.054,-0.52C0.054,-0.552 0.061,-0.581 0.076,-0.605C0.091,-0.629 0.11,-0.649 0.135,-0.665C0.159,-0.681 0.186,-0.693 0.217,-0.7C0.248,-0.708 0.28,-0.712 0.312,-0.712C0.385,-0.712 0.439,-0.704 0.472,-0.687L0.472,-0.572C0.432,-0.601 0.381,-0.615 0.319,-0.615C0.302,-0.615 0.284,-0.614 0.267,-0.61C0.25,-0.607 0.235,-0.602 0.221,-0.594C0.208,-0.587 0.197,-0.577 0.188,-0.565C0.18,-0.554 0.176,-0.54 0.176,-0.523C0.176,-0.507 0.179,-0.494 0.186,-0.482C0.192,-0.471 0.202,-0.461 0.214,-0.451C0.227,-0.442 0.242,-0.433 0.26,-0.424C0.278,-0.415 0.299,-0.405 0.323,-0.395C0.347,-0.382 0.37,-0.368 0.392,-0.354C0.413,-0.34 0.433,-0.325 0.449,-0.308C0.465,-0.291 0.478,-0.272 0.488,-0.252C0.498,-0.231 0.502,-0.208 0.502,-0.181C0.502,-0.146 0.495,-0.116 0.481,-0.091C0.467,-0.067 0.447,-0.047 0.423,-0.032C0.399,-0.016 0.371,-0.005 0.339,0.001C0.308,0.008 0.274,0.012 0.239,0.012C0.228,0.012 0.213,0.011 0.196,0.009C0.179,0.007 0.161,0.005 0.144,0.001C0.126,-0.002 0.109,-0.006 0.093,-0.011C0.077,-0.016 0.064,-0.022 0.054,-0.028Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(14.3217,0,0,13.4351,22.8357,49.3293)">
<path d="M0.635,-0.7L0.384,0L0.254,0L0.007,-0.7L0.134,-0.7L0.307,-0.169C0.312,-0.152 0.316,-0.132 0.319,-0.11L0.321,-0.11C0.324,-0.128 0.328,-0.148 0.335,-0.17L0.512,-0.7L0.635,-0.7Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(13.5293,0,0,13,32.372,49.1769)">
<path d="M0.633,-0.048C0.56,-0.008 0.479,0.012 0.389,0.012C0.286,0.012 0.202,-0.021 0.138,-0.085C0.074,-0.149 0.042,-0.235 0.042,-0.341C0.042,-0.449 0.077,-0.538 0.147,-0.608C0.217,-0.677 0.306,-0.712 0.414,-0.712C0.492,-0.712 0.557,-0.701 0.61,-0.678L0.61,-0.558C0.557,-0.594 0.493,-0.612 0.418,-0.612C0.344,-0.612 0.283,-0.587 0.235,-0.538C0.187,-0.489 0.164,-0.425 0.164,-0.347C0.164,-0.267 0.184,-0.204 0.225,-0.157C0.266,-0.111 0.322,-0.088 0.392,-0.088C0.44,-0.088 0.482,-0.098 0.517,-0.116L0.517,-0.283L0.37,-0.283L0.37,-0.38L0.633,-0.38L0.633,-0.048Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
</g>
<g transform="matrix(1,0,0,1.06301,2.06643,-0.437653)">
<g transform="matrix(13.3711,0,0,13,15.2154,49.1769)">
<path d="M0.054,-0.028L0.054,-0.147C0.065,-0.138 0.078,-0.129 0.093,-0.121C0.107,-0.113 0.123,-0.107 0.14,-0.101C0.156,-0.096 0.173,-0.092 0.189,-0.089C0.206,-0.086 0.221,-0.084 0.235,-0.084C0.284,-0.084 0.321,-0.093 0.344,-0.109C0.368,-0.125 0.38,-0.149 0.38,-0.18C0.38,-0.196 0.376,-0.211 0.368,-0.223C0.36,-0.235 0.349,-0.246 0.335,-0.256C0.321,-0.266 0.304,-0.276 0.284,-0.285C0.265,-0.295 0.244,-0.304 0.222,-0.314C0.198,-0.327 0.176,-0.34 0.156,-0.353C0.135,-0.366 0.117,-0.38 0.102,-0.396C0.087,-0.412 0.075,-0.43 0.067,-0.45C0.058,-0.47 0.054,-0.493 0.054,-0.52C0.054,-0.552 0.061,-0.581 0.076,-0.605C0.091,-0.629 0.11,-0.649 0.135,-0.665C0.159,-0.681 0.186,-0.693 0.217,-0.7C0.248,-0.708 0.28,-0.712 0.312,-0.712C0.385,-0.712 0.439,-0.704 0.472,-0.687L0.472,-0.572C0.432,-0.601 0.381,-0.615 0.319,-0.615C0.302,-0.615 0.284,-0.614 0.267,-0.61C0.25,-0.607 0.235,-0.602 0.221,-0.594C0.208,-0.587 0.197,-0.577 0.188,-0.565C0.18,-0.554 0.176,-0.54 0.176,-0.523C0.176,-0.507 0.179,-0.494 0.186,-0.482C0.192,-0.471 0.202,-0.461 0.214,-0.451C0.227,-0.442 0.242,-0.433 0.26,-0.424C0.278,-0.415 0.299,-0.405 0.323,-0.395C0.347,-0.382 0.37,-0.368 0.392,-0.354C0.413,-0.34 0.433,-0.325 0.449,-0.308C0.465,-0.291 0.478,-0.272 0.488,-0.252C0.498,-0.231 0.502,-0.208 0.502,-0.181C0.502,-0.146 0.495,-0.116 0.481,-0.091C0.467,-0.067 0.447,-0.047 0.423,-0.032C0.399,-0.016 0.371,-0.005 0.339,0.001C0.308,0.008 0.274,0.012 0.239,0.012C0.228,0.012 0.213,0.011 0.196,0.009C0.179,0.007 0.161,0.005 0.144,0.001C0.126,-0.002 0.109,-0.006 0.093,-0.011C0.077,-0.016 0.064,-0.022 0.054,-0.028Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(14.3217,0,0,13.4351,22.8357,49.3293)">
<path d="M0.635,-0.7L0.384,0L0.254,0L0.007,-0.7L0.134,-0.7L0.307,-0.169C0.312,-0.152 0.316,-0.132 0.319,-0.11L0.321,-0.11C0.324,-0.128 0.328,-0.148 0.335,-0.17L0.512,-0.7L0.635,-0.7Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(13.5293,0,0,13,32.372,49.1769)">
<path d="M0.633,-0.048C0.56,-0.008 0.479,0.012 0.389,0.012C0.286,0.012 0.202,-0.021 0.138,-0.085C0.074,-0.149 0.042,-0.235 0.042,-0.341C0.042,-0.449 0.077,-0.538 0.147,-0.608C0.217,-0.677 0.306,-0.712 0.414,-0.712C0.492,-0.712 0.557,-0.701 0.61,-0.678L0.61,-0.558C0.557,-0.594 0.493,-0.612 0.418,-0.612C0.344,-0.612 0.283,-0.587 0.235,-0.538C0.187,-0.489 0.164,-0.425 0.164,-0.347C0.164,-0.267 0.184,-0.204 0.225,-0.157C0.266,-0.111 0.322,-0.088 0.392,-0.088C0.44,-0.088 0.482,-0.098 0.517,-0.116L0.517,-0.283L0.37,-0.283L0.37,-0.38L0.633,-0.38L0.633,-0.048Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
</g>
</g>
<g transform="matrix(1,0,0,1,0,3)">
<g transform="matrix(2,0,0,-2,14,43)">
<rect x="2" y="12" width="12" height="1" style="fill-opacity:0.3;"/>
</g>
<g transform="matrix(1.83333,0,0,-1.83333,14.8333,40.6667)">
<rect x="5" y="8" width="6" height="6" style="fill-opacity:0.3;"/>
</g>
<g transform="matrix(2,0,0,-2,13,43)">
<path d="M16,12.5C16,13.323 15.323,14 14.5,14C13.677,14 13,13.323 13,12.5C13,11.677 13.677,11 14.5,11C15.323,11 16,11.677 16,12.5Z" style="fill-opacity:0.3;"/>
</g>
<path d="M16.034,35.016C16.001,35.566 15.546,35.995 14.995,35.995C14.981,36 14.967,36 14.953,36C14.698,36 14.454,35.896 14.278,35.713C14.102,35.529 14.008,35.281 14.02,35.026C14.533,26.649 21.496,20 30,20C38.488,20 45.442,26.624 45.968,34.981C45.982,35.245 45.887,35.503 45.705,35.695C45.523,35.887 45.27,35.996 45.006,35.996L45.005,36C44.451,36 43.994,35.569 43.961,35.016C43.46,27.747 37.396,22 30,22C22.604,22 16.54,27.747 16.034,35.016Z" style="fill-opacity:0.3;"/>
<g transform="matrix(2,0,0,-2,14,43)">
<path d="M3,12.5C3,13.323 2.323,14 1.5,14C0.677,14 0,13.323 0,12.5C0,11.677 0.677,11 1.5,11C2.323,11 3,11.677 3,12.5Z" style="fill-opacity:0.3;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,0,2)">
<g transform="matrix(2,0,0,-2,14,43)">
<rect x="2" y="12" width="12" height="1" style="fill:white;"/>
</g>
<g transform="matrix(1.83333,0,0,-1.83333,14.8333,40.6667)">
<rect x="5" y="8" width="6" height="6" style="fill:white;"/>
</g>
<g transform="matrix(2,0,0,-2,13,43)">
<path d="M16,12.5C16,13.323 15.323,14 14.5,14C13.677,14 13,13.323 13,12.5C13,11.677 13.677,11 14.5,11C15.323,11 16,11.677 16,12.5Z" style="fill:white;"/>
</g>
<path d="M16.034,35.016C16.001,35.566 15.546,35.995 14.995,35.995C14.981,36 14.967,36 14.953,36C14.698,36 14.454,35.896 14.278,35.713C14.102,35.529 14.008,35.281 14.02,35.026C14.533,26.649 21.496,20 30,20C38.488,20 45.442,26.624 45.968,34.981C45.982,35.245 45.887,35.503 45.705,35.695C45.523,35.887 45.27,35.996 45.006,35.996L45.005,36C44.451,36 43.994,35.569 43.961,35.016C43.46,27.747 37.396,22 30,22C22.604,22 16.54,27.747 16.034,35.016Z" style="fill:white;"/>
<g transform="matrix(2,0,0,-2,14,43)">
<path d="M3,12.5C3,13.323 2.323,14 1.5,14C0.677,14 0,13.323 0,12.5C0,11.677 0.677,11 1.5,11C2.323,11 3,11.677 3,12.5Z" style="fill:white;"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.6 KiB

View file

@ -1,73 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(184,184,184);fill-opacity:0;"/>
<g id="page">
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57Z" style="fill:rgb(72,121,52);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M41,14L41,2L42,2L42,3L43,3L43,4L44,4L44,5L45,5L45,6L46,6L46,7L47,7L47,8L48,8L48,9L49,9L49,10L50,10L50,11L51,11L51,12L52,12L52,13L53,13L53,14L41,14Z" style="fill:rgb(150,206,127);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,0.999721,0,5.85109)">
<g id="outline">
<g>
<g transform="matrix(10,0,0,10,10.8083,48.1623)">
<path d="M0.536,-0.602L0.334,-0.602L0.334,0L0.218,0L0.218,-0.602L0.018,-0.602L0.018,-0.7L0.536,-0.7L0.536,-0.602Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,16.1357,48.1623)">
<path d="M0.68,0L0.553,0L0.219,-0.515C0.21,-0.528 0.203,-0.541 0.198,-0.555L0.195,-0.555C0.197,-0.54 0.199,-0.508 0.199,-0.459L0.199,0L0.086,0L0.086,-0.7L0.222,-0.7L0.545,-0.198C0.559,-0.177 0.567,-0.163 0.571,-0.155L0.573,-0.155C0.57,-0.173 0.568,-0.205 0.568,-0.249L0.568,-0.7L0.68,-0.7L0.68,0Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,24.3242,48.1623)">
<path d="M0.564,-0.649L0.18,-0.098L0.559,-0.098L0.559,0L0.018,0L0.018,-0.053L0.403,-0.602L0.047,-0.602L0.047,-0.7L0.564,-0.7L0.564,-0.649Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,30.3945,48.1623)">
<path d="M0.086,0L0.086,-0.7L0.309,-0.7C0.376,-0.7 0.43,-0.685 0.469,-0.656C0.509,-0.626 0.529,-0.588 0.529,-0.54C0.529,-0.5 0.518,-0.466 0.495,-0.437C0.473,-0.407 0.442,-0.386 0.402,-0.374L0.402,-0.372C0.45,-0.367 0.489,-0.349 0.517,-0.319C0.546,-0.288 0.561,-0.249 0.561,-0.201C0.561,-0.141 0.537,-0.093 0.49,-0.056C0.443,-0.019 0.383,0 0.311,0L0.086,0ZM0.202,-0.607L0.202,-0.408L0.277,-0.408C0.318,-0.408 0.349,-0.417 0.372,-0.436C0.395,-0.455 0.407,-0.482 0.407,-0.517C0.407,-0.577 0.367,-0.607 0.287,-0.607L0.202,-0.607ZM0.202,-0.314L0.202,-0.093L0.301,-0.093C0.345,-0.093 0.378,-0.103 0.402,-0.123C0.425,-0.143 0.437,-0.17 0.437,-0.206C0.437,-0.278 0.387,-0.314 0.286,-0.314L0.202,-0.314Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,36.6504,48.1623)">
<path d="M0.662,0L0.534,0L0.471,-0.178L0.196,-0.178L0.135,0L0.008,0L0.271,-0.7L0.401,-0.7L0.662,0ZM0.44,-0.273L0.343,-0.552C0.34,-0.561 0.337,-0.576 0.334,-0.596L0.332,-0.596C0.329,-0.578 0.326,-0.563 0.322,-0.552L0.226,-0.273L0.44,-0.273Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,42.8242,48.1623)">
<path d="M0.536,-0.602L0.334,-0.602L0.334,0L0.218,0L0.218,-0.602L0.018,-0.602L0.018,-0.7L0.536,-0.7L0.536,-0.602Z" style="fill-opacity:0.3;fill-rule:nonzero;"/>
</g>
</g>
</g>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill:rgb(33,63,21);"/>
</g>
<g transform="matrix(1,0,0,0.999721,0,4.85109)">
<g id="outline1" serif:id="outline">
<g>
<g transform="matrix(10,0,0,10,10.8083,48.1623)">
<path d="M0.536,-0.602L0.334,-0.602L0.334,0L0.218,0L0.218,-0.602L0.018,-0.602L0.018,-0.7L0.536,-0.7L0.536,-0.602Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,16.1357,48.1623)">
<path d="M0.68,0L0.553,0L0.219,-0.515C0.21,-0.528 0.203,-0.541 0.198,-0.555L0.195,-0.555C0.197,-0.54 0.199,-0.508 0.199,-0.459L0.199,0L0.086,0L0.086,-0.7L0.222,-0.7L0.545,-0.198C0.559,-0.177 0.567,-0.163 0.571,-0.155L0.573,-0.155C0.57,-0.173 0.568,-0.205 0.568,-0.249L0.568,-0.7L0.68,-0.7L0.68,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,24.3242,48.1623)">
<path d="M0.564,-0.649L0.18,-0.098L0.559,-0.098L0.559,0L0.018,0L0.018,-0.053L0.403,-0.602L0.047,-0.602L0.047,-0.7L0.564,-0.7L0.564,-0.649Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,30.3945,48.1623)">
<path d="M0.086,0L0.086,-0.7L0.309,-0.7C0.376,-0.7 0.43,-0.685 0.469,-0.656C0.509,-0.626 0.529,-0.588 0.529,-0.54C0.529,-0.5 0.518,-0.466 0.495,-0.437C0.473,-0.407 0.442,-0.386 0.402,-0.374L0.402,-0.372C0.45,-0.367 0.489,-0.349 0.517,-0.319C0.546,-0.288 0.561,-0.249 0.561,-0.201C0.561,-0.141 0.537,-0.093 0.49,-0.056C0.443,-0.019 0.383,0 0.311,0L0.086,0ZM0.202,-0.607L0.202,-0.408L0.277,-0.408C0.318,-0.408 0.349,-0.417 0.372,-0.436C0.395,-0.455 0.407,-0.482 0.407,-0.517C0.407,-0.577 0.367,-0.607 0.287,-0.607L0.202,-0.607ZM0.202,-0.314L0.202,-0.093L0.301,-0.093C0.345,-0.093 0.378,-0.103 0.402,-0.123C0.425,-0.143 0.437,-0.17 0.437,-0.206C0.437,-0.278 0.387,-0.314 0.286,-0.314L0.202,-0.314Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,36.6504,48.1623)">
<path d="M0.662,0L0.534,0L0.471,-0.178L0.196,-0.178L0.135,0L0.008,0L0.271,-0.7L0.401,-0.7L0.662,0ZM0.44,-0.273L0.343,-0.552C0.34,-0.561 0.337,-0.576 0.334,-0.596L0.332,-0.596C0.329,-0.578 0.326,-0.563 0.322,-0.552L0.226,-0.273L0.44,-0.273Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(10,0,0,10,42.8242,48.1623)">
<path d="M0.536,-0.602L0.334,-0.602L0.334,0L0.218,0L0.218,-0.602L0.018,-0.602L0.018,-0.7L0.536,-0.7L0.536,-0.602Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
</g>
</g>
<g transform="matrix(1,0,0,1,0,-7)">
<path d="M27,40C27,38.895 26.105,38 25,38L19,38C17.895,38 17,38.895 17,40L17,46C17,47.105 17.895,48 19,48L25,48C26.105,48 27,47.105 27,46L27,40ZM25,40L19,40L19,46L25,46L25,40ZM41,43.5C41,43.224 40.776,43 40.5,43L31.5,43C31.224,43 31,43.224 31,43.5L31,44.5C31,44.776 31.224,45 31.5,45L40.5,45C40.776,45 41,44.776 41,44.5L41,43.5ZM27,27C27,25.895 26.105,25 25,25L19,25C17.895,25 17,25.895 17,27L17,33C17,34.105 17.895,35 19,35L25,35C26.105,35 27,34.105 27,33L27,27ZM25,27L19,27L19,33L25,33L25,27ZM34.978,30.585L39.295,26.291C39.686,25.902 40.32,25.903 40.709,26.295C41.098,26.686 41.097,27.32 40.705,27.709L35.678,32.709C35.49,32.896 35.235,33.001 34.97,33C34.704,32.999 34.45,32.893 34.263,32.704L31.29,29.704C30.901,29.312 30.904,28.678 31.296,28.29C31.688,27.901 32.322,27.904 32.71,28.296L34.978,30.585Z" style="fill-opacity:0.3;"/>
</g>
<g transform="matrix(1,0,0,1,0,-8)">
<path d="M27,40C27,38.895 26.105,38 25,38L19,38C17.895,38 17,38.895 17,40L17,46C17,47.105 17.895,48 19,48L25,48C26.105,48 27,47.105 27,46L27,40ZM25,40L19,40L19,46L25,46L25,40ZM41,43.5C41,43.224 40.776,43 40.5,43L31.5,43C31.224,43 31,43.224 31,43.5L31,44.5C31,44.776 31.224,45 31.5,45L40.5,45C40.776,45 41,44.776 41,44.5L41,43.5ZM27,27C27,25.895 26.105,25 25,25L19,25C17.895,25 17,25.895 17,27L17,33C17,34.105 17.895,35 19,35L25,35C26.105,35 27,34.105 27,33L27,27ZM25,27L19,27L19,33L25,33L25,27ZM34.978,30.585L39.295,26.291C39.686,25.902 40.32,25.903 40.709,26.295C41.098,26.686 41.097,27.32 40.705,27.709L35.678,32.709C35.49,32.896 35.235,33.001 34.97,33C34.704,32.999 34.45,32.893 34.263,32.704L31.29,29.704C30.901,29.312 30.904,28.678 31.296,28.29C31.688,27.901 32.322,27.904 32.71,28.296L34.978,30.585Z" style="fill:white;"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.6 KiB

View file

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(59,59,59);fill-opacity:0;"/>
<g id="page">
<g id="outline" transform="matrix(1,0,0,1,-1,1)">
<g transform="matrix(1,0,0,1,1,0)">
<path d="M40,2L8,2L8,56L51,56L51,13L40,2Z" style="fill:rgb(228,228,228);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,1,0)">
<path d="M40,2L51,13L40,13L40,2Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill-opacity:0.6;"/>
</g>
<g transform="matrix(1.04999,0,0,1.02216,-1.43775,-5.06379)">
<path d="M31.988,44.006L27.995,44.006L27.995,48L31.988,48L31.988,44.006ZM31.862,41.957L28.265,41.957L28.265,41.036C28.265,39.857 28.438,38.907 28.841,38.159C29.215,37.411 29.992,36.576 31.143,35.627C32.294,34.706 32.984,34.073 33.215,33.785C33.56,33.325 33.733,32.836 33.733,32.289C33.733,31.512 33.416,30.85 32.812,30.304C32.179,29.757 31.373,29.469 30.308,29.469C29.33,29.469 28.496,29.757 27.805,30.332C27.143,30.908 26.683,31.771 26.424,32.951L22.798,32.491C22.885,30.822 23.604,29.412 24.928,28.232C26.251,27.052 28.006,26.477 30.165,26.477C32.409,26.477 34.222,27.052 35.574,28.261C36.898,29.44 37.56,30.822 37.56,32.375C37.56,33.267 37.329,34.073 36.84,34.85C36.351,35.627 35.286,36.692 33.675,38.044C32.841,38.735 32.323,39.281 32.121,39.713C31.92,40.116 31.833,40.893 31.862,41.957Z" style="fill-opacity:0.7;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -1,107 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="60px" height="60px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:1.5;">
<rect x="0" y="0" width="60" height="60" style="fill:rgb(59,59,59);fill-opacity:0;"/>
<g id="page">
<g id="base" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57Z" style="fill:rgb(229,216,152);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M41,14L41,2L42,2L42,3L43,3L43,4L44,4L44,5L45,5L45,6L46,6L46,7L47,7L47,8L48,8L48,9L49,9L49,10L50,10L50,11L51,11L51,12L52,12L52,13L53,13L53,14L41,14Z" style="fill:rgb(246,241,216);fill-rule:nonzero;"/>
</g>
<g id="outline" transform="matrix(1,0,0,1,-1,1)">
<path d="M53,57L8,57L8,1L42,1L42,2L43,2L43,3L44,3L44,4L45,4L45,5L46,5L46,6L47,6L47,7L48,7L48,8L49,8L49,9L50,9L50,10L51,10L51,11L52,11L52,12L53,12L53,57ZM41,2L9,2L9,56L52,56L52,13L41,2Z" style="fill:rgb(116,106,55);"/>
</g>
<g transform="matrix(0.943825,0,0,0.871141,1.60099,7.57182)">
<g transform="matrix(1.05952,0,0,1.14792,-2.7558,-5.24808)">
<g id="g4">
<g opacity="0.7">
<g transform="matrix(13.2987,0,0,12.8536,15.8896,50)">
<path d="M0.61,0L0.471,0L0.327,-0.257C0.323,-0.265 0.318,-0.276 0.313,-0.29L0.311,-0.29C0.308,-0.283 0.303,-0.272 0.296,-0.257L0.148,0L0.008,0L0.238,-0.352L0.027,-0.7L0.169,-0.7L0.295,-0.464C0.304,-0.448 0.311,-0.433 0.317,-0.417L0.319,-0.417C0.328,-0.438 0.336,-0.454 0.343,-0.466L0.475,-0.7L0.605,-0.7L0.39,-0.353L0.61,0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(11.8774,0,0,12.8536,23.9735,50)">
<path d="M0.086,0L0.086,-0.7L0.289,-0.7C0.547,-0.7 0.676,-0.586 0.676,-0.359C0.676,-0.251 0.64,-0.164 0.568,-0.098C0.497,-0.033 0.401,0 0.28,0L0.086,0ZM0.202,-0.602L0.202,-0.098L0.295,-0.098C0.377,-0.098 0.44,-0.121 0.486,-0.166C0.531,-0.21 0.554,-0.274 0.554,-0.356C0.554,-0.52 0.469,-0.602 0.299,-0.602L0.202,-0.602Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(11.5815,0,0,12.8536,32.2964,50)">
<path d="M0.536,-0.602L0.334,-0.602L0.334,0L0.218,0L0.218,-0.602L0.018,-0.602L0.018,-0.7L0.536,-0.7L0.536,-0.602Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(13,0,0,12.4372,38.385,49.8543)">
<path d="M0.054,-0.028L0.054,-0.147C0.065,-0.138 0.078,-0.129 0.093,-0.121C0.107,-0.113 0.123,-0.107 0.14,-0.101C0.156,-0.096 0.173,-0.092 0.189,-0.089C0.206,-0.086 0.221,-0.084 0.235,-0.084C0.284,-0.084 0.321,-0.093 0.344,-0.109C0.368,-0.125 0.38,-0.149 0.38,-0.18C0.38,-0.196 0.376,-0.211 0.368,-0.223C0.36,-0.235 0.349,-0.246 0.335,-0.256C0.321,-0.266 0.304,-0.276 0.284,-0.285C0.265,-0.295 0.244,-0.304 0.222,-0.314C0.198,-0.327 0.176,-0.34 0.156,-0.353C0.135,-0.366 0.117,-0.38 0.102,-0.396C0.087,-0.412 0.075,-0.43 0.067,-0.45C0.058,-0.47 0.054,-0.493 0.054,-0.52C0.054,-0.552 0.061,-0.581 0.076,-0.605C0.091,-0.629 0.11,-0.649 0.135,-0.665C0.159,-0.681 0.186,-0.693 0.217,-0.7C0.248,-0.708 0.28,-0.712 0.312,-0.712C0.385,-0.712 0.439,-0.704 0.472,-0.687L0.472,-0.572C0.432,-0.601 0.381,-0.615 0.319,-0.615C0.302,-0.615 0.284,-0.614 0.267,-0.61C0.25,-0.607 0.235,-0.602 0.221,-0.594C0.208,-0.587 0.197,-0.577 0.188,-0.565C0.18,-0.554 0.176,-0.54 0.176,-0.523C0.176,-0.507 0.179,-0.494 0.186,-0.482C0.192,-0.471 0.202,-0.461 0.214,-0.451C0.227,-0.442 0.242,-0.433 0.26,-0.424C0.278,-0.415 0.299,-0.405 0.323,-0.395C0.347,-0.382 0.37,-0.368 0.392,-0.354C0.413,-0.34 0.433,-0.325 0.449,-0.308C0.465,-0.291 0.478,-0.272 0.488,-0.252C0.498,-0.231 0.502,-0.208 0.502,-0.181C0.502,-0.146 0.495,-0.116 0.481,-0.091C0.467,-0.067 0.447,-0.047 0.423,-0.032C0.399,-0.016 0.371,-0.005 0.339,0.001C0.308,0.008 0.274,0.012 0.239,0.012C0.228,0.012 0.213,0.011 0.196,0.009C0.179,0.007 0.161,0.005 0.144,0.001C0.126,-0.002 0.109,-0.006 0.093,-0.011C0.077,-0.016 0.064,-0.022 0.054,-0.028Z" style="fill-rule:nonzero;"/>
</g>
</g>
</g>
</g>
<g transform="matrix(1,0,0,1,0,1.14792)">
<g opacity="0.7">
<g id="rect4533" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<rect x="10.5" y="8.5" width="40" height="25" style="fill:none;stroke:black;stroke-width:1px;"/>
</g>
<g>
<g id="path4535" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M10.5,12.5L50.5,12.5" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-4" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M10.5,15.484L50.5,15.484" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-3" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M10.5,18.49L45.5,18.49" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-4-3" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M10.5,21.497L45.5,21.497" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-4-9" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M10.5,24.503L45.5,24.503" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-3-1" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M10.5,27.51L45.5,27.51" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-4-3-1" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M10.5,30.516L45.5,30.516" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-9" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M31.25,33.5L31.25,12.5" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-9-1" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M17.25,33.5L17.25,12.5" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-9-9" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M38.25,33.5L38.25,12.5" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-9-1-4" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M24.25,33.5L24.25,12.5" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="path4535-9-9-5" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path d="M45.25,33.5L45.25,12.5" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:0.5px;stroke-miterlimit:4;"/>
</g>
<g id="text4670" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path id="path4775" d="M14.755,15L14.48,15L14.29,14.46L13.452,14.46L13.262,15L13,15L13.706,13.061L14.049,13.061L14.755,15ZM14.211,14.238L13.871,13.286L13.53,14.238L14.211,14.238Z" style="fill-rule:nonzero;"/>
</g>
<g id="text4670-1" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path id="path4772" d="M21.489,14.404C21.489,14.5 21.471,14.585 21.434,14.659C21.398,14.733 21.349,14.793 21.287,14.841C21.214,14.898 21.134,14.939 21.046,14.964C20.959,14.988 20.849,15 20.714,15L20.027,15L20.027,13.061L20.601,13.061C20.742,13.061 20.848,13.066 20.918,13.077C20.989,13.087 21.056,13.109 21.12,13.142C21.191,13.179 21.243,13.227 21.275,13.286C21.307,13.345 21.323,13.414 21.323,13.496C21.323,13.588 21.3,13.667 21.253,13.732C21.206,13.796 21.144,13.848 21.066,13.887L21.066,13.897C21.197,13.924 21.3,13.982 21.376,14.07C21.451,14.158 21.489,14.269 21.489,14.404ZM21.055,13.53C21.055,13.483 21.047,13.444 21.032,13.411C21.016,13.379 20.991,13.353 20.956,13.333C20.915,13.31 20.866,13.296 20.808,13.29C20.75,13.284 20.678,13.281 20.592,13.281L20.284,13.281L20.284,13.841L20.618,13.841C20.698,13.841 20.763,13.837 20.81,13.829C20.858,13.821 20.902,13.803 20.943,13.777C20.984,13.751 21.013,13.718 21.029,13.677C21.047,13.635 21.055,13.586 21.055,13.53ZM21.221,14.414C21.221,14.336 21.209,14.274 21.185,14.228C21.162,14.182 21.119,14.143 21.058,14.111C21.016,14.089 20.965,14.075 20.905,14.069C20.846,14.062 20.774,14.059 20.689,14.059L20.284,14.059L20.284,14.78L20.626,14.78C20.738,14.78 20.831,14.774 20.903,14.763C20.975,14.751 21.034,14.729 21.08,14.698C21.129,14.664 21.164,14.625 21.187,14.582C21.209,14.539 21.221,14.483 21.221,14.414Z" style="fill-rule:nonzero;"/>
</g>
<g id="text4670-0" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path id="path4769" d="M28.524,14.859C28.476,14.88 28.433,14.9 28.394,14.918C28.356,14.936 28.305,14.955 28.243,14.975C28.19,14.992 28.132,15.006 28.07,15.017C28.008,15.029 27.94,15.035 27.865,15.035C27.724,15.035 27.596,15.016 27.481,14.977C27.366,14.937 27.267,14.875 27.182,14.79C27.098,14.708 27.033,14.603 26.986,14.477C26.939,14.349 26.916,14.201 26.916,14.033C26.916,13.873 26.938,13.73 26.984,13.604C27.029,13.478 27.094,13.372 27.179,13.285C27.261,13.201 27.361,13.137 27.477,13.092C27.594,13.048 27.724,13.026 27.866,13.026C27.971,13.026 28.074,13.039 28.178,13.064C28.282,13.089 28.397,13.133 28.524,13.197L28.524,13.503L28.504,13.503C28.398,13.413 28.292,13.348 28.187,13.307C28.082,13.266 27.969,13.246 27.849,13.246C27.751,13.246 27.663,13.262 27.584,13.294C27.506,13.326 27.436,13.375 27.374,13.441C27.314,13.507 27.267,13.589 27.234,13.689C27.201,13.788 27.184,13.902 27.184,14.033C27.184,14.169 27.202,14.286 27.239,14.384C27.276,14.482 27.324,14.562 27.382,14.624C27.443,14.688 27.514,14.736 27.594,14.767C27.676,14.797 27.762,14.812 27.852,14.812C27.976,14.812 28.093,14.791 28.201,14.749C28.31,14.706 28.411,14.642 28.506,14.557L28.524,14.557L28.524,14.859Z" style="fill-rule:nonzero;"/>
</g>
<g id="text4670-1-0" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path id="path4766" d="M35.665,14.033C35.665,14.209 35.626,14.368 35.549,14.512C35.472,14.655 35.37,14.766 35.243,14.845C35.154,14.9 35.055,14.939 34.946,14.964C34.837,14.988 34.694,15 34.516,15L34.027,15L34.027,13.061L34.511,13.061C34.7,13.061 34.85,13.075 34.961,13.103C35.073,13.13 35.168,13.167 35.245,13.215C35.377,13.297 35.48,13.407 35.554,13.544C35.628,13.681 35.665,13.844 35.665,14.033ZM35.395,14.029C35.395,13.877 35.369,13.749 35.316,13.645C35.263,13.54 35.184,13.458 35.079,13.398C35.002,13.355 34.921,13.325 34.835,13.309C34.749,13.291 34.646,13.283 34.527,13.283L34.284,13.283L34.284,14.779L34.527,14.779C34.651,14.779 34.759,14.77 34.851,14.751C34.944,14.733 35.029,14.699 35.106,14.65C35.202,14.588 35.274,14.507 35.322,14.406C35.371,14.306 35.395,14.18 35.395,14.029Z" style="fill-rule:nonzero;"/>
</g>
<g id="text4670-1-0-2" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path id="path4763" d="M42.304,15L41.027,15L41.027,13.061L42.304,13.061L42.304,13.29L41.284,13.29L41.284,13.822L42.304,13.822L42.304,14.051L41.284,14.051L41.284,14.771L42.304,14.771L42.304,15Z" style="fill-rule:nonzero;"/>
</g>
<g id="text4670-10" transform="matrix(1.05952,0,0,1.14792,-2.7558,-0.656403)">
<path id="path4750" d="M28.234,11.65L27.959,11.65L27.769,11.11L26.93,11.11L26.74,11.65L26.479,11.65L27.184,9.711L27.528,9.711L28.234,11.65ZM27.689,10.888L27.35,9.936L27.008,10.888L27.689,10.888Z" style="fill-rule:nonzero;"/>
<path id="path4752" d="M29.584,11.559C29.502,11.598 29.425,11.628 29.351,11.65C29.278,11.672 29.2,11.682 29.118,11.682C29.013,11.682 28.916,11.667 28.829,11.637C28.741,11.606 28.666,11.559 28.604,11.496C28.54,11.434 28.491,11.355 28.456,11.259C28.422,11.164 28.404,11.052 28.404,10.925C28.404,10.687 28.469,10.5 28.6,10.365C28.731,10.229 28.903,10.162 29.118,10.162C29.201,10.162 29.283,10.173 29.363,10.197C29.443,10.22 29.517,10.249 29.584,10.283L29.584,10.555L29.571,10.555C29.496,10.497 29.419,10.452 29.339,10.421C29.26,10.39 29.183,10.374 29.107,10.374C28.969,10.374 28.859,10.421 28.778,10.515C28.698,10.607 28.658,10.744 28.658,10.925C28.658,11.1 28.697,11.235 28.775,11.33C28.854,11.423 28.965,11.47 29.107,11.47C29.157,11.47 29.207,11.464 29.258,11.451C29.31,11.438 29.356,11.421 29.396,11.4C29.432,11.382 29.466,11.363 29.497,11.343C29.528,11.322 29.553,11.304 29.571,11.289L29.584,11.289L29.584,11.559Z" style="fill-rule:nonzero;"/>
<path id="path4754" d="M30.654,11.637C30.608,11.649 30.558,11.659 30.503,11.667C30.449,11.675 30.401,11.679 30.359,11.679C30.21,11.679 30.097,11.639 30.02,11.559C29.943,11.479 29.904,11.351 29.904,11.175L29.904,10.401L29.739,10.401L29.739,10.195L29.904,10.195L29.904,9.778L30.149,9.778L30.149,10.195L30.654,10.195L30.654,10.401L30.149,10.401L30.149,11.064C30.149,11.14 30.151,11.2 30.154,11.244C30.158,11.286 30.17,11.326 30.191,11.363C30.21,11.398 30.236,11.424 30.269,11.44C30.303,11.456 30.354,11.464 30.423,11.464C30.462,11.464 30.504,11.458 30.548,11.447C30.591,11.435 30.622,11.425 30.641,11.417L30.654,11.417L30.654,11.637Z" style="fill-rule:nonzero;"/>
<path id="path4756" d="M31.214,9.952L30.938,9.952L30.938,9.698L31.214,9.698L31.214,9.952ZM31.199,11.65L30.954,11.65L30.954,10.195L31.199,10.195L31.199,11.65Z" style="fill-rule:nonzero;"/>
<path id="path4758" d="M32.925,10.923C32.925,11.16 32.864,11.347 32.743,11.485C32.621,11.622 32.459,11.69 32.255,11.69C32.049,11.69 31.885,11.622 31.764,11.485C31.643,11.347 31.583,11.16 31.583,10.923C31.583,10.686 31.643,10.499 31.764,10.362C31.885,10.224 32.049,10.155 32.255,10.155C32.459,10.155 32.621,10.224 32.743,10.362C32.864,10.499 32.925,10.686 32.925,10.923ZM32.673,10.923C32.673,10.735 32.636,10.595 32.562,10.504C32.488,10.412 32.386,10.366 32.255,10.366C32.122,10.366 32.018,10.412 31.945,10.504C31.872,10.595 31.835,10.735 31.835,10.923C31.835,11.106 31.872,11.244 31.946,11.339C32.02,11.432 32.123,11.479 32.255,11.479C32.385,11.479 32.487,11.433 32.561,11.34C32.635,11.246 32.673,11.107 32.673,10.923Z" style="fill-rule:nonzero;"/>
<path id="path4760" d="M34.521,11.65L34.277,11.65L34.277,10.822C34.277,10.755 34.273,10.692 34.265,10.634C34.257,10.575 34.243,10.529 34.222,10.496C34.2,10.46 34.169,10.433 34.128,10.416C34.087,10.397 34.035,10.388 33.969,10.388C33.903,10.388 33.833,10.405 33.76,10.438C33.687,10.471 33.617,10.513 33.55,10.564L33.55,11.65L33.305,11.65L33.305,10.195L33.55,10.195L33.55,10.357C33.627,10.294 33.706,10.244 33.787,10.209C33.869,10.173 33.952,10.155 34.038,10.155C34.196,10.155 34.315,10.202 34.398,10.297C34.48,10.392 34.521,10.528 34.521,10.706L34.521,11.65Z" style="fill-rule:nonzero;"/>
</g>
</g>
</g>
</g>
</g>
</g>
<g transform="matrix(1,0,0,1,-1,1)">
<path d="M41,13L52,13L52,24L41,13Z" style="fill-opacity:0.25;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(64,181,185);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<g transform="matrix(0.873016,0,0,0.873016,7.30159,5.4127)">
<path d="M21,42.259L21,24.5L38,19L38,39.5C38,41.984 35.984,44 33.5,44C31.016,44 29,41.984 29,39.5C29,37.016 31.016,35 33.5,35C34.425,35 35.285,35.279 36,35.759L36,23.927L23,28.214L23,45.5L22.972,45.5C22.991,45.664 23,45.831 23,46C23,48.484 20.984,50.5 18.5,50.5C16.016,50.5 14,48.484 14,46C14,43.516 16.016,41.5 18.5,41.5C19.425,41.5 20.285,41.779 21,42.259Z" style="fill:white;fill-opacity:0.9;"/>
</g>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(16,45,46);"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M9,25.757L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,24.302C54.865,24.398 54.737,24.506 54.617,24.627L37.918,41.325C37.918,41.325 25.531,28.938 25.531,28.938L18.856,35.613C18.856,35.613 11.564,28.321 9,25.757ZM55,32.729L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,34.243L18.856,44.098L25.531,37.423C25.531,37.423 37.918,49.81 37.918,49.81L55,32.729Z" style="fill:rgb(228,228,228);"/>
<path d="M9,25.757L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,24.302C54.865,24.398 54.737,24.506 54.617,24.627L37.918,41.325C37.918,41.325 25.531,28.938 25.531,28.938L18.856,35.613C18.856,35.613 11.564,28.321 9,25.757ZM37.918,38.497L53,23.415L53,16.243C53,15.977 52.895,15.723 52.707,15.535L43.465,6.293C43.277,6.105 43.023,6 42.757,6L12,6C11.735,6 11.481,6.105 11.294,6.292L11.292,6.294C11.105,6.481 11,6.735 11,7L11,24.929L18.856,32.785L24.117,27.524C24.898,26.743 26.164,26.743 26.945,27.524L37.918,38.497ZM55,32.729L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,34.243L18.856,44.098L25.531,37.423C25.531,37.423 37.918,49.81 37.918,49.81L55,32.729ZM25.531,40.252L20.27,45.513C19.489,46.294 18.223,46.294 17.442,45.513L11,39.071L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,37.557L39.333,51.224C38.552,52.006 37.285,52.006 36.504,51.224L25.531,40.252Z" style="fill:rgb(57,57,57);"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(57,57,57);"/>
</svg>

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(72,121,52);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(18,30,13);"/>
<g transform="matrix(11,0,0,11,42.3232,51.0713)">
</g>
<text x="21.677px" y="51.071px" style="font-family:'SegoeUI-Semibold', 'Segoe UI', sans-serif;font-weight:600;font-size:11px;fill:white;">CLN</text>
<path d="M35.325,30.399C33.789,32.481 32.502,35.615 31.799,38.031C31.488,38.338 30.486,38.062 30.486,38.062C30.453,36.016 31.416,34.359 31.455,34.247C31.466,34.218 30.157,35.505 28.98,37.213C28.944,37.267 28.849,37.181 28.794,37.143C27.395,36.195 24.764,33.57 24.764,33.57C25.461,33.029 26.449,32.047 26.885,31.251C26.183,31.875 24.73,32.478 23.897,32.718C23.897,32.718 23.362,32.02 23.097,31.661L23.038,31.581C24.67,30.839 25.946,29.849 28.11,27.707C26.561,28.698 23.736,29.331 21.856,29.451C21.856,29.451 21.453,28.502 21.786,28.174C24.753,27.727 27.191,26.437 29.598,24.785C30.916,23.513 33.201,23.394 34.928,25.094C36.656,26.794 36.501,28.572 35.325,30.399ZM36.322,22.009L40.25,18.143C40.729,17.671 41.507,17.671 41.986,18.143C42.466,18.615 42.466,19.381 41.986,19.853L38.059,23.719C38.534,24.699 38.13,26.247 37.66,27.229C37.661,26.109 37.19,25.011 36.099,23.938C35.074,22.928 33.886,22.447 32.752,22.402C33.751,21.939 35.325,21.541 36.322,22.009ZM41.394,31.613L40.253,33.617C40.209,33.697 40.185,33.785 40.185,33.875C40.185,33.966 40.209,34.054 40.254,34.133L41.393,36.137L39.357,35.015C39.278,34.971 39.188,34.947 39.096,34.947C39.004,34.947 38.914,34.971 38.834,35.014L36.798,36.138L37.938,34.133C37.983,34.054 38.006,33.965 38.007,33.875C38.007,33.785 37.983,33.696 37.938,33.618L36.798,31.613L38.834,32.736C38.914,32.779 39.004,32.803 39.096,32.803C39.187,32.802 39.278,32.78 39.357,32.736L41.394,31.613ZM28.767,18.292L27.626,20.296C27.582,20.376 27.558,20.464 27.558,20.555C27.558,20.645 27.582,20.733 27.627,20.812L28.767,22.816L26.731,21.694C26.651,21.65 26.562,21.627 26.469,21.627C26.377,21.627 26.288,21.65 26.207,21.694L24.171,22.817L25.312,20.812C25.357,20.733 25.38,20.645 25.38,20.555C25.38,20.464 25.356,20.376 25.312,20.298L24.171,18.292L26.208,19.415C26.287,19.459 26.377,19.482 26.469,19.482C26.561,19.482 26.651,19.46 26.731,19.415L28.767,18.292Z" style="fill:white;"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(72,121,52);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(18,30,13);"/>
<g transform="matrix(11,0,0,11,49.0828,51.0713)">
</g>
<text x="14.917px" y="51.071px" style="font-family:'SegoeUI-Semibold', 'Segoe UI', sans-serif;font-weight:600;font-size:11px;fill:white;">CURVE</text>
<g transform="matrix(1,0,0,1,2.5,-11.8241)">
<path d="M46,52L13,52L13,31L46,31L46,52ZM15,45L15,50L20,50L20,45L15,45ZM21,45L21,50L26,50L26,45L21,45ZM27,45L27,50L32,50L32,45L27,45ZM33,45L33,50L38,50L38,45L33,45ZM39,45L39,50L44,50L44,45L39,45ZM15,39L15,44L20,44L20,39L15,39ZM21,39L21,44L26,44L26,39L21,39ZM27,39L27,44L32,44L32,39L27,39ZM33,39L33,44L38,44L38,39L33,39ZM39,39L39,44L44,44L44,39L39,39ZM15,33L15,38L20,38L20,33L15,33ZM21,33L21,38L26,38L26,33L21,33ZM27,33L27,38L32,38L32,33L27,33ZM33,33L33,38L38,38L38,33L33,33ZM39,33L39,38L44,38L44,33L39,33Z" style="fill-opacity:0.5;"/>
</g>
<g transform="matrix(1,0,0,1,2.5,0.175916)">
<path d="M44,38.056C39.45,37.996 36.227,37.2 34.419,36.056C32.783,35.021 28.941,30.642 26.204,27.851C21.956,23.52 15.328,24.083 15.328,24.083C15.216,24.092 15.106,24.088 15,24.074L15,21.102C15.028,21.098 15.056,21.095 15.085,21.093C15.085,21.093 23.283,20.343 28.346,25.751C32.257,29.928 34.225,32.272 36.098,33.57C37.533,34.564 40.735,35.035 44,35.204L44,38.056Z" style="fill:rgb(255,127,33);"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(162,229,219);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(41,57,55);"/>
<g transform="matrix(11,0,0,11,45.5513,51.0713)">
</g>
<text x="18.449px" y="51.071px" style="font-family:'SegoeUI-Semibold', 'Segoe UI', sans-serif;font-weight:600;font-size:11px;fill:rgb(41,57,55);">JSON</text>
<g id="path899" transform="matrix(1,0,0,1,53.7189,3)">
<path d="M-25.852,36.292L-27.414,36.292C-28.657,36.292 -29.667,35.944 -30.445,35.25C-31.216,34.563 -31.602,33.566 -31.602,32.26L-31.602,30.708C-31.602,29.535 -31.89,28.618 -32.466,27.958C-33.042,27.292 -33.924,26.958 -35.112,26.958L-35.643,26.958L-35.643,25.333L-35.112,25.333C-33.924,25.333 -33.042,25.003 -32.466,24.344C-31.89,23.677 -31.602,22.757 -31.602,21.583L-31.602,20.031C-31.602,18.726 -31.216,17.729 -30.445,17.042C-29.667,16.347 -28.657,16 -27.414,16L-25.852,16L-25.852,17.438L-27.039,17.438C-27.983,17.438 -28.671,17.656 -29.102,18.094C-29.525,18.531 -29.737,19.236 -29.737,20.208L-29.737,22.031C-29.737,22.997 -30.004,23.809 -30.539,24.469C-31.074,25.122 -31.817,25.639 -32.768,26.021L-32.768,26.271C-31.817,26.653 -31.074,27.174 -30.539,27.833C-30.004,28.486 -29.737,29.295 -29.737,30.26L-29.737,32.083C-29.737,33.056 -29.525,33.76 -29.102,34.198C-28.671,34.635 -27.983,34.854 -27.039,34.854L-25.852,34.854L-25.852,36.292ZM-20.098,23.542L-22.588,23.542L-22.588,20.573L-20.098,20.573L-20.098,23.542ZM-19.338,29.24L-22.275,36.063L-23.796,36.063L-21.983,29.24L-19.338,29.24ZM-7.795,26.958L-8.326,26.958C-9.513,26.958 -10.395,27.292 -10.972,27.958C-11.548,28.618 -11.836,29.535 -11.836,30.708L-11.836,32.26C-11.836,33.566 -12.225,34.563 -13.003,35.25C-13.774,35.944 -14.781,36.292 -16.024,36.292L-17.586,36.292L-17.586,34.854L-16.399,34.854C-15.454,34.854 -14.77,34.635 -14.347,34.198C-13.916,33.76 -13.701,33.056 -13.701,32.083L-13.701,30.26C-13.701,29.295 -13.434,28.486 -12.899,27.833C-12.364,27.174 -11.621,26.653 -10.67,26.271L-10.67,26.021C-11.621,25.639 -12.364,25.122 -12.899,24.469C-13.434,23.809 -13.701,22.997 -13.701,22.031L-13.701,20.208C-13.701,19.236 -13.916,18.531 -14.347,18.094C-14.77,17.656 -15.454,17.438 -16.399,17.438L-17.586,17.438L-17.586,16L-16.024,16C-14.781,16 -13.774,16.347 -13.003,17.042C-12.225,17.729 -11.836,18.726 -11.836,20.031L-11.836,21.583C-11.836,22.757 -11.548,23.677 -10.972,24.344C-10.395,25.003 -9.513,25.333 -8.326,25.333L-7.795,25.333L-7.795,26.958Z" style="fill:rgb(41,57,55);"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(228,228,228);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<g transform="matrix(0.943825,0,0,0.871141,5.10099,0.0718112)">
<path d="M26.38,23.595C26.82,22.794 27.627,22.302 28.5,22.302C29.373,22.302 30.18,22.794 30.62,23.595C33.912,29.584 40.217,41.056 43.529,47.082C43.971,47.888 43.975,48.883 43.537,49.692C43.099,50.501 42.287,51 41.408,51L15.592,51C14.713,51 13.901,50.501 13.463,49.692C13.025,48.883 13.029,47.888 13.471,47.082C16.783,41.056 23.088,29.584 26.38,23.595Z" style="fill-opacity:0.7;"/>
</g>
<g transform="matrix(16,0,0,16,27.46,40.568)">
<path d="M0.367,-0.185L0.242,-0.185L0.242,-0.217C0.242,-0.258 0.248,-0.291 0.262,-0.317C0.275,-0.343 0.302,-0.372 0.342,-0.405C0.382,-0.437 0.406,-0.459 0.414,-0.469C0.426,-0.485 0.432,-0.502 0.432,-0.521C0.432,-0.548 0.421,-0.571 0.4,-0.59C0.378,-0.609 0.35,-0.619 0.313,-0.619C0.279,-0.619 0.25,-0.609 0.226,-0.589C0.203,-0.569 0.187,-0.539 0.178,-0.498L0.052,-0.514C0.055,-0.572 0.08,-0.621 0.126,-0.662C0.172,-0.703 0.233,-0.723 0.308,-0.723C0.386,-0.723 0.449,-0.703 0.496,-0.661C0.542,-0.62 0.565,-0.572 0.565,-0.518C0.565,-0.487 0.557,-0.459 0.54,-0.432C0.523,-0.405 0.486,-0.368 0.43,-0.321C0.401,-0.297 0.383,-0.278 0.376,-0.263C0.369,-0.249 0.366,-0.222 0.367,-0.185ZM0.242,0L0.242,-0.137L0.379,-0.137L0.379,0L0.242,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(57,57,57);"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(72,121,52);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(18,30,13);"/>
<g transform="matrix(11,0,0,11,50.302,51.0713)">
</g>
<text x="13.698px" y="51.071px" style="font-family:'SegoeUI-Semibold', 'Segoe UI', sans-serif;font-weight:600;font-size:11px;fill:white;">MP<tspan x="29.537px 36.144px 42.213px " y="51.071px 51.071px 51.071px ">ATH</tspan></text>
<g transform="matrix(0.884821,-0.237087,0.237087,0.884821,-1.15421,3.8312)">
<path d="M33.708,47.264L39.212,49.042L38.541,51.204L30.342,48.595C29.82,48.296 29.522,47.849 29.522,47.402C29.522,47.327 29.522,47.178 29.596,47.104L32.205,38.532L34.367,39.202L32.463,45.406C34.159,44.627 35.663,43.84 36.976,43.004L37.05,43.004L38.169,44.868C36.873,45.656 35.365,46.487 33.708,47.264ZM38.69,41.886C38.69,41.811 38.765,41.811 38.69,41.886C40.703,40.395 42.045,38.83 42.641,37.264L42.716,37.264L44.728,38.084L44.728,38.159C43.908,40.097 42.343,41.886 40.032,43.675L39.958,43.675L38.69,41.886ZM41.333,29.152C42.743,29.681 44.509,30.952 45.101,33.985L45.101,34.134C45.175,34.357 45.25,34.879 45.25,35.475L45.25,35.55L43.088,35.55L43.088,35.475C43.088,35.028 43.014,34.73 43.014,34.655C43.014,34.581 42.939,34.506 42.939,34.357C42.717,33.544 42.349,31.996 40.523,31.171L40.479,31.152L41.225,29.139L41.299,29.139L41.333,29.152ZM14.017,30.928L15.583,29.438C16.03,29.885 16.701,30.332 17.446,30.63C18.042,30.854 18.639,31.003 18.713,31.003L18.788,31.003C19.086,31.003 19.608,31.077 20.502,31.077L20.95,31.077L20.95,33.239L20.428,33.239C19.459,33.239 18.788,33.239 18.564,33.165L18.49,33.165C18.117,33.165 17.521,33.015 16.552,32.643C15.583,32.27 14.688,31.674 14.017,30.928ZM23.186,31.003C25.273,30.779 27.435,30.556 29.745,30.034L30.193,32.196L30.193,32.27C27.807,32.717 25.497,33.015 23.409,33.165L23.186,31.003ZM31.833,29.661C32.429,29.512 33.025,29.363 33.696,29.214C35.261,28.841 36.752,28.618 38.019,28.618L38.765,28.618C38.765,28.618 38.839,28.618 38.765,28.692L38.616,30.854L38.019,30.854C36.901,30.854 35.634,31.077 34.218,31.376C33.547,31.525 32.876,31.674 32.28,31.823L32.205,31.823L31.833,29.661ZM12.75,27.723C12.75,26.754 13.048,25.636 13.644,24.518C14.166,23.474 14.837,22.505 15.657,21.536L17.297,22.952C16.626,23.772 16.03,24.667 15.583,25.561C15.135,26.381 14.986,27.127 14.986,27.723L14.986,28.17L12.825,28.468C12.75,28.17 12.75,27.947 12.75,27.723ZM23.931,17.809C23.931,17.809 23.782,17.884 23.484,18.033C23.111,18.256 22.664,18.48 22.291,18.704C21.397,19.225 20.055,20.12 18.713,21.387L17.222,19.822C19.906,17.287 22.589,16.02 23.037,15.796L23.931,17.809Z" style="fill:rgb(255,127,33);fill-rule:nonzero;"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(33,44,102);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill:rgb(42,122,176);"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(42,122,176);"/>
<g transform="matrix(11,0,0,11,42.1541,51.0713)">
</g>
<text x="21.846px" y="51.071px" style="font-family:'SegoeUI-Semibold', 'Segoe UI', sans-serif;font-weight:600;font-size:11px;fill:white;">PSD</text>
<g transform="matrix(1.15385,0,0,0.807692,-8.38473,7.69231)">
<rect x="22" y="14" width="26" height="26" style="fill:rgb(42,122,176);"/>
</g>
<g transform="matrix(0.857143,0,0,0.857143,7.28553,5.57143)">
<circle cx="40.5" cy="21.5" r="3.5" style="fill:white;"/>
</g>
<g transform="matrix(1.54545,0,0,1.2,-6.27291,-5)">
<path d="M22.5,25L28,35L17,35L22.5,25Z" style="fill:rgb(149,189,216);"/>
</g>
<g transform="matrix(1.3,0,0,1.33333,-10.6002,-11)">
<path d="M37,30L42,36L32,36L37,30Z" style="fill:white;"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(239,216,29);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(60,54,7);"/>
<g transform="matrix(11,0,0,11,37.175,51.0713)">
</g>
<text x="26.825px" y="51.071px" style="font-family:'SegoeUI-Semibold', 'Segoe UI', sans-serif;font-weight:600;font-size:11px;fill:rgb(60,54,7);">JS</text>
<path d="M25.451,31.448C25.62,31.575 25.721,31.778 25.738,32.006C25.771,32.26 25.687,32.641 25.535,33.123C25.451,33.377 25.367,33.58 25.299,33.732C25.215,33.859 25.148,33.96 25.08,34.011C25.013,34.087 24.929,34.112 24.861,34.087C24.777,34.087 24.71,34.036 24.625,33.986L18.205,28.987C18.07,28.885 17.986,28.759 17.918,28.606C17.851,28.454 17.834,28.175 17.834,27.82C17.834,27.465 17.851,27.211 17.918,27.059C17.986,26.881 18.07,26.754 18.205,26.653L24.625,21.679C24.71,21.629 24.777,21.578 24.861,21.578C24.929,21.552 25.013,21.578 25.08,21.629C25.148,21.679 25.215,21.781 25.299,21.933C25.367,22.085 25.451,22.288 25.535,22.517C25.687,23.024 25.771,23.405 25.738,23.633C25.721,23.887 25.62,24.09 25.451,24.217L20.631,27.82L25.451,31.448ZM30.197,38.35C30.146,38.502 30.079,38.604 29.961,38.68C29.843,38.731 29.708,38.756 29.573,38.756C29.405,38.756 29.253,38.731 29.068,38.654C28.899,38.604 28.764,38.502 28.63,38.375C28.495,38.248 28.411,38.096 28.343,37.919C28.276,37.741 28.293,37.538 28.343,37.31L33.803,18.888C33.837,18.736 33.921,18.634 34.039,18.558C34.157,18.508 34.292,18.457 34.444,18.457C34.595,18.457 34.764,18.508 34.932,18.558C35.101,18.634 35.252,18.736 35.37,18.863C35.505,18.99 35.589,19.142 35.657,19.32C35.707,19.497 35.707,19.7 35.64,19.929L30.197,38.35ZM38.549,24.217C38.363,24.09 38.279,23.887 38.246,23.633C38.229,23.405 38.296,23.024 38.465,22.517C38.549,22.288 38.633,22.085 38.701,21.933C38.768,21.781 38.852,21.679 38.92,21.629C38.987,21.578 39.054,21.552 39.139,21.578C39.206,21.578 39.29,21.629 39.375,21.679L45.795,26.653C45.913,26.754 46.014,26.881 46.082,27.059C46.132,27.211 46.166,27.465 46.166,27.82C46.166,28.175 46.132,28.454 46.082,28.606C46.014,28.759 45.913,28.885 45.795,28.987L39.375,33.986C39.29,34.036 39.206,34.087 39.139,34.087C39.054,34.112 38.987,34.087 38.92,34.011C38.852,33.96 38.768,33.859 38.701,33.732C38.633,33.58 38.549,33.377 38.465,33.123C38.296,32.641 38.229,32.26 38.246,32.006C38.279,31.778 38.363,31.575 38.549,31.448L43.369,27.82L38.549,24.217Z" style="fill-opacity:0.7;"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(229,78,62);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(57,20,16);"/>
<g transform="matrix(11,0,0,11,42.2454,51.0713)">
</g>
<text x="21.755px" y="51.071px" style="font-family:'SegoeUI-Semibold', 'Segoe UI', sans-serif;font-weight:600;font-size:11px;fill:white;">SV<tspan x="34.575px " y="51.071px ">G</tspan></text>
<g transform="matrix(1,0,0,1,0,1)">
<path d="M19.622,30.018C20.565,27.089 22.519,24.612 25.073,23L17,23C16.448,23 16,22.552 16,22C16,21.448 16.448,21 17,21L28.126,21C28.571,19.276 30.138,18 32,18C33.862,18 35.429,19.276 35.874,21L47,21C47.552,21 48,21.448 48,22C48,22.552 47.552,23 47,23L38.927,23C41.481,24.612 43.435,27.089 44.378,30.018C46.408,30.208 48,31.92 48,34C48,36.208 46.208,38 44,38C41.792,38 40,36.208 40,34C40,32.37 40.977,30.967 42.377,30.344C41.272,27.212 38.788,24.728 35.656,23.623C35.033,25.023 33.63,26 32,26C30.37,26 28.967,25.023 28.344,23.623C25.212,24.728 22.728,27.212 21.623,30.344C23.023,30.967 24,32.37 24,34C24,36.208 22.208,38 20,38C17.792,38 16,36.208 16,34C16,31.92 17.592,30.208 19.622,30.018ZM20,32C18.896,32 18,32.896 18,34C18,35.104 18.896,36 20,36C21.104,36 22,35.104 22,34C22,32.896 21.104,32 20,32ZM44,32C42.896,32 42,32.896 42,34C42,35.104 42.896,36 44,36C45.104,36 46,35.104 46,34C46,32.896 45.104,32 44,32ZM32,20C30.896,20 30,20.896 30,22C30,23.104 30.896,24 32,24C33.104,24 34,23.104 34,22C34,20.896 33.104,20 32,20Z" style="fill:white;fill-opacity:0.9;"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243C55,22.224 55,48.122 55,57C55,58.657 53.657,60 52,60C43.671,60 20.329,60 12,60C10.343,60 9,58.657 9,57C9,47.28 9,16.72 9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4C19.308,4 37.794,4 42.757,4Z" style="fill:rgb(72,121,52);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(18,30,13);"/>
<g transform="matrix(10,0,0,10,50.3105,50.7012)">
</g>
<text x="13.689px" y="50.701px" style="font-family:'SegoeUI-Semibold', 'Segoe UI', sans-serif;font-weight:600;font-size:10px;fill:white;">TNZBA<tspan x="44.793px " y="50.701px ">T</tspan></text>
<g transform="matrix(1,0,0,1,3.5,-6.5)">
<g id="page">
<g>
<g transform="matrix(1,0,0,1,-1,-4)">
<path d="M41,43.5C41,43.224 40.776,43 40.5,43L31.5,43C31.224,43 31,43.224 31,43.5L31,44.5C31,44.776 31.224,45 31.5,45L40.5,45C40.776,45 41,44.776 41,44.5L41,43.5Z" style="fill:white;"/>
</g>
<path d="M25,26.6C25,25.716 24.284,25 23.4,25L18.6,25C17.716,25 17,25.716 17,26.6L17,31.4C17,32.284 17.716,33 18.6,33L23.4,33C24.284,33 25,32.284 25,31.4L25,26.6ZM23.4,26.6L18.6,26.6L18.6,31.4L23.4,31.4L23.4,26.6Z" style="fill:white;"/>
<g transform="matrix(1,0,0,1,0,11)">
<path d="M25,26.6C25,25.716 24.284,25 23.4,25L18.6,25C17.716,25 17,25.716 17,26.6L17,31.4C17,32.284 17.716,33 18.6,33L23.4,33C24.284,33 25,32.284 25,31.4L25,26.6ZM23.4,26.6L18.6,26.6L18.6,31.4L23.4,31.4L23.4,26.6Z" style="fill:white;"/>
</g>
<g transform="matrix(1,0,0,1,-1,0)">
<path d="M34.978,30.585L39.295,26.291C39.686,25.902 40.32,25.903 40.709,26.295C41.098,26.686 41.097,27.32 40.705,27.709L35.678,32.709C35.49,32.896 35.235,33.001 34.97,33C34.704,32.999 34.45,32.893 34.263,32.704L31.29,29.704C30.901,29.312 30.904,28.678 31.296,28.29C31.688,27.901 32.322,27.904 32.71,28.296L34.978,30.585Z" style="fill:white;"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879C46.939,6.939 52.061,12.061 54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4Z" style="fill:rgb(228,228,228);"/>
<path d="M42.757,4C43.553,4 44.316,4.316 44.879,4.879L54.121,14.121C54.684,14.684 55,15.447 55,16.243L55,57C55,58.657 53.657,60 52,60L12,60C10.343,60 9,58.657 9,57L9,7C9,6.204 9.316,5.441 9.879,4.879C10.441,4.316 11.204,4 12,4L42.757,4ZM42.757,6L12,6C11.735,6 11.48,6.105 11.293,6.293C11.105,6.48 11,6.735 11,7L11,57C11,57.552 11.448,58 12,58L52,58C52.552,58 53,57.552 53,57L53,16.243C53,15.977 52.895,15.723 52.707,15.536L43.464,6.293C43.277,6.105 43.023,6 42.757,6Z" style="fill-opacity:0.75;"/>
<path d="M43,5L54,16L43,16L43,5Z" style="fill:rgb(57,57,57);"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,66 +0,0 @@
[Icon Theme]
Name=light
Comment=a light icon set for use in dark themes
Inherits=dark
Directories=actions/11,actions/15,actions/16,actions/18,actions/20,actions/30,actions/35,actions/48,actions/60,actions/74,console/20,tools/18,tools/20,devices/20
[actions/11]
Size=11
Type=Scalable
[actions/15]
Size=15
Type=Scalable
[actions/16]
Size=16
Type=Scalable
[actions/18]
Size=18
Type=Scalable
[actions/20]
Size=20
Type=Scalable
[actions/30]
Size=30
Type=Scalable
[actions/35]
Size=35
Type=Scalable
[actions/48]
Size=48
Type=Scalable
[actions/60]
Size=60
Type=Scalable
[actions/74]
Size=74
Type=Scalable
[console/20]
Size=20
Type=Scalable
[tools/18]
Size=18
Type=Scalabe
[tools/20]
Size=20
Type=Scalabe
[devices/20]
Size=20
Type=Scalable
[mimetypes/60]
Size=60
Type=Scalable

View file

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="142225px" height="71113px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(4.16667,0,0,4.16667,0,0)">
<g transform="matrix(4.16667,0,0,4.16667,0,0)">
<g>
<path d="M7293.79,513.111L7293.79,3582.89L898.213,3582.89L875.367,1310.43L1725.51,493.988L7293.79,513.111ZM6263.38,1898L5997.06,2044.48C5946.99,1992.14 5897.52,1955.81 5848.63,1935.5C5799.74,1915.19 5742.45,1905.03 5676.75,1905.03C5557.07,1905.03 5460.28,1940.72 5386.36,2012.09C5312.45,2083.47 5275.49,2174.92 5275.49,2286.46C5275.49,2394.89 5311.08,2483.43 5382.26,2552.07C5453.44,2620.71 5546.91,2655.03 5662.67,2655.03C5805.82,2655.03 5917.28,2606.2 5997.06,2508.55L6249.32,2681.27C6112.6,2859.09 5919.63,2948 5670.41,2948C5446.19,2948 5270.61,2881.59 5143.66,2748.78C5016.7,2615.97 4953.23,2460.5 4953.23,2282.38C4953.23,2158.94 4984.09,2045.27 5045.81,1941.36C5107.52,1837.45 5193.66,1755.81 5304.2,1696.44C5414.75,1637.06 5538.38,1607.38 5675.1,1607.38C5801.66,1607.38 5915.34,1632.57 6016.12,1682.96C6116.9,1733.35 6199.32,1805.03 6263.38,1898ZM3107.52,2915.19L3107.52,1640.19L2787.6,1640.19L2787.6,1780.81C2730.63,1723 2668.59,1679.64 2601.48,1650.73C2534.38,1621.83 2462.59,1607.38 2386.13,1607.38C2219.91,1607.38 2078.67,1670.27 1962.4,1796.05C1846.13,1921.83 1787.99,2083.16 1787.99,2280.03C1787.99,2469.88 1848.08,2628.66 1968.25,2756.4C2088.42,2884.13 2230.83,2948 2395.48,2948C2468.83,2948 2536.92,2934.91 2599.74,2908.74C2662.55,2882.57 2725.18,2839.8 2787.6,2780.42L2787.6,2915.19L3107.52,2915.19ZM3748.54,2915.19L3748.54,2780.42C3811.04,2839.8 3873.93,2882.57 3937.21,2908.74C4000.49,2934.91 4068.85,2948 4142.29,2948C4307.13,2948 4449.71,2884.13 4570.02,2756.4C4690.34,2628.66 4750.49,2469.88 4750.49,2280.03C4750.49,2083.16 4692.29,1921.83 4575.88,1796.05C4459.48,1670.27 4318.07,1607.38 4151.66,1607.38C4075.1,1607.38 4003.23,1621.83 3936.04,1650.73C3868.85,1679.64 3806.35,1723 3748.54,1780.81L3748.54,1148L3430.96,1148L3430.96,2915.19L3748.54,2915.19ZM2451.29,1902.69C2352.4,1902.69 2270.26,1937.65 2204.85,2007.57C2139.45,2077.49 2106.74,2167.14 2106.74,2276.52C2106.74,2386.67 2140.03,2477.3 2206.6,2548.39C2273.17,2619.48 2355.12,2655.03 2452.45,2655.03C2552.9,2655.03 2636.21,2620.07 2702.39,2550.15C2768.57,2480.23 2801.66,2388.63 2801.66,2275.34C2801.66,2164.41 2768.57,2074.56 2702.39,2005.81C2636.21,1937.06 2552.51,1902.69 2451.29,1902.69ZM4084.87,1902.69C3984.09,1902.69 3900.49,1937.06 3834.09,2005.81C3767.68,2074.56 3734.48,2164.41 3734.48,2275.34C3734.48,2388.63 3767.68,2480.23 3834.09,2550.15C3900.49,2620.07 3984.09,2655.03 4084.87,2655.03C4182.52,2655.03 4264.75,2619.48 4331.55,2548.39C4398.34,2477.3 4431.74,2386.67 4431.74,2276.52C4431.74,2167.14 4398.93,2077.49 4333.31,2007.57C4267.68,1937.65 4184.87,1902.69 4084.87,1902.69Z" style="fill:white;"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -92,17 +92,13 @@ void LayerFooterPanel::paintEvent(QPaintEvent *event) {
m_noteArea->setFixedSize(o->rect(PredefinedRect::FOOTER_NOTE_AREA).size());
m_noteArea->setGeometry(noteObjRect);
static QPixmap zoomIn =
recolorPixmap(svgToPixmap(getIconThemePath("actions/15/zoom_in.svg")));
static QPixmap zoomInRollover = recolorPixmap(
svgToPixmap(getIconThemePath("actions/15/zoom_in_rollover.svg")));
const QRect zoomInImgRect = o->rect(PredefinedRect::ZOOM_IN);
static QPixmap zoomIn = generateIconPixmap("zoom_in");
static QPixmap zoomInRollover = generateIconPixmap("zoom_in_rollover");
const QRect zoomInImgRect = o->rect(PredefinedRect::ZOOM_IN);
static QPixmap zoomOut =
recolorPixmap(svgToPixmap(getIconThemePath("actions/15/zoom_out.svg")));
static QPixmap zoomOutRollover = recolorPixmap(
svgToPixmap(getIconThemePath("actions/15/zoom_out_rollover.svg")));
const QRect zoomOutImgRect = o->rect(PredefinedRect::ZOOM_OUT);
static QPixmap zoomOut = generateIconPixmap("zoom_out");
static QPixmap zoomOutRollover = generateIconPixmap("zoom_out_rollover");
const QRect zoomOutImgRect = o->rect(PredefinedRect::ZOOM_OUT);
// static QPixmap addLevel = svgToPixmap(":Resources/new_level.svg");
// static QPixmap addLevelRollover =

View file

@ -2,6 +2,7 @@
#include <QPainter>
#include <QToolTip>
#include <QToolButton>
#include "xsheetviewer.h"
#include "xshcolumnviewer.h"
@ -12,222 +13,80 @@
#include "toonz/tobjecthandle.h"
#include "toonz/preferences.h"
#include "../include/toonzqt/gutil.h"
using XsheetGUI::ColumnArea;
LayerHeaderPanel::LayerHeaderPanel(XsheetViewer *viewer, QWidget *parent,
Qt::WindowFlags flags)
: QWidget(parent, flags), m_viewer(viewer) {
const Orientation *o = Orientations::leftToRight();
QRect rect = o->rect(PredefinedRect::LAYER_HEADER_PANEL);
QHBoxLayout *layout = new QHBoxLayout(this);
setObjectName("layerHeaderPanel");
setFixedSize(rect.size());
setMouseTracking(true);
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(0);
m_previewButton = new QToolButton(this);
m_camstandButton = new QToolButton(this);
m_lockButton = new QToolButton(this);
// Define style and icon size for all buttons
QString buttonStyleSheet =
"QToolButton { padding: 0px; margin: 0px; }";
QSize iconSize(16, 16);
QSize buttonSize(20, 20);
QList<QToolButton *> buttonList = {m_previewButton, m_camstandButton,
m_lockButton};
for (auto &button : buttonList) {
button->setStyleSheet(buttonStyleSheet);
button->setIconSize(iconSize);
button->setFixedSize(buttonSize);
}
m_previewButton->setIcon(createQIcon("preview"));
m_camstandButton->setIcon(createQIcon("table"));
m_lockButton->setIcon(createQIcon("lock_on"));
connect(m_previewButton, &QToolButton::clicked, this,
&LayerHeaderPanel::onPreviewClicked);
connect(m_camstandButton, &QToolButton::clicked, this,
&LayerHeaderPanel::onCamstandClicked);
connect(m_lockButton, &QToolButton::clicked, this,
&LayerHeaderPanel::onLockClicked);
// Add widgets to the layout
layout->addWidget(m_previewButton);
layout->addWidget(m_camstandButton);
layout->addWidget(m_lockButton);
layout->addStretch();
setLayout(layout);
}
LayerHeaderPanel::~LayerHeaderPanel() {}
namespace {
QColor mix(const QColor &a, const QColor &b, double w) {
return QColor(a.red() * w + b.red() * (1 - w),
a.green() * w + b.green() * (1 - w),
a.blue() * w + b.blue() * (1 - w));
}
QColor withAlpha(const QColor &color, double alpha) {
QColor result(color);
result.setAlpha(alpha * 255);
return result;
}
QRect shorter(const QRect original) { return original.adjusted(0, 2, 0, -2); }
QLine leftSide(const QRect &r) { return QLine(r.topLeft(), r.bottomLeft()); }
QLine rightSide(const QRect &r) { return QLine(r.topRight(), r.bottomRight()); }
} // namespace
void LayerHeaderPanel::paintEvent(QPaintEvent *event) {
QPainter p(this);
p.setRenderHint(QPainter::SmoothPixmapTransform, true);
const Orientation *o = Orientations::leftToRight();
// removed by konero 6/3/20
//QColor background = m_viewer->getBGColor();
//QColor slightlyLighter = {mix(background, Qt::white, 0.95)};
//QRect rect = QRect(QPoint(0, 0), size());
//p.fillRect(rect.adjusted(0, 0, -3, 0), slightlyLighter);
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::PANEL_EYE, boost::none, preview);
drawIcon(p, PredefinedRect::PANEL_PREVIEW_LAYER, boost::none, camstand);
drawIcon(p, PredefinedRect::PANEL_LOCK, boost::none, lock);
// removed by konero 6/3/20
//QRect numberRect = o->rect(PredefinedRect::LAYER_NUMBER);
//int leftadj = 2;
//if (Preferences::instance()->isShowColumnNumbersEnabled()) {
// p.drawText(numberRect, Qt::AlignCenter | Qt::TextSingleLine, "#");
// leftadj += 20;
//}
//QRect nameRect =
// o->rect(PredefinedRect::PANEL_LAYER_NAME).adjusted(leftadj, 0, -1, 0);
//p.drawText(nameRect, Qt::AlignLeft | Qt::AlignVCenter | Qt::TextSingleLine,
// QObject::tr("Layer name"));
//drawLines(p, numberRect, nameRect);
}
void LayerHeaderPanel::drawIcon(QPainter &p, PredefinedRect rect,
optional<QColor> fill,
const QImage &image) const {
QRect iconRect =
Orientations::leftToRight()->rect(rect).adjusted(-2, 0, -2, 0);
if (fill) p.fillRect(iconRect, *fill);
p.drawImage(iconRect, image);
}
void LayerHeaderPanel::drawLines(QPainter &p, const QRect &numberRect,
const QRect &nameRect) const {
p.setPen(withAlpha(m_viewer->getTextColor(), 0.5));
QLine line = {leftSide(shorter(numberRect)).translated(-2, 0)};
p.drawLine(line);
if (Preferences::instance()->isShowColumnNumbersEnabled()) {
line = rightSide(shorter(numberRect)).translated(-2, 0);
p.drawLine(line);
}
line = rightSide(shorter(nameRect));
p.drawLine(line);
}
void LayerHeaderPanel::showOrHide(const Orientation *o) {
QRect rect = o->rect(PredefinedRect::LAYER_HEADER_PANEL);
if (rect.isEmpty())
hide();
else
show();
}
//-----------------------------------------------------------------------------
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();
m_doOnRelease = 0;
if (event->button() == Qt::LeftButton) {
// get mouse position
QPoint pos = event->pos();
// preview button
if (o->rect(PredefinedRect::EYE_AREA).contains(pos)) {
m_doOnRelease = ToggleAllPreviewVisible;
}
// camstand button
else if (o->rect(PredefinedRect::PREVIEW_LAYER_AREA).contains(pos)) {
m_doOnRelease = ToggleAllTransparency;
}
// lock button
else if (o->rect(PredefinedRect::LOCK_AREA).contains(pos)) {
m_doOnRelease = ToggleAllLock;
}
}
update();
}
void LayerHeaderPanel::mouseMoveEvent(QMouseEvent *event) {
const Orientation *o = Orientations::leftToRight();
QPoint pos = event->pos();
m_buttonHighlighted = NoButton;
// preview button
if (o->rect(PredefinedRect::EYE_AREA).contains(pos)) {
m_tooltip = tr("Preview Visibility 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_buttonHighlighted = CamstandButton;
}
// lock button
else if (o->rect(PredefinedRect::LOCK).contains(pos)) {
m_tooltip = tr("Lock Toggle All");
m_buttonHighlighted = LockButton;
} else {
m_tooltip = tr("");
}
m_pos = pos;
update();
}
//-----------------------------------------------------------------------------
bool LayerHeaderPanel::event(QEvent *event) {
if (event->type() == QEvent::ToolTip) {
if (!m_tooltip.isEmpty())
QToolTip::showText(mapToGlobal(m_pos), m_tooltip);
else
QToolTip::hideText();
}
return QWidget::event(event);
}
//-----------------------------------------------------------------------------
void LayerHeaderPanel::mouseReleaseEvent(QMouseEvent *event) {
void LayerHeaderPanel::toggleColumnVisibility(int visibilityFlag) {
TApp *app = TApp::instance();
TXsheet *xsh = m_viewer->getXsheet();
int col, totcols = xsh->getColumnCount();
bool sound_changed = false;
if (m_doOnRelease != 0 && totcols > 0) {
if (totcols > 0) {
int startCol =
Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0;
for (col = startCol; col < totcols; col++) {
if (startCol < 0 || !xsh->isColumnEmpty(col)) {
TXshColumn *column = xsh->getColumn(col);
if (m_doOnRelease == ToggleAllPreviewVisible) {
if (visibilityFlag == ToggleAllPreviewVisible) {
column->setPreviewVisible(!column->isPreviewVisible());
} else if (m_doOnRelease == ToggleAllTransparency) {
} else if (visibilityFlag == ToggleAllTransparency) {
column->setCamstandVisible(!column->isCamstandVisible());
if (column->getSoundColumn()) sound_changed = true;
} else if (m_doOnRelease == ToggleAllLock) {
} else if (visibilityFlag == ToggleAllLock) {
column->lock(!column->isLocked());
}
}
@ -242,5 +101,28 @@ void LayerHeaderPanel::mouseReleaseEvent(QMouseEvent *event) {
}
m_viewer->updateColumnArea();
update();
m_doOnRelease = 0;
}
//-----------------------------------------------------------------------------
void LayerHeaderPanel::onPreviewClicked() {
toggleColumnVisibility(ToggleAllPreviewVisible);
}
void LayerHeaderPanel::onCamstandClicked() {
toggleColumnVisibility(ToggleAllTransparency);
}
void LayerHeaderPanel::onLockClicked() {
toggleColumnVisibility(ToggleAllLock);
}
//-----------------------------------------------------------------------------
void LayerHeaderPanel::showOrHide(const Orientation *o) {
QRect rect = o->rect(PredefinedRect::LAYER_HEADER_PANEL);
if (rect.isEmpty())
hide();
else
show();
}

View file

@ -4,6 +4,7 @@
#define LAYER_HEADER_PANEL_INCLUDED
#include <QWidget>
#include <QToolButton>
#include <boost/optional.hpp>
#include "orientation.h"
@ -18,38 +19,27 @@ class LayerHeaderPanel final : public QWidget {
enum { ToggleAllTransparency = 1, ToggleAllPreviewVisible, ToggleAllLock };
enum { NoButton, PreviewButton, CamstandButton, LockButton };
public:
void toggleColumnVisibility(int visibilityFlag);
int m_doOnRelease;
QString m_tooltip;
QPoint m_pos;
int m_buttonHighlighted;
QToolButton *m_previewButton;
QToolButton *m_camstandButton;
QToolButton *m_lockButton;
private:
XsheetViewer *m_viewer;
public:
LayerHeaderPanel(XsheetViewer *viewer, QWidget *parent = 0,
Qt::WindowFlags flags = 0);
LayerHeaderPanel(XsheetViewer *viewer, QWidget *parent = nullptr,
Qt::WindowFlags flags = Qt::WindowFlags());
~LayerHeaderPanel();
void showOrHide(const Orientation *o);
protected:
void paintEvent(QPaintEvent *event) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
void enterEvent(QEvent *) override;
void leaveEvent(QEvent *) override;
bool event(QEvent *event) override;
private:
void drawIcon(QPainter &p, PredefinedRect rect, optional<QColor> fill,
const QImage &image) const;
void drawLines(QPainter &p, const QRect &numberRect,
const QRect &nameRect) const;
public slots:
void onPreviewClicked();
void onCamstandClicked();
void onLockClicked();
};
#endif

View file

@ -129,6 +129,7 @@ static void lastWarningError(QString msg) {
DVGui::error(msg);
// exit(0);
}
//-----------------------------------------------------------------------------
static void toonzRunOutOfContMemHandler(unsigned long size) {
@ -266,6 +267,9 @@ int main(int argc, char *argv[]) {
}
#endif
// Build icon map
ThemeManager::getInstance().buildIconPathsMap(":/icons");
// parsing arguments and qualifiers
TFilePath loadFilePath;
QString argumentLayoutFileName = "";
@ -417,6 +421,7 @@ int main(int argc, char *argv[]) {
#endif
#ifdef _WIN32
// BUG_WORKAROUND: #20230627
// This attribute is set to make menubar icon to be always (16 x devPixRatio).
// Without this attribute the menu bar icon size becomes the same as tool bar
// when Windows scale is in 125%. Currently hiding the menu bar icon is done
@ -442,11 +447,6 @@ int main(int argc, char *argv[]) {
}
#endif
// Set icon theme search paths
QStringList themeSearchPathsList = {":/icons"};
QIcon::setThemeSearchPaths(themeSearchPathsList);
// qDebug() << "All icon theme search paths:" << QIcon::themeSearchPaths();
// Set show icons in menus flag (use iconVisibleInMenu to disable selectively)
QApplication::instance()->setAttribute(Qt::AA_DontShowIconsInMenus, false);
@ -664,11 +664,6 @@ int main(int argc, char *argv[]) {
Qt::AlignRight | Qt::AlignBottom, Qt::black);
a.processEvents();
// Set default start icon theme
QIcon::setThemeName(Preferences::instance()->getIconTheme() ? "dark"
: "light");
// qDebug() << "Icon theme name:" << QIcon::themeName();
// stile
QApplication::setStyle("windows");

View file

@ -1369,8 +1369,8 @@ void MainWindow::onUpdateCheckerDone(bool error) {
dialog->deleteLater();
if (ret == 1) {
// Write the new last date to file
QDesktopServices::openUrl(QObject::tr(
"https://github.com/tahoma2d/tahoma2d/releases/latest"));
QDesktopServices::openUrl(
QObject::tr("https://github.com/tahoma2d/tahoma2d/releases/latest"));
}
}
@ -1460,6 +1460,7 @@ QAction *MainWindow::createAction(const char *id, const char *name,
action->setIconVisibleInMenu(visible);
#endif
// BUG_WORKAROUND: #20230627
// In Qt5.15.2 - Windows, QMenu stylesheet has alignment issue when one item
// has icon and another has not one. (See
// https://bugreports.qt.io/browse/QTBUG-90242 for details.) To avoid the
@ -1582,8 +1583,7 @@ QAction *MainWindow::createMenuViewAction(const char *id, const char *name,
//-----------------------------------------------------------------------------
QAction *MainWindow::createMenuWindowsAction(const char *id,
const char *name,
QAction *MainWindow::createMenuWindowsAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName,
QString newStatusTip) {
@ -1686,15 +1686,18 @@ QAction *MainWindow::createMiscAction(const char *id, const char *name,
//-----------------------------------------------------------------------------
QAction *MainWindow::createToolOptionsAction(const char *id,
const char *name,
QAction *MainWindow::createToolOptionsAction(const char *id, const char *name,
const QString &defaultShortcut,
QString newStatusTip) {
QString newStatusTip,
const char *iconSVGName) {
QAction *action = new DVAction(tr(name), this);
if (iconSVGName && *iconSVGName)
action->setIcon(createQIcon(iconSVGName, false, true));
addAction(action);
action->setStatusTip(newStatusTip);
CommandManager::instance()->define(id, ToolModifierCommandType,
defaultShortcut.toStdString(), action);
defaultShortcut.toStdString(), action,
iconSVGName);
return action;
}
@ -1715,8 +1718,8 @@ QAction *MainWindow::createToggle(const char *id, const char *name,
bool startStatus, CommandType type,
const char *iconSVGName,
QString newStatusTip) {
QAction *action = createAction(id, name, defaultShortcut, newStatusTip, type,
iconSVGName);
QAction *action =
createAction(id, name, defaultShortcut, newStatusTip, type, iconSVGName);
// Remove if the icon is not set. Checkbox will be drawn by style sheet.
if (!iconSVGName || !*iconSVGName) action->setIcon(QIcon());
#if defined(_WIN32)
@ -1768,44 +1771,51 @@ void MainWindow::defineActions() {
createMenuFileAction(MI_NewScene, QT_TR_NOOP("&New Scene"), "Ctrl+N",
"new_scene", tr("Create a new scene."));
createMenuFileAction(MI_LoadScene, QT_TR_NOOP("&Load Scene..."), "Ctrl+L",
"load_scene", tr("Load an existing scene."));
"load_scene", tr("Load an existing scene."));
createMenuFileAction(MI_SaveScene, QT_TR_NOOP("&Save Scene"), "Ctrl+Shift+S",
"save_scene", tr("Save ONLY the scene.") + separator +
tr("This does NOT save levels or images."));
"save_scene",
tr("Save ONLY the scene.") + separator +
tr("This does NOT save levels or images."));
createMenuFileAction(MI_SaveSceneAs, QT_TR_NOOP("&Save Scene As..."), "",
"save_scene_as", tr("Save ONLY the scene with a new name.") +
separator + tr("This does NOT save levels or images."));
createMenuFileAction(MI_SaveAll, QT_TR_NOOP("&Save All"), "Ctrl+S",
"saveall", tr("Save the scene info and the levels and images.") +
separator + tr("Saves everything."));
menuAct = createMenuFileAction(MI_RevertScene, QT_TR_NOOP("&Revert Scene"),
"", "revert_scene",
tr("Revert the scene to its previously saved state."));
"save_scene_as",
tr("Save ONLY the scene with a new name.") + separator +
tr("This does NOT save levels or images."));
createMenuFileAction(MI_SaveAll, QT_TR_NOOP("&Save All"), "Ctrl+S", "saveall",
tr("Save the scene info and the levels and images.") +
separator + tr("Saves everything."));
menuAct = createMenuFileAction(
MI_RevertScene, QT_TR_NOOP("&Revert Scene"), "", "revert_scene",
tr("Revert the scene to its previously saved state."));
menuAct->setEnabled(false);
QList<QString> files;
createMenuFileAction(MI_LoadFolder, QT_TR_NOOP("&Load Folder..."), "",
"load_folder", tr("Load the contents of a folder into the current scene."));
createMenuFileAction(MI_LoadSubSceneFile,
QT_TR_NOOP("&Load As Sub-Scene..."), "", "load_as_sub_xsheet",
tr("Load an existing scene into the current scene as a sub-scene"));
createMenuAction(MI_OpenRecentScene, QT_TR_NOOP("&Open Recent Scene File"), files,
tr("Load a recently used scene."));
createMenuAction(MI_OpenRecentLevel, QT_TR_NOOP("&Open Recent Level File"), files,
tr("Load a recently used level."));
createMenuFileAction(
MI_LoadFolder, QT_TR_NOOP("&Load Folder..."), "", "load_folder",
tr("Load the contents of a folder into the current scene."));
createMenuFileAction(
MI_LoadSubSceneFile, QT_TR_NOOP("&Load As Sub-Scene..."), "",
"load_as_sub_xsheet",
tr("Load an existing scene into the current scene as a sub-scene"));
createMenuAction(MI_OpenRecentScene, QT_TR_NOOP("&Open Recent Scene File"),
files, tr("Load a recently used scene."));
createMenuAction(MI_OpenRecentLevel, QT_TR_NOOP("&Open Recent Level File"),
files, tr("Load a recently used level."));
createMenuFileAction(MI_ClearRecentScene,
QT_TR_NOOP("&Clear Recent Scene File List"), "", "",
tr("Remove everything from the recent scene list."));
createMenuFileAction(MI_ClearRecentLevel,
QT_TR_NOOP("&Clear Recent level File List"), "", "",
tr("Remove everything from the recent level list."));
createMenuFileAction(MI_ConvertFileWithInput, QT_TR_NOOP("&Convert File..."), "",
"convert", tr("Convert an existing file or image sequence to another format."));
createMenuFileAction(
MI_ConvertFileWithInput, QT_TR_NOOP("&Convert File..."), "", "convert",
tr("Convert an existing file or image sequence to another format."));
createMenuFileAction(MI_ConvertTZPInFolder,
QT_TR_NOOP("&Convert TZP Files In Folder..."), "");
createMenuFileAction(MI_LoadColorModel, QT_TR_NOOP("&Load Color Model..."),
"", "load_colormodel", tr("Load an image as a color guide."));
"", "load_colormodel",
tr("Load an image as a color guide."));
createMenuFileAction(MI_ImportMagpieFile,
QT_TR_NOOP("&Import Toonz Lip Sync File..."), "", "dialogue_import",
QT_TR_NOOP("&Import Toonz Lip Sync File..."), "",
"dialogue_import",
tr("Import a lip sync file to be applied to a level."));
createMenuFileAction(MI_NewProject, QT_TR_NOOP("&New Project..."), "",
"new_project",
@ -1823,12 +1833,14 @@ void MainWindow::defineActions() {
"save_default_settings",
tr("Use the current scene's settings as a template for "
"all new scenes in the current project."));
createMenuFileAction(MI_SoundTrack, QT_TR_NOOP("&Export Soundtrack"), "",
"", tr("Exports the soundtrack to the current scene as a wav file."));
createMenuFileAction(
MI_SoundTrack, QT_TR_NOOP("&Export Soundtrack"), "", "",
tr("Exports the soundtrack to the current scene as a wav file."));
createMenuFileAction(MI_Preferences, QT_TR_NOOP("&Preferences..."), "Ctrl+U",
"gear", tr("Change Tahoma2D's settings."));
createMenuFileAction(MI_ShortcutPopup, QT_TR_NOOP("&Configure Shortcuts..."), "",
"shortcuts", tr("Change the shortcuts of Tahoma2D."));
createMenuFileAction(MI_ShortcutPopup, QT_TR_NOOP("&Configure Shortcuts..."),
"", "shortcuts",
tr("Change the shortcuts of Tahoma2D."));
createMenuFileAction(MI_PrintXsheet, QT_TR_NOOP("&Print Xsheet"), "",
"printer", tr("Print the scene's exposure sheet."));
@ -1846,14 +1858,17 @@ void MainWindow::defineActions() {
createMenuFileAction(
MI_ExportTvpJson,
QT_TRANSLATE_NOOP("MainWindow", "Export TVPaint JSON File"), "");
createMenuFileAction("MI_RunScript", QT_TR_NOOP("Run Script..."), "",
"run_script", tr("Run a script to perform a series of actions on a scene."));
createMenuFileAction("MI_OpenScriptConsole",
QT_TR_NOOP("Open Script Console..."), "",
"console", tr("Open a console window where you can enter script commands."));
createMenuFileAction(MI_Print, QT_TR_NOOP("&Print Current Frame..."),
createMenuFileAction(
"MI_RunScript", QT_TR_NOOP("Run Script..."), "", "run_script",
tr("Run a script to perform a series of actions on a scene."));
createMenuFileAction(
"MI_OpenScriptConsole", QT_TR_NOOP("Open Script Console..."), "",
"console",
tr("Open a console window where you can enter script commands."));
createMenuFileAction(MI_Print, QT_TR_NOOP("&Print Current Frame..."),
"Ctrl+P", "printer");
createMenuFileAction(MI_Quit, QT_TR_NOOP("&Quit"), "Ctrl+Q", "quit", tr("Bye."));
createMenuFileAction(MI_Quit, QT_TR_NOOP("&Quit"), "Ctrl+Q", "quit",
tr("Bye."));
#ifndef NDEBUG
createMenuFileAction("MI_ReloadStyle", QT_TR_NOOP("Reload qss"), "");
#endif
@ -1936,31 +1951,39 @@ void MainWindow::defineActions() {
createMenuLevelAction(MI_NewLevel, QT_TR_NOOP("&New Level..."), "Alt+N",
"new_level", tr("Create a new drawing layer."));
createMenuLevelAction(MI_NewVectorLevel, QT_TR_NOOP("&New Vector Level"), "",
"new_vector_level", tr("Create a new vector level.") +
separator + tr("Vectors can be manipulated easily and have "
"some extra tools and features."));
createMenuLevelAction(MI_NewToonzRasterLevel,
QT_TR_NOOP("&New Smart Raster Level"), "",
"new_toonz_raster_level", tr("Create a new Smart Raster level.") +
separator + tr("Smart Raster levels are color mapped making the colors easier to "
"adjust at any time."));
createMenuLevelAction(MI_NewRasterLevel, QT_TR_NOOP("&New Raster Level"), "",
"new_raster_level", tr("Create a new raster level") + separator +
tr("Raster levels are traditional drawing levels") + separator +
tr("Imported images will be imported as raster levels."));
"new_vector_level",
tr("Create a new vector level.") + separator +
tr("Vectors can be manipulated easily and have "
"some extra tools and features."));
createMenuLevelAction(
MI_NewToonzRasterLevel, QT_TR_NOOP("&New Smart Raster Level"), "",
"new_toonz_raster_level",
tr("Create a new Smart Raster level.") + separator +
tr("Smart Raster levels are color mapped making the colors easier to "
"adjust at any time."));
createMenuLevelAction(
MI_NewRasterLevel, QT_TR_NOOP("&New Raster Level"), "",
"new_raster_level",
tr("Create a new raster level") + separator +
tr("Raster levels are traditional drawing levels") + separator +
tr("Imported images will be imported as raster levels."));
createMenuLevelAction(MI_LoadLevel, QT_TR_NOOP("&Load Level..."), "",
"load_level", tr("Load an existing level."));
createMenuLevelAction(MI_SaveLevel, QT_TR_NOOP("&Save Level"), "",
"save_level", tr("Save the current level.") + separator +
tr("This does not save the scene info."));
createMenuLevelAction(MI_SaveAllLevels, QT_TR_NOOP("&Save All Levels"), "",
"save_all_levels", tr("Save all levels loaded into the scene.") +
separator + tr("This does not save the scene info."));
createMenuLevelAction(MI_SaveLevelAs, QT_TR_NOOP("&Save Level As..."), "",
"save_level_as", tr("Save the current level as a different name.") + separator +
tr("This does not save the scene info."));
"save_level",
tr("Save the current level.") + separator +
tr("This does not save the scene info."));
createMenuLevelAction(
MI_SaveAllLevels, QT_TR_NOOP("&Save All Levels"), "", "save_all_levels",
tr("Save all levels loaded into the scene.") + separator +
tr("This does not save the scene info."));
createMenuLevelAction(
MI_SaveLevelAs, QT_TR_NOOP("&Save Level As..."), "", "save_level_as",
tr("Save the current level as a different name.") + separator +
tr("This does not save the scene info."));
createMenuLevelAction(MI_ExportLevel, QT_TR_NOOP("&Export Level..."), "",
"export_level", tr("Export the current level as an image sequence."));
"export_level",
tr("Export the current level as an image sequence."));
createMenuLevelAction(MI_RemoveEndpoints,
QT_TR_NOOP("&Remove Vector Overflow"), "",
"remove_vector_overflow");
@ -2015,15 +2038,16 @@ void MainWindow::defineActions() {
"Replace Vectors with Simplified Vectors"),
"");
createMenuLevelAction(MI_Tracking, QT_TR_NOOP("Tracking..."), "", "focus");
createMenuLevelAction(MI_NewSpline, QT_TR_NOOP("&New Motion Path"), "",
"menu_toggle", tr("Create a new motion path.") + separator +
tr("Motion paths can be used as animation guides, or you can animate "
"objects along a motion path."));
createMenuLevelAction(
MI_NewSpline, QT_TR_NOOP("&New Motion Path"), "", "menu_toggle",
tr("Create a new motion path.") + separator +
tr("Motion paths can be used as animation guides, or you can animate "
"objects along a motion path."));
// Menu - Scene
createMenuXsheetAction(MI_SceneSettings, QT_TR_NOOP("&Scene Settings..."),
"", "scene_settings");
createMenuXsheetAction(MI_SceneSettings, QT_TR_NOOP("&Scene Settings..."), "",
"scene_settings");
createMenuXsheetAction(MI_CameraSettings, QT_TR_NOOP("&Camera Settings..."),
"", "camera_settings");
createMenuXsheetAction(MI_OpenChild, QT_TR_NOOP("&Open Sub-Scene"), "",
@ -2193,41 +2217,49 @@ void MainWindow::defineActions() {
"prevkey");
createMenuPlayAction(MI_ToggleBlankFrames, QT_TR_NOOP("Toggle Blank Frames"),
"", "blankframes");
// Menu - Render
createMenuRenderAction(MI_OutputSettings, QT_TR_NOOP("&Output Settings..."),
"Ctrl+O", "output_settings",
tr("Control the output settings for the current scene.") +
separator + tr("You can render from the output settings window also."));
createMenuRenderAction(MI_PreviewSettings, QT_TR_NOOP("&Preview Settings..."),
"", "preview_settings",
tr("Control the settings that will be used to preview the scene."));
createMenuRenderAction(
MI_OutputSettings, QT_TR_NOOP("&Output Settings..."), "Ctrl+O",
"output_settings",
tr("Control the output settings for the current scene.") + separator +
tr("You can render from the output settings window also."));
createMenuRenderAction(
MI_PreviewSettings, QT_TR_NOOP("&Preview Settings..."), "",
"preview_settings",
tr("Control the settings that will be used to preview the scene."));
createMenuRenderAction(MI_Render, QT_TR_NOOP("&Render"), "Ctrl+Shift+R",
"render", tr("Renders according to the settings and "
"location set in Output Settings."));
createMenuRenderAction(MI_FastRender, QT_TR_NOOP("&Fast Render to MP4"),
"Alt+R", "fast_render_mp4", tr("Exports an MP4 file to the location specified in the preferences.") +
separator + tr("This is quicker than going into the Output Settings "
"and setting up an MP4 render."));
createMenuRenderAction(MI_Preview,
QT_TR_NOOP("&Preview"), "Ctrl+R",
"preview", tr("Previews the current scene with all effects applied."));
createMenuRenderAction(MI_SavePreviewedFrames,
QT_TR_NOOP("&Save Previewed Frames"), "",
"save_previewed_frames", tr("Save the images created during preview to a specified location."));
"render",
tr("Renders according to the settings and "
"location set in Output Settings."));
createMenuRenderAction(
MI_FastRender, QT_TR_NOOP("&Fast Render to MP4"), "Alt+R",
"fast_render_mp4",
tr("Exports an MP4 file to the location specified in the preferences.") +
separator +
tr("This is quicker than going into the Output Settings "
"and setting up an MP4 render."));
createMenuRenderAction(
MI_Preview, QT_TR_NOOP("&Preview"), "Ctrl+R", "preview",
tr("Previews the current scene with all effects applied."));
createMenuRenderAction(
MI_SavePreviewedFrames, QT_TR_NOOP("&Save Previewed Frames"), "",
"save_previewed_frames",
tr("Save the images created during preview to a specified location."));
createToggle(MI_ToggleViewerPreview, QT_TR_NOOP("Toggle Viewer Preview"), "",
false, MenuRenderCommandType, "pane_preview");
createToggle(MI_ToggleViewerSubCameraPreview,
QT_TR_NOOP("Toggle Viewer Sub-camera Preview"), "", false,
MenuRenderCommandType, "pane_subpreview");
createMenuRenderAction(MI_SaveAndRender, QT_TR_NOOP("&Save and Render"), "", "render",
tr("Saves the current scene and renders according to the settings and "
"location set in Output Settings."));
createMenuRenderAction(
MI_SaveAndRender, QT_TR_NOOP("&Save and Render"), "", "render",
tr("Saves the current scene and renders according to the settings and "
"location set in Output Settings."));
// Menu - View
// Menu - View
createToggle(MI_ViewCamera, QT_TR_NOOP("&Camera Box"), "",
ViewCameraToggleAction ? 1 : 0, MenuViewCommandType);
createToggle(MI_ViewTable, QT_TR_NOOP("&Table"), "",
@ -2293,11 +2325,11 @@ void MainWindow::defineActions() {
// Menu - Panes
createMenuWindowsAction(MI_OpenFileBrowser, QT_TR_NOOP("&File Browser"), "",
"filebrowser");
createMenuWindowsAction(MI_OpenPreproductionBoard, QT_TR_NOOP("&Preproduction Board"), "",
"scenebrowser");
"filebrowser");
createMenuWindowsAction(MI_OpenPreproductionBoard,
QT_TR_NOOP("&Preproduction Board"), "", "");
createMenuWindowsAction(MI_OpenFileViewer, QT_TR_NOOP("&Flipbook"), "",
"flipbook");
"flipbook");
createMenuWindowsAction(MI_OpenFunctionEditor, QT_TR_NOOP("&Function Editor"),
"", "function_editor");
createMenuWindowsAction(MI_OpenFilmStrip, QT_TR_NOOP("&Level Strip"), "",
@ -2362,14 +2394,16 @@ void MainWindow::defineActions() {
QT_TR_NOOP("&Custom Panel Editor..."), "", "");
// menuAct = createToggle(MI_DockingCheck, QT_TR_NOOP("&Lock Room Panes"), "",
// DockingCheckToggleAction ? 1 : 0, MenuWindowsCommandType);
// DockingCheckToggleAction ? 1 : 0,
// MenuWindowsCommandType);
// DockingCheck::instance()->setToggle(menuAct);
createMenuWindowsAction(MI_OpenExport, QT_TR_NOOP("&Export"), "");
createMenuWindowsAction(MI_OpenMotionPathPanel, QT_TR_NOOP("&Motion Paths"), "");
createMenuWindowsAction(MI_OpenMotionPathPanel, QT_TR_NOOP("&Motion Paths"),
"");
// Menu - Help
createMenuHelpAction(MI_OpenOnlineManual, QT_TR_NOOP("&Online Manual..."),
createMenuHelpAction(MI_OpenOnlineManual, QT_TR_NOOP("&Online Manual..."),
"F1", "manual");
createMenuHelpAction(MI_OpenWhatsNew, QT_TR_NOOP("&What's New..."), "",
"web");
@ -2392,11 +2426,12 @@ void MainWindow::defineActions() {
// Right Click
createRightClickMenuAction(MI_SavePaletteAs,
QT_TR_NOOP("&Save Palette As..."), "", "saveas",
tr("Save the current style palette as a separate file with a new name."));
createRightClickMenuAction(MI_OverwritePalette, QT_TR_NOOP("&Save Palette"),
"", "save", tr("Save the current style palette as a separate file."));
createRightClickMenuAction(
MI_SavePaletteAs, QT_TR_NOOP("&Save Palette As..."), "", "saveas",
tr("Save the current style palette as a separate file with a new name."));
createRightClickMenuAction(
MI_OverwritePalette, QT_TR_NOOP("&Save Palette"), "", "save",
tr("Save the current style palette as a separate file."));
createRightClickMenuAction(MI_RegeneratePreview,
QT_TR_NOOP("&Regenerate Preview"), "", "",
tr("Recreates a set of preview images."));
@ -2404,7 +2439,8 @@ void MainWindow::defineActions() {
QT_TR_NOOP("&Regenerate Frame Preview"), "", "",
tr("Regenerate the frame preview."));
createRightClickMenuAction(MI_ClonePreview, QT_TR_NOOP("&Clone Preview"), "",
"", tr("Creates a clone of the previewed images."));
"",
tr("Creates a clone of the previewed images."));
createRightClickMenuAction(MI_FreezePreview,
QT_TR_NOOP("&Freeze//Unfreeze Preview"), "", "",
tr("Prevent the preview from being updated."));
@ -2434,7 +2470,8 @@ void MainWindow::defineActions() {
createRightClickMenuAction(MI_SetKeyframes, QT_TR_NOOP("&Set Key"), "Z",
"set_key");
createRightClickMenuAction(MI_ShiftKeyframesDown,
QT_TR_NOOP("&Shift Keys Down"), "", "shift_keys_down");
QT_TR_NOOP("&Shift Keys Down"), "",
"shift_keys_down");
createRightClickMenuAction(MI_ShiftKeyframesUp, QT_TR_NOOP("&Shift Keys Up"),
"", "shift_keys_up");
createRightClickMenuAction(MI_PasteNumbers, QT_TR_NOOP("&Paste Numbers"), "",
@ -2450,8 +2487,8 @@ void MainWindow::defineActions() {
RightClickMenuCommandType, "onionskin_toggle");
createToggle(MI_ZeroThick, QT_TR_NOOP("Zero Thick Lines"), "Shift+/", false,
RightClickMenuCommandType, "zero_thick_lines");
createToggle(MI_CursorOutline, QT_TR_NOOP("Toggle Cursor Size Outline"), "", false,
RightClickMenuCommandType);
createToggle(MI_CursorOutline, QT_TR_NOOP("Toggle Cursor Size Outline"), "",
false, RightClickMenuCommandType);
createRightClickMenuAction(MI_ToggleCurrentTimeIndicator,
QT_TR_NOOP("Toggle Current Time Indicator"), "");
createRightClickMenuAction(MI_DuplicateFile, QT_TR_NOOP("Duplicate"), "",
@ -2570,19 +2607,22 @@ void MainWindow::defineActions() {
createRightClickMenuAction(MI_EraseUnusedStyles,
QT_TR_NOOP("&Delete Unused Styles"), "",
"delete_unused_styles");
// createRightClickMenuAction(MI_LoadSubSceneFile, QT_TR_NOOP("Load As Sub-xsheet"), "");
// createRightClickMenuAction(MI_LoadResourceFile, QT_TR_NOOP("Load"), "");
// createRightClickMenuAction(MI_PremultiplyFile, QT_TR_NOOP("Premultiply"), "");
// createRightClickMenuAction(MI_OpenCurrentScene, QT_TR_NOOP("&Current Scene"), "");
createRightClickMenuAction(MI_SaveStudioPalette, QT_TR_NOOP("&Save Studio Palette"),
"", "", tr("Save the current Studio Palette."));
// createRightClickMenuAction(MI_LoadSubSceneFile, QT_TR_NOOP("Load As
// Sub-xsheet"), ""); createRightClickMenuAction(MI_LoadResourceFile,
// QT_TR_NOOP("Load"), ""); createRightClickMenuAction(MI_PremultiplyFile,
// QT_TR_NOOP("Premultiply"), "");
// createRightClickMenuAction(MI_OpenCurrentScene, QT_TR_NOOP("&Current
// Scene"), "");
createRightClickMenuAction(MI_SaveStudioPalette,
QT_TR_NOOP("&Save Studio Palette"), "", "",
tr("Save the current Studio Palette."));
createRightClickMenuAction(MI_SaveAsDefaultPalette,
QT_TR_NOOP("&Save As Default Palette"), "", "",
tr("Save the current style palette as the default "
"for new levels of the current level type."));
"for new levels of the current level type."));
createToggle(MI_ToggleAutoCreate, QT_TR_NOOP("Toggle Auto-Creation"), "",
Preferences::instance()->isAutoCreateEnabled(),
MiscCommandType, "auto_create",
Preferences::instance()->isAutoCreateEnabled(), MiscCommandType,
"auto_create",
tr("Toggles the auto-creation of frames when drawing in blank "
"cells on the timeline/xsheet."));
createToggle(MI_ToggleCreationInHoldCells,
@ -2592,8 +2632,8 @@ void MainWindow::defineActions() {
tr("Toggles the auto-creation of frames when drawing in held "
"cells on the timeline/xsheet."));
createToggle(MI_ToggleAutoStretch, QT_TR_NOOP("Toggle Auto-Stretch"), "",
Preferences::instance()->isAutoStretchEnabled(),
MiscCommandType, "auto_stretch",
Preferences::instance()->isAutoStretchEnabled(), MiscCommandType,
"auto_stretch",
tr("Toggles the auto-stretch of a frame to the next frame"));
createToggle(MI_ViewerIndicator, QT_TR_NOOP("Toggle Viewer Indicators"), "",
Preferences::instance()->isViewerIndicatorEnabled(),
@ -2607,9 +2647,10 @@ void MainWindow::defineActions() {
createToolAction(T_Edit, "animate", QT_TR_NOOP("Animate Tool"), "A",
tr("Animate Tool: Modifies the position, rotation and size "
"of the current column"));
createToolAction(T_Selection, "selection", QT_TR_NOOP("Selection Tool"), "S",
tr("Selection Tool: Select parts of your image to transform it."));
"of the current column"));
createToolAction(
T_Selection, "selection", QT_TR_NOOP("Selection Tool"), "S",
tr("Selection Tool: Select parts of your image to transform it."));
createToolAction(T_Brush, "brush", QT_TR_NOOP("Brush Tool"), "B",
tr("Brush Tool: Draws in the work area freehand"));
createToolAction(T_Geometric, "geometric", QT_TR_NOOP("Geometry Tool"), "G",
@ -2618,29 +2659,33 @@ void MainWindow::defineActions() {
tr("Type Tool: Adds text"));
createToolAction(T_Fill, "fill", QT_TR_NOOP("Fill Tool"), "F",
tr("Fill Tool: Fills drawing areas with the current style"));
createToolAction(T_PaintBrush, "paintbrush", QT_TR_NOOP("Smart Raster Paint Tool"),
"", tr("Smart Raster Paint: Paints areas in Smart Raster levels"));
createToolAction(
T_PaintBrush, "paintbrush", QT_TR_NOOP("Smart Raster Paint Tool"), "",
tr("Smart Raster Paint: Paints areas in Smart Raster levels"));
createToolAction(T_Eraser, "eraser", QT_TR_NOOP("Eraser Tool"), "E",
tr("Eraser Tool: Erases lines and areas"));
createToolAction(T_Tape, "tape", QT_TR_NOOP("Tape Tool"), "T",
tr("Tape Tool: Closes gaps in raster, joins edges in vector"));
createToolAction(
T_Tape, "tape", QT_TR_NOOP("Tape Tool"), "T",
tr("Tape Tool: Closes gaps in raster, joins edges in vector"));
createToolAction(T_StylePicker, "stylepicker",
QT_TR_NOOP("Style Picker Tool"), "K",
tr("Style Picker: Selects style on current drawing"));
createToolAction(T_RGBPicker, "rgbpicker", QT_TR_NOOP("RGB Picker Tool"),
"R", tr("RGB Picker: Picks color on screen and applies to current style"));
createToolAction(
T_RGBPicker, "rgbpicker", QT_TR_NOOP("RGB Picker Tool"), "R",
tr("RGB Picker: Picks color on screen and applies to current style"));
createToolAction(T_ControlPointEditor, "controlpointeditor",
QT_TR_NOOP("Control Point Editor Tool"), "C",
tr("Control Point Editor: Modifies vector lines by editing "
"its control points"));
"its control points"));
createToolAction(T_Pinch, "pinch", QT_TR_NOOP("Pinch Tool"), "M",
tr("Pinch Tool: Pulls vector drawings"));
createToolAction(T_Pump, "pump", QT_TR_NOOP("Pump Tool"), "",
tr("Pump Tool: Changes vector thickness"));
createToolAction(T_Magnet, "magnet", QT_TR_NOOP("Magnet Tool"), "",
tr("Magnet Tool: Deforms vector lines"));
createToolAction(T_Bender, "bender", QT_TR_NOOP("Bender Tool"), "",
tr("Bender Tool: Bends vector shapes around the first click"));
createToolAction(
T_Bender, "bender", QT_TR_NOOP("Bender Tool"), "",
tr("Bender Tool: Bends vector shapes around the first click"));
createToolAction(T_Iron, "iron", QT_TR_NOOP("Iron Tool"), "",
tr("Iron Tool: Smooths out vector lines"));
@ -2648,9 +2693,10 @@ void MainWindow::defineActions() {
tr("Cutter Tool: Splits vector lines"));
createToolAction(T_Skeleton, "skeleton", QT_TR_NOOP("Skeleton Tool"), "V",
tr("Skeleton Tool: Allows to build a skeleton and animate "
"in a cut-out workflow"));
createToolAction(T_Tracker, "radar", QT_TR_NOOP("Tracker Tool"), "",
tr("Tracker Tool: Tracks specific regions in a sequence of images"));
"in a cut-out workflow"));
createToolAction(
T_Tracker, "radar", QT_TR_NOOP("Tracker Tool"), "",
tr("Tracker Tool: Tracks specific regions in a sequence of images"));
createToolAction(T_Hook, "hook", QT_TR_NOOP("Hook Tool"), "O");
createToolAction(T_Zoom, "zoom", QT_TR_NOOP("Zoom Tool"), "Shift+Space",
tr("Zoom Tool: Zooms viewer"));
@ -2660,7 +2706,7 @@ void MainWindow::defineActions() {
tr("Hand Tool: Pans the workspace"));
createToolAction(T_Plastic, "plastic", QT_TR_NOOP("Plastic Tool"), "X",
tr("Plastic Tool: Builds a mesh that allows to deform and "
"animate a level"));
"animate a level"));
createToolAction(T_Ruler, "ruler", QT_TR_NOOP("Ruler Tool"), "",
tr("Ruler Tool: Measure distances on the canvas"));
createToolAction(T_PerspectiveGrid, "perspective_grid",
@ -2688,41 +2734,41 @@ void MainWindow::defineActions() {
ToolCommandType, "edit_all");
/*-- Selection tool + type switching shortcuts --*/
createAction(MI_SelectionNextType, QT_TR_NOOP("Selection Tool - Next Type"), "",
"", ToolCommandType);
createAction(MI_SelectionNextType, QT_TR_NOOP("Selection Tool - Next Type"),
"", "", ToolCommandType);
createAction(MI_SelectionRectangular,
QT_TR_NOOP("Selection Tool - Rectangular"), "", "", ToolCommandType,
"selection_rectangular");
createAction(MI_SelectionFreehand, QT_TR_NOOP("Selection Tool - Freehand"), "", "",
ToolCommandType, "selection_freehand");
createAction(MI_SelectionPolyline, QT_TR_NOOP("Selection Tool - Polyline"), "", "",
ToolCommandType, "selection_polyline");
QT_TR_NOOP("Selection Tool - Rectangular"), "", "",
ToolCommandType, "selection_rectangular");
createAction(MI_SelectionFreehand, QT_TR_NOOP("Selection Tool - Freehand"),
"", "", ToolCommandType, "selection_freehand");
createAction(MI_SelectionPolyline, QT_TR_NOOP("Selection Tool - Polyline"),
"", "", ToolCommandType, "selection_polyline");
/*-- Brush tool + mode switching shortcuts --*/
createAction(MI_BrushAutoFillOn, QT_TR_NOOP("Brush Tool - Auto Fill On"), "", "",
ToolCommandType);
createAction(MI_BrushAutoFillOff, QT_TR_NOOP("Brush Tool - Auto Fill Off"), "", "",
ToolCommandType);
createAction(MI_BrushAutoFillOn, QT_TR_NOOP("Brush Tool - Auto Fill On"), "",
"", ToolCommandType);
createAction(MI_BrushAutoFillOff, QT_TR_NOOP("Brush Tool - Auto Fill Off"),
"", "", ToolCommandType);
/*-- Geometric tool + shape switching shortcuts --*/
createAction(MI_GeometricNextShape, QT_TR_NOOP("Geometric Tool - Next Shape"), "",
"", ToolCommandType);
createAction(MI_GeometricRectangle, QT_TR_NOOP("Geometric Tool - Rectangle"), "",
"", ToolCommandType, "geometric_rectangle");
createAction(MI_GeometricCircle, QT_TR_NOOP("Geometric Tool - Circle"), "", "",
ToolCommandType, "geometric_circle");
createAction(MI_GeometricEllipse, QT_TR_NOOP("Geometric Tool - Ellipse"), "", "",
ToolCommandType, "geometric_ellipse");
createAction(MI_GeometricNextShape, QT_TR_NOOP("Geometric Tool - Next Shape"),
"", "", ToolCommandType);
createAction(MI_GeometricRectangle, QT_TR_NOOP("Geometric Tool - Rectangle"),
"", "", ToolCommandType, "geometric_rectangle");
createAction(MI_GeometricCircle, QT_TR_NOOP("Geometric Tool - Circle"), "",
"", ToolCommandType, "geometric_circle");
createAction(MI_GeometricEllipse, QT_TR_NOOP("Geometric Tool - Ellipse"), "",
"", ToolCommandType, "geometric_ellipse");
createAction(MI_GeometricLine, QT_TR_NOOP("Geometric Tool - Line"), "", "",
ToolCommandType, "geometric_line");
createAction(MI_GeometricPolyline, QT_TR_NOOP("Geometric Tool - Polyline"), "",
"", ToolCommandType, "geometric_polyline");
createAction(MI_GeometricPolyline, QT_TR_NOOP("Geometric Tool - Polyline"),
"", "", ToolCommandType, "geometric_polyline");
createAction(MI_GeometricArc, QT_TR_NOOP("Geometric Tool - Arc"), "", "",
ToolCommandType, "geometric_arc");
createAction(MI_GeometricMultiArc, QT_TR_NOOP("Geometric Tool - MultiArc"), "",
"", ToolCommandType, "geometric_multiarc");
createAction(MI_GeometricPolygon, QT_TR_NOOP("Geometric Tool - Polygon"), "", "",
ToolCommandType, "geometric_polygon");
createAction(MI_GeometricMultiArc, QT_TR_NOOP("Geometric Tool - MultiArc"),
"", "", ToolCommandType, "geometric_multiarc");
createAction(MI_GeometricPolygon, QT_TR_NOOP("Geometric Tool - Polygon"), "",
"", ToolCommandType, "geometric_polygon");
/*-- Type tool + style switching shortcuts --*/
createAction(MI_TypeNextStyle, QT_TR_NOOP("Type Tool - Next Style"), "", "",
@ -2731,8 +2777,8 @@ void MainWindow::defineActions() {
ToolCommandType);
createAction(MI_TypeRegular, QT_TR_NOOP("Type Tool - Regular"), "", "",
ToolCommandType);
createAction(MI_TypeBoldOblique, QT_TR_NOOP("Type Tool - Bold Oblique"), "", "",
ToolCommandType);
createAction(MI_TypeBoldOblique, QT_TR_NOOP("Type Tool - Bold Oblique"), "",
"", ToolCommandType);
createAction(MI_TypeBold, QT_TR_NOOP("Type Tool - Bold"), "", "",
ToolCommandType);
@ -2774,8 +2820,8 @@ void MainWindow::defineActions() {
ToolCommandType);
createAction(MI_EraserNormal, QT_TR_NOOP("Eraser Tool - Normal"), "", "",
ToolCommandType);
createAction(MI_EraserRectangular, QT_TR_NOOP("Eraser Tool - Rectangular"), "", "",
ToolCommandType);
createAction(MI_EraserRectangular, QT_TR_NOOP("Eraser Tool - Rectangular"),
"", "", ToolCommandType);
createAction(MI_EraserFreehand, QT_TR_NOOP("Eraser Tool - Freehand"), "", "",
ToolCommandType);
createAction(MI_EraserPolyline, QT_TR_NOOP("Eraser Tool - Polyline"), "", "",
@ -2816,8 +2862,8 @@ void MainWindow::defineActions() {
/*-- RGB Picker tool + type switching shortcuts --*/
createAction(MI_RGBPickerNextType, QT_TR_NOOP("RGB Picker Tool - Next Type"),
"", "", ToolCommandType);
createAction(MI_RGBPickerNormal, QT_TR_NOOP("RGB Picker Tool - Normal"), "", "",
ToolCommandType);
createAction(MI_RGBPickerNormal, QT_TR_NOOP("RGB Picker Tool - Normal"), "",
"", ToolCommandType);
createAction(MI_RGBPickerRectangular,
QT_TR_NOOP("RGB Picker Tool - Rectangular"), "", "",
ToolCommandType);
@ -2827,22 +2873,22 @@ void MainWindow::defineActions() {
"", "", ToolCommandType);
/*-- Skeleton tool + mode switching shortcuts --*/
createAction(MI_SkeletonNextMode, QT_TR_NOOP("Skeleton Tool - Next Mode"), "", "",
ToolCommandType);
createAction(MI_SkeletonNextMode, QT_TR_NOOP("Skeleton Tool - Next Mode"), "",
"", ToolCommandType);
createAction(MI_SkeletonBuildSkeleton,
QT_TR_NOOP("Skeleton Tool - Build Skeleton"), "", "",
ToolCommandType);
createAction(MI_SkeletonAnimate, QT_TR_NOOP("Skeleton Tool - Animate"), "", "",
ToolCommandType);
createAction(MI_SkeletonAnimate, QT_TR_NOOP("Skeleton Tool - Animate"), "",
"", ToolCommandType);
createAction(MI_SkeletonInverseKinematics,
QT_TR_NOOP("Skeleton Tool - Inverse Kinematics"), "", "",
ToolCommandType);
/*-- Plastic tool + mode switching shortcuts --*/
createAction(MI_PlasticNextMode, QT_TR_NOOP("Plastic Tool - Next Mode"), "", "",
ToolCommandType);
createAction(MI_PlasticEditMesh, QT_TR_NOOP("Plastic Tool - Edit Mesh"), "", "",
ToolCommandType);
createAction(MI_PlasticNextMode, QT_TR_NOOP("Plastic Tool - Next Mode"), "",
"", ToolCommandType);
createAction(MI_PlasticEditMesh, QT_TR_NOOP("Plastic Tool - Edit Mesh"), "",
"", ToolCommandType);
createAction(MI_PlasticPaintRigid, QT_TR_NOOP("Plastic Tool - Paint Rigid"),
"", "", ToolCommandType);
createAction(MI_PlasticBuildSkeleton,
@ -2956,15 +3002,15 @@ void MainWindow::defineActions() {
createToolOptionsAction("A_ToolOption_GeometricEdge",
QT_TR_NOOP("Geometric Edge"), "");
createToolOptionsAction("A_ToolOption_Mode", QT_TR_NOOP("Mode"), "");
menuAct = createToolOptionsAction("A_ToolOption_Mode:Areas",
QT_TR_NOOP("Mode - Areas"), "");
menuAct->setIcon(createQIcon("mode_areas"));
menuAct = createToolOptionsAction("A_ToolOption_Mode:Lines",
QT_TR_NOOP("Mode - Lines"), "");
menuAct->setIcon(createQIcon("mode_lines"));
menuAct =
createToolOptionsAction("A_ToolOption_Mode:Areas",
QT_TR_NOOP("Mode - Areas"), "", "", "mode_areas");
menuAct =
createToolOptionsAction("A_ToolOption_Mode:Lines",
QT_TR_NOOP("Mode - Lines"), "", "", "mode_lines");
menuAct = createToolOptionsAction("A_ToolOption_Mode:Lines & Areas",
QT_TR_NOOP("Mode - Lines && Areas"), "");
menuAct->setIcon(createQIcon("mode_areas_lines"));
QT_TR_NOOP("Mode - Lines && Areas"), "", "",
"mode_areas_lines");
createToolOptionsAction("A_ToolOption_Mode:Endpoint to Endpoint",
QT_TR_NOOP("Mode - Endpoint to Endpoint"), "");
createToolOptionsAction("A_ToolOption_Mode:Endpoint to Line",
@ -2974,28 +3020,28 @@ void MainWindow::defineActions() {
createToolOptionsAction("A_ToolOption_Type", QT_TR_NOOP("Type"), "");
menuAct = createToolOptionsAction("A_ToolOption_Type:Normal",
QT_TR_NOOP("Type - Normal"), "");
menuAct->setIcon(createQIcon("type_normal"));
QT_TR_NOOP("Type - Normal"), "", "",
"type_normal");
menuAct = createToolOptionsAction("A_ToolOption_Type:Rectangular",
QT_TR_NOOP("Type - Rectangular"), "F5");
menuAct->setIcon(createQIcon("type_rectangular"));
QT_TR_NOOP("Type - Rectangular"), "F5", "",
"type_rectangular");
menuAct = createToolOptionsAction("A_ToolOption_Type:Freehand",
QT_TR_NOOP("Type - Freehand"), "");
menuAct->setIcon(createQIcon("type_lasso"));
QT_TR_NOOP("Type - Freehand"), "", "",
"type_lasso");
menuAct = createToolOptionsAction("A_ToolOption_Type:Polyline",
QT_TR_NOOP("Type - Polyline"), "");
menuAct->setIcon(createQIcon("type_polyline"));
QT_TR_NOOP("Type - Polyline"), "", "",
"type_polyline");
menuAct = createToolOptionsAction("A_ToolOption_Type:Freepick",
QT_TR_NOOP("Type - Pick+Freehand"), "");
menuAct->setIcon(createQIcon("type_pickerlasso"));
QT_TR_NOOP("Type - Pick+Freehand"), "", "",
"type_pickerlasso");
menuAct = createToolOptionsAction("A_ToolOption_Type:Segment",
QT_TR_NOOP("Type - Segment"), "");
menuAct->setIcon(createQIcon("type_erase_segment"));
QT_TR_NOOP("Type - Segment"), "", "",
"type_erase_segment");
createToolOptionsAction("A_ToolOption_TypeFont", QT_TR_NOOP("TypeTool Font"),
"");
@ -3054,11 +3100,13 @@ void MainWindow::defineActions() {
menuAct =
createToolOptionsAction("A_ToolOption_AutopaintLines",
QT_TR_NOOP("Fill Tool - Autopaint Lines"), "");
menuAct->setIcon(createQIcon("fill_auto"));
menuAct->setIcon(createQIcon("toggle_autofill"));
// createToolOptionsAction("A_ToolOption_Link", QT_TR_NOOP("Link"), "");
createToolOptionsAction("A_ToolOption_AutoClose", QT_TR_NOOP("Auto Close"), "");
createToolOptionsAction("A_ToolOption_DrawUnder", QT_TR_NOOP("Draw Under"), "");
createToolOptionsAction("A_ToolOption_AutoClose", QT_TR_NOOP("Auto Close"),
"");
createToolOptionsAction("A_ToolOption_DrawUnder", QT_TR_NOOP("Draw Under"),
"");
createToolOptionsAction("A_ToolOption_FlipHorizontal",
QT_TR_NOOP("Flip Selection/Object Horizontally"), "");
@ -3090,15 +3138,15 @@ void MainWindow::defineActions() {
"");
menuAct = createToggle(MI_ShowStatusBar, QT_TR_NOOP("&Show Status Bar"), "",
ShowStatusBarAction ? 1 : 0, MenuViewCommandType);
connect(menuAct, SIGNAL(triggered(bool)), this,
SLOT(toggleStatusBar(bool)));
menuAct = createToggle(MI_ToggleTransparent, QT_TR_NOOP("&Toggle Transparency"),
"", 0, MenuViewCommandType);
connect(menuAct, SIGNAL(triggered(bool)), this, SLOT(toggleStatusBar(bool)));
menuAct =
createToggle(MI_ToggleTransparent, QT_TR_NOOP("&Toggle Transparency"), "",
0, MenuViewCommandType);
connect(menuAct, SIGNAL(triggered(bool)), this,
SLOT(toggleTransparency(bool)));
connect(m_transparencyTogglerWindow, &QDialog::finished, [=](int result) {
toggleTransparency(false);
menuAct->setChecked(false);
toggleTransparency(false);
menuAct->setChecked(false);
});
// Following actions are for adding "Visualization" menu items to the command
@ -3120,26 +3168,25 @@ void MainWindow::defineActions() {
createVisualizationButtonAction(
VB_ActualPixelSize, QT_TR_NOOP("Actual Pixel Size"), "actual_pixel_size");
createVisualizationButtonAction(
VB_FlipX, QT_TR_NOOP("Flip Viewer Horizontally"), "fliphoriz_off");
VB_FlipX, QT_TR_NOOP("Flip Viewer Horizontally"), "fliphoriz");
createVisualizationButtonAction(
VB_FlipY, QT_TR_NOOP("Flip Viewer Vertically"), "flipvert_off");
VB_FlipY, QT_TR_NOOP("Flip Viewer Vertically"), "flipvert");
// Misc
menuAct =
createToggle(MI_TouchGestureControl, QT_TR_NOOP("&Touch Gesture Control"),
createToggle(MI_TouchGestureControl, QT_TR_NOOP("&Touch Gesture Control"),
"", TouchGestureControl ? 1 : 0, MiscCommandType, "touch");
menuAct->setEnabled(true);
createMiscAction(MI_CameraStage, QT_TR_NOOP("&Camera Settings..."), "");
menuAct =
createMiscAction(MI_RefreshTree, QT_TR_NOOP("Refresh Folder Tree"), "");
menuAct->setIconText(tr("Refresh"));
menuAct->setIcon(createQIcon("refresh", false, true));
createMiscAction("A_FxSchematicToggle",
QT_TR_NOOP("Toggle FX/Stage schematic"), "");
// createAction(MI_SavePreview, QT_TR_NOOP("&Save Preview"), "");
// createAction(MI_TestAnimation, QT_TR_NOOP("Test Animation"), "Ctrl+Return");
// createAction(MI_Export, QT_TR_NOOP("Export"), "Ctrl+E");
// createAction(MI_TestAnimation, QT_TR_NOOP("Test Animation"),
// "Ctrl+Return"); createAction(MI_Export, QT_TR_NOOP("Export"), "Ctrl+E");
// RGBA
@ -3156,10 +3203,11 @@ void MainWindow::defineActions() {
// Stop Motion
createStopMotionAction(MI_StopMotionExportImageSequence,
QT_TR_NOOP("&Export Stop Motion Image Sequence"), "",
"", tr("Exports the full resolution stop motion image sequence.") +
separator + tr("This is especially useful if using a DSLR camera."));
createStopMotionAction(
MI_StopMotionExportImageSequence,
QT_TR_NOOP("&Export Stop Motion Image Sequence"), "", "",
tr("Exports the full resolution stop motion image sequence.") +
separator + tr("This is especially useful if using a DSLR camera."));
createStopMotionAction(MI_StopMotionCapture,
QT_TR_NOOP("Capture Stop Motion Frame"), "");
createStopMotionAction(MI_StopMotionRaiseOpacity,
@ -3192,8 +3240,8 @@ void MainWindow::defineActions() {
std::string cmdId = (std::string)MI_SetCellMark + std::to_string(markId);
std::string labelStr =
QT_TR_NOOP("Set Cell Mark ") + std::to_string(markId);
QAction *action =
createAction(cmdId.c_str(), labelStr.c_str(), "", "", CellMarkCommandType);
QAction *action = createAction(cmdId.c_str(), labelStr.c_str(), "", "",
CellMarkCommandType);
action->setData(markId);
}
}
@ -3442,12 +3490,10 @@ RecentFiles::~RecentFiles() {}
void RecentFiles::addFilePath(QString path, FileType fileType,
QString projectName) {
QList<QString> files =
(fileType == Scene) ? m_recentScenes : (fileType == Level)
? m_recentLevels
: (fileType == Project)
? m_recentProjects
: m_recentFlipbookImages;
QList<QString> files = (fileType == Scene) ? m_recentScenes
: (fileType == Level) ? m_recentLevels
: (fileType == Project) ? m_recentProjects
: m_recentFlipbookImages;
int i;
for (i = 0; i < files.size(); i++)
if (files.at(i) == path) {
@ -3506,12 +3552,10 @@ void RecentFiles::removeFilePath(int index, FileType fileType) {
//-----------------------------------------------------------------------------
QString RecentFiles::getFilePath(int index, FileType fileType) const {
return (fileType == Scene)
? m_recentScenes[index]
: (fileType == Level)
? m_recentLevels[index]
: (fileType == Project) ? m_recentProjects[index]
: m_recentFlipbookImages[index];
return (fileType == Scene) ? m_recentScenes[index]
: (fileType == Level) ? m_recentLevels[index]
: (fileType == Project) ? m_recentProjects[index]
: m_recentFlipbookImages[index];
}
//-----------------------------------------------------------------------------
@ -3647,12 +3691,10 @@ void RecentFiles::updateStuffPath(QString oldPath, QString newPath) {
//-----------------------------------------------------------------------------
QList<QString> RecentFiles::getFilesNameList(FileType fileType) {
QList<QString> files =
(fileType == Scene) ? m_recentScenes : (fileType == Level)
? m_recentLevels
: (fileType == Project)
? m_recentProjects
: m_recentFlipbookImages;
QList<QString> files = (fileType == Scene) ? m_recentScenes
: (fileType == Level) ? m_recentLevels
: (fileType == Project) ? m_recentProjects
: m_recentFlipbookImages;
QList<QString> names;
int i;
for (i = 0; i < files.size(); i++) {
@ -3670,12 +3712,10 @@ QList<QString> RecentFiles::getFilesNameList(FileType fileType) {
//-----------------------------------------------------------------------------
void RecentFiles::refreshRecentFilesMenu(FileType fileType) {
CommandId id = (fileType == Scene)
? MI_OpenRecentScene
: (fileType == Level)
? MI_OpenRecentLevel
: (fileType == Project) ? MI_OpenRecentProject
: MI_LoadRecentImage;
CommandId id = (fileType == Scene) ? MI_OpenRecentScene
: (fileType == Level) ? MI_OpenRecentLevel
: (fileType == Project) ? MI_OpenRecentProject
: MI_LoadRecentImage;
QAction *act = CommandManager::instance()->getAction(id);
if (!act) return;
DVMenuAction *menu = dynamic_cast<DVMenuAction *>(act->menu());
@ -3684,12 +3724,10 @@ void RecentFiles::refreshRecentFilesMenu(FileType fileType) {
if (names.isEmpty())
menu->setEnabled(false);
else {
CommandId clearActionId =
(fileType == Scene) ? MI_ClearRecentScene
: (fileType == Level) ? MI_ClearRecentLevel
: (fileType == Project)
? MI_ClearRecentProject
: MI_ClearRecentImage;
CommandId clearActionId = (fileType == Scene) ? MI_ClearRecentScene
: (fileType == Level) ? MI_ClearRecentLevel
: (fileType == Project) ? MI_ClearRecentProject
: MI_ClearRecentImage;
if (fileType == Project) {
QString number;
QList<QString> prjNames;

View file

@ -54,7 +54,7 @@ class MainWindow final : public QMainWindow {
Q_OBJECT
bool m_saveSettingsOnQuit;
bool m_shownOnce = false;
bool m_shownOnce = false;
int m_oldRoomIndex;
QString m_currentRoomsChoice;
UpdateChecker *m_updateChecker;
@ -133,65 +133,65 @@ private:
QAction *createAction(const char *id, const char *name,
const QString &defaultShortcut, QString newStatusTip,
CommandType type = MenuFileCommandType,
CommandType type = MenuFileCommandType,
const char *iconSVGName = "");
QAction *createRightClickMenuAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuFileAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuEditAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuScanCleanupAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuLevelAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuXsheetAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuCellsAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuViewAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuWindowsAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuPlayAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuRenderAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuHelpAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createRGBAAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createFillAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMenuAction(const char *id, const char *name,
QList<QString> list, QString newStatusTip = "",
bool isForRecentFiles = true);
@ -205,22 +205,23 @@ private:
QAction *createViewerAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
// For command bar, no shortcut keys
QAction *createVisualizationButtonAction(const char *id, const char *name,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
QAction *createMiscAction(const char *id, const char *name,
const char *defaultShortcut,
QString newStatusTip = "");
QAction *createToolOptionsAction(const char *id, const char *name,
const QString &defaultShortcut,
QString newStatusTip = "");
QString newStatusTip = "",
const char *iconSVGName = "");
QAction *createStopMotionAction(const char *id, const char *name,
const QString &defaultShortcut,
const char *iconSVGName = "",
QString newStatusTip = "");
QString newStatusTip = "");
protected slots:
void onCurrentRoomChanged(int newRoomIndex);

View file

@ -44,7 +44,7 @@ double distanceSquared(QPoint p1, QPoint p2) {
int newY = p1.y() - p2.y();
return (newX * newX) + (newY * newY);
}
};
}; // namespace
//*****************************************************************************
// MotionPathPanel implementation
@ -119,9 +119,10 @@ MotionPathPanel::MotionPathPanel(QWidget* parent)
ToolHandle* th = TApp::instance()->getCurrentTool();
connect(th, &ToolHandle::toolSwitched, this, &MotionPathPanel::updateTools);
connect(th, &ToolHandle::toolChanged, this, &MotionPathPanel::updateTools);
connect(m_geometryOptionsBox, static_cast<void (QComboBox::*)(int)>(
&QComboBox::currentIndexChanged),
this, &MotionPathPanel::onGeometricComboChanged);
connect(
m_geometryOptionsBox,
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
this, &MotionPathPanel::onGeometricComboChanged);
connect(m_geometrySidesField, &DVGui::IntField::valueChanged, this,
&MotionPathPanel::onGeometricSidesChanged);
m_toolLayout->addWidget(m_geometryOptionsBox);
@ -268,7 +269,6 @@ void MotionPathPanel::showEvent(QShowEvent*) { refreshPaths(true); }
//-----------------------------------------------------------------------------
void MotionPathPanel::createControl(TStageObjectSpline* spline, int number) {
getIconThemePath("actions/20/pane_preview.svg");
TObjectHandle* objHandle = TApp::instance()->getCurrentObject();
bool active = spline->getActive();
ClickablePathLabel* nameLabel =
@ -277,8 +277,8 @@ void MotionPathPanel::createControl(TStageObjectSpline* spline, int number) {
DVGui::LineEdit* nameEdit = new DVGui::LineEdit(this);
ClickablePathLabel* deleteLabel = new ClickablePathLabel("", this);
deleteLabel->setPixmap(createQIcon("menu_toggle_on").pixmap(QSize(23, 18)));
TPanelTitleBarButton* activeButton = new TPanelTitleBarButton(
this, getIconThemePath("actions/20/pane_preview.svg"));
TPanelTitleBarButton* activeButton =
new TPanelTitleBarButton(this, getIconPath("pane_preview"));
DVGui::IntLineEdit* stepsEdit = new DVGui::IntLineEdit(this);
stepsEdit->setValue(spline->getSteps());
@ -697,27 +697,28 @@ void MotionPathPlaybackExecutor::run() {
TUINT32 loadedInstant, nextSampleInstant = timeResolution;
TUINT32 sampleTotalLoadingTime = 0;
TUINT32 lastFrameCounts[4] = {0, 0, 0,
0}; // Keep the last 4 'played frames' counts.
TUINT32 lastFrameCounts[4] = {0, 0, 0,
0}; // Keep the last 4 'played frames' counts.
TUINT32 lastSampleInstants[4] = {0, 0, 0,
0}; // Same for the last sampling instants
TUINT32 lastLoadingTimes[4] = {0, 0, 0,
0}; // Same for total sample loading times
TUINT32 lastLoadingTimes[4] = {0, 0, 0,
0}; // Same for total sample loading times
double targetFrameTime =
1000.0 / abs(m_fps); // User-required time between frames
1000.0 / abs(m_fps); // User-required time between frames
TUINT32 emissionInstant = 0; // Effective instant in which loading is invoked
double emissionInstantD = 0.0; // Double precision version of the above
double lastLoadingTime = 0.0; // Mean frame loading time in the last sample
double lastLoadingTime = 0.0; // Mean frame loading time in the last sample
while (!m_abort) {
emissionInstant = timer.getTotalTime();
// Draw the next frame
if (playedFramesCount) emit nextFrame(fps); // Show the next frame, telling
// currently measured fps
if (playedFramesCount)
emit nextFrame(fps); // Show the next frame, telling
// currently measured fps
//-------- Each nextFrame() blocks until the frame has been shown ---------

View file

@ -145,15 +145,13 @@ void TPanel::enterEvent(QEvent *event) {
// grab the focus, unless a line-edit is focused currently
QWidget *focusWidget = qApp->focusWidget();
if (focusWidget && dynamic_cast<QLineEdit*>(focusWidget)) {
event->accept();
return;
if (focusWidget && dynamic_cast<QLineEdit *>(focusWidget)) {
event->accept();
return;
}
widgetFocusOnEnter();
// Some panels (e.g. Viewer, StudioPalette, Palette, ColorModel) are
// activated when mouse enters. Viewer is activatable only when being
// docked.
@ -168,12 +166,12 @@ void TPanel::enterEvent(QEvent *event) {
//-----------------------------------------------------------------------------
/*! clear focus when mouse leaves
*/
void TPanel::leaveEvent(QEvent *event) {
QWidget* focusWidget = qApp->focusWidget();
if (focusWidget && dynamic_cast<QLineEdit*>(focusWidget)) {
return;
}
widgetClearFocusOnLeave();
void TPanel::leaveEvent(QEvent *event) {
QWidget *focusWidget = qApp->focusWidget();
if (focusWidget && dynamic_cast<QLineEdit *>(focusWidget)) {
return;
}
widgetClearFocusOnLeave();
}
//-----------------------------------------------------------------------------
@ -209,13 +207,13 @@ void TPanel::restoreFloatingPanelState() {
TPanelTitleBarButton::TPanelTitleBarButton(QWidget *parent,
const QString &standardPixmapName)
: QWidget(parent)
, m_standardPixmap(standardPixmapName)
, m_standardPixmapName(standardPixmapName)
, m_rollover(false)
, m_pressed(false)
, m_buttonSet(0)
, m_id(0) {
setFixedSize(m_standardPixmap.size());
updatePixmaps();
setFixedSize(m_onPixmap.size() / m_onPixmap.devicePixelRatio());
}
//-----------------------------------------------------------------------------
@ -223,7 +221,9 @@ TPanelTitleBarButton::TPanelTitleBarButton(QWidget *parent,
TPanelTitleBarButton::TPanelTitleBarButton(QWidget *parent,
const QPixmap &standardPixmap)
: QWidget(parent)
, m_standardPixmap(standardPixmap)
, m_onPixmap(standardPixmap)
, m_offPixmap(standardPixmap)
, m_overPixmap(standardPixmap)
, m_rollover(false)
, m_pressed(false)
, m_buttonSet(0)
@ -251,26 +251,85 @@ void TPanelTitleBarButton::setPressed(bool pressed) {
//-----------------------------------------------------------------------------
void TPanelTitleBarButton::paintEvent(QPaintEvent *event) {
// Set unique pressed colors if filename contains the following words:
QColor bgColor = getPressedColor();
if (m_standardPixmapName.contains("freeze", Qt::CaseInsensitive))
void TPanelTitleBarButton::setOverColor(const QColor &color) {
if (m_overColor != color) {
m_overColor = color;
updatePixmaps();
}
}
QColor TPanelTitleBarButton::getOverColor() const { return m_overColor; }
//-----------------------------------------------------------------------------
void TPanelTitleBarButton::setPressedColor(const QColor &color) {
if (m_pressedColor != color) {
m_pressedColor = color;
updatePixmaps();
}
}
QColor TPanelTitleBarButton::getPressedColor() const { return m_pressedColor; }
//-----------------------------------------------------------------------------
void TPanelTitleBarButton::setFreezeColor(const QColor &color) {
if (m_freezeColor != color) {
m_freezeColor = color;
updatePixmaps();
}
}
QColor TPanelTitleBarButton::getFreezeColor() const { return m_freezeColor; }
//-----------------------------------------------------------------------------
void TPanelTitleBarButton::setPreviewColor(const QColor &color) {
if (m_previewColor != color) {
m_previewColor = color;
updatePixmaps();
}
}
QColor TPanelTitleBarButton::getPreviewColor() const { return m_previewColor; }
//-----------------------------------------------------------------------------
void TPanelTitleBarButton::updatePixmaps() {
// Get background color used by some icons and states
QColor bgColor;
if (m_standardPixmapName.contains("freeze", Qt::CaseInsensitive)) {
bgColor = getFreezeColor();
if (m_standardPixmapName.contains("preview", Qt::CaseInsensitive))
} else if (m_standardPixmapName.contains("preview", Qt::CaseInsensitive)) {
bgColor = getPreviewColor();
} else {
bgColor = getPressedColor();
}
QPixmap panePixmap = recolorPixmap(svgToPixmap(m_standardPixmapName));
QPixmap panePixmapOff = compositePixmap(panePixmap, 0.8);
QPixmap panePixmapOver =
compositePixmap(panePixmap, 1, QSize(), 0, 0, getOverColor());
QPixmap panePixmapOn = compositePixmap(panePixmap, 1, QSize(), 0, 0, bgColor);
ThemeManager &themeManager = ThemeManager::getInstance();
const qreal offOpacity = themeManager.getOffOpacity();
// Compute icon
QImage baseImg = svgToImage(m_standardPixmapName);
baseImg = themeManager.recolorBlackPixels(baseImg);
QImage onImg = compositeImage(baseImg, QSize(), false, bgColor);
QImage offImg = adjustImageOpacity(baseImg, offOpacity);
QImage overImg = compositeImage(baseImg, QSize(), false, getOverColor());
// Store in member variables
m_onPixmap = convertImageToPixmap(onImg);
m_offPixmap = convertImageToPixmap(offImg);
m_overPixmap = convertImageToPixmap(overImg);
}
//-----------------------------------------------------------------------------
void TPanelTitleBarButton::paintEvent(QPaintEvent *event) {
QPainter painter(this);
painter.drawPixmap(0, 0,
m_pressed ? panePixmapOn
: m_rollover ? panePixmapOver
: panePixmapOff);
painter.end();
m_pressed ? m_onPixmap
: m_rollover ? m_overPixmap
: m_offPixmap);
}
//-----------------------------------------------------------------------------
@ -447,7 +506,7 @@ TPanelTitleBarButtonForGrids::TPanelTitleBarButtonForGrids(
connect(perspectiveCheckbox, &QCheckBox::stateChanged, [=](int value) {
ShowPerspectiveGrids = value > 0 ? 1 : 0;
emit updateViewer();
});
});
QCheckBox *symmetryCheckbox = new QCheckBox(tr("Symmetry Guide"), this);
connect(symmetryCheckbox, &QCheckBox::stateChanged, [=](int value) {
@ -557,6 +616,7 @@ TPanelTitleBar::TPanelTitleBar(QWidget *parent,
setMouseTracking(true);
setFocusPolicy(Qt::NoFocus);
setCursor(Qt::ArrowCursor);
generateCloseButtonPixmaps();
}
//-----------------------------------------------------------------------------
@ -565,6 +625,30 @@ QSize TPanelTitleBar::minimumSizeHint() const { return QSize(20, 18); }
//-----------------------------------------------------------------------------
void TPanelTitleBar::generateCloseButtonPixmaps() {
// Icon theme vars
ThemeManager &themeManager = ThemeManager::getInstance();
const qreal offOpacity = themeManager.getOffOpacity();
// Use overColor from stylesheet for bgColor of rollover
QColor overColor = getOverColor();
// Generate base icon image
QImage baseImg = generateIconImage("pane_close");
baseImg = compositeImage(baseImg, QSize(20, 18));
// Off icon image
QImage offImg = adjustImageOpacity(baseImg, offOpacity);
// Over icon image
QImage overImg = compositeImage(baseImg, QSize(), false, overColor);
m_closeButtonPixmap = convertImageToPixmap(offImg);
m_closeButtonOverPixmap = convertImageToPixmap(overImg);
}
//-----------------------------------------------------------------------------
void TPanelTitleBar::paintEvent(QPaintEvent *) {
QPainter painter(this);
QRect rect = this->rect();
@ -573,18 +657,11 @@ void TPanelTitleBar::paintEvent(QPaintEvent *) {
TPanel *dw = qobject_cast<TPanel *>(parentWidget());
Q_ASSERT(dw != 0);
// docked panel
if (!dw->isFloating()) {
if (!dw->isFloating()) { // docked panel
isPanelActive = dw->widgetInThisPanelIsFocused();
qDrawBorderPixmap(&painter, rect, QMargins(3, 3, 3, 3),
(isPanelActive) ? m_activeBorderPm : m_borderPm);
}
// floating panel
else {
} else { // floating panel
isPanelActive = isActiveWindow();
qDrawBorderPixmap(
&painter, rect, QMargins(3, 3, 3, 3),
(isPanelActive) ? m_floatActiveBorderPm : m_floatBorderPm);
}
if (dw->getOrientation() == TDockWidget::vertical) {
@ -597,21 +674,37 @@ void TPanelTitleBar::paintEvent(QPaintEvent *) {
}
if (dw->isFloating()) {
QIcon paneCloseIcon = createQIcon("pane_close");
const static QPixmap closeButtonPixmap(
paneCloseIcon.pixmap(20, 18, QIcon::Normal, QIcon::Off));
const static QPixmap closeButtonPixmapOver(
paneCloseIcon.pixmap(20, 18, QIcon::Active));
QPoint closeButtonPos(rect.right() - 20, rect.top());
QPoint closeButtonPos(rect.right() - 19, rect.top());
if (m_closeButtonHighlighted)
painter.drawPixmap(closeButtonPos, closeButtonPixmapOver);
painter.drawPixmap(closeButtonPos, m_closeButtonOverPixmap);
else
painter.drawPixmap(closeButtonPos, closeButtonPixmap);
painter.drawPixmap(closeButtonPos, m_closeButtonPixmap);
}
}
painter.end();
//-----------------------------------------------------------------------------
void TPanelTitleBar::setOverColor(const QColor &color) {
if (m_overColor != color) {
m_overColor = color;
generateCloseButtonPixmaps();
}
}
QColor TPanelTitleBar::getOverColor() const { return m_overColor; }
//-----------------------------------------------------------------------------
void TPanelTitleBar::leaveEvent(QEvent *) {
TPanel *dw = qobject_cast<TPanel *>(parentWidget());
Q_ASSERT(dw != 0);
// Mouse left the widget, reset the highlighted flag
if (dw->isFloating()) {
m_closeButtonHighlighted = false;
update();
}
}
//-----------------------------------------------------------------------------

View file

@ -15,13 +15,26 @@ class QMenu;
//! icon buttons placed on the panel titlebar (cfr. viewerpane.h)
class TPanelTitleBarButton : public QWidget {
Q_OBJECT
// Filepath
QString m_standardPixmapName;
// Pixmaps
QPixmap m_standardPixmap;
QPixmap m_onPixmap;
QPixmap m_offPixmap;
QPixmap m_overPixmap;
// Colors
QColor m_overColor;
QColor m_pressedColor;
QColor m_freezeColor;
QColor m_previewColor;
// Methods
void updatePixmaps();
// Stylesheet
Q_PROPERTY(QColor OverColor READ getOverColor WRITE setOverColor);
Q_PROPERTY(QColor PressedColor READ getPressedColor WRITE setPressedColor);
Q_PROPERTY(QColor FreezeColor READ getFreezeColor WRITE setFreezeColor);
@ -42,14 +55,18 @@ public:
void setButtonSet(TPanelTitleBarButtonSet *buttonSet, int id);
int getId() const { return m_id; }
void setOverColor(const QColor &color) { m_overColor = color; }
QColor getOverColor() const { return m_overColor; }
void setPressedColor(const QColor &color) { m_pressedColor = color; }
QColor getPressedColor() const { return m_pressedColor; }
void setFreezeColor(const QColor &color) { m_freezeColor = color; }
QColor getFreezeColor() const { return m_freezeColor; }
void setPreviewColor(const QColor &color) { m_previewColor = color; }
QColor getPreviewColor() const { return m_previewColor; }
// Stylesheet
void setOverColor(const QColor &color);
QColor getOverColor() const;
void setPressedColor(const QColor &color);
QColor getPressedColor() const;
void setFreezeColor(const QColor &color);
QColor getFreezeColor() const;
void setPreviewColor(const QColor &color);
QColor getPreviewColor() const;
public slots:
void setPressed(bool pressed); // n.b. doesn't emit signals. calls update()
@ -62,12 +79,6 @@ protected:
void leaveEvent(QEvent *) override;
void mousePressEvent(QMouseEvent *event) override;
// Q_PROPERTY(QColor RolloverColor READ getRolloverColor WRITE
// setRolloverColor);
// Q_PROPERTY(QColor PressedColor READ getPressedColor WRITE setPressedColor);
// Q_PROPERTY(QColor FreezeColor READ getFreezeColor WRITE setFreezeColor);
// Q_PROPERTY(QColor PreviewColor READ getPreviewColor WRITE setPreviewColor);
signals:
//! emitted when the user press the button
//! n.b. the signal is not emitted if the button is part of a buttonset
@ -178,8 +189,8 @@ class TPanelTitleBar final : public QFrame {
bool m_closeButtonHighlighted;
std::vector<std::pair<QPoint, QWidget *>> m_buttons;
QPixmap m_borderPm, m_activeBorderPm, m_floatBorderPm, m_floatActiveBorderPm;
QColor m_titleColor, m_activeTitleColor;
QColor m_titleColor, m_activeTitleColor, m_overColor;
QPixmap m_closeButtonPixmap, m_closeButtonOverPixmap;
public:
TPanelTitleBar(QWidget *parent = 0,
@ -188,26 +199,19 @@ public:
QSize sizeHint() const override { return minimumSizeHint(); }
QSize minimumSizeHint() const override;
void generateCloseButtonPixmaps();
// pos = widget position. n.b. if pos.x()<0 then origin is topright corner
void add(const QPoint &pos, QWidget *widget);
QPixmap getBorderPixmap() const { return m_borderPm; }
void setBorderPixmap(const QPixmap &pixmap) { m_borderPm = pixmap; }
QPixmap getActiveBorderPixmap() const { return m_activeBorderPm; }
void setActiveBorderPixmap(const QPixmap &pixmap) {
m_activeBorderPm = pixmap;
}
QPixmap getFloatBorderPixmap() const { return m_floatBorderPm; }
void setFloatBorderPixmap(const QPixmap &pixmap) { m_floatBorderPm = pixmap; }
QPixmap getFloatActiveBorderPixmap() const { return m_floatActiveBorderPm; }
void setFloatActiveBorderPixmap(const QPixmap &pixmap) {
m_floatActiveBorderPm = pixmap;
}
QColor getTitleColor() const { return m_titleColor; }
void setTitleColor(const QColor &color) { m_titleColor = color; }
QColor getActiveTitleColor() const { return m_activeTitleColor; }
void setActiveTitleColor(const QColor &color) { m_activeTitleColor = color; }
QColor getOverColor() const;
void setOverColor(const QColor &color);
protected:
void resizeEvent(QResizeEvent *e) override;
@ -215,20 +219,17 @@ protected:
void contextMenuEvent(QContextMenuEvent *) override {}
void paintEvent(QPaintEvent *event) override;
void leaveEvent(QEvent *) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseDoubleClickEvent(QMouseEvent *) override;
Q_PROPERTY(QPixmap BorderPixmap READ getBorderPixmap WRITE setBorderPixmap);
Q_PROPERTY(QPixmap ActiveBorderPixmap READ getActiveBorderPixmap WRITE
setActiveBorderPixmap);
Q_PROPERTY(QPixmap FloatBorderPixmap READ getFloatBorderPixmap WRITE
setFloatBorderPixmap);
Q_PROPERTY(QPixmap FloatActiveBorderPixmap READ getFloatActiveBorderPixmap
WRITE setFloatActiveBorderPixmap);
QPixmap getPixmap(const QString &iconSVGName, bool rollover);
Q_PROPERTY(QColor TitleColor READ getTitleColor WRITE setTitleColor);
Q_PROPERTY(QColor ActiveTitleColor READ getActiveTitleColor WRITE
setActiveTitleColor);
Q_PROPERTY(QColor OverColor READ getOverColor WRITE setOverColor);
signals:

View file

@ -107,9 +107,9 @@ SizeField::SizeField(QSize min, QSize max, QSize value, QWidget* parent)
bool ret = true;
ret = ret && connect(m_fieldX, SIGNAL(editingFinished()), this,
SIGNAL(editingFinished()));
SIGNAL(editingFinished()));
ret = ret && connect(m_fieldY, SIGNAL(editingFinished()), this,
SIGNAL(editingFinished()));
SIGNAL(editingFinished()));
assert(ret);
}
@ -274,9 +274,9 @@ Preferences::LevelFormat PreferencesPopup::FormatProperties::levelFormat()
lf.m_priority = m_priority->getValue();
// Assign level format values
lf.m_options.m_dpiPolicy = (m_dpiPolicy->currentIndex() == DP_ImageDpi)
? LevelOptions::DP_ImageDpi
: LevelOptions::DP_CustomDpi;
lf.m_options.m_dpiPolicy = (m_dpiPolicy->currentIndex() == DP_ImageDpi)
? LevelOptions::DP_ImageDpi
: LevelOptions::DP_CustomDpi;
lf.m_options.m_dpi = m_dpi->getValue();
lf.m_options.m_subsampling = m_subsampling->getValue();
lf.m_options.m_antialias =
@ -522,43 +522,32 @@ void PreferencesPopup::onPathAliasPriorityChanged() {
void PreferencesPopup::onStyleSheetTypeChanged() {
QApplication::setOverrideCursor(Qt::WaitCursor);
QString currentStyle = m_pref->getCurrentStyleSheet();
QString iconThemeName = QIcon::themeName();
std::string styleString = currentStyle.toStdString();
std::string iconThemeString = iconThemeName.toStdString();
QString currentStyle = m_pref->getCurrentStyleSheet();
qApp->setStyleSheet(currentStyle);
QApplication::restoreOverrideCursor();
if (currentStyle.contains("file:///") && (currentStyle.contains("Light") ||
currentStyle.contains("Neutral")) ||
currentStyle.contains("imgs/black")) {
m_pref->setValue(iconTheme, true);
if (iconThemeName != "dark") {
// QIcon::setThemeName(Preferences::instance()->getIconTheme() ? "dark"
// : "light");
bool isDarkTheme = Preferences::instance()->getIconTheme();
bool themeCondition =
currentStyle.contains("file:///") && (currentStyle.contains("Light") ||
currentStyle.contains("Neutral")) ||
currentStyle.contains("imgs/black");
if (themeCondition) {
if (!isDarkTheme) {
m_pref->setValue(iconTheme, true);
DVGui::MsgBoxInPopup(DVGui::MsgType(INFORMATION),
tr("Please restart to reload the icons."));
}
} else {
m_pref->setValue(iconTheme, false);
if (iconThemeName != "light") {
// QIcon::setThemeName(Preferences::instance()->getIconTheme() ? "dark"
// : "light");
if (isDarkTheme) {
m_pref->setValue(iconTheme, false);
DVGui::MsgBoxInPopup(DVGui::MsgType(INFORMATION),
tr("Please restart to reload the icons."));
}
}
}
////-----------------------------------------------------------------------------
//
// void PreferencesPopup::onIconThemeChanged() {
// // Switch between dark or light icons
// QIcon::setThemeName(Preferences::instance()->getIconTheme() ? "dark"
// : "light");
// // qDebug() << "Icon theme name (preference switch):" << QIcon::themeName();
//}
//-----------------------------------------------------------------------------
void PreferencesPopup::onPixelsOnlyChanged() {
@ -899,7 +888,6 @@ void PreferencesPopup::onCheck30bitDisplay() {
checker.exec();
}
//-----------------------------------------------------------------------------
void PreferencesPopup::onFrameFormatButton() {
@ -1000,7 +988,7 @@ QWidget* PreferencesPopup::createUI(PreferencesItemId id,
combo->addItem(item.first, item.second);
combo->setCurrentIndex(combo->findData(item.value));
ret = connect(combo, SIGNAL(currentIndexChanged(int)), this,
SLOT(onChange()));
SLOT(onChange()));
widget = combo;
} else { // create IntLineEdit
assert(item.max.toInt() != -1);
@ -1037,7 +1025,7 @@ QWidget* PreferencesPopup::createUI(PreferencesItemId id,
QFontComboBox* combo = new QFontComboBox(this);
combo->setCurrentText(item.value.toString());
ret = connect(combo, SIGNAL(currentIndexChanged(const QString&)), this,
SLOT(onInterfaceFontChanged(const QString&)));
SLOT(onInterfaceFontChanged(const QString&)));
widget = combo;
} else if (!comboItems.isEmpty()) { // create QComboBox
QComboBox* combo = new QComboBox(this);
@ -1045,7 +1033,7 @@ QWidget* PreferencesPopup::createUI(PreferencesItemId id,
combo->addItem(item.first, item.second);
combo->setCurrentIndex(combo->findData(item.value));
ret = connect(combo, SIGNAL(currentIndexChanged(int)), this,
SLOT(onChange()));
SLOT(onChange()));
widget = combo;
} else { // create FileField
DVGui::FileField* field =
@ -1068,7 +1056,7 @@ QWidget* PreferencesPopup::createUI(PreferencesItemId id,
ColorField* field =
new ColorField(this, false, colorToTPixel(item.value.value<QColor>()));
ret = connect(field, SIGNAL(colorChanged(const TPixel32&, bool)), this,
SLOT(onColorFieldChanged(const TPixel32&, bool)));
SLOT(onColorFieldChanged(const TPixel32&, bool)));
widget = field;
} break;
@ -1280,7 +1268,8 @@ QString PreferencesPopup::getUIString(PreferencesItemId id) {
{ffmpegPath, tr("Executable Directory:")},
{ffmpegTimeout, tr("Import/Export Timeout (seconds):")},
{fastRenderPath, tr("Fast Render Output Directory:")},
{ffmpegMultiThread, tr("Allow Multi-Thread in FFMPEG Rendering (UNSTABLE)")},
{ffmpegMultiThread,
tr("Allow Multi-Thread in FFMPEG Rendering (UNSTABLE)")},
{rhubarbPath, tr("Executable Directory:")},
{rhubarbTimeout, tr("Analyze Audio Timeout (seconds):")},
@ -1314,7 +1303,10 @@ QString PreferencesPopup::getUIString(PreferencesItemId id) {
// Tools
// {dropdownShortcutsCycleOptions, tr("Dropdown Shortcuts:")}, // removed
{FillOnlysavebox, tr("Use the TLV Savebox to Limit Filling Operations")}, // Moved to tools that need it
{FillOnlysavebox,
tr("Use the TLV Savebox to Limit Filling Operations")}, // Moved to
// tools that
// need it
{multiLayerStylePickerEnabled,
tr("Multi Layer Style Picker: Switch Levels by Picking")},
{cursorBrushType, tr("Basic Cursor Type:")},
@ -1490,7 +1482,8 @@ QList<ComboBoxItem> PreferencesPopup::getComboItemList(
{tr("Enable Tools For Level Only"), 1},
{tr("Show Tools For Level Only"), 2}}},
{xsheetLayoutPreference,
{{tr("Compact"), "Compact"}, {tr("Roomy"), "Roomy"},
{{tr("Compact"), "Compact"},
{tr("Roomy"), "Roomy"},
{tr("Minimum"), "Minimum"}}},
{levelNameDisplayType,
{{tr("Default"), Preferences::ShowLevelName_Default},
@ -1675,11 +1668,11 @@ QWidget* PreferencesPopup::createGeneralPage() {
bool ret = true;
ret = ret && connect(m_pref, SIGNAL(stopAutoSave()), this,
SLOT(onAutoSaveExternallyChanged()));
SLOT(onAutoSaveExternallyChanged()));
ret = ret && connect(m_pref, SIGNAL(startAutoSave()), this,
SLOT(onAutoSaveExternallyChanged()));
SLOT(onAutoSaveExternallyChanged()));
ret = ret && connect(m_pref, SIGNAL(autoSavePeriodChanged()), this,
SLOT(onAutoSavePeriodExternallyChanged()));
SLOT(onAutoSavePeriodExternallyChanged()));
// ret = ret && connect(m_projectRootDocuments, SIGNAL(stateChanged(int)),
// SLOT(onProjectRootChanged()));
@ -1783,12 +1776,12 @@ QWidget* PreferencesPopup::createInterfacePage() {
// IoCmd::loadScene())
bool ret = true;
ret = ret && connect(TApp::instance()->getCurrentScene(),
SIGNAL(pixelUnitSelected(bool)), this,
SLOT(onPixelUnitExternallySelected(bool)));
SIGNAL(pixelUnitSelected(bool)), this,
SLOT(onPixelUnitExternallySelected(bool)));
ret = ret && connect(additionalStyleSheetBtn, SIGNAL(clicked()), this,
SLOT(onEditAdditionalStyleSheet()));
SLOT(onEditAdditionalStyleSheet()));
ret = ret && connect(check30bitBtn, SIGNAL(clicked()), this,
SLOT(onCheck30bitDisplay()));
SLOT(onCheck30bitDisplay()));
assert(ret);
m_onEditedFuncMap.insert(CurrentStyleSheetName,
@ -1937,7 +1930,7 @@ QWidget* PreferencesPopup::createImportExportPage() {
insertUI(ffmpegTimeout, ffmpegOptionsLay);
putLabel(
tr("Enabling multi-thread rendering will render significantly faster \n"
tr("Enabling multi-thread rendering will render significantly faster \n"
"but a random crash might occur, use at your own risk:"),
ffmpegOptionsLay);
insertUI(ffmpegMultiThread, ffmpegOptionsLay);
@ -1961,7 +1954,8 @@ QWidget* PreferencesPopup::createDrawingPage() {
QWidget* widget = new QWidget(this);
QGridLayout* lay = new QGridLayout();
QPushButton* frameFormatBtn = new QPushButton(tr("Default Frame Filename Format"));
QPushButton* frameFormatBtn =
new QPushButton(tr("Default Frame Filename Format"));
setupLayout(lay);
@ -1973,8 +1967,7 @@ QWidget* PreferencesPopup::createDrawingPage() {
insertDualUIs(DefLevelWidth, DefLevelHeight, lay);
if (Preferences::instance()->isShowAdvancedOptionsEnabled())
insertUI(DefLevelDpi, lay);
QGridLayout* creationLay = insertGroupBox(
tr("Frame Creation Options"), lay);
QGridLayout* creationLay = insertGroupBox(tr("Frame Creation Options"), lay);
{
insertUI(NumberingSystem, creationLay, getComboItemList(NumberingSystem));
insertUI(EnableAutoStretch, creationLay);
@ -1982,9 +1975,7 @@ QWidget* PreferencesPopup::createDrawingPage() {
insertUI(EnableAutoRenumber, creationLay);
}
QGridLayout* autoCreationLay = insertGroupBoxUI(EnableAutocreation, lay);
{
insertUI(EnableCreationInHoldCells, autoCreationLay);
}
{ insertUI(EnableCreationInHoldCells, autoCreationLay); }
insertUI(vectorSnappingTarget, lay, getComboItemList(vectorSnappingTarget));
insertUI(saveUnpaintedInCleanup, lay);
insertUI(minimizeSaveboxAfterEditing, lay);

View file

@ -1121,49 +1121,32 @@ QVariant TaskTreeModel::data(const QModelIndex &index, int role) const {
bool sourceFileIsCLN = (t->m_taskFilePath.getType() == "cln");
switch (t->m_status) {
case Suspended:
return QIcon(
t->m_isComposerTask
? getIconThemePath("actions/35/task_render_suspended.svg")
: (sourceFileIsCLN
? getIconThemePath("actions/35/task_cln_suspended.svg")
: getIconThemePath(
"actions/35/task_cleanup_suspended.svg")));
return createQIcon(t->m_isComposerTask
? "task_render_suspended"
: (sourceFileIsCLN ? "task_cln_suspended"
: "task_cleanup_suspended"));
case Waiting:
return QIcon(
t->m_isComposerTask
? getIconThemePath(
"actions/35/task_render_completed_with_errors.svg")
: (sourceFileIsCLN
? getIconThemePath(
"actions/35/task_cln_completed_with_errors.svg")
: getIconThemePath(
"actions/35/"
"task_cleanup_completed_with_errors.svg")));
return createQIcon(t->m_isComposerTask
? "task_render_completed_with_errors"
: (sourceFileIsCLN
? "task_cln_completed_with_errors"
: "task_cleanup_completed_with_errors"));
case Running:
return QIcon(
t->m_isComposerTask
? getIconThemePath("actions/35/task_render_computing.svg")
: (sourceFileIsCLN
? getIconThemePath("actions/35/task_cln_computing.svg")
: getIconThemePath(
"actions/35/task_cleanup_computing.svg")));
return createQIcon(t->m_isComposerTask
? "task_render_computing"
: (sourceFileIsCLN ? "task_cln_computing"
: "task_cleanup_computing"));
case Completed:
return QIcon(
t->m_isComposerTask
? getIconThemePath("actions/35/task_render_completed.svg")
: (sourceFileIsCLN
? getIconThemePath("actions/35/task_cln_completed.svg")
: getIconThemePath(
"actions/35/task_cleanup_completed.svg")));
return createQIcon(t->m_isComposerTask
? "task_render_completed"
: (sourceFileIsCLN ? "task_cln_completed"
: "task_cleanup_completed"));
case Aborted:
case TaskUnknown:
return QIcon(
t->m_isComposerTask
? getIconThemePath("actions/35/task_render_failed.svg")
: (sourceFileIsCLN
? getIconThemePath("actions/35/task_cln_failed.svg")
: getIconThemePath(
"actions/35/task_cleanup_failed.svg")));
return createQIcon(t->m_isComposerTask
? "task_render_failed"
: (sourceFileIsCLN ? "task_cln_failed"
: "task_cleanup_failed"));
default:
assert(false);
}

View file

@ -1,9 +1,5 @@
<RCC>
<qresource prefix="/">
<!-- Themes =============================================== -->
<file>icons/dark/index.theme</file>
<file>icons/light/index.theme</file>
<!-- Tools -->
<file>icons/dark/tools/20/animate.svg</file>
<file>icons/dark/tools/20/brush.svg</file>
@ -64,8 +60,8 @@
<file>icons/dark/actions/16/export.svg</file>
<file>icons/dark/actions/16/import.svg</file>
<file>icons/dark/actions/16/load.svg</file>
<file>icons/dark/actions/18/lock.svg</file>
<file>icons/dark/actions/18/lock_on.svg</file>
<file>icons/dark/actions/16/lock.svg</file>
<file>icons/dark/actions/16/lock_on.svg</file>
<file>icons/dark/actions/16/file_copy.svg</file>
<file>icons/dark/actions/16/content_copy.svg</file>
<file>icons/dark/actions/16/cut.svg</file>
@ -168,19 +164,19 @@
<file>icons/dark/actions/35/task_render_failed.svg</file>
<!-- Mimetypes -->
<file>icons/dark/mimetypes/60/tasklist_icon.svg</file>
<file>icons/dark/mimetypes/60/xdts_icon.svg</file>
<file>icons/dark/mimetypes/60/missing_icon.svg</file>
<file>icons/dark/mimetypes/60/motionpath_icon.svg</file>
<file>icons/dark/mimetypes/60/curve_icon.svg</file>
<file>icons/dark/mimetypes/60/unknown_icon.svg</file>
<file>icons/dark/mimetypes/60/cleanup_icon.svg</file>
<file>icons/dark/mimetypes/60/psd_icon.svg</file>
<file>icons/dark/mimetypes/60/svg_icon.svg</file>
<file>icons/dark/mimetypes/60/audio_icon.svg</file>
<file>icons/dark/mimetypes/60/script_icon.svg</file>
<file>icons/dark/mimetypes/60/broken_icon.svg</file>
<file>icons/dark/mimetypes/60/json_icon.svg</file>
<file>icons/dark/mimetypes/tasklist_icon.svg</file>
<file>icons/dark/mimetypes/xdts_icon.svg</file>
<file>icons/dark/mimetypes/missing_icon.svg</file>
<file>icons/dark/mimetypes/motionpath_icon.svg</file>
<file>icons/dark/mimetypes/curve_icon.svg</file>
<file>icons/dark/mimetypes/unknown_icon.svg</file>
<file>icons/dark/mimetypes/cleanup_icon.svg</file>
<file>icons/dark/mimetypes/psd_icon.svg</file>
<file>icons/dark/mimetypes/svg_icon.svg</file>
<file>icons/dark/mimetypes/audio_icon.svg</file>
<file>icons/dark/mimetypes/script_icon.svg</file>
<file>icons/dark/mimetypes/broken_icon.svg</file>
<file>icons/dark/mimetypes/json_icon.svg</file>
<!-- Render -->
<file>icons/dark/actions/16/render.svg</file>
@ -593,6 +589,7 @@
<file>icons/dark/actions/16/project_settings.svg</file>
<file>icons/dark/actions/16/save_default_settings.svg</file>
<file>icons/dark/actions/16/zero_thick_lines.svg</file>
<file>icons/dark/actions/16/table.svg</file>
<!-- Keyframe -->
<file>icons/dark/actions/20/key_off.svg</file>
@ -602,8 +599,7 @@
<!-- ===================================================== -->
<!-- Light =============================================== -->
<file>icons/light/misc/footermemo.svg</file>
<!-- ===================================================== -->
<!-- Legacy resources ==================================== -->

View file

@ -677,8 +677,8 @@ void PaletteViewerPanel::showEvent(QShowEvent *) {
TSceneHandle *sceneHandle = TApp::instance()->getCurrentScene();
bool ret = connect(sceneHandle, SIGNAL(preferenceChanged(const QString &)),
this, SLOT(onPreferenceChanged(const QString &)));
ret = ret && connect(sceneHandle, SIGNAL(sceneSwitched()), this,
SLOT(onSceneSwitched()));
ret = ret && connect(sceneHandle, SIGNAL(sceneSwitched()), this,
SLOT(onSceneSwitched()));
assert(ret);
}
@ -1018,8 +1018,8 @@ public:
panel->setWidget(toolbar);
panel->setIsMaximizable(false);
// panel->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
// panel->setFixedWidth(44); // 35
// toolbar->setFixedWidth(34);
// panel->setFixedWidth(44); // 35
// toolbar->setFixedWidth(34);
panel->setWindowTitle(QString(""));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
@ -1129,8 +1129,7 @@ void FlipbookPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
int iconWidth = 20;
// safe area button
TPanelTitleBarButtonForSafeArea *safeAreaButton =
new TPanelTitleBarButtonForSafeArea(
titleBar, getIconThemePath("actions/20/pane_safe.svg"));
new TPanelTitleBarButtonForSafeArea(titleBar, getIconPath("pane_safe"));
safeAreaButton->setToolTip(tr("Safe Area (Right Click to Select)"));
titleBar->add(QPoint(x, 0), safeAreaButton);
ret = ret && connect(safeAreaButton, SIGNAL(toggled(bool)),
@ -1145,8 +1144,7 @@ void FlipbookPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
x += 28 + iconWidth;
// minimize button
m_button = new TPanelTitleBarButton(
titleBar, getIconThemePath("actions/20/pane_minimize.svg"));
m_button = new TPanelTitleBarButton(titleBar, getIconPath("pane_minimize"));
m_button->setToolTip(tr("Minimize"));
m_button->setPressed(false);

View file

@ -126,7 +126,7 @@ BaseViewerPanel::BaseViewerPanel(QWidget *parent, Qt::WindowFlags flags)
m_flipConsole->enableButton(FlipConsole::eCheckBg, false, false);
m_flipConsole->setChecked(FlipConsole::eSound, true);
m_playSound = m_flipConsole->isChecked(FlipConsole::eSound);
m_flipConsole->setFrameRate(app->getCurrentScene()
->getScene()
->getProperties()
@ -345,7 +345,7 @@ void BaseViewerPanel::showEvent(QShowEvent *event) {
ret = ret && connect(frameHandle, SIGNAL(frameTypeChanged()), this,
SLOT(onFrameTypeChanged()));
// onXshLevelSwitched(TXshLevel*)<29>F changeWindowTitle() + updateFrameRange()
// onXshLevelSwitched(TXshLevel*)<29>F changeWindowTitle() + updateFrameRange()
ret = ret && connect(levelHandle, SIGNAL(xshLevelSwitched(TXshLevel *)), this,
SLOT(onXshLevelSwitched(TXshLevel *)));
@ -394,8 +394,7 @@ void BaseViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
// buttons for show / hide toggle for the field guide and the safe area
TPanelTitleBarButtonForSafeArea *safeAreaButton =
new TPanelTitleBarButtonForSafeArea(
titleBar, getIconThemePath("actions/20/pane_safe.svg"));
new TPanelTitleBarButtonForSafeArea(titleBar, getIconPath("pane_safe"));
safeAreaButton->setToolTip(tr("Safe Area (Right Click to Select)"));
titleBar->add(QPoint(x, 0), safeAreaButton);
ret = ret && connect(safeAreaButton, SIGNAL(toggled(bool)),
@ -408,8 +407,7 @@ void BaseViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
safeAreaButton->setPressed(
CommandManager::instance()->getAction(MI_SafeArea)->isChecked());
button = new TPanelTitleBarButton(
titleBar, getIconThemePath("actions/20/pane_grid.svg"));
button = new TPanelTitleBarButton(titleBar, getIconPath("pane_grid"));
button->setToolTip(tr("Grids and Overlays\nRight click to adjust."));
x += 1 + iconWidth;
titleBar->add(QPoint(x, 0), button);
@ -423,8 +421,7 @@ void BaseViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
CommandManager::instance()->getAction(MI_FieldGuide)->isChecked());
TPanelTitleBarButtonForGrids *gridMoreButton =
new TPanelTitleBarButtonForGrids(
titleBar, getIconThemePath("actions/9/pane_more.svg"));
new TPanelTitleBarButtonForGrids(titleBar, getIconPath("pane_more"));
gridMoreButton->setToolTip(tr("Grids and Overlays Settings"));
x += 1 + iconWidth;
titleBar->add(QPoint(x, 0), gridMoreButton);
@ -432,31 +429,27 @@ void BaseViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
[=]() { m_sceneViewer->update(); });
// view mode toggles
button = new TPanelTitleBarButton(
titleBar, getIconThemePath("actions/20/pane_table.svg"));
button = new TPanelTitleBarButton(titleBar, getIconPath("pane_table"));
button->setToolTip(tr("Camera Stand View"));
x += 10 + iconWidth;
titleBar->add(QPoint(x, 0), button);
button->setButtonSet(viewModeButtonSet, SceneViewer::NORMAL_REFERENCE);
button->setPressed(true);
button = new TPanelTitleBarButton(titleBar,
getIconThemePath("actions/20/pane_3d.svg"));
button = new TPanelTitleBarButton(titleBar, getIconPath("pane_3d"));
button->setToolTip(tr("3D View"));
x += 1 + iconWidth;
titleBar->add(QPoint(x, 0), button);
button->setButtonSet(viewModeButtonSet, SceneViewer::CAMERA3D_REFERENCE);
button = new TPanelTitleBarButton(
titleBar, getIconThemePath("actions/20/pane_cam.svg"));
button = new TPanelTitleBarButton(titleBar, getIconPath("pane_cam"));
button->setToolTip(tr("Camera View"));
x += 1 + iconWidth;
titleBar->add(QPoint(x, 0), button);
button->setButtonSet(viewModeButtonSet, SceneViewer::CAMERA_REFERENCE);
TPanelTitleBarButtonForCameraView *camTransparencyButton =
new TPanelTitleBarButtonForCameraView(
titleBar, getIconThemePath("actions/9/pane_more.svg"));
new TPanelTitleBarButtonForCameraView(titleBar, getIconPath("pane_more"));
camTransparencyButton->setToolTip(tr("Change camera view transparency."));
x += 1 + iconWidth;
titleBar->add(QPoint(x, 0), camTransparencyButton);
@ -468,8 +461,7 @@ void BaseViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
SLOT(setReferenceMode(int)));
// freeze button
button = new TPanelTitleBarButton(
titleBar, getIconThemePath("actions/20/pane_freeze.svg"));
button = new TPanelTitleBarButton(titleBar, getIconPath("pane_freeze"));
x += 10 + iconWidth;
button->setToolTip(tr("Freeze"));
@ -478,8 +470,8 @@ void BaseViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
SLOT(freeze(bool)));
// preview toggles
m_previewButton = new TPanelTitleBarButtonForPreview(
titleBar, getIconThemePath("actions/20/pane_preview.svg"));
m_previewButton =
new TPanelTitleBarButtonForPreview(titleBar, getIconPath("pane_preview"));
x += 10 + iconWidth;
titleBar->add(QPoint(x, 0), m_previewButton);
m_previewButton->setToolTip(tr("Preview"));
@ -488,7 +480,7 @@ void BaseViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
// SLOT(enableFullPreview(bool)));
m_subcameraPreviewButton = new TPanelTitleBarButtonForPreview(
titleBar, getIconThemePath("actions/20/pane_subpreview.svg"));
titleBar, getIconPath("pane_subpreview"));
x += 1 + 24; // width of pane_preview.svg = 24px
titleBar->add(QPoint(x, 0), m_subcameraPreviewButton);
@ -633,7 +625,7 @@ void BaseViewerPanel::onPlayingStatusChanged(bool playing) {
//-----------------------------------------------------------------------------
void BaseViewerPanel::changeWindowTitle() { // —vŠm”F
void BaseViewerPanel::changeWindowTitle() { // <EFBFBD>v<EFBFBD>m<EFBFBD>F
TApp *app = TApp::instance();
ToonzScene *scene = app->getCurrentScene()->getScene();
if (!scene) return;
@ -669,7 +661,7 @@ void BaseViewerPanel::changeWindowTitle() { //
m_sceneViewer->getNormalZoomScale().inv();
if (m_sceneViewer->getIsFlippedX()) aff = aff * TScale(-1, 1);
if (m_sceneViewer->getIsFlippedY()) aff = aff * TScale(1, -1);
name = name + tr(" :: Zoom : ") +
name = name + tr(" :: Zoom : ") +
QString::number(tround(100.0 * sqrt(aff.det()))) + "%";
if (m_sceneViewer->getIsFlippedX() || m_sceneViewer->getIsFlippedY()) {
name = name + tr(" (Flipped)");
@ -699,7 +691,7 @@ void BaseViewerPanel::changeWindowTitle() { //
m_sceneViewer->getNormalZoomScale().inv();
if (m_sceneViewer->getIsFlippedX()) aff = aff * TScale(-1, 1);
if (m_sceneViewer->getIsFlippedY()) aff = aff * TScale(1, -1);
name = name + tr(" :: Zoom : ") +
name = name + tr(" :: Zoom : ") +
QString::number(tround(100.0 * sqrt(aff.det()))) + "%";
if (m_sceneViewer->getIsFlippedX() || m_sceneViewer->getIsFlippedY()) {
name = name + tr(" (Flipped)");

View file

@ -144,21 +144,19 @@ bool containsVectorLevel(int col) {
}
QIcon createLockIcon(XsheetViewer *viewer) {
QImage icon_on, icon_off;
QColor bgColor_on, bgColor_off;
viewer->getButton(LOCK_ON_XSHBUTTON, bgColor_on, icon_on);
viewer->getButton(LOCK_OFF_XSHBUTTON, bgColor_off, icon_off);
QPainter p_on(&icon_on);
p_on.setCompositionMode(QPainter::CompositionMode_DestinationOver);
p_on.fillRect(0, 0, icon_on.width(), icon_on.height(), bgColor_on);
p_on.end();
QPainter p_off(&icon_off);
p_off.setCompositionMode(QPainter::CompositionMode_DestinationOver);
p_off.fillRect(0, 0, icon_off.width(), icon_off.height(), bgColor_off);
p_off.end();
QString svgFilePath_on = viewer->getXsheetLockButtonOnImage();
QString svgFilePath_off = viewer->getXsheetLockButtonOffImage();
QPixmap pm_on = svgToPixmap(svgFilePath_on, QSize(16, 16),
Qt::KeepAspectRatio, bgColor_on);
QPixmap pm_off = svgToPixmap(svgFilePath_off, QSize(16, 16),
Qt::KeepAspectRatio, bgColor_off);
QIcon lockIcon;
lockIcon.addPixmap(QPixmap::fromImage(icon_off));
lockIcon.addPixmap(QPixmap::fromImage(icon_on), QIcon::Normal, QIcon::On);
lockIcon.addPixmap(pm_off);
lockIcon.addPixmap(pm_on, QIcon::Normal, QIcon::On);
return lockIcon;
}
@ -475,7 +473,7 @@ void ChangeObjectParent::refresh() {
else if (id.isCamera()) {
bool isActive = (id == xsh->getStageObjectTree()->getCurrentCameraId());
newTextBG = isActive ? viewer->getActiveCameraColor()
: viewer->getOtherCameraColor();
: viewer->getOtherCameraColor();
} else if (id.isColumn() && (!xsh->isColumnEmpty(index))) {
TXshColumn *colx = xsh->getColumn(index);
if (!colx->canBeParent()) continue;
@ -677,10 +675,11 @@ void RenameColumnField::show(const QRect &rect, int col) {
->getName();
TXshColumn *column = xsh->getColumn(col);
TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column);
/*
if (zColumn)
name = ::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName());
*/
/*
if (zColumn)
name =
::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName());
*/
setText(QString(name.c_str()));
selectAll();
@ -775,13 +774,11 @@ void ColumnArea::DrawHeader::prepare() const {
//-----------------------------------------------------------------------------
const QPixmap &ColumnArea::Pixmaps::sound() {
static QPixmap sound =
svgToPixmap(getIconThemePath("actions/30/sound_header.svg"));
static QPixmap sound = generateIconPixmap("sound_header");
return sound;
}
const QPixmap &ColumnArea::Pixmaps::soundPlaying() {
static QPixmap soundPlaying =
svgToPixmap(getIconThemePath("actions/30/sound_header_on.svg"));
static QPixmap soundPlaying = generateIconPixmap("sound_header_on");
return soundPlaying;
}
@ -796,13 +793,13 @@ void ColumnArea::DrawHeader::levelColors(QColor &columnColor,
cameraId.getIndex() == m_viewer->getXsheet()->getCameraColumnIndex();
columnColor = isActive ? m_viewer->getActiveCameraColor()
: m_viewer->getOtherCameraColor();
dragColor = isActive ? m_viewer->getActiveCameraColor()
: m_viewer->getOtherCameraColor();
dragColor = isActive ? m_viewer->getActiveCameraColor()
: m_viewer->getOtherCameraColor();
return;
}
enum { Normal, Reference, Control } usage = Reference;
if (column) {
if (column->isControl()) usage = Control;
if (column->isControl()) usage = Control;
if (column->isRendered() || column->getMeshColumn()) usage = Normal;
}
@ -820,7 +817,7 @@ void ColumnArea::DrawHeader::paletteColors(QColor &columnColor,
QColor &dragColor) const {
enum { Normal, Reference, Control } usage = Reference;
if (column) { // Check if column is a mask
if (column->isControl()) usage = Control;
if (column->isControl()) usage = Control;
if (column->isRendered()) usage = Normal;
}
@ -896,16 +893,17 @@ void ColumnArea::DrawHeader::drawEye() const {
if (col < 0 && o->isVerticalTimeline())
return; // no preview eye in the camera column
QColor bgColor;
QImage icon;
QString svgFilePath;
int buttonType = !column->isPreviewVisible() ? PREVIEW_OFF_XSHBUTTON
: PREVIEW_ON_XSHBUTTON;
m_viewer->getButton(buttonType, bgColor, icon, !o->isVerticalTimeline());
m_viewer->getButton(buttonType, bgColor, svgFilePath,
!o->isVerticalTimeline());
QRect prevViewRect = o->rect(PredefinedRect::EYE_AREA).translated(orig);
QRect eyeRect = o->rect(PredefinedRect::EYE).translated(orig);
// preview visible toggle
if (o->isVerticalTimeline())
p.setPen(m_viewer->getColumnIconLineColor()); // Preview border color
p.setPen(m_viewer->getColumnIconLineColor()); // Preview border color
else
p.setPen(m_viewer->getTimelineIconLineColor()); // Preview border color
@ -923,7 +921,10 @@ void ColumnArea::DrawHeader::drawEye() const {
buttonType == PREVIEW_OFF_XSHBUTTON)
return;
p.drawImage(eyeRect, icon);
QPixmap icon =
svgToPixmap(svgFilePath, eyeRect.size(), Qt::KeepAspectRatio, bgColor);
p.drawPixmap(eyeRect, icon);
}
void ColumnArea::DrawHeader::drawPreviewToggle(int opacity) const {
@ -932,12 +933,12 @@ void ColumnArea::DrawHeader::drawPreviewToggle(int opacity) const {
return; // no camstand toggle in the camera column
// camstand visible toggle
QColor bgColor;
QImage icon;
int buttonType =
!column->isCamstandVisible()
? CAMSTAND_OFF_XSHBUTTON
: opacity < 255 ? CAMSTAND_TRANSP_XSHBUTTON : CAMSTAND_ON_XSHBUTTON;
m_viewer->getButton(buttonType, bgColor, icon, !o->isVerticalTimeline());
QString svgFilePath;
int buttonType = !column->isCamstandVisible() ? CAMSTAND_OFF_XSHBUTTON
: opacity < 255 ? CAMSTAND_TRANSP_XSHBUTTON
: CAMSTAND_ON_XSHBUTTON;
m_viewer->getButton(buttonType, bgColor, svgFilePath,
!o->isVerticalTimeline());
QRect tableViewRect =
o->rect(PredefinedRect::PREVIEW_LAYER_AREA).translated(orig);
@ -945,7 +946,7 @@ void ColumnArea::DrawHeader::drawPreviewToggle(int opacity) const {
o->rect(PredefinedRect::PREVIEW_LAYER).translated(orig);
if (o->isVerticalTimeline())
p.setPen(m_viewer->getColumnIconLineColor()); // Camstand border color
p.setPen(m_viewer->getColumnIconLineColor()); // Camstand border color
else
p.setPen(m_viewer->getTimelineIconLineColor()); // Camstand border color
@ -964,15 +965,20 @@ void ColumnArea::DrawHeader::drawPreviewToggle(int opacity) const {
m_viewer->getXsheetLayout() == QString("Classic") &&
buttonType == CAMSTAND_OFF_XSHBUTTON)
return;
p.drawImage(tableViewImgRect, icon);
QPixmap icon = svgToPixmap(svgFilePath, tableViewImgRect.size(),
Qt::KeepAspectRatio, bgColor);
p.drawPixmap(tableViewImgRect, icon);
}
void ColumnArea::DrawHeader::drawLock() const {
if (isEmpty || !o->flag(PredefinedFlag::LOCK_AREA_VISIBLE)) return;
QColor bgColor;
QImage icon;
QString svgFilePath;
int buttonType = !column->isLocked() ? LOCK_OFF_XSHBUTTON : LOCK_ON_XSHBUTTON;
m_viewer->getButton(buttonType, bgColor, icon, !o->isVerticalTimeline());
m_viewer->getButton(buttonType, bgColor, svgFilePath,
!o->isVerticalTimeline());
QRect lockModeRect = o->rect((col < 0) ? PredefinedRect::CAMERA_LOCK_AREA
: PredefinedRect::LOCK_AREA)
@ -988,7 +994,7 @@ void ColumnArea::DrawHeader::drawLock() const {
// lock button
if (o->isVerticalTimeline())
p.setPen(m_viewer->getColumnIconLineColor()); // Lock border color
p.setPen(m_viewer->getColumnIconLineColor()); // Lock border color
else
p.setPen(m_viewer->getTimelineIconLineColor()); // Lock border color
@ -1000,7 +1006,11 @@ void ColumnArea::DrawHeader::drawLock() const {
m_viewer->getXsheetLayout() == QString("Classic") &&
buttonType == LOCK_OFF_XSHBUTTON)
return;
p.drawImage(lockModeImgRect, icon);
QPixmap icon = svgToPixmap(svgFilePath, lockModeImgRect.size(),
Qt::KeepAspectRatio, bgColor);
p.drawPixmap(lockModeImgRect, icon);
}
void ColumnArea::DrawHeader::drawConfig() const {
@ -1008,9 +1018,10 @@ void ColumnArea::DrawHeader::drawConfig() const {
(col < 0 && !o->flag(PredefinedFlag::CAMERA_CONFIG_AREA_VISIBLE)))
return;
QColor bgColor;
QImage icon;
QString svgFilePath;
int buttonType = CONFIG_XSHBUTTON;
m_viewer->getButton(buttonType, bgColor, icon, !o->isVerticalTimeline());
m_viewer->getButton(buttonType, bgColor, svgFilePath,
!o->isVerticalTimeline());
QRect configRect = o->rect((col < 0) ? PredefinedRect::CAMERA_CONFIG_AREA
: PredefinedRect::CONFIG_AREA)
@ -1034,7 +1045,10 @@ void ColumnArea::DrawHeader::drawConfig() const {
if (zColumn || column->getPaletteColumn() || column->getSoundTextColumn())
return;
p.drawImage(configImgRect, icon);
QPixmap icon = svgToPixmap(svgFilePath, configImgRect.size(),
Qt::KeepAspectRatio, bgColor);
p.drawPixmap(configImgRect, icon);
}
void ColumnArea::DrawHeader::drawColumnNumber() const {
@ -1074,12 +1088,13 @@ void ColumnArea::DrawHeader::drawColumnName() const {
if (levels.size() == 1) name = to_string((*levels.begin())->getName());
}
// if (col < 0) name = std::string("Camera");
/*
// ZeraryFx columns store name elsewhere
TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column);
if (zColumn && !isEmpty)
name = ::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName());
*/
/*
// ZeraryFx columns store name elsewhere
TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column);
if (zColumn && !isEmpty)
name =
::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName());
*/
QRect columnName = o->rect((col < 0) ? PredefinedRect::CAMERA_LAYER_NAME
: PredefinedRect::LAYER_NAME)
.translated(orig);
@ -1307,7 +1322,7 @@ void ColumnArea::DrawHeader::drawParentHandleName() const {
if (o->flag(PredefinedFlag::PARENT_HANDLE_NAME_BORDER))
p.drawRect(parenthandleRect);
std::string handle = xsh->getStageObject(columnId)->getParentHandle();
std::string handle = xsh->getStageObject(columnId)->getParentHandle();
if (handle[0] == 'H' && handle.length() > 1) handle = handle.substr(1);
if (handle == "B") { // Default handle
@ -1813,8 +1828,7 @@ void ColumnArea::drawSoundTextColumnHead(QPainter &p, int col) { // AREA
drawHeader.drawConfig();
drawHeader.drawColumnName();
drawHeader.drawColumnNumber();
static QPixmap iconPixmap(
recolorPixmap(svgToPixmap(getIconThemePath("actions/74/notelevel.svg"))));
static QPixmap iconPixmap(generateIconPixmap("notelevel"));
drawHeader.drawThumbnail(iconPixmap);
drawHeader.drawPegbarName();
drawHeader.drawParentHandleName();
@ -1987,7 +2001,6 @@ m_value->setFont(font);*/
lockExtraBtn->setMenu(menu);
lockExtraBtn->setFixedSize(20, 20);
}
QGridLayout *mainLayout = new QGridLayout();
mainLayout->setMargin(3);
@ -2026,12 +2039,12 @@ m_value->setFont(font);*/
bool ret = connect(m_slider, SIGNAL(sliderReleased()), this,
SLOT(onSliderReleased()));
ret = ret && connect(m_slider, SIGNAL(sliderMoved(int)), this,
SLOT(onSliderChange(int)));
ret = ret && connect(m_slider, SIGNAL(valueChanged(int)), this,
SLOT(onSliderValueChanged(int)));
ret = ret && connect(m_value, SIGNAL(textChanged(const QString &)), this,
SLOT(onValueChanged(const QString &)));
ret = ret && connect(m_slider, SIGNAL(sliderMoved(int)), this,
SLOT(onSliderChange(int)));
ret = ret && connect(m_slider, SIGNAL(valueChanged(int)), this,
SLOT(onSliderValueChanged(int)));
ret = ret && connect(m_value, SIGNAL(textChanged(const QString &)), this,
SLOT(onValueChanged(const QString &)));
ret = ret && connect(m_filterColorCombo, SIGNAL(activated(int)), this,
SLOT(onFilterColorChanged(int)));
@ -2173,12 +2186,12 @@ SoundColumnPopup::SoundColumnPopup(QWidget *parent)
bool ret = connect(m_slider, SIGNAL(sliderReleased()), this,
SLOT(onSliderReleased()));
ret = ret && connect(m_slider, SIGNAL(sliderMoved(int)), this,
SLOT(onSliderChange(int)));
ret = ret && connect(m_slider, SIGNAL(valueChanged(int)), this,
SLOT(onSliderValueChanged(int)));
ret = ret && connect(m_value, SIGNAL(textChanged(const QString &)), this,
SLOT(onValueChanged(const QString &)));
ret = ret && connect(m_slider, SIGNAL(sliderMoved(int)), this,
SLOT(onSliderChange(int)));
ret = ret && connect(m_slider, SIGNAL(valueChanged(int)), this,
SLOT(onSliderValueChanged(int)));
ret = ret && connect(m_value, SIGNAL(textChanged(const QString &)), this,
SLOT(onValueChanged(const QString &)));
assert(ret);
}
@ -2403,7 +2416,7 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) {
if (event->button() != Qt::LeftButton) return;
m_doOnRelease = isCtrlPressed ? ToggleAllLock : ToggleLock;
} else if (o->rect(PredefinedRect::CAMERA_CONFIG_AREA)
.contains(mouseInCell)) {
.contains(mouseInCell)) {
// config button
if (event->button() != Qt::LeftButton) return;
m_doOnRelease = OpenSettings;
@ -2502,7 +2515,7 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) {
m_viewer->setCurrentColumn(m_col);
if (event->button() != Qt::LeftButton) return;
if (xsh->getColumn(m_col)->getSoundTextColumn()) return;
int y = Preferences::instance()->isShowQuickToolbarEnabled() ? 30 : 0;
TStageObjectId columnId = m_viewer->getObjectId(m_col);
bool isColumn = xsh->getStageObject(columnId)->getParent().isColumn();
@ -2514,21 +2527,20 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) {
: o->rect(PredefinedRect::PEGBAR_NAME).contains(mouseInCell);
if (clickChangeParent) {
m_changeObjectParent->refresh();
m_changeObjectParent->show(QPoint(
o->rect(PredefinedRect::PARENT_HANDLE_NAME).bottomLeft() +
QPoint(o->rect(PredefinedRect::CAMERA_CELL).width(), 0) +
m_viewer->positionToXY(CellPosition(0, m_col)) +
QPoint(-m_viewer->getColumnScrollValue(), y)));
m_changeObjectParent->show(
QPoint(o->rect(PredefinedRect::PARENT_HANDLE_NAME).bottomLeft() +
QPoint(o->rect(PredefinedRect::CAMERA_CELL).width(), 0) +
m_viewer->positionToXY(CellPosition(0, m_col)) +
QPoint(-m_viewer->getColumnScrollValue(), y)));
return;
}
if (isColumn &&
o->rect(PredefinedRect::PARENT_HANDLE_NAME)
.contains(mouseInCell)) {
o->rect(PredefinedRect::PARENT_HANDLE_NAME).contains(mouseInCell)) {
m_changeObjectHandle->refresh();
m_changeObjectHandle->show(QPoint(
o->rect(PredefinedRect::PARENT_HANDLE_NAME).bottomLeft() +
m_viewer->positionToXY(CellPosition(0, m_col + 1)) +
QPoint(-m_viewer->getColumnScrollValue(), y)));
m_changeObjectHandle->show(
QPoint(o->rect(PredefinedRect::PARENT_HANDLE_NAME).bottomLeft() +
m_viewer->positionToXY(CellPosition(0, m_col + 1)) +
QPoint(-m_viewer->getColumnScrollValue(), y)));
return;
}
@ -2593,8 +2605,8 @@ void ColumnArea::mouseMoveEvent(QMouseEvent *event) {
return;
}
int col = m_viewer->xyToPosition(pos).layer();
if (col < -1) col = 0;
int col = m_viewer->xyToPosition(pos).layer();
if (col < -1) col = 0;
TXsheet *xsh = m_viewer->getXsheet();
TXshColumn *column = xsh->getColumn(col);
QPoint mouseInCell = pos - m_viewer->positionToXY(CellPosition(0, col));
@ -2973,7 +2985,7 @@ void ColumnArea::contextMenuEvent(QContextMenuEvent *event) {
flipOrientation->setToolTip(tr("Toggle Between Timeline and Xsheet View"));
bool ret = true;
ret = ret && connect(flipOrientation, &QAction::triggered,
[=]() { m_viewer->flipOrientation(); });
[=]() { m_viewer->flipOrientation(); });
assert(ret);
menu.addAction(flipOrientation);

View file

@ -155,60 +155,60 @@ void XsheetViewer::getColumnColor(QColor &color, QColor &sideColor, int index,
//-----------------------------------------------------------------------------
void XsheetViewer::getButton(const int &btype, QColor &bgColor,
QImage &iconImage, bool isTimeline) {
QString &svgIconPath, bool isTimeline) {
switch (btype) {
case PREVIEW_ON_XSHBUTTON:
bgColor = (isTimeline) ? getTimelinePreviewButtonBgOnColor()
: getXsheetPreviewButtonBgOnColor();
iconImage = (isTimeline) ? getTimelinePreviewButtonOnImage()
bgColor = (isTimeline) ? getTimelinePreviewButtonBgOnColor()
: getXsheetPreviewButtonBgOnColor();
svgIconPath = (isTimeline) ? getTimelinePreviewButtonOnImage()
: getXsheetPreviewButtonOnImage();
break;
case PREVIEW_OFF_XSHBUTTON:
bgColor = (isTimeline) ? getTimelinePreviewButtonBgOffColor()
: getXsheetPreviewButtonBgOffColor();
iconImage = (isTimeline) ? getTimelinePreviewButtonOffImage()
bgColor = (isTimeline) ? getTimelinePreviewButtonBgOffColor()
: getXsheetPreviewButtonBgOffColor();
svgIconPath = (isTimeline) ? getTimelinePreviewButtonOffImage()
: getXsheetPreviewButtonOffImage();
break;
case CAMSTAND_ON_XSHBUTTON:
bgColor = (isTimeline) ? getTimelineCamstandButtonBgOnColor()
: getXsheetCamstandButtonBgOnColor();
iconImage = (isTimeline) ? getTimelineCamstandButtonOnImage()
bgColor = (isTimeline) ? getTimelineCamstandButtonBgOnColor()
: getXsheetCamstandButtonBgOnColor();
svgIconPath = (isTimeline) ? getTimelineCamstandButtonOnImage()
: getXsheetCamstandButtonOnImage();
break;
case CAMSTAND_TRANSP_XSHBUTTON:
bgColor = (isTimeline) ? getTimelineCamstandButtonBgOnColor()
: getXsheetCamstandButtonBgOnColor();
iconImage = (isTimeline) ? getTimelineCamstandButtonTranspImage()
bgColor = (isTimeline) ? getTimelineCamstandButtonBgOnColor()
: getXsheetCamstandButtonBgOnColor();
svgIconPath = (isTimeline) ? getTimelineCamstandButtonTranspImage()
: getXsheetCamstandButtonTranspImage();
break;
case CAMSTAND_OFF_XSHBUTTON:
bgColor = (isTimeline) ? getTimelineCamstandButtonBgOffColor()
: getXsheetCamstandButtonBgOffColor();
iconImage = (isTimeline) ? getTimelineCamstandButtonOffImage()
bgColor = (isTimeline) ? getTimelineCamstandButtonBgOffColor()
: getXsheetCamstandButtonBgOffColor();
svgIconPath = (isTimeline) ? getTimelineCamstandButtonOffImage()
: getXsheetCamstandButtonOffImage();
break;
case LOCK_ON_XSHBUTTON:
bgColor = (isTimeline) ? getTimelineLockButtonBgOnColor()
: getXsheetLockButtonBgOnColor();
iconImage = (isTimeline) ? getTimelineLockButtonOnImage()
bgColor = (isTimeline) ? getTimelineLockButtonBgOnColor()
: getXsheetLockButtonBgOnColor();
svgIconPath = (isTimeline) ? getTimelineLockButtonOnImage()
: getXsheetLockButtonOnImage();
break;
case LOCK_OFF_XSHBUTTON:
bgColor = (isTimeline) ? getTimelineLockButtonBgOffColor()
: getXsheetLockButtonBgOffColor();
iconImage = (isTimeline) ? getTimelineLockButtonOffImage()
bgColor = (isTimeline) ? getTimelineLockButtonBgOffColor()
: getXsheetLockButtonBgOffColor();
svgIconPath = (isTimeline) ? getTimelineLockButtonOffImage()
: getXsheetLockButtonOffImage();
break;
case CONFIG_XSHBUTTON:
bgColor = (isTimeline) ? getTimelineConfigButtonBgColor()
: getXsheetConfigButtonBgColor();
iconImage = (isTimeline) ? getTimelineConfigButtonImage()
bgColor = (isTimeline) ? getTimelineConfigButtonBgColor()
: getXsheetConfigButtonBgColor();
svgIconPath = (isTimeline) ? getTimelineConfigButtonImage()
: getXsheetConfigButtonImage();
break;
default:
bgColor = grey210;
static QImage iconignored;
iconImage = iconignored;
svgIconPath = "";
}
}

View file

@ -435,145 +435,145 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings {
// Xsheet Preview Button
QColor m_xsheetPreviewButtonBgOnColor;
QImage m_xsheetPreviewButtonOnImage;
QString m_xsheetPreviewButtonOnImage;
QColor m_xsheetPreviewButtonBgOffColor;
QImage m_xsheetPreviewButtonOffImage;
QString m_xsheetPreviewButtonOffImage;
Q_PROPERTY(
QColor XsheetPreviewButtonBgOnColor READ getXsheetPreviewButtonBgOnColor
WRITE setXsheetPreviewButtonBgOnColor)
Q_PROPERTY(
QImage XsheetPreviewButtonOnImage READ getXsheetPreviewButtonOnImage WRITE
QString XsheetPreviewButtonOnImage READ getXsheetPreviewButtonOnImage WRITE
setXsheetPreviewButtonOnImage)
Q_PROPERTY(
QColor XsheetPreviewButtonBgOffColor READ getXsheetPreviewButtonBgOffColor
WRITE setXsheetPreviewButtonBgOffColor)
Q_PROPERTY(
QImage XsheetPreviewButtonOffImage READ getXsheetPreviewButtonOffImage
QString XsheetPreviewButtonOffImage READ getXsheetPreviewButtonOffImage
WRITE setXsheetPreviewButtonOffImage)
// Xsheet Camstand Button
QColor m_xsheetCamstandButtonBgOnColor;
QImage m_xsheetCamstandButtonOnImage;
QImage m_xsheetCamstandButtonTranspImage;
QString m_xsheetCamstandButtonOnImage;
QString m_xsheetCamstandButtonTranspImage;
QColor m_xsheetCamstandButtonBgOffColor;
QImage m_xsheetCamstandButtonOffImage;
QString m_xsheetCamstandButtonOffImage;
Q_PROPERTY(
QColor XsheetCamstandButtonBgOnColor READ getXsheetCamstandButtonBgOnColor
WRITE setXsheetCamstandButtonBgOnColor)
Q_PROPERTY(
QImage XsheetCamstandButtonOnImage READ getXsheetCamstandButtonOnImage
QString XsheetCamstandButtonOnImage READ getXsheetCamstandButtonOnImage
WRITE setXsheetCamstandButtonOnImage)
Q_PROPERTY(QImage XsheetCamstandButtonTranspImage READ
Q_PROPERTY(QString XsheetCamstandButtonTranspImage READ
getXsheetCamstandButtonTranspImage WRITE
setXsheetCamstandButtonTranspImage)
Q_PROPERTY(QColor XsheetCamstandButtonBgOffColor READ
getXsheetCamstandButtonBgOffColor WRITE
setXsheetCamstandButtonBgOffColor)
Q_PROPERTY(
QImage XsheetCamstandButtonOffImage READ getXsheetCamstandButtonOffImage
QString XsheetCamstandButtonOffImage READ getXsheetCamstandButtonOffImage
WRITE setXsheetCamstandButtonOffImage)
// Xsheet Lock Button
QColor m_xsheetLockButtonBgOnColor;
QImage m_xsheetLockButtonOnImage;
QString m_xsheetLockButtonOnImage;
QColor m_xsheetLockButtonBgOffColor;
QImage m_xsheetLockButtonOffImage;
QString m_xsheetLockButtonOffImage;
Q_PROPERTY(QColor XsheetLockButtonBgOnColor READ getXsheetLockButtonBgOnColor
WRITE setXsheetLockButtonBgOnColor)
Q_PROPERTY(QImage XsheetLockButtonOnImage READ getXsheetLockButtonOnImage
Q_PROPERTY(QString XsheetLockButtonOnImage READ getXsheetLockButtonOnImage
WRITE setXsheetLockButtonOnImage)
Q_PROPERTY(
QColor XsheetLockButtonBgOffColor READ getXsheetLockButtonBgOffColor WRITE
setXsheetLockButtonBgOffColor)
Q_PROPERTY(QImage XsheetLockButtonOffImage READ getXsheetLockButtonOffImage
Q_PROPERTY(QString XsheetLockButtonOffImage READ getXsheetLockButtonOffImage
WRITE setXsheetLockButtonOffImage)
// Xsheet Config Button
QColor m_xsheetConfigButtonBgColor;
QImage m_xsheetConfigButtonImage;
QString m_xsheetConfigButtonImage;
Q_PROPERTY(QColor XsheetConfigButtonBgColor READ getXsheetConfigButtonBgColor
WRITE setXsheetConfigButtonBgColor)
Q_PROPERTY(QImage XsheetConfigButtonImage READ getXsheetConfigButtonImage
Q_PROPERTY(QString XsheetConfigButtonImage READ getXsheetConfigButtonImage
WRITE setXsheetConfigButtonImage)
// Timeline Preview Button
QColor m_timelinePreviewButtonBgOnColor;
QImage m_timelinePreviewButtonOnImage;
QString m_timelinePreviewButtonOnImage;
QColor m_timelinePreviewButtonBgOffColor;
QImage m_timelinePreviewButtonOffImage;
QString m_timelinePreviewButtonOffImage;
Q_PROPERTY(QColor TimelinePreviewButtonBgOnColor READ
getTimelinePreviewButtonBgOnColor WRITE
setTimelinePreviewButtonBgOnColor)
Q_PROPERTY(
QImage TimelinePreviewButtonOnImage READ getTimelinePreviewButtonOnImage
QString TimelinePreviewButtonOnImage READ getTimelinePreviewButtonOnImage
WRITE setTimelinePreviewButtonOnImage)
Q_PROPERTY(QColor TimelinePreviewButtonBgOffColor READ
getTimelinePreviewButtonBgOffColor WRITE
setTimelinePreviewButtonBgOffColor)
Q_PROPERTY(
QImage TimelinePreviewButtonOffImage READ getTimelinePreviewButtonOffImage
QString TimelinePreviewButtonOffImage READ getTimelinePreviewButtonOffImage
WRITE setTimelinePreviewButtonOffImage)
// Timeline Camstand Button
QColor m_timelineCamstandButtonBgOnColor;
QImage m_timelineCamstandButtonOnImage;
QImage m_timelineCamstandButtonTranspImage;
QString m_timelineCamstandButtonOnImage;
QString m_timelineCamstandButtonTranspImage;
QColor m_timelineCamstandButtonBgOffColor;
QImage m_timelineCamstandButtonOffImage;
QString m_timelineCamstandButtonOffImage;
Q_PROPERTY(QColor TimelineCamstandButtonBgOnColor READ
getTimelineCamstandButtonBgOnColor WRITE
setTimelineCamstandButtonBgOnColor)
Q_PROPERTY(
QImage TimelineCamstandButtonOnImage READ getTimelineCamstandButtonOnImage
QString TimelineCamstandButtonOnImage READ getTimelineCamstandButtonOnImage
WRITE setTimelineCamstandButtonOnImage)
Q_PROPERTY(QImage TimelineCamstandButtonTranspImage READ
Q_PROPERTY(QString TimelineCamstandButtonTranspImage READ
getTimelineCamstandButtonTranspImage WRITE
setTimelineCamstandButtonTranspImage)
Q_PROPERTY(QColor TimelineCamstandButtonBgOffColor READ
getTimelineCamstandButtonBgOffColor WRITE
setTimelineCamstandButtonBgOffColor)
Q_PROPERTY(QImage TimelineCamstandButtonOffImage READ
Q_PROPERTY(QString TimelineCamstandButtonOffImage READ
getTimelineCamstandButtonOffImage WRITE
setTimelineCamstandButtonOffImage)
// Timeline Lock Button
QColor m_timelineLockButtonBgOnColor;
QImage m_timelineLockButtonOnImage;
QString m_timelineLockButtonOnImage;
QColor m_timelineLockButtonBgOffColor;
QImage m_timelineLockButtonOffImage;
QString m_timelineLockButtonOffImage;
Q_PROPERTY(
QColor TimelineLockButtonBgOnColor READ getTimelineLockButtonBgOnColor
WRITE setTimelineLockButtonBgOnColor)
Q_PROPERTY(QImage TimelineLockButtonOnImage READ getTimelineLockButtonOnImage
Q_PROPERTY(QString TimelineLockButtonOnImage READ getTimelineLockButtonOnImage
WRITE setTimelineLockButtonOnImage)
Q_PROPERTY(
QColor TimelineLockButtonBgOffColor READ getTimelineLockButtonBgOffColor
WRITE setTimelineLockButtonBgOffColor)
Q_PROPERTY(
QImage TimelineLockButtonOffImage READ getTimelineLockButtonOffImage WRITE
QString TimelineLockButtonOffImage READ getTimelineLockButtonOffImage WRITE
setTimelineLockButtonOffImage)
// Timeline Config Button
QColor m_timelineConfigButtonBgColor;
QImage m_timelineConfigButtonImage;
QString m_timelineConfigButtonImage;
Q_PROPERTY(
QColor TimelineConfigButtonBgColor READ getTimelineConfigButtonBgColor
WRITE setTimelineConfigButtonBgColor)
Q_PROPERTY(QImage TimelineConfigButtonImage READ getTimelineConfigButtonImage
Q_PROPERTY(QString TimelineConfigButtonImage READ getTimelineConfigButtonImage
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
QString m_layerHeaderPreviewImage;
QString m_layerHeaderPreviewOverImage;
QString m_layerHeaderCamstandImage;
QString m_layerHeaderCamstandOverImage;
QString m_layerHeaderLockImage;
QString m_layerHeaderLockOverImage;
Q_PROPERTY(QString LayerHeaderPreviewImage READ getLayerHeaderPreviewImage
WRITE setLayerHeaderPreviewImage)
Q_PROPERTY(
QImage LayerHeaderPreviewOverImage READ getLayerHeaderPreviewOverImage
QString LayerHeaderPreviewOverImage READ getLayerHeaderPreviewOverImage
WRITE setLayerHeaderPreviewOverImage)
Q_PROPERTY(QImage LayerHeaderCamstandImage READ getLayerHeaderCamstandImage
Q_PROPERTY(QString LayerHeaderCamstandImage READ getLayerHeaderCamstandImage
WRITE setLayerHeaderCamstandImage)
Q_PROPERTY(
QImage LayerHeaderCamstandOverImage READ getLayerHeaderCamstandOverImage
QString LayerHeaderCamstandOverImage READ getLayerHeaderCamstandOverImage
WRITE setLayerHeaderCamstandOverImage)
Q_PROPERTY(QImage LayerHeaderLockImage READ getLayerHeaderLockImage WRITE
Q_PROPERTY(QString LayerHeaderLockImage READ getLayerHeaderLockImage WRITE
setLayerHeaderLockImage)
Q_PROPERTY(QImage LayerHeaderLockOverImage READ getLayerHeaderLockOverImage
Q_PROPERTY(QString LayerHeaderLockOverImage READ getLayerHeaderLockOverImage
WRITE setLayerHeaderLockOverImage)
XsheetScrollArea *m_cellScrollArea;
@ -1068,227 +1068,227 @@ public:
void setXsheetPreviewButtonBgOnColor(const QColor &color) {
m_xsheetPreviewButtonBgOnColor = color;
}
void setXsheetPreviewButtonOnImage(const QImage &image) {
m_xsheetPreviewButtonOnImage = image;
void setXsheetPreviewButtonOnImage(const QString &svgFIlePath) {
m_xsheetPreviewButtonOnImage = svgFIlePath;
}
void setXsheetPreviewButtonBgOffColor(const QColor &color) {
m_xsheetPreviewButtonBgOffColor = color;
}
void setXsheetPreviewButtonOffImage(const QImage &image) {
m_xsheetPreviewButtonOffImage = image;
void setXsheetPreviewButtonOffImage(const QString &svgFIlePath) {
m_xsheetPreviewButtonOffImage = svgFIlePath;
}
QColor getXsheetPreviewButtonBgOnColor() const {
return m_xsheetPreviewButtonBgOnColor;
}
QImage getXsheetPreviewButtonOnImage() const {
QString getXsheetPreviewButtonOnImage() const {
return m_xsheetPreviewButtonOnImage;
}
QColor getXsheetPreviewButtonBgOffColor() const {
return m_xsheetPreviewButtonBgOffColor;
}
QImage getXsheetPreviewButtonOffImage() const {
QString getXsheetPreviewButtonOffImage() const {
return m_xsheetPreviewButtonOffImage;
}
// Xsheet Camstand Button
void setXsheetCamstandButtonBgOnColor(const QColor &color) {
m_xsheetCamstandButtonBgOnColor = color;
}
void setXsheetCamstandButtonOnImage(const QImage &image) {
m_xsheetCamstandButtonOnImage = image;
void setXsheetCamstandButtonOnImage(const QString &svgFIlePath) {
m_xsheetCamstandButtonOnImage = svgFIlePath;
}
void setXsheetCamstandButtonTranspImage(const QImage &image) {
m_xsheetCamstandButtonTranspImage = image;
void setXsheetCamstandButtonTranspImage(const QString &svgFIlePath) {
m_xsheetCamstandButtonTranspImage = svgFIlePath;
}
void setXsheetCamstandButtonBgOffColor(const QColor &color) {
m_xsheetCamstandButtonBgOffColor = color;
}
void setXsheetCamstandButtonOffImage(const QImage &image) {
m_xsheetCamstandButtonOffImage = image;
void setXsheetCamstandButtonOffImage(const QString &svgFIlePath) {
m_xsheetCamstandButtonOffImage = svgFIlePath;
}
QColor getXsheetCamstandButtonBgOnColor() const {
return m_xsheetCamstandButtonBgOnColor;
}
QImage getXsheetCamstandButtonOnImage() const {
QString getXsheetCamstandButtonOnImage() const {
return m_xsheetCamstandButtonOnImage;
}
QImage getXsheetCamstandButtonTranspImage() const {
QString getXsheetCamstandButtonTranspImage() const {
return m_xsheetCamstandButtonTranspImage;
}
QColor getXsheetCamstandButtonBgOffColor() const {
return m_xsheetCamstandButtonBgOffColor;
}
QImage getXsheetCamstandButtonOffImage() const {
QString getXsheetCamstandButtonOffImage() const {
return m_xsheetCamstandButtonOffImage;
}
// XsheetLock Button
void setXsheetLockButtonBgOnColor(const QColor &color) {
m_xsheetLockButtonBgOnColor = color;
}
void setXsheetLockButtonOnImage(const QImage &image) {
m_xsheetLockButtonOnImage = image;
void setXsheetLockButtonOnImage(const QString &svgFIlePath) {
m_xsheetLockButtonOnImage = svgFIlePath;
}
void setXsheetLockButtonBgOffColor(const QColor &color) {
m_xsheetLockButtonBgOffColor = color;
}
void setXsheetLockButtonOffImage(const QImage &image) {
m_xsheetLockButtonOffImage = image;
void setXsheetLockButtonOffImage(const QString &svgFIlePath) {
m_xsheetLockButtonOffImage = svgFIlePath;
}
QColor getXsheetLockButtonBgOnColor() const {
return m_xsheetLockButtonBgOnColor;
}
QImage getXsheetLockButtonOnImage() const {
QString getXsheetLockButtonOnImage() const {
return m_xsheetLockButtonOnImage;
}
QColor getXsheetLockButtonBgOffColor() const {
return m_xsheetLockButtonBgOffColor;
}
QImage getXsheetLockButtonOffImage() const {
QString getXsheetLockButtonOffImage() const {
return m_xsheetLockButtonOffImage;
}
// Xsheet Config Button
void setXsheetConfigButtonBgColor(const QColor &color) {
m_xsheetConfigButtonBgColor = color;
}
void setXsheetConfigButtonImage(const QImage &image) {
m_xsheetConfigButtonImage = image;
void setXsheetConfigButtonImage(const QString &svgFIlePath) {
m_xsheetConfigButtonImage = svgFIlePath;
}
QColor getXsheetConfigButtonBgColor() const {
return m_xsheetConfigButtonBgColor;
}
QImage getXsheetConfigButtonImage() const {
QString getXsheetConfigButtonImage() const {
return m_xsheetConfigButtonImage;
}
// Timeline Preview Button
void setTimelinePreviewButtonBgOnColor(const QColor &color) {
m_timelinePreviewButtonBgOnColor = color;
}
void setTimelinePreviewButtonOnImage(const QImage &image) {
m_timelinePreviewButtonOnImage = image;
void setTimelinePreviewButtonOnImage(const QString &svgFIlePath) {
m_timelinePreviewButtonOnImage = svgFIlePath;
}
void setTimelinePreviewButtonBgOffColor(const QColor &color) {
m_timelinePreviewButtonBgOffColor = color;
}
void setTimelinePreviewButtonOffImage(const QImage &image) {
m_timelinePreviewButtonOffImage = image;
void setTimelinePreviewButtonOffImage(const QString &svgFIlePath) {
m_timelinePreviewButtonOffImage = svgFIlePath;
}
QColor getTimelinePreviewButtonBgOnColor() const {
return m_timelinePreviewButtonBgOnColor;
}
QImage getTimelinePreviewButtonOnImage() const {
QString getTimelinePreviewButtonOnImage() const {
return m_timelinePreviewButtonOnImage;
}
QColor getTimelinePreviewButtonBgOffColor() const {
return m_timelinePreviewButtonBgOffColor;
}
QImage getTimelinePreviewButtonOffImage() const {
QString getTimelinePreviewButtonOffImage() const {
return m_timelinePreviewButtonOffImage;
}
// Timeline Camstand Button
void setTimelineCamstandButtonBgOnColor(const QColor &color) {
m_timelineCamstandButtonBgOnColor = color;
}
void setTimelineCamstandButtonOnImage(const QImage &image) {
m_timelineCamstandButtonOnImage = image;
void setTimelineCamstandButtonOnImage(const QString &svgFIlePath) {
m_timelineCamstandButtonOnImage = svgFIlePath;
}
void setTimelineCamstandButtonTranspImage(const QImage &image) {
m_timelineCamstandButtonTranspImage = image;
void setTimelineCamstandButtonTranspImage(const QString &svgFIlePath) {
m_timelineCamstandButtonTranspImage = svgFIlePath;
}
void setTimelineCamstandButtonBgOffColor(const QColor &color) {
m_timelineCamstandButtonBgOffColor = color;
}
void setTimelineCamstandButtonOffImage(const QImage &image) {
m_timelineCamstandButtonOffImage = image;
void setTimelineCamstandButtonOffImage(const QString &svgFIlePath) {
m_timelineCamstandButtonOffImage = svgFIlePath;
}
QColor getTimelineCamstandButtonBgOnColor() const {
return m_timelineCamstandButtonBgOnColor;
}
QImage getTimelineCamstandButtonOnImage() const {
QString getTimelineCamstandButtonOnImage() const {
return m_timelineCamstandButtonOnImage;
}
QImage getTimelineCamstandButtonTranspImage() const {
QString getTimelineCamstandButtonTranspImage() const {
return m_timelineCamstandButtonTranspImage;
}
QColor getTimelineCamstandButtonBgOffColor() const {
return m_timelineCamstandButtonBgOffColor;
}
QImage getTimelineCamstandButtonOffImage() const {
QString getTimelineCamstandButtonOffImage() const {
return m_timelineCamstandButtonOffImage;
}
// Timeline Lock Button
void setTimelineLockButtonBgOnColor(const QColor &color) {
m_timelineLockButtonBgOnColor = color;
}
void setTimelineLockButtonOnImage(const QImage &image) {
m_timelineLockButtonOnImage = image;
void setTimelineLockButtonOnImage(const QString &svgFIlePath) {
m_timelineLockButtonOnImage = svgFIlePath;
}
void setTimelineLockButtonBgOffColor(const QColor &color) {
m_timelineLockButtonBgOffColor = color;
}
void setTimelineLockButtonOffImage(const QImage &image) {
m_timelineLockButtonOffImage = image;
void setTimelineLockButtonOffImage(const QString &svgFIlePath) {
m_timelineLockButtonOffImage = svgFIlePath;
}
QColor getTimelineLockButtonBgOnColor() const {
return m_timelineLockButtonBgOnColor;
}
QImage getTimelineLockButtonOnImage() const {
QString getTimelineLockButtonOnImage() const {
return m_timelineLockButtonOnImage;
}
QColor getTimelineLockButtonBgOffColor() const {
return m_timelineLockButtonBgOffColor;
}
QImage getTimelineLockButtonOffImage() const {
QString getTimelineLockButtonOffImage() const {
return m_timelineLockButtonOffImage;
}
// Timeline Config Button
void setTimelineConfigButtonBgColor(const QColor &color) {
m_timelineConfigButtonBgColor = color;
}
void setTimelineConfigButtonImage(const QImage &image) {
m_timelineConfigButtonImage = image;
void setTimelineConfigButtonImage(const QString &svgFIlePath) {
m_timelineConfigButtonImage = svgFIlePath;
}
QColor getTimelineConfigButtonBgColor() const {
return m_timelineConfigButtonBgColor;
}
QImage getTimelineConfigButtonImage() const {
QString getTimelineConfigButtonImage() const {
return m_timelineConfigButtonImage;
}
// Layer Header icons
void setLayerHeaderPreviewImage(const QImage &image) {
m_layerHeaderPreviewImage = image;
void setLayerHeaderPreviewImage(const QString &svgFIlePath) {
m_layerHeaderPreviewImage = svgFIlePath;
}
void setLayerHeaderPreviewOverImage(const QImage &image) {
m_layerHeaderPreviewOverImage = image;
void setLayerHeaderPreviewOverImage(const QString &svgFIlePath) {
m_layerHeaderPreviewOverImage = svgFIlePath;
}
void setLayerHeaderCamstandImage(const QImage &image) {
m_layerHeaderCamstandImage = image;
void setLayerHeaderCamstandImage(const QString &svgFIlePath) {
m_layerHeaderCamstandImage = svgFIlePath;
}
void setLayerHeaderCamstandOverImage(const QImage &image) {
m_layerHeaderCamstandOverImage = image;
void setLayerHeaderCamstandOverImage(const QString &svgFIlePath) {
m_layerHeaderCamstandOverImage = svgFIlePath;
}
void setLayerHeaderLockImage(const QImage &image) {
m_layerHeaderLockImage = image;
void setLayerHeaderLockImage(const QString &svgFIlePath) {
m_layerHeaderLockImage = svgFIlePath;
}
void setLayerHeaderLockOverImage(const QImage &image) {
m_layerHeaderLockOverImage = image;
void setLayerHeaderLockOverImage(const QString &svgFIlePath) {
m_layerHeaderLockOverImage = svgFIlePath;
}
QImage getLayerHeaderPreviewImage() const {
QString getLayerHeaderPreviewImage() const {
return m_layerHeaderPreviewImage;
}
QImage getLayerHeaderPreviewOverImage() const {
QString getLayerHeaderPreviewOverImage() const {
return m_layerHeaderPreviewOverImage;
}
QImage getLayerHeaderCamstandImage() const {
QString getLayerHeaderCamstandImage() const {
return m_layerHeaderCamstandImage;
}
QImage getLayerHeaderCamstandOverImage() const {
QString getLayerHeaderCamstandOverImage() const {
return m_layerHeaderCamstandOverImage;
}
QImage getLayerHeaderLockImage() const { return m_layerHeaderLockImage; }
QImage getLayerHeaderLockOverImage() const {
QString getLayerHeaderLockImage() const { return m_layerHeaderLockImage; }
QString getLayerHeaderLockOverImage() const {
return m_layerHeaderLockOverImage;
}
void getButton(const int &btype, QColor &bgColor, QImage &iconImage,
void getButton(const int &btype, QColor &bgColor, QString &svgIconPath,
bool isTimeline = false);
// convert the last one digit of the frame number to alphabet

View file

@ -499,8 +499,6 @@ NoteArea::NoteArea(XsheetViewer *parent, Qt::WindowFlags flags)
m_noteButton->setFixedSize(32, 16);
m_noteButton->setIconSize(QSize(30, 15));
QIcon addNoteIcon = createQIcon("footermemo");
addNoteIcon.addFile(QString(":Resources/footermemo_disabled.svg"), QSize(),
QIcon::Disabled);
m_noteButton->setIcon(addNoteIcon);
m_noteButton->setToolTip(tr("Add New Memo"));
@ -777,9 +775,7 @@ FooterNoteArea::FooterNoteArea(QWidget *parent, XsheetViewer *viewer,
m_noteButton->setObjectName("ToolbarToolButton");
m_noteButton->setFixedSize(32, 16);
m_noteButton->setIconSize(QSize(30, 15));
QIcon addNoteIcon; // = createQIcon("footermemo");
addNoteIcon.addFile(QString(":icons/light/misc/footermemo.svg"), QSize(),
QIcon::Normal);
QIcon addNoteIcon = createQIcon("footermemo");
m_noteButton->setIcon(addNoteIcon);
m_noteButton->setToolTip(tr("Add New Memo"));
@ -787,8 +783,6 @@ FooterNoteArea::FooterNoteArea(QWidget *parent, XsheetViewer *viewer,
m_precNoteButton->setFixedSize(16, 16);
m_precNoteButton->setIconSize(QSize(16, 16));
QIcon precNoteIcon = createQIcon("prevkey");
precNoteIcon.addFile(QString(":Resources/prevkey_disabled.svg"), QSize(),
QIcon::Disabled);
m_precNoteButton->setIcon(precNoteIcon);
m_precNoteButton->setToolTip(tr("Previous Memo"));
@ -796,8 +790,6 @@ FooterNoteArea::FooterNoteArea(QWidget *parent, XsheetViewer *viewer,
m_nextNoteButton->setFixedSize(16, 16);
m_nextNoteButton->setIconSize(QSize(16, 16));
QIcon nextNoteIcon = createQIcon("nextkey");
nextNoteIcon.addFile(QString(":Resources/nextkey_disabled.svg"), QSize(),
QIcon::Disabled);
m_nextNoteButton->setIcon(nextNoteIcon);
m_nextNoteButton->setToolTip(tr("Next Memo"));

View file

@ -196,8 +196,7 @@ FunctionSheetButtonArea::FunctionSheetButtonArea(QWidget *parent)
m_syncSizeBtn = new QPushButton("", this);
m_syncSizeBtn->setCheckable(true);
m_syncSizeBtn->setFixedSize(20, 20);
static QPixmap syncScaleImg =
recolorPixmap(svgToPixmap(getIconThemePath("actions/17/syncscale.svg")));
static QPixmap syncScaleImg = generateIconPixmap("syncscale");
QPixmap offPm(17, 17);
offPm.fill(Qt::transparent);
{

View file

@ -17,6 +17,7 @@
#include "tmsgcore.h"
// Qt includes
#include <QDirIterator>
#include <QPixmap>
#include <QImage>
#include <QPainter>
@ -33,6 +34,8 @@
#include <QSvgRenderer>
#include <QScreen>
#include <QWindow>
#include <QXmlStreamReader>
#include <QDebug>
using namespace DVGui;
@ -185,47 +188,6 @@ QPixmap scalePixmapKeepingAspectRatio(QPixmap pixmap, QSize size,
//-----------------------------------------------------------------------------
QPixmap svgToPixmap(const QString &svgFilePath, const QSize &size,
Qt::AspectRatioMode aspectRatioMode, QColor bgColor) {
static int devPixRatio = getHighestDevicePixelRatio();
QSvgRenderer svgRenderer(svgFilePath);
QSize pixmapSize;
QRectF renderRect;
if (size.isEmpty()) {
pixmapSize = svgRenderer.defaultSize() * devPixRatio;
renderRect = QRectF(QPointF(), QSizeF(pixmapSize));
} else {
pixmapSize = size * devPixRatio;
if (aspectRatioMode == Qt::KeepAspectRatio ||
aspectRatioMode == Qt::KeepAspectRatioByExpanding) {
QSize imgSize = svgRenderer.defaultSize();
QPointF scaleFactor((float)pixmapSize.width() / (float)imgSize.width(),
(float)pixmapSize.height() / (float)imgSize.height());
float factor = (aspectRatioMode == Qt::KeepAspectRatio)
? std::min(scaleFactor.x(), scaleFactor.y())
: std::max(scaleFactor.x(), scaleFactor.y());
QSizeF renderSize(factor * (float)imgSize.width(),
factor * (float)imgSize.height());
QPointF topLeft(
((float)pixmapSize.width() - renderSize.width()) * 0.5f,
((float)pixmapSize.height() - renderSize.height()) * 0.5f);
renderRect = QRectF(topLeft, renderSize);
} else { // Qt::IgnoreAspectRatio:
renderRect = QRectF(QPointF(), QSizeF(pixmapSize));
}
}
QPixmap pixmap(pixmapSize);
QPainter painter;
pixmap.fill(bgColor);
painter.begin(&pixmap);
svgRenderer.render(&painter, renderRect);
painter.end();
pixmap.setDevicePixelRatio(devPixRatio);
return pixmap;
}
//-----------------------------------------------------------------------------
int getDevicePixelRatio(const QWidget *widget) {
if (hasScreensWithDifferentDevPixRatio() && widget) {
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
@ -242,286 +204,378 @@ int getDevicePixelRatio(const QWidget *widget) {
//-----------------------------------------------------------------------------
QString getIconThemePath(const QString &fileSVGPath) {
// Use as follows:
// QPixmap pixmapIcon = getIconThemePath("path/to/file.svg");
// Is equal to: :icons/*theme*/path/to/file.svg
// Set themeable directory
static QString theme = Preferences::instance()->getIconTheme()
? ":icons/dark/"
: ":icons/light/";
// If no file in light icon theme directory, fallback to dark directory
if (!QFile::exists(QString(theme + fileSVGPath))) theme = ":icons/dark/";
return theme + fileSVGPath;
}
//-----------------------------------------------------------------------------
QPixmap compositePixmap(QPixmap pixmap, const qreal &opacity, const QSize &size,
const int leftAdj, const int topAdj, QColor bgColor) {
static int devPixRatio = getHighestDevicePixelRatio();
// Sets size of destination pixmap for source to be drawn onto, if size is
// empty use source pixmap size, else use custom size.
QPixmap destination(size.isEmpty() ? pixmap.size() : size * devPixRatio);
destination.setDevicePixelRatio(devPixRatio);
destination.fill(bgColor);
if (!pixmap.isNull()) {
QPainter p(&destination);
pixmap = pixmap.scaled(pixmap.size(), Qt::KeepAspectRatio);
pixmap.setDevicePixelRatio(devPixRatio);
p.setBackgroundMode(Qt::TransparentMode);
p.setBackground(QBrush(Qt::transparent));
p.eraseRect(pixmap.rect());
p.setOpacity(opacity);
p.drawPixmap(leftAdj, topAdj, pixmap);
}
return destination;
}
//-----------------------------------------------------------------------------
QPixmap recolorPixmap(QPixmap pixmap, QColor color) {
// Change black pixels to any chosen color
QImage img = pixmap.toImage().convertToFormat(QImage::Format_ARGB32);
for (int y = 0; y < img.height(); y++) {
QRgb *pixel = reinterpret_cast<QRgb *>(img.scanLine(y));
QRgb *end = pixel + img.width();
for (; pixel != end; pixel++) {
// Only recolor zero value (black) pixels
if (QColor::fromRgba(*pixel).value() == 0)
*pixel =
QColor(color.red(), color.green(), color.blue(), qAlpha(*pixel))
.rgba();
// Calculate render params for use by svgToImage() and svgToPixmap()
SvgRenderParams calculateSvgRenderParams(const QSize &desiredSize,
QSize &imageSize,
Qt::AspectRatioMode aspectRatioMode) {
SvgRenderParams params;
if (desiredSize.isEmpty()) {
params.size = imageSize;
params.rect = QRectF(QPointF(), QSizeF(params.size));
} else {
params.size = desiredSize;
if (aspectRatioMode == Qt::KeepAspectRatio ||
aspectRatioMode == Qt::KeepAspectRatioByExpanding) {
QPointF scaleFactor(
(float)params.size.width() / (float)imageSize.width(),
(float)params.size.height() / (float)imageSize.height());
float factor = (aspectRatioMode == Qt::KeepAspectRatio)
? std::min(scaleFactor.x(), scaleFactor.y())
: std::max(scaleFactor.x(), scaleFactor.y());
QSizeF renderSize(factor * (float)imageSize.width(),
factor * (float)imageSize.height());
QPointF topLeft(
((float)params.size.width() - renderSize.width()) * 0.5f,
((float)params.size.height() - renderSize.height()) * 0.5f);
params.rect = QRectF(topLeft, renderSize);
} else { // Qt::IgnoreAspectRatio:
params.rect = QRectF(QPointF(), QSizeF(params.size));
}
}
pixmap = QPixmap::fromImage(img);
return params;
}
//-----------------------------------------------------------------------------
// Workaround issue with QT5.9's svgRenderer not handling viewBox very well
QSize determineSvgSize(const QString &svgFilePath) {
QFile file(svgFilePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
return QSize();
}
QXmlStreamReader xml(&file);
int width = 0;
int height = 0;
while (!xml.atEnd() && !xml.hasError()) {
QXmlStreamReader::TokenType token = xml.readNext();
if (token == QXmlStreamReader::StartDocument) {
continue;
}
if (token == QXmlStreamReader::StartElement) {
if (xml.name() == "svg") {
foreach (const QXmlStreamAttribute &attr, xml.attributes()) {
if (attr.name().toString() == "viewBox") {
QStringList parts = attr.value().toString().split(" ");
if (parts.size() == 4) {
width = parts[2].toInt();
height = parts[3].toInt();
}
}
}
}
}
}
if (xml.hasError()) {
qDebug() << "Error handling XML to determine SVG image size";
}
file.close();
return QSize(width, height);
}
//-----------------------------------------------------------------------------
QPixmap svgToPixmap(const QString &svgFilePath, QSize size,
Qt::AspectRatioMode aspectRatioMode, QColor bgColor) {
if (svgFilePath.isEmpty()) return QPixmap();
QSvgRenderer svgRenderer(svgFilePath);
// Check if SVG file was loaded correctly
if (!svgRenderer.isValid()) {
qDebug() << "Invalid SVG file:" << svgFilePath;
return QPixmap();
}
static int devPixRatio = getHighestDevicePixelRatio();
if (!size.isEmpty()) size *= devPixRatio;
// Determine SVG image size: there is a problem with QT5.9's svgRenderer
// not handling viewBox very well, so we'll calculate the image size a
// different way depending if the SVG uses width and height or viewBox.
QSize imageSize = determineSvgSize(svgFilePath) * devPixRatio;
if (imageSize.isNull())
imageSize = QSize(svgRenderer.defaultSize() * devPixRatio);
SvgRenderParams params =
calculateSvgRenderParams(size, imageSize, aspectRatioMode);
QPixmap pixmap(params.size);
QPainter painter;
pixmap.fill(bgColor);
if (!painter.begin(&pixmap)) {
qDebug() << "Failed to begin QPainter on pixmap";
return QPixmap();
}
svgRenderer.render(&painter, params.rect);
painter.end();
pixmap.setDevicePixelRatio(devPixRatio);
return pixmap;
}
//-----------------------------------------------------------------------------
QIcon createQIcon(const char *iconSVGName, bool useFullOpacity,
bool isForMenuItem) {
QImage svgToImage(const QString &svgFilePath, QSize size,
Qt::AspectRatioMode aspectRatioMode, QColor bgColor) {
if (svgFilePath.isEmpty()) return QImage();
QSvgRenderer svgRenderer(svgFilePath);
// Check if SVG file was loaded correctly
if (!svgRenderer.isValid()) {
qDebug() << "Invalid SVG file:" << svgFilePath;
return QImage();
}
static int devPixRatio = getHighestDevicePixelRatio();
QIcon themeIcon = QIcon::fromTheme(iconSVGName);
// Determine SVG image size: there is a problem with QT5.9's svgRenderer
// not handling viewBox very well, so we'll calculate the image size a
// different way depending if the SVG uses width and height or viewBox.
QSize imageSize = determineSvgSize(svgFilePath) * devPixRatio;
if (imageSize.isNull())
imageSize = QSize(svgRenderer.defaultSize() * devPixRatio);
// Get icon dimensions
QSize iconSize(0, 0);
for (QList<QSize> sizes = themeIcon.availableSizes(); !sizes.isEmpty();
sizes.removeFirst())
if (sizes.first().width() > iconSize.width())
iconSize = sizes.first() * devPixRatio;
SvgRenderParams params =
calculateSvgRenderParams(size, imageSize, aspectRatioMode);
QImage image(params.size, QImage::Format_ARGB32_Premultiplied);
QPainter painter;
image.fill(bgColor);
// Control lightness of the icons
const qreal activeOpacity = 1;
const qreal baseOpacity = useFullOpacity ? 1 : 0.8;
const qreal disabledOpacity = 0.15;
// Pseudo state name strings
QString overStr = QString(iconSVGName) + "_over";
QString onStr = QString(iconSVGName) + "_on";
//----------
// Base pixmap
QPixmap themeIconPixmap(recolorPixmap(themeIcon.pixmap(iconSize)));
if (!themeIconPixmap.isNull()) { // suppress message
themeIconPixmap.setDevicePixelRatio(devPixRatio);
themeIconPixmap = themeIconPixmap.scaled(iconSize, Qt::KeepAspectRatio,
Qt::SmoothTransformation);
if (!painter.begin(&image)) {
qDebug() << "Failed to begin QPainter on image";
return QImage();
}
// Over pixmap
QPixmap overPixmap(recolorPixmap(QIcon::fromTheme(overStr).pixmap(iconSize)));
if (!overPixmap.isNull()) { // suppress message
overPixmap.setDevicePixelRatio(devPixRatio);
overPixmap = overPixmap.scaled(iconSize, Qt::KeepAspectRatio,
Qt::SmoothTransformation);
}
// On pixmap
QPixmap onPixmap(recolorPixmap(QIcon::fromTheme(onStr).pixmap(iconSize)));
if (!onPixmap.isNull()) { // suppress message
onPixmap.setDevicePixelRatio(devPixRatio);
onPixmap = onPixmap.scaled(iconSize, Qt::KeepAspectRatio,
Qt::SmoothTransformation);
}
//----------
QIcon icon;
#ifdef _WIN32
bool showIconInMenu =
Preferences::instance()->isShowAdvancedOptionsEnabled() &&
Preferences::instance()->getBoolValue(showIconsInMenu);
// set transparent icon
if (isForMenuItem &&
themeIconPixmap.size() == QSize(16 * devPixRatio, 16 * devPixRatio) &&
!showIconInMenu) {
static QPixmap emptyPm(16 * devPixRatio, 16 * devPixRatio);
emptyPm.fill(Qt::transparent);
icon.addPixmap(emptyPm, QIcon::Normal, QIcon::Off);
icon.addPixmap(emptyPm, QIcon::Normal, QIcon::On);
icon.addPixmap(emptyPm, QIcon::Disabled, QIcon::Off);
icon.addPixmap(emptyPm, QIcon::Disabled, QIcon::On);
icon.addPixmap(emptyPm, QIcon::Active);
} else
#endif
{
// Base icon
icon.addPixmap(compositePixmap(themeIconPixmap, baseOpacity), QIcon::Normal,
QIcon::Off);
icon.addPixmap(compositePixmap(themeIconPixmap, disabledOpacity),
QIcon::Disabled, QIcon::Off);
// Over icon
icon.addPixmap(!overPixmap.isNull()
? compositePixmap(overPixmap, activeOpacity)
: compositePixmap(themeIconPixmap, activeOpacity),
QIcon::Active);
// On icon
if (!onPixmap.isNull()) {
icon.addPixmap(compositePixmap(onPixmap, activeOpacity), QIcon::Normal,
QIcon::On);
icon.addPixmap(compositePixmap(onPixmap, disabledOpacity),
QIcon::Disabled, QIcon::On);
} else {
icon.addPixmap(compositePixmap(themeIconPixmap, activeOpacity),
QIcon::Normal, QIcon::On);
icon.addPixmap(compositePixmap(themeIconPixmap, disabledOpacity),
QIcon::Disabled, QIcon::On);
}
}
//----------
// For icons intended for menus that are 16x16 in dimensions, to repurpose
// them for use in toolbars that are set for 20x20 we want to draw them onto a
// 20x20 pixmap so they don't get resized in the GUI, they will be loaded into
// the icon along with the original 16x16 pixmap.
// In case of multiple monitors with different resolutions, let's create icons
// for those also
if (themeIconPixmap.size() == QSize(16 * devPixRatio, 16 * devPixRatio)) {
for (auto screen : QApplication::screens()) {
QSize drawOnSize(20, 20);
int otherDevPixRatio = screen->devicePixelRatio();
if (otherDevPixRatio != devPixRatio) {
drawOnSize.setWidth(16 * otherDevPixRatio);
drawOnSize.setHeight(16 * otherDevPixRatio);
}
int x = (drawOnSize.width() - 16) / 2; // left adjust
int y = (drawOnSize.height() - 16) / 2; // top adjust
// Base icon
icon.addPixmap(
compositePixmap(themeIconPixmap, baseOpacity, drawOnSize, x, y),
QIcon::Normal, QIcon::Off);
icon.addPixmap(
compositePixmap(themeIconPixmap, disabledOpacity, drawOnSize, x, y),
QIcon::Disabled, QIcon::Off);
// Over icon
icon.addPixmap(
!overPixmap.isNull()
? compositePixmap(overPixmap, activeOpacity, drawOnSize, x, y)
: compositePixmap(themeIconPixmap, activeOpacity, drawOnSize, x,
y),
QIcon::Active);
// On icon
if (!onPixmap.isNull()) {
icon.addPixmap(
compositePixmap(onPixmap, activeOpacity, drawOnSize, x, y),
QIcon::Normal, QIcon::On);
icon.addPixmap(
compositePixmap(onPixmap, disabledOpacity, drawOnSize, x, y),
QIcon::Disabled, QIcon::On);
} else {
icon.addPixmap(
compositePixmap(themeIconPixmap, activeOpacity, drawOnSize, x, y),
QIcon::Normal, QIcon::On);
icon.addPixmap(
compositePixmap(themeIconPixmap, disabledOpacity, drawOnSize, x, y),
QIcon::Disabled, QIcon::On);
}
}
}
return icon;
svgRenderer.render(&painter, params.rect);
painter.end();
return image;
}
//-----------------------------------------------------------------------------
void addSpecifiedSizedImageToIcon(QIcon &icon, const char *iconSVGName,
QSize newSize) {
static int devPixRatio = getHighestDevicePixelRatio();
newSize *= devPixRatio;
QIcon themeIcon = QIcon::fromTheme(iconSVGName);
// Pseudo state name strings
QString overStr = QString(iconSVGName) + "_over";
QString onStr = QString(iconSVGName) + "_on";
// Control lightness of the icons
const qreal activeOpacity = 1;
const qreal baseOpacity = 0.8;
const qreal disabledOpacity = 0.15;
//----------
// Change the opacity of a QImage (0.0 - 1.0)
QImage adjustImageOpacity(const QImage &input, qreal opacity) {
if (input.isNull()) return QImage();
// Base pixmap
QPixmap themeIconPixmap(recolorPixmap(themeIcon.pixmap(newSize)));
if (!themeIconPixmap.isNull()) { // suppress message
themeIconPixmap.setDevicePixelRatio(devPixRatio);
themeIconPixmap = themeIconPixmap.scaled(newSize, Qt::KeepAspectRatio,
Qt::SmoothTransformation);
}
QImage result(input.size(), QImage::Format_ARGB32_Premultiplied);
// Over pixmap
QPixmap overPixmap(recolorPixmap(QIcon::fromTheme(overStr).pixmap(newSize)));
if (!overPixmap.isNull()) { // suppress message
overPixmap.setDevicePixelRatio(devPixRatio);
overPixmap = overPixmap.scaled(newSize, Qt::KeepAspectRatio,
Qt::SmoothTransformation);
}
QPainter painter(&result);
if (!painter.isActive()) return QImage();
// On pixmap
QPixmap onPixmap(recolorPixmap(QIcon::fromTheme(onStr).pixmap(newSize)));
if (!onPixmap.isNull()) { // suppress message
onPixmap.setDevicePixelRatio(devPixRatio);
onPixmap =
onPixmap.scaled(newSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
}
painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.fillRect(result.rect(), Qt::transparent);
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
painter.drawImage(0, 0, input);
painter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
painter.fillRect(
result.rect(),
QColor(0, 0, 0, qBound(0, static_cast<int>(opacity * 255), 255)));
painter.end();
// Base icon
icon.addPixmap(compositePixmap(themeIconPixmap, baseOpacity), QIcon::Normal,
QIcon::Off);
icon.addPixmap(compositePixmap(themeIconPixmap, disabledOpacity),
QIcon::Disabled, QIcon::Off);
return result;
}
// Over icon
icon.addPixmap(!overPixmap.isNull()
? compositePixmap(overPixmap, activeOpacity)
: compositePixmap(themeIconPixmap, activeOpacity),
QIcon::Active);
//-----------------------------------------------------------------------------
// On icon
if (!onPixmap.isNull()) {
icon.addPixmap(compositePixmap(onPixmap, activeOpacity), QIcon::Normal,
QIcon::On);
icon.addPixmap(compositePixmap(onPixmap, disabledOpacity), QIcon::Disabled,
QIcon::On);
// Resizes a QImage, if scaleInput is true then input image will scale according
// to newSize otherwise the input image will be centered and not scaled
QImage compositeImage(const QImage &input, QSize newSize, bool scaleInput,
QColor bgColor) {
if (input.isNull()) return QImage();
int devPixRatio = getHighestDevicePixelRatio();
int w, h, x = 0, y = 0;
if (newSize.isEmpty()) {
w = input.width();
h = input.height();
} else {
icon.addPixmap(compositePixmap(themeIconPixmap, activeOpacity),
QIcon::Normal, QIcon::On);
icon.addPixmap(compositePixmap(themeIconPixmap, disabledOpacity),
QIcon::Disabled, QIcon::On);
w = newSize.width() * devPixRatio;
h = newSize.height() * devPixRatio;
if (!scaleInput) {
x = (w - input.width()) / 2;
y = (h - input.height()) / 2;
}
}
QImage newImage(w, h, QImage::Format_ARGB32_Premultiplied);
newImage.fill(bgColor);
if (scaleInput) {
return input.scaled(w, h, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
} else {
QPainter painter(&newImage);
if (!painter.isActive()) return QImage();
painter.drawImage(QPoint(x, y), input);
painter.end();
return newImage;
}
}
//-----------------------------------------------------------------------------
// Convert QImage to QPixmap and set device pixel ratio
QPixmap convertImageToPixmap(const QImage &image) {
if (image.isNull()) return QPixmap();
QPixmap pixmap(QPixmap::fromImage(image));
int devPixRatio = getHighestDevicePixelRatio();
pixmap.setDevicePixelRatio(devPixRatio);
return pixmap;
}
//-----------------------------------------------------------------------------
// Load, theme colorize and change opacity of an icon image
QImage generateIconImage(const QString &iconSVGName, qreal opacity,
QSize newSize, Qt::AspectRatioMode aspectRatioMode) {
static ThemeManager &themeManager = ThemeManager::getInstance();
if (iconSVGName.isEmpty() || !themeManager.hasIcon(iconSVGName)) {
return QImage();
}
int devPixRatio = getHighestDevicePixelRatio();
newSize *= devPixRatio;
// Path to icon image
const QString imgPath = themeManager.getIconPath(iconSVGName);
// Convert SVG to QImage
QImage image(svgToImage(imgPath, newSize, aspectRatioMode));
// Colorize QImage
image = themeManager.recolorBlackPixels(image);
// Change opacity if required
if (opacity != qreal(1.0)) image = adjustImageOpacity(image, opacity);
return image;
}
//-----------------------------------------------------------------------------
// Load, theme colorize and change opacity of an icon image file
QPixmap generateIconPixmap(const QString &iconSVGName, qreal opacity,
QSize newSize, Qt::AspectRatioMode aspectRatioMode) {
QImage image =
generateIconImage(iconSVGName, opacity, newSize, aspectRatioMode);
return convertImageToPixmap(image);
}
//-----------------------------------------------------------------------------
// Process and populate all modes and states of a QIcon
void addImagesToIcon(QIcon &icon, const QImage &baseImg, const QImage &overImg,
const QImage &onImg, bool useFullOpacity) {
if (baseImg.isNull()) return;
ThemeManager &themeManager = ThemeManager::getInstance();
const qreal offOpacity = useFullOpacity ? 1.0 : themeManager.getOffOpacity();
const qreal onOpacity = themeManager.getOnOpacity();
const qreal disabledOpacity = themeManager.getDisabledOpacity();
// Generate more images using input images for other modes and states
QImage offImg = adjustImageOpacity(baseImg, offOpacity);
QImage disabledImg = adjustImageOpacity(baseImg, disabledOpacity);
QImage onDisabledImg =
!onImg.isNull() ? adjustImageOpacity(onImg, disabledOpacity) : QImage();
// Convert images to pixmaps and set device pixel ratio
QPixmap basePm(convertImageToPixmap(baseImg));
QPixmap offPm(convertImageToPixmap(offImg));
QPixmap disabledPm(convertImageToPixmap(disabledImg));
QPixmap overPm(convertImageToPixmap(overImg));
QPixmap onPm(convertImageToPixmap(onImg));
QPixmap onDisabledPm(convertImageToPixmap(onDisabledImg));
// Add pixmaps to icon and fallback to basePm if 'over' and 'on' are null
icon.addPixmap(offPm, QIcon::Normal, QIcon::Off);
icon.addPixmap(disabledPm, QIcon::Disabled, QIcon::Off);
icon.addPixmap(!overPm.isNull() ? overPm : basePm, QIcon::Active);
icon.addPixmap(!onPm.isNull() ? onPm : basePm, QIcon::Normal, QIcon::On);
icon.addPixmap(!onPm.isNull() ? onDisabledPm : disabledPm, QIcon::Disabled,
QIcon::On);
}
//-----------------------------------------------------------------------------
// Add the same pixmap to all modes and states of a QIcon
void addPixmapToAllModesAndStates(QIcon &icon, const QPixmap &pixmap) {
QIcon::Mode modes[] = {QIcon::Normal, QIcon::Disabled, QIcon::Active,
QIcon::Selected};
QIcon::State states[] = {QIcon::On, QIcon::Off};
for (const auto &mode : modes) {
for (const auto &state : states) {
icon.addPixmap(pixmap, mode, state);
}
}
}
//-----------------------------------------------------------------------------
/// @brief Return a themed icon
/// @param iconSVGName Name of the icon (SVG file base name)
/// @param useFullOpacity If true the icon will be max brightness
/// @param isForMenuItem For special handling of menu icons
/// @param newSize Render the SVG images of the icon at the specified size
/// @return QIcon
QIcon createQIcon(const QString &iconSVGName, bool useFullOpacity,
bool isForMenuItem, QSize newSize) {
static ThemeManager &themeManager = ThemeManager::getInstance();
if (iconSVGName.isEmpty() || !themeManager.hasIcon(iconSVGName)) {
// Use debug to check if something calls for an icon that doesn't exist
//qDebug () << "File not found:" << iconSVGName;
return QIcon();
}
static int devPixRatio = getHighestDevicePixelRatio();
QImage baseImg(generateIconImage(iconSVGName, qreal(1.0), newSize));
QImage overImg(generateIconImage(iconSVGName + "_over", qreal(1.0), newSize));
QImage onImg(generateIconImage(iconSVGName + "_on", qreal(1.0), newSize));
QIcon icon;
// START_BUG_WORKAROUND: #20230627
// Set an empty pixmap for menu icons when hiding icons from menus is true,
// search bug ID for more info.
#ifdef _WIN32
bool showIconInMenu =
Preferences::instance()->isShowAdvancedOptionsEnabled() &&
Preferences::instance()->getBoolValue(showIconsInMenu);
if (isForMenuItem && baseImg.width() == (16 * devPixRatio) &&
baseImg.height() == (16 * devPixRatio) && !showIconInMenu) {
static QPixmap emptyPm(16 * devPixRatio, 16 * devPixRatio);
emptyPm.fill(Qt::transparent);
addPixmapToAllModesAndStates(icon, emptyPm);
} else
#endif // END_BUG_WORKAROUND
{
addImagesToIcon(icon, baseImg, overImg, onImg, useFullOpacity);
}
// For tool bars we draw menu sized icons onto tool bar sized images otherwise
// there can be scaling artifacts with high dpi and load these in addition
if (baseImg.width() == (16 * devPixRatio) &&
baseImg.height() == (16 * devPixRatio)) {
QSize expandSize(20, 20);
QImage toolBaseImg(compositeImage(baseImg, expandSize));
QImage toolOverImg(compositeImage(overImg, expandSize));
QImage toolOnImg(compositeImage(onImg, expandSize));
addImagesToIcon(icon, toolBaseImg, toolOverImg, toolOnImg, useFullOpacity);
}
return icon;
}
//-----------------------------------------------------------------------------
@ -560,11 +614,8 @@ QIcon createQIconOnOffPNG(const char *iconPNGName, bool withOver) {
//-----------------------------------------------------------------------------
QIcon createTemporaryIconFromName(const char *commandName) {
const int visibleIconSize = 20;
const int menubarIconSize = 16;
const qreal activeOpacity = 1;
const qreal baseOpacity = 0.8;
const qreal disabledOpacity = 0.15;
const int visibleIconSize = 20;
const int menubarIconSize = 16;
QString name(commandName);
QList<QChar> iconChar;
@ -589,18 +640,19 @@ QIcon createTemporaryIconFromName(const char *commandName) {
for (auto c : iconChar) iconStr.append(c);
QIcon icon;
// prepare for both normal and high dpi
// Prepare for both normal and high dpi
for (int devPixelRatio = 1; devPixelRatio <= 2; devPixelRatio++) {
QPixmap transparentPm(menubarIconSize * devPixelRatio,
menubarIconSize * devPixelRatio);
transparentPm.fill(Qt::transparent);
QImage transparentImg(menubarIconSize * devPixelRatio,
menubarIconSize * devPixelRatio,
QImage::Format_ARGB32);
transparentImg.fill(Qt::transparent);
int pxSize = visibleIconSize * devPixelRatio;
QPixmap pixmap(pxSize, pxSize);
QImage charImg(pxSize, pxSize, QImage::Format_ARGB32_Premultiplied);
QPainter painter;
pixmap.fill(Qt::transparent);
painter.begin(&pixmap);
charImg.fill(Qt::transparent);
painter.begin(&charImg);
painter.setPen(Preferences::instance()->getIconTheme() ? Qt::black
: Qt::white);
@ -613,29 +665,17 @@ QIcon createTemporaryIconFromName(const char *commandName) {
QFont font = painter.font();
font.setPixelSize(pxSize);
painter.setFont(font);
painter.drawText(rect, Qt::AlignCenter, iconStr);
painter.end();
// For menu only
icon.addPixmap(transparentPm, QIcon::Normal, QIcon::Off);
icon.addPixmap(transparentPm, QIcon::Active);
icon.addPixmap(transparentPm, QIcon::Normal, QIcon::On);
icon.addPixmap(transparentPm, QIcon::Disabled, QIcon::Off);
icon.addPixmap(transparentPm, QIcon::Disabled, QIcon::On);
addPixmapToAllModesAndStates(icon, QPixmap::fromImage(transparentImg));
// For toolbars
icon.addPixmap(compositePixmap(pixmap, baseOpacity), QIcon::Normal,
QIcon::Off);
icon.addPixmap(compositePixmap(pixmap, disabledOpacity), QIcon::Disabled,
QIcon::Off);
icon.addPixmap(compositePixmap(pixmap, activeOpacity), QIcon::Active);
icon.addPixmap(compositePixmap(pixmap, activeOpacity), QIcon::Normal,
QIcon::On);
icon.addPixmap(compositePixmap(pixmap, disabledOpacity), QIcon::Disabled,
QIcon::On);
addImagesToIcon(icon, charImg);
}
return icon;
}
@ -874,6 +914,153 @@ QString operator+(const QString &a, const TFilePath &fp) {
return a + QString::fromStdWString(fp.getWideString());
}
//=============================================================================
// Theme Manager
//-----------------------------------------------------------------------------
class ThemeManager::ThemeManagerImpl {
public:
QMap<QString, QString> m_iconPaths;
qreal m_onOpacity = 1.0;
qreal m_offOpacity = 0.8;
qreal m_disabledOpacity = 0.3;
};
//-----------------------------------------------------------------------------
ThemeManager::ThemeManager() : impl(new ThemeManagerImpl) {}
//-----------------------------------------------------------------------------
ThemeManager::~ThemeManager() {}
//-----------------------------------------------------------------------------
ThemeManager &ThemeManager::getInstance() {
static ThemeManager instance;
return instance;
}
//-----------------------------------------------------------------------------
// Populate a QMap with icon filepaths and assign their basename as the key
void ThemeManager::buildIconPathsMap(const QString &path) {
QDir dir(path);
if (!dir.exists(path)) {
qDebug() << "Resource path does not exist:" << path;
return;
}
QDirIterator it(path,
QStringList() << "*.svg"
<< "*.png",
QDir::Files, QDirIterator::Subdirectories);
while (it.hasNext()) {
it.next();
const QString iconPath = it.fileInfo().filePath();
const QString iconName = it.fileInfo().baseName();
if (!impl->m_iconPaths.contains(iconName)) {
impl->m_iconPaths.insert(iconName, iconPath);
} else {
qDebug() << "Icon with file name already exists in iconPaths, ensure "
"icons have unique file names:"
<< "\nCurrently added:" << getIconPath(iconName)
<< "\nTried to add:" << iconPath;
}
}
}
//-----------------------------------------------------------------------------
// Get the full filepath of an icon image by basename
QString ThemeManager::getIconPath(const QString &iconName) const {
return impl->m_iconPaths.value(iconName);
}
//-----------------------------------------------------------------------------
// Boolean to check if iconName is contained within the iconPaths QMap
bool ThemeManager::hasIcon(const QString &iconName) const {
return impl->m_iconPaths.contains(iconName);
}
//-----------------------------------------------------------------------------
qreal ThemeManager::getOnOpacity() const { return impl->m_onOpacity; }
//-----------------------------------------------------------------------------
qreal ThemeManager::getOffOpacity() const { return impl->m_offOpacity; }
//-----------------------------------------------------------------------------
qreal ThemeManager::getDisabledOpacity() const {
return impl->m_disabledOpacity;
}
//-----------------------------------------------------------------------------
// Colorize black pixels in a QImage while retaining other colors, however be
// mindful that if black pixels overlap color pixels it can cause artifacting
QImage ThemeManager::recolorBlackPixels(const QImage &input, QColor color) {
if (input.isNull() || color == Qt::black) return QImage();
// Default is icon theme color
if (!color.isValid())
color = Preferences::instance()->getIconTheme() ? Qt::black : Qt::white;
QImage image = input.convertToFormat(QImage::Format_ARGB32);
QRgb targetColor = color.rgb();
int height = image.height();
int width = image.width();
for (int y = 0; y < height; ++y) {
QRgb *pixel = reinterpret_cast<QRgb *>(image.scanLine(y));
QRgb *end = pixel + width;
for (; pixel != end; ++pixel) {
if (qGray(*pixel) == 0) {
*pixel = (targetColor & 0x00FFFFFF) | (qAlpha(*pixel) << 24);
}
}
}
return image;
}
//-----------------------------------------------------------------------------
// Colorize black pixels in a QPixmap while retaining other colors, however be
// mindful that if black pixels overlap color pixels if can cause artifacting
QPixmap ThemeManager::recolorBlackPixels(const QPixmap &input, QColor color) {
if (input.isNull() || color == Qt::black) return QPixmap();
QImage image = input.toImage();
QImage recoloredImage = recolorBlackPixels(image, color);
QPixmap pixmap = convertImageToPixmap(recoloredImage);
return pixmap;
}
//-----------------------------------------------------------------------------
// For debugging contents
void ThemeManager::printiconPathsMap() {
const QMap<QString, QString> map = impl->m_iconPaths;
qDebug() << "Contents of QMap:";
for (auto it = map.constBegin(); it != map.constEnd(); ++it) {
qDebug() << it.key() << ":" << it.value();
}
}
//-----------------------------------------------------------------------------
// Public version of ThemeManager::getIconPath()
QString getIconPath(const QString &path) {
return ThemeManager::getInstance().getIconPath(path);
}
//=============================================================================
QString trModKey(QString key) {

View file

@ -1086,9 +1086,9 @@ Qt::transparent)
bbox = (bbox * icon->getBounds())
.enlarge(-1); // Add a 1 pixel transparent margin - this
//if (bbox.getLx() > 0 &&
// bbox.getLy() > 0) // way the actual content doesn't look trimmed.
// ::makeChessBackground(icon->extract(bbox));
// if (bbox.getLx() > 0 &&
// bbox.getLy() > 0) // way the actual content doesn't look trimmed.
// ::makeChessBackground(icon->extract(bbox));
} else
icon->fill(TPixel32(255, 0, 0));
@ -1169,30 +1169,30 @@ void FileIconRenderer::run() {
setIcon(rasterFromQImage(palette));
return;
} else if (type == "svg") {
QPixmap svg(svgToPixmap(getIconThemePath("mimetypes/60/svg_icon.svg"),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(svg));
QImage svg(generateIconImage("svg_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(svg));
return;
} else if (type == "tzu") {
QImage palette(":Resources/tzuicon.png");
setIcon(rasterFromQImage(palette));
return;
} else if (TFileType::getInfo(m_path) == TFileType::AUDIO_LEVEL) {
QPixmap loudspeaker(
svgToPixmap(getIconThemePath("mimetypes/60/audio_icon.svg"),
QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(loudspeaker));
QImage loudspeaker(generateIconImage("audio_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(loudspeaker));
return;
} else if (type == "scr") {
QImage screensaver(":Resources/savescreen.png");
setIcon(rasterFromQImage(screensaver));
return;
} else if (type == "psd") {
QPixmap psdPath(svgToPixmap(getIconThemePath("mimetypes/60/psd_icon.svg"),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(psdPath));
QImage psdPath(generateIconImage("psd_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(psdPath));
return;
} else if (type == "mesh")
iconRaster = IconGenerator::generateMeshFileIcon(m_path, iconSize, m_fid);
@ -1200,80 +1200,80 @@ void FileIconRenderer::run() {
iconRaster =
IconGenerator::generateRasterFileIcon(m_path, iconSize, m_fid);
else if (type == "mpath") {
QPixmap motionPath(
svgToPixmap(getIconThemePath("mimetypes/60/motionpath_icon.svg"),
QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(motionPath));
QImage motionPath(generateIconImage("motionpath_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(motionPath));
return;
} else if (type == "curve") {
QPixmap curve(svgToPixmap(getIconThemePath("mimetypes/60/curve_icon.svg"),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(curve));
QImage curve(generateIconImage("curve_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(curve));
return;
} else if (type == "cln") {
QPixmap cln(svgToPixmap(getIconThemePath("mimetypes/60/cleanup_icon.svg"),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(cln));
QImage cln(generateIconImage("cleanup_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(cln));
return;
} else if (type == "tnzbat") {
QPixmap tnzBat(
svgToPixmap(getIconThemePath("mimetypes/60/tasklist_icon.svg"),
QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(tnzBat));
QImage tnzBat(generateIconImage("tasklist_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(tnzBat));
return;
} else if (type == "tls") {
QPixmap tls(svgToPixmap(":Resources/magpie.svg",
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(tls));
QImage tls(svgToImage(":Resources/magpie.svg",
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(tls));
return;
} else if (type == "xdts") {
QPixmap xdts(svgToPixmap(getIconThemePath("mimetypes/60/xdts_icon.svg"),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(xdts));
QImage xdts(generateIconImage("xdts_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(xdts));
return;
} else if (type == "js") {
QPixmap script(
svgToPixmap(getIconThemePath("mimetypes/60/script_icon.svg"),
QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(script));
QImage script(generateIconImage("script_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(script));
return;
} else if (type == "json") {
QPixmap json(svgToPixmap(getIconThemePath("mimetypes/60/json_icon.svg"),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(json));
QImage json(generateIconImage("json_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(json));
return;
}
else {
QPixmap unknown(
svgToPixmap(getIconThemePath("mimetypes/60/unknown_icon.svg"),
QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(unknown));
QImage unknown(generateIconImage("unknown_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(unknown));
return;
}
if (!iconRaster) {
QPixmap broken(
svgToPixmap(getIconThemePath("mimetypes/60/broken_icon.svg"),
QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(broken));
QImage broken(generateIconImage("broken_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(broken));
return;
}
setIcon(iconRaster);
} catch (const TImageVersionException &) {
QPixmap unknown(
svgToPixmap(getIconThemePath("mimetypes/60/unknown_icon.svg"),
QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(unknown));
QImage unknown(generateIconImage("unknown_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(unknown));
} catch (...) {
QPixmap broken(svgToPixmap(getIconThemePath("mimetypes/60/broken_icon.svg"),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQPixmap(broken));
QImage broken(generateIconImage("broken_icon", qreal(1.0),
QSize(iconSize.lx, iconSize.ly),
Qt::KeepAspectRatio));
setIcon(rasterFromQImage(broken));
}
}

View file

@ -424,7 +424,7 @@ void CommandManager::enlargeIcon(CommandId id, const QSize dstSize) {
return;
}
addSpecifiedSizedImageToIcon(icon, iconSVGName, dstSize);
icon = createQIcon(iconSVGName, false, false, dstSize);
action->setIcon(icon);
}