Unverified Commit 3d3bebfd authored by Arne Keller's avatar Arne Keller Committed by GitHub
Browse files

candle: 1.1 -> 1.1.8 (#440646)

parents 12e82ce7 05cf9965
Loading
Loading
Loading
Loading
+182 −0
Original line number Diff line number Diff line
From 43eb409b4854eab40fe627fa8266946a64508083 Mon Sep 17 00:00:00 2001
From: Keith Packard <keithp@keithp.com>
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 <keithp@keithp.com>
---
 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 <keithp@keithp.com>
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 <keithp@keithp.com>
---
 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 <keithp@keithp.com>
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 <keithp@keithp.com>
---
 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());
     }
 }
+58 −0
Original line number Diff line number Diff line
{
  mkDerivation,
  stdenv,
  lib,
  fetchFromGitHub,
  qtbase,
  qtserialport,
  qmake,
  nix-update-script,
  qt5,
}:

mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = "candle";
  version = "1.1";
  version = "1.1.8";

  src = fetchFromGitHub {
    owner = "Denvi";
    repo = "Candle";
    rev = "v${version}";
    sha256 = "1gpx08gdz8awbsj6lsczwgffp19z3q0r2fvm72a73qd9az29pmm0";
    rev = "v${finalAttrs.version}";
    sha256 = "sha256-A53rHlabcuw/nWS7jsCyVrP3CUkmUI/UMRqpogyFOCM=";
  };

  nativeBuildInputs = [ qmake ];
  sourceRoot = "${finalAttrs.src.name}/src";

  sourceRoot = "${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
@@ -28,16 +43,16 @@ mkDerivation rec {
    runHook postInstall
  '';

  buildInputs = [
    qtbase
    qtserialport
  ];
  doInstallCheck = true;

  passthru.updateScript = nix-update-script { };

  meta = with lib; {
  meta = {
    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 ];
    license = lib.licenses.gpl3;
    maintainers = with lib.maintainers; [ matti-kariluoma ];
    platforms = qt5.qtbase.meta.platforms;
  };
}
})
+0 −2
Original line number Diff line number Diff line
@@ -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 { };