diff --git a/pkgs/applications/misc/candle/default.nix b/pkgs/applications/misc/candle/default.nix deleted file mode 100644 index 32c0b872d1ae..000000000000 --- a/pkgs/applications/misc/candle/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - mkDerivation, - lib, - fetchFromGitHub, - qtbase, - qtserialport, - qmake, -}: - -mkDerivation rec { - pname = "candle"; - version = "1.1"; - - src = fetchFromGitHub { - owner = "Denvi"; - repo = "Candle"; - rev = "v${version}"; - sha256 = "1gpx08gdz8awbsj6lsczwgffp19z3q0r2fvm72a73qd9az29pmm0"; - }; - - nativeBuildInputs = [ qmake ]; - - sourceRoot = "${src.name}/src"; - - installPhase = '' - runHook preInstall - install -Dm755 Candle $out/bin/candle - runHook postInstall - ''; - - buildInputs = [ - qtbase - qtserialport - ]; - - meta = with lib; { - description = "GRBL controller application with G-Code visualizer written in Qt"; - mainProgram = "candle"; - homepage = "https://github.com/Denvi/Candle"; - license = licenses.gpl3; - maintainers = with maintainers; [ matti-kariluoma ]; - }; -} diff --git a/pkgs/by-name/ca/candle/658.patch b/pkgs/by-name/ca/candle/658.patch new file mode 100644 index 000000000000..2163b1a900bc --- /dev/null +++ b/pkgs/by-name/ca/candle/658.patch @@ -0,0 +1,182 @@ +From 43eb409b4854eab40fe627fa8266946a64508083 Mon Sep 17 00:00:00 2001 +From: Keith Packard +Date: Mon, 9 Jun 2025 16:19:21 -0700 +Subject: [PATCH 1/3] Let Qt pick how to store settings + +Apply target-specific Qt code about how to store application +preference values by specifying the organization and application name +rather than a file name + +Signed-off-by: Keith Packard +--- + src/frmmain.cpp | 9 +++++---- + src/frmmain.h | 3 ++- + 2 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/src/frmmain.cpp b/src/frmmain.cpp +index cab86028..52602d8f 100644 +--- a/src/frmmain.cpp ++++ b/src/frmmain.cpp +@@ -85,7 +85,8 @@ frmMain::frmMain(QWidget *parent) : + << "black"; + + // Loading settings +- m_settingsFileName = qApp->applicationDirPath() + "/settings.ini"; ++ m_settingsOrg = "Candle"; ++ m_settingsApp = "candle"; + preloadSettings(); + + m_settings = new frmSettings(this); +@@ -315,7 +316,7 @@ double frmMain::toolZPosition() + + void frmMain::preloadSettings() + { +- QSettings set(m_settingsFileName, QSettings::IniFormat); ++ QSettings set(m_settingsOrg, m_settingsApp); + set.setIniCodec("UTF-8"); + + qApp->setStyleSheet(QString(qApp->styleSheet()).replace(QRegExp("font-size:\\s*\\d+"), "font-size: " + set.value("fontSize", "8").toString())); +@@ -328,7 +329,7 @@ void frmMain::preloadSettings() + + void frmMain::loadSettings() + { +- QSettings set(m_settingsFileName, QSettings::IniFormat); ++ QSettings set(m_settingsOrg, m_settingsApp); + set.setIniCodec("UTF-8"); + + m_settingsLoading = true; +@@ -482,7 +483,7 @@ void frmMain::loadSettings() + + void frmMain::saveSettings() + { +- QSettings set(m_settingsFileName, QSettings::IniFormat); ++ QSettings set(m_settingsOrg, m_settingsApp); + set.setIniCodec("UTF-8"); + + set.setValue("port", m_settings->port()); +diff --git a/src/frmmain.h b/src/frmmain.h +index c1f0ef94..b18d4bbb 100644 +--- a/src/frmmain.h ++++ b/src/frmmain.h +@@ -236,7 +236,8 @@ private slots: + frmSettings *m_settings; + frmAbout m_frmAbout; + +- QString m_settingsFileName; ++ QString m_settingsOrg; ++ QString m_settingsApp; + QString m_programFileName; + QString m_heightMapFileName; + QString m_lastFolder; + +From 7e5e6405d87fe238300b7f632e06053d8f6c7329 Mon Sep 17 00:00:00 2001 +From: Keith Packard +Date: Mon, 9 Jun 2025 16:20:23 -0700 +Subject: [PATCH 2/3] Apply default settings on first run + +If there are no application settings available, then +apply the default values. + +Signed-off-by: Keith Packard +--- + src/frmmain.cpp | 8 ++++++++ + src/frmsettings.cpp | 13 +++++++++---- + src/frmsettings.h | 1 + + 3 files changed, 18 insertions(+), 4 deletions(-) + +diff --git a/src/frmmain.cpp b/src/frmmain.cpp +index 52602d8f..3714253a 100644 +--- a/src/frmmain.cpp ++++ b/src/frmmain.cpp +@@ -479,6 +479,13 @@ void frmMain::loadSettings() + ui->cboCommand->setCurrentIndex(-1); + + m_settingsLoading = false; ++ ++ if (!set.value("valid", false).toBool()) { ++ m_settings->setDefaults(); ++ applySettings(); ++ show(); ++ ui->scrollArea->updateMinimumWidth(); ++ } + } + + void frmMain::saveSettings() +@@ -593,6 +600,7 @@ void frmMain::saveSettings() + + for (int i = 0; i < ui->cboCommand->count(); i++) list.append(ui->cboCommand->itemText(i)); + set.setValue("recentCommands", list); ++ set.setValue("valid", true); + } + + bool frmMain::saveChanges(bool heightMapMode) +diff --git a/src/frmsettings.cpp b/src/frmsettings.cpp +index cdc87371..988965f6 100644 +--- a/src/frmsettings.cpp ++++ b/src/frmsettings.cpp +@@ -621,11 +621,8 @@ void frmSettings::on_cboToolType_currentIndexChanged(int index) + ui->txtToolAngle->setEnabled(index == 1); + } + +-void frmSettings::on_cmdDefaults_clicked() ++void frmSettings::setDefaults() + { +- if (QMessageBox::warning(this, qApp->applicationDisplayName(), tr("Reset settings to default values?"), +- QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel) != QMessageBox::Yes) return; +- + setPort(""); + setBaud(115200); + +@@ -688,6 +685,14 @@ void frmSettings::on_cmdDefaults_clicked() + setFontSize(9); + } + ++void frmSettings::on_cmdDefaults_clicked() ++{ ++ if (QMessageBox::warning(this, qApp->applicationDisplayName(), tr("Reset settings to default values?"), ++ QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel) != QMessageBox::Yes) return; ++ ++ setDefaults(); ++} ++ + void frmSettings::on_cboFontSize_currentTextChanged(const QString &arg1) + { + qApp->setStyleSheet(QString(qApp->styleSheet()).replace(QRegExp("font-size:\\s*\\d+"), "font-size: " + arg1)); +diff --git a/src/frmsettings.h b/src/frmsettings.h +index fc44eb81..b6f2bf0f 100644 +--- a/src/frmsettings.h ++++ b/src/frmsettings.h +@@ -117,6 +117,7 @@ class frmSettings : public QDialog + void setIgnoreErrors(bool value); + bool autoLine(); + void setAutoLine(bool value); ++ void setDefaults(); + + protected: + void showEvent(QShowEvent *se); + +From 4ea46db51a0578c94082e4c381dade76a7c44a2b Mon Sep 17 00:00:00 2001 +From: Keith Packard +Date: Mon, 9 Jun 2025 16:21:16 -0700 +Subject: [PATCH 3/3] Try to load any file provided on the command line + +Don't filter based upon assumptions about gcode file extensions + +Signed-off-by: Keith Packard +--- + src/frmmain.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/frmmain.cpp b/src/frmmain.cpp +index 3714253a..42cf901e 100644 +--- a/src/frmmain.cpp ++++ b/src/frmmain.cpp +@@ -282,7 +282,7 @@ frmMain::frmMain(QWidget *parent) : + m_timerStateQuery.start(); + + // Handle file drop +- if (qApp->arguments().count() > 1 && isGCodeFile(qApp->arguments().last())) { ++ if (qApp->arguments().count() > 1) { + loadFile(qApp->arguments().last()); + } + } diff --git a/pkgs/by-name/ca/candle/package.nix b/pkgs/by-name/ca/candle/package.nix new file mode 100644 index 000000000000..7e7f4a9a1862 --- /dev/null +++ b/pkgs/by-name/ca/candle/package.nix @@ -0,0 +1,58 @@ +{ + stdenv, + lib, + fetchFromGitHub, + nix-update-script, + qt5, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "candle"; + version = "1.1.8"; + + src = fetchFromGitHub { + owner = "Denvi"; + repo = "Candle"; + rev = "v${finalAttrs.version}"; + sha256 = "sha256-A53rHlabcuw/nWS7jsCyVrP3CUkmUI/UMRqpogyFOCM="; + }; + + sourceRoot = "${finalAttrs.src.name}/src"; + + patches = [ + # Store application settings in ~/.config/Candle + # https://github.com/Denvi/Candle/pull/658 + ./658.patch + ]; + + patchFlags = [ "-p2" ]; + + nativeBuildInputs = [ + qt5.qmake + qt5.wrapQtAppsHook + ]; + + buildInputs = [ + qt5.qtbase + qt5.qtserialport + ]; + + installPhase = '' + runHook preInstall + install -Dm755 Candle $out/bin/candle + runHook postInstall + ''; + + doInstallCheck = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "GRBL controller application with G-Code visualizer written in Qt"; + mainProgram = "candle"; + homepage = "https://github.com/Denvi/Candle"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ matti-kariluoma ]; + platforms = qt5.qtbase.meta.platforms; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7c2d790bf713..166fddc32cd2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1883,8 +1883,6 @@ with pkgs; ''; }); - candle = libsForQt5.callPackage ../applications/misc/candle { }; - capstone = callPackage ../development/libraries/capstone { }; capstone_4 = callPackage ../development/libraries/capstone/4.nix { };