def _create_resource_type_combo( current_resource_type: ResourceType, parent: QWidget, resource_database: ResourceDatabase) -> QComboBox: """ :param current_resource_type: :param parent: :return: """ resource_type_combo = ScrollProtectedComboBox(parent) for resource_type in iterate_enum(ResourceType): try: count_elements = len(resource_database.get_by_type(resource_type)) except ValueError: count_elements = 0 if count_elements == 0: continue resource_type_combo.addItem(resource_type.name, resource_type) if resource_type is current_resource_type: resource_type_combo.setCurrentIndex(resource_type_combo.count() - 1) return resource_type_combo
def _create_resource_name_combo( resource_database: ResourceDatabase, resource_type: ResourceType, current_resource: Optional[ResourceInfo], parent: QWidget, ) -> QComboBox: """ :param resource_database: :param current_resource: :param parent: :return: """ resource_name_combo = ScrollProtectedComboBox(parent) for resource in sorted(resource_database.get_by_type(resource_type), key=lambda x: x.long_name): resource_name_combo.addItem(resource.long_name, resource) if resource is current_resource: resource_name_combo.setCurrentIndex(resource_name_combo.count() - 1) return resource_name_combo