diff --git a/samples/blackmiscquantities_dbus/BlackMiscTest.Testservice.xml b/samples/blackmiscquantities_dbus/BlackMiscTest.Testservice.xml
index d79b1c4e7..fc81aaae8 100644
--- a/samples/blackmiscquantities_dbus/BlackMiscTest.Testservice.xml
+++ b/samples/blackmiscquantities_dbus/BlackMiscTest.Testservice.xml
@@ -34,5 +34,13 @@
+
+
+
+
+
+
+
+
diff --git a/samples/blackmiscquantities_dbus/main.cpp b/samples/blackmiscquantities_dbus/main.cpp
index e389d33dc..446f24d4e 100644
--- a/samples/blackmiscquantities_dbus/main.cpp
+++ b/samples/blackmiscquantities_dbus/main.cpp
@@ -75,7 +75,10 @@ int main(int argc, char *argv[])
} else {
qDebug() << "Already registered, assuming 2nd pid: " << TestserviceTool::getPid();
BlackmisctestTestserviceInterface testserviceInterface(Testservice::ServiceName, Testservice::ServicePath, connection, &a);
- double speedValue = 200.0;
+
+ CSpeed speed(200, BlackMisc::PhysicalQuantities::CSpeedUnit::km_h());
+ CAltitude al(1000, true, CLengthUnit::ft());
+
while (true) {
QDBusMessage m = QDBusMessage::createSignal(
Testservice::ServicePath, Testservice::ServiceName,
@@ -103,7 +106,6 @@ int main(int argc, char *argv[])
qDebug() << "Send list via interface" << list;
// PQs
- CSpeed speed(speedValue++, BlackMisc::PhysicalQuantities::CSpeedUnit::km_h());
testserviceInterface.receiveSpeed(speed);
qDebug() << "Send speed via interface" << speed;
@@ -111,17 +113,28 @@ int main(int argc, char *argv[])
testserviceInterface.receiveSpeed(speed);
qDebug() << "Send speed via interface" << speed;
TestserviceTool::sleep(2500);
+ speed.switchUnit(CSpeedUnit::km_h());
+ speed.addUnitValue(1.0);
// Aviation
CComSystem comSystem = CComSystem("DBUS COM1", CPhysicalQuantitiesConstants::FrequencyInternationalAirDistress(), CPhysicalQuantitiesConstants::FrequencyUnicom());
testserviceInterface.receiveComUnit(comSystem);
qDebug() << "Send COM via interface" << comSystem;
- CAltitude al(1000, true, CLengthUnit::ft());
QDBusVariant qv(QVariant::fromValue(al));
testserviceInterface.receiveVariant(qv);
testserviceInterface.receiveAltitude(al);
qDebug() << "Send altitude via interface" << al;
+ al.addUnitValue(1);
+
+ CTransponder transponder("transponder", 7000, CTransponder::ModeC);
+ testserviceInterface.receiveTransponder(transponder);
+ qDebug() << "Send transponder via interface" << transponder;
+
+ CTrack track(123.45, true, CAngleUnit::deg());
+ testserviceInterface.receiveTrack(track);
+ qDebug() << "Send track via interface" << track;
+
TestserviceTool::sleep(2500);
// Math
diff --git a/samples/blackmiscquantities_dbus/testservice.cpp b/samples/blackmiscquantities_dbus/testservice.cpp
index 1c00dc048..52715c063 100644
--- a/samples/blackmiscquantities_dbus/testservice.cpp
+++ b/samples/blackmiscquantities_dbus/testservice.cpp
@@ -85,4 +85,20 @@ void Testservice::receiveGeoPosition(const BlackMisc::Geo::CCoordinateGeodetic &
qDebug() << "Pid:" << TestserviceTool::getPid() << "Received geo data:" << geo;
}
+/*
+ * Receive transponder
+ */
+void Testservice::receiveTransponder(const BlackMisc::Aviation::CTransponder &transponder)
+{
+ qDebug() << "Pid:" << TestserviceTool::getPid() << "Received transponder:" << transponder;
+}
+
+/*
+ * Receive track
+ */
+void Testservice::receiveTrack(const BlackMisc::Aviation::CTrack &track)
+{
+ qDebug() << "Pid:" << TestserviceTool::getPid() << "Received track:" << track;
+}
+
} // namespace
diff --git a/samples/blackmiscquantities_dbus/testservice.h b/samples/blackmiscquantities_dbus/testservice.h
index c03bc02b1..c31d5364b 100644
--- a/samples/blackmiscquantities_dbus/testservice.h
+++ b/samples/blackmiscquantities_dbus/testservice.h
@@ -94,6 +94,18 @@ public slots:
*/
void receiveGeoPosition(const BlackMisc::Geo::CCoordinateGeodetic &geo);
+ /*!
+ * \brief Receive transponder
+ * \param transponder
+ */
+ void receiveTransponder(const BlackMisc::Aviation::CTransponder &transponder);
+
+ /*!
+ * \brief Receive track
+ * \param track
+ */
+ void receiveTrack(const BlackMisc::Aviation::CTrack &track);
+
public:
static const QString ServiceName;
static const QString ServicePath;
diff --git a/src/blackmisc/avaltitude.cpp b/src/blackmisc/avaltitude.cpp
index eef440e57..db4a7a9f5 100644
--- a/src/blackmisc/avaltitude.cpp
+++ b/src/blackmisc/avaltitude.cpp
@@ -16,7 +16,7 @@ namespace Aviation
/*
* Own implementation for streaming
*/
-QString CAltitude::stringForConverter() const
+QString CAltitude::stringForConverter(bool /** i18n **/) const
{
QString s = CLength::stringForConverter();
return s.append(this->m_msl ? " MSL" : " AGL");
diff --git a/src/blackmisc/avaltitude.h b/src/blackmisc/avaltitude.h
index 96316e3d5..4dec1c96f 100644
--- a/src/blackmisc/avaltitude.h
+++ b/src/blackmisc/avaltitude.h
@@ -24,9 +24,10 @@ private:
protected:
/*!
* \brief Specific stream operation for Altitude
+ * \param i18n
* \return
*/
- virtual QString stringForConverter() const;
+ virtual QString stringForConverter(bool i18n) const;
/*!
* \brief Stream to DBus <<
diff --git a/src/blackmisc/avheading.cpp b/src/blackmisc/avheading.cpp
index b66f56eeb..985bf73ae 100644
--- a/src/blackmisc/avheading.cpp
+++ b/src/blackmisc/avheading.cpp
@@ -16,9 +16,9 @@ namespace Aviation
/*
* Own implementation for streaming
*/
-QString CHeading::stringForConverter() const
+QString CHeading::stringForConverter(bool i18n) const
{
- QString s = CAngle::stringForConverter();
+ QString s = CAngle::stringForConverter(i18n);
return s.append(this->m_magnetic ? " magnetic" : " true");
}
@@ -50,5 +50,14 @@ bool CHeading::operator !=(const CHeading &otherHeading)
return !((*this) == otherHeading);
}
+/*!
+ * \brief Register metadata of unit and quantity
+ */
+void CHeading::registerMetadata()
+{
+ qRegisterMetaType(typeid(CHeading).name());
+ qDBusRegisterMetaType();
+}
+
} // namespace
} // namespace
diff --git a/src/blackmisc/avheading.h b/src/blackmisc/avheading.h
index 778c44794..1a3897364 100644
--- a/src/blackmisc/avheading.h
+++ b/src/blackmisc/avheading.h
@@ -23,9 +23,28 @@ private:
protected:
/*!
* \brief Specific stream operation for heading
+ * \param i18n
* \return
*/
- virtual QString stringForConverter() const;
+ virtual QString stringForConverter(bool i18n = false) const;
+
+ /*!
+ * \brief Stream to DBus <<
+ * \param argument
+ */
+ virtual void marshallToDbus(QDBusArgument &argument) const {
+ CAngle::marshallToDbus(argument);
+ argument << this->m_magnetic;
+ }
+
+ /*!
+ * \brief Stream from DBus >>
+ * \param argument
+ */
+ virtual void unmarshallFromDbus(const QDBusArgument &argument) {
+ CAngle::unmarshallFromDbus(argument);
+ argument >> this->m_magnetic;
+ }
public:
/*!
@@ -108,8 +127,16 @@ public:
CAngle::switchUnit(newUnit);
return (*this);
}
+
+ /*!
+ * \brief Register metadata
+ */
+ static void registerMetadata();
};
} // namespace
} // namespace
+
+Q_DECLARE_METATYPE(BlackMisc::Aviation::CHeading)
+
#endif // guard
diff --git a/src/blackmisc/aviocomsystem.h b/src/blackmisc/aviocomsystem.h
index 923746f13..9faac94ac 100644
--- a/src/blackmisc/aviocomsystem.h
+++ b/src/blackmisc/aviocomsystem.h
@@ -199,6 +199,7 @@ public:
if (!(s = comSystem.validate(false))) comSystem = CComSystem(); // reset to default
return s;
}
+
/*!
* \brief COM1 unit
* \param activeFrequencyMHz
@@ -208,6 +209,7 @@ public:
static CComSystem getCom1System(double activeFrequencyMHz, double standbyFrequencyMHz = -1) {
return CComSystem(CModulator::NameCom1(), BlackMisc::PhysicalQuantities::CFrequency(activeFrequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()), BlackMisc::PhysicalQuantities::CFrequency(standbyFrequencyMHz < 0 ? activeFrequencyMHz : standbyFrequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()));
}
+
/*!
* \brief COM1 unit
* \param activeFrequency
@@ -237,6 +239,7 @@ public:
static bool tryGetCom1Unit(CComSystem &comSystem, BlackMisc::PhysicalQuantities::CFrequency activeFrequency, BlackMisc::PhysicalQuantities::CFrequency standbyFrequency = CModulator::FrequencyNotSet()) {
return CComSystem::tryGetComSystem(comSystem, CModulator::NameCom1(), activeFrequency, standbyFrequency);
}
+
/*!
* \brief COM2 unit
* \param activeFrequencyMHz
@@ -246,6 +249,7 @@ public:
static CComSystem getCom2System(double activeFrequencyMHz, double standbyFrequencyMHz = -1) {
return CComSystem(CModulator::NameCom2(), BlackMisc::PhysicalQuantities::CFrequency(activeFrequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()), BlackMisc::PhysicalQuantities::CFrequency(standbyFrequencyMHz < 0 ? activeFrequencyMHz : standbyFrequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()));
}
+
/*!
* \brief COM2 unit
* \param activeFrequency
@@ -255,6 +259,7 @@ public:
static CComSystem getCom2System(BlackMisc::PhysicalQuantities::CFrequency activeFrequency, BlackMisc::PhysicalQuantities::CFrequency standbyFrequency = CModulator::FrequencyNotSet()) {
return CComSystem(CModulator::NameCom2(), activeFrequency, standbyFrequency == CModulator::FrequencyNotSet() ? activeFrequency : standbyFrequency);
}
+
/*!
* \brief Try to get COM unit
* \param comSystem
@@ -265,6 +270,7 @@ public:
static bool tryGetCom2System(CComSystem &comSystem, double activeFrequencyMHz, double standbyFrequencyMHz = -1) {
return CComSystem::tryGetComSystem(comSystem, CModulator::NameCom2(), activeFrequencyMHz, standbyFrequencyMHz);
}
+
/*!
* \brief Try to get COM unit
* \param comSystem
@@ -285,6 +291,7 @@ public:
static CComSystem getCom3System(double activeFrequencyMHz, double standbyFrequencyMHz = -1) {
return CComSystem(CModulator::NameCom3(), BlackMisc::PhysicalQuantities::CFrequency(activeFrequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()), BlackMisc::PhysicalQuantities::CFrequency(standbyFrequencyMHz < 0 ? activeFrequencyMHz : standbyFrequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()));
}
+
/*!
* \brief COM3 unit
* \param activeFrequency
@@ -305,6 +312,7 @@ public:
static bool tryGetCom3System(CComSystem &comSystem, double activeFrequencyMHz, double standbyFrequencyMHz = -1) {
return CComSystem::tryGetComSystem(comSystem, CModulator::NameCom3(), activeFrequencyMHz, standbyFrequencyMHz);
}
+
/*!
* \brief Try to get COM unit
* \param comSystem
diff --git a/src/blackmisc/aviomodulator.h b/src/blackmisc/aviomodulator.h
index 249b7e9bd..00ae1e42e 100644
--- a/src/blackmisc/aviomodulator.h
+++ b/src/blackmisc/aviomodulator.h
@@ -272,6 +272,7 @@ public:
{
return this->m_frequencyActive == CModulator::FrequencyNotSet();
}
+
/*!
* \brief Toggle active and standby frequencies
*/
diff --git a/src/blackmisc/aviotransponder.cpp b/src/blackmisc/aviotransponder.cpp
index e471615c8..d8ca230ee 100644
--- a/src/blackmisc/aviotransponder.cpp
+++ b/src/blackmisc/aviotransponder.cpp
@@ -99,5 +99,36 @@ QString CTransponder::getTransponderCodeFormatted() const
return f.right(4);
}
+/*!
+ * \brief Stream to DBus <<
+ * \param argument
+ */
+void CTransponder::marshallToDbus(QDBusArgument &argument) const {
+ CAvionicsBase::marshallToDbus(argument);
+ argument << this->m_transponderCode;
+ argument << static_cast(this->m_transponderMode);
+}
+
+/*!
+ * \brief Stream from DBus >>
+ * \param argument
+ */
+void CTransponder::unmarshallFromDbus(const QDBusArgument &argument) {
+ CAvionicsBase::unmarshallFromDbus(argument);
+ qint32 tm;
+ argument >> this->m_transponderCode;
+ argument >> tm;
+ this->m_transponderMode = static_cast(tm);
+}
+
+/*!
+ * \brief Register metadata of unit and quantity
+ */
+void CTransponder::registerMetadata()
+{
+ qRegisterMetaType(typeid(CTransponder).name());
+ qDBusRegisterMetaType();
+}
+
} // namespace
} // namespace
diff --git a/src/blackmisc/aviotransponder.h b/src/blackmisc/aviotransponder.h
index 50961eab7..477441f53 100644
--- a/src/blackmisc/aviotransponder.h
+++ b/src/blackmisc/aviotransponder.h
@@ -31,6 +31,7 @@ public:
ModeC = 12,
ModeS = 20
};
+
private:
qint32 m_transponderCode; //m_transponderCode = -1; // will cause assert / exception
this->validate(validate);
}
+
protected:
/*!
* \brief Are the set values valid / in range?
@@ -95,6 +97,18 @@ protected:
*/
virtual QString stringForConverter(bool i18n = false) const;
+ /*!
+ * \brief Stream to DBus <<
+ * \param argument
+ */
+ virtual void marshallToDbus(QDBusArgument &argument) const;
+
+ /*!
+ * \brief Stream from DBus >>
+ * \param argument
+ */
+ virtual void unmarshallFromDbus(const QDBusArgument &argument);
+
public:
/*!
* Default constructor
@@ -262,6 +276,7 @@ public:
if (!(s = transponder.validate(false))) transponder = CTransponder(); // reset to default
return s;
}
+
/*!
* Try to get a Transponder unit with given name and code. Returns true in case an object
* has been sucessfully created, otherwise returns a default object.
@@ -278,6 +293,7 @@ public:
if (!(s = transponder.validate(false))) transponder = CTransponder(); // reset to default
return s;
}
+
/*!
* \brief Transponder unit
* \param transponderCode
@@ -288,6 +304,7 @@ public:
{
return CTransponder("Transponder", transponderCode, mode);
}
+
/*!
* \brief Try to get Transponder unit
* \param transponder
@@ -312,6 +329,11 @@ public:
return CTransponder::tryGetTransponder(transponder, "Transponder", transponderCode, mode);
}
+ /*!
+ * \brief Register metadata of unit and quantity
+ */
+ static void registerMetadata();
+
};
} // namespace
diff --git a/src/blackmisc/avtrack.cpp b/src/blackmisc/avtrack.cpp
index c70aab144..4f9ed363f 100644
--- a/src/blackmisc/avtrack.cpp
+++ b/src/blackmisc/avtrack.cpp
@@ -16,9 +16,9 @@ namespace Aviation
/*
* Own implementation for streaming
*/
-QString CTrack::stringForConverter() const
+QString CTrack::stringForConverter(bool i18n) const
{
- QString s = CAngle::stringForConverter();
+ QString s = CAngle::stringForConverter(i18n);
return s.append(this->m_magnetic ? " magnetic" : " true");
}
@@ -50,5 +50,14 @@ bool CTrack::operator !=(const CTrack &otherTrack)
return !((*this) == otherTrack);
}
+/*!
+ * \brief Register metadata of unit and quantity
+ */
+void CTrack::registerMetadata()
+{
+ qRegisterMetaType(typeid(CTrack).name());
+ qDBusRegisterMetaType();
+}
+
} // namespace
} // namespace
diff --git a/src/blackmisc/avtrack.h b/src/blackmisc/avtrack.h
index f81725634..e93cc280f 100644
--- a/src/blackmisc/avtrack.h
+++ b/src/blackmisc/avtrack.h
@@ -27,7 +27,25 @@ protected:
* \brief Specific stream operation for Track
* \return
*/
- virtual QString stringForConverter() const;
+ virtual QString stringForConverter(bool i18n = false) const;
+
+ /*!
+ * \brief Stream to DBus <<
+ * \param argument
+ */
+ virtual void marshallToDbus(QDBusArgument &argument) const {
+ CAngle::marshallToDbus(argument);
+ argument << this->m_magnetic;
+ }
+
+ /*!
+ * \brief Stream from DBus >>
+ * \param argument
+ */
+ virtual void unmarshallFromDbus(const QDBusArgument &argument) {
+ CAngle::unmarshallFromDbus(argument);
+ argument >> this->m_magnetic;
+ }
public:
/*!
@@ -85,7 +103,10 @@ public:
*/
bool isMagneticTrack() const {
return this->m_magnetic;
+ QT_TRANSLATE_NOOP("Aviation", "magnetic");
+ QT_TRANSLATE_NOOP("Aviation", "true");
}
+
/*!
* \brief True Track?
* \return
@@ -93,10 +114,17 @@ public:
bool isTrueTrack() const {
return !this->m_magnetic;
}
+
+ /*!
+ * \brief Register metadata
+ */
+ static void registerMetadata();
};
} // namespace
} // namespace
+Q_DECLARE_METATYPE(BlackMisc::Aviation::CTrack)
+
#endif // BLACKMISC_AVTRACK_H
diff --git a/src/blackmisc/basestreamstringifier.h b/src/blackmisc/basestreamstringifier.h
index 5e69e1af8..14e6c8c06 100644
--- a/src/blackmisc/basestreamstringifier.h
+++ b/src/blackmisc/basestreamstringifier.h
@@ -153,7 +153,7 @@ protected:
}
/*!
- * \brief String for converter
+ * \brief String for QString conversion
* \param i18n
* \return
*/
diff --git a/src/blackmisc/blackmisc.pro b/src/blackmisc/blackmisc.pro
index 796b2071b..22a1e863c 100644
--- a/src/blackmisc/blackmisc.pro
+++ b/src/blackmisc/blackmisc.pro
@@ -23,4 +23,5 @@ TRANSLATIONS += translations/blackmisc_i18n_de.ts \
HEADERS += *.h
SOURCES += *.cpp
DESTDIR = ../../lib
-OTHER_FILES += $$TRANSLATIONS
+OTHER_FILES += $$TRANSLATIONS \
+ readme.txt
diff --git a/src/blackmisc/blackmiscfreefunctions.cpp b/src/blackmisc/blackmiscfreefunctions.cpp
index 77028ea2d..9d21ea7a4 100644
--- a/src/blackmisc/blackmiscfreefunctions.cpp
+++ b/src/blackmisc/blackmiscfreefunctions.cpp
@@ -33,6 +33,9 @@ void BlackMisc::Aviation::registerMetadata()
CAdfSystem::registerMetadata();
CAltitude::registerMetadata();
CAviationVerticalPositions::registerMetadata();
+ CTransponder::registerMetadata();
+ CHeading::registerMetadata();
+ CTrack::registerMetadata();
}
/*
diff --git a/src/blackmisc/blackmiscfreefunctions.h b/src/blackmisc/blackmiscfreefunctions.h
index 9cdf63641..4dce58ddd 100644
--- a/src/blackmisc/blackmiscfreefunctions.h
+++ b/src/blackmisc/blackmiscfreefunctions.h
@@ -13,6 +13,7 @@
/*!
* \brief Workaround, to call initResource from namespace
*/
+// cannot be declare within namespace, see docu
inline void initBlackMiscResources() { Q_INIT_RESOURCE(blackmisc); }
/*!
diff --git a/src/blackmisc/com_handler.cpp b/src/blackmisc/com_handler.cpp
index ec87385d7..0a95e7e43 100644
--- a/src/blackmisc/com_handler.cpp
+++ b/src/blackmisc/com_handler.cpp
@@ -100,8 +100,8 @@ namespace BlackMisc
/////////////////////////////////////////////////
data.resize(message_length);
+ // creates warning when compiled as RELEASE
qint32 bytes = stream.readRawData(data.data(), message_length);
-
Q_ASSERT (bytes == message_length);
Q_ASSERT (data.size() == message_length);
diff --git a/src/blackmisc/pqbase.cpp b/src/blackmisc/pqbase.cpp
index 3ebb7c286..774e268df 100644
--- a/src/blackmisc/pqbase.cpp
+++ b/src/blackmisc/pqbase.cpp
@@ -179,7 +179,7 @@ double CMeasurementUnit::valueRounded(double value, int digits) const
/*
* Rounded to QString
*/
-QString CMeasurementUnit::toQStringRounded(double value, int digits) const
+QString CMeasurementUnit::toQStringRounded(double value, int digits, bool /** i18n **/) const
{
if (digits < 0) digits = this->m_displayDigits;
double v = CMath::round(value, digits);
diff --git a/src/blackmisc/pqbase.h b/src/blackmisc/pqbase.h
index 61f6d8d77..e3aefaf9c 100644
--- a/src/blackmisc/pqbase.h
+++ b/src/blackmisc/pqbase.h
@@ -507,9 +507,10 @@ public:
* specialized formatting
* \param value
* \param digits
+ * \param i18n
* \return
*/
- virtual QString toQStringRounded(double value, int digits = -1) const;
+ virtual QString toQStringRounded(double value, int digits = -1, bool i18n = false) const;
/*!
* \brief Rounded value
diff --git a/src/blackmisc/pqphysicalquantity.h b/src/blackmisc/pqphysicalquantity.h
index 8f1551289..14d72e494 100644
--- a/src/blackmisc/pqphysicalquantity.h
+++ b/src/blackmisc/pqphysicalquantity.h
@@ -77,7 +77,7 @@ protected:
*/
virtual QString stringForConverter(bool i18n = false) const
{
- return this->unitValueRoundedWithUnit(i18n);
+ return this->unitValueRoundedWithUnit(-1, i18n);
}
/*!
diff --git a/src/blackmisc/pqunits.cpp b/src/blackmisc/pqunits.cpp
index cd143912e..90962792e 100644
--- a/src/blackmisc/pqunits.cpp
+++ b/src/blackmisc/pqunits.cpp
@@ -66,7 +66,7 @@ double CAngleUnit::conversionSexagesimalToSi(const CMeasurementUnit &, double va
/*
* Rounded to QString
*/
-QString CAngleUnit::toQStringRounded(double value, int digits) const
+QString CAngleUnit::toQStringRounded(double value, int digits, bool i18n) const
{
QString s;
if ((*this) == CAngleUnit::sexagesimalDeg())
@@ -76,8 +76,9 @@ QString CAngleUnit::toQStringRounded(double value, int digits) const
double mi = floor((value - de) * 100.0);
double se = floor((value - de - mi / 100.0) * 1000000) / 100.0;
QString ses = QLocale::system().toString(se, 'f', 2);
- s = QString::number(de).append(" ").append(QString::number(mi))
- .append("'").append(ses).append("\"");
+ s = QString::number(de);
+ s = s.append(i18n ? CAngleUnit::deg().getUnitName(true) : " ");
+ s = s.append(QString::number(mi)).append("'").append(ses).append("\"");
}
else
{
diff --git a/src/blackmisc/pqunits.h b/src/blackmisc/pqunits.h
index 1e3377403..e70564413 100644
--- a/src/blackmisc/pqunits.h
+++ b/src/blackmisc/pqunits.h
@@ -240,9 +240,10 @@ public:
* \brief Special conversion to QString for sexagesimal degrees.
* \param value
* \param digits
+ * \param i18n
* \return
*/
- virtual QString toQStringRounded(double value, int digits) const;
+ virtual QString toQStringRounded(double value, int digits = -1, bool i18n = false) const;
/*!
* \brief Radians
@@ -477,6 +478,7 @@ public:
{
static CMassUnit kg("kilogram", "kg", true, true, 1.0, CMeasurementPrefix::k(), 1);
return kg;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "kilogram");
}
/*!
@@ -487,6 +489,7 @@ public:
{
static CMassUnit g("gram", "g", true, false, 1.0 / 1000.0, CMeasurementPrefix::One(), 0);
return g;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "gram");
}
/*!
@@ -497,6 +500,7 @@ public:
{
static CMassUnit t("tonne", "t", false, false, 1000.0, CMeasurementPrefix::One(), 3);
return t;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "tonne");
}
/*!
@@ -507,6 +511,7 @@ public:
{
static CMassUnit lbs("pound", "lb", false, false, 0.45359237, CMeasurementPrefix::One(), 1);
return lbs;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "pound");
}
/*!
@@ -594,6 +599,7 @@ public:
{
static CPressureUnit Pa("pascal", "Pa", true);
return Pa;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "pascal");
}
/*!
@@ -604,6 +610,7 @@ public:
{
static CPressureUnit hPa("hectopascal", "hPa", true, CMeasurementPrefix::h().getFactor(), CMeasurementPrefix::h());
return hPa;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "hectopascal");
}
/*!
@@ -614,6 +621,7 @@ public:
{
static CPressureUnit psi("pounds per square inch", "psi", false, 6894.8, CMeasurementPrefix::One(), 2);
return psi;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "pounds per square inch");
}
/*!
@@ -624,6 +632,7 @@ public:
{
static CPressureUnit bar("bar", "bar", false, 1E5);
return bar;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "bar");
}
/*!
@@ -879,6 +888,7 @@ public:
{
static CSpeedUnit ms("meters/second", "m/s", true, false);
return ms;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "meters/second");
}
/*!
@@ -889,6 +899,7 @@ public:
{
static CSpeedUnit kts("knot", "kts", false, false, 1852.0 / 3600.0, CMeasurementPrefix::One(), 1);
return kts;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "knot");
}
/*!
@@ -899,6 +910,7 @@ public:
{
static CSpeedUnit NMh("nautical miles/hour", "NM/h", false, false, 1852.0 / 3600.0, CMeasurementPrefix::One(), 1);
return NMh;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "nautical miles/hour");
}
/*!
@@ -907,8 +919,9 @@ public:
*/
static const CSpeedUnit &ft_s()
{
- static CSpeedUnit fts("feet/seconds", "ft/s", false, false, 0.3048, CMeasurementPrefix::One(), 0);
+ static CSpeedUnit fts("feet/second", "ft/s", false, false, 0.3048, CMeasurementPrefix::One(), 0);
return fts;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "feet/second");
}
/*!
@@ -919,6 +932,7 @@ public:
{
static CSpeedUnit ftmin("feet/minute", "ft/min", false, false, 0.3048 / 60.0, CMeasurementPrefix::One(), 0);
return ftmin;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "feet/minute");
}
/*!
@@ -929,6 +943,7 @@ public:
{
static CSpeedUnit kmh("kilometers/hour", "km/h", false, false, 1.0 / 3.6, CMeasurementPrefix::One(), 1);
return kmh;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "kilometers/hour");
}
/*!
@@ -1015,6 +1030,7 @@ public:
{
static CTimeUnit s("second", "s", true, true, 1, CMeasurementPrefix::None(), 1);
return s;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "second");
}
/*!
@@ -1025,6 +1041,7 @@ public:
{
static CTimeUnit ms("millisecond", "ms", true, false, 1E-03, CMeasurementPrefix::m(), 0);
return ms;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "millisecond");
}
/*!
@@ -1035,6 +1052,7 @@ public:
{
static CTimeUnit h("hour", "h", false, false, 3600, CMeasurementPrefix::None(), 1);
return h;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "hour");
}
/*!
@@ -1045,6 +1063,7 @@ public:
{
static CTimeUnit min("minute", "min", false, false, 60, CMeasurementPrefix::None(), 2);
return min;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "minute");
}
/*!
@@ -1055,6 +1074,7 @@ public:
{
static CTimeUnit day("day", "d", false, false, 3600 * 24, CMeasurementPrefix::None(), 1);
return day;
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "day");
}
/*!
@@ -1138,9 +1158,9 @@ public:
*/
static const CAccelerationUnit &m_s2()
{
- static CAccelerationUnit ms2("meter/second^2", "m/s^2", true, false, 1, CMeasurementPrefix::None(), 1);
+ static CAccelerationUnit ms2("meters/second^2", "m/s^2", true, false, 1, CMeasurementPrefix::None(), 1);
return ms2;
- QT_TRANSLATE_NOOP("CMeasurementUnit", "meter/second^2");
+ QT_TRANSLATE_NOOP("CMeasurementUnit", "meters/second^2");
QT_TRANSLATE_NOOP("CMeasurementUnit", "m/s^2");
}
diff --git a/src/blackmisc/readme.txt b/src/blackmisc/readme.txt
new file mode 100644
index 000000000..9f0846c5e
--- /dev/null
+++ b/src/blackmisc/readme.txt
@@ -0,0 +1 @@
+I18N: lupdate -noobsolete blackmisc.pro
diff --git a/src/blackmisc/translations/blackmisc_i18n_de.qm b/src/blackmisc/translations/blackmisc_i18n_de.qm
index cef1adb5b..44c59b835 100644
Binary files a/src/blackmisc/translations/blackmisc_i18n_de.qm and b/src/blackmisc/translations/blackmisc_i18n_de.qm differ
diff --git a/src/blackmisc/translations/blackmisc_i18n_de.ts b/src/blackmisc/translations/blackmisc_i18n_de.ts
index b72c46b01..b1ddd7165 100644
--- a/src/blackmisc/translations/blackmisc_i18n_de.ts
+++ b/src/blackmisc/translations/blackmisc_i18n_de.ts
@@ -1,6 +1,21 @@
+
+ Aviation
+
+
+ magnetic
+ Magnetischer Kurs
+ missweisend
+
+
+
+ true
+ Rechtweisend Kurs (TH)
+ rechtweisend
+
+
CMeasurementUnit
@@ -39,80 +54,175 @@
Statute Meile
-
+
radian
Bogenmaß
-
+
degree
Grad
-
+
deg
°
-
+
segadecimal degree
Segadezimal
-
+
+ kilogram
+
+
+
+
+ gram
+
+
+
+
+ tonne
+
+
+
+
+ pound
+
+
+
+
+ pascal
+
+
+
+
+ hectopascal
+
+
+
+
+ pounds per square inch
+
+
+
+
+ bar
+
+
+
+
millibar
-
-
+
+
inch of mercury 0C
Inch Hg bei 0°C
-
+
Kelvin
-
+
centigrade
Grad Celcsius
-
+
C
°C
-
+
Fahrenheit
Fahrenheit
-
+
F
°F
-
- meter/second^2
+
+ meters/second
+ Meter/Sekunde
+
+
+
+ knot
+ Knoten
+
+
+
+ nautical miles/hour
+
+
+
+
+ feet/second
+
+
+
+
+ feet/minute
+ Fuß/Minute
+
+
+
+ kilometers/hour
+ Kilometer/Stunde
+
+
+
+ second
+ Sekunde
+
+
+
+ millisecond
+ Millisekunde
+
+
+
+ hour
+ Stunde
+
+
+
+ minute
+ Minute
+
+
+
+ day
+ Tag
+
+
+
+ meters/second^2
Meter/Sekunde²
-
+
m/s^2
- m/s²
+ m/s²
-
+
ft/s^2
ft/s²
-
+
feet/second^2
- Fuß/Sekunde^2
+ Fuß/Sekunde²
diff --git a/src/blackmisc/translations/blackmisc_i18n_en.ts b/src/blackmisc/translations/blackmisc_i18n_en.ts
index 902c5cd7e..99ff1dfef 100644
--- a/src/blackmisc/translations/blackmisc_i18n_en.ts
+++ b/src/blackmisc/translations/blackmisc_i18n_en.ts
@@ -1,6 +1,19 @@
+
+ Aviation
+
+
+ magnetic
+
+
+
+
+ true
+
+
+
CMeasurementUnit
@@ -39,78 +52,173 @@
-
+
radian
-
+
degree
-
+
deg
°
-
+
segadecimal degree
-
+
+ kilogram
+
+
+
+
+ gram
+
+
+
+
+ tonne
+
+
+
+
+ pound
+
+
+
+
+ pascal
+
+
+
+
+ hectopascal
+
+
+
+
+ pounds per square inch
+
+
+
+
+ bar
+
+
+
+
millibar
-
-
+
+
inch of mercury 0C
-
+
Kelvin
-
+
centigrade
-
+
C
°C
-
+
Fahrenheit
-
+
F
°F
-
- meter/second^2
+
+ meters/second
-
- m/s^2
- m/s²
+
+ knot
+
-
+
+ nautical miles/hour
+
+
+
+
+ feet/second
+
+
+
+
+ feet/minute
+
+
+
+
+ kilometers/hour
+
+
+
+
+ second
+
+
+
+
+ millisecond
+
+
+
+
+ hour
+
+
+
+
+ minute
+
+
+
+
+ day
+
+
+
+
+ meters/second^2
+
+
+
+
+ m/s^2
+ m/s²
+
+
+
ft/s^2
ft/s²
-
+
feet/second^2
diff --git a/src/blackmisc/translations/blackmisc_i18n_fr.ts b/src/blackmisc/translations/blackmisc_i18n_fr.ts
index 6cee692ea..ca61ab8a9 100644
--- a/src/blackmisc/translations/blackmisc_i18n_fr.ts
+++ b/src/blackmisc/translations/blackmisc_i18n_fr.ts
@@ -1,12 +1,25 @@
+
+ Aviation
+
+
+ magnetic
+
+
+
+
+ true
+
+
+
CMeasurementUnit
meter
- mètre
+ mètre
@@ -31,7 +44,7 @@
mile
-
+
@@ -39,78 +52,173 @@
-
+
radian
-
+
degree
degré
-
+
deg
°
-
+
segadecimal degree
segadecimal
-
+
+ kilogram
+
+
+
+
+ gram
+
+
+
+
+ tonne
+
+
+
+
+ pound
+
+
+
+
+ pascal
+
+
+
+
+ hectopascal
+
+
+
+
+ pounds per square inch
+
+
+
+
+ bar
+
+
+
+
millibar
-
-
+
+
inch of mercury 0C
-
+
Kelvin
-
+
centigrade
-
+
C
°C
-
+
Fahrenheit
Fahrenheit
-
+
F
°F
-
- meter/second^2
+
+ meters/second
-
+
+ knot
+
+
+
+
+ nautical miles/hour
+
+
+
+
+ feet/second
+
+
+
+
+ feet/minute
+
+
+
+
+ kilometers/hour
+
+
+
+
+ second
+
+
+
+
+ millisecond
+
+
+
+
+ hour
+
+
+
+
+ minute
+
+
+
+
+ day
+
+
+
+
+ meters/second^2
+
+
+
+
m/s^2
m/s²
-
+
ft/s^2
ft/s²
-
+
feet/second^2