mirror of
https://github.com/edisionnano/QDiskInfo.git
synced 2026-03-17 18:20:53 +03:00
Fix buttons
This commit is contained in:
@@ -27,9 +27,18 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
powerOnCountLineEdit = qobject_cast<QLineEdit *>(ui->centralwidget->findChild<QLineEdit*>("powerOnCountLineEdit"));
|
||||
powerOnHoursLineEdit = qobject_cast<QLineEdit *>(ui->centralwidget->findChild<QLineEdit*>("powerOnHoursLineEdit"));
|
||||
|
||||
tableWidget = qobject_cast<QTableWidget *>(ui->centralwidget->findChild<QTableWidget*>("dataTable"));;
|
||||
tableWidget = qobject_cast<QTableWidget *>(ui->centralwidget->findChild<QTableWidget*>("dataTable"));
|
||||
serialNumberLineEdit->setEchoMode(QLineEdit::Password);
|
||||
|
||||
nextButton = ui->centralwidget->findChild<QPushButton*>("nextButton");
|
||||
prevButton = ui->centralwidget->findChild<QPushButton*>("previousButton");
|
||||
|
||||
connect(nextButton, &QPushButton::clicked, this, &MainWindow::onNextButtonClicked);
|
||||
connect(prevButton, &QPushButton::clicked, this, &MainWindow::onPrevButtonClicked);
|
||||
|
||||
nextButton->setFocusPolicy(Qt::NoFocus);
|
||||
prevButton->setFocusPolicy(Qt::NoFocus);
|
||||
|
||||
QAction *toggleEchoModeAction = serialNumberLineEdit->addAction(QIcon::fromTheme(QStringLiteral("visibility")), QLineEdit::TrailingPosition);
|
||||
connect(toggleEchoModeAction, &QAction::triggered, this, [=]() {
|
||||
if (serialNumberLineEdit->echoMode() == QLineEdit::Password) {
|
||||
@@ -42,6 +51,8 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
});
|
||||
|
||||
scanDevices();
|
||||
|
||||
this->setFocus();
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
@@ -49,6 +60,28 @@ MainWindow::~MainWindow()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MainWindow::onNextButtonClicked()
|
||||
{
|
||||
int currentIndex = buttonGroup->buttons().indexOf(buttonGroup->checkedButton());
|
||||
int nextIndex = (currentIndex + 1) % buttonGroup->buttons().size();
|
||||
buttonGroup->buttons().at(nextIndex)->click();
|
||||
updateNavigationButtons(nextIndex);
|
||||
}
|
||||
|
||||
void MainWindow::onPrevButtonClicked()
|
||||
{
|
||||
int currentIndex = buttonGroup->buttons().indexOf(buttonGroup->checkedButton());
|
||||
int prevIndex = (currentIndex - 1 + buttonGroup->buttons().size()) % buttonGroup->buttons().size();
|
||||
buttonGroup->buttons().at(prevIndex)->click();
|
||||
updateNavigationButtons(prevIndex);
|
||||
}
|
||||
|
||||
void MainWindow::updateNavigationButtons(int currentIndex)
|
||||
{
|
||||
prevButton->setVisible(currentIndex > 0);
|
||||
nextButton->setVisible(currentIndex < buttonGroup->buttons().size() - 1);
|
||||
}
|
||||
|
||||
void MainWindow::scanDevices()
|
||||
{
|
||||
QString output = getSmartctlOutput({"--scan", "--json"}, false);
|
||||
@@ -61,7 +94,6 @@ void MainWindow::scanDevices()
|
||||
bool firstTime = true;
|
||||
bool globalIsNvme = false;
|
||||
|
||||
|
||||
for (const QJsonValue &value : devices) {
|
||||
QJsonObject device = value.toObject();
|
||||
QString deviceName = device["name"].toString();
|
||||
@@ -155,6 +187,7 @@ void MainWindow::scanDevices()
|
||||
} else {
|
||||
populateWindow(localObj, health);
|
||||
}
|
||||
updateNavigationButtons(buttonGroup->buttons().indexOf(button));
|
||||
});
|
||||
|
||||
if (firstTime) {
|
||||
@@ -175,6 +208,8 @@ void MainWindow::scanDevices()
|
||||
} else {
|
||||
populateWindow(globalObj, globalHealth);
|
||||
}
|
||||
|
||||
updateNavigationButtons(buttonGroup->buttons().indexOf(buttonGroup->checkedButton()));
|
||||
}
|
||||
|
||||
void MainWindow::populateWindow(const QJsonObject &localObj, const QString &health, const QVector<QPair<QString, int>>& nvmeLogOrdered)
|
||||
|
||||
Reference in New Issue
Block a user