File fix-C++15.patch of Package deepin-file-manager

diff -Nur dde-file-manager-6.5.119/include/dfm-base/interfaces/abstractjobhandler.h dde-file-manager-6.5.119-new/include/dfm-base/interfaces/abstractjobhandler.h
--- dde-file-manager-6.5.119/include/dfm-base/interfaces/abstractjobhandler.h	2026-01-30 11:34:36.000000000 +0800
+++ dde-file-manager-6.5.119-new/include/dfm-base/interfaces/abstractjobhandler.h	2026-02-01 23:08:26.237849720 +0800
@@ -16,7 +16,7 @@
 class QWidget;
 
 typedef QSharedPointer<QMap<quint8, QVariant>> JobInfoPointer;
-Q_DECLARE_METATYPE(JobInfoPointer);
+// Q_DECLARE_METATYPE(JobInfoPointer);
 
 namespace dfmbase {
 class AbstractJobHandler : public QObject
@@ -290,8 +290,8 @@
 Q_DECLARE_METATYPE(DFMBASE_NAMESPACE::AbstractJobHandler::JobFlag)
 Q_DECLARE_METATYPE(DFMBASE_NAMESPACE::AbstractJobHandler::JobFlags)
 Q_DECLARE_METATYPE(DFMBASE_NAMESPACE::AbstractJobHandler::ShowDialogType)
-Q_DECLARE_METATYPE(DFMBASE_NAMESPACE::AbstractJobHandler::OperatorCallback);
-Q_DECLARE_METATYPE(DFMBASE_NAMESPACE::AbstractJobHandler::OperatorHandleCallback);
+// Q_DECLARE_METATYPE(DFMBASE_NAMESPACE::AbstractJobHandler::OperatorCallback);
+// Q_DECLARE_METATYPE(DFMBASE_NAMESPACE::AbstractJobHandler::OperatorHandleCallback);
 using JobHandlePointer = QSharedPointer<DFMBASE_NAMESPACE::AbstractJobHandler>;
 Q_DECLARE_METATYPE(JobHandlePointer)
 
diff -Nur dde-file-manager-6.5.119/src/dfm-base/interfaces/abstractjobhandler.cpp dde-file-manager-6.5.119-new/src/dfm-base/interfaces/abstractjobhandler.cpp
--- dde-file-manager-6.5.119/src/dfm-base/interfaces/abstractjobhandler.cpp	2026-01-30 11:34:36.000000000 +0800
+++ dde-file-manager-6.5.119-new/src/dfm-base/interfaces/abstractjobhandler.cpp	2026-02-02 20:15:03.555430902 +0800
@@ -13,6 +13,25 @@
 AbstractJobHandler::AbstractJobHandler(QObject *parent)
     : QObject(parent)
 {
+    /* 
+    === Fix for C++15 Compilation Error: Manual Meta-Type Registration ===
+    Reason: C++15 implements stricter template  deduction in <type_traits>. This
+    causes a failure when Q_DECLARE_METATYPE probes complex nested types like
+    QSharedPointer<QMap<quint8, QVariant>>. The 'std::conjunction' fails to
+    resolve 'value' during equality trait probing. By performing runtime
+    registration here, we bypass the static analysis deadlock during header
+    compilation.
+    */
+
+    // Register the job info pointer type (QSharedPointer<QMap<quint8, QVariant>>)
+    qRegisterMetaType<JobInfoPointer>("JobInfoPointer");
+    
+    // Register callback types to prevent "undefined type" errors during 
+    // cross-thread signal-slot delivery or QVariant conversions.
+    qRegisterMetaType<AbstractJobHandler::OperatorCallback>("AbstractJobHandler::OperatorCallback");
+    qRegisterMetaType<AbstractJobHandler::OperatorHandleCallback>("AbstractJobHandler::OperatorHandleCallback");
+    // ============================
+
     connect(this, &AbstractJobHandler::requestShowTipsDialog, this, [=](DFMBASE_NAMESPACE::AbstractJobHandler::ShowDialogType type, const QList<QUrl> urls) {
         switch (type) {
         case DFMBASE_NAMESPACE::AbstractJobHandler::ShowDialogType::kRestoreFailed:
openSUSE Build Service is sponsored by