From 07e5a3a113eda53f7c835c1fcbff7e2e519667d8 Mon Sep 17 00:00:00 2001 From: demmm Date: Thu, 7 Sep 2023 13:03:16 +0200 Subject: [PATCH] [partition] start Qt6 work make kpmcorehelper usable for both kf5 & 6, though no section added yet dealing with set to NOT for Qt6 adjust CalamaresConfig to not be hardcoded to kf5 one more var needed in Variant.h, used in PartitionInfo.cpp adjust QVariant & QtConcurrent use --- CMakeModules/KPMcoreHelper.cmake | 6 +++--- CalamaresConfig.cmake.in | 6 +++--- src/libcalamares/compat/Variant.h | 2 ++ src/modules/partition/CMakeLists.txt | 8 ++++---- src/modules/partition/PartitionViewStep.cpp | 4 ++++ src/modules/partition/core/PartitionCoreModule.cpp | 4 ++++ src/modules/partition/core/PartitionInfo.cpp | 3 ++- src/modules/partition/jobs/FillGlobalStorageJob.cpp | 5 +++-- 8 files changed, 25 insertions(+), 13 deletions(-) diff --git a/CMakeModules/KPMcoreHelper.cmake b/CMakeModules/KPMcoreHelper.cmake index fd5063a6e..969d354bb 100644 --- a/CMakeModules/KPMcoreHelper.cmake +++ b/CMakeModules/KPMcoreHelper.cmake @@ -30,10 +30,10 @@ if(NOT TARGET calapmcore) add_library(calapmcore INTERFACE) if(KPMcore_FOUND) - find_package(Qt5 REQUIRED DBus) # Needed for KPMCore - find_package(KF5 REQUIRED I18n WidgetsAddons) # Needed for KPMCore + find_package(${qtname} REQUIRED DBus) # Needed for KPMCore + find_package(${kfname} REQUIRED I18n WidgetsAddons) # Needed for KPMCore - target_link_libraries(calapmcore INTERFACE kpmcore Qt5::DBus KF5::I18n KF5::WidgetsAddons) + target_link_libraries(calapmcore INTERFACE kpmcore ${qtname}::DBus ${kfname}::I18n ${kfname}::WidgetsAddons) target_include_directories(calapmcore INTERFACE ${KPMCORE_INCLUDE_DIR}) # If there were KPMcore API variations, figure them out here # target_compile_definitions(calapmcore INTERFACE WITH_KPMcore) diff --git a/CalamaresConfig.cmake.in b/CalamaresConfig.cmake.in index 66f5bd0ed..eabf54554 100644 --- a/CalamaresConfig.cmake.in +++ b/CalamaresConfig.cmake.in @@ -60,13 +60,13 @@ accumulate_deps(qt_required Calamares::calamaresui ${qtname}::) find_package(${qtname} CONFIG REQUIRED ${qt_required}) set(kf5_required "") -accumulate_deps(kf5_required Calamares::calamares KF5::) -accumulate_deps(kf5_required Calamares::calamaresui KF5::) +accumulate_deps(kf5_required Calamares::calamares ${kfname}::) +accumulate_deps(kf5_required Calamares::calamaresui ${kfname}::) if(kf5_required) find_package(ECM ${ECM_VERSION} NO_MODULE) if( ECM_FOUND ) list(INSERT CMAKE_MODULE_PATH 0 ${ECM_MODULE_PATH}) - find_package(KF5 REQUIRED COMPONENTS ${kf5_required}) + find_package(${kfname} REQUIRED COMPONENTS ${kf5_required}) endif() endif() diff --git a/src/libcalamares/compat/Variant.h b/src/libcalamares/compat/Variant.h index 123fce573..f1038ee66 100644 --- a/src/libcalamares/compat/Variant.h +++ b/src/libcalamares/compat/Variant.h @@ -25,6 +25,7 @@ const auto CharVariantType = QVariant::Char; const auto StringListVariantType = QVariant::StringList; const auto BoolVariantType = QVariant::Bool; const auto IntVariantType = QVariant::Int; +const auto UIntVariantType = QVariant::UInt; const auto LongLongVariantType = QVariant::LongLong; const auto ULongLongVariantType = QVariant::ULongLong; const auto DoubleVariantType = QVariant::Double; @@ -38,6 +39,7 @@ const auto CharVariantType = QMetaType::Type::Char; const auto StringListVariantType = QMetaType::Type::QStringList; const auto BoolVariantType = QMetaType::Type::Bool; const auto IntVariantType = QMetaType::Type::Int; +const auto UIntVariantType = QMetaType::Type::UInt; const auto LongLongVariantType = QMetaType::Type::LongLong; const auto ULongLongVariantType = QMetaType::Type::ULongLong; const auto DoubleVariantType = QMetaType::Type::Double; diff --git a/src/modules/partition/CMakeLists.txt b/src/modules/partition/CMakeLists.txt index 27125b030..159315921 100644 --- a/src/modules/partition/CMakeLists.txt +++ b/src/modules/partition/CMakeLists.txt @@ -45,9 +45,9 @@ find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE) include(KPMcoreHelper) -find_package(KF5Config CONFIG) -find_package(KF5I18n CONFIG) -find_package(KF5WidgetsAddons CONFIG) +find_package(${kfname}Config CONFIG) +find_package(${kfname}I18n CONFIG) +find_package(${kfname}WidgetsAddons CONFIG) if(KPMcore_FOUND) include_directories(${PROJECT_BINARY_DIR}/src/libcalamaresui) @@ -115,7 +115,7 @@ if(KPMcore_FOUND) gui/VolumeGroupBaseDialog.ui LINK_PRIVATE_LIBRARIES calamares::kpmcore - KF5::CoreAddons + ${kfname}::CoreAddons COMPILE_DEFINITIONS ${_partition_defs} SHARED_LIB ) diff --git a/src/modules/partition/PartitionViewStep.cpp b/src/modules/partition/PartitionViewStep.cpp index c58fa367f..b653af716 100644 --- a/src/modules/partition/PartitionViewStep.cpp +++ b/src/modules/partition/PartitionViewStep.cpp @@ -696,7 +696,11 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap ) this->m_future = nullptr; } ); +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) QFuture< void > future = QtConcurrent::run( this, &PartitionViewStep::initPartitionCoreModule ); +#else + QFuture< void > future = QtConcurrent::run( &PartitionViewStep::initPartitionCoreModule, this ); +#endif m_future->setFuture( future ); m_core->partitionLayout().init( m_config->defaultFsType(), configurationMap.value( "partitionLayout" ).toList() ); diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index 8eef01223..851f729f4 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -1114,7 +1114,11 @@ PartitionCoreModule::asyncRevertDevice( Device* dev, std::function< void() > cal watcher->deleteLater(); } ); +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) QFuture< void > future = QtConcurrent::run( this, &PartitionCoreModule::revertDevice, dev, true ); +#else + QFuture< void > future = QtConcurrent::run( &PartitionCoreModule::revertDevice, this, dev, true ); +#endif watcher->setFuture( future ); } diff --git a/src/modules/partition/core/PartitionInfo.cpp b/src/modules/partition/core/PartitionInfo.cpp index 2b0b4fd7a..06a88f333 100644 --- a/src/modules/partition/core/PartitionInfo.cpp +++ b/src/modules/partition/core/PartitionInfo.cpp @@ -9,6 +9,7 @@ */ #include "core/PartitionInfo.h" +#include "compat/Variant.h" // KPMcore #include @@ -60,7 +61,7 @@ flags( const Partition* partition ) // (see qflags.h) and so setting those flags can create a QVariant // of those types; we don't just want to check QVariant::canConvert() // here because that will also accept QByteArray and some other things. - if ( v.type() == QVariant::Int || v.type() == QVariant::UInt ) + if ( Calamares::typeOf( v ) == Calamares::IntVariantType || Calamares::typeOf( v ) == Calamares::UIntVariantType ) { return static_cast< PartitionTable::Flags >( v.toInt() ); } diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.cpp b/src/modules/partition/jobs/FillGlobalStorageJob.cpp index f6ea8c772..131d06f35 100644 --- a/src/modules/partition/jobs/FillGlobalStorageJob.cpp +++ b/src/modules/partition/jobs/FillGlobalStorageJob.cpp @@ -13,6 +13,7 @@ #include "core/KPMHelpers.h" #include "core/PartitionInfo.h" +#include "compat/Variant.h" #include "Branding.h" #include "GlobalStorage.h" @@ -146,7 +147,7 @@ prettyFileSystemFeatures( const QVariantMap& features ) for ( const auto& key : features.keys() ) { const auto& value = features.value( key ); - if ( value.type() == QVariant::Bool ) + if ( Calamares::typeOf( value ) == Calamares::BoolVariantType ) { if ( value.toBool() ) { @@ -187,7 +188,7 @@ FillGlobalStorageJob::prettyDescription() const const auto partitionList = createPartitionList(); for ( const QVariant& partitionItem : partitionList ) { - if ( partitionItem.type() == QVariant::Map ) + if ( Calamares::typeOf( partitionItem ) == Calamares::MapVariantType ) { QVariantMap partitionMap = partitionItem.toMap(); QString path = partitionMap.value( "device" ).toString();