mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
bugfix: monitor info
This commit is contained in:
@@ -197,12 +197,18 @@ QByteArray DataParser::xmlAnswer_notify(QString code)
|
||||
void DataParser::addRunData(QList<int> displays)
|
||||
{
|
||||
QFile file(displayTemp);
|
||||
file.open(QIODevice::ReadWrite);
|
||||
file.open(QIODevice::WriteOnly);
|
||||
QString data;
|
||||
|
||||
for(int i = 0; i < displays.count(); i++)
|
||||
{
|
||||
data.append(QString::number(displays[i]) + ";");
|
||||
}
|
||||
|
||||
QXmlStreamWriter xmlWriter(&file);
|
||||
xmlWriter.setAutoFormatting(true);
|
||||
xmlWriter.writeStartElement("DisplayInfo");
|
||||
xmlWriter.writeAttribute("DisplayCount",QString::number(displays.length()));
|
||||
xmlWriter.writeAttribute("DisplaysID",data);
|
||||
xmlWriter.writeEndElement();
|
||||
file.close();
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
#include <QToolButton>
|
||||
#include <QPainter>
|
||||
|
||||
#include <Data/monitorInfo.h>
|
||||
|
||||
class DataParser;
|
||||
class ScreenChecker : public QObject
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user