candle: 1.1 -> 1.1.8
* Update candle to 1.1.8. * Add a patch that applies https://github.com/Denvi/Candle/pull/658. PR 658 enables the user to save application setting.
This commit is contained in:
182
pkgs/applications/misc/candle/658.patch
Normal file
182
pkgs/applications/misc/candle/658.patch
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
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());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,26 +1,41 @@
|
|||||||
{
|
{
|
||||||
mkDerivation,
|
stdenv,
|
||||||
lib,
|
lib,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
qtbase,
|
nix-update-script,
|
||||||
qtserialport,
|
qt5,
|
||||||
qmake,
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation rec {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "candle";
|
pname = "candle";
|
||||||
version = "1.1";
|
version = "1.1.8";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Denvi";
|
owner = "Denvi";
|
||||||
repo = "Candle";
|
repo = "Candle";
|
||||||
rev = "v${version}";
|
rev = "v${finalAttrs.version}";
|
||||||
sha256 = "1gpx08gdz8awbsj6lsczwgffp19z3q0r2fvm72a73qd9az29pmm0";
|
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 = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
@@ -28,16 +43,16 @@ mkDerivation rec {
|
|||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [
|
doInstallCheck = true;
|
||||||
qtbase
|
|
||||||
qtserialport
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = with lib; {
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
description = "GRBL controller application with G-Code visualizer written in Qt";
|
description = "GRBL controller application with G-Code visualizer written in Qt";
|
||||||
mainProgram = "candle";
|
mainProgram = "candle";
|
||||||
homepage = "https://github.com/Denvi/Candle";
|
homepage = "https://github.com/Denvi/Candle";
|
||||||
license = licenses.gpl3;
|
license = lib.licenses.gpl3;
|
||||||
maintainers = with maintainers; [ matti-kariluoma ];
|
maintainers = with lib.maintainers; [ matti-kariluoma ];
|
||||||
|
platforms = qt5.qtbase.meta.platforms;
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user