bugfix: monitor info

This commit is contained in:
semenov
2025-07-24 11:37:29 +03:00
parent 7ec5536875
commit 1b11765026
88 changed files with 3974 additions and 336285 deletions

View File

@@ -1,4 +1,5 @@
#include "screenchecker.h"
#include <windows.h>
ScreenChecker::ScreenChecker(QWidget *mainWidget,DataParser *dataParser, QHBoxLayout *layout, QObject *parent) :
QObject(parent)
@@ -36,6 +37,12 @@ void ScreenChecker::check()
sizeHorizontal = 120;
}
std::sort(screens.begin(), screens.end(), [](QScreen* a, QScreen* b)
{
return a->geometry().x() < b->geometry().x() || //левее
(a->geometry().x() == b->geometry().x() && a->geometry().y() < b->geometry().y()); //выше
});
for (int i = 0; i < screens.length() ;i++)
{
QScreen *display = screens[i];
@@ -78,7 +85,7 @@ void ScreenChecker::check()
button->setCheckable(true);
if(i == 0)
if(display->name() == QGuiApplication::primaryScreen()->name())
{
button->setChecked(true);
button->setEnabled(false);
@@ -90,18 +97,19 @@ void ScreenChecker::check()
}
updateDisplayData();
}
void ScreenChecker::updateDisplayData()
{
QList<int> *displays = new QList<int>;
QList<int> *displaysIndexList = new QList<int>;
for (int i = 0; i <buttons.count();i++)
{
QToolButton *button = buttons[i];
if(button->isChecked())
{
displays->append(i);
displaysIndexList->append(i);
labels[i]->show();
}
else
@@ -110,7 +118,10 @@ void ScreenChecker::updateDisplayData()
}
}
dataParser->addRunData(*displays);
if (displaysIndexList->at(0) != 0)
displaysIndexList->replace(0,0);
dataParser->addRunData(*displaysIndexList);
}
QString ScreenChecker::getScreenCount() const