Skip to content

Commit d1adb72

Browse files
committed
Configuration dialog for SPI chips
1 parent 788ad3c commit d1adb72

14 files changed

+779
-64
lines changed

qt/main_window.cpp

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
#include "main_window.h"
77
#include "ui_main_window.h"
88
#include "settings_programmer_dialog.h"
9-
#include "chip_db_dialog.h"
9+
#include "parallel_chip_db_dialog.h"
10+
#include "spi_chip_db_dialog.h"
1011
#include "firmware_update_dialog.h"
1112
#include "parallel_chip_db.h"
13+
#include "spi_chip_db.h"
1214
#include "logger.h"
1315
#include "about_dialog.h"
1416
#include "settings.h"
@@ -85,8 +87,10 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
8587
SLOT(slotProgReadBadBlocks()));
8688
connect(ui->actionProgrammer, SIGNAL(triggered()), this,
8789
SLOT(slotSettingsProgrammer()));
88-
connect(ui->actionChipDb, SIGNAL(triggered()), this,
89-
SLOT(slotSettingsChipDb()));
90+
connect(ui->actionParallelChipDb, SIGNAL(triggered()), this,
91+
SLOT(slotSettingsParallelChipDb()));
92+
connect(ui->actionSpiChipDb, SIGNAL(triggered()), this,
93+
SLOT(slotSettingsSpiChipDb()));
9094
connect(ui->actionAbout, SIGNAL(triggered()), this,
9195
SLOT(slotAboutDialog()));
9296
connect(ui->detectPushButton, SIGNAL(clicked()), this,
@@ -635,9 +639,17 @@ void MainWindow::updateProgSettings()
635639
}
636640
}
637641

638-
void MainWindow::slotSettingsChipDb()
642+
void MainWindow::slotSettingsParallelChipDb()
639643
{
640-
ChipDbDialog chipDbDialog(&parallelChipDb, this);
644+
ParallelChipDbDialog chipDbDialog(&parallelChipDb, this);
645+
646+
if (chipDbDialog.exec() == QDialog::Accepted)
647+
updateChipList();
648+
}
649+
650+
void MainWindow::slotSettingsSpiChipDb()
651+
{
652+
SpiChipDbDialog chipDbDialog(&spiChipDb, this);
641653

642654
if (chipDbDialog.exec() == QDialog::Accepted)
643655
updateChipList();

qt/main_window.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ public slots:
7272
void slotSelectChip(int selectedChipNum);
7373
void slotDetectChip();
7474
void slotSettingsProgrammer();
75-
void slotSettingsChipDb();
75+
void slotSettingsParallelChipDb();
76+
void slotSettingsSpiChipDb();
7677
void slotAboutDialog();
7778
void slotFirmwareUpdateDialog();
7879
};

qt/main_window.ui

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,8 @@
283283
<string>Settings</string>
284284
</property>
285285
<addaction name="actionProgrammer"/>
286-
<addaction name="actionChipDb"/>
286+
<addaction name="actionParallelChipDb"/>
287+
<addaction name="actionSpiChipDb"/>
287288
<addaction name="separator"/>
288289
<addaction name="actionFirmwareUpdate"/>
289290
</widget>
@@ -379,9 +380,9 @@
379380
<string>Read bad blocks</string>
380381
</property>
381382
</action>
382-
<action name="actionChipDb">
383+
<action name="actionParallelChipDb">
383384
<property name="text">
384-
<string>Chip database</string>
385+
<string>Parallel chip database</string>
385386
</property>
386387
</action>
387388
<action name="actionAbout">
@@ -397,6 +398,11 @@
397398
<string>Firmware update</string>
398399
</property>
399400
</action>
401+
<action name="actionSpiChipDb">
402+
<property name="text">
403+
<string>SPI chip database</string>
404+
</property>
405+
</action>
400406
</widget>
401407
<layoutdefault spacing="6" margin="11"/>
402408
<resources>

qt/parallel_chip_db_dialog.cpp

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
/* Copyright (C) 2020 NANDO authors
2+
* This program is free software; you can redistribute it and/or modify
3+
* it under the terms of the GNU General Public License version 3.
4+
*/
5+
6+
#include "parallel_chip_db_dialog.h"
7+
#include "ui_parallel_chip_db_dialog.h"
8+
9+
#define HEADER_LONG_WIDTH 120
10+
#define HEADER_MED_WIDTH 100
11+
#define HEADER_SHORT_WIDTH 50
12+
13+
ParallelChipDbDialog::ParallelChipDbDialog(ParallelChipDb *chipDb,
14+
QWidget *parent) : QDialog(parent), ui(new Ui::ParallelChipDbDialog),
15+
chipDbTableModel(chipDb, parent)
16+
{
17+
ui->setupUi(this);
18+
chipDbProxyModel.setSourceModel(&chipDbTableModel);
19+
ui->chipDbTableView->setModel(&chipDbProxyModel);
20+
ui->chipDbTableView->setColumnWidth(CHIP_PARAM_NAME, HEADER_LONG_WIDTH);
21+
ui->chipDbTableView->setColumnWidth(CHIP_PARAM_PAGE_SIZE,
22+
HEADER_MED_WIDTH);
23+
ui->chipDbTableView->setColumnWidth(CHIP_PARAM_BLOCK_SIZE,
24+
HEADER_MED_WIDTH);
25+
ui->chipDbTableView->setColumnWidth(CHIP_PARAM_TOTAL_SIZE,
26+
HEADER_MED_WIDTH);
27+
ui->chipDbTableView->setColumnWidth(CHIP_PARAM_SPARE_SIZE,
28+
HEADER_MED_WIDTH);
29+
for (int i = CHIP_PARAM_T_CS; i <= CHIP_PARAM_T_REA; i++)
30+
ui->chipDbTableView->setColumnWidth(i, HEADER_SHORT_WIDTH);
31+
for (int i = CHIP_PARAM_ROW_CYCLES; i <= CHIP_PARAM_BB_MARK_OFF; i++)
32+
ui->chipDbTableView->setColumnWidth(i, HEADER_MED_WIDTH);
33+
34+
connect(ui->addChipDbButton, SIGNAL(clicked()), this,
35+
SLOT(slotAddChipDbButtonClicked()));
36+
connect(ui->delChipDbButton, SIGNAL(clicked()), this,
37+
SLOT(slotDelChipDbButtonClicked()));
38+
connect(ui->okCancelButtonBox->button(QDialogButtonBox::Ok),
39+
SIGNAL(clicked()), this, SLOT(slotOkButtonClicked()));
40+
connect(ui->okCancelButtonBox->button(QDialogButtonBox::Cancel),
41+
SIGNAL(clicked()), this, SLOT(slotCancelButtonClicked()));
42+
}
43+
44+
ParallelChipDbDialog::~ParallelChipDbDialog()
45+
{
46+
delete ui;
47+
}
48+
49+
void ParallelChipDbDialog::slotAddChipDbButtonClicked()
50+
{
51+
chipDbTableModel.addRow();
52+
}
53+
54+
void ParallelChipDbDialog::slotDelChipDbButtonClicked()
55+
{
56+
QModelIndexList selection = ui->chipDbTableView->selectionModel()->
57+
selectedRows();
58+
59+
if (!selection.count())
60+
return;
61+
62+
chipDbTableModel.delRow(selection.at(0).row());
63+
}
64+
65+
void ParallelChipDbDialog::slotOkButtonClicked()
66+
{
67+
chipDbTableModel.commit();
68+
}
69+
70+
void ParallelChipDbDialog::slotCancelButtonClicked()
71+
{
72+
chipDbTableModel.reset();
73+
}

qt/parallel_chip_db_dialog.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/* Copyright (C) 2020 NANDO authors
2+
* This program is free software; you can redistribute it and/or modify
3+
* it under the terms of the GNU General Public License version 3.
4+
*/
5+
6+
#ifndef PARALLEL_CHIP_DB_DALOG_H
7+
#define PARALLEL_CHIP_DB_DALOG_H
8+
9+
#include "parallel_chip_db_table_model.h"
10+
#include <QDialog>
11+
#include <QSortFilterProxyModel>
12+
13+
namespace Ui {
14+
class ParallelChipDbDialog;
15+
}
16+
17+
class ParallelChipDbDialog : public QDialog
18+
{
19+
Q_OBJECT
20+
21+
Ui::ParallelChipDbDialog *ui;
22+
ParallelChipDbTableModel chipDbTableModel;
23+
QSortFilterProxyModel chipDbProxyModel;
24+
25+
public:
26+
explicit ParallelChipDbDialog(ParallelChipDb *chipDb,
27+
QWidget *parent = nullptr);
28+
~ParallelChipDbDialog();
29+
30+
private slots:
31+
void slotAddChipDbButtonClicked();
32+
void slotDelChipDbButtonClicked();
33+
void slotOkButtonClicked();
34+
void slotCancelButtonClicked();
35+
};
36+
37+
#endif // PARALLEL_CHIP_DB_DALOG_H

0 commit comments

Comments
 (0)