mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-23 22:58:15 +00:00
feat(app/DefaultTranslator): check linphone contexts
This commit is contained in:
parent
e689cb46a5
commit
1d289809c9
4 changed files with 33 additions and 3 deletions
|
|
@ -38,6 +38,7 @@ public slots:
|
|||
|
||||
private:
|
||||
App (int &argc, char **argv);
|
||||
~App () = default;
|
||||
|
||||
void initContentApp ();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,35 @@
|
|||
#include <QDirIterator>
|
||||
#include <QtDebug>
|
||||
|
||||
#include "DefaultTranslator.hpp"
|
||||
|
||||
// ===================================================================
|
||||
|
||||
DefaultTranslator::DefaultTranslator () {
|
||||
QDirIterator it(":", QDirIterator::Subdirectories);
|
||||
while (it.hasNext()) {
|
||||
QFileInfo info(it.next());
|
||||
|
||||
if (info.suffix() == "qml") {
|
||||
QString basename = info.baseName();
|
||||
|
||||
if (m_contexts.contains(basename))
|
||||
qWarning() << QStringLiteral("QML file `%1` already exists in context list.").arg(basename);
|
||||
else
|
||||
m_contexts << basename;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QString DefaultTranslator::translate (
|
||||
const char *context,
|
||||
const char *source_text,
|
||||
const char *disambiguation,
|
||||
int n
|
||||
) const {
|
||||
if (!m_contexts.contains(context))
|
||||
return "";
|
||||
|
||||
QString translation = QTranslator::translate(context, source_text, disambiguation, n);
|
||||
|
||||
if (translation.length() == 0)
|
||||
|
|
|
|||
|
|
@ -1,17 +1,25 @@
|
|||
#ifndef DEFAULT_TRANSLATOR_H_
|
||||
#define DEFAULT_TRANSLATOR_H_
|
||||
|
||||
#include <QSet>
|
||||
#include <QTranslator>
|
||||
|
||||
// ===================================================================
|
||||
|
||||
class DefaultTranslator : public QTranslator {
|
||||
public:
|
||||
DefaultTranslator ();
|
||||
~DefaultTranslator () = default;
|
||||
|
||||
QString translate (
|
||||
const char *context,
|
||||
const char *source_text,
|
||||
const char *disambiguation = Q_NULLPTR,
|
||||
int n = -1
|
||||
) const override;
|
||||
|
||||
private:
|
||||
QSet<QString> m_contexts;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include <algorithm>
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QSet>
|
||||
#include <linphone++/linphone.hh>
|
||||
|
||||
#include "../../utils.hpp"
|
||||
|
|
@ -89,17 +90,17 @@ void TimelineModel::init_entries () {
|
|||
}
|
||||
|
||||
// Insert calls events.
|
||||
QHash<QString, bool> address_done;
|
||||
QSet<QString> address_done;
|
||||
for (const auto &call_log : core->getCallLogs()) {
|
||||
// Get a sip uri to check.
|
||||
QString address = Utils::linphoneStringToQString(
|
||||
call_log->getRemoteAddress()->asString()
|
||||
);
|
||||
|
||||
if (address_done.value(address))
|
||||
if (address_done.contains(address))
|
||||
continue; // Already used.
|
||||
|
||||
address_done[address] = true;
|
||||
address_done << address;
|
||||
|
||||
// Make a new map.
|
||||
QVariantMap map;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue