mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
printing: remove DiveObjectHelperGrantlee
This was a weird helper object, needed for grantlee. Instead of storing this object, loop over cylinders and dives directly. The actual accessor function is unchanged and now generates a DiveObjectHelper or DiveCylinderHelper for every variable access. Obviously, this is very inefficient. However, this will be replaced in future commits by direct calls to formatting functions. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
bf8261c001
commit
d9942269a9
6 changed files with 42 additions and 69 deletions
|
@ -143,3 +143,24 @@ QStringList formatFullCylinderList()
|
|||
return cylinders;
|
||||
}
|
||||
|
||||
static QString formattedCylinder(const struct dive *dive, int idx)
|
||||
{
|
||||
const cylinder_t *cyl = get_cylinder(dive, idx);
|
||||
const char *desc = cyl->type.description;
|
||||
QString fmt = desc ? QString(desc) : gettextFromC::tr("unknown");
|
||||
fmt += ", " + get_volume_string(cyl->type.size, true);
|
||||
fmt += ", " + get_pressure_string(cyl->type.workingpressure, true);
|
||||
fmt += ", " + get_pressure_string(cyl->start, false) + " - " + get_pressure_string(cyl->end, true);
|
||||
fmt += ", " + get_gas_string(cyl->gasmix);
|
||||
return fmt;
|
||||
}
|
||||
|
||||
QStringList formatCylinders(const dive *d)
|
||||
{
|
||||
QStringList cylinders;
|
||||
for (int i = 0; i < d->cylinders.nr; i++) {
|
||||
QString cyl = formattedCylinder(d, i);
|
||||
cylinders << cyl;
|
||||
}
|
||||
return cylinders;
|
||||
}
|
||||
|
|
|
@ -15,5 +15,6 @@ QStringList formatStartPressure(const dive *d);
|
|||
QStringList formatEndPressure(const dive *d);
|
||||
QStringList formatFirstGas(const dive *d);
|
||||
QStringList formatFullCylinderList();
|
||||
QStringList formatCylinders(const dive *d);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -30,18 +30,6 @@ static QString getFormattedWeight(const struct dive *dive, int idx)
|
|||
return fmt;
|
||||
}
|
||||
|
||||
static QString getFormattedCylinder(const struct dive *dive, int idx)
|
||||
{
|
||||
const cylinder_t *cyl = get_cylinder(dive, idx);
|
||||
const char *desc = cyl->type.description;
|
||||
QString fmt = desc ? QString(desc) : gettextFromC::tr("unknown");
|
||||
fmt += ", " + get_volume_string(cyl->type.size, true);
|
||||
fmt += ", " + get_pressure_string(cyl->type.workingpressure, true);
|
||||
fmt += ", " + get_pressure_string(cyl->start, false) + " - " + get_pressure_string(cyl->end, true);
|
||||
fmt += ", " + get_gas_string(cyl->gasmix);
|
||||
return fmt;
|
||||
}
|
||||
|
||||
static QString formatGas(const dive *d)
|
||||
{
|
||||
/*WARNING: here should be the gastlist, returned
|
||||
|
@ -89,27 +77,6 @@ static QStringList formatWeights(const dive *d)
|
|||
return weights;
|
||||
}
|
||||
|
||||
QStringList formatCylinders(const dive *d)
|
||||
{
|
||||
QStringList cylinders;
|
||||
for (int i = 0; i < d->cylinders.nr; i++) {
|
||||
QString cyl = getFormattedCylinder(d, i);
|
||||
cylinders << cyl;
|
||||
}
|
||||
return cylinders;
|
||||
}
|
||||
|
||||
static QVector<CylinderObjectHelper> makeCylinderObjects(const dive *d)
|
||||
{
|
||||
QVector<CylinderObjectHelper> res;
|
||||
for (int i = 0; i < d->cylinders.nr; i++) {
|
||||
//Don't add blank cylinders, only those that have been defined.
|
||||
if (get_cylinder(d, i)->type.description)
|
||||
res.append(CylinderObjectHelper(get_cylinder(d, i))); // no emplace for QVector. :(
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
QString formatDiveSalinity(const dive *d)
|
||||
{
|
||||
int salinity = get_dive_salinity(d);
|
||||
|
@ -181,16 +148,6 @@ DiveObjectHelper::DiveObjectHelper(const struct dive *d) :
|
|||
#endif /* defined(DEBUG_DOH) */
|
||||
}
|
||||
|
||||
DiveObjectHelperGrantlee::DiveObjectHelperGrantlee()
|
||||
{
|
||||
}
|
||||
|
||||
DiveObjectHelperGrantlee::DiveObjectHelperGrantlee(const struct dive *d) :
|
||||
DiveObjectHelper(d),
|
||||
cylinderObjects(makeCylinderObjects(d))
|
||||
{
|
||||
}
|
||||
|
||||
QString DiveObjectHelper::date() const
|
||||
{
|
||||
QDateTime localTime = timestampToDateTime(timestamp);
|
||||
|
|
|
@ -96,20 +96,6 @@ public:
|
|||
QString waterType;
|
||||
};
|
||||
|
||||
// This is an extended version of DiveObjectHelper that also keeps track of cylinder data.
|
||||
// It is used by grantlee to display structured cylinder data.
|
||||
// Note: this grantlee feature is undocumented. If there turns out to be no users, we might
|
||||
// want to remove this class.
|
||||
class DiveObjectHelperGrantlee : public DiveObjectHelper {
|
||||
Q_GADGET
|
||||
Q_PROPERTY(QVector<CylinderObjectHelper> cylinderObjects MEMBER cylinderObjects CONSTANT)
|
||||
public:
|
||||
DiveObjectHelperGrantlee();
|
||||
DiveObjectHelperGrantlee(const struct dive *dive);
|
||||
QVector<CylinderObjectHelper> cylinderObjects;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(DiveObjectHelper)
|
||||
Q_DECLARE_METATYPE(DiveObjectHelperGrantlee)
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue