Add convenience wrapper for log translation

This commit is contained in:
BlackMark 2020-07-04 17:42:11 +02:00
parent a848ed4894
commit f22108fe03
2 changed files with 42 additions and 2 deletions

View File

@ -0,0 +1,39 @@
#pragma once
#include <utility>
#include <QByteArray>
#include <QObject>
#include <QString>
namespace detail {
class LogTr {
public:
LogTr() = delete;
LogTr(const char* strLiteral) : m_string(QObject::tr(strLiteral)) {}
operator const char *()
{
m_utf8String = m_string.toUtf8();
return m_utf8String.constData();
}
template<typename... Args>
LogTr& arg(Args&&... args)
{
m_string = m_string.arg(std::forward<Args>(args)...);
return *this;
}
private:
QString m_string;
QByteArray m_utf8String;
};
} // namespace detail
detail::LogTr ltr(const char* formatString)
{
return detail::LogTr(formatString);
}

View File

@ -4,6 +4,7 @@
#include <QtGlobal> #include <QtGlobal>
#include "log_to_file.hpp" #include "log_to_file.hpp"
#include "log_tr.hpp"
#include "main_window.hpp" #include "main_window.hpp"
#include "sensor_driver.hpp" #include "sensor_driver.hpp"
@ -21,10 +22,10 @@ int main(int argc, char* argv[])
const auto sensorRange = sensor.readRange(); const auto sensorRange = sensor.readRange();
const auto sensorValues = sensor.readValues(); const auto sensorValues = sensor.readValues();
qInfo("Sensor range: [%d,%d]", sensorRange.first, sensorRange.second); qInfo(ltr("Sensor range: [%1,%2]").arg(sensorRange.first).arg(sensorRange.second));
for(size_t i = 0; i < sensorValues.size(); ++i) { for(size_t i = 0; i < sensorValues.size(); ++i) {
qInfo("Sensor value %d: %d", i, sensorValues[i]); qInfo(ltr("Sensor value %1: %2").arg(i).arg(sensorValues[i]));
} }
} }