- Add ENABLE_COVERAGE CMake option with gcov flags - Create collect-coverage.sh script for LCOV workflow - Add Qt6 test files with QTest framework - Update Jenkinsfile with Coverage stage (main/master/coverage.*) - Update CI Docker image with lcov and genhtml packages - Add .gitignore entries for coverage artifacts - Add COVERAGE.md documentation Coverage workflow: 1. Configure with -DENABLE_COVERAGE=ON 2. Build and run tests to generate .gcda/.gcno files 3. Collect coverage with lcov 4. Filter out Qt/system libraries 5. Generate HTML report and lcov.info for Jenkins Jenkins publishes coverage/lcov.info using Coverage Plugin. Coverage stage only runs on protected branches. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Entire-Checkpoint: 7783c7698334
61 lines
1.5 KiB
C++
61 lines
1.5 KiB
C++
#include "MainWindow.h"
|
|
#include "ui_MainWindow.h"
|
|
|
|
#include <QApplication>
|
|
#include <QScreen>
|
|
#include <QPixmap>
|
|
#include <QString>
|
|
#include <QRect>
|
|
|
|
MainWindow::MainWindow(QWidget *parent)
|
|
: QMainWindow(parent)
|
|
, ui(new Ui::MainWindow)
|
|
, m_pattern(QRegularExpression(R"(^[A-Za-z]+\d+$)"))
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
setWindowTitle(u"Qt6 Legacy Migration Benchmark"_s);
|
|
|
|
ui->label->setText(u"Bitte Text wie Test123 eingeben."_s);
|
|
ui->iconLabel->setPixmap(QPixmap(u":/icons/app.png"_s).scaled(48, 48));
|
|
|
|
connect(ui->validateButton, &QPushButton::clicked, this, &MainWindow::onValidateClicked);
|
|
connect(ui->screenButton, &QPushButton::clicked, this, &MainWindow::onScreenInfoClicked);
|
|
}
|
|
|
|
MainWindow::~MainWindow()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
bool MainWindow::validateInput(const QString &text) const
|
|
{
|
|
return m_pattern.match(text).hasMatch();
|
|
}
|
|
|
|
QString MainWindow::getScreenInfo() const
|
|
{
|
|
const QScreen *screen = QApplication::primaryScreen();
|
|
if (!screen) {
|
|
return u"Screen: unavailable"_s;
|
|
}
|
|
const QRect geometry = screen->geometry();
|
|
return u"Screen: %1x%2"_s.arg(geometry.width()).arg(geometry.height());
|
|
}
|
|
|
|
void MainWindow::onValidateClicked()
|
|
{
|
|
const QString text = ui->lineEdit->text();
|
|
|
|
if (validateInput(text)) {
|
|
ui->resultLabel->setText(u"Match"_s);
|
|
} else {
|
|
ui->resultLabel->setText(u"No match"_s);
|
|
}
|
|
}
|
|
|
|
void MainWindow::onScreenInfoClicked()
|
|
{
|
|
const QString info = getScreenInfo();
|
|
ui->resultLabel->setText(info);
|
|
} |