Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

183 lines
5.7 KiB
Diff
Raw Permalink Normal View History

2025-10-09 14:15:47 +02:00
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());
}
}