mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-31 14:33:54 -04:00
Allow adding the Virtual library button to any toolbar/menu via Preferences->Toolbars & menus
This commit is contained in:
parent
348d6cecce
commit
4983623691
746
imgsrc/vl.svg
Normal file
746
imgsrc/vl.svg
Normal file
@ -0,0 +1,746 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="vl.svg"
|
||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
viewBox="0 0 1024 1024"
|
||||
height="1024"
|
||||
width="1024">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="endcap-3">
|
||||
<stop
|
||||
style="stop-color:#601a22;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4283" />
|
||||
<stop
|
||||
id="stop4299"
|
||||
offset="0.86720961"
|
||||
style="stop-color:#45181d;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#a13642;stop-opacity:0"
|
||||
offset="1"
|
||||
id="stop4301" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6741">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop6743" />
|
||||
<stop
|
||||
style="stop-color:#5b757b;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6745" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5929"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#ffa900;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5931" />
|
||||
</linearGradient>
|
||||
<filter
|
||||
inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
|
||||
inkscape:menu="Shadows and Glows"
|
||||
inkscape:label="Out of Focus"
|
||||
height="1.5"
|
||||
width="1.4"
|
||||
x="-0.2"
|
||||
y="-0.25"
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
id="filter4262">
|
||||
<feGaussianBlur
|
||||
result="result14"
|
||||
stdDeviation="1.5"
|
||||
id="feGaussianBlur4264" />
|
||||
<feFlood
|
||||
result="result12"
|
||||
flood-color="rgb(146,94,26)"
|
||||
id="feFlood4266" />
|
||||
<feTurbulence
|
||||
type="turbulence"
|
||||
seed="0"
|
||||
baseFrequency="0.29999999999999999"
|
||||
numOctaves="5"
|
||||
result="result5"
|
||||
id="feTurbulence4268" />
|
||||
<feDisplacementMap
|
||||
scale="100"
|
||||
xChannelSelector="R"
|
||||
in="result5"
|
||||
result="result8"
|
||||
in2="result14"
|
||||
yChannelSelector="G"
|
||||
id="feDisplacementMap4270" />
|
||||
<feComposite
|
||||
in="result8"
|
||||
result="result10"
|
||||
operator="arithmetic"
|
||||
in2="result5"
|
||||
k1="0.5"
|
||||
k2="0.5"
|
||||
id="feComposite4272" />
|
||||
<feSpecularLighting
|
||||
specularExponent="15"
|
||||
specularConstant="1"
|
||||
surfaceScale="-15"
|
||||
result="result2"
|
||||
id="feSpecularLighting4274">
|
||||
<feDistantLight
|
||||
elevation="90"
|
||||
azimuth="225"
|
||||
id="feDistantLight4276" />
|
||||
</feSpecularLighting>
|
||||
<feGaussianBlur
|
||||
result="result13"
|
||||
stdDeviation="0.4"
|
||||
id="feGaussianBlur4278" />
|
||||
<feDiffuseLighting
|
||||
surfaceScale="-20"
|
||||
result="result1"
|
||||
diffuseConstant="0.6"
|
||||
in="result13"
|
||||
id="feDiffuseLighting4280">
|
||||
<feDistantLight
|
||||
elevation="10"
|
||||
azimuth="225"
|
||||
id="feDistantLight4282" />
|
||||
</feDiffuseLighting>
|
||||
<feComposite
|
||||
result="result4"
|
||||
in="SourceGraphic"
|
||||
in2="result1"
|
||||
operator="arithmetic"
|
||||
k2="1"
|
||||
k3="0.6"
|
||||
id="feComposite4284" />
|
||||
<feComposite
|
||||
result="result11"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
id="feComposite4286" />
|
||||
<feBlend
|
||||
in2="result11"
|
||||
in="result11"
|
||||
result="fbSourceGraphic"
|
||||
mode="normal"
|
||||
id="feBlend4288" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix4439" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur4441"
|
||||
stdDeviation="5"
|
||||
result="result6"
|
||||
in="fbSourceGraphic" />
|
||||
<feComposite
|
||||
id="feComposite4443"
|
||||
in2="result6"
|
||||
result="result8"
|
||||
in="fbSourceGraphic"
|
||||
operator="atop" />
|
||||
<feComposite
|
||||
id="feComposite4445"
|
||||
in2="fbSourceGraphicAlpha"
|
||||
result="result9"
|
||||
operator="over"
|
||||
in="result8" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix4447"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
|
||||
result="result10" />
|
||||
<feBlend
|
||||
id="feBlend4449"
|
||||
in2="result6"
|
||||
in="result10"
|
||||
mode="normal"
|
||||
result="fbSourceGraphic" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix6777" />
|
||||
<feFlood
|
||||
id="feFlood6779"
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(255,255,255)"
|
||||
result="flood"
|
||||
in="fbSourceGraphic" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix6781"
|
||||
in="fbSourceGraphic"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -0.2125 -0.7154 -0.0721 1 0 "
|
||||
result="colormatrix1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur6783"
|
||||
in="colormatrix1"
|
||||
stdDeviation="1.9 1"
|
||||
result="blur" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix6785"
|
||||
in="blur"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 5.1 -2 "
|
||||
result="colormatrix2" />
|
||||
<feBlend
|
||||
id="feBlend6787"
|
||||
in2="flood"
|
||||
in="colormatrix2"
|
||||
mode="normal"
|
||||
result="blend" />
|
||||
<feComposite
|
||||
id="feComposite6789"
|
||||
in2="blend"
|
||||
in="blend"
|
||||
operator="arithmetic"
|
||||
k2="1"
|
||||
result="composite1" />
|
||||
<feComposite
|
||||
id="feComposite6791"
|
||||
in2="fbSourceGraphic"
|
||||
operator="in" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter5943">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood5945" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite5947" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
result="blur"
|
||||
id="feGaussianBlur5949" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset5951" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite5953" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
|
||||
inkscape:menu="Shadows and Glows"
|
||||
inkscape:label="Dark And Glow"
|
||||
id="filter6683"
|
||||
y="-0.25"
|
||||
height="1.5">
|
||||
<feTurbulence
|
||||
result="result0"
|
||||
seed="0"
|
||||
baseFrequency="1"
|
||||
numOctaves="5"
|
||||
type="fractalNoise"
|
||||
id="feTurbulence6685" />
|
||||
<feConvolveMatrix
|
||||
result="result5"
|
||||
order="5 5"
|
||||
kernelMatrix="-2 0 0 0 -2 0 -2 0 -2 0 0 0 -10 0 0 0 -2 0 -2 0 -2 0 0 0 -2 "
|
||||
targetX="2"
|
||||
targetY="2"
|
||||
id="feConvolveMatrix6687" />
|
||||
<feComposite
|
||||
result="result2"
|
||||
k3="0.5"
|
||||
k2="0.5"
|
||||
k1="1.5"
|
||||
operator="arithmetic"
|
||||
in="result5"
|
||||
in2="SourceGraphic"
|
||||
id="feComposite6689" />
|
||||
<feColorMatrix
|
||||
in="result2"
|
||||
type="luminanceToAlpha"
|
||||
result="result2"
|
||||
id="feColorMatrix6691" />
|
||||
<feDiffuseLighting
|
||||
surfaceScale="5"
|
||||
result="result1"
|
||||
diffuseConstant="0.6"
|
||||
id="feDiffuseLighting6693">
|
||||
<feDistantLight
|
||||
elevation="35"
|
||||
azimuth="225"
|
||||
id="feDistantLight6695" />
|
||||
</feDiffuseLighting>
|
||||
<feComposite
|
||||
operator="arithmetic"
|
||||
in="result1"
|
||||
k1="1.5"
|
||||
k3="0.5"
|
||||
result="result3"
|
||||
in2="SourceGraphic"
|
||||
id="feComposite6697" />
|
||||
<feBlend
|
||||
in="result3"
|
||||
mode="normal"
|
||||
result="result6"
|
||||
in2="result1"
|
||||
id="feBlend6699" />
|
||||
<feComposite
|
||||
operator="in"
|
||||
in2="SourceGraphic"
|
||||
id="feComposite6701"
|
||||
result="fbSourceGraphic" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix6703" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur6705"
|
||||
stdDeviation="5"
|
||||
result="result6"
|
||||
in="fbSourceGraphic" />
|
||||
<feComposite
|
||||
id="feComposite6707"
|
||||
in2="result6"
|
||||
result="result8"
|
||||
in="fbSourceGraphic"
|
||||
operator="atop" />
|
||||
<feComposite
|
||||
id="feComposite6709"
|
||||
in2="fbSourceGraphicAlpha"
|
||||
result="result9"
|
||||
operator="over"
|
||||
in="result8" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix6711"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
|
||||
result="result10" />
|
||||
<feBlend
|
||||
id="feBlend6713"
|
||||
in2="result6"
|
||||
in="result10"
|
||||
mode="normal"
|
||||
result="fbSourceGraphic" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix6715" />
|
||||
<feFlood
|
||||
id="feFlood6717"
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(255,255,255)"
|
||||
result="flood"
|
||||
in="fbSourceGraphic" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix6719"
|
||||
in="fbSourceGraphic"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -0.2125 -0.7154 -0.0721 1 0 "
|
||||
result="colormatrix1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur6721"
|
||||
in="colormatrix1"
|
||||
stdDeviation="1.9 1"
|
||||
result="blur" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix6723"
|
||||
in="blur"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 5.1 -2 "
|
||||
result="colormatrix2" />
|
||||
<feBlend
|
||||
id="feBlend6725"
|
||||
in2="flood"
|
||||
in="colormatrix2"
|
||||
mode="normal"
|
||||
result="blend" />
|
||||
<feComposite
|
||||
id="feComposite6727"
|
||||
in2="blend"
|
||||
in="blend"
|
||||
operator="arithmetic"
|
||||
k2="1"
|
||||
result="composite1" />
|
||||
<feComposite
|
||||
id="feComposite6729"
|
||||
in2="fbSourceGraphic"
|
||||
operator="in"
|
||||
result="fbSourceGraphic" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix6765" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur6767"
|
||||
stdDeviation="5"
|
||||
result="result6"
|
||||
in="fbSourceGraphic" />
|
||||
<feComposite
|
||||
id="feComposite6769"
|
||||
in2="result6"
|
||||
result="result8"
|
||||
in="fbSourceGraphic"
|
||||
operator="atop" />
|
||||
<feComposite
|
||||
id="feComposite6771"
|
||||
in2="fbSourceGraphicAlpha"
|
||||
result="result9"
|
||||
operator="over"
|
||||
in="result8" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix6773"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
|
||||
result="result10" />
|
||||
<feBlend
|
||||
id="feBlend6775"
|
||||
in2="result6"
|
||||
in="result10"
|
||||
mode="normal" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6741"
|
||||
id="radialGradient6747"
|
||||
cx="393.92856"
|
||||
cy="257.00507"
|
||||
fx="393.92856"
|
||||
fy="257.00507"
|
||||
r="111.78571"
|
||||
gradientTransform="matrix(1.7457256,-0.00436375,3.8094882e-4,0.0894564,-348.59118,256.12318)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6741"
|
||||
id="radialGradient6751"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.7332115,-0.00436375,3.78218e-4,0.0894564,-343.66079,888.26604)"
|
||||
cx="393.92856"
|
||||
cy="257.00507"
|
||||
fx="393.92856"
|
||||
fy="257.00507"
|
||||
r="111.78571" />
|
||||
<filter
|
||||
y="-0.25"
|
||||
height="1.5"
|
||||
inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
|
||||
inkscape:menu="Shadows and Glows"
|
||||
inkscape:label="Dark And Glow"
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
id="filter6809">
|
||||
<feGaussianBlur
|
||||
stdDeviation="5"
|
||||
result="result6"
|
||||
id="feGaussianBlur6811" />
|
||||
<feComposite
|
||||
result="result8"
|
||||
in="SourceGraphic"
|
||||
operator="atop"
|
||||
in2="result6"
|
||||
id="feComposite6813" />
|
||||
<feComposite
|
||||
result="result9"
|
||||
operator="over"
|
||||
in2="SourceAlpha"
|
||||
in="result8"
|
||||
id="feComposite6815" />
|
||||
<feColorMatrix
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
|
||||
result="result10"
|
||||
id="feColorMatrix6817" />
|
||||
<feBlend
|
||||
in="result10"
|
||||
mode="normal"
|
||||
in2="result6"
|
||||
id="feBlend6819" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter6821">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood6823" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite6825" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
result="blur"
|
||||
id="feGaussianBlur6827" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset6829" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite6831" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter7470">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood7472" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite7474" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
result="blur"
|
||||
id="feGaussianBlur7476" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset7478" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite7480" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#endcap-3"
|
||||
id="radialGradient4287"
|
||||
cx="620.27869"
|
||||
cy="-27.452856"
|
||||
fx="620.27869"
|
||||
fy="-27.452856"
|
||||
r="41.080517"
|
||||
gradientTransform="matrix(10.935912,-1.2967219,0.08820477,0.74387601,-6207.307,928.16347)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#endcap-3"
|
||||
id="radialGradient4309"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(11.938212,-1.443998,0.08995089,0.74366689,-6850.4532,1021.976)"
|
||||
cx="620.70544"
|
||||
cy="1109.0797"
|
||||
fx="620.70544"
|
||||
fy="1109.0797"
|
||||
r="41.080517" />
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter4345">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood4347" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite4349" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
result="blur"
|
||||
id="feGaussianBlur4351" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset4353" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite4355" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:window-y="32"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-height="2128"
|
||||
inkscape:window-width="3840"
|
||||
units="px"
|
||||
showgrid="false"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-units="px"
|
||||
inkscape:cy="627.42279"
|
||||
inkscape:cx="67.260134"
|
||||
inkscape:zoom="1.4142136"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid7555" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Kovid Goyal</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title>CC BY-SA</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>Kovid Goyal</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-28.362161)">
|
||||
<rect
|
||||
style="fill:#5b757b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect6055"
|
||||
width="197.66254"
|
||||
height="806.42017"
|
||||
x="240.36664"
|
||||
y="188.25954"
|
||||
ry="13.699058" />
|
||||
<rect
|
||||
style="fill:url(#radialGradient6747);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect6739"
|
||||
width="199.28571"
|
||||
height="20"
|
||||
x="239.55505"
|
||||
y="267.39493" />
|
||||
<rect
|
||||
y="899.53778"
|
||||
x="240.26932"
|
||||
height="20"
|
||||
width="197.85715"
|
||||
id="rect6749"
|
||||
style="fill:url(#radialGradient6751);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<rect
|
||||
style="fill:#79abff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect6835"
|
||||
width="220.95114"
|
||||
height="593.90881"
|
||||
x="509.9231"
|
||||
y="514.38483"
|
||||
ry="13.472634"
|
||||
transform="matrix(0.98420937,-0.17700821,0.19459355,0.98088396,0,0)" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="634.07745"
|
||||
y="890.01166"
|
||||
id="text7490"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7492"
|
||||
x="634.07745"
|
||||
y="890.01166"
|
||||
style="font-size:90px;line-height:1.25;font-family:sans-serif"> </tspan></text>
|
||||
<g
|
||||
id="g4327"
|
||||
transform="rotate(-7.222335,771.31726,893.54644)">
|
||||
<g
|
||||
id="g4320">
|
||||
<g
|
||||
id="g4311">
|
||||
<path
|
||||
transform="rotate(5.799032,720.99401,330.78116)"
|
||||
d="m 624.9082,72.820312 c -0.83386,-0.08218 -1.68937,-0.0815 -2.55664,0.0078 L 515.95117,83.785156 c -6.93817,0.714477 -11.94885,6.874331 -11.23437,13.8125 l 89.83203,872.349614 c 0.71448,6.93817 6.87628,11.94885 13.81445,11.23437 l 106.40039,-10.95703 c 6.93817,-0.71448 11.94885,-6.87433 11.23438,-13.8125 L 636.16406,84.0625 C 635.5389,77.991602 630.74522,73.39555 624.9082,72.820312 Z"
|
||||
id="yellow_book"
|
||||
style="fill:#d6b865;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
xlink:href="#rect6833"
|
||||
inkscape:original="M 624.9082 72.820312 C 624.07434 72.738136 623.21883 72.738815 622.35156 72.828125 L 515.95117 83.785156 C 509.013 84.499633 504.00232 90.659487 504.7168 97.597656 L 594.54883 969.94727 C 595.26331 976.88544 601.42511 981.89612 608.36328 981.18164 L 714.76367 970.22461 C 721.70184 969.51013 726.71252 963.35028 725.99805 956.41211 L 636.16406 84.0625 C 635.5389 77.991602 630.74522 73.39555 624.9082 72.820312 z "
|
||||
inkscape:radius="0"
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:label="#path7428"
|
||||
inkscape:href="#rect6833" />
|
||||
</g>
|
||||
<g
|
||||
id="g4316">
|
||||
<path
|
||||
inkscape:label="#path4307"
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:radius="0"
|
||||
inkscape:original="M 624.9082 72.820312 C 624.07434 72.738136 623.21883 72.738815 622.35156 72.828125 L 515.95117 83.785156 C 509.013 84.499633 504.00232 90.659487 504.7168 97.597656 L 594.54883 969.94727 C 595.26331 976.88544 601.42511 981.89612 608.36328 981.18164 L 714.76367 970.22461 C 721.70184 969.51013 726.71252 963.35028 725.99805 956.41211 L 636.16406 84.0625 C 635.5389 77.991602 630.74522 73.39555 624.9082 72.820312 z "
|
||||
xlink:href="#rect6833"
|
||||
style="fill:url(#radialGradient4309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="yellow_book_bottom_cap"
|
||||
d="m 624.9082,72.820312 c -0.83386,-0.08218 -1.68937,-0.0815 -2.55664,0.0078 L 515.95117,83.785156 c -6.93817,0.714477 -11.94885,6.874331 -11.23437,13.8125 l 89.83203,872.349614 c 0.71448,6.93817 6.87628,11.94885 13.81445,11.23437 l 106.40039,-10.95703 c 6.93817,-0.71448 11.94885,-6.87433 11.23438,-13.8125 L 636.16406,84.0625 C 635.5389,77.991602 630.74522,73.39555 624.9082,72.820312 Z"
|
||||
transform="rotate(5.799032,720.99401,330.78116)"
|
||||
inkscape:href="#rect6833" />
|
||||
<path
|
||||
inkscape:label="#path4279"
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:radius="0"
|
||||
inkscape:original="M 624.9082 72.820312 C 624.07434 72.738136 623.21883 72.738815 622.35156 72.828125 L 515.95117 83.785156 C 509.013 84.499633 504.00232 90.659487 504.7168 97.597656 L 594.54883 969.94727 C 595.26331 976.88544 601.42511 981.89612 608.36328 981.18164 L 714.76367 970.22461 C 721.70184 969.51013 726.71252 963.35028 725.99805 956.41211 L 636.16406 84.0625 C 635.5389 77.991602 630.74522 73.39555 624.9082 72.820312 z "
|
||||
xlink:href="#rect6833"
|
||||
style="fill:url(#radialGradient4287);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="yellow_book_top_cap"
|
||||
d="m 624.9082,72.820312 c -0.83386,-0.08218 -1.68937,-0.0815 -2.55664,0.0078 L 515.95117,83.785156 c -6.93817,0.714477 -11.94885,6.874331 -11.23437,13.8125 l 89.83203,872.349614 c 0.71448,6.93817 6.87628,11.94885 13.81445,11.23437 l 106.40039,-10.95703 c 6.93817,-0.71448 11.94885,-6.87433 11.23438,-13.8125 L 636.16406,84.0625 C 635.5389,77.991602 630.74522,73.39555 624.9082,72.820312 Z"
|
||||
transform="rotate(5.799032,720.99401,330.78116)"
|
||||
inkscape:href="#rect6833" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 24 KiB |
BIN
resources/images/vl.png
Normal file
BIN
resources/images/vl.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
@ -1037,6 +1037,12 @@ class ActionMarkBooks(InterfaceActionBase):
|
||||
description = _('Temporarily mark books')
|
||||
|
||||
|
||||
class ActionVirtualLibrary(InterfaceActionBase):
|
||||
name = 'Virtual Library'
|
||||
actual_plugin = 'calibre.gui2.actions.virtual_library:VirtualLibraryAction'
|
||||
description = _('Change the current Virtual library')
|
||||
|
||||
|
||||
class ActionStore(InterfaceActionBase):
|
||||
name = 'Store'
|
||||
author = 'John Schember'
|
||||
@ -1070,7 +1076,8 @@ plugins += [ActionAdd, ActionFetchAnnotations, ActionGenerateCatalog,
|
||||
ActionAddToLibrary, ActionEditCollections, ActionMatchBooks, ActionChooseLibrary,
|
||||
ActionCopyToLibrary, ActionTweakEpub, ActionUnpackBook, ActionNextMatch, ActionStore,
|
||||
ActionPluginUpdater, ActionPickRandom, ActionEditToC, ActionSortBy,
|
||||
ActionMarkBooks, ActionEmbed, ActionTemplateTester, ActionTagMapper]
|
||||
ActionMarkBooks, ActionEmbed, ActionTemplateTester, ActionTagMapper,
|
||||
ActionVirtualLibrary]
|
||||
|
||||
# }}}
|
||||
|
||||
|
29
src/calibre/gui2/actions/virtual_library.py
Normal file
29
src/calibre/gui2/actions/virtual_library.py
Normal file
@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env python2
|
||||
# vim:fileencoding=utf-8
|
||||
# License: GPLv3 Copyright: 2018, Kovid Goyal <kovid at kovidgoyal.net>
|
||||
|
||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
||||
|
||||
from PyQt5.Qt import QToolButton
|
||||
|
||||
from calibre.gui2.actions import InterfaceAction
|
||||
|
||||
|
||||
class VirtualLibraryAction(InterfaceAction):
|
||||
|
||||
name = 'Virtual library'
|
||||
action_spec = (
|
||||
_('Virtual library'), 'vl.png', _('Change the current Virtual library'),
|
||||
None
|
||||
)
|
||||
action_type = 'current'
|
||||
action_add_menu = True
|
||||
popup_type = QToolButton.InstantPopup
|
||||
dont_add_to = frozenset(['context-menu-device', 'menubar-device'])
|
||||
|
||||
def genesis(self):
|
||||
self.menu = m = self.qaction.menu()
|
||||
m.aboutToShow.connect(self.about_to_show_menu)
|
||||
|
||||
def about_to_show_menu(self):
|
||||
self.gui.build_virtual_library_menu(self.menu, add_tabs_action=False)
|
@ -184,7 +184,7 @@ class SearchBar(QFrame): # {{{
|
||||
x.setPopupMode(x.InstantPopup)
|
||||
x.setText(_('Virtual library'))
|
||||
x.setAutoRaise(True)
|
||||
x.setIcon(QIcon(I('lt.png')))
|
||||
x.setIcon(QIcon(I('vl.png')))
|
||||
x.setObjectName("virtual_library")
|
||||
x.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
l.addWidget(x)
|
||||
|
@ -366,8 +366,7 @@ class SearchRestrictionMixin(object):
|
||||
self.apply_virtual_library(cd.library_name)
|
||||
self.rebuild_vl_tabs()
|
||||
|
||||
def virtual_library_menu_about_to_show(self):
|
||||
m = self.virtual_library_menu
|
||||
def build_virtual_library_menu(self, m, add_tabs_action=True):
|
||||
m.clear()
|
||||
|
||||
a = m.addAction(_('Create Virtual library'))
|
||||
@ -381,10 +380,11 @@ class SearchRestrictionMixin(object):
|
||||
self.build_virtual_library_list(a, self.remove_vl_triggered)
|
||||
m.addMenu(a)
|
||||
|
||||
if gprefs['show_vl_tabs']:
|
||||
m.addAction(_('Hide virtual library tabs'), self.vl_tabs.disable_bar)
|
||||
else:
|
||||
m.addAction(_('Show virtual libraries as tabs'), self.vl_tabs.enable_bar)
|
||||
if add_tabs_action:
|
||||
if gprefs['show_vl_tabs']:
|
||||
m.addAction(_('Hide virtual library tabs'), self.vl_tabs.disable_bar)
|
||||
else:
|
||||
m.addAction(_('Show virtual libraries as tabs'), self.vl_tabs.enable_bar)
|
||||
|
||||
m.addSeparator()
|
||||
|
||||
@ -422,6 +422,9 @@ class SearchRestrictionMixin(object):
|
||||
a = m.addAction(self.checked if vl == current_lib else self.empty, vl.replace('&', '&&'))
|
||||
a.triggered.connect(partial(self.apply_virtual_library, library=vl))
|
||||
|
||||
def virtual_library_menu_about_to_show(self):
|
||||
self.build_virtual_library_menu(self.virtual_library_menu)
|
||||
|
||||
def rebuild_vl_tabs(self):
|
||||
self.vl_tabs.rebuild()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user