openrgb-plugin-effects: build with Qt 6

This commit is contained in:
Marie Ramlow
2025-10-12 11:40:59 +02:00
parent bd7c8d9538
commit 82c85ef853
2 changed files with 131 additions and 6 deletions

View File

@@ -2,11 +2,12 @@
lib,
stdenv,
fetchFromGitLab,
libsForQt5,
openrgb,
glib,
openal,
pkg-config,
kdePackages,
fetchpatch,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -21,20 +22,30 @@ stdenv.mkDerivation (finalAttrs: {
fetchSubmodules = true;
};
patches = [
# Fix Qt6 issues in OpenRGBPluginsFont.cpp
(fetchpatch {
url = "https://gitlab.com/OpenRGBDevelopers/OpenRGBEffectsPlugin/-/commit/e952b0ed390045d4f4adec8e74b3126c2f8abcab.patch";
hash = "sha256-xMsnVyrn/Cv2x2xQtAnPb5HJc+WolNx4v7h0TkTj9DU=";
})
./qt5compat.patch
];
postPatch = ''
# Use the source of openrgb from nixpkgs instead of the submodule
rm -r OpenRGB
ln -s ${openrgb.src} OpenRGB
'';
nativeBuildInputs = with libsForQt5; [
qmake
nativeBuildInputs = [
pkg-config
wrapQtAppsHook
kdePackages.wrapQtAppsHook
kdePackages.qmake
];
buildInputs = with libsForQt5; [
qtbase
buildInputs = [
kdePackages.qtbase
kdePackages.qt5compat
glib
openal
];

View File

@@ -0,0 +1,114 @@
Commit ID: 20f227f4ef942e2ead5a3a684248c2da48c979bc
Change ID: rwlwzspvylkypuqoornwzvuvpuzorvso
Author : Alexey Sokolov <alexey+github@asokolov.org> (2025-07-21 22:34:37)
Committer: Marie Ramlow <me@nycode.dev> (2025-10-12 12:05:01)
Fix build with Qt6 using core5compat
Updated to add Qt5 backwards compatibility by Adam Honse <calcprogrammer1@gmail.com>
diff --git a/Effects/Ambient/RectangleSelector.cpp b/Effects/Ambient/RectangleSelector.cpp
index 8f28ddcbcc..d8b4f56a1d 100644
--- a/Effects/Ambient/RectangleSelector.cpp
+++ b/Effects/Ambient/RectangleSelector.cpp
@@ -1,6 +1,5 @@
#include "RectangleSelector.h"
#include <math.h>
-#include <QDesktopWidget>
#include <QBrush>
RectangleSelector::RectangleSelector(QWidget* parent)
@@ -57,7 +56,7 @@
QPainter painter(this);
- texture.setDevicePixelRatio(devicePixelRatioF() / qApp->desktop()->devicePixelRatioF());
+ texture.setDevicePixelRatio(devicePixelRatioF() / qApp->primaryScreen()->devicePixelRatio());
painter.setPen(QColor(0, 0, 0, 128));
painter.setBrush(Qt::NoBrush);
@@ -69,7 +68,7 @@
for(QScreen *screen : QApplication::screens())
{
QRect geometry = screen->geometry();
- qreal ratio = screen->devicePixelRatio() / qApp->desktop()->devicePixelRatioF();
+ qreal ratio = screen->devicePixelRatio() / qApp->primaryScreen()->devicePixelRatio();
QRect physical_geometry(geometry.x(), geometry.y(), std::lrint((qreal) geometry.width() * ratio), lrint((qreal) geometry.height() * ratio));
if(physical_geometry.contains(rect.center()))
@@ -92,7 +91,7 @@
for(QScreen *screen : QApplication::screens())
{
QRect geometry = screen->geometry();
- qreal ratio = screen->devicePixelRatio() / qApp->desktop()->devicePixelRatioF();
+ qreal ratio = screen->devicePixelRatio() / qApp->primaryScreen()->devicePixelRatio();
screen_geometries.emplace_back(geometry.x(), geometry.y(),
std::lrint((qreal) geometry.width() * ratio),
diff --git a/Effects/Shaders/GLSLHighlighter.h b/Effects/Shaders/GLSLHighlighter.h
index 7e9f21423b..ca9bf42c3c 100644
--- a/Effects/Shaders/GLSLHighlighter.h
+++ b/Effects/Shaders/GLSLHighlighter.h
@@ -2,6 +2,7 @@
#define GLSLHIGHLIGHTER_H
#include <QSyntaxHighlighter>
+#include <QRegExp>
class GLSLHighlighter : public QSyntaxHighlighter
{
diff --git a/OpenRGBEffectPage.cpp b/OpenRGBEffectPage.cpp
index 0d6e4ab0fb..4b756cf63c 100644
--- a/OpenRGBEffectPage.cpp
+++ b/OpenRGBEffectPage.cpp
@@ -38,7 +38,7 @@
| Extra options and custom widgets |
\*-----------------------------------------------*/
ui->ExtraOptions->addWidget(effect);
- ui->ExtraOptions->setMargin(0);
+ ui->ExtraOptions->setContentsMargins(0, 0, 0, 0);
effect->setParent(ui->extra_settings);
InitUi();
diff --git a/OpenRGBEffectsPlugin.pro b/OpenRGBEffectsPlugin.pro
index 3e53316519..fec852f88c 100644
--- a/OpenRGBEffectsPlugin.pro
+++ b/OpenRGBEffectsPlugin.pro
@@ -1,4 +1,10 @@
-QT += gui widgets core
+QT += gui widgets core opengl
+
+if(greaterThan(QT_MAJOR_VERSION, 5)) {
+QT += \
+ core5compat \
+}
+
DEFINES += OPEN_RGB_EFFECTS_PLUGIN_LIBRARY
TEMPLATE = lib
diff --git a/SaveProfilePopup.cpp b/SaveProfilePopup.cpp
index 7297dad8b7..4fa837235f 100644
--- a/SaveProfilePopup.cpp
+++ b/SaveProfilePopup.cpp
@@ -2,8 +2,8 @@
#include "ui_SaveProfilePopup.h"
#include "OpenRGBEffectSettings.h"
-#include <QRegExp>
-#include <QRegExpValidator>
+#include <QRegularExpression>
+#include <QRegularExpressionValidator>
SaveProfilePopup::SaveProfilePopup(QWidget *parent) :
QWidget(parent),
@@ -12,8 +12,8 @@
ui->setupUi(this);
// only letters or numbers, - _ and .
- QRegExp re("^[\\w\\-_.]+$");
- QRegExpValidator *validator = new QRegExpValidator(re, this);
+ QRegularExpression re("^[\\w\\-_.]+$");
+ QRegularExpressionValidator *validator = new QRegularExpressionValidator(re, this);
ui->filename->setValidator(validator);
std::vector<std::string> filenames = OpenRGBEffectSettings::ListProfiles();