Files
bearhub/bauh/view/qt/view_model.py

45 lines
1.3 KiB
Python

from enum import Enum
from bauh.api.abstract.model import SoftwarePackage, PackageStatus
from bauh.view.util.translation import I18n
class PackageViewStatus(Enum):
LOADING = 0
READY = 1
def get_type_label(type_: str, gem: str, i18n: I18n) -> str:
type_label = 'gem.{}.type.{}.label'.format(gem, type_.lower())
return i18n.get(type_label, type_.capitalize()).strip()
class PackageView:
def __init__(self, model: SoftwarePackage, i18n: I18n):
self.model = None
self.update_checked = None
self.status = None
self.update_model(model)
self.table_index = -1
self.i18n = i18n
def get_type_label(self) -> str:
return get_type_label(self.model.get_type(), self.model.gem_name, self.i18n)
def update_model(self, model: SoftwarePackage):
self.model = model
self.update_checked = model.update
self.status = PackageViewStatus.LOADING if model.status == PackageStatus.LOADING_DATA else PackageViewStatus.READY
@property
def name(self) -> str:
return self.model.name
def __repr__(self):
return '{} ({})'.format(self.model.name, self.get_type_label())
def __eq__(self, other):
if isinstance(other, PackageView):
return self.model == other.model