From 3dbea1ccb21fcfe740fd030aad64c8043d2808ac Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Fri, 7 Nov 2025 10:22:22 +0100 Subject: [PATCH] display qt version in help page --- Linphone/core/App.cpp | 5 +++++ Linphone/core/App.hpp | 2 ++ Linphone/data/image/qt-logo.png | Bin 0 -> 2758 bytes Linphone/tool/Constants.hpp | 2 +- .../view/Control/Button/HelpIconLabelButton.qml | 2 ++ Linphone/view/Page/Main/Help/HelpPage.qml | 10 ++++++++++ Linphone/view/Style/AppIcons.qml | 1 + 7 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 Linphone/data/image/qt-logo.png diff --git a/Linphone/core/App.cpp b/Linphone/core/App.cpp index 9661ec815..2f290f930 100644 --- a/Linphone/core/App.cpp +++ b/Linphone/core/App.cpp @@ -289,6 +289,7 @@ App::App(int &argc, char *argv[]) // The EXECUTABLE_NAME will be used in qt standard paths. It's our goal. QThread::currentThread()->setPriority(QThread::HighPriority); qDebug() << "app thread is" << QThread::currentThread(); + lDebug() << "Starting app with Qt version" << qVersion(); QCoreApplication::setApplicationName(EXECUTABLE_NAME); QApplication::setOrganizationDomain(EXECUTABLE_NAME); QCoreApplication::setApplicationVersion(APPLICATION_SEMVER); @@ -1480,6 +1481,10 @@ QString App::getSdkVersion() { #endif } +QString App::getQtVersion() const { + return qVersion(); +} + void App::checkForUpdate(bool requestedByUser) { mustBeInMainThread(log().arg(Q_FUNC_INFO)); if (CoreModel::getInstance() && mCoreModelConnection) { diff --git a/Linphone/core/App.hpp b/Linphone/core/App.hpp index ef0719258..fbf5d3725 100644 --- a/Linphone/core/App.hpp +++ b/Linphone/core/App.hpp @@ -46,6 +46,7 @@ class App : public SingleApplication, public AbstractObject { Q_PROPERTY(AccountList *accounts READ getAccounts NOTIFY accountsChanged) Q_PROPERTY(CallList *calls READ getCalls NOTIFY callsChanged) Q_PROPERTY(QString shortApplicationVersion READ getShortApplicationVersion CONSTANT) + Q_PROPERTY(QString qtVersion READ getQtVersion CONSTANT) Q_PROPERTY(QString gitBranchName READ getGitBranchName CONSTANT) Q_PROPERTY(QString sdkVersion READ getSdkVersion CONSTANT) Q_PROPERTY(ChatGui *currentChat READ getCurrentChat WRITE setCurrentChat NOTIFY currentChatChanged) @@ -164,6 +165,7 @@ public: QString getShortApplicationVersion(); QString getGitBranchName(); QString getSdkVersion(); + QString getQtVersion() const; Q_INVOKABLE void checkForUpdate(bool requestedByUser = false); ChatGui *getCurrentChat() const; diff --git a/Linphone/data/image/qt-logo.png b/Linphone/data/image/qt-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2da4bf61d2a319a1787be7834c43814b0e8e29 GIT binary patch literal 2758 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 VY=;=@{Ln8T;I_}hndcO6;ZGyXhP40y literal 0 HcmV?d00001 diff --git a/Linphone/tool/Constants.hpp b/Linphone/tool/Constants.hpp index dccbd0f5f..0f81ba837 100644 --- a/Linphone/tool/Constants.hpp +++ b/Linphone/tool/Constants.hpp @@ -129,7 +129,7 @@ public: static constexpr char LinphoneDomain[] = "sip.linphone.org"; // Use for checking if config are a Linphone static constexpr char WindowIconPath[] = ":/data/image/logo.svg"; - static constexpr char ApplicationMinimalQtVersion[] = "6.6.5"; + static constexpr char ApplicationMinimalQtVersion[] = "6.9.0"; static constexpr char DefaultConferenceURI[] = "sip:conference-factory@sip.linphone.org"; // Default for a Linphone account static constexpr char DefaultVideoConferenceURI[] = diff --git a/Linphone/view/Control/Button/HelpIconLabelButton.qml b/Linphone/view/Control/Button/HelpIconLabelButton.qml index 801dc77d7..c51c8bd58 100644 --- a/Linphone/view/Control/Button/HelpIconLabelButton.qml +++ b/Linphone/view/Control/Button/HelpIconLabelButton.qml @@ -11,6 +11,7 @@ MouseArea { property string subTitle property real iconSize: Utils.getSizeWithScreenRatio(32) property bool shadowEnabled: containsMouse || activeFocus + property alias image: image hoverEnabled: true width: content.implicitWidth height: content.implicitHeight @@ -27,6 +28,7 @@ MouseArea { anchors.verticalCenter: parent.verticalCenter anchors.fill:parent EffectImage { + id: image Layout.preferredWidth: mainItem.iconSize Layout.preferredHeight: mainItem.iconSize width: mainItem.iconSize diff --git a/Linphone/view/Page/Main/Help/HelpPage.qml b/Linphone/view/Page/Main/Help/HelpPage.qml index 736df377e..4b4566a00 100644 --- a/Linphone/view/Page/Main/Help/HelpPage.qml +++ b/Linphone/view/Page/Main/Help/HelpPage.qml @@ -111,6 +111,16 @@ AbstractMainPage { onClicked: AppCpp.checkForUpdate(true) } } + HelpIconLabelButton { + id: qtVersionButton + Layout.preferredWidth: width + Layout.minimumWidth: width + iconSource: AppIcons.qtLogo + //: "Qt Version" + title: qsTr("help_about_qt_version_title") + subTitle: AppCpp.qtVersion + onClicked: {} + } HelpIconLabelButton { Layout.fillWidth: true iconSource: AppIcons.license diff --git a/Linphone/view/Style/AppIcons.qml b/Linphone/view/Style/AppIcons.qml index 42d66e6fe..0697a8d36 100644 --- a/Linphone/view/Style/AppIcons.qml +++ b/Linphone/view/Style/AppIcons.qml @@ -159,4 +159,5 @@ QtObject { property string photo: "image://internal/photo.svg" property string ephemeralSettings: "image://internal/ephemeral-settings.svg" property string hourglass: "image://internal/hourglass-simple.svg" + property string qtLogo: "image://internal/qt-logo.png" }