mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-24 07:08:07 +00:00
feat(app): clean some pieces of code and improve build (cli, logger and paths)
This commit is contained in:
parent
41d21d89ea
commit
b05e003d68
5 changed files with 129 additions and 116 deletions
|
|
@ -331,6 +331,8 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake" "${CMAKE_CURRENT_BIN
|
|||
# Build.
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
include_directories(src/)
|
||||
|
||||
find_package(Qt5 COMPONENTS ${QT5_PACKAGES} REQUIRED)
|
||||
find_package(Qt5 COMPONENTS ${QT5_PACKAGES_OPTIONAL} QUIET)
|
||||
find_package(Qt5 COMPONENTS Test REQUIRED)
|
||||
|
|
|
|||
|
|
@ -22,12 +22,13 @@
|
|||
|
||||
#include <iostream>
|
||||
|
||||
#include "../../components/core/CoreManager.hpp"
|
||||
#include "../../utils/Utils.hpp"
|
||||
#include "../App.hpp"
|
||||
#include "app/App.hpp"
|
||||
#include "components/core/CoreManager.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
|
||||
#include "Cli.hpp"
|
||||
#include "iostream"
|
||||
|
||||
// =============================================================================
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
|
@ -52,7 +53,7 @@ static void cliJoinConference (QHash<QString, QString> &args) {
|
|||
|
||||
{
|
||||
shared_ptr<linphone::Address> address = core->getPrimaryContactParsed();
|
||||
address->setDisplayName(::Utils::appStringToCoreString(args.take("display-name")));
|
||||
address->setDisplayName(Utils::appStringToCoreString(args.take("display-name")));
|
||||
core->setPrimaryContact(address->asString());
|
||||
}
|
||||
|
||||
|
|
@ -73,8 +74,8 @@ static void cliJoinConferenceAs (QHash<QString, QString> &args) {
|
|||
|
||||
const shared_ptr<const linphone::Address> currentSipAddress = proxyConfig->getIdentityAddress();
|
||||
const shared_ptr<const linphone::Address> askedSipAddress = linphone::Factory::get()->createAddress(
|
||||
::Utils::appStringToCoreString(fromSipAddress)
|
||||
);
|
||||
Utils::appStringToCoreString(fromSipAddress)
|
||||
);
|
||||
if (!currentSipAddress->weakEqual(askedSipAddress)) {
|
||||
qWarning() << QStringLiteral("Guest sip address `%1` doesn't match with default proxy config.")
|
||||
.arg(fromSipAddress);
|
||||
|
|
@ -90,7 +91,7 @@ static void cliInitiateConference (QHash<QString, QString> &args) {
|
|||
|
||||
// Check identity.
|
||||
{
|
||||
shared_ptr<linphone::Address> address = core->interpretUrl(::Utils::appStringToCoreString(args["sip-address"]));
|
||||
shared_ptr<linphone::Address> address = core->interpretUrl(Utils::appStringToCoreString(args["sip-address"]));
|
||||
if (!address || address->getUsername().empty()) {
|
||||
qWarning() << QStringLiteral("Unable to parse invalid sip address.");
|
||||
return;
|
||||
|
|
@ -107,8 +108,8 @@ static void cliInitiateConference (QHash<QString, QString> &args) {
|
|||
const string identity = proxyConfig->getIdentityAddress()->asStringUriOnly();
|
||||
if (sipAddress != identity) {
|
||||
qWarning() << QStringLiteral("Received different sip address from identity : `%1 != %2`.")
|
||||
.arg(::Utils::coreStringToAppString(identity))
|
||||
.arg(::Utils::coreStringToAppString(sipAddress));
|
||||
.arg(Utils::coreStringToAppString(identity))
|
||||
.arg(Utils::coreStringToAppString(sipAddress));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -119,7 +120,7 @@ static void cliInitiateConference (QHash<QString, QString> &args) {
|
|||
|
||||
App *app = App::getInstance();
|
||||
if (conference) {
|
||||
if (conference->getId() == ::Utils::appStringToCoreString(id)) {
|
||||
if (conference->getId() == Utils::appStringToCoreString(id)) {
|
||||
qInfo() << QStringLiteral("Conference `%1` already exists.").arg(id);
|
||||
// TODO: Set the view to the "waiting call view".
|
||||
app->smartShowWindow(app->getCallsWindow());
|
||||
|
|
@ -127,13 +128,13 @@ static void cliInitiateConference (QHash<QString, QString> &args) {
|
|||
}
|
||||
|
||||
qInfo() << QStringLiteral("Remove existing conference with id: `%1`.")
|
||||
.arg(::Utils::coreStringToAppString(conference->getId()));
|
||||
.arg(Utils::coreStringToAppString(conference->getId()));
|
||||
core->terminateConference();
|
||||
}
|
||||
|
||||
qInfo() << QStringLiteral("Create conference with id: `%1`.").arg(id);
|
||||
conference = core->createConferenceWithParams(core->createConferenceParams());
|
||||
conference->setId(::Utils::appStringToCoreString(id));
|
||||
conference->setId(Utils::appStringToCoreString(id));
|
||||
|
||||
if (core->enterConference() == -1) {
|
||||
qWarning() << QStringLiteral("Unable to join created conference: `%1`.").arg(id);
|
||||
|
|
@ -221,7 +222,7 @@ static string multilineIndent (const QString &str, int indentationNumber = 0) {
|
|||
out += indentedWord(word, indentedTextCurPos, lineLength, padding);
|
||||
out += "\n";
|
||||
|
||||
return ::Utils::appStringToCoreString(out);
|
||||
return Utils::appStringToCoreString(out);
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
|
|
@ -264,7 +265,7 @@ void Cli::Command::execute (QHash<QString, QString> &args) const {
|
|||
(*mFunction)(args);
|
||||
else {
|
||||
Function f = mFunction;
|
||||
::Utils::connectOnce(coreManager->getHandlers().get(), &CoreHandlers::coreStarted, coreManager, [f, args] {
|
||||
Utils::connectOnce(coreManager->getHandlers().get(), &CoreHandlers::coreStarted, coreManager, [f, args] {
|
||||
QHash<QString, QString> fuckConst = args;
|
||||
(*f)(fuckConst);
|
||||
});
|
||||
|
|
@ -275,11 +276,11 @@ void Cli::Command::executeUri (const shared_ptr<linphone::Address> &address) con
|
|||
QHash<QString, QString> args;
|
||||
// TODO: check if there is too much headers.
|
||||
for (const auto &argName : mArgsScheme.keys()) {
|
||||
const string header = address->getHeader(::Utils::appStringToCoreString(argName));
|
||||
const string header = address->getHeader(Utils::appStringToCoreString(argName));
|
||||
args[argName] = QByteArray::fromBase64(QByteArray(header.c_str(), int(header.length())));
|
||||
}
|
||||
address->clean();
|
||||
args["sip-address"] = ::Utils::coreStringToAppString(address->asStringUriOnly());
|
||||
args["sip-address"] = Utils::coreStringToAppString(address->asStringUriOnly());
|
||||
execute(args);
|
||||
}
|
||||
|
||||
|
|
@ -315,17 +316,17 @@ QRegExp Cli::mRegExpArgs("(?:(?:([\\w-]+)\\s*)=\\s*(?:\"([^\"\\\\]*(?:\\\\.[^\"\
|
|||
QRegExp Cli::mRegExpFunctionName("^\\s*([a-z-]+)\\s*");
|
||||
|
||||
QMap<QString, Cli::Command> Cli::mCommands = {
|
||||
createCommand("show", QT_TR_NOOP("showFunctionDescription"), ::cliShow),
|
||||
createCommand("call", QT_TR_NOOP("callFunctionDescription"), ::cliCall, {
|
||||
createCommand("show", QT_TR_NOOP("showFunctionDescription"), cliShow),
|
||||
createCommand("call", QT_TR_NOOP("callFunctionDescription"), cliCall, {
|
||||
{ "sip-address", {} }
|
||||
}),
|
||||
createCommand("initiate-conference", QT_TR_NOOP("initiateConferenceFunctionDescription"), ::cliInitiateConference, {
|
||||
createCommand("initiate-conference", QT_TR_NOOP("initiateConferenceFunctionDescription"), cliInitiateConference, {
|
||||
{ "sip-address", {} }, { "conference-id", {} }
|
||||
}),
|
||||
createCommand("join-conference", QT_TR_NOOP("joinConferenceFunctionDescription"), ::cliJoinConference, {
|
||||
createCommand("join-conference", QT_TR_NOOP("joinConferenceFunctionDescription"), cliJoinConference, {
|
||||
{ "sip-address", {} }, { "conference-id", {} }, { "display-name", {} }
|
||||
}),
|
||||
createCommand("join-conference-as", QT_TR_NOOP("joinConferenceAsFunctionDescription"), ::cliJoinConferenceAs, {
|
||||
createCommand("join-conference-as", QT_TR_NOOP("joinConferenceAsFunctionDescription"), cliJoinConferenceAs, {
|
||||
{ "sip-address", {} }, { "conference-id", {} }, { "guest-sip-address", {} }
|
||||
})
|
||||
};
|
||||
|
|
@ -334,7 +335,7 @@ QMap<QString, Cli::Command> Cli::mCommands = {
|
|||
|
||||
void Cli::executeCommand (const QString &command, CommandFormat *format) {
|
||||
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(
|
||||
::Utils::appStringToCoreString(command)
|
||||
Utils::appStringToCoreString(command)
|
||||
);
|
||||
|
||||
// Execute cli command.
|
||||
|
|
@ -362,13 +363,13 @@ void Cli::executeCommand (const QString &command, CommandFormat *format) {
|
|||
if (scheme == validScheme)
|
||||
goto success;
|
||||
qWarning() << QStringLiteral("Not a valid uri: `%1` Unsupported scheme: `%2`.")
|
||||
.arg(command).arg(::Utils::coreStringToAppString(scheme));
|
||||
.arg(command).arg(Utils::coreStringToAppString(scheme));
|
||||
return;
|
||||
|
||||
success:
|
||||
const QString functionName = ::Utils::coreStringToAppString(address->getHeader("method")).isEmpty()
|
||||
const QString functionName = Utils::coreStringToAppString(address->getHeader("method")).isEmpty()
|
||||
? QStringLiteral("call")
|
||||
: ::Utils::coreStringToAppString(address->getHeader("method"));
|
||||
: Utils::coreStringToAppString(address->getHeader("method"));
|
||||
|
||||
if (!functionName.isEmpty() && !mCommands.contains(functionName)) {
|
||||
qWarning() << QStringLiteral("This command doesn't exist: `%1`.").arg(functionName);
|
||||
|
|
|
|||
|
|
@ -21,11 +21,12 @@
|
|||
*/
|
||||
|
||||
#include <bctoolbox/logging.h>
|
||||
#include <linphone++/linphone.hh>
|
||||
#include <QDateTime>
|
||||
#include <QThread>
|
||||
|
||||
#include "../../components/settings/SettingsModel.hpp"
|
||||
#include "../../utils/Utils.hpp"
|
||||
#include "components/settings/SettingsModel.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
|
||||
#include "Logger.hpp"
|
||||
|
||||
|
|
@ -45,15 +46,15 @@
|
|||
#define RESET ""
|
||||
#endif // if defined(__linux__) || defined(__APPLE__)
|
||||
|
||||
#define QT_DOMAIN "qt"
|
||||
|
||||
#define MAX_LOGS_COLLECTION_SIZE 10485760 /* 10MB. */
|
||||
|
||||
#define SRC_PATTERN "/linphone-desktop/src/"
|
||||
// =============================================================================
|
||||
|
||||
using namespace std;
|
||||
|
||||
// =============================================================================
|
||||
namespace {
|
||||
constexpr char cQtDomain[] = "qt";
|
||||
constexpr size_t cMaxLogsCollectionSize = 10485760; // 10MB.
|
||||
constexpr char cSrcPattern[] = "/linphone-desktop/src/";
|
||||
}
|
||||
|
||||
QMutex Logger::mMutex;
|
||||
|
||||
|
|
@ -81,24 +82,25 @@ private:
|
|||
if (!mLogger->isVerbose())
|
||||
return;
|
||||
|
||||
using LogLevel = linphone::LogLevel;
|
||||
const char *format;
|
||||
switch (level) {
|
||||
case linphone::LogLevel::LogLevelDebug:
|
||||
case LogLevel::LogLevelDebug:
|
||||
format = GREEN "[%s][Debug]" YELLOW "Core:%s: " RESET "%s\n";
|
||||
break;
|
||||
case linphone::LogLevel::LogLevelTrace:
|
||||
case LogLevel::LogLevelTrace:
|
||||
format = BLUE "[%s][Trace]" YELLOW "Core:%s: " RESET "%s\n";
|
||||
break;
|
||||
case linphone::LogLevel::LogLevelMessage:
|
||||
case LogLevel::LogLevelMessage:
|
||||
format = BLUE "[%s][Info]" YELLOW "Core:%s: " RESET "%s\n";
|
||||
break;
|
||||
case linphone::LogLevel::LogLevelWarning:
|
||||
case LogLevel::LogLevelWarning:
|
||||
format = RED "[%s][Warning]" YELLOW "Core:%s: " RESET "%s\n";
|
||||
break;
|
||||
case linphone::LogLevel::LogLevelError:
|
||||
case LogLevel::LogLevelError:
|
||||
format = RED "[%s][Error]" YELLOW "Core:%s: " RESET "%s\n";
|
||||
break;
|
||||
case linphone::LogLevel::LogLevelFatal:
|
||||
case LogLevel::LogLevelFatal:
|
||||
format = RED "[%s][Fatal]" YELLOW "Core:%s: " RESET "%s\n";
|
||||
break;
|
||||
}
|
||||
|
|
@ -106,12 +108,12 @@ private:
|
|||
fprintf(
|
||||
stderr,
|
||||
format,
|
||||
::getFormattedCurrentTime().constData(),
|
||||
getFormattedCurrentTime().constData(),
|
||||
domain.empty() ? domain.c_str() : "linphone",
|
||||
message.c_str()
|
||||
);
|
||||
|
||||
if (level == linphone::LogLevel::LogLevelFatal)
|
||||
if (level == LogLevel::LogLevelFatal)
|
||||
terminate();
|
||||
};
|
||||
|
||||
|
|
@ -148,10 +150,10 @@ void Logger::log (QtMsgType type, const QMessageLogContext &context, const QStri
|
|||
QByteArray contextArr;
|
||||
{
|
||||
const char *file = context.file;
|
||||
const char *pos = file ? ::Utils::rstrstr(file, SRC_PATTERN) : file;
|
||||
const char *pos = file ? Utils::rstrstr(file, cSrcPattern) : file;
|
||||
|
||||
contextArr = QStringLiteral("%1:%2: ")
|
||||
.arg(pos ? pos + sizeof(SRC_PATTERN) - 1 : file)
|
||||
.arg(pos ? pos + sizeof(cSrcPattern) - 1 : file)
|
||||
.arg(context.line)
|
||||
.toLocal8Bit();
|
||||
contextStr = contextArr.constData();
|
||||
|
|
@ -161,12 +163,12 @@ void Logger::log (QtMsgType type, const QMessageLogContext &context, const QStri
|
|||
#endif // ifdef QT_MESSAGELOGCONTEXT
|
||||
|
||||
QByteArray localMsg = msg.toLocal8Bit();
|
||||
QByteArray dateTime = ::getFormattedCurrentTime();
|
||||
QByteArray dateTime = getFormattedCurrentTime();
|
||||
|
||||
mMutex.lock();
|
||||
|
||||
fprintf(stderr, format, dateTime.constData(), QThread::currentThread(), contextStr, localMsg.constData());
|
||||
bctbx_log(QT_DOMAIN, level, "QT: %s%s", contextStr, localMsg.constData());
|
||||
bctbx_log(cQtDomain, level, "QT: %s%s", contextStr, localMsg.constData());
|
||||
|
||||
mMutex.unlock();
|
||||
|
||||
|
|
@ -201,8 +203,8 @@ void Logger::init (const shared_ptr<linphone::Config> &config) {
|
|||
loggingService->setListener(make_shared<LinphoneLogger>(mInstance));
|
||||
}
|
||||
|
||||
linphone::Core::setLogCollectionPath(::Utils::appStringToCoreString(folder));
|
||||
linphone::Core::setLogCollectionMaxFileSize(MAX_LOGS_COLLECTION_SIZE);
|
||||
linphone::Core::setLogCollectionPath(Utils::appStringToCoreString(folder));
|
||||
linphone::Core::setLogCollectionMaxFileSize(cMaxLogsCollectionSize);
|
||||
|
||||
mInstance->enable(SettingsModel::getLogsEnabled(config));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,11 +23,17 @@
|
|||
#ifndef LOGGER_H_
|
||||
#define LOGGER_H_
|
||||
|
||||
#include <linphone++/linphone.hh>
|
||||
#include <memory>
|
||||
|
||||
#include <QMutex>
|
||||
|
||||
// =============================================================================
|
||||
|
||||
namespace linphone {
|
||||
class Config;
|
||||
class LoggingService;
|
||||
}
|
||||
|
||||
class Logger {
|
||||
public:
|
||||
~Logger () = default;
|
||||
|
|
|
|||
|
|
@ -26,31 +26,33 @@
|
|||
#include <QStandardPaths>
|
||||
#include <QtDebug>
|
||||
|
||||
#include "../../utils/Utils.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "Paths.hpp"
|
||||
|
||||
#define PATH_ASSISTANT_CONFIG "/linphone/assistant/"
|
||||
#define PATH_AVATARS "/avatars/"
|
||||
#define PATH_CAPTURES "/Linphone/captures/"
|
||||
#define PATH_LOGS "/logs/"
|
||||
#define PATH_PLUGINS "/plugins/"
|
||||
#define PATH_THUMBNAILS "/thumbnails/"
|
||||
#define PATH_USER_CERTIFICATES "/usr-crt/"
|
||||
|
||||
#define PATH_CALL_HISTORY_LIST "/call-history.db"
|
||||
#define PATH_CONFIG "/linphonerc"
|
||||
#define PATH_FACTORY_CONFIG "/linphone/linphonerc-factory"
|
||||
#define PATH_ROOT_CA "/linphone/rootca.pem"
|
||||
#define PATH_FRIENDS_LIST "/friends.db"
|
||||
#define PATH_MESSAGE_HISTORY_LIST "/message-history.db"
|
||||
#define PATH_ZRTP_SECRETS "/zidcache"
|
||||
// =============================================================================
|
||||
|
||||
using namespace std;
|
||||
|
||||
// =============================================================================
|
||||
namespace {
|
||||
constexpr char cPathAssistantConfig[] = "/linphone/assistant/";
|
||||
constexpr char cPathAvatars[] = "/avatars/";
|
||||
constexpr char cPathCaptures[] = "/Linphone/captures/";
|
||||
constexpr char cPathLogs[] = "/logs/";
|
||||
constexpr char cPathPlugins[] = "/plugins/";
|
||||
constexpr char cPathThumbnails[] = "/thumbnails/";
|
||||
constexpr char cPathUserCertificates[] = "/usr-crt/";
|
||||
|
||||
constexpr char cPathCallHistoryList[] = "/call-history.db";
|
||||
constexpr char cPathConfig[] = "/linphonerc";
|
||||
constexpr char cPathFactoryConfig[] = "/linphone/linphonerc-factory";
|
||||
constexpr char cPathRootCa[] = "/linphone/rootca.pem";
|
||||
constexpr char cPathFriendsList[] = "/friends.db";
|
||||
constexpr char cPathMessageHistoryList[] = "/message-history.db";
|
||||
constexpr char cPathZrtpSecrets[] = "/zidcache";
|
||||
}
|
||||
|
||||
static inline bool dirPathExists (const QString &path) {
|
||||
QDir dir(path);
|
||||
|
|
@ -59,7 +61,7 @@ static inline bool dirPathExists (const QString &path) {
|
|||
|
||||
static inline bool filePathExists (const QString &path) {
|
||||
QFileInfo info(path);
|
||||
if (!::dirPathExists(info.path()))
|
||||
if (!dirPathExists(info.path()))
|
||||
return false;
|
||||
|
||||
QFile file(path);
|
||||
|
|
@ -74,7 +76,7 @@ static inline void ensureDirPathExists (const QString &path) {
|
|||
|
||||
static inline void ensureFilePathExists (const QString &path) {
|
||||
QFileInfo info(path);
|
||||
::ensureDirPathExists(info.path());
|
||||
ensureDirPathExists(info.path());
|
||||
|
||||
QFile file(path);
|
||||
if (!file.exists() && !file.open(QIODevice::ReadWrite))
|
||||
|
|
@ -82,21 +84,21 @@ static inline void ensureFilePathExists (const QString &path) {
|
|||
}
|
||||
|
||||
static inline string getReadableDirPath (const QString &dirname) {
|
||||
return ::Utils::appStringToCoreString(QDir::toNativeSeparators(dirname));
|
||||
return Utils::appStringToCoreString(QDir::toNativeSeparators(dirname));
|
||||
}
|
||||
|
||||
static inline string getWritableDirPath (const QString &dirname) {
|
||||
::ensureDirPathExists(dirname);
|
||||
return ::getReadableDirPath(dirname);
|
||||
ensureDirPathExists(dirname);
|
||||
return getReadableDirPath(dirname);
|
||||
}
|
||||
|
||||
static inline string getReadableFilePath (const QString &filename) {
|
||||
return ::Utils::appStringToCoreString(QDir::toNativeSeparators(filename));
|
||||
return Utils::appStringToCoreString(QDir::toNativeSeparators(filename));
|
||||
}
|
||||
|
||||
static inline string getWritableFilePath (const QString &filename) {
|
||||
::ensureFilePathExists(filename);
|
||||
return ::getReadableFilePath(filename);
|
||||
ensureFilePathExists(filename);
|
||||
return getReadableFilePath(filename);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
@ -112,134 +114,134 @@ static inline QDir getAppPackageDir () {
|
|||
}
|
||||
|
||||
static inline QString getAppPackageDataDirPath () {
|
||||
QDir dir = ::getAppPackageDir();
|
||||
QDir dir = getAppPackageDir();
|
||||
dir.cd("share");
|
||||
return dir.absolutePath();
|
||||
}
|
||||
|
||||
static inline QString getAppPackageMsPluginsDirPath () {
|
||||
QDir dir = ::getAppPackageDir();
|
||||
QDir dir = getAppPackageDir();
|
||||
dir.cd(MSPLUGINS_DIR);
|
||||
return dir.absolutePath();
|
||||
}
|
||||
|
||||
static inline QString getAppAssistantConfigDirPath () {
|
||||
return ::getAppPackageDataDirPath() + PATH_ASSISTANT_CONFIG;
|
||||
return getAppPackageDataDirPath() + cPathAssistantConfig;
|
||||
}
|
||||
|
||||
static inline QString getAppConfigFilePath () {
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + PATH_CONFIG;
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + cPathConfig;
|
||||
}
|
||||
|
||||
static inline QString getAppCallHistoryFilePath () {
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + PATH_CALL_HISTORY_LIST;
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + cPathCallHistoryList;
|
||||
}
|
||||
|
||||
static inline QString getAppFactoryConfigFilePath () {
|
||||
return ::getAppPackageDataDirPath() + PATH_FACTORY_CONFIG;
|
||||
return getAppPackageDataDirPath() + cPathFactoryConfig;
|
||||
}
|
||||
|
||||
static inline QString getAppPluginsDirPath () {
|
||||
return ::getAppPackageDataDirPath() + PATH_PLUGINS;
|
||||
return getAppPackageDataDirPath() + cPathPlugins;
|
||||
}
|
||||
|
||||
static inline QString getAppRootCaFilePath () {
|
||||
return ::getAppPackageDataDirPath() + PATH_ROOT_CA;
|
||||
return getAppPackageDataDirPath() + cPathRootCa;
|
||||
}
|
||||
|
||||
static inline QString getAppFriendsFilePath () {
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + PATH_FRIENDS_LIST;
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + cPathFriendsList;
|
||||
}
|
||||
|
||||
static inline QString getAppMessageHistoryFilePath () {
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + PATH_MESSAGE_HISTORY_LIST;
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + cPathMessageHistoryList;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
bool Paths::filePathExists (const string &path) {
|
||||
return ::filePathExists(Utils::coreStringToAppString(path));
|
||||
return filePathExists(Utils::coreStringToAppString(path));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
string Paths::getAssistantConfigDirPath () {
|
||||
return ::getReadableDirPath(::getAppAssistantConfigDirPath());
|
||||
return getReadableDirPath(getAppAssistantConfigDirPath());
|
||||
}
|
||||
|
||||
string Paths::getAvatarsDirPath () {
|
||||
return ::getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + PATH_AVATARS);
|
||||
return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + cPathAvatars);
|
||||
}
|
||||
|
||||
string Paths::getCallHistoryFilePath () {
|
||||
return ::getWritableFilePath(::getAppCallHistoryFilePath());
|
||||
return getWritableFilePath(getAppCallHistoryFilePath());
|
||||
}
|
||||
|
||||
string Paths::getCapturesDirPath () {
|
||||
return ::getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + PATH_CAPTURES);
|
||||
return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + cPathCaptures);
|
||||
}
|
||||
|
||||
string Paths::getConfigFilePath (const QString &configPath, bool writable) {
|
||||
const QString path = configPath.isEmpty()
|
||||
? ::getAppConfigFilePath()
|
||||
? getAppConfigFilePath()
|
||||
: QFileInfo(configPath).absoluteFilePath();
|
||||
|
||||
return writable ? ::getWritableFilePath(path) : ::getReadableFilePath(path);
|
||||
}
|
||||
|
||||
string Paths::getFactoryConfigFilePath () {
|
||||
return ::getReadableFilePath(::getAppFactoryConfigFilePath());
|
||||
return getReadableFilePath(getAppFactoryConfigFilePath());
|
||||
}
|
||||
|
||||
string Paths::getFriendsListFilePath () {
|
||||
return ::getWritableFilePath(::getAppFriendsFilePath());
|
||||
return getWritableFilePath(getAppFriendsFilePath());
|
||||
}
|
||||
|
||||
string Paths::getDownloadDirPath () {
|
||||
return ::getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::DownloadLocation));
|
||||
return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::DownloadLocation));
|
||||
}
|
||||
|
||||
string Paths::getLogsDirPath () {
|
||||
return ::getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + PATH_LOGS);
|
||||
return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + cPathLogs);
|
||||
}
|
||||
|
||||
string Paths::getMessageHistoryFilePath () {
|
||||
return ::getWritableFilePath(::getAppMessageHistoryFilePath());
|
||||
return getWritableFilePath(getAppMessageHistoryFilePath());
|
||||
}
|
||||
|
||||
string Paths::getPackageDataDirPath () {
|
||||
return ::getReadableDirPath(::getAppPackageDataDirPath());
|
||||
return getReadableDirPath(getAppPackageDataDirPath());
|
||||
}
|
||||
|
||||
string Paths::getPackageMsPluginsDirPath () {
|
||||
return ::getReadableDirPath(::getAppPackageMsPluginsDirPath());
|
||||
return getReadableDirPath(getAppPackageMsPluginsDirPath());
|
||||
}
|
||||
|
||||
string Paths::getPluginsDirPath () {
|
||||
return ::getReadableDirPath(::getAppPluginsDirPath());
|
||||
return getReadableDirPath(getAppPluginsDirPath());
|
||||
}
|
||||
|
||||
string Paths::getRootCaFilePath () {
|
||||
return ::getReadableFilePath(::getAppRootCaFilePath());
|
||||
return getReadableFilePath(getAppRootCaFilePath());
|
||||
}
|
||||
|
||||
string Paths::getThumbnailsDirPath () {
|
||||
return ::getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + PATH_THUMBNAILS);
|
||||
return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + cPathThumbnails);
|
||||
}
|
||||
|
||||
string Paths::getUserCertificatesDirPath () {
|
||||
return ::getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + PATH_USER_CERTIFICATES);
|
||||
return getWritableDirPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + cPathUserCertificates);
|
||||
}
|
||||
|
||||
string Paths::getZrtpSecretsFilePath () {
|
||||
return ::getWritableFilePath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + PATH_ZRTP_SECRETS);
|
||||
return getWritableFilePath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + cPathZrtpSecrets);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static void migrateFile (const QString &oldPath, const QString &newPath) {
|
||||
QFileInfo info(newPath);
|
||||
::ensureDirPathExists(info.path());
|
||||
ensureDirPathExists(info.path());
|
||||
|
||||
if (QFile::copy(oldPath, newPath)) {
|
||||
QFile::remove(oldPath);
|
||||
|
|
@ -251,7 +253,7 @@ static void migrateFile (const QString &oldPath, const QString &newPath) {
|
|||
|
||||
static void migrateConfigurationFile (const QString &oldPath, const QString &newPath) {
|
||||
QFileInfo info(newPath);
|
||||
::ensureDirPathExists(info.path());
|
||||
ensureDirPathExists(info.path());
|
||||
|
||||
if (QFile::copy(oldPath, newPath)) {
|
||||
QFile oldFile(oldPath);
|
||||
|
|
@ -268,30 +270,30 @@ static void migrateConfigurationFile (const QString &oldPath, const QString &new
|
|||
}
|
||||
|
||||
void Paths::migrate () {
|
||||
QString newPath = ::getAppConfigFilePath();
|
||||
QString newPath = getAppConfigFilePath();
|
||||
QString oldBaseDir = QSysInfo::productType() == "windows"
|
||||
? QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)
|
||||
: QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
|
||||
QString oldPath = oldBaseDir + "/.linphonerc";
|
||||
|
||||
if (!::filePathExists(newPath) && ::filePathExists(oldPath))
|
||||
::migrateConfigurationFile(oldPath, newPath);
|
||||
if (!filePathExists(newPath) && filePathExists(oldPath))
|
||||
migrateConfigurationFile(oldPath, newPath);
|
||||
|
||||
newPath = ::getAppCallHistoryFilePath();
|
||||
newPath = getAppCallHistoryFilePath();
|
||||
oldPath = oldBaseDir + "/.linphone-call-history.db";
|
||||
|
||||
if (!::filePathExists(newPath) && ::filePathExists(oldPath))
|
||||
::migrateFile(oldPath, newPath);
|
||||
if (!filePathExists(newPath) && filePathExists(oldPath))
|
||||
migrateFile(oldPath, newPath);
|
||||
|
||||
newPath = ::getAppFriendsFilePath();
|
||||
newPath = getAppFriendsFilePath();
|
||||
oldPath = oldBaseDir + "/.linphone-friends.db";
|
||||
|
||||
if (!::filePathExists(newPath) && ::filePathExists(oldPath))
|
||||
::migrateFile(oldPath, newPath);
|
||||
if (!filePathExists(newPath) && filePathExists(oldPath))
|
||||
migrateFile(oldPath, newPath);
|
||||
|
||||
newPath = ::getAppMessageHistoryFilePath();
|
||||
newPath = getAppMessageHistoryFilePath();
|
||||
oldPath = oldBaseDir + "/.linphone-history.db";
|
||||
|
||||
if (!::filePathExists(newPath) && ::filePathExists(oldPath))
|
||||
::migrateFile(oldPath, newPath);
|
||||
if (!filePathExists(newPath) && filePathExists(oldPath))
|
||||
migrateFile(oldPath, newPath);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue