mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
89 lines
2.2 KiB
C++
89 lines
2.2 KiB
C++
#include "screenchecker.h"
|
|
|
|
#include <QLabel>
|
|
|
|
ScreenChecker::ScreenChecker(DataParser *dataParser, QHBoxLayout *layout, QObject *parent) :
|
|
QObject(parent)
|
|
{
|
|
screenCount = 0;
|
|
this->layout = layout;
|
|
this->dataParser = dataParser;
|
|
}
|
|
|
|
void ScreenChecker::check()
|
|
{
|
|
screens = QGuiApplication::screens();
|
|
|
|
|
|
for (int i = 0; i < screens.size();i++)
|
|
{
|
|
QScreen *display = screens[i];
|
|
qDebug() << screens[i]->name();
|
|
screenCount++;
|
|
|
|
QString sizeText = QString::number(display->size().width()) + "x" + QString::number(display->size().height());
|
|
sizeText.append("\n");
|
|
sizeText.append(QString::number(display->refreshRate()) + "Hz");
|
|
QPushButton *button = new QPushButton(sizeText);
|
|
buttons.append(button);
|
|
|
|
layout->addWidget(button);
|
|
float width = display->size().width();
|
|
float height = display->size().height();
|
|
float ratio = width / height;
|
|
|
|
QSize *sizeResult;
|
|
if(height > width){
|
|
sizeResult = new QSize(90,90 / ratio);
|
|
}else{
|
|
sizeResult = new QSize(150,150 / ratio);
|
|
}
|
|
|
|
button->setMinimumSize(*sizeResult);
|
|
button->setMaximumSize(*sizeResult);
|
|
button->setCheckable(true);
|
|
|
|
connect(button,&QPushButton::clicked,this,&ScreenChecker::updateDisplayData);
|
|
|
|
if(i == 0){
|
|
button->setChecked(true);
|
|
button->setFlat(true);
|
|
QPalette palette= button->palette();
|
|
button->setEnabled(false);
|
|
palette.setColor(QPalette::Background,QColor(Qt::blue));
|
|
palette.setColor(QPalette::ButtonText,QColor(Qt::black));
|
|
button->setPalette(palette);
|
|
}
|
|
|
|
}
|
|
|
|
updateDisplayData();
|
|
}
|
|
|
|
void ScreenChecker::updateDisplayData()
|
|
{
|
|
QList<int> *displays = new QList<int>;
|
|
|
|
for (int i = 0; i <buttons.count();i++)
|
|
{
|
|
if(buttons[i]->isChecked()){
|
|
displays->append(i);
|
|
}
|
|
}
|
|
|
|
dataParser->addRunData(*displays);
|
|
}
|
|
|
|
QString ScreenChecker::getScreenCount() const
|
|
{
|
|
return QString::number(screenCount);
|
|
}
|
|
|
|
ScreenChecker::~ScreenChecker()
|
|
{
|
|
for (int i = 0; i < buttons.size(); i++)
|
|
{
|
|
delete buttons[i];
|
|
}
|
|
}
|