mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-09 06:24:15 +02:00
[ui] improved error handling when it is not possible to load icon files
This commit is contained in:
@@ -16,6 +16,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
### Improvements
|
### Improvements
|
||||||
- AUR
|
- AUR
|
||||||
- preventing the dependencies checking algorithm to add duplicates
|
- preventing the dependencies checking algorithm to add duplicates
|
||||||
|
- UI
|
||||||
|
- error handling when it is not possible to load icon files
|
||||||
|
|
||||||
### i18n
|
### i18n
|
||||||
- Russian ( ru ):
|
- Russian ( ru ):
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import os
|
import os
|
||||||
|
import traceback
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Tuple
|
from typing import Tuple
|
||||||
|
|
||||||
@@ -6,7 +7,7 @@ from PyQt5.QtCore import Qt, QSize
|
|||||||
from PyQt5.QtGui import QIcon, QPixmap, QIntValidator
|
from PyQt5.QtGui import QIcon, QPixmap, QIntValidator
|
||||||
from PyQt5.QtWidgets import QRadioButton, QGroupBox, QCheckBox, QComboBox, QGridLayout, QWidget, \
|
from PyQt5.QtWidgets import QRadioButton, QGroupBox, QCheckBox, QComboBox, QGridLayout, QWidget, \
|
||||||
QLabel, QSizePolicy, QLineEdit, QToolButton, QHBoxLayout, QFormLayout, QFileDialog, QTabWidget, QVBoxLayout, \
|
QLabel, QSizePolicy, QLineEdit, QToolButton, QHBoxLayout, QFormLayout, QFileDialog, QTabWidget, QVBoxLayout, \
|
||||||
QSlider, QScrollArea, QFrame
|
QSlider
|
||||||
|
|
||||||
from bauh.api.abstract.view import SingleSelectComponent, InputOption, MultipleSelectComponent, SelectViewType, \
|
from bauh.api.abstract.view import SingleSelectComponent, InputOption, MultipleSelectComponent, SelectViewType, \
|
||||||
TextInputComponent, FormComponent, FileChooserComponent, ViewComponent, TabGroupComponent, PanelComponent, \
|
TextInputComponent, FormComponent, FileChooserComponent, ViewComponent, TabGroupComponent, PanelComponent, \
|
||||||
@@ -244,9 +245,11 @@ class MultipleSelectQt(QGroupBox):
|
|||||||
|
|
||||||
for op in model.options: # loads the help icon if at least one option has a tooltip
|
for op in model.options: # loads the help icon if at least one option has a tooltip
|
||||||
if op.tooltip:
|
if op.tooltip:
|
||||||
with open(resource.get_path('img/about.svg'), 'rb') as f:
|
try:
|
||||||
pixmap_help.loadFromData(f.read())
|
pixmap_help = QIcon(resource.get_path('img/about.svg')).pixmap(QSize(16, 16))
|
||||||
pixmap_help = pixmap_help.scaled(16, 16, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|
||||||
for op in model.options:
|
for op in model.options:
|
||||||
@@ -307,9 +310,11 @@ class FormMultipleSelectQt(QWidget):
|
|||||||
|
|
||||||
for op in model.options: # loads the help icon if at least one option has a tooltip
|
for op in model.options: # loads the help icon if at least one option has a tooltip
|
||||||
if op.tooltip:
|
if op.tooltip:
|
||||||
with open(resource.get_path('img/about.svg'), 'rb') as f:
|
try:
|
||||||
pixmap_help.loadFromData(f.read())
|
pixmap_help = QIcon(resource.get_path('img/about.svg')).pixmap(QSize(16, 16))
|
||||||
pixmap_help = pixmap_help.scaled(16, 16, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|
||||||
for op in model.options:
|
for op in model.options:
|
||||||
@@ -473,7 +478,12 @@ class FormQt(QGroupBox):
|
|||||||
def gen_tip_icon(self, tip: str) -> QLabel:
|
def gen_tip_icon(self, tip: str) -> QLabel:
|
||||||
tip_icon = QLabel()
|
tip_icon = QLabel()
|
||||||
tip_icon.setToolTip(tip.strip())
|
tip_icon.setToolTip(tip.strip())
|
||||||
tip_icon.setPixmap(QIcon(resource.get_path('img/about.svg')).pixmap(QSize(12, 12)))
|
|
||||||
|
try:
|
||||||
|
tip_icon.setPixmap(QIcon(resource.get_path('img/about.svg')).pixmap(QSize(12, 12)))
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
|
||||||
return tip_icon
|
return tip_icon
|
||||||
|
|
||||||
def _new_text_input(self, c: TextInputComponent) -> Tuple[QLabel, QLineEdit]:
|
def _new_text_input(self, c: TextInputComponent) -> Tuple[QLabel, QLineEdit]:
|
||||||
@@ -567,11 +577,13 @@ class FormQt(QGroupBox):
|
|||||||
label = self._new_label(c)
|
label = self._new_label(c)
|
||||||
wrapped = self._wrap(chooser, c)
|
wrapped = self._wrap(chooser, c)
|
||||||
|
|
||||||
bt = IconButton(QIcon(resource.get_path('img/clean.svg')),
|
try:
|
||||||
i18n=self.i18n['clean'].capitalize(),
|
icon = QIcon(resource.get_path('img/clean.svg'))
|
||||||
action=clean_path,
|
except:
|
||||||
background='#cc0000',
|
traceback.print_exc()
|
||||||
tooltip=self.i18n['action.run.tooltip'])
|
icon = QIcon()
|
||||||
|
|
||||||
|
bt = IconButton(icon, i18n=self.i18n['clean'].capitalize(), action=clean_path, background='#cc0000', tooltip=self.i18n['action.run.tooltip'])
|
||||||
|
|
||||||
wrapped.layout().addWidget(bt)
|
wrapped.layout().addWidget(bt)
|
||||||
return label, wrapped
|
return label, wrapped
|
||||||
@@ -586,7 +598,12 @@ class TabGroupQt(QTabWidget):
|
|||||||
self.setTabPosition(QTabWidget.North)
|
self.setTabPosition(QTabWidget.North)
|
||||||
|
|
||||||
for c in model.tabs:
|
for c in model.tabs:
|
||||||
icon = QIcon(c.icon_path) if c.icon_path else QIcon()
|
try:
|
||||||
|
icon = QIcon(c.icon_path) if c.icon_path else QIcon()
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
icon = QIcon()
|
||||||
|
|
||||||
self.addTab(to_widget(c.content, i18n), icon, c.label)
|
self.addTab(to_widget(c.content, i18n), icon, c.label)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user