[RFC PATCH] Tweak cylinder equipment tooltips

Linus Torvalds torvalds at linux-foundation.org
Sun Jan 15 16:07:35 PST 2017


While playing around with the current subsurface, I realized that while we 
give the gas volume and Z factor for the beginning/end pressures in the 
newly added tooltips, there is no way to actually see that same 
information for the working pressure.

So if you have filled in cylinder type information, but don't have any 
actual gas usage information, there will be no cylinder tooltips at all. 
But you might still want to know what the actual volume for a particular 
cylinder is, and what the Z value for that working pressure is.

So this tweaks the tool-tips a bit.

When mousing over the pressure fields (ie "working pressure", "start" and 
"end"), it now always gives the cylinder gas volume and Z factor for that 
pressure, so for example on an AL72 that has a working pressure of 3000 
psi and that contains air the tooltip will say:

   69 cuft, Z=1.040

when you mouse over the working pressure field (that's obviously with 
imperial units, in metric you'll see liters of gas).

When mousing over the type/size field, it gives the used gas amounts, ie 
something like this:

   37 cuft (82 cuft -> 45 cuft)

but if the cylinder doesn't have starting/ending pressures (and thus no 
used gas information), this patch will make subsurface show the working 
pressure data instead, so that you at least get something.

This all seems more useful than what my first version gave.

NOTE! This makes commit adaeb506b7a1 ("Show both the nominal and "real" 
size for an imperial cylinder") kind of pointless. You now see the real 
size in the tooltip when you mouse over the size, and now it actually 
works both for imperial and metric people, so the tooltip is in many ways 
the better model.

Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
---

This has an RFC because this is all obviously a subjective. Very few 
people care about the compressibility factor, and realistically the main 
reason to show it is to explain when people get confused.

Also, arguably, with this patch we really could just revert that now less 
useful commit adaeb506b7a1. Again, it's a matter of taste. The tooltip 
shows the same real gas volume information, and now also works for metric 
cylinders. But the tooltip obviously needs that mouse-over. 

So which is better? Both? A matter of taste, I suspect.

But I signed off on the patch, because while I think this is a RFC and 
might be good to have people opine on it, I also think the patch is 
perfectly fine to just apply.

 qt-models/cylindermodel.cpp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/qt-models/cylindermodel.cpp b/qt-models/cylindermodel.cpp
index c2c94f76..530ea635 100644
--- a/qt-models/cylindermodel.cpp
+++ b/qt-models/cylindermodel.cpp
@@ -63,6 +63,8 @@ static QString gas_volume_string(int ml, const char *tail)
 	return QString("%1 %2 %3").arg(vol, 0, 'f', decimals).arg(unit).arg(tail);
 }
 
+static QVariant gas_wp_tooltip(cylinder_t *cyl);
+
 static QVariant gas_usage_tooltip(cylinder_t *cyl)
 {
 	pressure_t startp = cyl->start.mbar ? cyl->start : cyl->sample_start;
@@ -75,7 +77,7 @@ static QVariant gas_usage_tooltip(cylinder_t *cyl)
 	used = (end && start > end) ? start - end : 0;
 
 	if (!used)
-		return QVariant();
+		return gas_wp_tooltip(cyl);
 
 	return gas_volume_string(used, "(") +
 		gas_volume_string(start, " -> ") +
@@ -94,6 +96,11 @@ static QVariant gas_volume_tooltip(cylinder_t *cyl, pressure_t p)
 	return gas_volume_string(vol, "(Z=") + QString("%1)").arg(Z, 0, 'f', 3);
 }
 
+static QVariant gas_wp_tooltip(cylinder_t *cyl)
+{
+	return gas_volume_tooltip(cyl, cyl->type.workingpressure);
+}
+
 static QVariant gas_start_tooltip(cylinder_t *cyl)
 {
 	return gas_volume_tooltip(cyl, cyl->start.mbar ? cyl->start : cyl->sample_start);
@@ -228,9 +235,11 @@ QVariant CylindersModel::data(const QModelIndex &index, int role) const
 		case REMOVE:
 			ret = tr("Clicking here will remove this cylinder.");
 			break;
+		case TYPE:
 		case SIZE:
-		case WORKINGPRESS:
 			return gas_usage_tooltip(cyl);
+		case WORKINGPRESS:
+			return gas_wp_tooltip(cyl);
 		case START:
 			return gas_start_tooltip(cyl);
 		case END:


More information about the subsurface mailing list