mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-30 10:29:24 +00:00
Merge branch 'dev_linphone_qt' of git.linphone.org:linphone-desktop-private into dev_linphone_qt
This commit is contained in:
commit
c3f2d69310
9 changed files with 103 additions and 64 deletions
|
|
@ -4,6 +4,10 @@
|
|||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Linphone</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Linphone</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>linphone</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
|
|
|
|||
|
|
@ -76,6 +76,14 @@
|
|||
<source>commandLineOptionCmdArg</source>
|
||||
<translation>command line</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>commandLineOptionHelp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>commandLineOptionVersion</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AssistantAbstractView</name>
|
||||
|
|
|
|||
|
|
@ -76,6 +76,14 @@
|
|||
<source>commandLineOptionCmdArg</source>
|
||||
<translation>ligne de commande</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>commandLineOptionHelp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>commandLineOptionVersion</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AssistantAbstractView</name>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Name=Linphone
|
||||
GenericName=Web-phone
|
||||
Comment=Linphone is a web-phone
|
||||
GenericName=SIP Phone
|
||||
Comment=Linphone is a libre SIP client
|
||||
Type=Application
|
||||
Exec=linphone %u
|
||||
Icon=linphone
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
* Author: Ronan Abhamon
|
||||
*/
|
||||
|
||||
#include <QCommandLineParser>
|
||||
#include <QDir>
|
||||
#include <QFileSelector>
|
||||
#include <QMenu>
|
||||
|
|
@ -74,44 +75,33 @@ App::App (int &argc, char *argv[]) : SingleApplication(argc, argv, true) {
|
|||
|
||||
parseArgs();
|
||||
|
||||
// Initialize logger. (Do not do this before this point because the
|
||||
// application has to be created for the logs to be put in the correct
|
||||
// directory.)
|
||||
Logger::init();
|
||||
if (mParser->isSet("verbose"))
|
||||
Logger::getInstance()->setVerbose(true);
|
||||
|
||||
// List available locales.
|
||||
for (const auto &locale : QDir(LANGUAGES_PATH).entryList())
|
||||
mAvailableLocales << QLocale(locale);
|
||||
|
||||
// Init locale.
|
||||
mTranslator = new DefaultTranslator(this);
|
||||
initLocale();
|
||||
|
||||
// Try to use preferred locale.
|
||||
QString locale = ::Utils::coreStringToAppString(
|
||||
linphone::Config::newWithFactory(
|
||||
Paths::getConfigFilePath(mParser.value("config"), false), "")->getString(
|
||||
SettingsModel::UI_SECTION, "locale", ""
|
||||
)
|
||||
);
|
||||
parseArgs();
|
||||
|
||||
if (!locale.isEmpty() && installLocale(*this, *mTranslator, QLocale(locale))) {
|
||||
mLocale = locale;
|
||||
qInfo() << QStringLiteral("Use preferred locale: %1").arg(locale);
|
||||
return;
|
||||
}
|
||||
|
||||
// Try to use system locale.
|
||||
QLocale sysLocale = QLocale::system();
|
||||
if (installLocale(*this, *mTranslator, sysLocale)) {
|
||||
mLocale = sysLocale.name();
|
||||
qInfo() << QStringLiteral("Use system locale: %1").arg(mLocale);
|
||||
return;
|
||||
}
|
||||
|
||||
// Use english.
|
||||
mLocale = DEFAULT_LOCALE;
|
||||
if (!installLocale(*this, *mTranslator, QLocale(mLocale)))
|
||||
qFatal("Unable to install default translator.");
|
||||
qInfo() << QStringLiteral("Use default locale: %1").arg(mLocale);
|
||||
if (mParser->isSet("help"))
|
||||
mParser->showHelp();
|
||||
if (mParser->isSet("version"))
|
||||
mParser->showVersion();
|
||||
}
|
||||
|
||||
App::~App () {
|
||||
qInfo() << QStringLiteral("Destroying app...");
|
||||
delete mEngine;
|
||||
delete mParser;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
@ -167,7 +157,7 @@ void App::initContentApp () {
|
|||
}
|
||||
|
||||
// Init core.
|
||||
CoreManager::init(this, mParser.value("config"));
|
||||
CoreManager::init(this, mParser->value("config"));
|
||||
|
||||
// Init engine content.
|
||||
mEngine = new QQmlApplicationEngine();
|
||||
|
|
@ -193,7 +183,7 @@ void App::initContentApp () {
|
|||
createNotifier();
|
||||
|
||||
// Load splashscreen.
|
||||
bool selfTest = mParser.isSet("self-test");
|
||||
bool selfTest = mParser->isSet("self-test");
|
||||
if (!selfTest)
|
||||
activeSplashScreen(this);
|
||||
// Set a self test limit.
|
||||
|
|
@ -218,7 +208,7 @@ void App::initContentApp () {
|
|||
// -----------------------------------------------------------------------------
|
||||
|
||||
QString App::getCommandArgument () {
|
||||
return mParser.value("cmd");
|
||||
return mParser->value("cmd");
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
@ -282,10 +272,15 @@ bool App::hasFocus () const {
|
|||
// -----------------------------------------------------------------------------
|
||||
|
||||
void App::parseArgs () {
|
||||
mParser.setApplicationDescription(tr("applicationDescription"));
|
||||
mParser.addHelpOption();
|
||||
mParser.addVersionOption();
|
||||
mParser.addOptions({
|
||||
if (mParser)
|
||||
delete mParser;
|
||||
|
||||
mParser = new QCommandLineParser();
|
||||
|
||||
mParser->setApplicationDescription(tr("applicationDescription"));
|
||||
mParser->addOptions({
|
||||
{ { "h", "help" }, tr("commandLineOptionHelp") },
|
||||
{ { "v", "version" }, tr("commandLineOptionVersion") },
|
||||
{ "config", tr("commandLineOptionConfig"), tr("commandLineOptionConfigArg") },
|
||||
#ifndef Q_OS_MACOS
|
||||
{ "iconified", tr("commandLineOptionIconified") },
|
||||
|
|
@ -295,15 +290,7 @@ void App::parseArgs () {
|
|||
{ { "c", "cmd" }, tr("commandLineOptionCmd"), tr("commandLineOptionCmdArg") }
|
||||
});
|
||||
|
||||
mParser.process(*this);
|
||||
|
||||
// Initialize logger. (Do not do this before this point because the
|
||||
// application has to be created for the logs to be put in the correct
|
||||
// directory.)
|
||||
Logger::init();
|
||||
if (mParser.isSet("verbose")) {
|
||||
Logger::getInstance()->setVerbose(true);
|
||||
}
|
||||
mParser->process(*this);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
@ -448,6 +435,36 @@ void App::createNotifier () {
|
|||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
void App::initLocale () {
|
||||
// Try to use preferred locale.
|
||||
QString locale = ::Utils::coreStringToAppString(
|
||||
linphone::Config::newWithFactory(
|
||||
Paths::getConfigFilePath(mParser->value("config"), false), "")->getString(
|
||||
SettingsModel::UI_SECTION, "locale", ""
|
||||
)
|
||||
);
|
||||
|
||||
if (!locale.isEmpty() && installLocale(*this, *mTranslator, QLocale(locale))) {
|
||||
mLocale = locale;
|
||||
qInfo() << QStringLiteral("Use preferred locale: %1").arg(locale);
|
||||
return;
|
||||
}
|
||||
|
||||
// Try to use system locale.
|
||||
QLocale sysLocale = QLocale::system();
|
||||
if (installLocale(*this, *mTranslator, sysLocale)) {
|
||||
mLocale = sysLocale.name();
|
||||
qInfo() << QStringLiteral("Use system locale: %1").arg(mLocale);
|
||||
return;
|
||||
}
|
||||
|
||||
// Use english.
|
||||
mLocale = DEFAULT_LOCALE;
|
||||
if (!installLocale(*this, *mTranslator, QLocale(mLocale)))
|
||||
qFatal("Unable to install default translator.");
|
||||
qInfo() << QStringLiteral("Use default locale: %1").arg(mLocale);
|
||||
}
|
||||
|
||||
QString App::getConfigLocale () const {
|
||||
return ::Utils::coreStringToAppString(
|
||||
CoreManager::getInstance()->getCore()->getConfig()->getString(
|
||||
|
|
@ -482,7 +499,7 @@ void App::openAppAfterInit () {
|
|||
else
|
||||
setTrayIcon();
|
||||
|
||||
if (!mParser.isSet("iconified"))
|
||||
if (!mParser->isSet("iconified"))
|
||||
smartShowWindow(mainWindow);
|
||||
#else
|
||||
smartShowWindow(mainWindow);
|
||||
|
|
@ -508,7 +525,7 @@ void App::openAppAfterInit () {
|
|||
// -----------------------------------------------------------------------------
|
||||
|
||||
void App::quit () {
|
||||
if (mParser.isSet("self-test"))
|
||||
if (mParser->isSet("self-test"))
|
||||
cout << tr("selfTestResult").toStdString() << endl;
|
||||
|
||||
QApplication::quit();
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
#ifndef APP_H_
|
||||
#define APP_H_
|
||||
|
||||
#include <QCommandLineParser>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QQuickWindow>
|
||||
|
||||
|
|
@ -36,6 +35,7 @@
|
|||
|
||||
class Cli;
|
||||
class DefaultTranslator;
|
||||
class QCommandLineParser;
|
||||
|
||||
class App : public SingleApplication {
|
||||
Q_OBJECT;
|
||||
|
|
@ -96,6 +96,8 @@ private:
|
|||
void setTrayIcon ();
|
||||
void createNotifier ();
|
||||
|
||||
void initLocale ();
|
||||
|
||||
QString getConfigLocale () const;
|
||||
void setConfigLocale (const QString &locale);
|
||||
|
||||
|
|
@ -111,7 +113,7 @@ private:
|
|||
return qVersion();
|
||||
}
|
||||
|
||||
QCommandLineParser mParser;
|
||||
QCommandLineParser *mParser = nullptr;
|
||||
|
||||
QVariantList mAvailableLocales;
|
||||
QString mLocale;
|
||||
|
|
|
|||
|
|
@ -69,8 +69,8 @@ Item {
|
|||
|
||||
Keys.onEscapePressed: searchBox.closeMenu()
|
||||
Keys.onReturnPressed: {
|
||||
searchBox.closeMenu()
|
||||
searchBox.enterPressed()
|
||||
searchBox.closeMenu()
|
||||
}
|
||||
|
||||
onActiveFocusChanged: {
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ import Linphone.Styles 1.0
|
|||
// =============================================================================
|
||||
|
||||
SearchBox {
|
||||
id: searchBar
|
||||
id: searchBox
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
readonly property alias isOpen: searchBar._isOpen
|
||||
readonly property alias isOpen: searchBox._isOpen
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ SearchBox {
|
|||
|
||||
onEnterPressed: {
|
||||
var sipAddress = view.interpretableSipAddress
|
||||
return sipAddress.length > 0 && searchBar.launchCall(sipAddress)
|
||||
return sipAddress.length > 0 && searchBox.launchCall(sipAddress)
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
|
@ -40,37 +40,37 @@ SearchBox {
|
|||
actions: [{
|
||||
icon: 'video_call',
|
||||
handler: function (entry) {
|
||||
searchBar.closeMenu()
|
||||
searchBar.launchVideoCall(entry.sipAddress)
|
||||
searchBox.closeMenu()
|
||||
searchBox.launchVideoCall(entry.sipAddress)
|
||||
}
|
||||
}, {
|
||||
icon: 'call',
|
||||
handler: function (entry) {
|
||||
searchBar.closeMenu()
|
||||
searchBar.launchCall(entry.sipAddress)
|
||||
searchBox.closeMenu()
|
||||
searchBox.launchCall(entry.sipAddress)
|
||||
}
|
||||
}, {
|
||||
icon: 'chat',
|
||||
handler: function (entry) {
|
||||
searchBar.closeMenu()
|
||||
searchBar.launchChat(entry.sipAddress)
|
||||
searchBox.closeMenu()
|
||||
searchBox.launchChat(entry.sipAddress)
|
||||
}
|
||||
}]
|
||||
|
||||
headerButtonDescription: qsTr('addContact')
|
||||
headerButtonIcon: 'contact_add'
|
||||
headerButtonAction: (function (sipAddress) {
|
||||
searchBar.closeMenu()
|
||||
searchBar.addContact(sipAddress)
|
||||
searchBox.closeMenu()
|
||||
searchBox.addContact(sipAddress)
|
||||
})
|
||||
|
||||
genSipAddress: searchBar.filter
|
||||
genSipAddress: searchBox.filter
|
||||
|
||||
model: SipAddressesProxyModel {}
|
||||
|
||||
onEntryClicked: {
|
||||
searchBar.closeMenu()
|
||||
searchBar.entryClicked(entry)
|
||||
searchBox.closeMenu()
|
||||
searchBox.entryClicked(entry)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 3841f9c417019448118208291470232f7e20d60f
|
||||
Subproject commit 4c291e2c5a32711a1176459d74ed405cf225f706
|
||||
Loading…
Add table
Reference in a new issue