mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
feat: restore changes func
This commit is contained in:
@@ -1,11 +1,15 @@
|
||||
#include "screenchecker.h"
|
||||
|
||||
#include <QLabel>
|
||||
#include <QBitmap>
|
||||
#include <QToolButton>
|
||||
#include <QPainter>
|
||||
|
||||
ScreenChecker::ScreenChecker(DataParser *dataParser, QHBoxLayout *layout, QObject *parent) :
|
||||
ScreenChecker::ScreenChecker(QWidget *mainWidget,DataParser *dataParser, QHBoxLayout *layout, QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
screenCount = 0;
|
||||
this->mainWidget = mainWidget;
|
||||
this->layout = layout;
|
||||
this->dataParser = dataParser;
|
||||
}
|
||||
@@ -14,6 +18,20 @@ void ScreenChecker::check()
|
||||
{
|
||||
screens = QGuiApplication::screens();
|
||||
|
||||
QPixmap checkedPixmap(":resource/Icons/checked.png");
|
||||
checkedPixmap = checkedPixmap.scaled(20,20);
|
||||
|
||||
QPainter painter;
|
||||
QColor color(51,153,0,255);
|
||||
|
||||
painter.begin(&checkedPixmap);
|
||||
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
|
||||
painter.fillRect(checkedPixmap.rect(),color);
|
||||
painter.end();
|
||||
|
||||
QIcon checkedIcon;
|
||||
checkedIcon.addPixmap(checkedPixmap,QIcon::Disabled,QIcon::On);
|
||||
|
||||
qint8 sizeVertical = 90;
|
||||
quint16 sizeHorizontal = 150;
|
||||
|
||||
@@ -31,7 +49,10 @@ void ScreenChecker::check()
|
||||
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);
|
||||
|
||||
QToolButton *button = new QToolButton();
|
||||
button->setText(sizeText);
|
||||
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
||||
button->setObjectName("displayView");
|
||||
buttons.append(button);
|
||||
|
||||
@@ -41,9 +62,19 @@ void ScreenChecker::check()
|
||||
float ratio = width / height;
|
||||
|
||||
QSize *sizeResult;
|
||||
if(height > width){
|
||||
QPushButton *checkedLabel = new QPushButton;
|
||||
|
||||
checkedLabel->setParent(button);
|
||||
checkedLabel->setIcon(checkedIcon);
|
||||
checkedLabel->setObjectName("checkedLabelButton");
|
||||
checkedLabel->setGeometry(3,3,30,30);
|
||||
|
||||
if(height > width)
|
||||
{
|
||||
sizeResult = new QSize(sizeVertical,sizeVertical / ratio);
|
||||
}else{
|
||||
}
|
||||
else
|
||||
{
|
||||
sizeResult = new QSize(sizeHorizontal,sizeHorizontal/ ratio);
|
||||
}
|
||||
|
||||
@@ -51,18 +82,16 @@ void ScreenChecker::check()
|
||||
button->setMaximumSize(*sizeResult);
|
||||
button->setCheckable(true);
|
||||
|
||||
connect(button,&QPushButton::clicked,this,&ScreenChecker::updateDisplayData);
|
||||
|
||||
if(i == 0){
|
||||
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);
|
||||
}
|
||||
|
||||
labels.append(checkedLabel);
|
||||
connect(button,&QToolButton::clicked,this,&ScreenChecker::updateDisplayData);
|
||||
|
||||
}
|
||||
|
||||
updateDisplayData();
|
||||
@@ -74,8 +103,15 @@ void ScreenChecker::updateDisplayData()
|
||||
|
||||
for (int i = 0; i <buttons.count();i++)
|
||||
{
|
||||
if(buttons[i]->isChecked()){
|
||||
QToolButton *button = buttons[i];
|
||||
if(button->isChecked())
|
||||
{
|
||||
displays->append(i);
|
||||
labels[i]->show();
|
||||
}
|
||||
else
|
||||
{
|
||||
labels[i]->hide();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,25 +9,29 @@
|
||||
#include <QDebug>
|
||||
#include <QPushButton>
|
||||
#include <QHBoxLayout>
|
||||
#include <QToolButton>
|
||||
#include <QLabel>
|
||||
|
||||
class ScreenChecker : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ScreenChecker(DataParser *dataParser, QHBoxLayout *layout,QObject *parent = nullptr);
|
||||
explicit ScreenChecker(QWidget *widget,DataParser *dataParser, QHBoxLayout *layout,QObject *parent = nullptr);
|
||||
~ScreenChecker();
|
||||
void check();
|
||||
QString getScreenCount() const;
|
||||
|
||||
|
||||
private:
|
||||
QWidget *mainWidget;
|
||||
DataParser *dataParser;
|
||||
QWidget *widget;
|
||||
QHBoxLayout *layout;
|
||||
qint64 screenCount;
|
||||
QList<QScreen *> screens;
|
||||
QList<QPushButton *> buttons;
|
||||
QList<QToolButton *> buttons;
|
||||
QList<QPushButton *> labels;
|
||||
|
||||
void updateDisplayData();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user