Ask for confirmation before closing a DBC file open for editing. If

closing the file also close editing windows as well. Fix for issue #149
This commit is contained in:
Collin Kidder
2019-02-17 16:54:03 -05:00
parent bae07f5a44
commit 2b871c625b
3 changed files with 22 additions and 3 deletions
+19 -2
View File
@@ -34,6 +34,7 @@ DBCLoadSaveWindow::DBCLoadSaveWindow(const QVector<CANFrame> *frames, QWidget *p
connect(ui->tableFiles, &QTableWidget::cellDoubleClicked, this, &DBCLoadSaveWindow::cellDoubleClicked);
editorWindow = new DBCMainEditor(frames);
currentlyEditingFile = nullptr;
installEventFilter(this);
}
@@ -108,10 +109,25 @@ void DBCLoadSaveWindow::saveFile()
void DBCLoadSaveWindow::removeFile()
{
bool bContinue = true;
int idx = ui->tableFiles->currentRow();
if (idx < 0) return;
dbcHandler->removeDBCFile(idx);
ui->tableFiles->removeRow(idx);
if (currentlyEditingFile == dbcHandler->getFileByIdx(idx))
{
bContinue = false;
QMessageBox::StandardButton confirmDialog;
confirmDialog = QMessageBox::question(this, "Confirm Deletion", "This DBC is currently open for editing.\nMake sure you've saved any changes!\nAre you sure you want to remove this DBC?",
QMessageBox::Yes|QMessageBox::No);
if (confirmDialog == QMessageBox::Yes) bContinue = true;
}
if (bContinue)
{
editorWindow->close();
dbcHandler->removeDBCFile(idx);
ui->tableFiles->removeRow(idx);
}
}
void DBCLoadSaveWindow::moveUp()
@@ -185,6 +201,7 @@ void DBCLoadSaveWindow::cellChanged(int row, int col)
void DBCLoadSaveWindow::cellDoubleClicked(int row, int col)
{
Q_UNUSED(col)
currentlyEditingFile = dbcHandler->getFileByIdx(row);
editorWindow->setFileIdx(row);
editorWindow->show();
}
+1
View File
@@ -32,6 +32,7 @@ private slots:
private:
Ui::DBCLoadSaveWindow *ui;
DBCHandler *dbcHandler;
DBCFile *currentlyEditingFile;
const QVector<CANFrame> *referenceFrames;
DBCMainEditor *editorWindow;
+2 -1
View File
@@ -103,6 +103,7 @@ void DBCMainEditor::closeEvent(QCloseEvent *event)
{
Q_UNUSED(event);
writeSettings();
sigEditor->close();
}
void DBCMainEditor::readSettings()
@@ -153,7 +154,7 @@ void DBCMainEditor::deleteCurrentNode()
int thisRow = ui->NodesTable->currentRow();
QString nodeName = ui->NodesTable->item(thisRow, 0)->text();
if (nodeName.length() > 0 && nodeName.compare("Vector__XXX", Qt::CaseInsensitive) != 0)
{
{
ui->NodesTable->removeRow(thisRow);
dbcFile->dbc_nodes.removeAt(thisRow);
inhibitCellChanged = true;