/**************************************************************************** ** Copyright (c) 2025 Evgeny Teterin (nayk) ** All right reserved. ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "main_window.h" #include "./ui_main_window.h" #include #include #include #include #include #include #include #include #include #include #include #include "logger.h" //============================================================================== Q_LOGGING_CATEGORY(mainWnd, "MainWindow") //============================================================================== MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); initialize(); } //============================================================================== MainWindow::~MainWindow() { delete ui; } //============================================================================== void MainWindow::initialize() { setWindowTitle( QApplication::applicationName() ); connect(ui->radioButton1, &QRadioButton::toggled, this, &MainWindow::radioButtonToggled); connect(ui->lineEdit1, &QLineEdit::editingFinished, this, &MainWindow::lineEditFinishEditing); connect(ui->toolButton1, &QToolButton::clicked, this, &MainWindow::buttonClick); connect(ui->pushButton1, &QPushButton::clicked, this, &MainWindow::buttonClick); connect(ui->pushButton2, &QPushButton::clicked, this, &MainWindow::buttonClick); connect(ui->pushButton2, &QPushButton::clicked, this, &MainWindow::buttonClick); connect(ui->pushButtonOpen, &QPushButton::clicked, this, &MainWindow::buttonOpenClick); } //============================================================================== void MainWindow::radioButtonToggled(bool checked) { #ifndef QT_NO_DEBUG LOG_FUNCTION(); #endif qCInfo(mainWnd) << "Переключение радиобаттона"; QAbstractButton *button = qobject_cast(sender()); if (button) { qDebug() << "objectName:" << button->objectName() << "text: " << button->text() << "isChecked:" << checked; } else { qCritical() << "Указатель не найден"; return; } } //============================================================================== void MainWindow::lineEditFinishEditing() { #ifndef QT_NO_DEBUG LOG_FUNCTION(); #endif qCInfo(mainWnd) << "Окончание редактирования текстового поля"; QLineEdit *lineEdit = qobject_cast(sender()); if (lineEdit) { qDebug() << "objectName:" << lineEdit->objectName() << "text: " << lineEdit->text(); } else { qCritical() << "Указатель не найден"; return; } } //============================================================================== void MainWindow::buttonClick() { #ifndef QT_NO_DEBUG LOG_FUNCTION(); #endif qCInfo(mainWnd) << "Нажатие кнопки"; QAbstractButton *button = qobject_cast(sender()); if (button) { qDebug() << "objectName:" << button->objectName() << "text: " << button->text(); } else { qCritical() << "Указатель не найден"; } } //============================================================================== void MainWindow::buttonOpenClick() { #ifndef QT_NO_DEBUG LOG_FUNCTION(); #endif qCInfo(mainWnd) << "Нажатие кнопки открытия каталога логов"; QString path {Logger::logDirectory()}; QDir dir(path); if (!dir.exists()) { qWarning() << "Каталог не найден:" << path; QMessageBox::critical(this, tr("Ошибка"), tr("Каталог не найден!")); return; } bool success = QDesktopServices::openUrl(QUrl::fromLocalFile(path)); if (!success) { qWarning() << "Не удалось открыть каталог:" << path; QMessageBox::critical(this, tr("Ошибка"), tr("Не удалось открыть каталог!")); } } //==============================================================================