refactor: change ui translation mechanism

This commit is contained in:
2024-04-22 14:57:47 +03:00
parent ba60be932a
commit 95572364c1
47 changed files with 7531 additions and 5017 deletions

View File

@ -28,7 +28,7 @@ file(RELATIVE_PATH SUBPROJECT_WEATHER_JSON ${CMAKE_SOURCE_DIR} ${SUBPROJECT_WEAT
# prepare
configure_file(${SUBPROJECT_WEATHER_JSON_IN} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_WEATHER_JSON})
qt6_wrap_ui(SUBPROJECT_UI_HEADER ${SUBPROJECT_UI})
qt6_wrap_ui(SUBPROJECT_UI_HEADER ${SUBPROJECT_UI} OPTIONS --translate ui_i18n)
add_library(${SUBPROJECT} STATIC ${SUBPROJECT_SOURCE} ${SUBPROJECT_HEADER} ${SUBPROJECT_UI_HEADER})
target_link_libraries(${SUBPROJECT} ${Qt_LIBRARIES} ${Kf6_LIBRARIES})

View File

@ -86,8 +86,6 @@ private:
QCronScheduler *m_scheduler = nullptr;
QString m_filePath = "";
int m_times = 0;
// FIXME find a better way to do it
virtual void translate(void *_ui) = 0;
// properties
int m_apiVersion = 0;
bool m_active = true;

View File

@ -18,8 +18,6 @@
#include "awdatetimeformatter.h"
#include "ui_awdatetimeformatter.h"
#include <KI18n/KLocalizedString>
#include <QDateTime>
#include <QSettings>
@ -110,7 +108,6 @@ int AWDateTimeFormatter::showConfiguration(QWidget *_parent, const QVariant &_ar
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWDateTimeFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -157,14 +154,3 @@ void AWDateTimeFormatter::initLocale()
{
m_locale = m_translate ? QLocale::system() : QLocale::c();
}
void AWDateTimeFormatter::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::AWDateTimeFormatter *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type"));
ui->label_format->setText(i18n("Format"));
ui->checkBox_translate->setText(i18n("Translate strings"));
}

View File

@ -20,6 +20,7 @@
#include <QLocale>
#include "awabstractformatter.h"
#include "awtranslation.h"
class AWDateTimeFormatter : public AWAbstractFormatter
@ -45,7 +46,6 @@ public slots:
private:
void initLocale();
void translate(void *_ui) override;
// properties
QLocale m_locale;
QString m_format = "";

View File

@ -18,8 +18,6 @@
#include "awfloatformatter.h"
#include "ui_awfloatformatter.h"
#include <KI18n/KLocalizedString>
#include <QSettings>
#include "awdebug.h"
@ -198,7 +196,6 @@ int AWFloatFormatter::showConfiguration(QWidget *_parent, const QVariant &_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWFloatFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -254,20 +251,3 @@ void AWFloatFormatter::writeConfiguration() const
settings.sync();
}
void AWFloatFormatter::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::AWFloatFormatter *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type"));
ui->label_format->setText(i18n("Format"));
ui->label_precision->setText(i18n("Precision"));
ui->label_width->setText(i18n("Width"));
ui->label_fill->setText(i18n("Fill char"));
ui->checkBox_forceWidth->setText(i18n("Force width"));
ui->label_multiplier->setText(i18n("Multiplier"));
ui->label_summand->setText(i18n("Summand"));
}

View File

@ -18,6 +18,7 @@
#pragma once
#include "awabstractformatter.h"
#include "awtranslation.h"
class AWFloatFormatter : public AWAbstractFormatter
@ -57,7 +58,6 @@ public slots:
void writeConfiguration() const override;
private:
void translate(void *_ui) override;
// properties
int m_count = 0;
QChar m_fillChar = QChar();

View File

@ -18,8 +18,6 @@
#include "awjsonformatter.h"
#include "ui_awjsonformatter.h"
#include <KI18n/KLocalizedString>
#include <QJsonDocument>
#include <QSettings>
@ -108,7 +106,6 @@ int AWJsonFormatter::showConfiguration(QWidget *_parent, const QVariant &args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWJsonFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -177,14 +174,3 @@ QVariant AWJsonFormatter::getFromMap(const QVariant &_value, const QString &_key
return _value.toMap()[_key];
}
void AWJsonFormatter::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::AWJsonFormatter *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type"));
ui->label_path->setText(i18n("Path"));
}

View File

@ -18,6 +18,7 @@
#pragma once
#include "awabstractformatter.h"
#include "awtranslation.h"
class AWJsonFormatter : public AWAbstractFormatter
@ -42,7 +43,6 @@ private:
static QVariant getFromJson(const QVariant &_value, const QVariant &_element);
static QVariant getFromList(const QVariant &_value, int _index);
static QVariant getFromMap(const QVariant &_value, const QString &_key);
void translate(void *_ui) override;
// properties
QVariantList m_path;
};

View File

@ -18,8 +18,6 @@
#include "awlistformatter.h"
#include "ui_awlistformatter.h"
#include <KI18n/KLocalizedString>
#include <QSettings>
#include "awdebug.h"
@ -129,7 +127,6 @@ int AWListFormatter::showConfiguration(QWidget *_parent, const QVariant &_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWListFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -173,16 +170,3 @@ void AWListFormatter::writeConfiguration() const
settings.sync();
}
void AWListFormatter::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::AWListFormatter *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type"));
ui->label_filter->setText(i18n("Filter"));
ui->label_separator->setText(i18n("Separator"));
ui->checkBox_sorted->setText(i18n("Sort"));
}

View File

@ -18,6 +18,7 @@
#pragma once
#include "awabstractformatter.h"
#include "awtranslation.h"
class AWListFormatter : public AWAbstractFormatter
@ -45,7 +46,6 @@ public slots:
void writeConfiguration() const override;
private:
void translate(void *_ui) override;
// properties
QString m_filter = "";
QString m_separator = "";

View File

@ -18,8 +18,6 @@
#include "awnoformatter.h"
#include "ui_awnoformatter.h"
#include <KI18n/KLocalizedString>
#include "awdebug.h"
@ -61,7 +59,6 @@ int AWNoFormatter::showConfiguration(QWidget *_parent, const QVariant &_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWNoFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -82,13 +79,3 @@ int AWNoFormatter::showConfiguration(QWidget *_parent, const QVariant &_args)
return ret;
}
void AWNoFormatter::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::AWNoFormatter *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type"));
}

View File

@ -18,6 +18,7 @@
#pragma once
#include "awabstractformatter.h"
#include "awtranslation.h"
class AWNoFormatter : public AWAbstractFormatter
@ -31,7 +32,4 @@ public:
public slots:
int showConfiguration(QWidget *_parent, const QVariant &_args) override;
private:
void translate(void *_ui) override;
};

View File

@ -18,8 +18,6 @@
#include "awscriptformatter.h"
#include "ui_awscriptformatter.h"
#include <KI18n/KLocalizedString>
#include <QJSEngine>
#include <QSettings>
@ -145,7 +143,6 @@ int AWScriptFormatter::showConfiguration(QWidget *_parent, const QVariant &_args
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWScriptFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -154,7 +151,7 @@ int AWScriptFormatter::showConfiguration(QWidget *_parent, const QVariant &_args
ui->checkBox_hasReturn->setCheckState(hasReturn() ? Qt::Checked : Qt::Unchecked);
ui->textEdit_code->setPlainText(code());
int ret = dialog->exec();
auto ret = dialog->exec();
if (ret == 1) {
setName(ui->lineEdit_name->text());
setComment(ui->lineEdit_comment->text());
@ -202,16 +199,3 @@ void AWScriptFormatter::initProgram()
qCInfo(LOG_LIB) << "Create JS engine with code" << m_program;
}
void AWScriptFormatter::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::AWScriptFormatter *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type"));
ui->checkBox_appendCode->setText(i18n("Append code"));
ui->checkBox_hasReturn->setText(i18n("Has return"));
ui->label_code->setText(i18n("Code"));
}

View File

@ -18,6 +18,7 @@
#pragma once
#include "awabstractformatter.h"
#include "awtranslation.h"
class AWScriptFormatter : public AWAbstractFormatter
@ -48,7 +49,6 @@ public slots:
private:
void initProgram();
void translate(void *_ui) override;
// properties
bool m_appendCode = true;
QString m_code = "";

View File

@ -18,8 +18,6 @@
#include "awstringformatter.h"
#include "ui_awstringformatter.h"
#include <KI18n/KLocalizedString>
#include <QSettings>
#include "awdebug.h"
@ -128,7 +126,6 @@ int AWStringFormatter::showConfiguration(QWidget *_parent, const QVariant &_args
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWStringFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -172,16 +169,3 @@ void AWStringFormatter::writeConfiguration() const
settings.sync();
}
void AWStringFormatter::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::AWStringFormatter *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type"));
ui->label_width->setText(i18n("Width"));
ui->label_fill->setText(i18n("Fill char"));
ui->checkBox_forceWidth->setText(i18n("Force width"));
}

View File

@ -18,6 +18,7 @@
#pragma once
#include "awabstractformatter.h"
#include "awtranslation.h"
class AWStringFormatter : public AWAbstractFormatter
@ -45,7 +46,6 @@ public slots:
void writeConfiguration() const override;
private:
void translate(void *_ui) override;
// properties
int m_count = 0;
QChar m_fillChar = QChar();

View File

@ -18,8 +18,6 @@
#include "extnetworkrequest.h"
#include "ui_extnetworkrequest.h"
#include <KI18n/KLocalizedString>
#include <QSettings>
#include <qreplytimeout/qreplytimeout.h>
@ -118,7 +116,6 @@ int ExtNetworkRequest::showConfiguration(QWidget *_parent, const QVariant &_args
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtNetworkRequest();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -185,18 +182,3 @@ void ExtNetworkRequest::sendRequest()
auto reply = m_manager->get(QNetworkRequest(m_url));
new QReplyTimeout(reply, REQUEST_TIMEOUT);
}
void ExtNetworkRequest::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::ExtNetworkRequest *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag"));
ui->label_url->setText(i18n("URL"));
ui->checkBox_active->setText(i18n("Active"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_socket->setText(i18n("Socket"));
ui->label_interval->setText(i18n("Interval"));
}

View File

@ -20,6 +20,7 @@
#include <QNetworkReply>
#include "abstractextitem.h"
#include "awtranslation.h"
class ExtNetworkRequest : public AbstractExtItem
@ -51,7 +52,6 @@ private:
QNetworkAccessManager *m_manager = nullptr;
QUrl m_url;
bool m_isRunning = false;
void translate(void *_ui) override;
// properties
QString m_stringUrl = "https://httpbin.org/get";
// values

View File

@ -18,8 +18,6 @@
#include "extquotes.h"
#include "ui_extquotes.h"
#include <KI18n/KLocalizedString>
#include <QSettings>
#include <qreplytimeout/qreplytimeout.h>
@ -125,7 +123,6 @@ int ExtQuotes::showConfiguration(QWidget *_parent, const QVariant &_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtQuotes();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -207,21 +204,3 @@ void ExtQuotes::initProvider()
return m_providerObject->initUrl(ticker());
}
void ExtQuotes::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::ExtQuotes *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag"));
ui->label->setText(i18n("<html><head/><body><p>Use Stooq ticker to get quotes for the instrument. Refer to <a "
"href=\"https://stooq.com/\"><span style=\" text-decoration: underline; "
"color:#0057ae;\">https://stooq.com/</span></a></p></body></html>"));
ui->label_ticker->setText(i18n("Ticker"));
ui->checkBox_active->setText(i18n("Active"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_socket->setText(i18n("Socket"));
ui->label_interval->setText(i18n("Interval"));
}

View File

@ -20,6 +20,7 @@
#include <QNetworkReply>
#include "abstractextitem.h"
#include "awtranslation.h"
class AbstractQuotesProvider;
@ -54,7 +55,6 @@ private:
QNetworkAccessManager *m_manager = nullptr;
bool m_isRunning = false;
void initProvider();
void translate(void *_ui) override;
// properties
QString m_ticker = "EURUSD=X";
// values

View File

@ -18,8 +18,6 @@
#include "extscript.h"
#include "ui_extscript.h"
#include <KI18n/KLocalizedString>
#include <QDir>
#include <QJsonDocument>
#include <QSettings>
@ -258,7 +256,6 @@ int ExtScript::showConfiguration(QWidget *_parent, const QVariant &_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtScript();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -352,23 +349,3 @@ void ExtScript::updateValue()
m_values[tag("custom")] = applyFilters(result);
emit(dataReceived(m_values));
}
void ExtScript::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::ExtScript *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag"));
ui->label_command->setText(i18n("Command"));
ui->checkBox_active->setText(i18n("Active"));
ui->label_redirect->setText(i18n("Redirect"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_socket->setText(i18n("Socket"));
ui->label_interval->setText(i18n("Interval"));
ui->groupBox_filters->setTitle(i18n("Additional filters"));
ui->checkBox_colorFilter->setText(i18n("Wrap colors"));
ui->checkBox_linesFilter->setText(i18n("Wrap new lines"));
ui->checkBox_spaceFilter->setText(i18n("Wrap spaces"));
}

View File

@ -20,6 +20,7 @@
#include <QProcess>
#include "abstractextitem.h"
#include "awtranslation.h"
class ExtScript : public AbstractExtItem
@ -65,7 +66,6 @@ private slots:
private:
QProcess *m_process = nullptr;
void translate(void *_ui) override;
// properties
QString m_executable = "/usr/bin/true";
QStringList m_filters = QStringList();

View File

@ -18,8 +18,6 @@
#include "extupgrade.h"
#include "ui_extupgrade.h"
#include <KI18n/KLocalizedString>
#include <QSettings>
#include "awdebug.h"
@ -152,7 +150,6 @@ int ExtUpgrade::showConfiguration(QWidget *_parent, const QVariant &_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtUpgrade();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -226,20 +223,3 @@ void ExtUpgrade::updateValue()
emit(dataReceived(m_values));
}
void ExtUpgrade::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::ExtUpgrade *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag"));
ui->label_command->setText(i18n("Command"));
ui->label_filter->setText(i18n("Filter"));
ui->checkBox_active->setText(i18n("Active"));
ui->label_null->setText(i18n("Null"));
ui->label_socket->setText(i18n("Socket"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_interval->setText(i18n("Interval"));
}

View File

@ -20,6 +20,7 @@
#include <QProcess>
#include "abstractextitem.h"
#include "awtranslation.h"
class ExtUpgrade : public AbstractExtItem
@ -55,7 +56,6 @@ private slots:
private:
QProcess *m_process = nullptr;
void translate(void *_ui) override;
// properties
QString m_executable = "/usr/bin/true";
QString m_filter = "";

View File

@ -18,8 +18,6 @@
#include "extweather.h"
#include "ui_extweather.h"
#include <KI18n/KLocalizedString>
#include <QDir>
#include <QJsonDocument>
#include <QSettings>
@ -266,7 +264,6 @@ int ExtWeather::showConfiguration(QWidget *_parent, const QVariant &_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtWeather();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment());
@ -366,22 +363,3 @@ void ExtWeather::initProvider()
return m_providerObject->initUrl(city(), country(), ts());
}
void ExtWeather::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::ExtWeather *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag"));
ui->label_provider->setText(i18n("Provider"));
ui->label_city->setText(i18n("City"));
ui->label_country->setText(i18n("Country"));
ui->label_timestamp->setText(i18n("Timestamp"));
ui->checkBox_image->setText(i18n("Use images"));
ui->checkBox_active->setText(i18n("Active"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_socket->setText(i18n("Socket"));
ui->label_interval->setText(i18n("Interval"));
}

View File

@ -20,13 +20,10 @@
#include <QNetworkReply>
#include "abstractextitem.h"
#include "awtranslation.h"
class AbstractWeatherProvider;
namespace Ui
{
class ExtWeather;
}
class ExtWeather : public AbstractExtItem
{
@ -78,7 +75,6 @@ private:
QNetworkAccessManager *m_manager = nullptr;
bool m_isRunning = false;
void initProvider();
void translate(void *_ui) override;
// properties
QString m_city = "London";
QString m_country = "uk";

View File

@ -18,8 +18,6 @@
#include "graphicalitem.h"
#include "ui_graphicalitem.h"
#include <KI18n/KLocalizedString>
#include <QBuffer>
#include <QColorDialog>
#include <QDir>
@ -437,7 +435,6 @@ int GraphicalItem::showConfiguration(QWidget *_parent, const QVariant &_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::GraphicalItem();
ui->setupUi(dialog);
translate(ui);
connect(ui->checkBox_custom, &QCheckBox::stateChanged, [ui](const int state) { changeValue(ui, state); });
connect(ui->comboBox_type, &QComboBox::currentIndexChanged, [ui](const int state) { changeCountState(ui, state); });
@ -591,32 +588,3 @@ void GraphicalItem::changeValue(Ui::GraphicalItem *_ui, const int _state)
_ui->widget_value->setHidden(_state != Qt::Unchecked);
_ui->widget_customValue->setHidden(_state == Qt::Unchecked);
}
void GraphicalItem::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::GraphicalItem *>(_ui);
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag"));
ui->checkBox_custom->setText(i18n("Use custom formula"));
ui->label_value->setText(i18n("Value"));
ui->label_customValue->setText(i18n("Value"));
ui->label_max->setText(i18n("Max value"));
ui->label_min->setText(i18n("Min value"));
ui->label_activeImageType->setText(i18n("Active filling type"));
ui->label_inactiveImageType->setText(i18n("Inctive filling type"));
ui->label_type->setText(i18n("Type"));
ui->label_count->setText(i18n("Points count"));
ui->label_direction->setText(i18n("Direction"));
ui->label_height->setText(i18n("Height"));
ui->label_width->setText(i18n("Width"));
ui->comboBox_activeImageType->clear();
ui->comboBox_activeImageType->addItem(i18n("color"));
ui->comboBox_activeImageType->addItem(i18n("image"));
ui->comboBox_inactiveImageType->clear();
ui->comboBox_inactiveImageType->addItem(i18n("color"));
ui->comboBox_inactiveImageType->addItem(i18n("image"));
}

View File

@ -20,6 +20,7 @@
#include <QColor>
#include "abstractextitem.h"
#include "awtranslation.h"
class GraphicalItemHelper;
@ -103,7 +104,6 @@ private:
GraphicalItemHelper *m_helper = nullptr;
QGraphicsScene *m_scene = nullptr;
QGraphicsView *m_view = nullptr;
void translate(void *_ui) override;
// properties
QString m_bar = "cpu";
int m_count = 100;