mirror of
https://github.com/edisionnano/QDiskInfo.git
synced 2026-04-21 07:03:18 +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"));
|
powerOnCountLineEdit = qobject_cast<QLineEdit *>(ui->centralwidget->findChild<QLineEdit*>("powerOnCountLineEdit"));
|
||||||
powerOnHoursLineEdit = qobject_cast<QLineEdit *>(ui->centralwidget->findChild<QLineEdit*>("powerOnHoursLineEdit"));
|
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);
|
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);
|
QAction *toggleEchoModeAction = serialNumberLineEdit->addAction(QIcon::fromTheme(QStringLiteral("visibility")), QLineEdit::TrailingPosition);
|
||||||
connect(toggleEchoModeAction, &QAction::triggered, this, [=]() {
|
connect(toggleEchoModeAction, &QAction::triggered, this, [=]() {
|
||||||
if (serialNumberLineEdit->echoMode() == QLineEdit::Password) {
|
if (serialNumberLineEdit->echoMode() == QLineEdit::Password) {
|
||||||
@@ -42,6 +51,8 @@ MainWindow::MainWindow(QWidget *parent)
|
|||||||
});
|
});
|
||||||
|
|
||||||
scanDevices();
|
scanDevices();
|
||||||
|
|
||||||
|
this->setFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
@@ -49,6 +60,28 @@ MainWindow::~MainWindow()
|
|||||||
delete ui;
|
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()
|
void MainWindow::scanDevices()
|
||||||
{
|
{
|
||||||
QString output = getSmartctlOutput({"--scan", "--json"}, false);
|
QString output = getSmartctlOutput({"--scan", "--json"}, false);
|
||||||
@@ -61,7 +94,6 @@ void MainWindow::scanDevices()
|
|||||||
bool firstTime = true;
|
bool firstTime = true;
|
||||||
bool globalIsNvme = false;
|
bool globalIsNvme = false;
|
||||||
|
|
||||||
|
|
||||||
for (const QJsonValue &value : devices) {
|
for (const QJsonValue &value : devices) {
|
||||||
QJsonObject device = value.toObject();
|
QJsonObject device = value.toObject();
|
||||||
QString deviceName = device["name"].toString();
|
QString deviceName = device["name"].toString();
|
||||||
@@ -155,6 +187,7 @@ void MainWindow::scanDevices()
|
|||||||
} else {
|
} else {
|
||||||
populateWindow(localObj, health);
|
populateWindow(localObj, health);
|
||||||
}
|
}
|
||||||
|
updateNavigationButtons(buttonGroup->buttons().indexOf(button));
|
||||||
});
|
});
|
||||||
|
|
||||||
if (firstTime) {
|
if (firstTime) {
|
||||||
@@ -175,6 +208,8 @@ void MainWindow::scanDevices()
|
|||||||
} else {
|
} else {
|
||||||
populateWindow(globalObj, globalHealth);
|
populateWindow(globalObj, globalHealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateNavigationButtons(buttonGroup->buttons().indexOf(buttonGroup->checkedButton()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::populateWindow(const QJsonObject &localObj, const QString &health, const QVector<QPair<QString, int>>& nvmeLogOrdered)
|
void MainWindow::populateWindow(const QJsonObject &localObj, const QString &health, const QVector<QPair<QString, int>>& nvmeLogOrdered)
|
||||||
|
|||||||
@@ -38,7 +38,11 @@ private:
|
|||||||
QLineEdit *firmwareLineEdit, *serialNumberLineEdit, *typeLineEdit, *protocolLineEdit, *deviceNodeLineEdit;
|
QLineEdit *firmwareLineEdit, *serialNumberLineEdit, *typeLineEdit, *protocolLineEdit, *deviceNodeLineEdit;
|
||||||
QLineEdit *totalReadsLineEdit, *totalWritesLineEdit, *rotationRateLineEdit, *powerOnCountLineEdit, *powerOnHoursLineEdit;
|
QLineEdit *totalReadsLineEdit, *totalWritesLineEdit, *rotationRateLineEdit, *powerOnCountLineEdit, *powerOnHoursLineEdit;
|
||||||
QTableWidget *tableWidget;
|
QTableWidget *tableWidget;
|
||||||
|
QPushButton *prevButton, *nextButton;
|
||||||
|
|
||||||
|
void onNextButtonClicked();
|
||||||
|
void onPrevButtonClicked();
|
||||||
|
void updateNavigationButtons(int currentIndex);
|
||||||
void scanDevices();
|
void scanDevices();
|
||||||
void populateWindow(const QJsonObject &tempObj, const QString &health, const QVector<QPair<QString, int>>& nvmeLogOrdered = QVector<QPair<QString, int>>());
|
void populateWindow(const QJsonObject &tempObj, const QString &health, const QVector<QPair<QString, int>>& nvmeLogOrdered = QVector<QPair<QString, int>>());
|
||||||
void addNvmeLogTable(const QVector<QPair<QString, int>>& nvmeLogOrdered);
|
void addNvmeLogTable(const QVector<QPair<QString, int>>& nvmeLogOrdered);
|
||||||
|
|||||||
Reference in New Issue
Block a user