mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 14:04:16 +02:00
UI improvements
This commit is contained in:
@@ -18,19 +18,19 @@ class FlatpakApplication(Application):
|
||||
return self.base_data.description is None and self.base_data.icon_url
|
||||
|
||||
def has_history(self):
|
||||
return True
|
||||
return self.installed
|
||||
|
||||
def has_info(self):
|
||||
return self.installed
|
||||
|
||||
def can_be_downgraded(self):
|
||||
return True
|
||||
return self.installed
|
||||
|
||||
def can_be_uninstalled(self):
|
||||
return True
|
||||
return self.installed
|
||||
|
||||
def can_be_installed(self):
|
||||
return True
|
||||
return not self.installed
|
||||
|
||||
def get_type(self):
|
||||
return 'flatpak'
|
||||
|
||||
126
fpakman/resources/img/app_info.svg
Executable file
126
fpakman/resources/img/app_info.svg
Executable file
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 10.048382 24.046875"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="info3.svg"
|
||||
width="10.048382"
|
||||
height="24.046875"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14"><metadata
|
||||
id="metadata856"><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="defs854" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="739"
|
||||
id="namedview852"
|
||||
showgrid="false"
|
||||
showborder="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="4.2578125"
|
||||
inkscape:cx="72.471146"
|
||||
inkscape:cy="14.340367"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="432"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" />
|
||||
<g
|
||||
id="g819"
|
||||
transform="matrix(0.04838117,0,0,0.046875,-7.3613885,0.0234375)"
|
||||
style="fill:#ffffff;stroke:#333333">
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#333333"
|
||||
cx="255.99899"
|
||||
cy="75.469002"
|
||||
r="75.469002"
|
||||
id="circle815" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:#333333"
|
||||
d="M 359.345,230.952 V 185.078 H 152.654 v 45.874 c 15.395,0 27.874,12.479 27.874,27.873 v 179.426 c 0,15.394 -12.48,27.874 -27.874,27.874 V 512 h 206.692 v -45.873 c -15.395,0 -27.874,-12.48 -27.874,-27.874 V 258.825 c -10e-4,-15.394 12.479,-27.873 27.873,-27.873 z"
|
||||
id="path817"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g821"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g823"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g825"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g827"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g829"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g831"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g833"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g835"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g837"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g839"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g841"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g843"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g845"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g847"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
<g
|
||||
id="g849"
|
||||
transform="translate(-152.62981,-487.97656)">
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
63
fpakman/resources/img/app_settings.svg
Executable file
63
fpakman/resources/img/app_settings.svg
Executable file
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="svg1069"
|
||||
width="23.995125"
|
||||
height="24.004246"
|
||||
viewBox="0 0 23.995125 24.004246"
|
||||
sodipodi:docname="settings_3svg.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata1075">
|
||||
<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="defs1073" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="739"
|
||||
id="namedview1071"
|
||||
showgrid="false"
|
||||
showborder="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="3.6875"
|
||||
inkscape:cx="-9.476931"
|
||||
inkscape:cy="-2.2075679"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg1069" />
|
||||
<path
|
||||
style="opacity:0.95;fill:#ffffff;fill-opacity:1;stroke:#333333;stroke-width:0.18215948;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.037667,0.09769312 c -0.72043,0.0637 -1.845694,-0.17097 -2.124115,0.73052 -0.08137,0.50962998 0.01515,1.11913998 -0.387221,1.48686998 -0.15736,0.21026 -0.218698,0.60361 -0.5623,0.63599 -0.231156,0.1825 -0.482289,0.4504 -0.805519,0.37943 -0.33519,0.2264 -0.769547,0.14283 -1.104717,-0.0131 -0.637006,0.0746 -1.03032,-0.57076 -1.534985,-0.83449 -0.885643,-0.28862 -1.407803,0.72336 -2.066783,1.10551 -0.25976,0.24133 -0.32452,0.57765 -0.62658,0.79417 -0.43543,0.45528 -0.40057,1.2532 0.17952,1.56982 0.43169,0.5212 0.62511,1.299 0.50516,1.9344 -0.16048,0.28253 -0.0479,0.67728 -0.35903,0.91801 -0.26574,0.43697 -0.71175,0.56803 -1.12615,0.76234 -0.49764,0.39004 -1.38447003,0.0415 -1.77627003,0.5985699 -0.25861,0.96381 -0.12396,2.0252 -0.10444,3.02506 0.0509,0.34442 0.16638,0.76134 0.54628,0.8123 0.39988003,0.23671 0.91536003,0.015 1.32806003,0.27835 1.07706,0.33161 1.66943,1.62912 1.41067,2.66993 -0.16334,0.19954 -0.0658,0.46544 -0.29147,0.64159 -0.17812,0.26318 -0.30377,0.55768 -0.54204,0.80265 -0.47979,0.64849 0.33827,1.30054 0.7343,1.74015 0.54098,0.48923 1.03633,1.14605 1.70793,1.42206 0.23833,-0.12983 0.561824,-0.003 0.682754,-0.29128 0.406567,-0.31367 0.790035,-0.72877 1.343883,-0.71643 0.670515,-0.32887 1.506075,0.0717 2.058292,0.51022 0.156853,0.14124 0.119739,0.39965 0.359038,0.4728 0.497527,0.61075 0.0069,1.60837 0.705143,2.08371 0.874823,0.43838 1.919873,0.26337 2.864969,0.24421 0.659557,0.0141 1.164474,-0.57496 1.060705,-1.22434 0.136064,-0.91849 0.774338,-1.93921 1.77666,-2.0214 0.363739,-0.22429 0.812774,-0.0589 1.166487,0.0473 0.759153,0.0202 1.164413,1.0138 1.994591,0.87519 0.4616,-0.16783 0.782731,-0.57119 1.168225,-0.87538 0.50432,-0.48329 1.01909,-0.97579 1.28636,-1.62094 0.144599,-0.71118 -0.730744,-1.06353 -0.890067,-1.70137 -0.100989,-0.22757 -0.0049,-0.49343 -0.179905,-0.69117 -0.04673,-0.84613 0.412368,-1.65862 1.11958,-2.10125 0.305264,0.0339 0.411929,-0.37354 0.763246,-0.3152 0.591382,0.0245 1.440793,-0.10369 1.514329,-0.83661 0.05748,-1.0154 0.169703,-2.08796 -0.111765,-3.07367 -0.246291,-0.5252799 -0.897473,-0.31832 -1.285587,-0.5717499 -0.232806,0.0157 -0.388499,-0.16382 -0.634686,-0.13137 -0.42064,-0.20941 -0.754834,-0.56503 -0.952802,-0.96218 -0.424334,-0.53524 -0.424871,-1.41725 -0.12354,-1.9942 0.231967,-0.27004 0.338997,-0.6292 0.631791,-0.88078 0.499512,-0.69929 -0.151216,-1.47883 -0.657434,-1.94804 -0.499489,-0.48119 -0.952777,-1.06089 -1.592345,-1.33975 -0.659633,-0.16168 -0.98362,0.57179 -1.534211,0.74575 -0.125378,0.13168 -0.358502,0.0285 -0.45652,0.20544 -0.334935,-0.0571 -0.579653,0.23864 -0.92597,0.071 -0.681696,-0.0739 -1.347245,-0.54339 -1.630535,-1.13561 -0.102377,-0.27247 -0.348146,-0.49327 -0.331433,-0.83892 0.03397,-0.5178 -0.09363,-1.33088998 -0.748962,-1.35222998 -0.449202,-0.1603 -0.970143,-0.0669 -1.440591,-0.0918 z m 7.358542,2.90314998 c 0.09152,-0.13657 0.180927,-0.13633 0,0 z m -7.380163,5.3821 c 0.391366,-0.0266 0.744155,0.13023 1.08889,0.2282 0.620271,0.0714 1.143014,0.59122 1.609108,0.96643 0.332946,0.16294 0.165699,0.5772199 0.500916,0.7067799 0.221257,0.23884 0.09768,0.58093 0.319466,0.79533 0.07607,1.0594 0.150917,2.20776 -0.611329,3.06518 -0.47404,0.62985 -1.178494,1.1764 -1.950002,1.33815 -0.35881,3e-5 -0.689909,0.20436 -1.078465,0.1302 -0.307061,0.0394 -0.57734,-0.14573 -0.847792,-0.16049 -0.201682,-0.11921 -0.435966,-0.0458 -0.596853,-0.26311 -0.569432,-0.0889 -0.972318,-0.61227 -1.328054,-1.03395 -0.01774,-0.31189 -0.432129,-0.39167 -0.438374,-0.75366 -0.338183,-0.85301 -0.406908,-1.899 0.01158,-2.72529 0.246346,-0.36263 0.317564,-0.8099699 0.679663,-1.1234499 0.674731,-0.73941 1.661428,-1.11848 2.641244,-1.17032 z m -1.846149,6.8379199 c 6.6e-4,-0.004 0.01304,-0.006 0,0 z m -0.08223,0.13213 c -0.0079,-0.0194 0.04552,-0.0747 0,0 z m 1.435381,0.35725 c 0.0025,0.0119 -0.0022,-0.007 0,0 z m -8.415191,2.52892 c -0.003,0.003 -0.0212,-0.009 0,0 z m 17.973515,1.20852 c 0.08741,0.13502 -0.194278,-0.16337 0,0 z m -5.019582,0.98456 c -0.01137,0.0188 0.01702,-0.0484 0,0 z"
|
||||
id="path1626"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.8 KiB |
76
fpakman/resources/img/app_update.svg
Executable file
76
fpakman/resources/img/app_update.svg
Executable file
@@ -0,0 +1,76 @@
|
||||
<?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"
|
||||
version="1.1"
|
||||
viewBox="0 0 48.000008 47.999886"
|
||||
enable-background="new 0 0 26 26"
|
||||
id="svg8"
|
||||
sodipodi:docname="update_white.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14"
|
||||
width="48.000008"
|
||||
height="47.999886">
|
||||
<metadata
|
||||
id="metadata14">
|
||||
<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="defs12" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="739"
|
||||
id="namedview10"
|
||||
showgrid="false"
|
||||
showborder="false"
|
||||
inkscape:zoom="3.2091769"
|
||||
inkscape:cx="11.492348"
|
||||
inkscape:cy="-1.3206439"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="432"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<g
|
||||
id="g6"
|
||||
transform="matrix(1.8424663,0,0,1.9956679,0.04794249,-1.943739)"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.05204165">
|
||||
<path
|
||||
d="m 25,17 h -2 c -0.6,0 -1,0.4 -1,1 v 2.5 C 22,20.8 21.8,21 21.5,21 H 4.5 C 4.2,21 4,20.8 4,20.5 V 18 C 4,17.4 3.6,17 3,17 H 1 c -0.6,0 -1,0.4 -1,1 v 6 c 0,0.6 0.4,1 1,1 h 24 c 0.6,0 1,-0.4 1,-1 v -6 c 0,-0.6 -0.4,-1 -1,-1 z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.05204165" />
|
||||
<path
|
||||
d="m 12.3,16.7 c 0.2,0.2 0.5,0.3 0.7,0.3 0.2,0 0.5,-0.1 0.7,-0.3 l 6,-6 C 19.9,10.5 20,10.3 20,10 20,9.7 19.9,9.5 19.7,9.3 L 18.3,7.9 C 18.1,7.7 17.9,7.6 17.6,7.6 c -0.3,0 -0.5,0.1 -0.7,0.3 l -1,1 C 15.6,9.2 15,9 15,8.5 V 2 C 15,1.4 14.6,1 14,1 H 12 C 11.4,1 11,1.4 11,2 V 8.6 C 11,9 10.5,9.3 10.1,9 L 9.1,8 C 8.9,7.8 8.7,7.7 8.4,7.7 8.1,7.7 7.9,7.8 7.7,8 L 6.3,9.4 C 6.1,9.6 6,9.8 6,10.1 c 0,0.3 0.1,0.5 0.3,0.7 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.05204165" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(3.7795276,0,0,3.7795276,668.44512,-480.86859)"
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -1,155 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<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: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"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="info.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
|
||||
id="metadata128"><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="defs126"><linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient153"><stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop149" /><stop
|
||||
style="stop-color:#0000ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop151" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient153"
|
||||
id="linearGradient155"
|
||||
x1="-180.77992"
|
||||
y1="-30.518711"
|
||||
x2="337.13013"
|
||||
y2="868.49902"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient153"
|
||||
id="linearGradient157"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-180.77992"
|
||||
y1="-30.518711"
|
||||
x2="337.13013"
|
||||
y2="868.49902" /></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="703"
|
||||
id="namedview124"
|
||||
showgrid="false"
|
||||
showborder="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="1.8698707"
|
||||
inkscape:cx="143.59281"
|
||||
inkscape:cy="26.740827"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="260"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Capa_1" />
|
||||
|
||||
<g
|
||||
id="g93"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g95"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g97"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g99"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g101"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g103"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g105"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g107"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g109"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g111"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g113"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g115"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g117"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g119"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g121"
|
||||
transform="translate(0,-414.534)">
|
||||
</g>
|
||||
<g
|
||||
id="g96"
|
||||
transform="scale(0.50000002)"><g
|
||||
style="fill:url(#linearGradient155);fill-opacity:1"
|
||||
transform="scale(0.10945609,0.1094556)"
|
||||
id="g91">
|
||||
<path
|
||||
style="fill:url(#linearGradient157);fill-opacity:1"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path89"
|
||||
d="M 409.133,109.203 C 389.525,75.611 362.928,49.014 329.335,29.407 295.736,9.801 259.058,0 219.273,0 179.492,0 142.803,9.801 109.21,29.407 75.615,49.011 49.018,75.608 29.41,109.203 9.801,142.8 0,179.489 0,219.267 c 0,39.78 9.804,76.463 29.407,110.062 19.607,33.592 46.204,60.189 79.799,79.798 33.597,19.605 70.283,29.407 110.063,29.407 39.78,0 76.47,-9.802 110.065,-29.407 33.593,-19.602 60.189,-46.206 79.795,-79.798 19.603,-33.596 29.403,-70.284 29.403,-110.062 0.001,-39.782 -9.8,-76.472 -29.399,-110.064 z M 182.727,54.813 c 0,-2.666 0.855,-4.853 2.57,-6.565 1.712,-1.711 3.903,-2.57 6.567,-2.57 h 54.82 c 2.662,0 4.853,0.859 6.561,2.57 1.711,1.712 2.573,3.899 2.573,6.565 v 45.682 c 0,2.664 -0.862,4.854 -2.573,6.564 -1.708,1.712 -3.898,2.568 -6.561,2.568 h -54.82 c -2.664,0 -4.854,-0.856 -6.567,-2.568 -1.715,-1.709 -2.57,-3.9 -2.57,-6.564 z m 109.632,301.496 c 0,2.662 -0.863,4.853 -2.57,6.561 -1.704,1.714 -3.895,2.57 -6.563,2.57 H 155.317 c -2.667,0 -4.854,-0.856 -6.567,-2.57 -1.712,-1.708 -2.568,-3.898 -2.568,-6.564 v -45.682 c 0,-2.67 0.856,-4.853 2.568,-6.567 1.713,-1.708 3.903,-2.57 6.567,-2.57 h 27.41 v -91.358 h -27.41 c -2.667,0 -4.853,-0.855 -6.567,-2.568 -1.712,-1.711 -2.568,-3.901 -2.568,-6.567 v -45.679 c 0,-2.666 0.856,-4.853 2.568,-6.567 1.715,-1.713 3.905,-2.568 6.567,-2.568 h 91.367 c 2.662,0 4.853,0.855 6.561,2.568 1.711,1.714 2.573,3.901 2.573,6.567 v 146.179 h 27.401 c 2.669,0 4.859,0.855 6.57,2.566 1.704,1.712 2.566,3.901 2.566,6.567 v 45.683 h 0.004 z" />
|
||||
</g><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path88"
|
||||
d="m 16.36476,36.447391 v -3.208779 h 1.871787 1.871787 V 27.890649 22.542686 H 18.236547 16.36476 V 19.333908 16.12513 h 5.615361 5.615362 v 8.556741 8.556741 h 2.139185 2.139186 v 3.208779 3.208778 H 24.119307 16.36476 Z"
|
||||
style="fill:#ffffff;stroke-width:0.53479636" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path90"
|
||||
d="M 20.571824,11.490228 C 20.375732,11.294136 20.215294,9.8501861 20.215294,8.2814501 V 5.429203 h 3.743574 3.743574 v 3.208778 3.208778 h -3.387043 c -1.862874,0 -3.547483,-0.160439 -3.743575,-0.356531 z"
|
||||
style="fill:#ffffff;stroke-width:0.53479636" /></g></svg>
|
||||
|
Before Width: | Height: | Size: 5.6 KiB |
@@ -1,69 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<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="24"
|
||||
height="24"
|
||||
viewBox="0 0 6.35 6.35"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="toggle_off.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.35"
|
||||
inkscape:cx="398.57142"
|
||||
inkscape:cy="-80.000033"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
showborder="false"
|
||||
units="px"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="703"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="260"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<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>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(198.05952,-121.31665)">
|
||||
<circle
|
||||
style="fill:#b3b3b3;stroke-width:0.02469599"
|
||||
id="path10"
|
||||
cx="-194.88452"
|
||||
cy="124.49165"
|
||||
r="3.175" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,93 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<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: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"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 6.35 6.35"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="toggle_on.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient66">
|
||||
<stop
|
||||
style="stop-color:#55d400;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop62" />
|
||||
<stop
|
||||
style="stop-color:#55d400;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop64" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient66"
|
||||
id="linearGradient68"
|
||||
x1="-210.35391"
|
||||
y1="112.4323"
|
||||
x2="-215.96657"
|
||||
y2="126.86485"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.53333336,0,0,0.53333336,-92.427766,59.577773)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:cx="185.81986"
|
||||
inkscape:cy="20.785442"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
showborder="false"
|
||||
units="px"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="703"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="260"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<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>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(198.05951,-121.31666)">
|
||||
<circle
|
||||
style="fill:url(#linearGradient68);fill-opacity:1;stroke-width:0.02469597"
|
||||
id="path10"
|
||||
cx="-194.88451"
|
||||
cy="124.49166"
|
||||
r="3.175" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.6 KiB |
@@ -6,7 +6,7 @@ from PyQt5.QtCore import Qt, QUrl
|
||||
from PyQt5.QtGui import QPixmap, QIcon, QCursor
|
||||
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
|
||||
from PyQt5.QtWidgets import QTableWidget, QTableView, QMenu, QAction, QTableWidgetItem, QWidget, \
|
||||
QHeaderView, QLabel, QHBoxLayout, QPushButton
|
||||
QHeaderView, QLabel, QHBoxLayout, QPushButton, QToolButton, QToolBar
|
||||
|
||||
from fpakman.core import resource
|
||||
from fpakman.core.model import ApplicationStatus
|
||||
@@ -18,37 +18,56 @@ from fpakman.view.qt.view_model import ApplicationView, ApplicationViewStatus
|
||||
INSTALL_BT_STYLE = 'background: {back}; color: white; font-size: 10px; font-weight: bold'
|
||||
|
||||
|
||||
class IconButton(QWidget):
|
||||
|
||||
def __init__(self, icon_path: str, action, background: str = None, align: int = Qt.AlignCenter, tooltip: str = None):
|
||||
super(IconButton, self).__init__()
|
||||
self.bt = QToolButton()
|
||||
self.bt.setIcon(QIcon(icon_path))
|
||||
self.bt.clicked.connect(action)
|
||||
|
||||
if background:
|
||||
self.bt.setStyleSheet('QToolButton { color: white; background: ' + background + '}')
|
||||
|
||||
if tooltip:
|
||||
self.bt.setToolTip(tooltip)
|
||||
|
||||
layout = QHBoxLayout()
|
||||
layout.setContentsMargins(0, 0, 0, 0)
|
||||
layout.setAlignment(align)
|
||||
layout.addWidget(self.bt)
|
||||
self.setLayout(layout)
|
||||
|
||||
|
||||
class UpdateToggleButton(QWidget):
|
||||
|
||||
def __init__(self, app_view: ApplicationView, root: QWidget, locale_keys: dict, checked: bool = True):
|
||||
super(UpdateToggleButton, self).__init__()
|
||||
|
||||
self.app_view = app_view
|
||||
self.root = root
|
||||
self.locale_keys = locale_keys
|
||||
self.unchecked_text = self.locale_keys['bt.app_upgrade']
|
||||
self.checked_text = self.locale_keys['bt.app_not_upgrade']
|
||||
|
||||
layout = QHBoxLayout()
|
||||
layout.setContentsMargins(3, 3, 3, 3)
|
||||
layout.setContentsMargins(2, 2, 2, 0)
|
||||
layout.setAlignment(Qt.AlignCenter)
|
||||
self.setLayout(layout)
|
||||
|
||||
self.bt = QPushButton()
|
||||
self.bt.setText(self.unchecked_text)
|
||||
self.bt.setToolTip(self.locale_keys['manage_window.apps_table.upgrade_toggle.tooltip'])
|
||||
self.bt.setStyleSheet('QPushButton { ' + INSTALL_BT_STYLE.format(back='#04B404') + ' } ' +
|
||||
'QPushButton:checked {' + INSTALL_BT_STYLE.format(back='gray') + '}')
|
||||
self.bt = QToolButton()
|
||||
self.bt.setCheckable(True)
|
||||
self.bt.clicked.connect(self.change_state)
|
||||
|
||||
self.bt.setIcon(QIcon(resource.get_path('img/app_update.svg')))
|
||||
self.bt.setStyleSheet('QToolButton { background: #4EC306 } ' +
|
||||
'QToolButton:checked { background: gray }')
|
||||
layout.addWidget(self.bt)
|
||||
|
||||
self.setToolTip(locale_keys['manage_window.apps_table.upgrade_toggle.tooltip'])
|
||||
|
||||
if not checked:
|
||||
self.bt.click()
|
||||
|
||||
def change_state(self, not_checked: bool):
|
||||
self.bt.clearFocus()
|
||||
self.app_view.update_checked = not not_checked
|
||||
self.bt.setText(self.unchecked_text if not not_checked else self.checked_text)
|
||||
self.root.change_update_state(change_filters=False)
|
||||
|
||||
|
||||
@@ -60,12 +79,7 @@ class AppsTable(QTableWidget):
|
||||
self.window = parent
|
||||
self.disk_cache = disk_cache
|
||||
self.download_icons = download_icons
|
||||
self.column_names = [parent.locale_keys[key].capitalize() for key in ['name',
|
||||
'version',
|
||||
'description',
|
||||
'type',
|
||||
'installed',
|
||||
'manage_window.columns.update']]
|
||||
self.column_names = ['' for _ in range(7)]
|
||||
self.setColumnCount(len(self.column_names))
|
||||
self.setFocusPolicy(Qt.NoFocus)
|
||||
self.setShowGrid(False)
|
||||
@@ -83,35 +97,46 @@ class AppsTable(QTableWidget):
|
||||
self.icon_cache = icon_cache
|
||||
self.lock_async_data = Lock()
|
||||
|
||||
def contextMenuEvent(self, QContextMenuEvent): # selected row right click event
|
||||
|
||||
app = self.get_selected_app()
|
||||
def has_any_settings(self, app_v: ApplicationView):
|
||||
return app_v.model.can_be_refreshed() or \
|
||||
app_v.model.has_history() or \
|
||||
app_v.model.can_be_downgraded()
|
||||
|
||||
def show_app_settings(self, app: ApplicationView):
|
||||
menu_row = QMenu()
|
||||
|
||||
if app.model.has_info():
|
||||
action_info = QAction(self.window.locale_keys["manage_window.apps_table.row.actions.info"])
|
||||
action_info.setIcon(QIcon(resource.get_path('img/info.svg')))
|
||||
action_info.triggered.connect(self._get_app_info)
|
||||
menu_row.addAction(action_info)
|
||||
|
||||
if app.model.installed:
|
||||
|
||||
if app.model.can_be_refreshed():
|
||||
action_history = QAction(self.window.locale_keys["manage_window.apps_table.row.actions.refresh"])
|
||||
action_history.setIcon(QIcon(resource.get_path('img/refresh.svg')))
|
||||
action_history.triggered.connect(self._refresh_app)
|
||||
|
||||
def refresh():
|
||||
self.window.refresh(app)
|
||||
|
||||
action_history.triggered.connect(refresh)
|
||||
menu_row.addAction(action_history)
|
||||
|
||||
if app.model.has_history():
|
||||
action_history = QAction(self.window.locale_keys["manage_window.apps_table.row.actions.history"])
|
||||
action_history.setIcon(QIcon(resource.get_path('img/history.svg')))
|
||||
action_history.triggered.connect(self._get_app_history)
|
||||
|
||||
def show_history():
|
||||
self.window.get_app_history(app)
|
||||
|
||||
action_history.triggered.connect(show_history)
|
||||
menu_row.addAction(action_history)
|
||||
|
||||
if app.model.can_be_downgraded():
|
||||
action_downgrade = QAction(self.window.locale_keys["manage_window.apps_table.row.actions.downgrade"])
|
||||
action_downgrade.triggered.connect(self._downgrade_app)
|
||||
|
||||
def downgrade():
|
||||
if dialog.ask_confirmation(
|
||||
title=self.window.locale_keys['manage_window.apps_table.row.actions.downgrade'],
|
||||
body=self.window.locale_keys['manage_window.apps_table.row.actions.downgrade.popup.body'].format(app.model.base_data.name),
|
||||
locale_keys=self.window.locale_keys):
|
||||
self.window.downgrade_app(app)
|
||||
|
||||
action_downgrade.triggered.connect(downgrade)
|
||||
action_downgrade.setIcon(QIcon(resource.get_path('img/downgrade.svg')))
|
||||
menu_row.addAction(action_downgrade)
|
||||
|
||||
@@ -219,12 +244,14 @@ class AppsTable(QTableWidget):
|
||||
self._set_col_type(idx, app_v)
|
||||
self._set_col_installed(idx, app_v)
|
||||
|
||||
self._set_col_settings(idx, app_v)
|
||||
|
||||
col_update = None
|
||||
|
||||
if update_check_enabled and app_v.model.update:
|
||||
col_update = UpdateToggleButton(app_v, self.window, self.window.locale_keys, app_v.model.update)
|
||||
|
||||
self.setCellWidget(idx, 5, col_update)
|
||||
self.setCellWidget(idx, 6, col_update)
|
||||
|
||||
def _gen_row_button(self, text: str, style: str, callback) -> QWidget:
|
||||
col = QWidget()
|
||||
@@ -234,7 +261,7 @@ class AppsTable(QTableWidget):
|
||||
col_bt.clicked.connect(callback)
|
||||
|
||||
layout = QHBoxLayout()
|
||||
layout.setContentsMargins(3, 3, 3, 3)
|
||||
layout.setContentsMargins(2, 2, 2, 1)
|
||||
layout.setAlignment(Qt.AlignCenter)
|
||||
layout.addWidget(col_bt)
|
||||
col.setLayout(layout)
|
||||
@@ -257,7 +284,7 @@ class AppsTable(QTableWidget):
|
||||
elif app_v.model.can_be_installed():
|
||||
def install():
|
||||
self._install_app(app_v)
|
||||
col = self._gen_row_button(self.window.locale_keys['install'].capitalize(), INSTALL_BT_STYLE.format(back='green'), install)
|
||||
col = self._gen_row_button(self.window.locale_keys['install'].capitalize(), INSTALL_BT_STYLE.format(back='#088A08'), install)
|
||||
else:
|
||||
col = None
|
||||
|
||||
@@ -285,7 +312,7 @@ class AppsTable(QTableWidget):
|
||||
tooltip = self.window.locale_keys['version.unknown']
|
||||
|
||||
if app_v.model.update:
|
||||
label_version.setStyleSheet("color: gold")
|
||||
label_version.setStyleSheet("color: #4EC306; font-weight: bold")
|
||||
tooltip = self.window.locale_keys['version.installed_outdated']
|
||||
|
||||
if app_v.model.base_data.version and app_v.model.base_data.latest_version and app_v.model.base_data.version < app_v.model.base_data.latest_version:
|
||||
@@ -337,6 +364,25 @@ class AppsTable(QTableWidget):
|
||||
|
||||
self.setItem(idx, 2, col)
|
||||
|
||||
def _set_col_settings(self, idx: int, app_v: ApplicationView):
|
||||
tb = QToolBar()
|
||||
|
||||
if app_v.model.has_info():
|
||||
|
||||
def get_info():
|
||||
self.window.get_app_info(app_v)
|
||||
|
||||
tb.addWidget(IconButton(icon_path=resource.get_path('img/app_info.svg'), action=get_info, background='#12ABAB'))
|
||||
|
||||
def handle_click():
|
||||
self.show_app_settings(app_v)
|
||||
|
||||
if self.has_any_settings(app_v):
|
||||
bt = IconButton(icon_path=resource.get_path('img/app_settings.svg'), action=handle_click, background='gray')
|
||||
tb.addWidget(bt)
|
||||
|
||||
self.setCellWidget(idx, 5, tb)
|
||||
|
||||
def change_headers_policy(self, policy: QHeaderView = QHeaderView.ResizeToContents):
|
||||
header_horizontal = self.horizontalHeader()
|
||||
for i in range(self.columnCount()):
|
||||
|
||||
@@ -2,17 +2,18 @@ import operator
|
||||
from functools import reduce
|
||||
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtGui import QIcon, QColor
|
||||
from PyQt5.QtGui import QColor
|
||||
from PyQt5.QtWidgets import QDialog, QVBoxLayout, QTableWidget, QTableWidgetItem, QHeaderView
|
||||
|
||||
from fpakman.util.cache import Cache
|
||||
|
||||
|
||||
class HistoryDialog(QDialog):
|
||||
|
||||
def __init__(self, app: dict, app_icon: QIcon, locale_keys: dict):
|
||||
def __init__(self, app: dict, icon_cache: Cache, locale_keys: dict):
|
||||
super(HistoryDialog, self).__init__()
|
||||
|
||||
self.setWindowTitle('{} - {} '.format(locale_keys['popup.history.title'], app['model'].base_data.name))
|
||||
self.setWindowIcon(app_icon)
|
||||
|
||||
layout = QVBoxLayout()
|
||||
self.setLayout(layout)
|
||||
@@ -52,3 +53,8 @@ class HistoryDialog(QDialog):
|
||||
|
||||
new_width = reduce(operator.add, [table_history.columnWidth(i) for i in range(table_history.columnCount())])
|
||||
self.resize(new_width, table_history.height())
|
||||
|
||||
icon_data = icon_cache.get(app['model'].base_data.icon_url)
|
||||
|
||||
if icon_data and icon_data.get('icon'):
|
||||
self.setWindowIcon(icon_data.get('icon'))
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
from PyQt5.QtCore import QSize
|
||||
from PyQt5.QtGui import QIcon
|
||||
from PyQt5.QtWidgets import QDialog, QVBoxLayout, QFormLayout, QGroupBox, \
|
||||
QLineEdit, QLabel
|
||||
|
||||
from fpakman.util import util
|
||||
from fpakman.util.cache import Cache
|
||||
|
||||
IGNORED_ATTRS = {'name', '__app__'}
|
||||
|
||||
|
||||
class InfoDialog(QDialog):
|
||||
|
||||
def __init__(self, app: dict, app_icon: QIcon, locale_keys: dict, app_type: str, screen_size: QSize()):
|
||||
def __init__(self, app: dict, icon_cache: Cache, locale_keys: dict, screen_size: QSize()):
|
||||
super(InfoDialog, self).__init__()
|
||||
self.setWindowTitle(app['name'])
|
||||
self.setWindowIcon(app_icon)
|
||||
self.screen_size = screen_size
|
||||
layout = QVBoxLayout()
|
||||
self.setLayout(layout)
|
||||
@@ -23,8 +24,13 @@ class InfoDialog(QDialog):
|
||||
|
||||
layout.addWidget(gbox_info)
|
||||
|
||||
icon_data = icon_cache.get(app['__app__'].model.base_data.icon_url)
|
||||
|
||||
if icon_data and icon_data.get('icon'):
|
||||
self.setWindowIcon(icon_data.get('icon'))
|
||||
|
||||
for attr in sorted(app.keys()):
|
||||
if attr != 'name' and app[attr]:
|
||||
if attr not in IGNORED_ATTRS and app[attr]:
|
||||
val = app[attr]
|
||||
text = QLineEdit()
|
||||
text.setToolTip(val)
|
||||
@@ -41,7 +47,7 @@ class InfoDialog(QDialog):
|
||||
text.setStyleSheet("width: 400px")
|
||||
text.setReadOnly(True)
|
||||
|
||||
label = QLabel("{}: ".format(locale_keys.get(app_type + '.info.' + attr, attr)).capitalize())
|
||||
label = QLabel("{}: ".format(locale_keys.get(app['__app__'].model.get_type() + '.info.' + attr, attr)).capitalize())
|
||||
label.setStyleSheet("font-weight: bold")
|
||||
|
||||
gbox_info_layout.addRow(label, text)
|
||||
|
||||
@@ -159,7 +159,9 @@ class GetAppInfo(QThread):
|
||||
|
||||
def run(self):
|
||||
if self.app:
|
||||
self.signal_finished.emit(self.manager.get_info(self.app.model))
|
||||
info = {'__app__': self.app}
|
||||
info.update(self.manager.get_info(self.app.model))
|
||||
self.signal_finished.emit(info)
|
||||
self.app = None
|
||||
|
||||
|
||||
|
||||
@@ -288,7 +288,7 @@ class ManageWindow(QWidget):
|
||||
|
||||
def refresh(self, app: ApplicationView):
|
||||
pwd = None
|
||||
requires_root = self.manager.requires_root('refresh', self.table_apps.get_selected_app().model)
|
||||
requires_root = self.manager.requires_root('refresh', app.model)
|
||||
|
||||
if not is_root() and requires_root:
|
||||
pwd, ok = ask_root_password(self.locale_keys)
|
||||
@@ -586,7 +586,7 @@ class ManageWindow(QWidget):
|
||||
|
||||
def _finish_get_info(self, app_info: dict):
|
||||
self.finish_action()
|
||||
dialog_info = InfoDialog(app_info, self.table_apps.get_selected_app_icon(), self.locale_keys, self.table_apps.get_selected_app().model.get_type(), self.screen_size)
|
||||
dialog_info = InfoDialog(app=app_info, icon_cache=self.icon_cache, locale_keys=self.locale_keys, screen_size=self.screen_size)
|
||||
dialog_info.exec_()
|
||||
|
||||
def _finish_get_history(self, app: dict):
|
||||
@@ -597,7 +597,7 @@ class ManageWindow(QWidget):
|
||||
self.textarea_output.appendPlainText(app['error'])
|
||||
self.checkbox_console.setChecked(True)
|
||||
else:
|
||||
dialog_history = HistoryDialog(app, self.table_apps.get_selected_app_icon(), self.locale_keys)
|
||||
dialog_history = HistoryDialog(app, self.icon_cache, self.locale_keys)
|
||||
dialog_history.exec_()
|
||||
|
||||
def search(self):
|
||||
|
||||
Reference in New Issue
Block a user