diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b14330cee3d26adb0150f979f9a215648ad4c84..3c9736da21735b78504c2469fc2257e8c881e0da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -153,27 +153,39 @@ set(COMMON_HEADERS ${SRC_DIR}/previewengine.h) set(QML_LIBS - Qt5::Quick - Qt5::QuickWidgets - Qt5::Network - Qt5::Svg - Qt5::Sql - Qt5::Concurrent - Qt5::QuickControls2 - Qt5::WebEngine - Qt5::Core - Qt5::WebEngineWidgets) + Qt::Quick + Qt::Network + Qt::NetworkAuth + Qt::Svg + Qt::Gui + Qt::Qml + Qt::QmlModels + Qt::Positioning + Qt::Sql + Qt::Concurrent + Qt::Core + Qt::Core5Compat + Qt::WebEngineCore + Qt::WebEngineQuick + Qt::WebChannel + Qt::WebEngineWidgets) set(QML_LIBS_LIST - Core - Concurrent Quick - QuickWidgets Network + NetworkAuth Svg + Gui + Qml + QmlModels + Positioning Sql - QuickControls2 - WebEngine + Concurrent + Core + Core5Compat + WebEngineCore + WebEngineQuick + WebChannel WebEngineWidgets) set(WINDOWS_SYS_LIBS Shell32.lib @@ -185,6 +197,14 @@ set(WINDOWS_SYS_LIBS Shell32.lib Crypt32.lib Strmiids.lib) +# Here we let find_package(<PackageName>...) try to find Qt 6, +# If it is found, find_package will succeed, and the CMake variable +# QT_VERSION_MAJOR will be defined 6. +find_package(QT NAMES Qt6 COMPONENTS ${QML_LIBS_LIST} REQUIRED) +if (${QT_VERSION_MAJOR} STRLESS 6) + message(FATAL_ERROR "We currently only support Qt6" ) +endif() + if(MSVC) # preprocessor defines add_definitions(-DUNICODE -DQT_NO_DEBUG -DNDEBUG) @@ -240,7 +260,7 @@ else() list(APPEND COMMON_HEADERS ${SRC_DIR}/dbuserrorhandler.h ${SRC_DIR}/xrectsel.h) - list(APPEND QML_LIBS Qt5::DBus) + list(APPEND QML_LIBS Qt::DBus) list(APPEND QML_LIBS_LIST DBus) find_package(PkgConfig REQUIRED) @@ -318,21 +338,16 @@ else() endif() # Qt find package -if(QT5_VER AND QT5_PATH) - string(REPLACE "." ";" VERSION_LIST ${QT5_VER}) - list(GET VERSION_LIST 0 QT5_VER_MAJOR) - list(GET VERSION_LIST 1 QT5_VER_MINOR) - list(GET VERSION_LIST 2 QT5_VER_PATCH) - - if((${QT5_VER_MAJOR} GREATER_EQUAL 5) AND (${QT5_VER_MINOR} GREATER_EQUAL 14)) - message(STATUS "Using custom Qt version") - find_package(Qt5 ${QT5_VER} REQUIRED COMPONENTS ${QML_LIBS_LIST} - PATHS ${QT5_PATH} NO_DEFAULT_PATH) - find_package(Qt5LinguistTools ${QT5_VER} PATHS ${QT5_PATH} NO_DEFAULT_PATH) - endif() +if(QT6_VER AND QT6_PATH) + message(STATUS "Using custom Qt version") + find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS ${QML_LIBS_LIST} + PATHS ${QT6_PATH} NO_DEFAULT_PATH) + # Linguist tools is not required. + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS LinguistTools + PATHS ${QT6_PATH} NO_DEFAULT_PATH) else() - find_package(Qt5 REQUIRED COMPONENTS ${QML_LIBS_LIST}) - find_package(Qt5LinguistTools) + find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS ${QML_LIBS_LIST}) + find_package(Qt${QT_VERSION_MAJOR}LinguistTools) endif() # common include @@ -340,19 +355,19 @@ include_directories(${PROJECT_SOURCE_DIR} ${SRC_DIR}) # common executable sources -add_executable(${PROJECT_NAME} - ${SRC_DIR}/main.cpp - ${COMMON_HEADERS} - ${COMMON_SOURCES} - ${QML_RESOURCES} - ${QML_RESOURCES_QML} - ${LRC_SRC_PATH}/webresource.qrc) +qt_add_executable(${PROJECT_NAME} MANUAL_FINALIZATION + ${SRC_DIR}/main.cpp + ${COMMON_HEADERS} + ${COMMON_SOURCES} + ${QML_RESOURCES} + ${QML_RESOURCES_QML} + ${LRC_SRC_PATH}/webresource.qrc) if(MSVC) # Makes it a GUI executable instead of a console application set_target_properties(${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE TRUE) - target_link_libraries(${PROJECT_NAME} + target_link_libraries(${PROJECT_NAME} PRIVATE ${QML_LIBS} ${QRENCODE_LIB} ${WINDOWS_SYS_LIBS}) @@ -367,14 +382,14 @@ if(MSVC) # executable icon target_sources(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/ico.rc) - target_link_libraries(${PROJECT_NAME} + target_link_libraries(${PROJECT_NAME} PRIVATE ${RINGCLIENT_STATIC_LIB} ${QTWRAPPER_LIB} ${DRING_LIB} ${GNUTLS_LIB}) # translations - if(Qt5LinguistTools_FOUND) + if(Qt${QT_VERSION_MAJOR}LinguistTools_FOUND) message("Releasing and copying translation files") file(MAKE_DIRECTORY "${JAMI_OUTPUT_DIRECTORY_RELEASE}/share/ring/translations/") file(MAKE_DIRECTORY "${JAMI_OUTPUT_DIRECTORY_RELEASE}/share/libringclient/translations/") @@ -384,8 +399,9 @@ if(MSVC) "${JAMI_OUTPUT_DIRECTORY_RELEASE}/share/ring/translations") set_source_files_properties(${TS_LRC_FILES} PROPERTIES OUTPUT_LOCATION "${JAMI_OUTPUT_DIRECTORY_RELEASE}/share/libringclient/translations") - qt5_add_translation(QM_CLIENT_FILES ${TS_CLIENT_FILES}) - qt5_add_translation(QM_LRC_FILES ${TS_LRC_FILES}) + + qt_add_translation(QM_CLIENT_FILES ${TS_CLIENT_FILES}) + qt_add_translation(QM_LRC_FILES ${TS_LRC_FILES}) target_sources(${PROJECT_NAME} PRIVATE ${QM_CLIENT_FILES}) target_sources(${PROJECT_NAME} PRIVATE ${QM_LRC_FILES}) endif() @@ -426,7 +442,7 @@ if(MSVC) # executable name set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "Jami") else() - target_link_libraries(${PROJECT_NAME} + target_link_libraries(${PROJECT_NAME} PRIVATE ${QML_LIBS} ${LRC_LIB_NAME} ${qrencode} @@ -516,12 +532,13 @@ else() endif() # translations - if(Qt5LinguistTools_FOUND) + if(Qt${QT_VERSION_MAJOR}LinguistTools_FOUND) message("Releasing and copying translation files") file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/ring/translations/") file(GLOB TS_FILES ${PROJECT_SOURCE_DIR}/translations/*.ts) set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "share/ring/translations") - qt5_add_translation(QM_FILES ${TS_FILES}) + + qt_add_translation(QM_FILES ${TS_FILES}) add_custom_target(translations ALL DEPENDS ${QM_FILES}) install(DIRECTORY "${CMAKE_BINARY_DIR}/share/ring/translations/" DESTINATION ${CMAKE_INSTALL_PREFIX}/share/ring/translations) @@ -537,6 +554,10 @@ else() COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) endif() + +qt_import_qml_plugins(${PROJECT_NAME}) +qt_finalize_executable(${PROJECT_NAME}) + # test if(ENABLE_TESTS) message("Add Jami tests") diff --git a/make-client.py b/make-client.py index 82c6be7e5f13a40f26a59c2885dd97d255d3897c..181a26f92f79dcd175d19d556608a31cea82ff5e 100644 --- a/make-client.py +++ b/make-client.py @@ -12,7 +12,7 @@ from enum import Enum # vs help win_sdk_default = '10.0.16299.0' win_toolset_default = '142' -qt_version_default = '5.15.0' +qt_version_default = '6.2.0' vs_where_path = os.path.join( os.environ['ProgramFiles(x86)'], 'Microsoft Visual Studio', 'Installer', 'vswhere.exe' @@ -22,6 +22,7 @@ host_is_64bit = (False, True)[platform.machine().endswith('64')] this_dir = os.path.dirname(os.path.realpath(__file__)) build_dir = os.path.join(this_dir, 'build') temp_path = os.environ['TEMP'] +openssl_include_dir = 'C:\\Qt\\Tools\\OpenSSL\\Win_x64\\include\\openssl' # project path jami_qt_project = os.path.join(build_dir, 'jami-qt.vcxproj') @@ -214,20 +215,37 @@ def build(arch, toolset, sdk_version, config_str, project_path_under_current_pat qt_dir = os.path.join("C:\\", 'Qt', qtver) cmake_gen = getCMakeGenerator(getLatestVSVersion()) - msvc_folder = 'msvc2019_64' + qt_major_version = getQtVersionNumber(qtver, QtVerison.Major) + qt_general_macro = 'Qt' + qt_major_version + msvc_folder = '\\msvc2019_64' + + qt_cmake_dir = qt_dir + msvc_folder + '\\lib\\cmake\\' + cmake_prefix_path = qt_dir + msvc_folder qt_cmake_dir = os.path.join(qt_dir, msvc_folder, 'lib', 'cmake') cmake_prefix_path = os.path.join(qt_dir, msvc_folder) cmake_options = [ '-DCMAKE_PREFIX_PATH=' + cmake_prefix_path, - '-DQt5_DIR=' + qt_cmake_dir + 'Qt5', - '-DQt5Core_DIR=' + qt_cmake_dir + 'Qt5Core', - '-DQt5Sql_DIR=' + qt_cmake_dir + 'Qt5Sql', - '-DQt5LinguistTools_DIR=' + qt_cmake_dir + 'Qt5LinguistTools', - '-DQt5Concurrent_DIR=' + qt_cmake_dir + 'Qt5Concurrent', - '-DQt5Gui_DIR=' + qt_cmake_dir + 'Qt5Gui', - '-DQt5Test_DIR=' + qt_cmake_dir + 'Qt5Test', - '-DQt5QuickTest_DIR=' + qt_cmake_dir + 'Qt5QuickTest', + '-DOPENSSL_INCLUDE_DIR=' + openssl_include_dir, + '-DQT_DIR=' + qt_dir + msvc_folder, + '-D' + qt_general_macro + '_DIR=' + qt_cmake_dir + qt_general_macro, + '-D' + qt_general_macro + 'Core_DIR=' + qt_cmake_dir + qt_general_macro + 'Core', + '-D' + qt_general_macro + 'Core5Compat_DIR=' + qt_cmake_dir + qt_general_macro + 'Core5Compat', + '-D' + qt_general_macro + 'WebEngineCore_DIR=' + qt_cmake_dir + qt_general_macro + 'WebEngineCore', + '-D' + qt_general_macro + 'WebEngineQuick_DIR=' + qt_cmake_dir + qt_general_macro + 'WebEngineQuick', + '-D' + qt_general_macro + 'WebChannel_DIR=' + qt_cmake_dir + qt_general_macro + 'WebChannel', + '-D' + qt_general_macro + 'WebEngineWidgets_DIR=' + qt_cmake_dir + qt_general_macro + 'WebEngineWidgets', + '-D' + qt_general_macro + 'Sql_DIR=' + qt_cmake_dir + qt_general_macro + 'Sql', + '-D' + qt_general_macro + 'LinguistTools_DIR=' + qt_cmake_dir + qt_general_macro + 'LinguistTools', + '-D' + qt_general_macro + 'Concurrent_DIR=' + qt_cmake_dir + qt_general_macro + 'Concurrent', + '-D' + qt_general_macro + 'Network_DIR=' + qt_cmake_dir + qt_general_macro + 'Network', + '-D' + qt_general_macro + 'NetworkAuth_DIR=' + qt_cmake_dir + qt_general_macro + 'NetworkAuth', + '-D' + qt_general_macro + 'Gui_DIR=' + qt_cmake_dir + qt_general_macro + 'Gui', + '-D' + qt_general_macro + 'Qml_DIR=' + qt_cmake_dir + qt_general_macro + 'Qml', + '-D' + qt_general_macro + 'QmlModels_DIR=' + qt_cmake_dir + qt_general_macro + 'QmlModels', + '-D' + qt_general_macro + 'Positioning_DIR=' + qt_cmake_dir + qt_general_macro + 'Positioning', + '-D' + qt_general_macro + 'Test_DIR=' + qt_cmake_dir + qt_general_macro + 'Test', + '-D' + qt_general_macro + 'QuickTest_DIR=' + qt_cmake_dir + qt_general_macro + 'QuickTest', '-DENABLE_TESTS=' + (str("ENABLE_TESTS") if test_building_type != TestBuilding.NoTests else ''), '-DCMAKE_SYSTEM_VERSION=' + sdk_version ] @@ -384,6 +402,10 @@ def main(): parsed_args = parse_args() + if int(getQtVersionNumber(parsed_args.qtver, QtVerison.Major)) < 6: + print('We currently only support Qt6') + sys.exit(1) + test_building_type = TestBuilding.NoTests if parsed_args.withtest: diff --git a/qml.qrc b/qml.qrc index 52bc9a41c266970842a86f2607938a3c857ad237..65342816fdd1fdaa2c246ddf76df794a7b9b03b4 100644 --- a/qml.qrc +++ b/qml.qrc @@ -10,7 +10,7 @@ <file>src/commoncomponents/PasswordDialog.qml</file> <file>src/commoncomponents/MaterialLineEdit.qml</file> <file>src/commoncomponents/PhotoboothView.qml</file> - <file>src/commoncomponents/ListViewJami.qml</file> + <file>src/commoncomponents/JamiListView.qml</file> <file>src/commoncomponents/DeleteAccountDialog.qml</file> <file>src/commoncomponents/CustomBorder.qml</file> <file>src/commoncomponents/PushButton.qml</file> @@ -41,8 +41,6 @@ <file>src/settingsview/components/AudioSettings.qml</file> <file>src/settingsview/components/VideoSettings.qml</file> <file>src/settingsview/components/GeneralSettingsPage.qml</file> - <file>src/settingsview/components/KeyBoardShortcutTable.qml</file> - <file>src/settingsview/components/KeyBoardShortcutKey.qml</file> <file>src/settingsview/components/PluginSettingsPage.qml</file> <file>src/settingsview/components/PluginListSettingsView.qml</file> <file>src/settingsview/components/PluginListPreferencesView.qml</file> @@ -172,5 +170,8 @@ <file>src/commoncomponents/DataTransferMessageDelegate.qml</file> <file>src/mainview/components/ScrollToBottomButton.qml</file> <file>src/commoncomponents/TypingDots.qml</file> + <file>src/commoncomponents/JamiScrollBar.qml</file> + <file>qtquickcontrols2.conf</file> + <file>src/commoncomponents/JamiFlickable.qml</file> </qresource> </RCC> diff --git a/qtquickcontrols2.conf b/qtquickcontrols2.conf new file mode 100644 index 0000000000000000000000000000000000000000..ebea6bb727f17d651f2c293a83b33af8aa81e2c1 --- /dev/null +++ b/qtquickcontrols2.conf @@ -0,0 +1,9 @@ +; This file can be edited to change the style of the application +; Read "Qt Quick Controls 2 Configuration File" for details: +; https://doc.qt.io/qt/qtquickcontrols2-configuration.html + +[Controls] +Style=Universal + +[Universal] +Theme=Light diff --git a/src/DaemonReconnectWindow.qml b/src/DaemonReconnectWindow.qml index da9fcfb29763952ad7afacf2cabde5587c758df7..9890ba28847e2b1ff6d43fc6d90c4ee36f15a301 100644 --- a/src/DaemonReconnectWindow.qml +++ b/src/DaemonReconnectWindow.qml @@ -16,11 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls.Universal 2.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Constants 1.1 import net.jami.Models 1.1 @@ -33,8 +32,6 @@ ApplicationWindow { property bool connectionFailed: false property int preferredMargin: 15 - Universal.theme: Universal.Light - title: "Jami" width: 600 @@ -201,7 +198,7 @@ ApplicationWindow { } } - overlay.modal: ColorOverlay { + Overlay.modal: ColorOverlay { source: root.contentItem color: "transparent" diff --git a/src/MainApplicationWindow.qml b/src/MainApplicationWindow.qml index 6e2504c0472c207df823c4776ba5c4a6cf3a96b1..792e9ef8da3e41dd8052dff2819e37c95f3384b3 100644 --- a/src/MainApplicationWindow.qml +++ b/src/MainApplicationWindow.qml @@ -20,12 +20,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Window 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls.Universal 2.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Window +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -40,56 +39,19 @@ import "commoncomponents" ApplicationWindow { id: root - property ApplicationWindow appWindow : root - - // To facilitate reparenting of the callview during - // fullscreen mode, we need QQuickItem based object. - Item { - id: appContainer - anchors.fill: parent - } - property bool isFullScreen: false - visibility: !visible ? - Window.Hidden : (isFullScreen ? - Window.FullScreen : - Window.Windowed) - function toggleFullScreen() { - isFullScreen = !isFullScreen - } - enum LoadedSource { WizardView = 0, MainView, None } - Universal.theme: Universal.Light - - title: JamiStrings.appTitle + property ApplicationWindow appWindow : root + property bool isFullScreen: false - width: { - if (checkLoadedSource() === MainApplicationWindow.LoadedSource.WizardView) - return JamiTheme.wizardViewMinWidth - return JamiTheme.mainViewPreferredWidth - } - height: { - if (checkLoadedSource() === MainApplicationWindow.LoadedSource.WizardView) - return JamiTheme.wizardViewMinHeight - return JamiTheme.mainViewPreferredHeight - } - minimumWidth: { - if (checkLoadedSource() === MainApplicationWindow.LoadedSource.WizardView) - return JamiTheme.wizardViewMinWidth - return JamiTheme.mainViewMinWidth - } - minimumHeight: { - if (checkLoadedSource() === MainApplicationWindow.LoadedSource.WizardView) - return JamiTheme.wizardViewMinHeight - return JamiTheme.mainViewMinHeight + function toggleFullScreen() { + isFullScreen = !isFullScreen } - visible: mainApplicationLoader.status === Loader.Ready - function checkLoadedSource() { var sourceString = mainApplicationLoader.source.toString() @@ -123,7 +85,45 @@ ApplicationWindow { hide() } - AccountMigrationDialog{ + visibility: !visible ? + Window.Hidden : (isFullScreen ? + Window.FullScreen : + Window.Windowed) + + title: JamiStrings.appTitle + + width: { + if (checkLoadedSource() === MainApplicationWindow.LoadedSource.WizardView) + return JamiTheme.wizardViewMinWidth + return JamiTheme.mainViewPreferredWidth + } + height: { + if (checkLoadedSource() === MainApplicationWindow.LoadedSource.WizardView) + return JamiTheme.wizardViewMinHeight + return JamiTheme.mainViewPreferredHeight + } + minimumWidth: { + if (checkLoadedSource() === MainApplicationWindow.LoadedSource.WizardView) + return JamiTheme.wizardViewMinWidth + return JamiTheme.mainViewMinWidth + } + minimumHeight: { + if (checkLoadedSource() === MainApplicationWindow.LoadedSource.WizardView) + return JamiTheme.wizardViewMinHeight + return JamiTheme.mainViewMinHeight + } + + visible: mainApplicationLoader.status === Loader.Ready + + // To facilitate reparenting of the callview during + // fullscreen mode, we need QQuickItem based object. + Item { + id: appContainer + + anchors.fill: parent + } + + AccountMigrationDialog { id: accountMigrationDialog visible: false @@ -165,17 +165,6 @@ ApplicationWindow { } } - overlay.modal: ColorOverlay { - source: root.contentItem - color: "transparent" - - // Color animation for overlay when pop up is shown. - ColorAnimation on color { - to: Qt.rgba(0, 0, 0, 0.33) - duration: 500 - } - } - Connections { target: LRCInstance @@ -220,6 +209,17 @@ ApplicationWindow { } } + Overlay.modal: ColorOverlay { + source: root.contentItem + color: "transparent" + + // Color animation for overlay when pop up is shown. + ColorAnimation on color { + to: Qt.rgba(0, 0, 0, 0.33) + duration: 500 + } + } + onClosing: root.close() onScreenChanged: JamiQmlUtils.mainApplicationScreen = root.screen diff --git a/src/accountadapter.cpp b/src/accountadapter.cpp index 07d2303d6ed5d75a37e1c5fae502121f2afa2c88..96a0e41671055d33c76d11bac174e1e40de78f9e 100644 --- a/src/accountadapter.cpp +++ b/src/accountadapter.cpp @@ -144,7 +144,7 @@ AccountAdapter::createJamiAccount(QString registeredName, connectFailure(); - QtConcurrent::run([this, settings] { + auto futureResult = QtConcurrent::run([this, settings] { lrcInstance_->accountModel().createNewAccount(lrc::api::profile::Type::JAMI, settings["alias"].toString(), settings["archivePath"].toString(), @@ -189,7 +189,7 @@ AccountAdapter::createSIPAccount(const QVariantMap& settings) connectFailure(); - QtConcurrent::run([this, settings] { + auto futureResult = QtConcurrent::run([this, settings] { lrcInstance_->accountModel().createNewAccount(lrc::api::profile::Type::SIP, settings["alias"].toString(), settings["archivePath"].toString(), @@ -233,7 +233,7 @@ AccountAdapter::createJAMSAccount(const QVariantMap& settings) connectFailure(); - QtConcurrent::run([this, settings] { + auto futureResult = QtConcurrent::run([this, settings] { lrcInstance_->accountModel().connectToAccountManager(settings["username"].toString(), settings["password"].toString(), settings["manager"].toString()); @@ -278,7 +278,7 @@ AccountAdapter::setCurrAccDisplayName(const QString& text) void AccountAdapter::setCurrentAccountAvatarFile(const QString& source) { - QtConcurrent::run([this, source]() { + auto futureResult = QtConcurrent::run([this, source]() { QPixmap image; if (!image.load(source)) { qWarning() << "Not a valid image file"; @@ -298,7 +298,7 @@ AccountAdapter::setCurrentAccountAvatarFile(const QString& source) void AccountAdapter::setCurrentAccountAvatarBase64(const QString& data) { - QtConcurrent::run([this, data]() { + auto futureResult = QtConcurrent::run([this, data]() { auto accountId = lrcInstance_->get_currentAccountId(); lrcInstance_->accountModel().setAvatar(accountId, data); }); @@ -346,7 +346,7 @@ AccountAdapter::exportToFile(const QString& accountId, void AccountAdapter::setArchivePasswordAsync(const QString& accountID, const QString& password) { - QtConcurrent::run([this, accountID, password] { + auto futureResult = QtConcurrent::run([this, accountID, password] { auto config = lrcInstance_->accountModel().getAccountConfig(accountID); config.archivePassword = password; lrcInstance_->accountModel().setAccountConfig(accountID, config); diff --git a/src/avadapter.cpp b/src/avadapter.cpp index f0d5a430e2c2f59c8684e311f36f7cac5f967463..18ea405cd644e87e22ad37426a5158fb50904cce 100644 --- a/src/avadapter.cpp +++ b/src/avadapter.cpp @@ -129,7 +129,7 @@ AvAdapter::shareAllScreens() void AvAdapter::captureScreen(int screenNumber) { - QtConcurrent::run([this, screenNumber]() { + auto futureResult = QtConcurrent::run([this, screenNumber]() { QScreen* screen = QGuiApplication::screens().at(screenNumber); if (!screen) return; @@ -149,7 +149,7 @@ AvAdapter::captureScreen(int screenNumber) void AvAdapter::captureAllScreens() { - QtConcurrent::run([this]() { + auto futureResult = QtConcurrent::run([this]() { auto screens = QGuiApplication::screens(); QList<QPixmap> scrs; @@ -338,7 +338,7 @@ AvAdapter::getScreenNumber() const // Get display QString display_env {getenv("DISPLAY")}; if (!display_env.isEmpty()) { - auto list = display_env.split(':', QString::SplitBehavior::SkipEmptyParts); + auto list = display_env.split(':', Qt::SkipEmptyParts); // Should only be one display, so get the first one if (list.size() > 0) { display = list.at(0).toInt(); diff --git a/src/calloverlaymodel.cpp b/src/calloverlaymodel.cpp index c789504acd878d1a09dc412ebba25c44c29213c5..cbe6247adc36b9fddbc61ecf534957c49b5e91db 100644 --- a/src/calloverlaymodel.cpp +++ b/src/calloverlaymodel.cpp @@ -344,10 +344,9 @@ CallOverlayModel::eventFilter(QObject* object, QEvent* event) { if (event->type() == QEvent::MouseMove) { auto mouseEvent = static_cast<QMouseEvent*>(event); - QPoint eventPos(mouseEvent->x(), mouseEvent->y()); auto windowItem = static_cast<QQuickWindow*>(object)->contentItem(); Q_FOREACH (const auto& item, watchedItems_) { - if (item->contains(windowItem->mapToItem(item, eventPos))) { + if (item->contains(windowItem->mapToItem(item, mouseEvent->pos()))) { Q_EMIT mouseMoved(item); } } diff --git a/src/commoncomponents/AccountMigrationDialog.qml b/src/commoncomponents/AccountMigrationDialog.qml index 04ddf73b82835f4359e438ee754d94aaa4e17408..ae5b14a04d1257871f5dbea99be60cdaa3f4b265 100644 --- a/src/commoncomponents/AccountMigrationDialog.qml +++ b/src/commoncomponents/AccountMigrationDialog.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Window 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Window +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -194,7 +194,6 @@ Window { visible: false title: JamiStrings.authenticate - modality: Qt.WindowModal flags: Qt.WindowStaysOnTopHint width: 600 @@ -504,7 +503,7 @@ Window { onSpinnerDisplyStateChanged: { switch (spinnerDisplyState) { case "spinnerLabel_Regular": - background = Qt.createQmlObject("import QtQuick 2.15; + background = Qt.createQmlObject("import QtQuick; import \"qrc:/src/constant/\"; AnimatedImage { source: JamiResources.jami_eclipse_spinner_gif @@ -514,7 +513,7 @@ Window { mipmap: true}", spinnerLabel) break case "spinnerLabel_Failure": - background = Qt.createQmlObject("import QtQuick 2.15; + background = Qt.createQmlObject("import QtQuick; import \"qrc:/src/constant/\"; Image { anchors.fill: parent; diff --git a/src/commoncomponents/Avatar.qml b/src/commoncomponents/Avatar.qml index 64548cc839594717f0ef2c90c1173ff91b332d08..258c807db585c3c90e437aca2f91f47c8c40d8c7 100644 --- a/src/commoncomponents/Avatar.qml +++ b/src/commoncomponents/Avatar.qml @@ -17,8 +17,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Adapters 1.1 import net.jami.Constants 1.1 @@ -64,7 +64,7 @@ Item { } Connections { - target: ScreenInfo + target: CurrentScreenInfo function onDevicePixelRatioChanged() { image.updateSource() @@ -94,7 +94,7 @@ Item { } opacity: status === Image.Ready - scale: Math.min(opacity + 0.5, 1.0) + scale: Math.min(image.opacity + 0.5, 1.0) Behavior on opacity { NumberAnimation { diff --git a/src/commoncomponents/BackButton.qml b/src/commoncomponents/BackButton.qml index 39c6c74ca28d68869c67958a7c403f4b3ec31575..be794a027f0b59c2cdd733c340fe59b0dcb3b3a8 100644 --- a/src/commoncomponents/BackButton.qml +++ b/src/commoncomponents/BackButton.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 diff --git a/src/commoncomponents/BaseDialog.qml b/src/commoncomponents/BaseDialog.qml index 69c76819ae11f41cc00ce1fc407456a6ff4e2857..fba27716646da207f467db8b6f6e13733770ccfd 100644 --- a/src/commoncomponents/BaseDialog.qml +++ b/src/commoncomponents/BaseDialog.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Dialogs 1.3 +import QtQuick +import QtQuick.Controls Dialog { id: root diff --git a/src/commoncomponents/BubbleLabel.qml b/src/commoncomponents/BubbleLabel.qml index 47e47c1de2af0673cc12ae2d489ea2a389e6fd7e..3e78f1440c2c2ac7f467c0752c3a48575245f58c 100644 --- a/src/commoncomponents/BubbleLabel.qml +++ b/src/commoncomponents/BubbleLabel.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 diff --git a/src/commoncomponents/CustomBorder.qml b/src/commoncomponents/CustomBorder.qml index 4db8189115d31c3eae1d60e11cead19575080040..08a9ee072e5c4e5ed8d81d112f99b315cb820013 100644 --- a/src/commoncomponents/CustomBorder.qml +++ b/src/commoncomponents/CustomBorder.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick // Inspired by // https://stackoverflow.com/questions/16534489/qml-control-border-width-and-color-on-any-one-side-of-rectangle-element diff --git a/src/commoncomponents/DaemonReconnectPopup.qml b/src/commoncomponents/DaemonReconnectPopup.qml index ca1ca04e297cda591dcf0a7b8a70fe02c840248c..8753fd190c80515311804f0913eec5ee0b200bba 100644 --- a/src/commoncomponents/DaemonReconnectPopup.qml +++ b/src/commoncomponents/DaemonReconnectPopup.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Constants 1.1 import net.jami.Models 1.1 diff --git a/src/commoncomponents/DataTransferMessageDelegate.qml b/src/commoncomponents/DataTransferMessageDelegate.qml index 6e5fff3d729dd4967ec9b3026833e34c7ae40177..87b0dd464c1154e450aa9dc38e5ad8b22539f7c5 100644 --- a/src/commoncomponents/DataTransferMessageDelegate.qml +++ b/src/commoncomponents/DataTransferMessageDelegate.qml @@ -18,11 +18,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 -import QtWebEngine 1.10 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects +import QtWebEngine import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/commoncomponents/DeleteAccountDialog.qml b/src/commoncomponents/DeleteAccountDialog.qml index 40565d93164a04fc1228fe9d93c68ae5b753d922..d908b8d6832e1d02edcf2423fc4d78c60be1a509 100644 --- a/src/commoncomponents/DeleteAccountDialog.qml +++ b/src/commoncomponents/DeleteAccountDialog.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/commoncomponents/ElidedTextLabel.qml b/src/commoncomponents/ElidedTextLabel.qml index 1d9ff4e32b882c5372288a2b66ae0f1d09073afd..b62670fff37be93ea0af9395a940b82d089cb074 100644 --- a/src/commoncomponents/ElidedTextLabel.qml +++ b/src/commoncomponents/ElidedTextLabel.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 diff --git a/src/commoncomponents/GeneralWebEngineView.qml b/src/commoncomponents/GeneralWebEngineView.qml index b4cc533fae54db576c676e81d8f0405bd70c9adc..54617223275cf73e98ae9629c3e11e3a42700160 100644 --- a/src/commoncomponents/GeneralWebEngineView.qml +++ b/src/commoncomponents/GeneralWebEngineView.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtWebEngine 1.10 -import QtWebChannel 1.15 +import QtQuick +import QtWebEngine +import QtWebChannel import net.jami.Adapters 1.1 import net.jami.Constants 1.1 @@ -50,14 +50,14 @@ WebEngineView { id: webViewChannel } - onNavigationRequested: { + onNavigationRequested: function (request) { if (request.navigationType === WebEngineView.LinkClickedNavigation) { MessagesAdapter.openUrl(request.url) request.action = WebEngineView.IgnoreRequest } } - onContextMenuRequested: { + onContextMenuRequested: function (request) { var needContextMenu = request.selectedText.length || request.isContentEditable if (!needContextMenu) request.accepted = true diff --git a/src/commoncomponents/GeneratedMessageDelegate.qml b/src/commoncomponents/GeneratedMessageDelegate.qml index b69335c2e5cde759cc4af50d00886b78f3cf1ef1..d5ef26fbed5f908927ac336f08bf234450a09fad 100644 --- a/src/commoncomponents/GeneratedMessageDelegate.qml +++ b/src/commoncomponents/GeneratedMessageDelegate.qml @@ -18,9 +18,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Constants 1.1 diff --git a/src/commoncomponents/HalfPill.qml b/src/commoncomponents/HalfPill.qml index a8f99fdbf5b48b0ba96235e668bbd6ee8163b313..a8bb9c943be8388852caddbbb03bed5fff3f3b4b 100644 --- a/src/commoncomponents/HalfPill.qml +++ b/src/commoncomponents/HalfPill.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick Item { id: root diff --git a/src/commoncomponents/JamiFileDialog.qml b/src/commoncomponents/JamiFileDialog.qml index 25b968b26293beecbcd2ad030f919d077d0c17f8..9a407bcfef6859532d02f4c26136e9690a7ad113 100644 --- a/src/commoncomponents/JamiFileDialog.qml +++ b/src/commoncomponents/JamiFileDialog.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import Qt.labs.platform 1.1 +import QtQuick +import Qt.labs.platform import net.jami.Constants 1.1 diff --git a/src/commoncomponents/JamiFlickable.qml b/src/commoncomponents/JamiFlickable.qml new file mode 100644 index 0000000000000000000000000000000000000000..7e7045a9ad2c82701598b99f024ed265718c9e40 --- /dev/null +++ b/src/commoncomponents/JamiFlickable.qml @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2020 by Savoir-faire Linux + * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +import QtQuick +import QtQuick.Controls + +import net.jami.Constants 1.1 + +Flickable { + id: root + + property bool attachedFlickableMoving: root.moving + property alias verticalHandleColor: verticalScrollBar.handleColor + property alias horizontalHandleColor: horizontalScrollBar.handleColor + + maximumFlickVelocity: 1024 + clip: true + + ScrollBar.vertical: JamiScrollBar { + id: verticalScrollBar + + attachedFlickableMoving: root.attachedFlickableMoving + } + ScrollBar.horizontal: JamiScrollBar { + id: horizontalScrollBar + + attachedFlickableMoving: root.attachedFlickableMoving + orientation: Qt.Horizontal + } + + Keys.onLeftPressed: horizontalScrollBar.decrease() + Keys.onRightPressed: horizontalScrollBar.increase() + Keys.onUpPressed: verticalScrollBar.decrease() + Keys.onDownPressed: verticalScrollBar.increase() +} diff --git a/src/commoncomponents/ListViewJami.qml b/src/commoncomponents/JamiListView.qml similarity index 60% rename from src/commoncomponents/ListViewJami.qml rename to src/commoncomponents/JamiListView.qml index 77db4658991a2e0ee75c7afa93e862bc31bb9922..2f88a8bb6ca490b9236da92b640b0f082bd717f6 100644 --- a/src/commoncomponents/ListViewJami.qml +++ b/src/commoncomponents/JamiListView.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2019-2020 by Savoir-faire Linux * Author: Yang Wang <yang.wang@savoirfairelinux.com> + * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,32 +17,24 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 -Rectangle { - id: listViewBackground +ListView { + id: root - property alias model: listView.model - property alias delegate: listView.delegate - property alias currentIndex: listView.currentIndex + layer.mipmap: false + clip: true + maximumFlickVelocity: 1024 - border.width: 0 + ScrollBar.vertical: JamiScrollBar { + id: verticalScrollBar - color: JamiTheme.backgroundColor - - ListView { - id: listView - - anchors.fill: parent - - visible: listViewBackground.visible - layer.mipmap: false - clip: true - maximumFlickVelocity: 1024 - - ScrollBar.vertical: ScrollBar { } + attachedFlickableMoving: root.moving } + + Keys.onUpPressed: verticalScrollBar.decrease() + Keys.onDownPressed: verticalScrollBar.increase() } diff --git a/src/commoncomponents/JamiScrollBar.qml b/src/commoncomponents/JamiScrollBar.qml new file mode 100644 index 0000000000000000000000000000000000000000..65455fe3e474e9e9f45be67b89c55fcf2e3b445f --- /dev/null +++ b/src/commoncomponents/JamiScrollBar.qml @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2020 by Savoir-faire Linux + * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +import QtQuick +import QtQuick.Controls + +import net.jami.Constants 1.1 + +// Assumed to be attached to Flickable +ScrollBar { + id: root + + property bool attachedFlickableMoving: false + property alias handleColor: scrollBarRect.color + + active: { + if (root.orientation === Qt.Horizontal) + return visible + else + return hovered || pressed || attachedFlickableMoving + } + hoverEnabled: true + orientation: Qt.Vertical + + topPadding: root.orientation === Qt.Vertical ? 2 : 0 + leftPadding: root.orientation === Qt.Horizontal ? 2 : 0 + bottomPadding: 2 + rightPadding: 2 + + contentItem: Rectangle { + id: scrollBarRect + + implicitHeight: JamiTheme.scrollBarHandleSize + implicitWidth: JamiTheme.scrollBarHandleSize + radius: width / 2 + color: pressed ? Qt.darker(JamiTheme.scrollBarHandleColor, 2.0) : + JamiTheme.scrollBarHandleColor + opacity: 0 + + states: State { + name: "active" + when: root.policy === ScrollBar.AlwaysOn || + (root.active && root.size < 1.0) + PropertyChanges { + target: root.contentItem + opacity: 1 + } + } + + transitions: Transition { + from: "active" + SequentialAnimation { + PauseAnimation { duration: JamiTheme.longFadeDuration } + NumberAnimation { target: root.contentItem + duration: JamiTheme.shortFadeDuration + property: "opacity" + to: 0.0 + } + } + } + } + + background: Rectangle { + implicitHeight: scrollBarRect.implicitHeight + implicitWidth: scrollBarRect.implicitWidth + color: JamiTheme.transparentColor + radius: width / 2 + } +} diff --git a/src/commoncomponents/JamiSwitch.qml b/src/commoncomponents/JamiSwitch.qml index 224ff9a407782c7b90c57e7eabf69a668893f905..98b9d328942aa0cc11bc08b6c3b836489c353b46 100644 --- a/src/commoncomponents/JamiSwitch.qml +++ b/src/commoncomponents/JamiSwitch.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 diff --git a/src/commoncomponents/LineEditContextMenu.qml b/src/commoncomponents/LineEditContextMenu.qml index a9b9158fc46ea4b85d0e92efaa3d220f99d082f0..bcbb5faf82f35cdbb3143065ad9d8709087b2778 100644 --- a/src/commoncomponents/LineEditContextMenu.qml +++ b/src/commoncomponents/LineEditContextMenu.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import net.jami.Constants 1.1 diff --git a/src/commoncomponents/MaterialButton.qml b/src/commoncomponents/MaterialButton.qml index 72a45917a15c94736c66027a60907a50d7e9cf85..cdec8dcedf606176b9a03c58dd67eeaf96455149 100644 --- a/src/commoncomponents/MaterialButton.qml +++ b/src/commoncomponents/MaterialButton.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Constants 1.1 diff --git a/src/commoncomponents/MaterialLineEdit.qml b/src/commoncomponents/MaterialLineEdit.qml index 808a836999c001a32e36cf1c7e43c4eec962a5b6..6fef7009f8e27baae50c6dad306a25d1421ae1f0 100644 --- a/src/commoncomponents/MaterialLineEdit.qml +++ b/src/commoncomponents/MaterialLineEdit.qml @@ -17,8 +17,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 @@ -62,8 +62,8 @@ TextField { color: readOnly? "transparent" : backgroundColor } - onReleased: { - if (event.button == Qt.RightButton) + onReleased: function (event) { + if (event.button === Qt.RightButton) lineEditContextMenu.openMenuAt(event) } @@ -73,7 +73,7 @@ TextField { // Use editingFinished when the info is saved by focus lost // (since losing focus will also emit editingFinished) // Use accepted when the info is not saved by focus lost - Keys.onPressed: { + Keys.onPressed: function (event) { if (event.key === Qt.Key_Enter || event.key === Qt.Key_Return) { if (loseFocusWhenEnterPressed) diff --git a/src/commoncomponents/MaterialToolTip.qml b/src/commoncomponents/MaterialToolTip.qml index c0e6609f4a013023f8006d3719e2753274f4d431..f7ada9b43481d8e3326b8f4617d23814d3125bc9 100644 --- a/src/commoncomponents/MaterialToolTip.qml +++ b/src/commoncomponents/MaterialToolTip.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.0 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 diff --git a/src/commoncomponents/MessageBubble.qml b/src/commoncomponents/MessageBubble.qml index 62176916016d315266346b5ecf08e39e5d05dfe4..ab1cf3461893f2b13e5b9f200d8be63e983e1612 100644 --- a/src/commoncomponents/MessageBubble.qml +++ b/src/commoncomponents/MessageBubble.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtGraphicalEffects 1.0 +import QtQuick +import Qt5Compat.GraphicalEffects import net.jami.Constants 1.1 diff --git a/src/commoncomponents/ModalPopup.qml b/src/commoncomponents/ModalPopup.qml index a254ef211370b3d294695669a539ed6a4ea80fe7..fe8b64600ecc1749c7e033212932fb25771e2064 100644 --- a/src/commoncomponents/ModalPopup.qml +++ b/src/commoncomponents/ModalPopup.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import Qt5Compat.GraphicalEffects import net.jami.Constants 1.1 @@ -29,11 +29,6 @@ Popup { property bool autoClose: true property alias backgroundColor: container.color - onContentItemChanged: { - if(root.contentItem !== null) - root.contentItem.parent = container - } - parent: Overlay.overlay // center in parent @@ -65,9 +60,9 @@ Popup { horizontalOffset: 3.0 verticalOffset: 3.0 radius: container.radius * 4 - samples: JamiTheme.modalPopupDropShadowSamples color: JamiTheme.shadowColor source: container + transparentBorder: true } enter: Transition { diff --git a/src/commoncomponents/PasswordDialog.qml b/src/commoncomponents/PasswordDialog.qml index bb30b99f729f4cb23c23cce5c4af880cdc63b291..97b6805331dd959cc2c182b8b4c115e01bf707ef 100644 --- a/src/commoncomponents/PasswordDialog.qml +++ b/src/commoncomponents/PasswordDialog.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Constants 1.1 diff --git a/src/commoncomponents/PhotoboothView.qml b/src/commoncomponents/PhotoboothView.qml index 28599ecb6db21662136b6791df45d26ed6715685..ce506ba2291d546bf7b82e3560604d556f5a6967 100644 --- a/src/commoncomponents/PhotoboothView.qml +++ b/src/commoncomponents/PhotoboothView.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import Qt.labs.platform 1.1 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Layouts +import Qt.labs.platform +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/commoncomponents/PreferenceItemDelegate.qml b/src/commoncomponents/PreferenceItemDelegate.qml index b366515690c5e1320406f02927440a81f73c93a5..c0d07e46391b47fe8589d6f63a904a938684fa91 100644 --- a/src/commoncomponents/PreferenceItemDelegate.qml +++ b/src/commoncomponents/PreferenceItemDelegate.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/commoncomponents/PresenceIndicator.qml b/src/commoncomponents/PresenceIndicator.qml index c798967f7d090ef6b592b6350e4c3412d18f22a0..65fcb34fa533f8fb957b354b32d39ec25f436780 100644 --- a/src/commoncomponents/PresenceIndicator.qml +++ b/src/commoncomponents/PresenceIndicator.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/commoncomponents/PushButton.qml b/src/commoncomponents/PushButton.qml index ad28ae3298cf9e584f390c373ca4d2e024a3472c..2734b498feb0675be8377a3fc9525350b7fd03d1 100644 --- a/src/commoncomponents/PushButton.qml +++ b/src/commoncomponents/PushButton.qml @@ -17,8 +17,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 diff --git a/src/commoncomponents/ReadStatus.qml b/src/commoncomponents/ReadStatus.qml index fcef8130ce0f6ade0a6886e2f99fbc23b5cfb6e7..db391ff7057bfc95d08db75332fe0bf52cb9f825 100644 --- a/src/commoncomponents/ReadStatus.qml +++ b/src/commoncomponents/ReadStatus.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/commoncomponents/ResponsiveImage.qml b/src/commoncomponents/ResponsiveImage.qml index 1e00cd52a51917e89e40bef99e220f848e064c0f..a0d6b696963f2ce399efdc352a75e373f158699e 100644 --- a/src/commoncomponents/ResponsiveImage.qml +++ b/src/commoncomponents/ResponsiveImage.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtGraphicalEffects 1.15 +import QtQuick +import Qt5Compat.GraphicalEffects import net.jami.Constants 1.1 import net.jami.Helpers 1.1 @@ -48,7 +48,7 @@ Item { height: Math.trunc(containerHeight * Math.sqrt(2) * 0.5) + 3 - padding Connections { - target: ScreenInfo + target: CurrentScreenInfo function onDevicePixelRatioChanged() { image.setSourceSize() diff --git a/src/commoncomponents/SBSMessageBase.qml b/src/commoncomponents/SBSMessageBase.qml index 9ef4a93f97c3f1a4f009ab4638f819adac14b3a9..db09eaf35b9a54f5af19f6604ae0dd0b0b397509 100644 --- a/src/commoncomponents/SBSMessageBase.qml +++ b/src/commoncomponents/SBSMessageBase.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/commoncomponents/Scaffold.qml b/src/commoncomponents/Scaffold.qml index 6ec64d1934686ac0435161501d4b9faf1824e17f..6fdcf8452652f150cd62a249a908870e27cff15e 100644 --- a/src/commoncomponents/Scaffold.qml +++ b/src/commoncomponents/Scaffold.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls // UI dev tool to visualize components/layouts Rectangle { diff --git a/src/commoncomponents/SettingParaCombobox.qml b/src/commoncomponents/SettingParaCombobox.qml index cdb9ee9809ca43849712002a43cfe06f4a87eea1..9ccfeb792b520e5a2707f9cb873afbd88145c787 100644 --- a/src/commoncomponents/SettingParaCombobox.qml +++ b/src/commoncomponents/SettingParaCombobox.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 @@ -111,19 +111,18 @@ ComboBox { } popup: Popup { + id: popup + y: root.height - 1 width: root.width implicitHeight: contentItem.implicitHeight padding: 1 - contentItem: ListView { + contentItem: JamiListView { id: listView - clip: true - implicitHeight: contentHeight + implicitHeight: popup.contentHeight model: root.delegateModel - - ScrollBar.vertical: ScrollBar {} } background: Rectangle { diff --git a/src/commoncomponents/SimpleMessageDialog.qml b/src/commoncomponents/SimpleMessageDialog.qml index b1c5d52c2d1b1d4163d1416dd899b66cc2efdac1..80c710f35ecd09bd1ec285ed1619c86b9d20988c 100644 --- a/src/commoncomponents/SimpleMessageDialog.qml +++ b/src/commoncomponents/SimpleMessageDialog.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Constants 1.1 diff --git a/src/commoncomponents/SpinningAnimation.qml b/src/commoncomponents/SpinningAnimation.qml index 4261a823657f34057e74e71d5e760254651df302..56b9fb5e503ffbd2521ecf21449ebdc7512642b2 100644 --- a/src/commoncomponents/SpinningAnimation.qml +++ b/src/commoncomponents/SpinningAnimation.qml @@ -17,8 +17,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtGraphicalEffects 1.15 +import QtQuick +import Qt5Compat.GraphicalEffects Item { id: root diff --git a/src/commoncomponents/TextMessageDelegate.qml b/src/commoncomponents/TextMessageDelegate.qml index fe66900df25e00c075000249533cd3c8201ef663..e8d49667750ff7b2636a8ae4ee225b933aba1a1d 100644 --- a/src/commoncomponents/TextMessageDelegate.qml +++ b/src/commoncomponents/TextMessageDelegate.qml @@ -17,10 +17,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/commoncomponents/TypingDots.qml b/src/commoncomponents/TypingDots.qml index 939f4193b2ad62f8b23e457c34b21a78a4b96c4b..a0c52eaddb5f7d56c9e641c102693d095744a348 100644 --- a/src/commoncomponents/TypingDots.qml +++ b/src/commoncomponents/TypingDots.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import Qt5Compat.GraphicalEffects import net.jami.Constants 1.1 diff --git a/src/commoncomponents/UsernameLineEdit.qml b/src/commoncomponents/UsernameLineEdit.qml index c07dd24baf739fe317f75f6acb9cc18b988226e0..96961cbbcc75ac051b5aa3739232d80ced61a055 100644 --- a/src/commoncomponents/UsernameLineEdit.qml +++ b/src/commoncomponents/UsernameLineEdit.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtGraphicalEffects 1.15 +import QtQuick +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/commoncomponents/contextmenu/BaseContextMenu.qml b/src/commoncomponents/contextmenu/BaseContextMenu.qml index 162a846f1c024c8127a1774c2029ae8f9dd1fcd5..73b9dd3d7f08ce3005153b9d6303c742d203fd4c 100644 --- a/src/commoncomponents/contextmenu/BaseContextMenu.qml +++ b/src/commoncomponents/contextmenu/BaseContextMenu.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import Qt5Compat.GraphicalEffects import net.jami.Constants 1.1 @@ -111,8 +111,8 @@ Menu { horizontalOffset: 3.0 verticalOffset: 3.0 radius: 16.0 - samples: 16 color: JamiTheme.shadowColor + transparentBorder: true } } diff --git a/src/commoncomponents/contextmenu/ContextMenuAutoLoader.qml b/src/commoncomponents/contextmenu/ContextMenuAutoLoader.qml index 0c08a2d53ca66a9ef76420c34e22edfb90b7bb89..f2facf5f610a75370f1f3b6b34f3c0ad79c4afa7 100644 --- a/src/commoncomponents/contextmenu/ContextMenuAutoLoader.qml +++ b/src/commoncomponents/contextmenu/ContextMenuAutoLoader.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import "../../commoncomponents/contextmenu" diff --git a/src/commoncomponents/contextmenu/GeneralMenuItem.qml b/src/commoncomponents/contextmenu/GeneralMenuItem.qml index 46ed091b7e92758777f1593e658a3cd558b632e5..335c6f24b3cbb538f10ba9e66c7d1b754a92a670 100644 --- a/src/commoncomponents/contextmenu/GeneralMenuItem.qml +++ b/src/commoncomponents/contextmenu/GeneralMenuItem.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Constants 1.1 @@ -54,10 +54,13 @@ MenuItem { background: Rectangle { id: background + anchors.fill: parent anchors.leftMargin: 1 anchors.rightMargin: 1 - color: "transparent" + + color: menuItemContentRect.hovered ? + JamiTheme.hoverColor : JamiTheme.backgroundColor } anchors.fill: parent @@ -127,25 +130,6 @@ MenuItem { menuItem.clicked() parentMenu.close() } - - states: [ - State { - name: "hovered" - when: hovered - PropertyChanges { - target: background - color: JamiTheme.hoverColor - } - }, - State { - name: "normal" - when: !hovered - PropertyChanges { - target: background - color: JamiTheme.backgroundColor - } - } - ] } highlighted: true diff --git a/src/commoncomponents/contextmenu/GeneralMenuSeparator.qml b/src/commoncomponents/contextmenu/GeneralMenuSeparator.qml index 378c1294321e5d9dd7944e0736addfa81a2bbf05..2e1f2f0a6ea21db7ea8a9841041c169c05f2935f 100644 --- a/src/commoncomponents/contextmenu/GeneralMenuSeparator.qml +++ b/src/commoncomponents/contextmenu/GeneralMenuSeparator.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Constants 1.1 diff --git a/src/commoncomponents/emojipicker/EmojiPicker.qml b/src/commoncomponents/emojipicker/EmojiPicker.qml index e9679657e7aa4842947ffc7801c8e00c4545ec5a..dd9ef0bb0c042dd37d438d23c58a75d14ce8b256 100644 --- a/src/commoncomponents/emojipicker/EmojiPicker.qml +++ b/src/commoncomponents/emojipicker/EmojiPicker.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtWebEngine 1.10 -import QtWebChannel 1.15 +import QtQuick +import QtQuick.Controls +import QtWebEngine +import QtWebChannel import net.jami.Constants 1.1 import net.jami.Adapters 1.1 @@ -82,8 +82,8 @@ Rectangle { } } - onLoadingChanged: { - if (loadRequest.status == WebEngineView.LoadSucceededStatus) { + onLoadingChanged: function (loadingInfo) { + if (loadingInfo.status === WebEngineView.LoadSucceededStatus) { emojiPickerWebView.runJavaScript(UtilsAdapter.qStringFromFile( ":qwebchannel.js")) emojiPickerWebView.runJavaScript( diff --git a/src/constant/JamiQmlUtils.qml b/src/constant/JamiQmlUtils.qml index d0c02d5b7f5eca22e25a9c8d8de02f5739363b3c..a1e9c2a32a6310e8334fda8725f7fc5f51f6fddc 100644 --- a/src/constant/JamiQmlUtils.qml +++ b/src/constant/JamiQmlUtils.qml @@ -19,7 +19,7 @@ // JamiQmlUtils as a singleton is to provide global property entry pragma Singleton -import QtQuick 2.15 +import QtQuick import net.jami.Adapters 1.1 diff --git a/src/constant/JamiStrings.qml b/src/constant/JamiStrings.qml index da36a167258e85aca7f5be3e6f533467a754f60e..4029dd758fa6925472e0e2029da65f4837666f93 100644 --- a/src/constant/JamiStrings.qml +++ b/src/constant/JamiStrings.qml @@ -19,7 +19,7 @@ // JamiStrings as a singleton is to provide global strings entries. pragma Singleton -import QtQuick 2.15 +import QtQuick import net.jami.Helpers 1.1 diff --git a/src/constant/JamiTheme.qml b/src/constant/JamiTheme.qml index 7e847d06478c982f462c8784b3ab01e6f6562317..dbd6e49e7fa452b2d98dcfea48da48ddf6e09778 100644 --- a/src/constant/JamiTheme.qml +++ b/src/constant/JamiTheme.qml @@ -19,7 +19,7 @@ // JamiTheme as a singleton is to provide global theme property entry. pragma Singleton -import QtQuick 2.15 +import QtQuick import net.jami.Adapters 1.1 import net.jami.Enums 1.1 @@ -173,6 +173,9 @@ Item { // Files To Send Container property color removeFileButtonColor: Qt.rgba(96, 95, 97, 0.5) + // JamiScrollBar + property color scrollBarHandleColor: "#cecece" + // TypingDots property color typingDotsNormalColor: darkTheme ? "#686b72" : "lightgrey" property color typingDotsEnlargeColor: darkTheme ? "white" : Qt.darker("lightgrey", 3.0) @@ -194,6 +197,7 @@ Item { property color bgDarkMode_: rgba256(32, 32, 32, 100) property int shortFadeDuration: 150 + property int longFadeDuration: 400 property int recordBlinkDuration: 500 property int overlayFadeDelay: 4000 property int overlayFadeDuration: 250 @@ -274,7 +278,6 @@ Item { // Modal Popup property real modalPopupRadius: 4 - property real modalPopupDropShadowSamples: 16 // MessageWebView property real chatViewHairLineSize: 1 @@ -336,6 +339,9 @@ Item { property real usernameLineEditPointSize: 9 property real usernameLineEditlookupInterval: 200 + // JamiScrollBar + property int scrollBarHandleSize: 6 + // Main application spec property real mainViewMinWidth: 332 property real mainViewMinHeight: 500 diff --git a/src/constant/MsgSeq.qml b/src/constant/MsgSeq.qml index de25c238d77e0c62a823642716e7a5a51aca5dd4..f0e5de72d5fa1e23cf02a968f97fd540a4829a6a 100644 --- a/src/constant/MsgSeq.qml +++ b/src/constant/MsgSeq.qml @@ -1,5 +1,5 @@ pragma Singleton -import QtQml 2.15 +import QtQml QtObject { //readonly property int unknown: -1 readonly property int single: 0 diff --git a/src/contactadapter.cpp b/src/contactadapter.cpp index 96227a7375ac2e61fc8fcb72b61aa5c242ed774c..95508a2c5d7cb9ca125f5281a384841eb928f178 100644 --- a/src/contactadapter.cpp +++ b/src/contactadapter.cpp @@ -49,18 +49,20 @@ ContactAdapter::getContactSelectableModel(int type) // Adjust filter. switch (listModeltype_) { case SmartListModel::Type::CONVERSATION: - selectableProxyModel_->setPredicate([this](const QModelIndex& index, const QRegExp&) { - return !defaultModerators_.contains(index.data(Role::URI).toString()); - }); + selectableProxyModel_->setPredicate( + [this](const QModelIndex& index, const QRegularExpression&) { + return !defaultModerators_.contains(index.data(Role::URI).toString()); + }); break; case SmartListModel::Type::CONFERENCE: - selectableProxyModel_->setPredicate([](const QModelIndex& index, const QRegExp&) { + selectableProxyModel_->setPredicate([](const QModelIndex& index, const QRegularExpression&) { return index.data(Role::Presence).toBool(); }); break; case SmartListModel::Type::TRANSFER: - selectableProxyModel_->setPredicate([this](const QModelIndex& index, const QRegExp& regexp) { + selectableProxyModel_->setPredicate([this](const QModelIndex& index, + const QRegularExpression& regexp) { // Exclude current sip callee and filtered contact. bool match = true; const auto& conv = lrcInstance_->getConversationFromConvUid( @@ -70,12 +72,13 @@ ContactAdapter::getContactSelectableModel(int type) ->getAccountInfo(lrcInstance_->get_currentAccountId()) .contactModel->bestIdForContact(conv.participants[0]); - QRegExp matchExcept = QRegExp(QString("\\b(?!" + calleeDisplayId + "\\b)\\w+")); - match = matchExcept.indexIn(index.data(Role::BestId).toString()) != -1; + QRegularExpression matchExcept = QRegularExpression( + QString("\\b(?!" + calleeDisplayId + "\\b)\\w+")); + match = matchExcept.match(index.data(Role::BestId).toString()).hasMatch(); } if (match) { - match = regexp.indexIn(index.data(Role::BestId).toString()) != -1; + match = regexp.match(index.data(Role::BestId).toString()).hasMatch(); } return match && !index.parent().isValid(); }); @@ -95,13 +98,13 @@ ContactAdapter::setSearchFilter(const QString& filter) smartListModel_->setConferenceableFilter(filter); } else if (listModeltype_ == SmartListModel::Type::CONVERSATION) { selectableProxyModel_->setPredicate( - [this, filter](const QModelIndex& index, const QRegExp&) { + [this, filter](const QModelIndex& index, const QRegularExpression&) { return (!defaultModerators_.contains(index.data(Role::URI).toString()) && index.data(Role::Title).toString().contains(filter)); }); } - selectableProxyModel_->setFilterRegExp( - QRegExp(filter, Qt::CaseInsensitive, QRegExp::FixedString)); + selectableProxyModel_->setFilterRegularExpression( + QRegularExpression(filter, QRegularExpression::CaseInsensitiveOption)); } void @@ -190,9 +193,10 @@ ContactAdapter::contactSelected(int index) void ContactAdapter::connectSignals() { - connect(lrcInstance_->getCurrentContactModel(), - &ContactModel::bannedStatusChanged, - this, - &ContactAdapter::bannedStatusChanged, - Qt::UniqueConnection); + if (lrcInstance_->getCurrentContactModel()) + connect(lrcInstance_->getCurrentContactModel(), + &ContactModel::bannedStatusChanged, + this, + &ContactAdapter::bannedStatusChanged, + Qt::UniqueConnection); } diff --git a/src/contactadapter.h b/src/contactadapter.h index a4c15a23cfc48b80cf23c2c0b8d57902c8139695..1d754dcd3e6e886e8a38f01219dfe52e7e7ad778 100644 --- a/src/contactadapter.h +++ b/src/contactadapter.h @@ -42,7 +42,7 @@ class SelectableProxyModel final : public QSortFilterProxyModel Q_OBJECT public: - using FilterPredicate = std::function<bool(const QModelIndex&, const QRegExp&)>; + using FilterPredicate = std::function<bool(const QModelIndex&, const QRegularExpression&)>; explicit SelectableProxyModel(QObject* parent = nullptr) : QSortFilterProxyModel(parent) @@ -61,7 +61,7 @@ public: { // Accept all contacts in conversation list filtered with account type, except those in a call. auto index = sourceModel()->index(sourceRow, 0, sourceParent); - return filterPredicate_ ? filterPredicate_(index, filterRegExp()) : false; + return filterPredicate_ ? filterPredicate_(index, filterRegularExpression()) : false; } bool lessThan(const QModelIndex& left, const QModelIndex& right) const override diff --git a/src/conversationlistmodel.cpp b/src/conversationlistmodel.cpp index 355c79cdc5c7d442ff7de5acf997e77f4bdc26d6..03f2ad77cda8083532e2324599775557c8b7b330 100644 --- a/src/conversationlistmodel.cpp +++ b/src/conversationlistmodel.cpp @@ -93,7 +93,7 @@ bool ConversationListProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const { QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); - auto rx = filterRegExp(); + auto rx = filterRegularExpression(); auto uriStripper = URI(rx.pattern()); bool stripScheme = (uriStripper.schemeType() < URI::SchemeType::COUNT__); FlagPack<URI::Section> flags = URI::Section::USER_INFO | URI::Section::HOSTNAME @@ -118,16 +118,18 @@ ConversationListProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex& s // banned contacts require exact match if (index.data(Role::IsBanned).toBool()) { - if (!rx.isEmpty()) { - Q_FOREACH (const auto& filter, toFilter) - if (rx.exactMatch(filter)) { + if (!rx.isValid()) { + Q_FOREACH (const auto& filter, toFilter) { + auto matchResult = rx.match(filter); + if (matchResult.hasMatch() && matchResult.captured(0) == filter) { match = true; break; } + } } } else { Q_FOREACH (const auto& filter, toFilter) - if (rx.indexIn(filter) != -1) { + if (rx.match(filter).hasMatch()) { match = true; break; } diff --git a/src/conversationlistmodelbase.cpp b/src/conversationlistmodelbase.cpp index db577fc405679b8ba355550b9b9145c7fe59c782..3de0a53d1a142965dc2bfea2a8be5fc9496fd330 100644 --- a/src/conversationlistmodelbase.cpp +++ b/src/conversationlistmodelbase.cpp @@ -95,7 +95,7 @@ ConversationListModelBase::dataForItem(item_t item, int role) const if (!draft.isEmpty()) { // Pencil Emoji uint cp = 0x270F; - auto emojiString = QString::fromUcs4(&cp, 1); + auto emojiString = QString::fromUcs4(reinterpret_cast<char32_t*>(&cp), 1); return emojiString + draft; } } diff --git a/src/main.cpp b/src/main.cpp index 1cf92ae56e495f65678b8142ec3f9fce1d493a80..cdee5e828ba406f006510decd294da7335d6c7c3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,7 +24,8 @@ #include <QCryptographicHash> #include <QApplication> -#include <QtWebEngine> +#include <QtWebEngineCore> +#include <QtWebEngineQuick> #include <clocale> @@ -74,23 +75,16 @@ main(int argc, char* argv[]) #endif #endif qtWebEngineChromiumFlags << disableWebSecurity; -#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 0) - // To be recovered in Qt 6.2 and above - // https://bugs.chromium.org/p/chromium/issues/detail?id=1060099#c6*/ qtWebEngineChromiumFlags << singleProcess; -#endif + + QtWebEngineQuick::initialize(); + QApplication::setApplicationName("Jami"); QApplication::setOrganizationDomain("jami.net"); - QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true); - QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); QApplication::setQuitOnLastWindowClosed(false); - QCoreApplication::setAttribute(Qt::AA_UseOpenGLES); QCoreApplication::setApplicationVersion(QString(VERSION_STRING)); -#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) QApplication::setHighDpiScaleFactorRoundingPolicy( Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); -#endif - QtWebEngine::initialize(); auto newArgv = parseInputArgument(argc, argv, qtWebEngineChromiumFlags); diff --git a/src/mainapplication.cpp b/src/mainapplication.cpp index 34cee61caf29c2a05ba2b6c99b6ab8807279ca38..23b638ad5facf5baa39362e5fc7d32cadf579467 100644 --- a/src/mainapplication.cpp +++ b/src/mainapplication.cpp @@ -97,7 +97,7 @@ ScreenInfo::setCurrentFocusWindow(QWindow* window) { if (window && !currentFocusWindow_) { currentFocusWindow_ = window; - setDevicePixelRatio(currentFocusWindow_->screen()->devicePixelRatio()); + set_devicePixelRatio(currentFocusWindow_->screen()->devicePixelRatio()); disconnect(devicePixelRatioConnection_); disconnect(currentFocusWindowScreenConnection_); @@ -105,11 +105,11 @@ ScreenInfo::setCurrentFocusWindow(QWindow* window) currentFocusWindowScreenConnection_ = connect(currentFocusWindow_, &QWindow::screenChanged, [this] { currentFocusWindowScreen_ = currentFocusWindow_->screen(); - setDevicePixelRatio(currentFocusWindowScreen_->devicePixelRatio()); + set_devicePixelRatio(currentFocusWindowScreen_->devicePixelRatio()); devicePixelRatioConnection_ = connect( currentFocusWindowScreen_, &QScreen::physicalDotsPerInchChanged, [this] { - setDevicePixelRatio(currentFocusWindowScreen_->devicePixelRatio()); + set_devicePixelRatio(currentFocusWindowScreen_->devicePixelRatio()); }); }); } @@ -270,12 +270,14 @@ MainApplication::loadTranslations() QTranslator* qtTranslator_name = new QTranslator(this); if (locale_name != locale_lang) { if (qtTranslator_lang->load("qt_" + locale_lang, - QLibraryInfo::location(QLibraryInfo::TranslationsPath))) + QLibraryInfo::path(QLibraryInfo::TranslationsPath))) installTranslator(qtTranslator_lang); } - qtTranslator_name->load("qt_" + locale_name, - QLibraryInfo::location(QLibraryInfo::TranslationsPath)); - installTranslator(qtTranslator_name); + + if (qtTranslator_name->load("qt_" + locale_name, + QLibraryInfo::path(QLibraryInfo::TranslationsPath))) { + installTranslator(qtTranslator_name); + } QTranslator* lrcTranslator_lang = new QTranslator(this); QTranslator* lrcTranslator_name = new QTranslator(this); diff --git a/src/mainapplication.h b/src/mainapplication.h index f7fbc82de20c4bfc0d23cf4c7df2d8cad9ef6eac..be972170a36c33d9427964914c866d1e9ba1b313 100644 --- a/src/mainapplication.h +++ b/src/mainapplication.h @@ -21,6 +21,7 @@ #pragma once #include "lrcinstance.h" +#include "qtutils.h" #include <QFile> #include <QApplication> @@ -41,24 +42,11 @@ class PreviewEngine; class ScreenInfo : public QObject { Q_OBJECT - Q_PROPERTY(double devicePixelRatio MEMBER devicePixelRatio_ NOTIFY devicePixelRatioChanged) + QML_PROPERTY(double, devicePixelRatio) public: void setCurrentFocusWindow(QWindow* window); - void setDevicePixelRatio(double ratio) - { - if (ratio != devicePixelRatio_) { - devicePixelRatio_ = ratio; - - Q_EMIT devicePixelRatioChanged(); - } - } - -Q_SIGNALS: - void devicePixelRatioChanged(); private: - double devicePixelRatio_ {0.0}; - QMetaObject::Connection currentFocusWindowScreenConnection_; QMetaObject::Connection devicePixelRatioConnection_; diff --git a/src/mainview/MainView.qml b/src/mainview/MainView.qml index c3cb6f80194dc39030660a875de888d568a1c28e..2138d6a0466a5e7cc84e3bec0ac37dadb1800de3 100644 --- a/src/mainview/MainView.qml +++ b/src/mainview/MainView.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -340,7 +340,7 @@ Rectangle { width: mainViewSidePanelRect.width height: mainViewSidePanelRect.height - onItemSelected: { + onItemSelected: function (index) { settingsView.setSelected(index) if (sidePanelOnly) sidePanelViewStack.push(settingsView, StackView.Immediate) @@ -454,8 +454,12 @@ Rectangle { AboutPopUp { id: aboutPopUpDialog - height: Math.min(preferredHeight, - mainView.height - JamiTheme.preferredMarginSize * 2) + onVisibleChanged: { + height = Qt.binding(function () { + return Math.min(preferredHeight, + mainView.height - JamiTheme.preferredMarginSize * 2) + }) + } } WelcomePageQrDialog { @@ -510,14 +514,6 @@ Rectangle { } } - Shortcut { - sequence: "F10" - context: Qt.ApplicationShortcut - onActivated: { - shortcutsTable.open() - } - } - Shortcut { sequence: "F11" context: Qt.ApplicationShortcut @@ -565,8 +561,4 @@ Rectangle { context: Qt.ApplicationShortcut onActivated: Qt.quit() } - - KeyBoardShortcutTable { - id: shortcutsTable - } } diff --git a/src/mainview/components/AboutPopUp.qml b/src/mainview/components/AboutPopUp.qml index dab6561926d613faa9009b8671d073e551838e6f..6e2a3295b052640a1f0b449d7e9fc942e3fb75d1 100644 --- a/src/mainview/components/AboutPopUp.qml +++ b/src/mainview/components/AboutPopUp.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -37,217 +37,208 @@ ModalPopup { implicitWidth: 400 color: JamiTheme.backgroundColor - ScrollView { + JamiFlickable { id: aboutPopUpScrollView anchors.fill: parent - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - ScrollBar.vertical.policy: ScrollBar.AsNeeded - - clip: true + contentHeight: aboutPopUpContentRectColumnLayout.implicitHeight ColumnLayout { + id: aboutPopUpContentRectColumnLayout + width: Math.max(root.width, implicitWidth) height: Math.max(aboutPopUpScrollView.height, implicitHeight) - spacing: 0 - - ColumnLayout { - id: aboutPopUpContentRectColumnLayout + ResponsiveImage { + id: aboutPopUPJamiLogoImage Layout.alignment: Qt.AlignCenter + Layout.topMargin: JamiTheme.preferredMarginSize + Layout.preferredWidth: 250 + Layout.preferredHeight: 88 - ResponsiveImage { - id: aboutPopUPJamiLogoImage - - Layout.alignment: Qt.AlignCenter - Layout.topMargin: JamiTheme.preferredMarginSize - Layout.preferredWidth: 250 - Layout.preferredHeight: 88 - - source: JamiTheme.darkTheme ? - JamiResources.logo_jami_standard_coul_white_svg : - JamiResources.logo_jami_standard_coul_svg - } + source: JamiTheme.darkTheme ? + JamiResources.logo_jami_standard_coul_white_svg : + JamiResources.logo_jami_standard_coul_svg + } - MaterialLineEdit { - id: jamiVersionText + MaterialLineEdit { + id: jamiVersionText - Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: contentRect.width + Layout.alignment: Qt.AlignCenter + Layout.preferredWidth: contentRect.width - font.pointSize: JamiTheme.textFontSize + font.pointSize: JamiTheme.textFontSize - padding: 0 - readOnly: true - selectByMouse: true + padding: 0 + readOnly: true + selectByMouse: true - text: JamiStrings.version + ": " + UtilsAdapter.getVersionStr() - color: JamiTheme.textColor + text: JamiStrings.version + ": " + UtilsAdapter.getVersionStr() + color: JamiTheme.textColor - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - } + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + } - Label { - id: jamiSlogansText + Label { + id: jamiSlogansText - Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: contentRect.width - Layout.preferredHeight: textMetricsjamiSlogansText.boundingRect.height - Layout.topMargin: 5 + Layout.alignment: Qt.AlignCenter + Layout.preferredWidth: contentRect.width + Layout.preferredHeight: textMetricsjamiSlogansText.boundingRect.height + Layout.topMargin: 5 - wrapMode: Text.WordWrap - font.pointSize: JamiTheme.textFontSize + wrapMode: Text.WordWrap + font.pointSize: JamiTheme.textFontSize - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter - text: textMetricsjamiSlogansText.text - color: JamiTheme.textColor + text: textMetricsjamiSlogansText.text + color: JamiTheme.textColor - TextMetrics { - id: textMetricsjamiSlogansText - font: jamiSlogansText.font - text: JamiStrings.slogan - } + TextMetrics { + id: textMetricsjamiSlogansText + font: jamiSlogansText.font + text: JamiStrings.slogan } + } - Label { - id: jamiDeclarationText + Label { + id: jamiDeclarationText - Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: contentRect.width - Layout.preferredHeight: 40 - Layout.topMargin: 5 + Layout.alignment: Qt.AlignCenter + Layout.preferredWidth: contentRect.width + Layout.preferredHeight: 40 + Layout.topMargin: 5 - wrapMode: Text.WordWrap - font.pointSize: JamiTheme.textFontSize - color: JamiTheme.textColor + wrapMode: Text.WordWrap + font.pointSize: JamiTheme.textFontSize + color: JamiTheme.textColor - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter - // TextMetrics does not work for multi-line. - text: JamiStrings.declaration - } + // TextMetrics does not work for multi-line. + text: JamiStrings.declaration + } - Label { - id: jamiDeclarationHyperText + Label { + id: jamiDeclarationHyperText - Layout.alignment: Qt.AlignCenter + Layout.alignment: Qt.AlignCenter - // Strangely, hoveredLink works badly when width grows too large - Layout.preferredWidth: 50 - Layout.preferredHeight: textMetricsjamiDeclarationHyperText.boundingRect.height - Layout.topMargin: 5 - Layout.bottomMargin: 5 - color: JamiTheme.textColor + // Strangely, hoveredLink works badly when width grows too large + Layout.preferredWidth: 50 + Layout.preferredHeight: textMetricsjamiDeclarationHyperText.boundingRect.height + Layout.topMargin: 5 + Layout.bottomMargin: 5 + color: JamiTheme.textColor - font.pointSize: JamiTheme.textFontSize - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter + font.pointSize: JamiTheme.textFontSize + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter - text: textMetricsjamiDeclarationHyperText.text - onLinkActivated: Qt.openUrlExternally(link) + text: textMetricsjamiDeclarationHyperText.text + onLinkActivated: Qt.openUrlExternally(link) - TextMetrics { - id: textMetricsjamiDeclarationHyperText - font: jamiDeclarationHyperText.font - text: '<html><style type="text/css"></style><a href="https://jami.net">jami.net</a></html>' - } + TextMetrics { + id: textMetricsjamiDeclarationHyperText + font: jamiDeclarationHyperText.font + text: '<html><style type="text/css"></style><a href="https://jami.net">jami.net</a></html>' + } - MouseArea { - anchors.fill: parent + MouseArea { + anchors.fill: parent - // We don't want to eat clicks on the Text. - acceptedButtons: Qt.NoButton - cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor - } + // We don't want to eat clicks on the Text. + acceptedButtons: Qt.NoButton + cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor } + } - Label { - id: jamiDeclarationYearText + Label { + id: jamiDeclarationYearText - Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: contentRect.width - Layout.preferredHeight: textMetricsjamiDeclarationYearText.boundingRect.height - Layout.bottomMargin: 5 + Layout.alignment: Qt.AlignCenter + Layout.preferredWidth: contentRect.width + Layout.preferredHeight: textMetricsjamiDeclarationYearText.boundingRect.height + Layout.bottomMargin: 5 - font.pointSize: JamiTheme.textFontSize - color: JamiTheme.textColor + font.pointSize: JamiTheme.textFontSize + color: JamiTheme.textColor - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter - text: textMetricsjamiDeclarationYearText.text + text: textMetricsjamiDeclarationYearText.text - TextMetrics { - id: textMetricsjamiDeclarationYearText - font: jamiDeclarationYearText.font - text: JamiStrings.companyDeclarationYear - } + TextMetrics { + id: textMetricsjamiDeclarationYearText + font: jamiDeclarationYearText.font + text: JamiStrings.companyDeclarationYear } + } - Label { - id: jamiNoneWarrantyHyperText + Label { + id: jamiNoneWarrantyHyperText - Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: 300 - Layout.preferredHeight: textMetricsjamiNoneWarrantyHyperText.boundingRect.height * 2 - Layout.bottomMargin: 10 + Layout.alignment: Qt.AlignCenter + Layout.preferredWidth: 300 + Layout.preferredHeight: textMetricsjamiNoneWarrantyHyperText.boundingRect.height * 2 + Layout.bottomMargin: 10 - wrapMode: Text.WordWrap - font.pointSize: JamiTheme.tinyFontSize + wrapMode: Text.WordWrap + font.pointSize: JamiTheme.tinyFontSize - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - color: JamiTheme.textColor + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + color: JamiTheme.textColor - text: textMetricsjamiNoneWarrantyHyperText.text - onLinkActivated: Qt.openUrlExternally(link) + text: textMetricsjamiNoneWarrantyHyperText.text + onLinkActivated: Qt.openUrlExternally(link) - TextMetrics { - id: textMetricsjamiNoneWarrantyHyperText - font: jamiDeclarationHyperText.font - text: '<html><style type="text/css"></style>This program comes with absolutely no warranty.<br\>See the <a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License, version 3 or later</a> for details.</html>' - } + TextMetrics { + id: textMetricsjamiNoneWarrantyHyperText + font: jamiDeclarationHyperText.font + text: '<html><style type="text/css"></style>This program comes with absolutely no warranty.<br\>See the <a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License, version 3 or later</a> for details.</html>' + } - MouseArea { - anchors.fill: parent - acceptedButtons: Qt.NoButton - cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor - } + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.NoButton + cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor } + } - ProjectCreditsScrollView { - id: projectCreditsScrollView + ProjectCreditsScrollView { + id: projectCreditsScrollView - Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: contentRect.width - JamiTheme.preferredMarginSize * 2 - Layout.preferredHeight: 128 - Layout.margins: JamiTheme.preferredMarginSize - } + Layout.alignment: Qt.AlignCenter + Layout.preferredWidth: contentRect.width - JamiTheme.preferredMarginSize * 2 + Layout.preferredHeight: 128 + Layout.margins: JamiTheme.preferredMarginSize + } - MaterialButton { - id: btnClose + MaterialButton { + id: btnClose - Layout.alignment: Qt.AlignHCenter - Layout.bottomMargin: JamiTheme.preferredMarginSize + Layout.alignment: Qt.AlignHCenter + Layout.bottomMargin: JamiTheme.preferredMarginSize - preferredWidth: JamiTheme.preferredFieldWidth / 2 - preferredHeight: JamiTheme.preferredFieldHeight + preferredWidth: JamiTheme.preferredFieldWidth / 2 + preferredHeight: JamiTheme.preferredFieldHeight - text: qsTr("Close") - color: enabled? JamiTheme.buttonTintedBlack : JamiTheme.buttonTintedGrey - hoveredColor: JamiTheme.buttonTintedBlackHovered - pressedColor: JamiTheme.buttonTintedBlackPressed - outlined: true + text: qsTr("Close") + color: enabled ? JamiTheme.buttonTintedBlack : JamiTheme.buttonTintedGrey + hoveredColor: JamiTheme.buttonTintedBlackHovered + pressedColor: JamiTheme.buttonTintedBlackPressed + outlined: true - onClicked: { - close() - } + onClicked: { + close() } } } diff --git a/src/mainview/components/AccountComboBox.qml b/src/mainview/components/AccountComboBox.qml index 3cfc96db16e545a503674a376d92633014b4fccb..38beaacc19e6560d3cede986b962db11c22a29db 100644 --- a/src/mainview/components/AccountComboBox.qml +++ b/src/mainview/components/AccountComboBox.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/AccountComboBoxPopup.qml b/src/mainview/components/AccountComboBoxPopup.qml index 785245e91d60e87e76115b0fb6943c6d592fc1ef..524cf123bac438c2801e2e62e86311953217fcf6 100644 --- a/src/mainview/components/AccountComboBoxPopup.qml +++ b/src/mainview/components/AccountComboBoxPopup.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -42,19 +42,18 @@ Popup { padding: 0 modal: true Overlay.modal: Rectangle { - color: "transparent" + color: JamiTheme.transparentColor } contentItem: ColumnLayout { spacing: 0 - ListView { + + JamiListView { id: listView Layout.fillHeight: true Layout.preferredWidth: parent.width - clip: true - model: CurrentAccountFilterModel delegate: AccountItemDelegate { height: JamiTheme.accountListItemHeight @@ -64,8 +63,6 @@ Popup { LRCInstance.currentAccountId = ID } } - - ScrollBar.vertical: ScrollBar { } } // fake footer item as workaround for Qt 5.15 bug @@ -114,8 +111,8 @@ Popup { horizontalOffset: 3.0 verticalOffset: 3.0 radius: 16.0 - samples: 16 color: JamiTheme.shadowColor + transparentBorder: true } } } diff --git a/src/mainview/components/AccountItemDelegate.qml b/src/mainview/components/AccountItemDelegate.qml index 10eb4c74db7f2944416bdd3942a8a50a9478a639..6083b5f1302d8e1482ae966998854bfa509dc9d1 100644 --- a/src/mainview/components/AccountItemDelegate.qml +++ b/src/mainview/components/AccountItemDelegate.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/mainview/components/BadgeNotifier.qml b/src/mainview/components/BadgeNotifier.qml index 4070db0d111dfd2c87c4c7f27f5c1818d90cefad..758d0b00147265f72ac9320339deb1b75889f01d 100644 --- a/src/mainview/components/BadgeNotifier.qml +++ b/src/mainview/components/BadgeNotifier.qml @@ -17,7 +17,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import net.jami.Constants 1.1 diff --git a/src/mainview/components/CallActionBar.qml b/src/mainview/components/CallActionBar.qml index c87b4ef385e430de3b8257e2d920fb2357ea10cd..600a653293550b25d3a60ff1789539959b366065 100644 --- a/src/mainview/components/CallActionBar.qml +++ b/src/mainview/components/CallActionBar.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -463,7 +463,7 @@ Control { anchors.bottom: parent.top anchors.bottomMargin: itemSpacing visible: !overflowButton.popup.visible - ListView { + JamiListView { id: urgentOverflowListView spacing: itemSpacing @@ -473,7 +473,6 @@ Control { null delegate: buttonDelegate - ScrollBar.vertical: ScrollBar { } add: Transition { NumberAnimation { @@ -494,7 +493,7 @@ Control { implicitHeight: contentItem.implicitHeight padding: 0 - contentItem: ListView { + contentItem: JamiListView { id: overflowHiddenListView spacing: itemSpacing implicitHeight: contentHeight @@ -502,8 +501,6 @@ Control { model: overflowButton.popup.visible ? overflowButton.delegateModel : null - - ScrollBar.vertical: ScrollBar { } } background: Rectangle { diff --git a/src/mainview/components/CallButtonDelegate.qml b/src/mainview/components/CallButtonDelegate.qml index bda715d5afaeed2c235bdfc6cc6748291b67ad8f..c229c5862d5ff4fb73c5f43235ed25fe3a5fa149 100644 --- a/src/mainview/components/CallButtonDelegate.qml +++ b/src/mainview/components/CallButtonDelegate.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Constants 1.1 @@ -244,7 +244,7 @@ ItemDelegate { onOpened: menuAction.triggered() - contentItem: ListView { + contentItem: JamiListView { id: itemListView property real menuItemWidth: 0 @@ -255,10 +255,6 @@ ItemDelegate { implicitWidth: menuItemWidth implicitHeight: Math.min(contentHeight, menuItemHeight * 6) + 24 - ScrollBar.vertical: ScrollBar { } - - clip: true - model: menu.delegateModel TextMetrics { @@ -300,8 +296,8 @@ ItemDelegate { horizontalOffset: 0 verticalOffset: 0 radius: 8.0 - samples: 16 color: "#80000000" + transparentBorder: true } } diff --git a/src/mainview/components/CallOverlay.qml b/src/mainview/components/CallOverlay.qml index 19e3966f68952e5628934d572d0239d657ca0169..fce06a3c1292dcce1c1cc132f87ebf062a6a0fba 100644 --- a/src/mainview/components/CallOverlay.qml +++ b/src/mainview/components/CallOverlay.qml @@ -18,7 +18,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/CallStackView.qml b/src/mainview/components/CallStackView.qml index 343caa2f70eb846a4d9ea098f02b297b7139e30f..91d40b7766098eb83594f6b453a256c1cb76c0b5 100644 --- a/src/mainview/components/CallStackView.qml +++ b/src/mainview/components/CallStackView.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/CallViewContextMenu.qml b/src/mainview/components/CallViewContextMenu.qml index e43c8a31f87c3fef03ec21f1533da2d9c0fa6297..866be5e203d24ea4cb440b1b3d0cc1f1a65c405e 100644 --- a/src/mainview/components/CallViewContextMenu.qml +++ b/src/mainview/components/CallViewContextMenu.qml @@ -18,7 +18,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/ChatView.qml b/src/mainview/components/ChatView.qml index fe8be3a1ef32021b714c5e8a36239dc7863c526d..b13ffa716e2d60c123fca708f4e874762eb526f6 100644 --- a/src/mainview/components/ChatView.qml +++ b/src/mainview/components/ChatView.qml @@ -18,9 +18,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/ChatViewFooter.qml b/src/mainview/components/ChatViewFooter.qml index ea520b3b293d643f250ac2da117a337c1aac120e..0aace177ec033f3d54152dc319f1593dfbf9cd91 100644 --- a/src/mainview/components/ChatViewFooter.qml +++ b/src/mainview/components/ChatViewFooter.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/mainview/components/ChatViewHeader.qml b/src/mainview/components/ChatViewHeader.qml index 4a25b45bdd76c3aaf3896ebabb7a22a6aac3f350..ea629a8d07993151737d106222a37e3c3081821e 100644 --- a/src/mainview/components/ChatViewHeader.qml +++ b/src/mainview/components/ChatViewHeader.qml @@ -17,8 +17,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/mainview/components/ContactPicker.qml b/src/mainview/components/ContactPicker.qml index 2388a94b677f76789ef0a467750576c6e386c162..31b97aeea52439d4e1422c52132a6964a68e3268 100644 --- a/src/mainview/components/ContactPicker.qml +++ b/src/mainview/components/ContactPicker.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Models 1.1 @@ -105,7 +105,7 @@ Popup { } } - ListViewJami { + JamiListView { id: contactPickerListView Layout.alignment: Qt.AlignCenter @@ -114,8 +114,6 @@ Popup { model: ContactAdapter.getContactSelectableModel(type) - clip: true - delegate: ContactPickerItemDelegate { id: contactPickerItemDelegate diff --git a/src/mainview/components/ContactPickerItemDelegate.qml b/src/mainview/components/ContactPickerItemDelegate.qml index 0df7454200db453e72ec536b337f89656d398074..f3b6877d0abbee457c30e6e2893300e87bf2a026 100644 --- a/src/mainview/components/ContactPickerItemDelegate.qml +++ b/src/mainview/components/ContactPickerItemDelegate.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/src/mainview/components/ContactSearchBar.qml b/src/mainview/components/ContactSearchBar.qml index a2d88dc4a2ec1bbd99bade61bcd80a3149f2ef6d..740c0fd51f5359e9f5615fbecb07e9aaf794b126 100644 --- a/src/mainview/components/ContactSearchBar.qml +++ b/src/mainview/components/ContactSearchBar.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Constants 1.1 @@ -94,8 +94,8 @@ Rectangle { } onTextChanged: root.contactSearchBarTextChanged(contactSearchBar.text) - onReleased: { - if (event.button == Qt.RightButton) + onReleased: function (event) { + if (event.button === Qt.RightButton) lineEditContextMenu.openMenuAt(event) } } diff --git a/src/mainview/components/ConversationAvatar.qml b/src/mainview/components/ConversationAvatar.qml index 1a42e1165679d9d999abdcae2b8565a0c8b0f81a..6b96b4f5e0c498b013c568f9216915287f5680bf 100644 --- a/src/mainview/components/ConversationAvatar.qml +++ b/src/mainview/components/ConversationAvatar.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Adapters 1.1 diff --git a/src/mainview/components/ConversationListView.qml b/src/mainview/components/ConversationListView.qml index cae64a2240682e451d8156766dd4a8bf3238a1cc..72f05ebe2eaeb92be56e2973179eacfc13c69e7b 100644 --- a/src/mainview/components/ConversationListView.qml +++ b/src/mainview/components/ConversationListView.qml @@ -17,14 +17,16 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 import net.jami.Constants 1.1 -ListView { +import "../../commoncomponents" + +JamiListView { id: root // the following should be marked required (Qtver >= 5.15) @@ -35,10 +37,6 @@ ListView { delegate: SmartListItemDelegate {} currentIndex: model.currentFilteredRow - clip: true - maximumFlickVelocity: 1024 - ScrollBar.vertical: ScrollBar { } - // highlight selection // down and hover states are done within the delegate highlight: Rectangle { diff --git a/src/mainview/components/ConversationSmartListContextMenu.qml b/src/mainview/components/ConversationSmartListContextMenu.qml index 7530d56c0806c7fe23b640894d09847ed42e5c06..c560f220407d9636b4d6cfeef3bdaa3151445604 100644 --- a/src/mainview/components/ConversationSmartListContextMenu.qml +++ b/src/mainview/components/ConversationSmartListContextMenu.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/FilesToSendContainer.qml b/src/mainview/components/FilesToSendContainer.qml index 2db49546738f29b3dc75f0d8781296df7a2587e6..926b807129da14649d22f3353819ca26f16066db 100644 --- a/src/mainview/components/FilesToSendContainer.qml +++ b/src/mainview/components/FilesToSendContainer.qml @@ -16,12 +16,14 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Constants 1.1 +import "../../commoncomponents" + Rectangle { id: root @@ -30,7 +32,7 @@ Rectangle { color: JamiTheme.messageOutBgColor - ScrollView { + JamiFlickable { id: filesToSendContainerScrollView anchors.fill: root @@ -38,16 +40,9 @@ Rectangle { contentHeight: root.height contentWidth: filesToSendContainerRow.width - ScrollBar.horizontal.visible: { - var ratio = filesToSendContainerRow.width / root.width - return ratio > 1 - } - ScrollBar.horizontal.contentItem: Rectangle { - implicitHeight: 5 - radius: width / 2 - color: filesToSendContainerScrollView.ScrollBar.horizontal.pressed ? - JamiTheme.darkGreyColor : JamiTheme.whiteColor - } + horizontalHandleColor: + filesToSendContainerScrollView.ScrollBar.horizontal.pressed ? + JamiTheme.darkGreyColor : JamiTheme.whiteColor ScrollBar.vertical.policy: ScrollBar.AlwaysOff Row { diff --git a/src/mainview/components/FilesToSendDelegate.qml b/src/mainview/components/FilesToSendDelegate.qml index 0ff8a0a2b0c9caa90fe73288cd873490fd8b2013..fb642e1f08aecbc8ce029546d9e5da6af4a03c93 100644 --- a/src/mainview/components/FilesToSendDelegate.qml +++ b/src/mainview/components/FilesToSendDelegate.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Constants 1.1 import net.jami.Models 1.1 diff --git a/src/mainview/components/FilterTabButton.qml b/src/mainview/components/FilterTabButton.qml index fa3271b9e7678b35d6d37fca303e35e320e691e5..b17cc01358fa9428c5a694892361383c7f373f9c 100644 --- a/src/mainview/components/FilterTabButton.qml +++ b/src/mainview/components/FilterTabButton.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Constants 1.1 diff --git a/src/mainview/components/InitialCallPage.qml b/src/mainview/components/InitialCallPage.qml index aa7970671dc1a27cd1e3528541649fcf4ea5c23d..d84b5aa23902df77f2604223cbc7c5084900d7de 100644 --- a/src/mainview/components/InitialCallPage.qml +++ b/src/mainview/components/InitialCallPage.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -82,7 +82,9 @@ Rectangle { anchors.fill: parent propagateComposedEvents: false acceptedButtons: Qt.AllButtons - onDoubleClicked: mouse.accepted = true + onDoubleClicked: function (mouse) { + mouse.accepted = true + } } ColumnLayout { diff --git a/src/mainview/components/InvitationView.qml b/src/mainview/components/InvitationView.qml index 6499a1f34916f994a7a08ef803e4ee6bd341cbbc..fcac254bad8c8163669d9b31821a4bbe770b560c 100644 --- a/src/mainview/components/InvitationView.qml +++ b/src/mainview/components/InvitationView.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Constants 1.1 diff --git a/src/mainview/components/MainOverlay.qml b/src/mainview/components/MainOverlay.qml index cdcd20b3dae4a0aee88cf46dd67707d969edce71..fd428dacd830e2d1574689e17fa2152261390520 100644 --- a/src/mainview/components/MainOverlay.qml +++ b/src/mainview/components/MainOverlay.qml @@ -19,8 +19,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/MessageBar.qml b/src/mainview/components/MessageBar.qml index ed56cd2064739ac20255535ea8a84df307f44269..8ac2d3e93ba88da82ba8bd9d05187fd9fc10e059 100644 --- a/src/mainview/components/MessageBar.qml +++ b/src/mainview/components/MessageBar.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/src/mainview/components/MessageBarTextArea.qml b/src/mainview/components/MessageBarTextArea.qml index 3148be89e78b506fbf7c425ecaba6bb5d7ae4efc..8b8c94d4fa7d1d98afbc6b017883cea800574590 100644 --- a/src/mainview/components/MessageBarTextArea.qml +++ b/src/mainview/components/MessageBarTextArea.qml @@ -16,15 +16,15 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Adapters 1.1 import net.jami.Constants 1.1 import "../../commoncomponents" -Flickable { +JamiFlickable { id: root property alias text: textArea.text @@ -57,15 +57,11 @@ Flickable { } } - ScrollBar.vertical: ScrollBar { - policy: contentHeight > height ? ScrollBar.AlwaysOn : ScrollBar.AsNeeded - } - contentWidth: width contentHeight: textArea.implicitHeight interactive: true - clip: true + attachedFlickableMoving: contentHeight > height || root.moving function ensureVisible(r) { if (contentY >= r.y) @@ -118,7 +114,7 @@ Flickable { color: JamiTheme.transparentColor } - onReleased: { + onReleased: function (event) { if (event.button == Qt.RightButton) textAreaContextMenu.openMenuAt(event) } diff --git a/src/mainview/components/MessageListView.qml b/src/mainview/components/MessageListView.qml index dee42c3bd94670b9a62499c2f426fae6fb926673..9aec8fa869f1ebdee00145fdb7c8984e008f1d96 100644 --- a/src/mainview/components/MessageListView.qml +++ b/src/mainview/components/MessageListView.qml @@ -17,10 +17,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import Qt.labs.qmlmodels 1.0 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt.labs.qmlmodels import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/OngoingCallPage.qml b/src/mainview/components/OngoingCallPage.qml index 738ab910bc545fb76a14383a6e14460909154b7b..bfdc0d0311c9cb7921f3a35cdcc3b053dd78e617 100644 --- a/src/mainview/components/OngoingCallPage.qml +++ b/src/mainview/components/OngoingCallPage.qml @@ -18,10 +18,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -151,12 +151,12 @@ Rectangle { acceptedButtons: Qt.LeftButton | Qt.RightButton - onDoubleClicked: { + onDoubleClicked: function (mouse) { if (mouse.button === Qt.LeftButton) callStackView.toggleFullScreen() } - onClicked: { + onClicked: function (mouse) { if (mouse.button === Qt.RightButton) callOverlay.openCallViewContextMenuInPos(mouse.x, mouse.y) } @@ -223,7 +223,7 @@ Rectangle { anchors.fill: previewRenderer - onPressed: { + onPressed: function (mouse) { clickPos = Qt.point(mouse.x, mouse.y) } @@ -232,7 +232,7 @@ Rectangle { previewMagneticSnap() } - onPositionChanged: { + onPositionChanged: function (mouse) { // Calculate mouse position relative change. var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y) diff --git a/src/mainview/components/ParticipantCallInStatusDelegate.qml b/src/mainview/components/ParticipantCallInStatusDelegate.qml index 8bc5d65cae916c13cfe9d522988dc3d5e28a75c0..e576f8d16ab90130acb05c6ecd0135705f0076bd 100644 --- a/src/mainview/components/ParticipantCallInStatusDelegate.qml +++ b/src/mainview/components/ParticipantCallInStatusDelegate.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/src/mainview/components/ParticipantCallInStatusView.qml b/src/mainview/components/ParticipantCallInStatusView.qml index da8709e6197d667cd64e9777085d31ec272b600a..a3fa42c35f289a2789120c06c979b739990ca39b 100644 --- a/src/mainview/components/ParticipantCallInStatusView.qml +++ b/src/mainview/components/ParticipantCallInStatusView.qml @@ -16,14 +16,16 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 import net.jami.Constants 1.1 -ListView { +import "../../commoncomponents" + +JamiListView { id: root width: currentItem ? currentItem.width + currentItem.spinningAnimationWidth @@ -52,8 +54,4 @@ ListView { : preferredHeight } } - - clip: true - maximumFlickVelocity: 1024 - ScrollBar.vertical: ScrollBar { } } diff --git a/src/mainview/components/ParticipantControlLayout.qml b/src/mainview/components/ParticipantControlLayout.qml index 146836c317d0403bb956ae47f3e75c5f3e82fb6e..184cd94b935962d97b04c185513b851a4541297c 100644 --- a/src/mainview/components/ParticipantControlLayout.qml +++ b/src/mainview/components/ParticipantControlLayout.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick.Layouts 1.15 +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Constants 1.1 diff --git a/src/mainview/components/ParticipantOverlay.qml b/src/mainview/components/ParticipantOverlay.qml index 6a080fd6d1836fde2842a96acfc7fa8abab1d7aa..9fb874608c068ca9b50fdeac262ebd9092932729 100644 --- a/src/mainview/components/ParticipantOverlay.qml +++ b/src/mainview/components/ParticipantOverlay.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Shapes 1.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Shapes import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/src/mainview/components/ParticipantOverlayButton.qml b/src/mainview/components/ParticipantOverlayButton.qml index ec646cdfece601445d9879f3be976eef5fe35dfe..0f4ac7edf30d7b4a3b9138e3af8b89c4961174b8 100644 --- a/src/mainview/components/ParticipantOverlayButton.qml +++ b/src/mainview/components/ParticipantOverlayButton.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import net.jami.Constants 1.1 diff --git a/src/mainview/components/ParticipantOverlayMenu.qml b/src/mainview/components/ParticipantOverlayMenu.qml index b3e82741ce89d53b8129d52bc2d75753e5c33ebd..26c93e0bcfc1e869f40b5a85fe4fe0474322c7f5 100644 --- a/src/mainview/components/ParticipantOverlayMenu.qml +++ b/src/mainview/components/ParticipantOverlayMenu.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/src/mainview/components/ParticipantsLayer.qml b/src/mainview/components/ParticipantsLayer.qml index b29320567e76bcb160969d2c9ed8c5cceaad385d..6aba4e8e1bf14332c217c72ba58b4419c13aa71d 100644 --- a/src/mainview/components/ParticipantsLayer.qml +++ b/src/mainview/components/ParticipantsLayer.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick Item { id: root diff --git a/src/mainview/components/PluginHandlerItemDelegate.qml b/src/mainview/components/PluginHandlerItemDelegate.qml index 2a5d6a9011d512e13dadf1dac1e50a2d5b2fd7ac..d573d3f5830031de18907a4c6b6912bdbf7027b6 100644 --- a/src/mainview/components/PluginHandlerItemDelegate.qml +++ b/src/mainview/components/PluginHandlerItemDelegate.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/mainview/components/PluginHandlerPicker.qml b/src/mainview/components/PluginHandlerPicker.qml index e531b97b77ff7cf6a499e06daf2bf327a0cbb48e..e659d9a02fb0ae9d16e415c1131d3b90314e414d 100644 --- a/src/mainview/components/PluginHandlerPicker.qml +++ b/src/mainview/components/PluginHandlerPicker.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -123,7 +123,7 @@ Popup { } } - ListViewJami { + JamiListView { id: pluginhandlerPickerListView Layout.alignment: Qt.AlignHCenter @@ -142,8 +142,6 @@ Popup { } } - clip: true - delegate: PluginHandlerItemDelegate { id: pluginHandlerItemDelegate visible: PluginModel.getPluginsEnabled() @@ -167,8 +165,6 @@ Popup { updateProperties() } } - - ScrollBar.vertical: ScrollBar { } } } } @@ -241,7 +237,7 @@ Popup { } } - ListViewJami { + JamiListView { id: pluginhandlerPreferencePickerListView Layout.alignment: Qt.AlignHCenter @@ -253,8 +249,6 @@ Popup { model: PluginAdapter.getHandlerPreferencesModel(pluginId, handlerName) - clip: true - delegate: PreferenceItemDelegate { id: pluginHandlerPreferenceDelegate width: pluginhandlerPreferencePickerListView.width diff --git a/src/mainview/components/ProjectCreditsScrollView.qml b/src/mainview/components/ProjectCreditsScrollView.qml index d22e3b9ec6066ca50f9ee5036ab02670a70f0f03..e08925f5d2e6401ee8346ba95fe051d2afd9085f 100644 --- a/src/mainview/components/ProjectCreditsScrollView.qml +++ b/src/mainview/components/ProjectCreditsScrollView.qml @@ -16,47 +16,49 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 import net.jami.Constants 1.1 -ScrollView { - id: projectCreditsScrollView +import "../../commoncomponents" - clip: true +Rectangle { + id: root - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + radius: 5 + border.color: JamiTheme.tabbarBorderColor - TextEdit { - id: projectCreditsTextArea + JamiFlickable { + id: projectCreditsFlickable - horizontalAlignment: Text.AlignHCenter + anchors.fill: parent - width: projectCreditsScrollView.width + contentHeight: projectCreditsTextArea.paintedHeight - selectByMouse: false - readOnly: true - wrapMode: Text.WordWrap + TextEdit { + id: projectCreditsTextArea - font.pointSize: JamiTheme.textFontSize - text: UtilsAdapter.getProjectCredits() - textFormat: TextEdit.RichText + horizontalAlignment: Text.AlignHCenter - MouseArea { - anchors.fill: parent - propagateComposedEvents: true - cursorShape: Qt.ArrowCursor - acceptedButtons: Qt.NoButton - } - } + width: projectCreditsFlickable.width - background: Rectangle { - id: projectCreditsScrollViewBackground + selectByMouse: false + readOnly: true + wrapMode: Text.WordWrap - radius: 5 - border.color: JamiTheme.tabbarBorderColor + font.pointSize: JamiTheme.textFontSize + text: UtilsAdapter.getProjectCredits() + textFormat: TextEdit.RichText + + MouseArea { + anchors.fill: parent + propagateComposedEvents: true + cursorShape: Qt.ArrowCursor + acceptedButtons: Qt.NoButton + } + } } } diff --git a/src/mainview/components/ReadOnlyFooter.qml b/src/mainview/components/ReadOnlyFooter.qml index 97033315ee0b4cb21a3f67fa65a652cbcbe34863..0e1b2fff0f245db4f4f889570d9d60e8e429112d 100644 --- a/src/mainview/components/ReadOnlyFooter.qml +++ b/src/mainview/components/ReadOnlyFooter.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Constants 1.1 diff --git a/src/mainview/components/RecordBox.qml b/src/mainview/components/RecordBox.qml index ccfcc6feb7b0ff577ce0305428790ab5ea83ecca..51819406bf38bf76d8d1e0a2135c49166f1fe726 100644 --- a/src/mainview/components/RecordBox.qml +++ b/src/mainview/components/RecordBox.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtGraphicalEffects 1.15 -import QtQuick.Shapes 1.15 +import QtQuick +import QtQuick.Controls +import Qt5Compat.GraphicalEffects +import QtQuick.Shapes import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/ScreenRubberBand.qml b/src/mainview/components/ScreenRubberBand.qml index 79f255217e8a4192c02d93dcc0c4e84aa8392a54..71fb789e149cf10cd697c03f91ce949a148b4e65 100644 --- a/src/mainview/components/ScreenRubberBand.qml +++ b/src/mainview/components/ScreenRubberBand.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Window 2.15 +import QtQuick +import QtQuick.Window import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/src/mainview/components/ScrollToBottomButton.qml b/src/mainview/components/ScrollToBottomButton.qml index 7eae256bb8e2905d66cacd62ced6b3dbb791629c..7f3c0245c6468406831fe4eedfca228bd87e8158 100644 --- a/src/mainview/components/ScrollToBottomButton.qml +++ b/src/mainview/components/ScrollToBottomButton.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import Qt5Compat.GraphicalEffects import net.jami.Constants 1.1 @@ -123,7 +123,6 @@ Control { horizontalOffset: 3.0 verticalOffset: 3.0 radius: 8.0 - samples: 16 color: JamiTheme.shadowColor } } diff --git a/src/mainview/components/SelectScreen.qml b/src/mainview/components/SelectScreen.qml index e4902d2bc50ac913695cead740e9f171f9ffdb5f..0a5d0a0c86e4e0aa7ce47c7050070fd69722e3ec 100644 --- a/src/mainview/components/SelectScreen.qml +++ b/src/mainview/components/SelectScreen.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Window 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Window +import QtQuick.Controls import net.jami.Adapters 1.1 import net.jami.Models 1.1 @@ -76,10 +76,6 @@ Window { screen: JamiQmlUtils.mainApplicationScreen - modality: Qt.ApplicationModal - - title: JamiStrings.selectScreen - Rectangle { id: selectScreenWindowRect @@ -87,7 +83,20 @@ Window { color: JamiTheme.backgroundColor - ScrollView { + Text { + id: screenListText + + anchors.top: selectScreenWindowRect.top + anchors.topMargin: JamiTheme.preferredMarginSize + anchors.horizontalCenter: selectScreenWindowRect.horizontalCenter + + font.pointSize: JamiTheme.textFontSize + 2 + font.bold: true + text: JamiStrings.selectScreen + color: JamiTheme.textColor + } + + JamiFlickable { id: screenSelectionScrollView anchors.topMargin: JamiTheme.preferredMarginSize @@ -97,10 +106,7 @@ Window { height: selectScreenWindowRect.height - (selectButton.height + JamiTheme.preferredMarginSize * 4) - clip: true - - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - ScrollBar.vertical.policy: ScrollBar.AlwaysOn + contentHeight: screenSelectionScrollViewColumn.implicitHeight Flow { id: screenSelectionScrollViewFlow diff --git a/src/mainview/components/SidePanel.qml b/src/mainview/components/SidePanel.qml index 71660cc572a4fc503c1f2d9cc7c4ee21e6a267ff..dbdb6a1ef5c5da149b80e5365f7f43e88a53fb19 100644 --- a/src/mainview/components/SidePanel.qml +++ b/src/mainview/components/SidePanel.qml @@ -17,8 +17,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -69,7 +69,7 @@ Rectangle { anchors.right: sidePanelRect.right anchors.rightMargin: 15 - onContactSearchBarTextChanged: { + onContactSearchBarTextChanged: function (text) { // not calling positionViewAtBeginning will cause // sort animation visual bugs conversationListView.positionViewAtBeginning() diff --git a/src/mainview/components/SidePanelTabBar.qml b/src/mainview/components/SidePanelTabBar.qml index 970b081f16b5856a0e761435ccc9460373e65e62..4020a11f6196d680c0765d12bccef02808627bf2 100644 --- a/src/mainview/components/SidePanelTabBar.qml +++ b/src/mainview/components/SidePanelTabBar.qml @@ -17,7 +17,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick.Controls 2.15 +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/SipInputPanel.qml b/src/mainview/components/SipInputPanel.qml index 426047a027cdf1337169b01bc3a8a003e5f0e39d..6ac9fc676676beb94df4af5de8c5055564f93d0d 100644 --- a/src/mainview/components/SipInputPanel.qml +++ b/src/mainview/components/SipInputPanel.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/src/mainview/components/SmartListItemDelegate.qml b/src/mainview/components/SmartListItemDelegate.qml index 612e95061767b2a61165ea7f5ff8f1b68412b347..56f0049147d7e2a02e898e61efd98e57d8444bf8 100644 --- a/src/mainview/components/SmartListItemDelegate.qml +++ b/src/mainview/components/SmartListItemDelegate.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -190,6 +190,8 @@ ItemDelegate { MouseArea { anchors.fill: parent acceptedButtons: Qt.RightButton - onClicked: root.ListView.view.openContextMenuAt(mouse.x, mouse.y, root) + onClicked: function (mouse) { + root.ListView.view.openContextMenuAt(mouse.x, mouse.y, root) + } } } diff --git a/src/mainview/components/UserProfile.qml b/src/mainview/components/UserProfile.qml index 9e5bc9a9f21ff3ec7ecc72d74baf0621b63c1831..0a82fbd4dbdbf849bbe9b8820d17fd71b41f20cc 100644 --- a/src/mainview/components/UserProfile.qml +++ b/src/mainview/components/UserProfile.qml @@ -17,8 +17,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Constants 1.1 diff --git a/src/mainview/components/WelcomePage.qml b/src/mainview/components/WelcomePage.qml index f6ce1a406c0d295e0afa6116cb5e67b7e3af5c69..bd912b8ffc6b53901b91bce91c63436763825c93 100644 --- a/src/mainview/components/WelcomePage.qml +++ b/src/mainview/components/WelcomePage.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/mainview/components/WelcomePageQrDialog.qml b/src/mainview/components/WelcomePageQrDialog.qml index 75c7b03844f617313b0d86678e40d5e93320f7b5..5efd84cb14ca2812efb5f0494e6af399cefcfbc3 100644 --- a/src/mainview/components/WelcomePageQrDialog.qml +++ b/src/mainview/components/WelcomePageQrDialog.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import net.jami.Adapters 1.1 diff --git a/src/messagesadapter.cpp b/src/messagesadapter.cpp index 25f9121830104d7e165922e1ee1c448b7491bd76..91f8eed02458a63056b1a1f8adbc9418a8095b91 100644 --- a/src/messagesadapter.cpp +++ b/src/messagesadapter.cpp @@ -248,7 +248,8 @@ MessagesAdapter::onPaste() // Extract the local paths of the files. for (int i = 0; i < urlList.size(); ++i) { // Trim file:// or file:/// from url. - QString filePath = urlList.at(i).toString().remove(QRegExp("^file:\\/{2,3}")); + QString filePath = urlList.at(i).toString().remove( + QRegularExpression("^file:\\/{2,3}")); Q_EMIT newFilePasted(filePath); } } else { diff --git a/src/networkmanager.cpp b/src/networkmanager.cpp index d82c3d3d25c7136c1bdd50d3fb1919f335a16da8..c5ba2b0dca57c84c90474148d4152871e19daaf2 100644 --- a/src/networkmanager.cpp +++ b/src/networkmanager.cpp @@ -81,11 +81,7 @@ NetWorkManager::get(const QUrl& url, const DoneCallBack& doneCb, const QString& Q_EMIT statusChanged(GetStatus::STARTED); connect(reply_, -#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::errorOccurred), -#else - QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), -#endif [this, doneCb, path](QNetworkReply::NetworkError error) { reply_->disconnect(); reset(true); diff --git a/src/previewengine.cpp b/src/previewengine.cpp index 5796ff07bef2c1ceb3c8d22291736339fde5c5cc..abced5db4aeadcb7a53556527e471abb26355aac 100644 --- a/src/previewengine.cpp +++ b/src/previewengine.cpp @@ -19,7 +19,6 @@ #include "previewengine.h" -#include <QtWebEngine> #include <QWebEngineScript> #include <QWebEngineProfile> #include <QWebEngineSettings> diff --git a/src/previewengine.h b/src/previewengine.h index 8cb7e322f35dc8aceb8f9c4eedd40a7308041500..c19eb6b7d4b4d7215ac2b03927120b057fa82c0f 100644 --- a/src/previewengine.h +++ b/src/previewengine.h @@ -22,9 +22,7 @@ #include "utils.h" #include <QtWebChannel> -#include <QtWebEngine> #include <QtWebEngineCore> -#include <QtWebEngine> #include <QWebEngineView> class PreviewEngine; diff --git a/src/qmlregister.cpp b/src/qmlregister.cpp index 6954d39882c1a0cca9cdefb93c4ee239464a538c..759b0043c37ecb9c43d671b2ed1d97faa487646f 100644 --- a/src/qmlregister.cpp +++ b/src/qmlregister.cpp @@ -179,7 +179,7 @@ registerTypes(QQmlEngine* engine, QML_REGISTERSINGLETONTYPE_URL(NS_CONSTANTS, "qrc:/src/constant/JamiResources.qml", JamiResources); QML_REGISTERSINGLETONTYPE_URL(NS_CONSTANTS, "qrc:/src/constant/MsgSeq.qml", MsgSeq); - QML_REGISTERSINGLETONTYPE_POBJECT(NS_CONSTANTS, screenInfo, "ScreenInfo") + QML_REGISTERSINGLETONTYPE_POBJECT(NS_CONSTANTS, screenInfo, "CurrentScreenInfo") QML_REGISTERSINGLETONTYPE_POBJECT(NS_CONSTANTS, lrcInstance, "LRCInstance") QML_REGISTERSINGLETONTYPE_POBJECT(NS_CONSTANTS, settingsManager, "AppSettingsManager") diff --git a/src/quickimageproviderbase.h b/src/quickimageproviderbase.h index 896269d104f3ec4635beb9ac80daefb55ae3ee03..66c84751cefe137d3da0d830c638cfc4354d73c9 100644 --- a/src/quickimageproviderbase.h +++ b/src/quickimageproviderbase.h @@ -24,7 +24,7 @@ class LRCInstance; -class QuickImageProviderBase : public QObject, public QQuickImageProvider +class QuickImageProviderBase : public QQuickImageProvider { public: QuickImageProviderBase(QQuickImageProvider::ImageType type, diff --git a/src/settingsview/SettingsView.qml b/src/settingsview/SettingsView.qml index d89b61cecaa040bb53221db541ee8cdb62944582..752adbace977f7058ce632dbc37346427742e6e5 100644 --- a/src/settingsview/SettingsView.qml +++ b/src/settingsview/SettingsView.qml @@ -17,15 +17,16 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 import net.jami.Constants 1.1 import "components" +import "../commoncomponents" import "../mainview/js/contactpickercreation.js" as ContactPickerCreation Rectangle { @@ -129,7 +130,7 @@ Rectangle { onBackArrowClicked: root.settingsBackArrowClicked() } - Flickable { + JamiFlickable { id: settingsViewScrollView anchors.top: settingsHeader.bottom @@ -138,10 +139,6 @@ Rectangle { height: settingsViewRect.height - settingsHeader.height width: settingsViewRect.width - maximumFlickVelocity: 1024 - ScrollBar.vertical: ScrollBar { } - - clip: true contentHeight: rightSettingsStackLayout.height StackLayout { @@ -194,7 +191,7 @@ Rectangle { leaveSettingsSlot(false) } - onAdvancedSettingsToggled: { + onAdvancedSettingsToggled: function (settingsVisible) { if (settingsVisible) settingsViewScrollView.contentY = getAdvancedSettingsScrollPosition() else diff --git a/src/settingsview/components/AccountProfile.qml b/src/settingsview/components/AccountProfile.qml index 9b1e3fb4b1e4bb092bd6da6e0379ae0648573de4..8074d264f2c2de9e73657161c6709aaea9009e9d 100644 --- a/src/settingsview/components/AccountProfile.qml +++ b/src/settingsview/components/AccountProfile.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedCallSettings.qml b/src/settingsview/components/AdvancedCallSettings.qml index 3e327280f1ad162d84fe5a32059b24c38de91655..445297351e70172127c6e10a6aaf2692150fbccd 100644 --- a/src/settingsview/components/AdvancedCallSettings.qml +++ b/src/settingsview/components/AdvancedCallSettings.qml @@ -17,8 +17,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -161,7 +161,7 @@ ColumnLayout { - JamiTheme.preferredMarginSize * 4 } - ListViewJami { + JamiListView { id: moderatorListWidget Layout.fillWidth: true diff --git a/src/settingsview/components/AdvancedChatSettings.qml b/src/settingsview/components/AdvancedChatSettings.qml index be753075826439de91d5a6cc9a5b6126911ee6e0..eb68320d0ee779a6a858d3ed30d4a8fd1df9fdd6 100644 --- a/src/settingsview/components/AdvancedChatSettings.qml +++ b/src/settingsview/components/AdvancedChatSettings.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Constants 1.1 diff --git a/src/settingsview/components/AdvancedConnectivitySettings.qml b/src/settingsview/components/AdvancedConnectivitySettings.qml index b7b29a473c171a8556ec2c74b0aeb1741861a2ea..f068285c84d27449c5397ea955e03bf9bc8c1668 100644 --- a/src/settingsview/components/AdvancedConnectivitySettings.qml +++ b/src/settingsview/components/AdvancedConnectivitySettings.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedJamiSecuritySettings.qml b/src/settingsview/components/AdvancedJamiSecuritySettings.qml index 4e68c945721afe257c6e03685c62059f8dc8031a..bb0e3a8d75a1f5cf699163c7d3ad25b2ea1249dc 100644 --- a/src/settingsview/components/AdvancedJamiSecuritySettings.qml +++ b/src/settingsview/components/AdvancedJamiSecuritySettings.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedMediaSettings.qml b/src/settingsview/components/AdvancedMediaSettings.qml index badf9025083118f0e0ccf611991f73ac9807226a..4eff637069a7e9d68b90136f8ffa95991bd1bcd6 100644 --- a/src/settingsview/components/AdvancedMediaSettings.qml +++ b/src/settingsview/components/AdvancedMediaSettings.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedNameServerSettings.qml b/src/settingsview/components/AdvancedNameServerSettings.qml index 0843ba31a38ac9d6cf605631f5e7b7141fc1dd07..2dcbede86b1f35be817286e4bbe544713c8fc863 100644 --- a/src/settingsview/components/AdvancedNameServerSettings.qml +++ b/src/settingsview/components/AdvancedNameServerSettings.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedOpenDHTSettings.qml b/src/settingsview/components/AdvancedOpenDHTSettings.qml index f8b07618541ce29a2ea80296d4b9f3e1f07e1f3c..655b1a3d23e01c27e2faba62d28f96343cdc7853 100644 --- a/src/settingsview/components/AdvancedOpenDHTSettings.qml +++ b/src/settingsview/components/AdvancedOpenDHTSettings.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedPublicAddressSettings.qml b/src/settingsview/components/AdvancedPublicAddressSettings.qml index 552cb865778e28f6caa10f17129731ae791ffa56..7525d6e4d36bb119d996df26510024d55d1cd0c4 100644 --- a/src/settingsview/components/AdvancedPublicAddressSettings.qml +++ b/src/settingsview/components/AdvancedPublicAddressSettings.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedSDPSettings.qml b/src/settingsview/components/AdvancedSDPSettings.qml index 59862b54e3564dd6e77a89781f7656ca44ef643c..76032a958ec227f1791a4e894f674e6151a05c07 100644 --- a/src/settingsview/components/AdvancedSDPSettings.qml +++ b/src/settingsview/components/AdvancedSDPSettings.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedSIPSecuritySettings.qml b/src/settingsview/components/AdvancedSIPSecuritySettings.qml index 237c1bb5d84a08c50d050dfe4a5bc5b0ad2984fe..933cc12dc29d4df59107b40587219881d0ae30f3 100644 --- a/src/settingsview/components/AdvancedSIPSecuritySettings.qml +++ b/src/settingsview/components/AdvancedSIPSecuritySettings.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedSettings.qml b/src/settingsview/components/AdvancedSettings.qml index c1c735935b07703a320473d5ae458c63e66f3bcd..753502db0c4545d1488353916862876a1400545e 100644 --- a/src/settingsview/components/AdvancedSettings.qml +++ b/src/settingsview/components/AdvancedSettings.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AdvancedVoiceMailSettings.qml b/src/settingsview/components/AdvancedVoiceMailSettings.qml index b01269878ff7a0d4092dffec602e2c3487a575f8..c079fb0dcdc0a9fa62f64e44640afcfea10b7f1b 100644 --- a/src/settingsview/components/AdvancedVoiceMailSettings.qml +++ b/src/settingsview/components/AdvancedVoiceMailSettings.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AudioSettings.qml b/src/settingsview/components/AudioSettings.qml index 34649f31412551164e2783216ca81f9e30a09f4f..fb416e540e275d57eb77a13d3614522fa0fa2a98 100644 --- a/src/settingsview/components/AudioSettings.qml +++ b/src/settingsview/components/AudioSettings.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/AvSettingPage.qml b/src/settingsview/components/AvSettingPage.qml index 52cd2b50ffb5449abdfa899b91e4a8d0ac44ae3f..76eadd545b9447278a37bcc37bbf4427884ed090 100644 --- a/src/settingsview/components/AvSettingPage.qml +++ b/src/settingsview/components/AvSettingPage.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/BannedContacts.qml b/src/settingsview/components/BannedContacts.qml index e86281a3975ea37b7014f86ba3f47827a5434d64..4da3bec121644d1e357fdbdb951931fc173e498e 100644 --- a/src/settingsview/components/BannedContacts.qml +++ b/src/settingsview/components/BannedContacts.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -100,7 +100,7 @@ ColumnLayout { } } - ListViewJami { + JamiListView { id: bannedListWidget Layout.fillWidth: true diff --git a/src/settingsview/components/ChatviewSettings.qml b/src/settingsview/components/ChatviewSettings.qml index 660807e6668515e4283b49391d6cb281c2d0b49b..85dc572effb40ee5d6d2f7aaf0c73ea3aa8076f6 100644 --- a/src/settingsview/components/ChatviewSettings.qml +++ b/src/settingsview/components/ChatviewSettings.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/ContactItemDelegate.qml b/src/settingsview/components/ContactItemDelegate.qml index 7418ad035df987e2d0ffc92c799daa04beaa1c1e..f7814aac62e5361eda3c79f43bf540afd8438fee 100644 --- a/src/settingsview/components/ContactItemDelegate.qml +++ b/src/settingsview/components/ContactItemDelegate.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/settingsview/components/CurrentAccountSettings.qml b/src/settingsview/components/CurrentAccountSettings.qml index d1189acb14e67f0f31026bbf2b8adb663420550f..d71b5cc32fd93fc2028ae2329f42340be6d07512 100644 --- a/src/settingsview/components/CurrentAccountSettings.qml +++ b/src/settingsview/components/CurrentAccountSettings.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import Qt.labs.platform 1.1 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt.labs.platform import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/DeviceItemDelegate.qml b/src/settingsview/components/DeviceItemDelegate.qml index b209c4fd211b2572c9c6ed0258153346e9e85c8f..ea5429c90d7aed823eec1ac48f99caea470e9d82 100644 --- a/src/settingsview/components/DeviceItemDelegate.qml +++ b/src/settingsview/components/DeviceItemDelegate.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/FileTransferSettings.qml b/src/settingsview/components/FileTransferSettings.qml index 64eb8cbe6fb25450cd33be352b3dfd341e39ae13..b7224a300815732f35fb13c443f2c09a8fdc4899 100644 --- a/src/settingsview/components/FileTransferSettings.qml +++ b/src/settingsview/components/FileTransferSettings.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Enums 1.1 diff --git a/src/settingsview/components/GeneralSettingsPage.qml b/src/settingsview/components/GeneralSettingsPage.qml index 0b913dc49988cb16f1332e5bb0966501bd9a22fe..e55c0975c1c676d404b63ec9a271c031f48f83b3 100644 --- a/src/settingsview/components/GeneralSettingsPage.qml +++ b/src/settingsview/components/GeneralSettingsPage.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/JamiUserIdentity.qml b/src/settingsview/components/JamiUserIdentity.qml index 29f2b05df7b65fe193575d905b33d6cf3f8a52c4..41672859891248eab8345251b103a2d5b00ddc7c 100644 --- a/src/settingsview/components/JamiUserIdentity.qml +++ b/src/settingsview/components/JamiUserIdentity.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/KeyBoardShortcutKey.qml b/src/settingsview/components/KeyBoardShortcutKey.qml deleted file mode 100644 index 2189283e0384a053fcf5cbe0fc0881f88a3b10fd..0000000000000000000000000000000000000000 --- a/src/settingsview/components/KeyBoardShortcutKey.qml +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2019-2020 by Savoir-faire Linux - * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -import QtQuick 2.15 - -import net.jami.Constants 1.1 - -Item { - property alias text: shortcutText.text - Rectangle{ - id: keyRect - width: t_metrics.tightBoundingRect.width + 10 - height: t_metrics.tightBoundingRect.height + 10 - color: JamiTheme.buttonTintedGrey - radius: 5 - anchors.centerIn: parent - Text { - id : shortcutText - anchors.centerIn: parent - anchors.leftMargin: 10 - font.family: "Arial" - font.pointSize: 12 - color: JamiTheme.whiteColor - } - TextMetrics { - id: t_metrics - font: shortcutText.font - text: shortcutText.text - } - } -} diff --git a/src/settingsview/components/KeyBoardShortcutTable.qml b/src/settingsview/components/KeyBoardShortcutTable.qml deleted file mode 100644 index bd9d4b917acd7b26bc2f37535dd0aa5c556578a5..0000000000000000000000000000000000000000 --- a/src/settingsview/components/KeyBoardShortcutTable.qml +++ /dev/null @@ -1,624 +0,0 @@ -/* - * Copyright (C) 2019-2020 by Savoir-faire Linux - * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.4 -import QtQuick.Layouts 1.15 - -import net.jami.Models 1.1 -import net.jami.Constants 1.1 - -import "../../commoncomponents" - -BaseDialog { - id: root - - visible: false - title: qsTr("Shortcuts") - - contentItem: Rectangle { - id: shortcutsTableContentRect - - implicitWidth: 800 - implicitHeight: 600 - color: JamiTheme.backgroundColor - - ListModel { - id: keyboardGeneralShortcutsModel - ListElement { - Shortcut: "Ctrl+J" - Description: qsTr("Open account list") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+L" - Description: qsTr("Focus conversations list") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+R" - Description: qsTr("Requests list") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+↑" - Description: qsTr("Previous conversation") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+↓" - Description: qsTr("Next conversation") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+F" - Description: qsTr("Search bar") - KeyLength: 2 - } - ListElement { - Shortcut: "F11" - Description: qsTr("Fullscreen") - KeyLength: 1 - } - } - ListModel { - id: keyboardConversationShortcutsModel - ListElement { - Shortcut: "Ctrl+Shift+C" - Description: qsTr("Start an audio call") - KeyLength: 3 - } - ListElement { - Shortcut: "Ctrl+Shift+X" - Description: qsTr("Start a video call") - KeyLength: 3 - } - ListElement { - Shortcut: "Ctrl+Shift+L" - Description: qsTr("Clear history") - KeyLength: 3 - } - ListElement { - Shortcut: "Ctrl+Shift+B" - Description: qsTr("Block contact") - KeyLength: 3 - } - ListElement { - Shortcut: "Ctrl+Shift+Delete" - Description: qsTr("Remove conversation") - KeyLength: 3 - } - ListElement { - Shortcut: "Shift+Ctrl+A" - Description: qsTr("Accept contact request") - KeyLength: 3 - } - } - ListModel { - id: keyboardSettingsShortcutsModel - ListElement { - Shortcut: "Ctrl+M" - Description: qsTr("Media settings") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+G" - Description: qsTr("General settings") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+I" - Description: qsTr("Account settings") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+Shift+N" - Description: qsTr("Open account creation wizard") - KeyLength: 3 - } - ListElement { - Shortcut: "F10" - Description: qsTr("Open window") - KeyLength: 1 - } - } - ListModel { - id: keyboardCallsShortcutsModel - ListElement { - Shortcut: "Ctrl+Y" - Description: qsTr("Answer an incoming call") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+D" - Description: qsTr("End call") - KeyLength: 2 - } - ListElement { - Shortcut: "Ctrl+Shift+D" - Description: qsTr("Decline the call request") - KeyLength: 2 - } - } - Component { - id: shortcutDelegateWithThreeKeys - - Rectangle { - id: cellRectWithThreeKeys - - implicitWidth: JamiTheme.mainViewMinWidth / 2 - implicitHeight: 50 - anchors.left: parent.left - anchors.leftMargin: 20 - color: JamiTheme.backgroundColor - border.color: JamiTheme.backgroundColor - - Rectangle { - id: containerRectWithThreeKeys - - implicitWidth: parent.width - 10 - implicitHeight: 50 - - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter - color: JamiTheme.backgroundColor - - Component.onCompleted: { - var componentKeyOne = Qt.createComponent("KeyBoardShortcutKey.qml") - if (componentKeyOne.status === Component.Ready) { - var objectKeyOne = componentKeyOne.createObject(containerRectWithThreeKeys) - objectKeyOne.anchors.verticalCenter = containerRectWithThreeKeys.verticalCenter - objectKeyOne.anchors.left = containerRectWithThreeKeys.left - objectKeyOne.text = Qt.binding(function() { return modelData.Shortcut.split("+")[0] }) - } - if (modelData.Shortcut.split("+").length === 1) - return - var componentPlusSign = Qt.createQmlObject('import QtQuick 2.0;' + - 'Text {anchors.verticalCenter: containerRectWithThreeKeys.verticalCenter;' + - 'anchors.verticalCenterOffset: -2;' + - 'anchors.left: containerRectWithThreeKeys.left;' + - 'anchors.leftMargin: 30;' + - 'font.bold: true;' + - 'font.pointSize : 12;' + - 'text: "+"}', - containerRectWithThreeKeys) - componentPlusSign.color = Qt.binding(function() { return JamiTheme.textColor }) - var componentKeyTwo = Qt.createComponent("KeyBoardShortcutKey.qml") - if (componentKeyTwo.status === Component.Ready) { - var objectKeyTwo = componentKeyTwo.createObject(containerRectWithThreeKeys) - objectKeyTwo.anchors.verticalCenter = containerRectWithThreeKeys.verticalCenter - objectKeyTwo.anchors.left = containerRectWithThreeKeys.left - objectKeyTwo.anchors.leftMargin = componentPlusSign.anchors.leftMargin + 42 - objectKeyTwo.text = Qt.binding(function() { return modelData.Shortcut.split("+")[1] }) - } - - if (modelData.Shortcut.split("+").length === 2) - return - var componentPlusSignTwo = Qt.createQmlObject('import QtQuick 2.0;' + - 'Text {anchors.verticalCenter: containerRectWithThreeKeys.verticalCenter;' + - 'anchors.verticalCenterOffset: -2;' + - 'anchors.left: containerRectWithThreeKeys.left;' + - 'anchors.leftMargin: 97;' + - 'font.bold: true;' + - 'font.pointSize : 12;' + - 'text: "+"}', - containerRectWithThreeKeys) - componentPlusSignTwo.color = Qt.binding(function() { return JamiTheme.textColor }) - var componentKeyThree = Qt.createComponent("KeyBoardShortcutKey.qml") - if (componentKeyThree.status === Component.Ready) { - var objectKeyThree = componentKeyThree.createObject(containerRectWithThreeKeys) - objectKeyThree.anchors.verticalCenter = containerRectWithThreeKeys.verticalCenter - objectKeyThree.anchors.left = containerRectWithThreeKeys.left - objectKeyThree.anchors.leftMargin = componentPlusSignTwo.anchors.leftMargin + 35 - objectKeyThree.text = Qt.binding(function() { return modelData.Shortcut.split("+")[2] }) - } - } - } - } - } - Component { - id: descriptionDelegate - - Rectangle { - implicitWidth: root.width / 2 - implicitHeight: 50 - - color: JamiTheme.backgroundColor - border.color: JamiTheme.backgroundColor - Text { - id : descriptionText - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 10 - font.family: "Arial" - font.pointSize: JamiTheme.textFontSize - text: styleData.value - color: JamiTheme.textColor - } - } - } - - Column { - spacing: 2 - id: columnAll - anchors.rightMargin: 20 - anchors.leftMargin: 20 - anchors.bottomMargin: 20 - anchors.topMargin: 50 - - width: JamiTheme.mainViewMinWidth - height: JamiTheme.mainViewMinHeight - 100 - anchors.fill: parent - - StackLayout { - // pages - implicitWidth: parent.width - implicitHeight: parent.height - tabBar.height - currentIndex: tabBar.currentIndex - Item { - id: tabOne - Rectangle { - implicitWidth: parent.width / 2 - implicitHeight: parent.height - anchors.left: parent.left - TableView { - id: generalTableView - anchors.fill: parent - horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff - frameVisible: false - TableViewColumn { - role: "Description" - width: generalTableView.width / 2 - delegate: descriptionDelegate - } - TableViewColumn { - role: "Shortcut" - width: generalTableView.width / 2 - delegate: Component{ - Loader { - property variant modelData: model - sourceComponent: shortcutDelegateWithThreeKeys - asynchronous: true - } - } - } - model: keyboardGeneralShortcutsModel - rowDelegate: Rectangle { - height: 50 - color: JamiTheme.backgroundColor - } - style: TableViewStyle { - backgroundColor: JamiTheme.backgroundColor - alternateBackgroundColor: JamiTheme.backgroundColor - headerDelegate: Rectangle { - // Only first column's header is shown - height: [t_metrics_general.tightBoundingRect.height + 10, 0][styleData.column % 2] - width: [parent.width, 0][styleData.column % 2] - color: JamiTheme.backgroundColor - radius: 4 - anchors.top: parent.top - anchors.topMargin: 5 - Text { - id : generalShortcutText - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 10 - font.family: "Arial" - font.pointSize: JamiTheme.headerFontSize - text: styleData.column % 2 ? "" : "General" - color: JamiTheme.textColor - } - TextMetrics { - id: t_metrics_general - font: generalShortcutText.font - text: generalShortcutText.text - } - } - } - } - } - Rectangle { - implicitWidth: parent.width / 2 - implicitHeight: parent.height - anchors.right: parent.right - TableView { - id: conversationsTableView - anchors.fill: parent - horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff - frameVisible: false - TableViewColumn { - role: "Description" - width: conversationsTableView.width / 2 - delegate: descriptionDelegate - } - TableViewColumn { - role: "Shortcut" - width: conversationsTableView.width / 2 - delegate: Component{ - Loader { - property variant modelData: model - sourceComponent: shortcutDelegateWithThreeKeys - asynchronous: true - } - } - } - model: keyboardConversationShortcutsModel - rowDelegate: Rectangle { - height: 50 - color: JamiTheme.backgroundColor - } - style: TableViewStyle { - backgroundColor: JamiTheme.backgroundColor - alternateBackgroundColor: JamiTheme.backgroundColor - headerDelegate: Rectangle { - // Only first column's header is shown - height: [t_metrics_conversations.tightBoundingRect.height + 10, 0][styleData.column % 2] - width: [parent.width, 0][styleData.column % 2] - color: JamiTheme.backgroundColor - radius: 4 - anchors.top: parent.top - anchors.topMargin: 5 - Text { - id : conversationsShortcutText - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 10 - font.family: "Arial" - font.pointSize: JamiTheme.headerFontSize - text: styleData.column % 2 ? "" : JamiStrings.conversations - color: JamiTheme.textColor - } - TextMetrics { - id: t_metrics_conversations - font: conversationsShortcutText.font - text: conversationsShortcutText.text - } - } - } - } - } - } - Item { - id: tabTwo - Rectangle { - implicitWidth: parent.width / 2 - implicitHeight: parent.height - anchors.left: parent.left - TableView { - id: callsTableView - anchors.fill: parent - horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff - frameVisible: false - TableViewColumn { - role: "Description" - width: callsTableView.width / 2 - delegate: descriptionDelegate - } - TableViewColumn { - role: "Shortcut" - width: callsTableView.width / 2 - delegate: Component{ - Loader { - property variant modelData: model - sourceComponent: shortcutDelegateWithThreeKeys - asynchronous: true - } - } - } - model: keyboardCallsShortcutsModel - rowDelegate: Rectangle { - height: 50 - color: JamiTheme.backgroundColor - } - style: TableViewStyle { - backgroundColor: JamiTheme.backgroundColor - alternateBackgroundColor: JamiTheme.backgroundColor - headerDelegate: Rectangle { - // Only first column's header is shown - height: [t_metrics_calls.tightBoundingRect.height + 10, 0][styleData.column % 2] - width: [parent.width, 0][styleData.column % 2] - color: JamiTheme.backgroundColor - radius: 4 - anchors.top: parent.top - anchors.topMargin: 5 - Text { - id : callsShortcutText - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 10 - font.family: "Arial" - font.pointSize: 12 - text: styleData.column % 2 ? "" : "Calls" - color: JamiTheme.textColor - } - // make sure that calls and settings header are parallel - TextMetrics { - id: t_metrics_calls - font: callsShortcutText.font - text: "Settings" - } - } - } - } - } - Rectangle { - implicitWidth: parent.width / 2 - implicitHeight: parent.height - anchors.right: parent.right - TableView { - id: settingsTableView - anchors.fill: parent - horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff - frameVisible: false - TableViewColumn { - role: "Description" - width: settingsTableView.width / 2 - delegate: descriptionDelegate - } - TableViewColumn { - role: "Shortcut" - width: settingsTableView.width / 2 - delegate: Component{ - Loader { - property variant modelData: model - sourceComponent: shortcutDelegateWithThreeKeys - asynchronous: true - } - } - } - model: keyboardSettingsShortcutsModel - rowDelegate: Rectangle { - height: 50 - color: JamiTheme.backgroundColor - } - style: TableViewStyle { - backgroundColor: JamiTheme.backgroundColor - alternateBackgroundColor: JamiTheme.backgroundColor - headerDelegate: Rectangle { - // Only first column's header is shown - height: [t_metrics_settings.tightBoundingRect.height + 10, 0][styleData.column % 2] - width: [parent.width, 0][styleData.column % 2] - color: JamiTheme.backgroundColor - radius: 4 - anchors.top: parent.top - anchors.topMargin: 5 - Text { - id : settingsShortcutText - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 10 - font.family: "Arial" - font.pointSize: 12 - text: styleData.column % 2 ? "" : "Settings" - color: JamiTheme.textColor - } - TextMetrics { - id: t_metrics_settings - font: settingsShortcutText.font - text: settingsShortcutText.text - } - } - } - } - } - } - } - } - - TabBar { - id: tabBar - anchors.horizontalCenter: parent.horizontalCenter - - anchors.bottom: parent.bottom - anchors.bottomMargin: parent.height - 500 // Forced postion below table - - width: JamiTheme.preferredFieldWidth * 2 - height: JamiTheme.preferredFieldHeight - background: Rectangle { color: "transparent" } - - currentIndex: 0 - TabButton { - id: pageOne - width: JamiTheme.preferredFieldWidth - text: "1" - down: true - // customize tab button - contentItem: Text { - text: pageOne.text - font: pageOne.font - opacity: enabled ? 1.0 : 0.3 - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideRight - color: JamiTheme.textColor - } - // customize tab button - background: Rectangle { - id: buttonRectOne - implicitWidth: JamiTheme.preferredFieldWidth - implicitHeight: JamiTheme.preferredFieldHeight - radius: 4 - color: pageOne.down ? JamiTheme.selectedColor : "transparent" - MouseArea { - anchors.fill: parent - hoverEnabled: true - onPressed: { buttonRectOne.color = JamiTheme.pressColor; tabBar.currentIndex = 0; pageOne.down = true; pageTwo.down = false;} - onReleased: { buttonRectOne.color = JamiTheme.selectedColor; } - onEntered: { buttonRectOne.color = JamiTheme.hoverColor; } - onExited: { buttonRectOne.color = Qt.binding(function() { return pageOne.down ? JamiTheme.selectedColor : "transparent" }); } - } - } - } - TabButton { - id: pageTwo - text: "2" - width: JamiTheme.preferredFieldWidth - contentItem: Text { - text: pageTwo.text - font: pageTwo.font - opacity: enabled ? 1.0 : 0.3 - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideRight - color: JamiTheme.textColor - } - - background: Rectangle { - id: buttonRectTwo - implicitWidth: JamiTheme.preferredFieldWidth - implicitHeight: JamiTheme.preferredFieldHeight - - radius: 4 - color: pageTwo.down ? JamiTheme.selectedColor : "transparent" - MouseArea { - anchors.fill: parent - hoverEnabled: true - onPressed: { buttonRectTwo.color = JamiTheme.pressColor; tabBar.currentIndex = 1; pageTwo.down = true; pageOne.down = false;} - onReleased: { buttonRectTwo.color = JamiTheme.selectedColor; } - onEntered: { buttonRectTwo.color = JamiTheme.hoverColor; } - onExited: { buttonRectTwo.color = Qt.binding(function() { return pageTwo.down ? JamiTheme.selectedColor : "transparent" }); } - } - } - } - } - - MaterialButton { - id: btnClose - - anchors.bottom: parent.bottom - anchors.bottomMargin: JamiTheme.preferredMarginSize - anchors.horizontalCenter: parent.horizontalCenter - - preferredWidth: JamiTheme.preferredFieldWidth / 2 - preferredHeight: JamiTheme.preferredFieldHeight - - color: JamiTheme.buttonTintedBlack - hoveredColor: JamiTheme.buttonTintedBlackHovered - pressedColor: JamiTheme.buttonTintedBlackPressed - outlined: true - - text: JamiStrings.close - - onClicked: { - close() - } - } - } -} diff --git a/src/settingsview/components/LevelMeter.qml b/src/settingsview/components/LevelMeter.qml index aa5ead41292a6b51cfbc6f342096fe883a57508d..0968d0aece93b303f8f95b563dcfad44e1877130 100644 --- a/src/settingsview/components/LevelMeter.qml +++ b/src/settingsview/components/LevelMeter.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -34,9 +34,9 @@ ProgressBar { onVisibleChanged: { if (visible) { rmsLevel = 0 - AvAdapter.startAudioMeter(true) + AvAdapter.startAudioMeter() } else - AvAdapter.stopAudioMeter(true) + AvAdapter.stopAudioMeter() } function clamp(num, a, b) { diff --git a/src/settingsview/components/LinkDeviceDialog.qml b/src/settingsview/components/LinkDeviceDialog.qml index 7be430dfd19d00c70b83ad9de8a1d5a89853090a..1cdff81e392e1f081774dfc4967ca4021da60489 100644 --- a/src/settingsview/components/LinkDeviceDialog.qml +++ b/src/settingsview/components/LinkDeviceDialog.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/LinkedDevices.qml b/src/settingsview/components/LinkedDevices.qml index f091f467be0f16a40110922ee8da7678243d1c97..a35eacedee42ed84853deb642deaf18e2535b49b 100644 --- a/src/settingsview/components/LinkedDevices.qml +++ b/src/settingsview/components/LinkedDevices.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -75,7 +75,7 @@ ColumnLayout { font.kerning: true } - ListViewJami { + JamiListView { id: settingsListView Layout.fillWidth: true diff --git a/src/settingsview/components/LogsView.qml b/src/settingsview/components/LogsView.qml index bd28ef8484073df4cf4dc92ab00ad6bfcc889a7f..98edfb607b5664c659c3b6e0569a75c8a86aef87 100644 --- a/src/settingsview/components/LogsView.qml +++ b/src/settingsview/components/LogsView.qml @@ -16,10 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Dialogs 1.2 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -89,10 +88,9 @@ Dialog { } title: JamiStrings.logsViewTitle - modality: Qt.NonModal width: 800 height: 700 - standardButtons: StandardButton.NoButton + standardButtons: Dialog.NoButton ColumnLayout { diff --git a/src/settingsview/components/MediaCodecDelegate.qml b/src/settingsview/components/MediaCodecDelegate.qml index 41cf1b18226372e8ee0107917c45a8a687cefb29..afde87c07cac87a12bdfb26daf085863df0d5f5b 100644 --- a/src/settingsview/components/MediaCodecDelegate.qml +++ b/src/settingsview/components/MediaCodecDelegate.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/settingsview/components/MediaSettings.qml b/src/settingsview/components/MediaSettings.qml index 614133db977e6d432f467b0efe7b97f1c9f5b29a..ce3b4400bf38e4182695dab445819b11fe2598b4 100644 --- a/src/settingsview/components/MediaSettings.qml +++ b/src/settingsview/components/MediaSettings.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -100,7 +100,7 @@ ColumnLayout { } } - ListViewJami { + JamiListView { id: mediaListWidget Layout.fillWidth: true diff --git a/src/settingsview/components/NameRegistrationDialog.qml b/src/settingsview/components/NameRegistrationDialog.qml index c617f73c69230f66039ddbb2ab842bb34ed18b58..96d62ed7e88d47ebbe19705429011dd509948306 100644 --- a/src/settingsview/components/NameRegistrationDialog.qml +++ b/src/settingsview/components/NameRegistrationDialog.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/PluginItemDelegate.qml b/src/settingsview/components/PluginItemDelegate.qml index 258bfcf1105af707a27d3a89daaf3f608e3b5e6d..45bbdf74d8508137085ecf43b3b6e72b79e15479 100644 --- a/src/settingsview/components/PluginItemDelegate.qml +++ b/src/settingsview/components/PluginItemDelegate.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/PluginListPreferencesView.qml b/src/settingsview/components/PluginListPreferencesView.qml index 3195e25547d94c14d75043e55614217c48bb305f..5152197d5cfa661295d4adb6eb6ccffa2882aa6a 100644 --- a/src/settingsview/components/PluginListPreferencesView.qml +++ b/src/settingsview/components/PluginListPreferencesView.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/src/settingsview/components/PluginListSettingsView.qml b/src/settingsview/components/PluginListSettingsView.qml index f3b7d9a4ad890a461e1596b04ecebfb490f93490..ce6f773ac201706be841b3d0bb3dedd3a563bbe7 100644 --- a/src/settingsview/components/PluginListSettingsView.qml +++ b/src/settingsview/components/PluginListSettingsView.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import Qt.labs.platform 1.1 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt.labs.platform import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/PluginSettingsPage.qml b/src/settingsview/components/PluginSettingsPage.qml index 758cc7c71a84bf4d5bebe53d28b4642538bbe273..7e68452f3be592ee3c4827c990a2b25f9b93ca77 100644 --- a/src/settingsview/components/PluginSettingsPage.qml +++ b/src/settingsview/components/PluginSettingsPage.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/src/settingsview/components/RecordingSettings.qml b/src/settingsview/components/RecordingSettings.qml index 962290470e1bd4b5fe7b4f97600d1657e325cd83..3ef714318fe668baf95ba84dee4789a6990f92cc 100644 --- a/src/settingsview/components/RecordingSettings.qml +++ b/src/settingsview/components/RecordingSettings.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import Qt.labs.platform 1.1 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt.labs.platform import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/RevokeDevicePasswordDialog.qml b/src/settingsview/components/RevokeDevicePasswordDialog.qml index 23a5b50cd1051febe2490987805eac79251545a4..e5e4362c0950ff8093349f0f793f8fcbed019a30 100644 --- a/src/settingsview/components/RevokeDevicePasswordDialog.qml +++ b/src/settingsview/components/RevokeDevicePasswordDialog.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Constants 1.1 diff --git a/src/settingsview/components/SIPUserIdentity.qml b/src/settingsview/components/SIPUserIdentity.qml index 083f0a85b95890b34660a2e9420147a4f263e20c..7adfab3db20a322a85c4eda206340aba7145a05e 100644 --- a/src/settingsview/components/SIPUserIdentity.qml +++ b/src/settingsview/components/SIPUserIdentity.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/SettingMaterialButton.qml b/src/settingsview/components/SettingMaterialButton.qml index aed909d1a5a0f31146d106913471228ff167d9ec..876885e908320056ce1660ee078c51989da80dbe 100644 --- a/src/settingsview/components/SettingMaterialButton.qml +++ b/src/settingsview/components/SettingMaterialButton.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/SettingSpinBox.qml b/src/settingsview/components/SettingSpinBox.qml index eb03538de079f91c0c059ab8a6e1b02f9fc9c0e3..56069591e7a476a1c8c44df8457cf72c735fddc1 100644 --- a/src/settingsview/components/SettingSpinBox.qml +++ b/src/settingsview/components/SettingSpinBox.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/SettingsComboBox.qml b/src/settingsview/components/SettingsComboBox.qml index 63a4f7b76b02d039becb0f2ebf3d0cdc9010222b..afb71b4de460f4b81369dda638d844f2da59a857 100644 --- a/src/settingsview/components/SettingsComboBox.qml +++ b/src/settingsview/components/SettingsComboBox.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Constants 1.1 diff --git a/src/settingsview/components/SettingsHeader.qml b/src/settingsview/components/SettingsHeader.qml index d8d46a04d4550a27f0bc0dc9504a89d7ed775e35..1189db39b6be9a77fdb3b58ff46c0c10e88e5d06 100644 --- a/src/settingsview/components/SettingsHeader.qml +++ b/src/settingsview/components/SettingsHeader.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/settingsview/components/SettingsMaterialLineEdit.qml b/src/settingsview/components/SettingsMaterialLineEdit.qml index 77b0c53f16cf6e18d331e2947ab4d9038642a750..ddf7a1d74d7cc2c0f6b476e5a90deb520ca526b4 100644 --- a/src/settingsview/components/SettingsMaterialLineEdit.qml +++ b/src/settingsview/components/SettingsMaterialLineEdit.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/SettingsMenu.qml b/src/settingsview/components/SettingsMenu.qml index 8045dca56a62a9bdf5bb88682125a05c2aa7d69d..98d9e3bcade8a98b49678405d6d44e691f58b912 100644 --- a/src/settingsview/components/SettingsMenu.qml +++ b/src/settingsview/components/SettingsMenu.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/settingsview/components/SystemSettings.qml b/src/settingsview/components/SystemSettings.qml index 5ac2f213f09382b96ae095fa9628cb89d7c7a1c5..ad994fd7b4840460fbef38d885fcb1f942f101b1 100644 --- a/src/settingsview/components/SystemSettings.qml +++ b/src/settingsview/components/SystemSettings.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import Qt.labs.platform 1.1 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt.labs.platform import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/ToggleSwitch.qml b/src/settingsview/components/ToggleSwitch.qml index 2a6e0bb0c45d664fe7327c079ce2cf76e4d48d3b..d839c0a202d3e009c433fd2366cbd7be7d67dfa3 100644 --- a/src/settingsview/components/ToggleSwitch.qml +++ b/src/settingsview/components/ToggleSwitch.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Constants 1.1 diff --git a/src/settingsview/components/TroubleshootSettings.qml b/src/settingsview/components/TroubleshootSettings.qml index a8bec519ca52b99957e2496b800eb96d4cb94c83..81a62ed2b8e4cdaaf6a54d8a9357f0ed27263057 100644 --- a/src/settingsview/components/TroubleshootSettings.qml +++ b/src/settingsview/components/TroubleshootSettings.qml @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/UpdateSettings.qml b/src/settingsview/components/UpdateSettings.qml index 3793783e3d4c914a23a8320bb29d78efc4c51f20..00be6e6ceb11bac294e8aeb261a410e9ae68aa19 100644 --- a/src/settingsview/components/UpdateSettings.qml +++ b/src/settingsview/components/UpdateSettings.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Adapters 1.1 import net.jami.Enums 1.1 @@ -244,7 +244,7 @@ ColumnLayout { buttonTitles: [JamiStrings.optionCancel] buttonStyles: [SimpleMessageDialog.ButtonStyle.TintedBlue] buttonCallBacks: [function() {UpdateManager.cancelUpdate()}] - onVisibilityChanged: { + onVisibleChanged: { if (!visible) UpdateManager.cancelUpdate() } diff --git a/src/settingsview/components/UserIdentity.qml b/src/settingsview/components/UserIdentity.qml index 5e573bece0e5f5214b10e21fcbe025524f2128ca..c3aa218c0cc54e2c4db9b14f0b7e7950063ed8e3 100644 --- a/src/settingsview/components/UserIdentity.qml +++ b/src/settingsview/components/UserIdentity.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/settingsview/components/VideoSettings.qml b/src/settingsview/components/VideoSettings.qml index 064ed0a1f61277c4d3de935c6e57ca93ae43a7bc..9e8bb283e3a3ad11d68e1143e75067dbf30a8639 100644 --- a/src/settingsview/components/VideoSettings.qml +++ b/src/settingsview/components/VideoSettings.qml @@ -16,10 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import QtGraphicalEffects 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/updatemanager.cpp b/src/updatemanager.cpp index 1d5b3e9234bcfb51c7cf7c5948c6c75fe5b493d3..88958d62db3640434f886936fbe794c94eac804e 100644 --- a/src/updatemanager.cpp +++ b/src/updatemanager.cpp @@ -32,6 +32,11 @@ static constexpr bool isBeta = false; #endif static constexpr int updatePeriod = 1000 * 60 * 60 * 24; // one day in millis +static constexpr char downloadUrl[] = "https://dl.jami.net/windows"; +static constexpr char versionSubUrl[] = "/version"; +static constexpr char betaVersionSubUrl[] = "/beta/version"; +static constexpr char msiSubUrl[] = "/jami.release.x64.msi"; +static constexpr char betaMsiSubUrl[] = "/beta/jami.beta.x64.msi"; UpdateManager::UpdateManager(const QString& url, ConnectivityMonitor* cm, @@ -39,7 +44,7 @@ UpdateManager::UpdateManager(const QString& url, QObject* parent) : NetWorkManager(cm, parent) , lrcInstance_(instance) - , baseUrl_(url.isEmpty() ? "https://dl.jami.net/windows" : url.toLatin1()) + , baseUrlString_(url.isEmpty() ? downloadUrl : url) , tempPath_(Utils::WinGetEnv("TEMP")) , updateTimer_(new QTimer(this)) { @@ -76,9 +81,8 @@ UpdateManager::checkForUpdates(bool quiet) connect(this, &NetWorkManager::errorOccured, this, &UpdateManager::updateCheckErrorOccurred); cleanUpdateFiles(); - QUrl versionUrl {isBeta ? QUrl::fromEncoded(baseUrl_ + "/beta/version") - : QUrl::fromEncoded(baseUrl_ + "/version")}; - + QUrl versionUrl {isBeta ? QUrl::fromUserInput(baseUrlString_ + betaVersionSubUrl) + : QUrl::fromUserInput(baseUrlString_ + versionSubUrl)}; get(versionUrl, [this, quiet](const QString& latestVersionString) { if (latestVersionString.isEmpty()) { qWarning() << "Error checking version"; @@ -122,8 +126,8 @@ UpdateManager::applyUpdates(bool beta) } }); - QUrl downloadUrl {(beta || isBeta) ? QUrl::fromEncoded(baseUrl_ + "/beta/jami.beta.x64.msi") - : QUrl::fromEncoded(baseUrl_ + "/jami.release.x64.msi")}; + QUrl downloadUrl {(beta || isBeta) ? QUrl::fromUserInput(baseUrlString_ + betaMsiSubUrl) + : QUrl::fromUserInput(baseUrlString_ + msiSubUrl)}; get( downloadUrl, diff --git a/src/updatemanager.h b/src/updatemanager.h index 23edead43e3f0f7d9c75bcfdf133bd10ec872dc4..14b8e3ccd82c7b09d9b3d10f7b113e0eaa83ade0 100644 --- a/src/updatemanager.h +++ b/src/updatemanager.h @@ -53,7 +53,7 @@ private: // LRCInstance pointer LRCInstance* lrcInstance_ {nullptr}; - QByteArray baseUrl_; + QString baseUrlString_; QString tempPath_; QTimer* updateTimer_; diff --git a/src/utils.cpp b/src/utils.cpp index a903569b9ce4e7535681123d3d1a3b124cdf1bc3..3d647c796a9d1c692b9431fff7ee6d45297a45e2 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -476,7 +476,7 @@ Utils::forceDeleteAsync(const QString& path) * Keep deleting file until the process holding it let go, * or the file itself does not exist anymore. */ - QtConcurrent::run([path] { + auto futureResult = QtConcurrent::run([path] { QFile file(path); if (!QFile::exists(path)) return; @@ -499,7 +499,6 @@ Utils::getProjectCredits() return {}; } QTextStream in(&projectCreditsFile); - in.setCodec("UTF-8"); while (!in.atEnd()) { QString currentLine = in.readLine(); if (currentLine.contains("Created by:")) { @@ -637,12 +636,14 @@ Utils::fallbackAvatar(const QString& canonicalUri, const QString& name, const QS // if a letter was passed, then we paint a letter in the circle, // otherwise we draw the default avatar icon QString trimmedName(name); - if (!trimmedName.remove(QRegExp("[\\n\\t\\r]")).isEmpty()) { + if (!trimmedName.remove(QRegularExpression("[\\n\\t\\r]")).isEmpty()) { auto unicode = trimmedName.toUcs4().at(0); if (unicode >= 0x1F000 && unicode <= 0x1FFFF) { // emoticon - auto letter = QString::fromUcs4(&unicode, 1); - QFont font(QStringLiteral("Segoe UI Emoji"), avatar.height() / 2.66667, QFont::Medium); + auto letter = QString::fromUcs4(reinterpret_cast<char32_t*>(&unicode), 1); + QFont font(QString("Segoe UI Emoji").split(QLatin1Char(',')), + avatar.height() / 2.66667, + QFont::Medium); painter.setFont(font); QRect emojiRect(avatar.rect()); emojiRect.moveTop(-6); @@ -650,13 +651,17 @@ Utils::fallbackAvatar(const QString& canonicalUri, const QString& name, const QS } else if (unicode >= 0x0000 && unicode <= 0x00FF) { // basic Latin auto letter = trimmedName.at(0).toUpper(); - QFont font("Arial", avatar.height() / 2.66667, QFont::Medium); + QFont font(QString("Arial").split(QLatin1Char(',')), + avatar.height() / 2.66667, + QFont::Medium); painter.setFont(font); painter.setPen(Qt::white); painter.drawText(avatar.rect(), QString(letter), QTextOption(Qt::AlignCenter)); } else { - auto letter = QString::fromUcs4(&unicode, 1); - QFont font("Arial", avatar.height() / 2.66667, QFont::Medium); + auto letter = QString::fromUcs4(reinterpret_cast<char32_t*>(&unicode), 1); + QFont font(QString("Arial").split(QLatin1Char(',')), + avatar.height() / 2.66667, + QFont::Medium); painter.setFont(font); painter.setPen(Qt::white); painter.drawText(avatar.rect(), QString(letter), QTextOption(Qt::AlignCenter)); diff --git a/src/utilsadapter.cpp b/src/utilsadapter.cpp index 2d470aa4bb414f5ef4cb2c7b70d7d1cc6cc6abcb..13f552cd22588c9524d476434c697093b6a1ff52 100644 --- a/src/utilsadapter.cpp +++ b/src/utilsadapter.cpp @@ -288,9 +288,11 @@ UtilsAdapter::getAbsPath(QString path) // contain 'file:///' for reasons we don't understand. // TODO: this logic can be refactored into the JamiFileDialog component. #ifdef Q_OS_WIN - return path.replace(QRegExp("^file:\\/{2,3}"), "").replace("\n", "").replace("\r", ""); + return path.replace(QRegularExpression("^file:\\/{2,3}"), "").replace("\n", "").replace("\r", ""); #else - return path.replace(QRegExp("^file:\\/{2,3}"), "/").replace("\n", "").replace("\r", ""); + return path.replace(QRegularExpression("^file:\\/{2,3}"), "/") + .replace("\n", "") + .replace("\r", ""); #endif } diff --git a/src/wizardview/WizardView.qml b/src/wizardview/WizardView.qml index eb4f482830cfe5b2e7efa43b45e95a9885f49d21..086de9917b9966f8139a72c33e1b529faa3931ad 100644 --- a/src/wizardview/WizardView.qml +++ b/src/wizardview/WizardView.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -62,17 +62,13 @@ Rectangle { } } - ScrollView { + JamiFlickable { id: wizardViewScrollView property ScrollBar vScrollBar: ScrollBar.vertical anchors.fill: parent - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - ScrollBar.vertical.policy: ScrollBar.AsNeeded - - clip: true contentHeight: controlPanelStackView.height StackLayout { diff --git a/src/wizardview/components/AccountCreationStepIndicator.qml b/src/wizardview/components/AccountCreationStepIndicator.qml index fc897c3ddec5221e82c72ff2886069fa88af7692..5d0c96b3ca544596d9b9b348928eda6a25dba502 100644 --- a/src/wizardview/components/AccountCreationStepIndicator.qml +++ b/src/wizardview/components/AccountCreationStepIndicator.qml @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 +import QtQuick import net.jami.Constants 1.1 diff --git a/src/wizardview/components/BackupKeyPage.qml b/src/wizardview/components/BackupKeyPage.qml index 18efe4304549eff7c87ccc6ecd00729b8dd69419..a73d2f6fc44ab26cb72ab115af83781af056c4e8 100644 --- a/src/wizardview/components/BackupKeyPage.qml +++ b/src/wizardview/components/BackupKeyPage.qml @@ -17,10 +17,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 -import Qt.labs.platform 1.1 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import Qt.labs.platform import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/wizardview/components/ConnectToAccountManagerPage.qml b/src/wizardview/components/ConnectToAccountManagerPage.qml index 03dcc6d825d2b61ddc395972b0487785420e1ea4..00b0a3cb16f4ec2f941e9dfae65e7f4e89177894 100644 --- a/src/wizardview/components/ConnectToAccountManagerPage.qml +++ b/src/wizardview/components/ConnectToAccountManagerPage.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Constants 1.1 @@ -123,6 +123,8 @@ Rectangle { } Label { + id: credentialsLabel + Layout.alignment: Qt.AlignCenter Layout.preferredWidth: connectBtn.width @@ -131,7 +133,8 @@ Rectangle { wrapMode: Text.Wrap onTextChanged: Layout.preferredHeight = - JamiQmlUtils.getTextBoundingRect(font, text).height + JamiQmlUtils.getTextBoundingRect( + credentialsLabel.font, credentialsLabel.text).height } MaterialLineEdit { diff --git a/src/wizardview/components/CreateAccountPage.qml b/src/wizardview/components/CreateAccountPage.qml index 84765878e8689cd48b92caf418ea1d649b45a0ef..f7aadc584fb04180bac7bf68d4238bef2138c4ee 100644 --- a/src/wizardview/components/CreateAccountPage.qml +++ b/src/wizardview/components/CreateAccountPage.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/wizardview/components/CreateSIPAccountPage.qml b/src/wizardview/components/CreateSIPAccountPage.qml index 7b901326e32d3db25795297cdc001408fcac2330..c9c539913fad8d1e19603ad186d0a022c4b40f35 100644 --- a/src/wizardview/components/CreateSIPAccountPage.qml +++ b/src/wizardview/components/CreateSIPAccountPage.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/src/wizardview/components/ImportFromBackupPage.qml b/src/wizardview/components/ImportFromBackupPage.qml index 0deb1690149ef97db68a34e45b5005a3c8f047ce..b1fd6cf0e4eeae8a219adef96fa536754c897e57 100644 --- a/src/wizardview/components/ImportFromBackupPage.qml +++ b/src/wizardview/components/ImportFromBackupPage.qml @@ -17,10 +17,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 -import Qt.labs.platform 1.1 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import Qt.labs.platform import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -158,7 +158,7 @@ Rectangle { color: JamiTheme.textColor wrapMode: Text.Wrap - onTextChanged: { + onTextChanged: function (text) { var boundingRect = JamiQmlUtils.getTextBoundingRect(font, text) preferredHeight += (boundingRect.width / fileImportBtn.preferredWidth) * boundingRect.height diff --git a/src/wizardview/components/ImportFromDevicePage.qml b/src/wizardview/components/ImportFromDevicePage.qml index b7252c028e3ae32f406d67255b50db49b41b3772..2f593f01ca6e608d46903f438db26019898a7289 100644 --- a/src/wizardview/components/ImportFromDevicePage.qml +++ b/src/wizardview/components/ImportFromDevicePage.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Models 1.1 import net.jami.Constants 1.1 @@ -122,7 +122,7 @@ Rectangle { color: JamiTheme.textColor wrapMode: Text.Wrap - onTextChanged: { + onTextChanged: function (text) { var boundingRect = JamiQmlUtils.getTextBoundingRect(font, text) preferredHeight += (boundingRect.width / connectBtn.preferredWidth) * boundingRect.height diff --git a/src/wizardview/components/ProfilePage.qml b/src/wizardview/components/ProfilePage.qml index be24841f26c169b44418308aa63245595ca5d01b..631139385baeeaf49416df9fdc173cf975f5b1ab 100644 --- a/src/wizardview/components/ProfilePage.qml +++ b/src/wizardview/components/ProfilePage.qml @@ -17,9 +17,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls import net.jami.Adapters 1.1 import net.jami.Constants 1.1 diff --git a/src/wizardview/components/WelcomePage.qml b/src/wizardview/components/WelcomePage.qml index c8c413020eb18bddf2dc8d139ca4fabd98956a0f..2012e254f8176e75c96a2cdac4de8ccca682c175 100644 --- a/src/wizardview/components/WelcomePage.qml +++ b/src/wizardview/components/WelcomePage.qml @@ -18,8 +18,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 +import QtQuick +import QtQuick.Layouts import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index df4fce0fab17643ad086dd5b20ba50cbc0ea0add..8904d5ec92dff99ef120c678d126bb35cfcc03cf 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -find_package(Qt5 CONFIG REQUIRED QuickTest Test) +find_package(Qt${QT_VERSION_MAJOR} CONFIG REQUIRED QuickTest Test) if(MSVC) # Download and unpack googletest for windows @@ -15,7 +15,7 @@ else() endif() enable_testing(true) -set(QML_TEST_LIBS ${QML_LIBS} Qt5::QuickTest Qt5::Test) +set(QML_TEST_LIBS ${QML_LIBS} Qt::QuickTest Qt::Test) set(TESTS_INCLUDES ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests/qml diff --git a/tests/qml/main.cpp b/tests/qml/main.cpp index c6d4862428eda9fd2f95f5c9876ffe718523291a..09f59be2483a953f35e4d3cacf17f3e59607af9f 100644 --- a/tests/qml/main.cpp +++ b/tests/qml/main.cpp @@ -30,7 +30,9 @@ #include <QtQuickTest/quicktest.h> #include <QQmlEngine> #include <QQmlContext> -#include <QtWebEngine> +#include <QFontDatabase> +#include <QtWebEngineCore> +#include <QtWebEngineQuick> #ifdef Q_OS_WIN #include <windows.h> @@ -154,7 +156,7 @@ main(int argc, char** argv) argc = std::distance(argv, end); } - QtWebEngine::initialize(); + QtWebEngineQuick::initialize(); QTEST_SET_MAIN_SOURCE_PATH Setup setup(muteDring); diff --git a/tests/qml/src/tst_ChatViewFooter.qml b/tests/qml/src/tst_ChatViewFooter.qml index f4a7cc8f402ad87b241b066d27d57e94e5a78c1d..19f81df48bb1cd92069cdb09a3eb0000a76902a1 100644 --- a/tests/qml/src/tst_ChatViewFooter.qml +++ b/tests/qml/src/tst_ChatViewFooter.qml @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.14 -import QtQuick.Controls 2.14 -import QtQuick.Layouts 1.14 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts -import QtTest 1.2 +import QtTest import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/tests/qml/src/tst_FilesToSendContainer.qml b/tests/qml/src/tst_FilesToSendContainer.qml index 42f42d40068a2675986a0cbc6a851997ec4f58de..e545a83768f595edcd8285ec7346495ca518b451 100644 --- a/tests/qml/src/tst_FilesToSendContainer.qml +++ b/tests/qml/src/tst_FilesToSendContainer.qml @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.14 -import QtQuick.Controls 2.14 -import QtQuick.Layouts 1.14 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts -import QtTest 1.2 +import QtTest import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/tests/qml/src/tst_LocalAccount.qml b/tests/qml/src/tst_LocalAccount.qml index d9627aaef6f0a75123863048b6117b8545fcc17b..95da78438fb1a80b80238bfd8b43706326390e90 100644 --- a/tests/qml/src/tst_LocalAccount.qml +++ b/tests/qml/src/tst_LocalAccount.qml @@ -17,8 +17,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.14 -import QtTest 1.2 +import QtQuick +import QtTest import net.jami.Adapters 1.1 diff --git a/tests/qml/src/tst_PresenceIndicator.qml b/tests/qml/src/tst_PresenceIndicator.qml index 10124cf3960907b86154a11be0c19a87194a8749..d6a1c163881f967957061f8b886095424afe9f92 100644 --- a/tests/qml/src/tst_PresenceIndicator.qml +++ b/tests/qml/src/tst_PresenceIndicator.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.14 -import QtTest 1.2 +import QtQuick +import QtTest import net.jami.Models 1.1 import net.jami.Constants 1.1 diff --git a/tests/qml/src/tst_WizardView.qml b/tests/qml/src/tst_WizardView.qml index cac2e4b7f03353e368515ff309b362213cf46484..47b10eb0585a10c1e86a6ab41aada981ea3f145e 100644 --- a/tests/qml/src/tst_WizardView.qml +++ b/tests/qml/src/tst_WizardView.qml @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import QtQuick 2.14 -import QtTest 1.2 +import QtQuick +import QtTest import net.jami.Adapters 1.1 import net.jami.Models 1.1 diff --git a/tests/unittests/account_unittest.cpp b/tests/unittests/account_unittest.cpp index 51b8e60ed751b14a60e60a85e47d042d2ce450ef..fc9032347c4df80118036e3698127f4b7052653f 100644 --- a/tests/unittests/account_unittest.cpp +++ b/tests/unittests/account_unittest.cpp @@ -64,7 +64,7 @@ TEST_F(AccountFixture, CreateSIPAccountTest) EXPECT_EQ(accountAddedSpy.count(), 1); QList<QVariant> accountAddedArguments = accountAddedSpy.takeFirst(); - EXPECT_TRUE(accountAddedArguments.at(0).type() == QVariant::String); + EXPECT_TRUE(accountAddedArguments.at(0).typeId() == qMetaTypeId<QString>()); // Select the created account globalEnv.lrcInstance->set_currentAccountId(accountAddedArguments.at(0).toString()); diff --git a/tests/unittests/contact_unittest.cpp b/tests/unittests/contact_unittest.cpp index 6a0fbf2f642804c141411f788232312fb0d28bb0..6ad0e003b39f43e583f53f46c9dd48e83360298e 100644 --- a/tests/unittests/contact_unittest.cpp +++ b/tests/unittests/contact_unittest.cpp @@ -52,7 +52,7 @@ TEST_F(ContactFixture, AddSIPContactTest) EXPECT_EQ(accountAddedSpy.count(), 1); QList<QVariant> accountAddedArguments = accountAddedSpy.takeFirst(); - EXPECT_TRUE(accountAddedArguments.at(0).type() == QVariant::String); + EXPECT_TRUE(accountAddedArguments.at(0).typeId() == qMetaTypeId<QString>()); // Select the created account globalEnv.lrcInstance->set_currentAccountId(accountAddedArguments.at(0).toString()); @@ -75,7 +75,7 @@ TEST_F(ContactFixture, AddSIPContactTest) EXPECT_EQ(modelUpdatedSpy.count(), 1); QList<QVariant> modelUpdatedArguments = modelUpdatedSpy.takeFirst(); - EXPECT_TRUE(modelUpdatedArguments.at(0).type() == QVariant::String); + EXPECT_TRUE(modelUpdatedArguments.at(0).typeId() == qMetaTypeId<QString>()); // Get conversation id auto convId = globalEnv.lrcInstance