Skip to content

Commit 79065bb

Browse files
committed
refactor: adapts to Qt 6
适配Qt6
1 parent 7db142b commit 79065bb

File tree

16 files changed

+67
-130
lines changed

16 files changed

+67
-130
lines changed

CMakeLists.txt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,20 @@ set(CMAKE_AUTOMOC ON)
77
set(CMAKE_AUTORCC ON)
88
set(CMAKE_CXX_STANDARD_REQUIRED ON)
99
set(CMAKE_CXX_STANDARD 17)
10+
set(QT_VERSION_MAJOR 6)
11+
set(DTK_VERSION_MAJOR 6)
1012

11-
find_package(QT NAMES Qt5 REQUIRED COMPONENTS Core Quick)
13+
find_package(QT NAMES Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Quick)
1214
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Quick)
13-
find_package(DtkDeclarative REQUIRED)
15+
find_package(Dtk${DTK_VERSION_MAJOR}Declarative REQUIRED)
1416

1517
# 旧版本Dtk不支持使用cmake find_package 获取版本号, 使用 PkgConfig 来获取版本号
1618
find_package(PkgConfig REQUIRED)
17-
pkg_check_modules(DtkDeclarativeModule REQUIRED dtkdeclarative)
18-
# DtkDeclarative 在 5.6.3 更改了插件的路径和使用方式 See: https://github.com/linuxdeepin/dtkdeclarative/commit/a9701858155b7118bfb53b6f241e35b9f6c0f15e
19-
if(${DtkDeclarativeModule_VERSION} VERSION_LESS "5.6.3")
20-
set(DTK_OLD_VERSION True)
21-
endif()
19+
pkg_check_modules(Dtk${DTK_VERSION_MAJOR}DeclarativeModule REQUIRED dtk${DTK_VERSION_MAJOR}declarative)
2220

2321
add_definitions(-DAPP_VERSION="${APP_VERSION}")
2422
add_subdirectory(src)
2523
add_subdirectory(3rdparty/apiserver/client)
2624

27-
set(ENV{QT_SELECT} qt5)
28-
execute_process(COMMAND bash "-c" "lrelease translations/**/*"
29-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
25+
execute_process(COMMAND bash "-c" "/usr/lib/qt${QT_VERSION_MAJOR}/bin/lrelease translations/**/*"
26+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})

debian/control

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@ Build-Depends:
66
debhelper-compat (= 12),
77
cmake,
88
pkg-config,
9-
qtbase5-dev,
10-
qtdeclarative5-dev,
11-
libdtkcommon-dev,
12-
libdtkcore-dev,
13-
libdtkgui-dev,
14-
libdtkdeclarative-dev,
15-
qttools5-dev-tools,
16-
qml-module-qtquick-controls,
17-
qml-module-qtquick-dialogs,
18-
qml-module-qtquick-controls2,
19-
qml-module-qtquick-layouts,
9+
qt6-base-dev,
10+
qt6-declarative-dev,
11+
libdtk6core-dev,
12+
libdtk6gui-dev,
13+
libdtk6declarative-dev,
14+
qt6-l10n-tools,
15+
qtchooser,
16+
qml6-module-qtquick-controls,
17+
qml6-module-qtquick-dialogs,
18+
qml6-module-qtquick-layouts,
2019
libssl-dev,
2120
Standards-Version: 4.6.0
2221
Rules-Requires-Root: no
@@ -26,10 +25,9 @@ Architecture: any
2625
Depends:
2726
${shlibs:Depends},
2827
${misc:Depends},
29-
qml-module-qtquick-controls,
30-
qml-module-qtquick-dialogs,
31-
qml-module-qtquick-controls2,
32-
qml-module-qtquick-layouts,
28+
qml6-module-qtquick-controls,
29+
qml6-module-qtquick-dialogs,
30+
qml6-module-qtquick-layouts,
3331
inxi,
3432
Description: deepin home
3533
quick login bbs, bug report.

linglong.yaml

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/api/api.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ API::API(QString cacheName, QObject *parent)
1616
{
1717
init();
1818
auto cache = new QNetworkDiskCache(parent);
19-
auto cacheDir = QStandardPaths::writableLocation(QStandardPaths::CacheLocation)+"/api_http_cache";
19+
auto cacheDir = QStandardPaths::writableLocation(QStandardPaths::CacheLocation)
20+
+ "/api_http_cache";
2021
cache->setCacheDirectory(cacheDir);
2122
qDebug() << "api cache dir:" << cacheDir << QThread::currentThreadId();
2223
m_http->setCache(cache);
@@ -54,18 +55,19 @@ T API::waitSignal(const typename QtPrivate::FunctionPointer<Func1>::Object *send
5455
exp.err_msg = QString("http code %1").arg(worker->getHttpResponseCode());
5556
}
5657
auto headers = worker->getResponseHeaders();
57-
if (!headers["Content-Type"].startsWith("application/json")) {
58+
if (!headers["Content-Type"].startsWith("application/json")
59+
&& !headers["content-type"].startsWith("application/json")) {
5860
exp.err_code = 600;
5961
exp.err_type = "http";
60-
exp.err_msg = QString("http content: %1 != application/json")
62+
exp.err_msg = QString("http content type: %1 != application/json")
6163
.arg(headers["Content-Type"]);
6264
}
6365
result = resp;
6466
loop.quit();
6567
});
6668
connect(sender, errSignal, &loop, [this, &loop, &exp](auto *worker, auto err_type, auto err_str) {
6769
exp.err_code = worker->getHttpResponseCode();
68-
exp.err_type = err_type;
70+
exp.err_type = "http";
6971
exp.err_msg = err_str;
7072
if (exp.err_code == 0) {
7173
exp.err_code = -1;

src/main/CMakeLists.txt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,36 +29,36 @@ set(DAEMON_SRC
2929
../../translations/deepin-home-daemon.qrc
3030
)
3131

32-
# Find the Qt5Quick library
33-
find_package(Qt5Quick CONFIG REQUIRED)
34-
find_package(Qt5DBus CONFIG REQUIRED)
35-
find_package(Qt5Widgets CONFIG REQUIRED)
32+
# Find the Qt Quick library
33+
find_package(Qt${QT_VERSION_MAJOR}Quick CONFIG REQUIRED)
34+
find_package(Qt${QT_VERSION_MAJOR}DBus CONFIG REQUIRED)
35+
find_package(Qt${QT_VERSION_MAJOR}Widgets CONFIG REQUIRED)
3636
find_package(OpenSSL REQUIRED)
3737

3838
# 通过 dbus 接口的 xml 描述文件,生成调用dbus的 cpp 代码
3939
set_source_files_properties(../dbusservice/org.freedesktop.DBus.Properties.xml PROPERTIES CLASSNAME PropertiesChangedProxy)
4040
set_source_files_properties(../dbusservice/org.freedesktop.DBus.Properties.xml PROPERTIES NO_NAMESPACE ON)
41-
qt5_add_dbus_interface(DAEMON_SRC ../dbusservice/org.freedesktop.DBus.Properties.xml propertiesChangedProxy)
41+
qt_add_dbus_interface(DAEMON_SRC ../dbusservice/org.freedesktop.DBus.Properties.xml propertiesChangedProxy)
4242

4343
set_source_files_properties(../dbusservice/org.desktopspec.ApplicationManager1.Application.xml PROPERTIES CLASSNAME ApplicationManager1Application)
4444
set_source_files_properties(../dbusservice/org.desktopspec.ApplicationManager1.Application.xml PROPERTIES NO_NAMESPACE ON)
45-
qt5_add_dbus_interface(DAEMON_SRC ../dbusservice/org.desktopspec.ApplicationManager1.Application.xml applicationManager1Application)
45+
qt_add_dbus_interface(DAEMON_SRC ../dbusservice/org.desktopspec.ApplicationManager1.Application.xml applicationManager1Application)
4646

4747
set_source_files_properties(../dbusservice/com.deepin.deepinid.xml PROPERTIES CLASSNAME DeepinidDaemonProxy)
4848
set_source_files_properties(../dbusservice/com.deepin.deepinid.xml PROPERTIES NO_NAMESPACE ON)
49-
qt5_add_dbus_interface(DAEMON_SRC ../dbusservice/com.deepin.deepinid.xml deepinidDaemonProxy)
49+
qt_add_dbus_interface(DAEMON_SRC ../dbusservice/com.deepin.deepinid.xml deepinidDaemonProxy)
5050

5151
set_source_files_properties(../dbusservice/com.deepin.deepinid.Client.xml PROPERTIES CLASSNAME DeepinidClientProxy)
5252
set_source_files_properties(../dbusservice/com.deepin.deepinid.Client.xml PROPERTIES NO_NAMESPACE ON)
53-
qt5_add_dbus_interface(DAEMON_SRC ../dbusservice/com.deepin.deepinid.Client.xml deepinidClientProxy)
53+
qt_add_dbus_interface(DAEMON_SRC ../dbusservice/com.deepin.deepinid.Client.xml deepinidClientProxy)
5454

5555
set_source_files_properties(../dbusservice/com.deepin.Home.Daemon.xml PROPERTIES CLASSNAME HomeDaemonProxy)
56-
qt5_add_dbus_interface(SRC ../dbusservice/com.deepin.Home.Daemon.xml homeDaemonProxy)
56+
qt_add_dbus_interface(SRC ../dbusservice/com.deepin.Home.Daemon.xml homeDaemonProxy)
5757

5858
# 通过 dbus 接口的 xml 描述文件,生成 Adaptor 类,使用 Adaptor 可以选择性的暴露类接口到 dbus
5959
# 可使用 qdbuscpp2xml 生成类的 xml 描述文件,再通过修改 xml 来隐藏部分接口
6060
# daemon 的 xml 描述文件生成: qdbuscpp2xml "src/main/homeDaemon.h" "-o" "src/dbusservice/com.deepin.Home.Daemon.xml"
61-
qt5_add_dbus_adaptor(DAEMON_SRC ../dbusservice/com.deepin.Home.Daemon.xml homeDaemon.h HomeDaemon homeDaemonAdaptor HomeDaemonAdaptor)
61+
qt_add_dbus_adaptor(DAEMON_SRC ../dbusservice/com.deepin.Home.Daemon.xml homeDaemon.h HomeDaemon homeDaemonAdaptor HomeDaemonAdaptor)
6262

6363
# Add Client EXE
6464
add_executable(${APP_NAME} ${SRC})
@@ -67,15 +67,15 @@ add_executable(${APP_DAEMON_NAME} ${DAEMON_SRC})
6767

6868
# 由于 EXE 只是作为启动程序加载 LIB 使用,一般来说,只需链接 ${LIB_NAME} 既可。
6969
target_link_libraries(${APP_NAME}
70-
Qt5::Quick
71-
Qt5::DBus
70+
Qt${QT_VERSION_MAJOR}::Quick
71+
Qt${QT_VERSION_MAJOR}::DBus
7272
${DtkDeclarative_LIBRARIES}
7373
)
7474
target_link_libraries(${APP_DAEMON_NAME}
75-
Qt5::Core
76-
Qt5::Network
77-
Qt5::DBus
78-
Qt5::Widgets
75+
Qt${QT_VERSION_MAJOR}::Core
76+
Qt${QT_VERSION_MAJOR}::Network
77+
Qt${QT_VERSION_MAJOR}::DBus
78+
Qt${QT_VERSION_MAJOR}::Widgets
7979
OpenSSL::SSL
8080
API
8181
)

src/main/account.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Account::Account(QObject *parent, API *api, QString server)
3030
// 跟随deepinid退出登陆
3131
if (!m_deepinidDaemon->isLogin()) {
3232
this->m_isLogin = false;
33-
this->m_token = false;
33+
this->m_token = "";
3434
emit this->userInfoChanged();
3535
return;
3636
}

src/maincomponentplugin/CMakeLists.txt

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,15 @@ set(MAINCOMPONENNT_SRC
1313
apiproxy.h
1414
apiproxy.cpp
1515
)
16-
find_package(Qt5 REQUIRED COMPONENTS Core Widgets)
17-
find_package(Qt5QuickCompiler REQUIRED)
18-
find_package(Qt5DBus CONFIG REQUIRED)
19-
find_package(Qt5Concurrent CONFIG REQUIRED)
16+
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Widgets)
17+
find_package(Qt${QT_VERSION_MAJOR}DBus CONFIG REQUIRED)
18+
find_package(Qt${QT_VERSION_MAJOR}Concurrent CONFIG REQUIRED)
2019
find_package(OpenSSL REQUIRED)
2120

2221
set_source_files_properties(../dbusservice/com.deepin.Home.Daemon.xml PROPERTIES CLASSNAME HomeDaemonProxy)
23-
qt5_add_dbus_interface(MAINCOMPONENNT_SRC ../dbusservice/com.deepin.Home.Daemon.xml homeDaemonProxy)
22+
qt_add_dbus_interface(MAINCOMPONENNT_SRC ../dbusservice/com.deepin.Home.Daemon.xml homeDaemonProxy)
2423

25-
qtquick_compiler_add_resources(MAINCOMPONENT_RCC_SOURCES maincomponent.qrc)
24+
qt_add_resources(MAINCOMPONENT_RCC_SOURCES maincomponent.qrc)
2625
include_directories(src/maincomponentplugin)
2726
add_library(${MAINCOMPONENT_LIB_NAME} SHARED
2827
${MAINCOMPONENNT_SRC}
@@ -33,10 +32,10 @@ target_include_directories(${MAINCOMPONENT_LIB_NAME}
3332
${DTKDECLARATIVE_INCLUDE_DIR}
3433
)
3534
target_link_libraries(${MAINCOMPONENT_LIB_NAME}
36-
Qt5::Quick
37-
Qt5::Widgets
38-
Qt5::DBus
39-
Qt5::Concurrent
35+
Qt${QT_VERSION_MAJOR}::Quick
36+
Qt${QT_VERSION_MAJOR}::Widgets
37+
Qt${QT_VERSION_MAJOR}::DBus
38+
Qt${QT_VERSION_MAJOR}::Concurrent
4039
OpenSSL::SSL
4140
${DtkDeclarative_LIBRARIES}
4241
API

src/maincomponentplugin/apiproxy.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void APIProxy::waitFuture(QFuture<T> future, Func2 receiver)
7070
try {
7171
receiver(watcher->result());
7272
} catch (APIException exp) {
73-
qCDebug(logger) << "api exception" << exp.err_code;
73+
qCDebug(logger) << "api exception" << exp.err_code << exp.err_msg;
7474
emit this->signalAPIError(exp.err_code, exp.err_type, exp.err_msg);
7575
} catch (...) {
7676
qCDebug(logger) << "unknown exception";

src/maincomponentplugin/article/Article.qml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import APIProxy 1.0
66
import QtQuick 2.11
77
import QtQuick.Controls 2.4
88
import QtQuick.Layouts 1.7
9-
import QtGraphicalEffects 1.0
109
import org.deepin.dtk 1.0
1110
import "../api"
1211
import "../widgets"

src/maincomponentplugin/feedback/Submit.qml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33

44
import "../api"
55
import "../router"
6-
import APIProxy 1.0
7-
import QtGraphicalEffects 1.0
8-
import QtQuick 2.11
9-
import QtQuick.Controls 2.4
10-
import QtQuick.Dialogs 1.0
11-
import QtQuick.Layouts 1.7
12-
import org.deepin.dtk 1.0
6+
import APIProxy
7+
import QtQuick
8+
import QtQuick.Controls
9+
import QtQuick.Dialogs
10+
import QtQuick.Layouts
11+
import org.deepin.dtk
1312

1413
Item {
1514
id: root
@@ -239,8 +238,8 @@ Item {
239238
text: emailText.text
240239
visible: false
241240

242-
validator: RegExpValidator {
243-
regExp: /^[a-zA-Z0-9_\.-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
241+
validator: RegularExpressionValidator {
242+
regularExpression: /^[a-zA-Z0-9_\.-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
244243
}
245244

246245
}
@@ -339,8 +338,7 @@ Item {
339338
id: fileDialog
340339

341340
title: "Please choose a file"
342-
folder: shortcuts.home
343-
selectMultiple: true
341+
fileMode: FileDialog.OpenFiles
344342
nameFilters: [qsTr("Image files") + " (*.png *.jpg *.gif)"]
345343
onAccepted: {
346344
for (const f of fileDialog.fileUrls) {

0 commit comments

Comments
 (0)