diff --git a/src/port.h b/src/port.h --- a/src/port.h +++ b/src/port.h @@ -40,7 +40,18 @@ template void setInfo(const PAInfo *info) { - Profile::setInfo(info); + Availability newAvailability; + switch (info->available) { + case PA_PORT_AVAILABLE_NO: + newAvailability = Unavailable; + break; + case PA_PORT_AVAILABLE_YES: + newAvailability = Available; + break; + default: + newAvailability = Unknown; + } + setCommonInfo(info, newAvailability); } }; diff --git a/src/profile.h b/src/profile.h --- a/src/profile.h +++ b/src/profile.h @@ -48,6 +48,24 @@ template void setInfo(const PAInfo *info) + { + setCommonInfo(info, info->available ? Available : Unavailable); + } + + QString name() const; + QString description() const; + quint32 priority() const; + Availability availability() const; + +signals: + void nameChanged(); + void descriptionChanged(); + void priorityChanged(); + void availabilityChanged(); + +protected: + template + void setCommonInfo(const PAInfo *info, Availability newAvailability) { // Description is optional. Name not so much as we need some ID. Q_ASSERT(info->name); @@ -68,24 +86,12 @@ emit priorityChanged(); } - Availability newAvailability = info->available ? Available : Unavailable; if (m_availability != newAvailability) { m_availability = newAvailability; emit availabilityChanged(); } } - QString name() const; - QString description() const; - quint32 priority() const; - Availability availability() const; - -signals: - void nameChanged(); - void descriptionChanged(); - void priorityChanged(); - void availabilityChanged(); - private: QString m_name; QString m_description;