diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 59b1135..dadfe69 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -62,9 +62,12 @@ MainWindow::MainWindow(QWidget *parent)
badColor = QColor(Qt::red);
naColor = QColor(Qt::gray);
- ui->actionIgnore_C4_Reallocation_Event_Count->setChecked(settings.value("actionIgnore_C4_Reallocation_Event_Count", true).toBool());
- ui->actionHEX->setChecked(settings.value("actionHEX", true).toBool());
- ui->actionUse_Fahrenheit->setChecked(settings.value("actionUse_Fahrenheit", false).toBool());
+ actionCyclic_Navigation = ui->actionCyclic_Navigation;
+
+ ui->actionIgnore_C4_Reallocation_Event_Count->setChecked(settings.value("IgnoreC4", true).toBool());
+ ui->actionHEX->setChecked(settings.value("HEX", true).toBool());
+ ui->actionUse_Fahrenheit->setChecked(settings.value("Fahrenheit", false).toBool());
+ actionCyclic_Navigation->setChecked(settings.value("CyclicNavigation", false).toBool());
QAction *toggleEchoModeAction = serialNumberLineEdit->addAction(QIcon::fromTheme(QStringLiteral("visibility")), QLineEdit::TrailingPosition);
connect(toggleEchoModeAction, &QAction::triggered, this, [=]() {
@@ -103,10 +106,10 @@ void MainWindow::onPrevButtonClicked()
updateNavigationButtons(prevIndex);
}
-void MainWindow::updateNavigationButtons(int currentIndex) // WIP: Add option to roll back instead of disabling them
+void MainWindow::updateNavigationButtons(int currentIndex)
{
- prevButton->setEnabled(currentIndex > 0); // We can use setVisible if we want to mimic CrystalDiskInfo
- nextButton->setEnabled(currentIndex < buttonGroup->buttons().size() - 1);
+ prevButton->setEnabled(currentIndex > 0||actionCyclic_Navigation->isChecked()); // We can use setVisible if we want to mimic CrystalDiskInfo
+ nextButton->setEnabled(currentIndex < buttonGroup->buttons().size() - 1||actionCyclic_Navigation->isChecked());
}
QString getSmartctlPath() {
@@ -966,7 +969,7 @@ void MainWindow::on_actionAbout_triggered()
void MainWindow::on_actionIgnore_C4_Reallocation_Event_Count_toggled(bool enabled)
{
- settings.setValue("actionIgnore_C4_Reallocation_Event_Count", ui->actionIgnore_C4_Reallocation_Event_Count->isChecked());
+ settings.setValue("IgnoreC4", ui->actionIgnore_C4_Reallocation_Event_Count->isChecked());
if (!initializing) {
clearButtonGroup();
updateUI();
@@ -976,7 +979,7 @@ void MainWindow::on_actionIgnore_C4_Reallocation_Event_Count_toggled(bool enable
void MainWindow::on_actionHEX_toggled(bool enabled)
{
- settings.setValue("actionHEX", ui->actionHEX->isChecked());
+ settings.setValue("HEX", ui->actionHEX->isChecked());
if (!initializing) {
clearButtonGroup();
updateUI();
@@ -986,13 +989,20 @@ void MainWindow::on_actionHEX_toggled(bool enabled)
void MainWindow::on_actionUse_Fahrenheit_toggled(bool enabled)
{
- settings.setValue("actionUse_Fahrenheit", ui->actionUse_Fahrenheit->isChecked());
+ settings.setValue("Fahrenheit", ui->actionUse_Fahrenheit->isChecked());
if (!initializing) {
clearButtonGroup();
updateUI();
}
}
+void MainWindow::on_actionCyclic_Navigation_toggled(bool cyclicNavigation)
+{
+ settings.setValue("CyclicNavigation", ui->actionCyclic_Navigation->isChecked());
+ int currentIndex = buttonGroup->buttons().indexOf(buttonGroup->checkedButton());
+ updateNavigationButtons(currentIndex);
+}
+
QString MainWindow::initiateSelfTest(const QString &testType, const QString &deviceNode)
{
QProcess process;
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 13b0ab6..c8c7961 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -56,6 +56,8 @@ private slots:
void on_actionUse_Fahrenheit_toggled(bool enabled);
+ void on_actionCyclic_Navigation_toggled(bool arg1);
+
private:
Ui::MainWindow *ui;
QButtonGroup *buttonGroup;
@@ -69,6 +71,7 @@ private:
QJsonObject deviceJson;
QSpacerItem *buttonStretch;
QSettings settings;
+ QAction *actionCyclic_Navigation;
QMenu *menuDevice;
QMenu *menuDisk;
diff --git a/src/mainwindow.ui b/src/mainwindow.ui
index 0098082..c0f36e6 100644
--- a/src/mainwindow.ui
+++ b/src/mainwindow.ui
@@ -344,6 +344,7 @@
+