-- Fix Qt6 compatibility issues and FreeBSD-specific compilation errors. -- -- * Use .load() on std::atomic values passed to QString::arg, -- because Qt6's arg() templates no longer accept std::atomic types. -- * On FreeBSD include instead of for alloca(). -- * Cast Qt::KeyboardModifiers to int before passing to QString::arg(). --- svcore/data/model/SparseTimeValueModel.h 2025-03-21 07:36:49.000000000 -0700 +++ svcore/data/model/SparseTimeValueModel.h 2026-08-02 20:29:09.285282000 -0700 @@ -342,8 +342,8 @@ .arg("true") // always true after model reaches 100% - // subsequent events are always notified .arg(m_events.getExportId()) - .arg(m_valueMinimum) - .arg(m_valueMaximum) + .arg(m_valueMinimum.load()) + .arg(m_valueMaximum.load()) .arg(encodeEntities(m_units)) .arg(extraAttributes)); --- svcore/data/model/RegionModel.h 2025-03-21 07:36:49.000000000 -0700 +++ svcore/data/model/RegionModel.h 2026-08-02 20:29:15.109250000 -0700 @@ -335,8 +335,8 @@ .arg(m_events.getExportId()) .arg("region") .arg(m_valueQuantization) - .arg(m_valueMinimum) - .arg(m_valueMaximum) + .arg(m_valueMinimum.load()) + .arg(m_valueMaximum.load()) .arg(encodeEntities(m_units)) .arg(extraAttributes)); --- svcore/data/model/NoteModel.h 2025-03-21 07:36:49.000000000 -0700 +++ svcore/data/model/NoteModel.h 2026-08-02 20:29:20.648718000 -0700 @@ -403,8 +403,8 @@ .arg(m_events.getExportId()) .arg(m_subtype == FLEXI_NOTE ? "flexinote" : "note") .arg(m_valueQuantization) - .arg(m_valueMinimum) - .arg(m_valueMaximum) + .arg(m_valueMinimum.load()) + .arg(m_valueMaximum.load()) .arg(encodeEntities(m_units)) .arg(extraAttributes)); --- svcore/data/model/EditableDenseThreeDimensionalModel.cpp 2025-03-21 07:36:49.000000000 -0700 +++ svcore/data/model/EditableDenseThreeDimensionalModel.cpp 2026-08-02 20:30:50.093315000 -0700 @@ -458,10 +458,10 @@ Model::toXml (out, indent, QString("type=\"dense\" dimensions=\"3\" windowSize=\"%1\" yBinCount=\"%2\" minimum=\"%3\" maximum=\"%4\" dataset=\"%5\" startFrame=\"%6\" %7") - .arg(m_resolution) - .arg(m_yBinCount) - .arg(m_minimum) - .arg(m_maximum) + .arg(m_resolution.load()) + .arg(m_yBinCount.load()) + .arg(m_minimum.load()) + .arg(m_maximum.load()) .arg(getExportId()) .arg(m_startFrame) .arg(extraAttributes)); --- bqvec/src/VectorOpsComplex.cpp 2025-03-21 07:37:34.000000000 -0700 +++ bqvec/src/VectorOpsComplex.cpp 2026-08-02 20:29:54.751287000 -0700 @@ -50,6 +50,8 @@ #ifndef alloca #define alloca _alloca #endif +#elif defined(__FreeBSD__) +#include #else #include #endif --- svcore/plugin/DSSIPluginInstance.cpp 2025-03-21 07:36:49.000000000 -0700 +++ svcore/plugin/DSSIPluginInstance.cpp 2026-08-02 20:29:57.272823000 -0700 @@ -28,7 +28,9 @@ #include #ifndef Q_OS_WIN32 +#ifndef __FreeBSD__ #include +#endif #else #include #endif --- svgui/view/Pane.cpp 2025-03-21 07:36:58.000000000 -0700 +++ svgui/view/Pane.cpp 2026-08-02 20:31:39.504290000 -0700 @@ -1423,7 +1423,7 @@ if (m & Qt::GroupSwitchModifier) s << "GroupSwitch"; m &= (~ (Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt::MetaModifier | Qt::KeypadModifier | Qt::GroupSwitchModifier)); - if (m) s << QString(" (residue %1)").arg(m); + if (m) s << QString(" (residue %1)").arg(int(m)); if (s.empty()) return "(none)"; else return s.join(" | "); }