mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 03:18:07 +00:00
Qt6 migration
This commit is contained in:
parent
15baf63a7e
commit
8095974276
167 changed files with 403 additions and 184 deletions
|
|
@ -224,12 +224,15 @@ endif()
|
|||
include(FindPkgConfig)
|
||||
|
||||
set(APP_DEPENDS sdk)
|
||||
find_package(Qt5 5.10 COMPONENTS Core REQUIRED)
|
||||
|
||||
if ( NOT Qt5_FOUND )
|
||||
message(FATAL_ERROR "Minimum supported Qt5 version is 5.10!")
|
||||
find_package(Qt6 COMPONENTS Core)
|
||||
if (NOT Qt6_FOUND)
|
||||
find_package(Qt5 5.10 REQUIRED COMPONENTS Core)
|
||||
if ( NOT Qt5_FOUND )
|
||||
message(FATAL_ERROR "Qt6 has not been found. Minimum supported Qt5 version is 5.10!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
find_package(LinphoneCxx CONFIG QUIET)
|
||||
find_package(Linphone CONFIG QUIET)
|
||||
find_package(bctoolbox CONFIG QUIET)
|
||||
|
|
|
|||
|
|
@ -127,20 +127,24 @@ if( WIN32)
|
|||
endif()
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)#useful for config.h
|
||||
|
||||
set(QT5_PACKAGES Core Gui Quick Widgets QuickControls2 Svg LinguistTools Concurrent Network Test Qml)
|
||||
set(QT_PACKAGES Core Gui Quick Widgets QuickControls2 Svg LinguistTools Concurrent Network Test Qml)
|
||||
if(ENABLE_APP_WEBVIEW)
|
||||
list(APPEND QT5_PACKAGES WebView WebEngine WebEngineCore)
|
||||
list(APPEND QT_PACKAGES WebView WebEngine WebEngineCore)
|
||||
add_definitions(-DENABLE_WEBVIEW)
|
||||
endif()
|
||||
if (UNIX AND NOT APPLE)
|
||||
list(APPEND QT5_PACKAGES DBus)
|
||||
list(APPEND QT_PACKAGES DBus)
|
||||
endif ()
|
||||
set(QT5_PACKAGES_OPTIONAL TextToSpeech QmlModels)
|
||||
set(QT_PACKAGES_OPTIONAL TextToSpeech QmlModels)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
|
||||
find_package(Qt5 COMPONENTS ${QT5_PACKAGES} REQUIRED)
|
||||
find_package(Qt5 COMPONENTS ${QT5_PACKAGES_OPTIONAL} QUIET)
|
||||
find_package(Qt6 COMPONENTS ${QT_PACKAGES})
|
||||
if (NOT Qt6_FOUND)
|
||||
find_package(Qt5 COMPONENTS ${QT_PACKAGES} REQUIRED)
|
||||
find_package(Qt5 COMPONENTS ${QT_PACKAGES_OPTIONAL} QUIET)
|
||||
else()
|
||||
find_package(Qt6 COMPONENTS ${QT_PACKAGES_OPTIONAL} QUIET)
|
||||
endif()
|
||||
|
||||
bc_git_version(${TARGET_NAME} ${PROJECT_VERSION})
|
||||
|
||||
|
|
@ -534,7 +538,9 @@ set(QML_SOURCES_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/")
|
|||
set(QML_MODULES_PATHS ${QML_SOURCES_PATHS})
|
||||
if(ENABLE_BUILD_VERBOSE)#useful to copy these Paths to QML previewers
|
||||
message("QML_IMPORT_PATH=${QML_IMPORT_PATH}" )
|
||||
message("Qt5 Paths : Qt5_DIR=$ENV{Qt5_DIR}, PATH=$ENV{PATH}")
|
||||
message("Qt6 Paths : Qt6_DIR=$ENV{Qt6_DIR}")
|
||||
message("Qt5 Paths : Qt5_DIR=$ENV{Qt5_DIR}")
|
||||
message("PATH=$ENV{PATH}")
|
||||
endif()
|
||||
if(APPLE)
|
||||
if(MS2_PLUGINS_LOCATION)
|
||||
|
|
@ -555,7 +561,7 @@ include_directories("${LINPHONE_OUTPUT_DIR}/include/OpenGL")
|
|||
|
||||
if (CMAKE_INSTALL_RPATH)
|
||||
#Retrieve lib path from a know QT executable
|
||||
get_target_property(LUPDATE_PATH Qt5::lupdate LOCATION)
|
||||
get_target_property(LUPDATE_PATH Qt::lupdate LOCATION)
|
||||
get_filename_component(LUPDATE_PATH "${LUPDATE_PATH}" DIRECTORY)
|
||||
get_filename_component(QT_PATH "${LUPDATE_PATH}/lib" ABSOLUTE)
|
||||
list(APPEND CMAKE_INSTALL_RPATH "${QT_PATH}")
|
||||
|
|
@ -632,23 +638,23 @@ endif()
|
|||
if(ENABLE_BUILD_VERBOSE)
|
||||
message("LIBRARIES : ${LIBRARIES}")
|
||||
endif()
|
||||
foreach (package ${QT5_PACKAGES})
|
||||
list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}")
|
||||
foreach (package ${QT_PACKAGES})
|
||||
list(APPEND INCLUDED_DIRECTORIES "${Qt${package}_INCLUDE_DIRS}")
|
||||
# `qt5_create_translation` is provided from `LinguistTools` package.
|
||||
# But the `Qt5::LinguistTools` lib does not exist. Remove it.
|
||||
if (NOT (${package} STREQUAL LinguistTools))
|
||||
# list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES})
|
||||
target_link_libraries(${APP_LIBRARY} Qt5::${package})
|
||||
target_link_libraries(${APP_PLUGIN} Qt5::${package})
|
||||
target_link_libraries(${TARGET_NAME} Qt5::${package})
|
||||
target_link_libraries(${APP_LIBRARY} Qt::${package})
|
||||
target_link_libraries(${APP_PLUGIN} Qt::${package})
|
||||
target_link_libraries(${TARGET_NAME} Qt::${package})
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
foreach (package ${QT5_PACKAGES_OPTIONAL})
|
||||
if ("${Qt5${package}_FOUND}")
|
||||
foreach (package ${QT_PACKAGES_OPTIONAL})
|
||||
if ("${Qt${package}_FOUND}")
|
||||
message("Optional package ${package} found.")
|
||||
list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}")
|
||||
list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES})
|
||||
list(APPEND INCLUDED_DIRECTORIES "${Qt${package}_INCLUDE_DIRS}")
|
||||
list(APPEND LIBRARIES Qt${package}_LIBRARIES})
|
||||
|
||||
string(TOUPPER "${package}" INCLUDE_NAME)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D${INCLUDE_NAME}_ENABLED")
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ file(REMOVE ${TARGET_TS_FILES})
|
|||
#file(REMOVE ${QRC_BIG_RESOURCES}) #Remove .o of resources before build. It is need to update resources from changes
|
||||
|
||||
add_custom_command(OUTPUT ${TARGET_TS_FILES}
|
||||
COMMAND ${Qt5_LUPDATE_EXECUTABLE}
|
||||
COMMAND lupdate
|
||||
ARGS ${LUPDATE_OPTIONS} ${TRANSLATION_SOURCES} -ts ${TS_FILES}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${TS_FILES} ${CMAKE_CURRENT_BINARY_DIR}
|
||||
VERBATIM
|
||||
|
|
@ -62,7 +62,7 @@ add_custom_command(OUTPUT ${TARGET_TS_FILES}
|
|||
)
|
||||
|
||||
add_custom_command(OUTPUT ${QM_FILES}
|
||||
COMMAND ${Qt5_LRELEASE_EXECUTABLE}
|
||||
COMMAND lrelease
|
||||
ARGS ${TARGET_TS_FILES} ${LRELEASE_OPTIONS}
|
||||
DEPENDS ${TARGET_TS_FILES}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
|
|
|
|||
|
|
@ -33,8 +33,13 @@ if (POLICY CMP0079)
|
|||
cmake_policy(SET CMP0079 NEW)
|
||||
endif ()
|
||||
|
||||
|
||||
set(QT_PATH "${Qt5Core_DIR}/../../..")
|
||||
if(Qt5Core_DIR)
|
||||
set(QT_PATH "${Qt5Core_DIR}/../../..")
|
||||
elseif(Qt6Core_DIR)
|
||||
set(QT_PATH "${Qt6Core_DIR}/../../..")
|
||||
else()
|
||||
message(FATAL_ERROR "No Qt dir")
|
||||
endif()
|
||||
|
||||
# ==============================================================================
|
||||
# Build package version.
|
||||
|
|
@ -465,8 +470,11 @@ endif()
|
|||
|
||||
|
||||
function(deployqt_hack target qml_dir)
|
||||
find_package(Qt5 COMPONENTS Core REQUIRED)
|
||||
get_target_property(qmake_executable Qt5::qmake IMPORTED_LOCATION)
|
||||
find_package(Qt6 COMPONENTS Core)
|
||||
if(NOT Qt6_FOUND)
|
||||
find_package(Qt5 COMPONENTS Core REQUIRED)
|
||||
endif()
|
||||
get_target_property(qmake_executable Qt::qmake IMPORTED_LOCATION)
|
||||
get_filename_component(_qt_bin_dir "${qmake_executable}" DIRECTORY)
|
||||
#Note: CMAKE_CURRENT_SOURCE_DIR point to linphone-app because deployqt_hack is called there.
|
||||
add_custom_command(TARGET ${target} POST_BUILD
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
#include <iostream>
|
||||
|
||||
#include <QQuickWindow>
|
||||
#include <QRegularExpression>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
|
|
@ -231,6 +232,8 @@ static QString indentedWord (QString word, int &curPos, const int lineLength, co
|
|||
}
|
||||
|
||||
static string multilineIndent (const QString &str, int indentationNumber = 0) {
|
||||
return Utils::appStringToCoreString(str);
|
||||
/*
|
||||
constexpr int lineLength(80);
|
||||
|
||||
static const QRegExp spaceRegexp("(\\s)");
|
||||
|
|
@ -273,7 +276,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);*/
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
|
|
@ -410,8 +413,8 @@ QString Cli::Command::getFunctionSyntax () const {
|
|||
|
||||
// FIXME: Do not accept args without value like: cmd toto.
|
||||
// In the future `toto` could be a boolean argument.
|
||||
QRegExp Cli::mRegExpArgs("(?:(?:([\\w-]+)\\s*)=\\s*(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"|([^\\s]+)\\s*))");
|
||||
QRegExp Cli::mRegExpFunctionName("^\\s*([a-z-]+)\\s*");
|
||||
QRegularExpression Cli::mRegExpArgs("(?:(?:([\\w-]+)\\s*)=\\s*(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"|([^\\s]+)\\s*))");
|
||||
QRegularExpression Cli::mRegExpFunctionName("^\\s*([a-z-]+)\\s*");
|
||||
|
||||
QMap<QString, Cli::Command> Cli::mCommands = {
|
||||
createCommand("show", QT_TR_NOOP("showFunctionDescription"), cliShow, QHash<QString, Argument>(), true),
|
||||
|
|
@ -571,13 +574,16 @@ pair<QString, Cli::Command> Cli::createCommand (
|
|||
// -----------------------------------------------------------------------------
|
||||
|
||||
QString Cli::parseFunctionName (const QString &command) {
|
||||
mRegExpFunctionName.indexIn(command.toLower());
|
||||
if (mRegExpFunctionName.pos(1) == -1) {
|
||||
QRegularExpressionMatch match = mRegExpFunctionName.match(command.toLower());
|
||||
//mRegExpFunctionName.indexIn(command.toLower());
|
||||
//if (mRegExpFunctionName.pos(1) == -1) {
|
||||
if(!match.hasMatch()){
|
||||
qWarning() << QStringLiteral("Unable to parse function name of command: `%1`.").arg(command);
|
||||
return QString("");
|
||||
}
|
||||
|
||||
const QStringList texts = mRegExpFunctionName.capturedTexts();
|
||||
//const QStringList texts = mRegExpFunctionName.capturedTexts();
|
||||
const QStringList texts = match.capturedTexts();
|
||||
|
||||
const QString functionName = texts[1];
|
||||
if (!mCommands.contains(functionName)) {
|
||||
|
|
@ -591,11 +597,20 @@ QString Cli::parseFunctionName (const QString &command) {
|
|||
QHash<QString, QString> Cli::parseArgs (const QString &command) {
|
||||
QHash<QString, QString> args;
|
||||
int pos = 0;
|
||||
|
||||
while ((pos = mRegExpArgs.indexIn(command.toLower(), pos)) != -1) {
|
||||
QRegularExpressionMatchIterator it = mRegExpFunctionName.globalMatch(command.toLower());
|
||||
while (it.hasNext()) {
|
||||
QRegularExpressionMatch match = it.next();
|
||||
if (match.hasMatch()) {
|
||||
args[match.captured(1)] = (match.captured(2).isEmpty() ? match.captured(3) : match.captured(2));
|
||||
}
|
||||
}
|
||||
/*
|
||||
QRegularExpressionMatch match = mRegExpFunctionName.match(command.toLower());
|
||||
if( match.hasMatch()){
|
||||
//while ((pos = mRegExpArgs.indexIn(command.toLower(), pos)) != -1) {
|
||||
pos += mRegExpArgs.matchedLength();
|
||||
args[mRegExpArgs.cap(1)] = (mRegExpArgs.cap(2).isEmpty() ? mRegExpArgs.cap(3) : mRegExpArgs.cap(2));
|
||||
}
|
||||
|
||||
*/
|
||||
return args;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -109,8 +109,8 @@ private:
|
|||
|
||||
static QMap<QString, Command> mCommands;
|
||||
|
||||
static QRegExp mRegExpArgs;
|
||||
static QRegExp mRegExpFunctionName;
|
||||
static QRegularExpression mRegExpArgs;
|
||||
static QRegularExpression mRegExpFunctionName;
|
||||
};
|
||||
|
||||
#endif // CLI_H_
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#include <QScreen>
|
||||
#include <QSvgRenderer>
|
||||
#include <QQmlPropertyMap>
|
||||
#include <QRegularExpression>
|
||||
|
||||
#include "app/App.hpp"
|
||||
|
||||
|
|
@ -56,16 +57,16 @@ static QByteArray buildByteArrayAttribute (const QByteArray &name, const QByteAr
|
|||
}
|
||||
|
||||
static QByteArray parseFillAndStroke (QXmlStreamAttributes &readerAttributes, const ColorListModel *colors) {
|
||||
static QRegExp regex("^color-([^-]+)-(fill|stroke)$");
|
||||
static QRegularExpression regex("^color-([^-]+)-(fill|stroke)$");
|
||||
|
||||
QByteArray attributes;
|
||||
|
||||
for (const auto &classValue : readerAttributes.value("class").toLatin1().split(' ')) {
|
||||
regex.indexIn(classValue.trimmed());
|
||||
if (Q_LIKELY(regex.pos() == -1))
|
||||
QRegularExpressionMatch match = regex.match(classValue.trimmed());
|
||||
if (!match.hasMatch())
|
||||
continue;
|
||||
|
||||
const QStringList list = regex.capturedTexts();
|
||||
const QStringList list = match.capturedTexts();
|
||||
|
||||
const QVariant colorValue = colors->getQmlData()->value(list[1]);
|
||||
if (Q_UNLIKELY(!colorValue.isValid())) {
|
||||
|
|
@ -81,17 +82,17 @@ static QByteArray parseFillAndStroke (QXmlStreamAttributes &readerAttributes, co
|
|||
}
|
||||
|
||||
static QByteArray parseStyle (QXmlStreamAttributes &readerAttributes, const ColorListModel *colors) {
|
||||
static QRegExp regex("^color-([^-]+)-style-(fill|stroke)$");
|
||||
static QRegularExpression regex("^color-([^-]+)-style-(fill|stroke)$");
|
||||
|
||||
QByteArray attribute;
|
||||
|
||||
QSet<QString> overrode;
|
||||
for (const auto &classValue : readerAttributes.value("class").toLatin1().split(' ')) {
|
||||
regex.indexIn(classValue.trimmed());
|
||||
if (Q_LIKELY(regex.pos() == -1))
|
||||
QRegularExpressionMatch match = regex.match(classValue.trimmed());
|
||||
if( !match.hasMatch())
|
||||
continue;
|
||||
|
||||
const QStringList list = regex.capturedTexts();
|
||||
const QStringList list = match.capturedTexts();
|
||||
|
||||
overrode.insert(list[2]);
|
||||
|
||||
|
|
@ -243,9 +244,10 @@ ImageProvider::ImageProvider () : QQuickImageProvider(
|
|||
) {}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
// id = "path/image.svg?bg=#color1&fg=#color2"
|
||||
QImage ImageProvider::requestImage (const QString &id, QSize *size, const QSize &requestedSize) {
|
||||
ImageModel * model = App::getInstance()->getImageListModel()->getImageModel(id);
|
||||
QStringList request = id.split('?');
|
||||
ImageModel * model = App::getInstance()->getImageListModel()->getImageModel(request[0]);
|
||||
if(!model)
|
||||
return QImage();
|
||||
const QString path = model->getPath();
|
||||
|
|
@ -300,12 +302,29 @@ QImage ImageProvider::requestImage (const QString &id, QSize *size, const QSize
|
|||
.arg(path);
|
||||
return QImage(); // Memory cannot be allocated.
|
||||
}
|
||||
image.fill(Qt::transparent);// Fill with transparent to set alpha channel
|
||||
QColor backgroundColor("transparent");
|
||||
QColor foregroundColor;
|
||||
if(request.size() > 1){
|
||||
QStringList parameters = request[1].split('&');
|
||||
for(int i = 0 ; i < parameters.size() ;++i){
|
||||
QStringList fields = parameters[i].split('=');
|
||||
if(fields.size() > 1){
|
||||
if(fields[0] == "bg")
|
||||
backgroundColor = QColor(fields[1]);
|
||||
else if(fields[0] == "fg")
|
||||
foregroundColor = QColor(fields[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
image.fill(backgroundColor);// Fill with transparent to set alpha channel
|
||||
|
||||
*size = image.size();
|
||||
|
||||
// 4. Paint!
|
||||
// 5. Paint!
|
||||
QPainter painter(&image);
|
||||
if(foregroundColor.isValid())
|
||||
painter.setPen(foregroundColor);
|
||||
renderer.render(&painter);
|
||||
|
||||
// qDebug() << QStringLiteral("Image `%1` loaded in %2 milliseconds.").arg(path).arg(timer.elapsed());
|
||||
|
|
|
|||
|
|
@ -504,7 +504,7 @@ void CallModel::handleCallStateChanged (const shared_ptr<linphone::Call> &call,
|
|||
break;
|
||||
|
||||
case linphone::Call::State::UpdatedByRemote:
|
||||
qDebug() << "UpdatedByRemote : " << (mCall ? QString( "Video enabled ? CurrentParams:") + mCall->getCurrentParams()->videoEnabled() + QString(", RemoteParams:")+mCall->getRemoteParams()->videoEnabled() : " call NULL");
|
||||
qDebug() << "UpdatedByRemote : " << (mCall ? QString( "Video enabled ? CurrentParams:") + QString::number(mCall->getCurrentParams()->videoEnabled()) + QString(", RemoteParams:")+QString::number(mCall->getRemoteParams()->videoEnabled()) : " call NULL");
|
||||
if (mCall && !mCall->getCurrentParams()->videoEnabled() && mCall->getRemoteParams()->videoEnabled()) {
|
||||
mCall->deferUpdate();
|
||||
emit videoRequested();
|
||||
|
|
|
|||
|
|
@ -28,12 +28,14 @@
|
|||
|
||||
#include "utils/LinphoneEnums.hpp"
|
||||
|
||||
#include "components/conference/ConferenceModel.hpp"
|
||||
#include "components/conferenceInfo/ConferenceInfoModel.hpp"
|
||||
#include "components/contact/ContactModel.hpp"
|
||||
#include "components/chat-room/ChatRoomModel.hpp"
|
||||
// =============================================================================
|
||||
class CallListener;
|
||||
class ConferenceInfoModel;
|
||||
class ConferenceModel;
|
||||
class ContactModel;
|
||||
class ChatRoomModel;
|
||||
|
||||
class CallModel : public QObject {
|
||||
Q_OBJECT
|
||||
|
|
|
|||
|
|
@ -28,14 +28,15 @@
|
|||
#include <QMutex>
|
||||
#include <QTimer>
|
||||
|
||||
#include "components/call/CallModel.hpp"
|
||||
#include "components/participant/ParticipantDeviceModel.hpp"
|
||||
|
||||
// =============================================================================
|
||||
|
||||
namespace linphone {
|
||||
class Call;
|
||||
}
|
||||
|
||||
class CallModel;
|
||||
class ParticipantDeviceModel;
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
class Camera : public QQuickFramebufferObject {
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
#ifndef CHAT_EVENT_H
|
||||
#define CHAT_EVENT_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QDateTime>
|
||||
#include "components/chat-room/ChatRoomModel.hpp"
|
||||
|
||||
// =============================================================================
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@
|
|||
#include "components/participant-imdn/ParticipantImdnStateProxyModel.hpp"
|
||||
#include "components/settings/AccountSettingsModel.hpp"
|
||||
#include "components/settings/SettingsModel.hpp"
|
||||
#include "utils/QExifImageHeader.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
#include "utils/Constants.hpp"
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,6 @@
|
|||
#include "components/timeline/TimelineModel.hpp"
|
||||
#include "components/timeline/TimelineListModel.hpp"
|
||||
#include "components/core/event-count-notifier/AbstractEventCountNotifier.hpp"
|
||||
#include "utils/QExifImageHeader.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
#include "utils/Constants.hpp"
|
||||
#include "utils/LinphoneEnums.hpp"
|
||||
|
|
|
|||
|
|
@ -25,19 +25,24 @@
|
|||
#include "app/proxyModel/ProxyListModel.hpp"
|
||||
#include <QDateTime>
|
||||
|
||||
//#include "components/chat-events/ChatMessageModel.hpp"
|
||||
|
||||
|
||||
// =============================================================================
|
||||
// Fetch all N messages of a ChatRoom.
|
||||
// =============================================================================
|
||||
|
||||
class CoreHandlers;
|
||||
class ParticipantModel;
|
||||
class ParticipantListModel;
|
||||
class ChatEvent;
|
||||
class ContactModel;
|
||||
class ChatRoomModel;
|
||||
class ChatMessageModel;
|
||||
Q_DECLARE_OPAQUE_POINTER(ChatMessageModel*)
|
||||
class ChatNoticeModel;
|
||||
class ChatRoomListener;
|
||||
class ParticipantListModel;
|
||||
Q_DECLARE_OPAQUE_POINTER(ParticipantListModel*)
|
||||
//#include "components/participant/ParticipantListModel.hpp"
|
||||
|
||||
class ChatRoomModel : public ProxyListModel {
|
||||
|
||||
|
|
@ -309,6 +314,6 @@ private:
|
|||
QWeakPointer<ChatRoomModel> mSelf;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(QSharedPointer<ChatRoomModel>)
|
||||
//Q_DECLARE_METATYPE(QSharedPointer<ChatRoomModel>)
|
||||
|
||||
#endif // CHAT_ROOM_MODEL_H_
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
|
||||
#include "components/chat-events/ChatMessageModel.hpp"
|
||||
|
||||
#include "utils/QExifImageHeader.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
#include "utils/Constants.hpp"
|
||||
#include "components/Components.hpp"
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
#include "app/providers/ThumbnailProvider.hpp"
|
||||
|
||||
|
||||
#include "utils/QExifImageHeader.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
#include "utils/Constants.hpp"
|
||||
#include "components/Components.hpp"
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@
|
|||
#include "components/timeline/TimelineModel.hpp"
|
||||
#include "components/timeline/TimelineListModel.hpp"
|
||||
#include "components/core/event-count-notifier/AbstractEventCountNotifier.hpp"
|
||||
#include "utils/QExifImageHeader.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
#include "utils/Constants.hpp"
|
||||
#include "utils/LinphoneEnums.hpp"
|
||||
|
|
|
|||
|
|
@ -27,11 +27,11 @@
|
|||
#include <QSharedPointer>
|
||||
#include <QTimeZone>
|
||||
|
||||
#include "components/other/timeZone/TimeZoneModel.hpp"
|
||||
#include "utils/LinphoneEnums.hpp"
|
||||
|
||||
class ParticipantListModel;
|
||||
class ConferenceScheduler;
|
||||
class TimeZoneModel;
|
||||
|
||||
class ConferenceInfoModel : public QObject {
|
||||
Q_OBJECT
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
// =============================================================================
|
||||
|
||||
class VcardModel;
|
||||
Q_DECLARE_OPAQUE_POINTER(VcardModel*)
|
||||
|
||||
class ContactModel : public QObject {
|
||||
// Grant access to `mLinphoneFriend`.
|
||||
|
|
|
|||
|
|
@ -113,7 +113,8 @@ private:
|
|||
|
||||
std::shared_ptr<linphone::Vcard> mVcard;
|
||||
};
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
Q_DECLARE_METATYPE(VcardModel *);
|
||||
#endif
|
||||
|
||||
#endif // VCARD_MODEL_H_
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
#include "ContactsListModel.hpp"
|
||||
#include "ContactsListProxyModel.hpp"
|
||||
|
||||
#include <QRegularExpression>
|
||||
|
||||
// =============================================================================
|
||||
|
||||
using namespace std;
|
||||
|
|
@ -52,7 +54,7 @@ namespace {
|
|||
// a separator like ` word`.
|
||||
//
|
||||
// - [_.-;@ ] is the main pattern (a separator).
|
||||
const QRegExp ContactsListProxyModel::SearchSeparators("^[^_.-;@ ][_.-;@ ]");
|
||||
const QRegularExpression ContactsListProxyModel::SearchSeparators("^[^_.-;@ ][_.-;@ ]");
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ private:
|
|||
// and reused by `lessThan`.
|
||||
mutable QHash<const ContactModel *, unsigned int> mWeights;
|
||||
|
||||
static const QRegExp SearchSeparators;
|
||||
static const QRegularExpression SearchSeparators;
|
||||
};
|
||||
|
||||
#endif // CONTACTS_LIST_PROXY_MODEL_H_
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ void FileDownloader::download () {
|
|||
setDownloading(true);
|
||||
|
||||
QNetworkRequest request(mUrl);
|
||||
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||
request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
mNetworkReply = mManager.get(request);
|
||||
|
||||
QNetworkReply *data = mNetworkReply.data();
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
#include "components/core/CoreManager.hpp"
|
||||
#include "components/notifier/Notifier.hpp"
|
||||
#include "components/settings/SettingsModel.hpp"
|
||||
#include "utils/QExifImageHeader.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
|
||||
#include "HistoryModel.hpp"
|
||||
|
|
@ -231,7 +230,7 @@ void HistoryModel::insertCall (const shared_ptr<linphone::CallLog> &callLog) {
|
|||
const QList<HistoryEntryData>::iterator *start = nullptr
|
||||
) {
|
||||
auto it = lower_bound(start ? *start : mEntries.begin(), mEntries.end(), entry, [](const HistoryEntryData &a, const HistoryEntryData &b) {
|
||||
return a.first["timestamp"] < b.first["timestamp"];
|
||||
return a.first["timestamp"].toDateTime() < b.first["timestamp"].toDateTime();
|
||||
});
|
||||
|
||||
int row = int(distance(mEntries.begin(), it));
|
||||
|
|
|
|||
|
|
@ -144,6 +144,8 @@ private:
|
|||
std::shared_ptr<linphone::Account> mSelectedAccount;
|
||||
};
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
Q_DECLARE_METATYPE(std::shared_ptr<linphone::Account>);
|
||||
#endif
|
||||
|
||||
#endif // ACCOUNT_SETTINGS_MODEL_H_
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
#include "SipAddressesModel.hpp"
|
||||
#include "SipAddressesProxyModel.hpp"
|
||||
|
||||
#include <QRegularExpression>
|
||||
|
||||
// =============================================================================
|
||||
|
||||
namespace {
|
||||
|
|
@ -35,7 +37,7 @@ namespace {
|
|||
constexpr int WeightPosOther = 1;
|
||||
}
|
||||
|
||||
const QRegExp SipAddressesProxyModel::SearchSeparators("^[^_.-;@ ][_.-;@ ]");
|
||||
const QRegularExpression SipAddressesProxyModel::SearchSeparators("^[^_.-;@ ][_.-;@ ]");
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ private:
|
|||
|
||||
QString mFilter;
|
||||
|
||||
static const QRegExp SearchSeparators;
|
||||
static const QRegularExpression SearchSeparators;
|
||||
};
|
||||
|
||||
#endif // SIP_ADDRESSES_PROXY_MODEL_H_
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
|
||||
#include "../search/SearchResultModel.hpp"
|
||||
|
||||
#include <QRegularExpression>
|
||||
|
||||
// =============================================================================
|
||||
|
||||
namespace {
|
||||
|
|
@ -36,7 +38,7 @@ namespace {
|
|||
constexpr int WeightPosOther = 1;
|
||||
}
|
||||
|
||||
const QRegExp SipAddressesSorter::SearchSeparators("^[^_.-;@ ][_.-;@ ]");
|
||||
const QRegularExpression SipAddressesSorter::SearchSeparators("^[^_.-;@ ][_.-;@ ]");
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ private:
|
|||
static int computeEntryWeight (const QString& filter, const SearchResultModel *entry);
|
||||
static int computeStringWeight (const QString& filter, const QString &string);
|
||||
|
||||
static const QRegExp SearchSeparators;
|
||||
static const QRegularExpression SearchSeparators;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -227,14 +227,22 @@ const QList<QPair<QLocale::Country, QString>> TelephoneNumbersModel::mCountryCod
|
|||
{ QLocale::Tanzania, "255" },
|
||||
{ QLocale::Thailand, "66" },
|
||||
{ QLocale::Togo, "228" },
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 2, 0)
|
||||
{ QLocale::Tokelau, "690" },
|
||||
#else
|
||||
{ QLocale::TokelauTerritory, "690" },
|
||||
#endif
|
||||
{ QLocale::Tonga, "676" },
|
||||
{ QLocale::TrinidadAndTobago, "1" },
|
||||
{ QLocale::Tunisia, "216" },
|
||||
{ QLocale::Turkey, "90" },
|
||||
{ QLocale::Turkmenistan, "993" },
|
||||
{ QLocale::TurksAndCaicosIslands, "1" },
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 2, 0)
|
||||
{ QLocale::Tuvalu, "688" },
|
||||
#else
|
||||
{ QLocale::TuvaluTerritory, "688" },
|
||||
#endif
|
||||
{ QLocale::Uganda, "256" },
|
||||
{ QLocale::Ukraine, "380" },
|
||||
{ QLocale::UnitedArabEmirates, "971" },
|
||||
|
|
|
|||
|
|
@ -47,7 +47,13 @@
|
|||
#include <QBuffer>
|
||||
#include <QDateTime>
|
||||
#include <QtDebug>
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
#include <QTextCodec>
|
||||
#else
|
||||
#include <QStringDecoder>
|
||||
#include <QStringEncoder>
|
||||
#endif
|
||||
|
||||
#include "Utils.hpp"
|
||||
|
||||
|
|
@ -275,16 +281,26 @@ QExifValue::QExifValue (const QString &value, TextEncoding encoding)
|
|||
case AsciiEncoding:
|
||||
d = new QExifUndefinedValuePrivate(QByteArray::fromRawData("ASCII\0\0\0", 8) + value.toUtf8());
|
||||
break;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
// This is a regression.
|
||||
case JisEncoding: {
|
||||
|
||||
QTextCodec *codec = QTextCodec::codecForName("JIS X 0208");
|
||||
if (codec)
|
||||
d = new QExifUndefinedValuePrivate(QByteArray::fromRawData("JIS\0\0\0\0\0", 8) + codec->fromUnicode(value));
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case UnicodeEncoding: {
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
QTextCodec *codec = QTextCodec::codecForName("UTF-16");
|
||||
if (codec)
|
||||
d = new QExifUndefinedValuePrivate(QByteArray::fromRawData("UNICODE\0", 8) + codec->fromUnicode(value));
|
||||
|
||||
#else
|
||||
auto fromUnicode = QStringEncoder(QStringEncoder::Utf16);
|
||||
d = new QExifUndefinedValuePrivate(QByteArray::fromRawData("UNICODE\0", 8) + fromUnicode(value));
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case UndefinedEncoding:
|
||||
|
|
@ -482,16 +498,24 @@ QString QExifValue::toString () const {
|
|||
switch (encoding()) {
|
||||
case AsciiEncoding:
|
||||
return QString::fromUtf8(string.constData(), string.length());
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
// This is a regression on Qt6
|
||||
case JisEncoding: {
|
||||
QTextCodec *codec = QTextCodec::codecForName("JIS X 0208");
|
||||
if (codec)
|
||||
return codec->toUnicode(string);
|
||||
} break;
|
||||
#endif
|
||||
case UnicodeEncoding: {
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
QTextCodec *codec = QTextCodec::codecForName("UTF-16");
|
||||
if (codec)
|
||||
return codec->toUnicode(string);
|
||||
return QString::fromLocal8Bit(string.constData(), string.length());
|
||||
#else
|
||||
auto toUnicode = QStringDecoder(QStringDecoder::Utf16);
|
||||
return toUnicode(string);
|
||||
#endif
|
||||
}
|
||||
case UndefinedEncoding:
|
||||
return QString::fromLocal8Bit(string.constData(), string.length());
|
||||
|
|
|
|||
|
|
@ -431,14 +431,22 @@ QString Utils::getCountryName(const QLocale::Country& p_country)
|
|||
case QLocale::Tanzania: if((countryName = QCoreApplication::translate("country", "Tanzania"))== "Tanzania") countryName = "";break;
|
||||
case QLocale::Thailand: if((countryName = QCoreApplication::translate("country", "Thailand"))== "Thailand") countryName = "";break;
|
||||
case QLocale::Togo: if((countryName = QCoreApplication::translate("country", "Togo"))== "Togo") countryName = "";break;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 2, 0)
|
||||
case QLocale::Tokelau: if((countryName = QCoreApplication::translate("country", "Tokelau"))== "Tokelau") countryName = "";break;
|
||||
#else
|
||||
case QLocale::TokelauTerritory: if((countryName = QCoreApplication::translate("country", "Tokelau"))== "Tokelau") countryName = "";break;
|
||||
#endif
|
||||
case QLocale::Tonga: if((countryName = QCoreApplication::translate("country", "Tonga"))== "Tonga") countryName = "";break;
|
||||
case QLocale::TrinidadAndTobago: if((countryName = QCoreApplication::translate("country", "TrinidadAndTobago"))== "TrinidadAndTobago") countryName = "";break;
|
||||
case QLocale::Tunisia: if((countryName = QCoreApplication::translate("country", "Tunisia"))== "Tunisia") countryName = "";break;
|
||||
case QLocale::Turkey: if((countryName = QCoreApplication::translate("country", "Turkey"))== "Turkey") countryName = "";break;
|
||||
case QLocale::Turkmenistan: if((countryName = QCoreApplication::translate("country", "Turkmenistan"))== "Turkmenistan") countryName = "";break;
|
||||
case QLocale::TurksAndCaicosIslands: if((countryName = QCoreApplication::translate("country", "TurksAndCaicosIslands"))== "TurksAndCaicosIslands") countryName = "";break;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 2, 0)
|
||||
case QLocale::Tuvalu: if((countryName = QCoreApplication::translate("country", "Tuvalu"))== "Tuvalu") countryName = "";break;
|
||||
#else
|
||||
case QLocale::TuvaluTerritory: if((countryName = QCoreApplication::translate("country", "Tuvalu"))== "Tuvalu") countryName = "";break;
|
||||
#endif
|
||||
case QLocale::Uganda: if((countryName = QCoreApplication::translate("country", "Uganda"))== "Uganda") countryName = "";break;
|
||||
case QLocale::Ukraine: if((countryName = QCoreApplication::translate("country", "Ukraine"))== "Ukraine") countryName = "";break;
|
||||
case QLocale::UnitedArabEmirates: if((countryName = QCoreApplication::translate("country", "UnitedArabEmirates"))== "UnitedArabEmirates") countryName = "";break;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ PluginDataAPI::PluginDataAPI(LinphonePlugin * plugin, void* linphoneCore, QPlugi
|
|||
QVariantMap defaultValues;
|
||||
QJsonDocument doc = QJsonDocument::fromJson(mPlugin->getGUIDescriptionToJson().toUtf8());
|
||||
QVariantMap description = doc.toVariant().toMap();
|
||||
mPluginLoader->setLoadHints(0);
|
||||
mPluginLoader->setLoadHints(QLibrary::ExportExternalSymbolsHint);
|
||||
// First, get all fields where their target is ALL. It will be act as a "default field"
|
||||
for(auto field : description["fields"].toList()){
|
||||
auto details = field.toMap();
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ PluginNetworkHelper::~PluginNetworkHelper(){}
|
|||
void PluginNetworkHelper::request(){ // Create QNetworkReply and make network requests
|
||||
QNetworkRequest request(prepareRequest());
|
||||
|
||||
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||
request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
mNetworkReply = mManager.get(request);
|
||||
|
||||
#if QT_CONFIG(ssl)
|
||||
|
|
@ -19,7 +19,12 @@ void PluginNetworkHelper::request(){ // Create QNetworkReply and make network re
|
|||
|
||||
QObject::connect(data, &QNetworkReply::readyRead, this, &PluginNetworkHelper::handleReadyData);
|
||||
QObject::connect(data, &QNetworkReply::finished, this, &PluginNetworkHelper::handleFinished);
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
|
||||
QObject::connect(data, QNonConstOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &PluginNetworkHelper::handleError);
|
||||
#else
|
||||
QObject::connect(data, &QNetworkReply::errorOccurred, this, &PluginNetworkHelper::handleError);
|
||||
#endif
|
||||
|
||||
|
||||
#if QT_CONFIG(ssl)
|
||||
QObject::connect(data, &QNetworkReply::sslErrors, this, &PluginNetworkHelper::handleSslErrors);
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ QPluginLoader * PluginsManager::getPlugin(const QString &pluginIdentity){
|
|||
for(int i = 0 ; i < pluginPaths.size() ; ++i) {
|
||||
QString pluginPath = pluginPaths[i] +gPluginsMap[pluginIdentity];
|
||||
QPluginLoader * loader = new QPluginLoader(pluginPath);
|
||||
loader->setLoadHints(0); // this force Qt to unload the plugin from memory when we request it. Be carefull by not having a plugin instance or data created inside the plugin after the unload.
|
||||
loader->setLoadHints(QLibrary::ExportExternalSymbolsHint); // this force Qt to unload the plugin from memory when we request it. Be carefull by not having a plugin instance or data created inside the plugin after the unload.
|
||||
if( auto instance = loader->instance()) {
|
||||
auto plugin = qobject_cast< LinphonePlugin* >(instance);
|
||||
if (plugin )
|
||||
|
|
@ -80,7 +80,7 @@ void * PluginsManager::createInstance(const QString &pluginIdentity){
|
|||
for(int i = 0 ; i < pluginPaths.size() ; ++i) {
|
||||
QString pluginPath = pluginPaths[i] +gPluginsMap[pluginIdentity];
|
||||
QPluginLoader * loader = new QPluginLoader(pluginPath);
|
||||
loader->setLoadHints(0); // this force Qt to unload the plugin from memory when we request it. Be carefull by not having a plugin instance or data created inside the plugin after the unload.
|
||||
loader->setLoadHints(QLibrary::ExportExternalSymbolsHint); // this force Qt to unload the plugin from memory when we request it. Be carefull by not having a plugin instance or data created inside the plugin after the unload.
|
||||
if( auto instance = loader->instance()) {
|
||||
plugin = qobject_cast< LinphonePlugin* >(instance);
|
||||
if (plugin) {
|
||||
|
|
@ -141,7 +141,7 @@ void PluginsManager::openNewPlugin(const QString &pTitle){
|
|||
QMessageBox::information(nullptr, pTitle, "The file is not a plugin");
|
||||
}else{
|
||||
QPluginLoader loader(fileName);
|
||||
loader.setLoadHints(0);
|
||||
loader.setLoadHints(QLibrary::ExportExternalSymbolsHint);
|
||||
QJsonObject metaData = loader.metaData()["MetaData"].toObject();
|
||||
if( metaData.contains("ID") && metaData.contains("Capabilities")){
|
||||
capabilities = metaData["Capabilities"].toString().toUpper().remove(' ').split(",");
|
||||
|
|
@ -209,7 +209,7 @@ QVariantList PluginsManager::getPlugins(const int& capabilities) {
|
|||
for(int i = 0 ; i < pluginFiles.size() ; ++i) {
|
||||
if( QLibrary::isLibrary(pluginPath+pluginFiles[i])){
|
||||
QPluginLoader loader(pluginPath+pluginFiles[i]);
|
||||
loader.setLoadHints(0); // this force Qt to unload the plugin from memory when we request it. Be carefull by not having a plugin instance or data created inside the plugin after the unload.
|
||||
loader.setLoadHints(QLibrary::ExportExternalSymbolsHint); // this force Qt to unload the plugin from memory when we request it. Be carefull by not having a plugin instance or data created inside the plugin after the unload.
|
||||
if (auto instance = loader.instance()) {
|
||||
LinphonePlugin * plugin = qobject_cast< LinphonePlugin* >(instance);
|
||||
if ( plugin){
|
||||
|
|
@ -247,7 +247,9 @@ QVariantList PluginsManager::getPlugins(const int& capabilities) {
|
|||
}
|
||||
}
|
||||
}
|
||||
std::sort(plugins.begin(), plugins.end());
|
||||
std::sort(plugins.begin(), plugins.end(), [](const QVariant& a, const QVariant& b)-> bool{
|
||||
return a.toMap().value("pluginTitle").toString() < b.toMap().value("pluginTitle").toString();
|
||||
});
|
||||
}
|
||||
return plugins;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.2
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.12
|
||||
//import QtGraphicalEffects 1.12
|
||||
|
||||
import Common 1.0
|
||||
|
||||
|
|
@ -284,7 +284,7 @@ Item {
|
|||
iconWidth: wrappedButton.iconWidth
|
||||
visible: !iconIsCustom
|
||||
}
|
||||
|
||||
/*
|
||||
OpacityMask{
|
||||
anchors.fill: icon
|
||||
source: foregroundColor
|
||||
|
|
@ -297,8 +297,8 @@ Item {
|
|||
acceptedButtons: Qt.NoButton
|
||||
cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor
|
||||
}
|
||||
}
|
||||
|
||||
}*/
|
||||
/*
|
||||
OpacityMask{
|
||||
id: mask
|
||||
anchors.fill: icon
|
||||
|
|
@ -306,20 +306,14 @@ Item {
|
|||
maskSource: icon
|
||||
|
||||
visible: iconIsCustom && percentageDisplayed != 100
|
||||
/*
|
||||
layer {
|
||||
enabled: true
|
||||
effect: ColorOverlay {
|
||||
color: "#80FFFFFF"
|
||||
}
|
||||
}*/
|
||||
|
||||
MouseArea{
|
||||
anchors.fill:parent
|
||||
hoverEnabled: true
|
||||
acceptedButtons: Qt.NoButton
|
||||
cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor
|
||||
}
|
||||
}
|
||||
}*/
|
||||
TooltipArea {
|
||||
id:tooltip
|
||||
text: ''
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Dialogs 1.2
|
||||
import QtQuick.Dialogs
|
||||
|
||||
import Common 1.0
|
||||
import Common.Styles 1.0
|
||||
|
|
@ -12,8 +12,11 @@ TextField {
|
|||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
property alias selectExisting: fileDialog.selectExisting
|
||||
property alias selectFolder: fileDialog.selectFolder
|
||||
//property alias selectExisting: fileDialog.selectExisting
|
||||
//property alias selectFolder: fileDialog.selectFolder
|
||||
property bool selectExisting: false
|
||||
property bool selectFolder: false
|
||||
|
||||
property alias title: fileDialog.title
|
||||
|
||||
property string selectedFile: ''
|
||||
|
|
@ -61,7 +64,7 @@ TextField {
|
|||
|
||||
FileDialog {
|
||||
id: fileDialog
|
||||
|
||||
/*
|
||||
folder: {
|
||||
var selectedFile = textField.selectedFile
|
||||
|
||||
|
|
@ -74,7 +77,7 @@ TextField {
|
|||
? selectedFile
|
||||
: Utils.dirname(selectedFile)
|
||||
)
|
||||
}
|
||||
}*/
|
||||
|
||||
onAccepted: {
|
||||
var selectedFile = Utils.getSystemPathFromUri(fileUrl)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.2
|
||||
import QtQuick.Dialogs 1.2
|
||||
import QtQuick.Dialogs
|
||||
import QtQuick.Layouts 1.12
|
||||
|
||||
import Common 1.0
|
||||
|
|
@ -81,7 +81,7 @@ Item {
|
|||
FileDialog {
|
||||
id: fileDialog
|
||||
|
||||
folder: shortcuts.home
|
||||
//folder: shortcuts.home
|
||||
title: qsTr('fileChooserTitle')
|
||||
|
||||
onAccepted: {_emitFiles(fileDialog.fileUrls);fileDialogLoader.active = false}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick
|
||||
|
||||
import Common.Styles 1.0
|
||||
|
||||
|
|
@ -38,8 +38,7 @@ Item {
|
|||
TextField {
|
||||
id: textField
|
||||
|
||||
validator: RegExpValidator {
|
||||
regExp: /[0-9A-Fa-f]*/
|
||||
validator: RegularExpressionValidator { regularExpression: /[0-9A-Fa-f]*/
|
||||
}
|
||||
|
||||
width: parent.width
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick
|
||||
|
||||
import Common.Styles 1.0
|
||||
import Utils 1.0
|
||||
|
|
@ -60,12 +60,9 @@ Item {
|
|||
|
||||
TextField {
|
||||
id: textField
|
||||
|
||||
validator: RegExpValidator {
|
||||
regExp: wrapper.supportsRange
|
||||
validator: RegularExpressionValidator { regularExpression: wrapper.supportsRange
|
||||
? Utils.PORT_RANGE_REGEX
|
||||
: Utils.PORT_REGEX
|
||||
}
|
||||
: Utils.PORT_REGEX }
|
||||
|
||||
width: parent.width
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import QtQuick 2.12
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQml.Models 2.12
|
||||
import QtGraphicalEffects 1.12
|
||||
//import QtGraphicalEffects 1.12
|
||||
import QtQuick.Controls 2.12 as Control
|
||||
|
||||
import Common 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import QtQuick 2.7
|
||||
import QtGraphicalEffects 1.12
|
||||
//import QtGraphicalEffects 1.12
|
||||
|
||||
import Common 1.0
|
||||
import Linphone 1.0
|
||||
|
|
@ -45,6 +45,7 @@ Item {
|
|||
fillMode: !qtIsNewer_5_15_0 ? Image.PreserveAspectFit : Image.Stretch // Stretch is default from Qt's doc
|
||||
// Keep aspect ratio is done by ImagePovider that use directly SVG scalings (=no loss quality).
|
||||
source: width != 0 && height != 0 ? Utils.resolveImageUri(icon) : '' // Do not load image with unknown requested size
|
||||
+(colorOverwriteEnabled ? 'fg='+mainItem.overwriteColor : '')
|
||||
sourceSize.width: qtIsNewer_5_15_0
|
||||
? fillMode == Image.TileHorizontally
|
||||
? height
|
||||
|
|
@ -55,12 +56,12 @@ Item {
|
|||
? width
|
||||
: height
|
||||
: 0
|
||||
|
||||
/*
|
||||
layer {
|
||||
enabled: image.colorOverwriteEnabled
|
||||
effect: ColorOverlay {
|
||||
color: mainItem.overwriteColor
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import QtQuick 2.7
|
||||
import QtGraphicalEffects 1.0
|
||||
//import QtGraphicalEffects 1.0
|
||||
|
||||
import Linphone 1.0
|
||||
|
||||
|
|
@ -27,9 +27,10 @@ Item {
|
|||
sourceSize.width: parent.width
|
||||
sourceSize.height: parent.height
|
||||
layer.enabled: true
|
||||
/*
|
||||
layer.effect: OpacityMask {
|
||||
maskSource: backgroundArea
|
||||
}
|
||||
}*/
|
||||
}
|
||||
Rectangle {
|
||||
id: foregroundArea
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.2
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.12
|
||||
|
||||
import Common 1.0
|
||||
import Linphone 1.0
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
import QtGraphicalEffects 1.0
|
||||
|
||||
//import QtGraphicalEffects 1.0
|
||||
import QtQuick 2.0
|
||||
import Common.Styles 1.0
|
||||
|
||||
// =============================================================================
|
||||
|
||||
Item{
|
||||
}
|
||||
/*
|
||||
DropShadow {
|
||||
color: PopupStyle.shadow.color
|
||||
horizontalOffset: PopupStyle.shadow.horizontalOffset
|
||||
|
|
@ -11,3 +13,4 @@ DropShadow {
|
|||
samples: PopupStyle.shadow.samples
|
||||
verticalOffset: PopupStyle.shadow.verticalOffset
|
||||
}
|
||||
*/
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
import ColorsList 1.0
|
||||
// =============================================================================
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
import ColorsList 1.0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
// TextButtonAStyle (Grey)
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// TextButtonBStyle (Primary)
|
||||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
import ColorsList 1.0
|
||||
// =============================================================================
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// TextButtonCStyle (Green)
|
||||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
import ColorsList 1.0
|
||||
// =============================================================================
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
|
||||
import ColorsList 1.0
|
||||
|
||||
// =============================================================================
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
import ColorsList 1.0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
import ColorsList 1.0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import Units 1.0
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import ColorsList 1.0
|
||||
// =============================================================================
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.15
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import Units 1.0
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import ColorsList 1.0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import Units 1.0
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import ColorsList 1.0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import QtQuick 2.7 as Core
|
||||
import QtQuick.Controls 2.2 as Core
|
||||
import QtGraphicalEffects 1.12
|
||||
//import QtGraphicalEffects 1.12
|
||||
|
||||
import Common 1.0
|
||||
import Linphone 1.0
|
||||
|
|
@ -110,10 +110,10 @@ Core.ToolTip {
|
|||
sourceSize.height: height
|
||||
sourceSize.width: width
|
||||
layer {
|
||||
enabled: true
|
||||
enabled: true/*
|
||||
effect: ColorOverlay {
|
||||
color: TooltipStyle.backgroundColor
|
||||
}
|
||||
}*/
|
||||
}
|
||||
visible: tooltip.visible && _edge
|
||||
width: TooltipStyle.arrowSize
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.12
|
||||
|
||||
import App.Styles 1.0
|
||||
import Common 1.0
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.12
|
||||
//import QtGraphicalEffects 1.12
|
||||
|
||||
import App.Styles 1.0
|
||||
import Common 1.0
|
||||
|
|
@ -31,7 +31,7 @@ Item{
|
|||
MouseArea{
|
||||
anchors.fill: parent
|
||||
onClicked: camera.resetActive()
|
||||
}
|
||||
}/*
|
||||
RectangularGlow {
|
||||
id: effect
|
||||
anchors.fill: backgroundArea
|
||||
|
|
@ -40,7 +40,7 @@ Item{
|
|||
color: CameraViewStyle.border.color
|
||||
cornerRadius: backgroundArea.radius + glowRadius
|
||||
visible: mainItem.showActiveSpeakerOverlay && mainItem.currentDevice && mainItem.currentDevice.isSpeaking
|
||||
}
|
||||
}*/
|
||||
Rectangle {
|
||||
id: backgroundArea
|
||||
color: mainItem.color
|
||||
|
|
@ -80,6 +80,7 @@ Item{
|
|||
visible: false
|
||||
onVideoDefinitionChanged: mainItem.videoDefinitionChanged()
|
||||
}
|
||||
/*
|
||||
OpacityMask{
|
||||
id: renderedCamera
|
||||
anchors.fill: parent
|
||||
|
|
@ -88,24 +89,24 @@ Item{
|
|||
invert:false
|
||||
visible: true
|
||||
|
||||
/* In case we need transformations.
|
||||
property Matrix4x4 mirroredRotationMatrix : Matrix4x4 {// 180 rotation + mirror
|
||||
matrix: Qt.matrix4x4(-Math.cos(Math.PI), -Math.sin(Math.PI), 0, 0,
|
||||
Math.sin(Math.PI), Math.cos(Math.PI), 0, camera.height,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 0, 1)
|
||||
}
|
||||
property Matrix4x4 rotationMatrix : Matrix4x4 {// 180 rotation only
|
||||
matrix: Qt.matrix4x4(Math.cos(Math.PI), -Math.sin(Math.PI), 0, camera.width,
|
||||
Math.sin(Math.PI), Math.cos(Math.PI), 0, camera.height,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 0, 1)
|
||||
}
|
||||
|
||||
//transform: ( camera.isPreview ? mirroredRotationMatrix : rotationMatrix)
|
||||
*/
|
||||
// In case we need transformations.
|
||||
// property Matrix4x4 mirroredRotationMatrix : Matrix4x4 {// 180 rotation + mirror
|
||||
// matrix: Qt.matrix4x4(-Math.cos(Math.PI), -Math.sin(Math.PI), 0, 0,
|
||||
// Math.sin(Math.PI), Math.cos(Math.PI), 0, camera.height,
|
||||
// 0, 0, 1, 0,
|
||||
// 0, 0, 0, 1)
|
||||
// }
|
||||
// property Matrix4x4 rotationMatrix : Matrix4x4 {// 180 rotation only
|
||||
// matrix: Qt.matrix4x4(Math.cos(Math.PI), -Math.sin(Math.PI), 0, camera.width,
|
||||
// Math.sin(Math.PI), Math.cos(Math.PI), 0, camera.height,
|
||||
// 0, 0, 1, 0,
|
||||
// 0, 0, 0, 1)
|
||||
// }
|
||||
//
|
||||
// //transform: ( camera.isPreview ? mirroredRotationMatrix : rotationMatrix)
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
Rectangle{
|
||||
id: hideView
|
||||
anchors.fill: parent
|
||||
|
|
@ -140,6 +141,7 @@ Item{
|
|||
font.weight: CameraViewStyle.contactDescription.weight
|
||||
color: CameraViewStyle.contactDescription.color
|
||||
}
|
||||
/*
|
||||
Glow {
|
||||
anchors.fill: username
|
||||
//spread: 1
|
||||
|
|
@ -148,6 +150,7 @@ Item{
|
|||
color: "#80000000"
|
||||
source: username
|
||||
}
|
||||
*/
|
||||
ActionButton{
|
||||
visible: mainItem.showCloseButton && camera.isPreview && mainItem.callModel && mainItem.callModel.videoEnabled
|
||||
anchors.right: parent.right
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.12
|
||||
|
||||
import Linphone 1.0
|
||||
import Linphone.Styles 1.0
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import QtQuick 2.12
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQml.Models 2.12
|
||||
import QtGraphicalEffects 1.12
|
||||
import QtQuick.Controls 2.12
|
||||
import Common 1.0
|
||||
import Common.Styles 1.0
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.12
|
||||
|
||||
import App.Styles 1.0
|
||||
import Common 1.0
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.12
|
||||
//import QtGraphicalEffects 1.12
|
||||
|
||||
import App.Styles 1.0
|
||||
import Common 1.0
|
||||
|
|
@ -70,6 +70,7 @@ DecorationSticker{
|
|||
visible: false
|
||||
onVideoDefinitionChanged: mainItem.videoDefinitionChanged()
|
||||
}
|
||||
/*
|
||||
OpacityMask{
|
||||
id: renderedCamera
|
||||
anchors.fill: parent
|
||||
|
|
@ -78,22 +79,22 @@ DecorationSticker{
|
|||
invert:false
|
||||
visible: true
|
||||
|
||||
/* In case we need transformations.
|
||||
property Matrix4x4 mirroredRotationMatrix : Matrix4x4 {// 180 rotation + mirror
|
||||
matrix: Qt.matrix4x4(-Math.cos(Math.PI), -Math.sin(Math.PI), 0, 0,
|
||||
Math.sin(Math.PI), Math.cos(Math.PI), 0, camera.height,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 0, 1)
|
||||
}
|
||||
property Matrix4x4 rotationMatrix : Matrix4x4 {// 180 rotation only
|
||||
matrix: Qt.matrix4x4(Math.cos(Math.PI), -Math.sin(Math.PI), 0, camera.width,
|
||||
Math.sin(Math.PI), Math.cos(Math.PI), 0, camera.height,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 0, 1)
|
||||
}
|
||||
|
||||
//transform: ( camera.isPreview ? mirroredRotationMatrix : rotationMatrix)
|
||||
*/
|
||||
// In case we need transformations.
|
||||
// property Matrix4x4 mirroredRotationMatrix : Matrix4x4 {// 180 rotation + mirror
|
||||
// matrix: Qt.matrix4x4(-Math.cos(Math.PI), -Math.sin(Math.PI), 0, 0,
|
||||
// Math.sin(Math.PI), Math.cos(Math.PI), 0, camera.height,
|
||||
// 0, 0, 1, 0,
|
||||
// 0, 0, 0, 1)
|
||||
// }
|
||||
// property Matrix4x4 rotationMatrix : Matrix4x4 {// 180 rotation only
|
||||
// matrix: Qt.matrix4x4(Math.cos(Math.PI), -Math.sin(Math.PI), 0, camera.width,
|
||||
// Math.sin(Math.PI), Math.cos(Math.PI), 0, camera.height,
|
||||
// 0, 0, 1, 0,
|
||||
// 0, 0, 0, 1)
|
||||
// }
|
||||
//
|
||||
// //transform: ( camera.isPreview ? mirroredRotationMatrix : rotationMatrix)
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.12
|
||||
//import QtGraphicalEffects 1.12
|
||||
|
||||
import App.Styles 1.0
|
||||
import Common 1.0
|
||||
|
|
@ -18,7 +18,8 @@ import 'qrc:/ui/scripts/Utils/utils.js' as Utils
|
|||
Item{
|
||||
id: mainItem
|
||||
default property alias _content: content.data
|
||||
property alias speakingOverlayDisplayed: effect.visible
|
||||
//property alias speakingOverlayDisplayed: effect.visible
|
||||
property bool speakingOverlayDisplayed: false
|
||||
property string username: mainItem._currentDevice ? mainItem._currentDevice.displayName : ''
|
||||
property bool showUsername: true
|
||||
|
||||
|
|
@ -43,6 +44,7 @@ Item{
|
|||
anchors.fill: parent
|
||||
onClicked: mainItem.backgroundClicked()
|
||||
}
|
||||
/*
|
||||
RectangularGlow {
|
||||
id: effect
|
||||
anchors.fill: content
|
||||
|
|
@ -51,7 +53,7 @@ Item{
|
|||
color: DecorationStickerStyle.border.color
|
||||
cornerRadius: (mainItem.radius? mainItem.radius : 0) + glowRadius
|
||||
visible: mainItem._showActiveSpeakerOverlay && mainItem._currentDevice && mainItem._currentDevice.isSpeaking
|
||||
}
|
||||
}*/
|
||||
Item{
|
||||
id: content
|
||||
anchors.fill: parent
|
||||
|
|
@ -92,6 +94,7 @@ Item{
|
|||
font.weight: DecorationStickerStyle.contactDescription.weight
|
||||
color: DecorationStickerStyle.contactDescription.color
|
||||
}
|
||||
/*
|
||||
Glow {
|
||||
anchors.fill: usernameItem
|
||||
visible: usernameItem.visible
|
||||
|
|
@ -100,7 +103,7 @@ Item{
|
|||
samples: 25
|
||||
color: "#80000000"
|
||||
source: usernameItem
|
||||
}
|
||||
}*/
|
||||
ActionButton{
|
||||
visible: mainItem._showCloseButton && mainItem._isPreview && mainItem._callModel && mainItem._callModel.videoEnabled
|
||||
anchors.right: parent.right
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.12
|
||||
|
||||
import App.Styles 1.0
|
||||
import Common 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import Units 1.0
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import Units 1.0
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import Units 1.0
|
||||
import ColorsList 1.0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import QtQuick 2.15
|
||||
|
||||
import ColorsList 1.0
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue