[view] improvement: displaying a tooltip with the missing dependencies for a supported packaging technology

This commit is contained in:
Vinicius Moreira
2021-11-22 15:48:48 -03:00
parent 5121bb40ef
commit c80845cde4
47 changed files with 525 additions and 47 deletions

View File

@@ -4,7 +4,7 @@ import time
import traceback
from subprocess import Popen, STDOUT
from threading import Thread
from typing import List, Set, Type, Tuple, Dict
from typing import List, Set, Type, Tuple, Dict, Optional
from bauh.api.abstract.controller import SoftwareManager, SearchResult, ApplicationContext, UpgradeRequirements, \
UpgradeRequirement, TransactionResult, SoftwareAction
@@ -119,20 +119,19 @@ class GenericSoftwareManager(SoftwareManager):
return res
def _can_work(self, man: SoftwareManager):
if self._available_cache is not None:
available = False
for t in man.get_managed_types():
available = self._available_cache.get(t)
if available is None:
available = man.is_enabled() and man.can_work()
available = man.is_enabled() and man.can_work()[0]
self._available_cache[t] = available
if available:
available = True
else:
available = man.is_enabled() and man.can_work()
available = man.is_enabled() and man.can_work()[0]
if available:
if man not in self.working_managers:
@@ -198,8 +197,8 @@ class GenericSoftwareManager(SoftwareManager):
def set_enabled(self, enabled: bool):
pass
def can_work(self) -> bool:
return True
def can_work(self) -> Tuple[bool, Optional[str]]:
return True, None
def _get_package_lower_name(self, pkg: SoftwarePackage):
return pkg.name.lower()

View File

@@ -7,7 +7,7 @@ import traceback
from io import StringIO
from math import floor
from threading import Thread
from typing import Iterable, List
from typing import Iterable, List, Tuple
from bauh.api.abstract.download import FileDownloader
from bauh.api.abstract.handler import ProcessWatcher
@@ -223,3 +223,6 @@ class AdaptableFileDownloader(FileDownloader):
def list_available_multithreaded_clients(self) -> List[str]:
return [c for c in self.supported_multithread_clients if self.is_multithreaded_client_available(c)]
def get_supported_clients(self) -> tuple:
return 'wget', 'aria2', 'axel'

View File

@@ -39,23 +39,26 @@ class GenericSettingsManager:
gem_opts, def_gem_opts, gem_tabs = [], set(), []
for man in self.managers:
if man.can_work():
man_comp = man.get_settings(screen_width, screen_height)
modname = man.__module__.split('.')[-2]
icon_path = "{r}/gems/{n}/resources/img/{n}.svg".format(r=ROOT_DIR, n=modname)
can_work, reason_not_work = man.can_work()
modname = man.__module__.split('.')[-2]
icon_path = "{r}/gems/{n}/resources/img/{n}.svg".format(r=ROOT_DIR, n=modname)
if man_comp:
tab_name = self.i18n.get('gem.{}.label'.format(modname), modname.capitalize())
gem_tabs.append(TabComponent(label=tab_name, content=man_comp, icon_path=icon_path, id_=modname))
man_comp = man.get_settings(screen_width, screen_height) if can_work else None
if man_comp:
tab_name = self.i18n.get('gem.{}.label'.format(modname), modname.capitalize())
gem_tabs.append(TabComponent(label=tab_name, content=man_comp, icon_path=icon_path, id_=modname))
opt = InputOption(label=self.i18n.get('gem.{}.label'.format(modname), modname.capitalize()),
tooltip=self.i18n.get('gem.{}.info'.format(modname)),
value=modname,
icon_path='{r}/gems/{n}/resources/img/{n}.svg'.format(r=ROOT_DIR, n=modname))
gem_opts.append(opt)
help_tip = reason_not_work if not can_work and reason_not_work else self.i18n.get(f'gem.{modname}.info')
opt = InputOption(label=self.i18n.get('gem.{}.label'.format(modname), modname.capitalize()),
tooltip=help_tip,
value=modname,
icon_path='{r}/gems/{n}/resources/img/{n}.svg'.format(r=ROOT_DIR, n=modname),
read_only=not can_work,
extra_properties={'warning': 'true'} if not can_work else None)
gem_opts.append(opt)
if man.is_enabled() and man in self.working_managers:
def_gem_opts.add(opt)
if man.is_enabled() and man in self.working_managers:
def_gem_opts.add(opt)
core_config = self.configman.get_config()

View File

@@ -275,6 +275,10 @@ class RadioButtonQt(QRadioButton):
self.setAttribute(Qt.WA_TransparentForMouseEvents)
self.setFocusPolicy(Qt.NoFocus)
if model.extra_properties:
for name, val in model.extra_properties.items():
self.setProperty(name, val)
def _set_checked(self, checked: bool):
if checked:
self.model_parent.value = self.model
@@ -303,6 +307,10 @@ class CheckboxQt(QCheckBox):
else:
self.setCursor(QCursor(Qt.PointingHandCursor))
if model.extra_properties:
for name, val in model.extra_properties.items():
self.setProperty(name, val)
def _set_checked(self, state):
checked = state == 2
@@ -541,7 +549,12 @@ class MultipleSelectQt(QGroupBox):
if op.tooltip:
help_icon = QLabel()
help_icon.setProperty('help_icon', 'true')
if op.extra_properties and op.extra_properties.get('warning') == 'true':
help_icon.setProperty('warning_icon', 'true')
else:
help_icon.setProperty('help_icon', 'true')
help_icon.setCursor(QCursor(Qt.WhatsThisCursor))
help_icon.setToolTip(op.tooltip)
widget.layout().addWidget(help_icon)
@@ -596,7 +609,12 @@ class FormMultipleSelectQt(QWidget):
if op.tooltip:
help_icon = QLabel()
help_icon.setProperty('help_icon', 'true')
if op.extra_properties and op.extra_properties.get('warning') == 'true':
help_icon.setProperty('warning_icon', 'true')
else:
help_icon.setProperty('help_icon', 'true')
help_icon.setToolTip(op.tooltip)
help_icon.setCursor(QCursor(Qt.WhatsThisCursor))
widget.layout().addWidget(help_icon)

View File

@@ -347,6 +347,7 @@ manage_window.upgrade_all.popup.title=Actualitza
message.file.not_exist=Fitxer no existeix
message.file.not_exist.body=El fitxer {} sembla no existir
mirror=mirall
missing_dep={dep} is not installed
name=nom
no=no
not_installed=no instal·lada

View File

@@ -346,6 +346,7 @@ manage_window.upgrade_all.popup.title=Upgrade
message.file.not_exist=Datei existiert nicht
message.file.not_exist.body=Die Datei {} scheint nicht zu existieren
mirror=mirror
missing_dep={dep} is not installed
name=Name
no=Nein
not_installed=nicht installiert

View File

@@ -347,6 +347,7 @@ manage_window.upgrade_all.popup.title=Upgrade
message.file.not_exist.body=The file {} seems not to exist
message.file.not_exist=File does not exist
mirror=mirror
missing_dep={dep} is not installed
name=name
no=no
not_installed=not installed

View File

@@ -348,6 +348,7 @@ manage_window.upgrade_all.popup.title=Actualizar
message.file.not_exist=Archivo no existe
message.file.not_exist.body=El archivo {} parece no existir
mirror=espejo
missing_dep={dep} no está instalado
name=nombre
no=no
not_installed=no instalada

View File

@@ -343,6 +343,7 @@ manage_window.upgrade_all.popup.title=Mettre à jour
message.file.not_exist.body=Le fichier {} n'a pas l'air d'exister
message.file.not_exist=Fichier inexistant
mirror=mirroir
missing_dep={dep} is not installed
name=nom
no=non
not_installed=pas installé

View File

@@ -348,6 +348,7 @@ manage_window.upgrade_all.popup.title=Aggiorna
message.file.not_exist=File non esiste
message.file.not_exist.body=Il file {} sembra non esistere
mirror=specchio
missing_dep={dep} is not installed
name=nome
no=no
not_installed=non installato

View File

@@ -347,6 +347,7 @@ manage_window.upgrade_all.popup.title=Atualizar
message.file.not_exist.body=O arquivo {} parece não existir
message.file.not_exist=Arquivo não existe
mirror=espelho
missing_dep={dep} não está instalado
name=nome
no=não
not_installed=não instalado

View File

@@ -346,6 +346,7 @@ manage_window.upgrade_all.popup.title=Обновление
message.file.not_exist=Файл не существует
message.file.not_exist.body=Файл {}, кажется, не существует
mirror=Зеркало
missing_dep={dep} is not installed
name=Имя
no=Нет
not_installed=Не установлено

View File

@@ -346,6 +346,7 @@ manage_window.upgrade_all.popup.title=Yükselt
message.file.not_exist.body={} Dosyası yok gibi görünüyor
message.file.not_exist=Dosya bulunamuyor
mirror=yansı
missing_dep={dep} is not installed
name=isim
no=hayır
not_installed=yüklü değil

View File

@@ -20,6 +20,10 @@ QCheckBox::indicator:checked:disabled {
image: url("@style_dir/img/checkbox_checked_disabled.svg");
}
QCheckBox[warning = "true"] {
color: @color.warning;
}
QLineEdit:disabled, QComboBox:disabled, QSpinBox:disabled {
color: @disabled.color;
}
@@ -408,6 +412,10 @@ QLabel[help_icon = "true"] {
qproperty-pixmap: url("@style_dir/img/help.svg");
}
QLabel[warning_icon = "true"] {
qproperty-pixmap: url("@style_dir/img/warning.svg");
}
QLabel[tip_icon = "true"] {
qproperty-pixmap: url("@style_dir/img/help.svg");
}

View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="512"
height="512"
viewBox="0 0 512 512"
xml:space="preserve"
sodipodi:docname="warning.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
id="metadata933"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs931">
</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="739"
id="namedview929"
showgrid="false"
showborder="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.70710679"
inkscape:cx="354.26049"
inkscape:cy="276.47875"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1"
inkscape:document-rotation="0"
inkscape:pagecheckerboard="0" />
<g
id="g898"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g900"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g902"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g904"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g906"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g908"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g910"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g912"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g914"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g916"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g918"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g920"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g922"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g924"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g926"
transform="translate(239.5083,-10.347359)">
</g>
<ellipse
style="fill:none;stroke:#6e6e6e;stroke-width:36.1559"
id="path9773"
cx="270.94653"
cy="252.39122"
rx="213.86691"
ry="206.0806" /><path
id="path939"
style="fill:#be9117;fill-opacity:1;stroke:#be9117;stroke-width:1.88256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 255.87109,2.9414062 A 252.84608,253.05907 0 0 0 3.1542969,256 252.84608,253.05907 0 0 0 256,509.05859 252.84608,253.05907 0 0 0 508.8457,256 252.84608,253.05907 0 0 0 256,2.9414062 a 252.84608,253.05907 0 0 0 -0.12891,0 z M 252.38672,122.42188 c 46.17094,0 91.62695,21.28145 91.62695,72.18554 0,46.94252 -53.74634,64.99664 -65.28906,81.95899 -8.66556,12.61739 -5.773,30.3457 -29.58203,30.3457 -15.50947,0 -23.08399,-12.62527 -23.08399,-24.17773 0,-42.98946 63.10938,-52.71862 63.10938,-88.11719 0,-19.48412 -12.95594,-31.03711 -34.61133,-31.03711 -46.17094,0 -28.14066,47.64062 -63.10937,47.64062 -12.6238,0 -23.46094,-7.58162 -23.46094,-22.01367 -0.009,-35.40709 40.38307,-66.78515 84.40039,-66.78515 z m -1.79688,207.92773 c 16.20751,0 29.58008,13.34102 29.58008,29.61328 0,16.27226 -13.34704,29.61523 -29.58008,29.61523 -16.23303,0 -29.58789,-13.32592 -29.58789,-29.61523 0,-16.26375 13.35486,-29.61328 29.58789,-29.61328 z" /></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -28,6 +28,10 @@ QCheckBox::indicator {
height: 18px;
}
QCheckBox[warning = "true"] {
color: yellow;
}
QProgressBar {
max-height: 4px;
}
@@ -54,7 +58,7 @@ QMenu QPushButton {
text-align: left;
}
QLabel[help_icon = "true"] {
QLabel[help_icon = "true"], QLabel[warning_icon = "true"] {
qproperty-scaledContents: True;
min-height: 16;
max-height: 16;

View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="512"
height="512"
viewBox="0 0 512 512"
xml:space="preserve"
sodipodi:docname="warning.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
id="metadata933"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs931">
</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="739"
id="namedview929"
showgrid="false"
showborder="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.70710679"
inkscape:cx="354.26049"
inkscape:cy="276.47875"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1"
inkscape:document-rotation="0"
inkscape:pagecheckerboard="0" />
<g
id="g898"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g900"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g902"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g904"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g906"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g908"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g910"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g912"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g914"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g916"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g918"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g920"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g922"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g924"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g926"
transform="translate(239.5083,-10.347359)">
</g>
<ellipse
style="fill:none;stroke:#6e6e6e;stroke-width:36.1559"
id="path9773"
cx="270.94653"
cy="252.39122"
rx="213.86691"
ry="206.0806" /><path
id="path939"
style="fill:#db5860;fill-opacity:1;stroke:#db5860;stroke-width:1.88256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 255.87109,2.9414062 A 252.84608,253.05907 0 0 0 3.1542969,256 252.84608,253.05907 0 0 0 256,509.05859 252.84608,253.05907 0 0 0 508.8457,256 252.84608,253.05907 0 0 0 256,2.9414062 a 252.84608,253.05907 0 0 0 -0.12891,0 z M 252.38672,122.42188 c 46.17094,0 91.62695,21.28145 91.62695,72.18554 0,46.94252 -53.74634,64.99664 -65.28906,81.95899 -8.66556,12.61739 -5.773,30.3457 -29.58203,30.3457 -15.50947,0 -23.08399,-12.62527 -23.08399,-24.17773 0,-42.98946 63.10938,-52.71862 63.10938,-88.11719 0,-19.48412 -12.95594,-31.03711 -34.61133,-31.03711 -46.17094,0 -28.14066,47.64062 -63.10937,47.64062 -12.6238,0 -23.46094,-7.58162 -23.46094,-22.01367 -0.009,-35.40709 40.38307,-66.78515 84.40039,-66.78515 z m -1.79688,207.92773 c 16.20751,0 29.58008,13.34102 29.58008,29.61328 0,16.27226 -13.34704,29.61523 -29.58008,29.61523 -16.23303,0 -29.58789,-13.32592 -29.58789,-29.61523 0,-16.26375 13.35486,-29.61328 29.58789,-29.61328 z" /></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -39,6 +39,10 @@ QCheckBox::indicator:checked:disabled {
image: url("@style_dir/img/checkbox_checked_disabled.svg");
}
QCheckBox[warning = "true"] {
color: @color.red;
}
QMenu QPushButton:hover {
background-color: @menu.item.selected.background.color;
}
@@ -67,6 +71,10 @@ QLabel[help_icon = "true"] {
qproperty-pixmap: url("@style_dir/img/help.svg");
}
QLabel[warning_icon = "true"] {
qproperty-pixmap: url("@style_dir/img/warning.svg");
}
QLabel[tip_icon = "true"] {
qproperty-pixmap: url("@style_dir/img/help.svg");
}

View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="512"
height="512"
viewBox="0 0 512 512"
xml:space="preserve"
sodipodi:docname="warning.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
id="metadata933"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs931">
</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="739"
id="namedview929"
showgrid="false"
showborder="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.70710679"
inkscape:cx="352.84628"
inkscape:cy="276.47875"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1"
inkscape:document-rotation="0"
inkscape:pagecheckerboard="0" />
<g
id="g898"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g900"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g902"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g904"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g906"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g908"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g910"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g912"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g914"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g916"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g918"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g920"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g922"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g924"
transform="translate(239.5083,-10.347359)">
</g>
<g
id="g926"
transform="translate(239.5083,-10.347359)">
</g>
<ellipse
style="fill:none;stroke:#6e6e6e;stroke-width:36.1559"
id="path9773"
cx="270.94653"
cy="252.39122"
rx="213.86691"
ry="206.0806" /><path
id="path939"
style="fill:#e7db74;fill-opacity:1;stroke:#e7db74;stroke-width:1.88256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 255.87109,2.9414062 A 252.84608,253.05907 0 0 0 3.1542969,256 252.84608,253.05907 0 0 0 256,509.05859 252.84608,253.05907 0 0 0 508.8457,256 252.84608,253.05907 0 0 0 256,2.9414062 a 252.84608,253.05907 0 0 0 -0.12891,0 z M 252.38672,122.42188 c 46.17094,0 91.62695,21.28145 91.62695,72.18554 0,46.94252 -53.74634,64.99664 -65.28906,81.95899 -8.66556,12.61739 -5.773,30.3457 -29.58203,30.3457 -15.50947,0 -23.08399,-12.62527 -23.08399,-24.17773 0,-42.98946 63.10938,-52.71862 63.10938,-88.11719 0,-19.48412 -12.95594,-31.03711 -34.61133,-31.03711 -46.17094,0 -28.14066,47.64062 -63.10937,47.64062 -12.6238,0 -23.46094,-7.58162 -23.46094,-22.01367 -0.009,-35.40709 40.38307,-66.78515 84.40039,-66.78515 z m -1.79688,207.92773 c 16.20751,0 29.58008,13.34102 29.58008,29.61328 0,16.27226 -13.34704,29.61523 -29.58008,29.61523 -16.23303,0 -29.58789,-13.32592 -29.58789,-29.61523 0,-16.26375 13.35486,-29.61328 29.58789,-29.61328 z" /></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -47,6 +47,10 @@ QCheckBox::indicator:checked:disabled {
image: url("@style_dir/img/checkbox_checked_disabled.svg");
}
QCheckBox[warning = "true"] {
color: @color.yellow;
}
QComboBox, QComboBox QAbstractItemView, QMenu QAbstractItemView {
selection-background-color: @menu.item.selected.background.color;
selection-color: @menu.item.selected.font.color;
@@ -115,6 +119,10 @@ QLabel[help_icon = "true"] {
qproperty-pixmap: url("@style_dir/img/help.svg");
}
QLabel[warning_icon = "true"] {
qproperty-pixmap: url("@style_dir/img/warning.svg");
}
QLabel[tip_icon = "true"] {
qproperty-pixmap: url("@style_dir/img/help.svg");
}