Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions qt/settings_dialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,103 @@
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="dialogsGroupBox">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="title">
<string>Dialogs</string>
</property>
<layout class="QVBoxLayout" name="dialogsLayout">
<property name="spacing">
<number>4</number>
</property>
<property name="leftMargin">
<number>4</number>
</property>
<property name="topMargin">
<number>4</number>
</property>
<property name="rightMargin">
<number>4</number>
</property>
<property name="bottomMargin">
<number>4</number>
</property>
<item>
<widget class="QCheckBox" name="skipNewProjectCheckBox">
<property name="text">
<string>Skip new project dialog (use defaults)</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="defaultToolTableLayout">
<item>
<widget class="QLabel" name="defaultToolTableLabel">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
<underline>true</underline>
</font>
</property>
<property name="text">
<string>Default Tool Table</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="defaultToolTableComboBox">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Default</string>
</property>
</item>
<item>
<property name="text">
<string>Current</string>
</property>
</item>
<item>
<property name="text">
<string>Empty</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="defaultToolTableSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>13</width>
<height>17</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="skipSaveConfirmCheckBox">
<property name="text">
<string>Skip save confirmation on close</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
Expand Down
7 changes: 7 additions & 0 deletions src/camotics/qt/FileTabManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include <QFile>
#include <QString>
#include <QMessageBox>
#include <QSettings>

using namespace CAMotics;
using namespace cb;
Expand Down Expand Up @@ -126,6 +127,9 @@ const SmartPointer<Project::File> &FileTabManager::getFile(unsigned tab) const {


bool FileTabManager::checkSave(unsigned tab) {
if (QSettings().value("Settings/SkipSaveConfirmation", false).toBool())
return true;

if (!isModified(tab)) return true;

// Select tab
Expand All @@ -144,6 +148,9 @@ bool FileTabManager::checkSave(unsigned tab) {


bool FileTabManager::checkSaveAll() {
if (QSettings().value("Settings/SkipSaveConfirmation", false).toBool())
return true;

bool all = false;

try {
Expand Down
16 changes: 16 additions & 0 deletions src/camotics/qt/QtWin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1006,12 +1006,25 @@ bool QtWin::runNewProjectDialog() {
// Initialize dialog
newProjectDialog.setUnits(getDefaultUnits());

// Skip dialog if configured
if (QSettings().value("Settings/SkipNewProjectDialog", false).toBool())
return true;

// Run dialog
return newProjectDialog.exec() == QDialog::Accepted;
}


GCode::ToolTable QtWin::getNewToolTable() {
// When dialog was skipped, use the configured default tool table
if (QSettings().value("Settings/SkipNewProjectDialog", false).toBool()) {
int toolTable = QSettings().value("Settings/DefaultToolTable", 0).toInt();
if (toolTable == 0) return loadDefaultToolTable();
if (toolTable == 1)
return project.isNull() ? GCode::ToolTable() : project->getTools();
return GCode::ToolTable();
}

if (newProjectDialog.defaultToolTableSelected())
return loadDefaultToolTable();

Expand Down Expand Up @@ -1333,6 +1346,9 @@ void QtWin::removeFile(unsigned index) {


bool QtWin::checkSave(bool canCancel) {
if (QSettings().value("Settings/SkipSaveConfirmation", false).toBool())
return true;

if (!ui->fileTabManager->checkSaveAll()) return false;
if (project.isNull() || !project->isDirty()) return true;

Expand Down
23 changes: 23 additions & 0 deletions src/camotics/qt/SettingsDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,16 @@ void SettingsDialog::load(Project::Project &project, View &view) {
ui.renderModeComboBox->
setCurrentIndex(settings.get("Settings/RenderMode", 0).toInt());

// Dialog settings
bool skipNewProject =
settings.get("Settings/SkipNewProjectDialog", false).toBool();
ui.skipNewProjectCheckBox->setChecked(skipNewProject);
ui.defaultToolTableComboBox->setEnabled(skipNewProject);
ui.defaultToolTableComboBox->
setCurrentIndex(settings.get("Settings/DefaultToolTable", 0).toInt());
ui.skipSaveConfirmCheckBox->
setChecked(settings.get("Settings/SkipSaveConfirmation", false).toBool());

ui.aabbCheckBox->setChecked(view.isFlagSet(View::SHOW_BBTREE_FLAG));
ui.aabbLeavesCheckBox->setChecked(view.isFlagSet(View::BBTREE_LEAVES_FLAG));

Expand All @@ -162,6 +172,14 @@ void SettingsDialog::save(Project::Project &project, View &view) {

settings.set("Settings/RenderMode", ui.renderModeComboBox->currentIndex());

// Dialog settings
settings.set("Settings/SkipNewProjectDialog",
ui.skipNewProjectCheckBox->isChecked());
settings.set("Settings/DefaultToolTable",
ui.defaultToolTableComboBox->currentIndex());
settings.set("Settings/SkipSaveConfirmation",
ui.skipSaveConfirmCheckBox->isChecked());

view.setFlag(View::SHOW_BBTREE_FLAG, ui.aabbCheckBox->isChecked());
view.setFlag(View::BBTREE_LEAVES_FLAG, ui.aabbLeavesCheckBox->isChecked());

Expand Down Expand Up @@ -214,3 +232,8 @@ void SettingsDialog::on_resolutionDoubleSpinBox_valueChanged(double value) {
void SettingsDialog::on_plannerEnableCheckBox_stateChanged(int checked) {
ui.plannerGroupBox->setEnabled(checked);
}


void SettingsDialog::on_skipNewProjectCheckBox_stateChanged(int checked) {
ui.defaultToolTableComboBox->setEnabled(checked);
}
1 change: 1 addition & 0 deletions src/camotics/qt/SettingsDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,6 @@ namespace CAMotics {
void on_resolutionComboBox_currentIndexChanged(int index);
void on_resolutionDoubleSpinBox_valueChanged(double value);
void on_plannerEnableCheckBox_stateChanged(int checked);
void on_skipNewProjectCheckBox_stateChanged(int checked);
};
}