From 8e93120555a35458a2289fc5cfb099c62a1bf8da Mon Sep 17 00:00:00 2001 From: Hane Date: Wed, 27 Nov 2024 20:46:02 +0100 Subject: [PATCH] correct size on all resolutions --- src/qt/qtclasses.cpp | 52 +++++++++++++++----------------------------- src/qt/qtclasses.h | 2 +- 2 files changed, 19 insertions(+), 35 deletions(-) diff --git a/src/qt/qtclasses.cpp b/src/qt/qtclasses.cpp index 48660f1..78d99f0 100644 --- a/src/qt/qtclasses.cpp +++ b/src/qt/qtclasses.cpp @@ -282,31 +282,24 @@ void MainWindow::compose() { screenRes.getCoords(&srx1, &sry1, &srx2, &sry2); log_debugcpp("(for Percentage) Screen Res: " + std::to_string(srx1) + " " + std::to_string(srx2)+" " + std::to_string(sry1) + " " + std::to_string(sry2)); - dpr = screen->devicePixelRatio(); - log_to_file("dpr: %f \n", dpr); - uint64_t windowWidth = ((uint64_t)std::abs(screenRes.width()) * widthRatio) * dpr; + + uint64_t windowWidth = (((uint64_t)std::abs(screenRes.width())) * widthRatio); uint64_t screenHeight = (uint64_t)std::abs(screenRes.height()); log_debugcpp("Window Width: " + std::to_string(windowWidth)); + log_to_file("Window Width: %d \n", windowWidth); - QFontMetrics fontMetrics = this->fontMetrics(); - int maxCharWidth = fontMetrics.maxWidth(); - int charHeight = fontMetrics.height(); - //QSize QFontMetrics::size(int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const this->createLayout(new QGridLayout()); - //scrollArea->verticalScrollBar()->setMinimumWidth(windowWidth * (widthRatio)); - //scrollArea->verticalScrollBar()->setMaximumWidth(windowWidth * (widthRatio)); - /* - * this->setAttribute(Qt::WA_DontShowOnScreen, true); - * this->show(); - * this->widget->layout()->update(); - * this->hide(); - * this->setAttribute(Qt::WA_DontShowOnScreen, false); - */ - + this->scrollArea->setMaximumWidth((int)windowWidth); + this->scrollArea->setMinimumWidth((int)windowWidth); + this->mainMenuBar->setMinimumWidth((int)windowWidth); + this->mainMenuBar->setMaximumWidth((int)windowWidth); for (auto *epw : ews) { if (!epw) continue; - epw->calculateSize(windowWidth, screenHeight); + + epw->calculateSize(windowWidth - scrollArea->verticalScrollBar()->sizeHint().width() + - widgetLayout->contentsMargins().left() + , screenHeight); log_debugcpp("epw loop"); log_debugcpp("epw roles: " + print_as_binary((epw->getEndpointHandler()->getRoles()))); //std::bitset content = @@ -324,7 +317,6 @@ void MainWindow::compose() { ews[i]->layout()->getContentsMargins(&left, &top, &right, &bottom); windowHeight += ews[i]->sizeHint().height(); windowHeight += top * 3; - //windowHeight += bottom; log_debugcpp("windowHeight loop: " + std::to_string(windowHeight)); } windowHeight += mainMenuBar->sizeHint().height(); @@ -522,16 +514,6 @@ ChannelWidget::ChannelWidget(uint32_t channelCount, EndpointHandler* eph, QWidge this->setLayout(widgetLayout); } -/* - * QSize ChannelWidget::minimumSizeHint() const { - * return minimum; - * } - * - * void ChannelWidget::setMinimum(QSize minimum) { - * this->minimum = minimum; - * } - */ - void ChannelWidget::updateChannel(int channel) { this->channelSliders.at(channel)->blockSignals(true); this->channelSliders.at(channel)->setValue((int)((eph->getCallbackInfo()->channelVolumes[channel] + roundingFactor) * 100)); @@ -553,6 +535,7 @@ EndpointWidget::EndpointWidget(EndpointHandler* eph, QWidget *parent, uint64_t i this->eph->setState(EndpointState::ENDPOINT_ACTIVE, idx); this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); widgetLayout = new QGridLayout(this); + //this->setContentsMargins(0, 0, 0, 0); //this->setLayout(widgetLayout); log_debugcpp("epw main layout parent: " + std::to_string((intptr_t)(widgetLayout->parent()))); if (parent == nullptr) { log_debugcpp("ayooooo?"); } @@ -796,7 +779,7 @@ void MainWindow::removeEndpointWidget(CustomWidgetEvent* ev){ } void MainWindow::addEndpointWidget(CustomWidgetEvent* ev){ - EndpointWidget* epw = new EndpointWidget(ev->payload, widget, this->ews.size()); + EndpointWidget* epw = new EndpointWidget(ev->payload, containerWidget, this->ews.size()); //epw->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); //this->widgetLayout->addWidget(epw); ews.push_back(epw); @@ -952,7 +935,7 @@ void MainWindow::createLayout(QGridLayout *newLayout) { log_debugcpp("createLayout"); widgetLayout->removeItem(lastRowSpacer); delete this->widgetLayout; - widget->setLayout(newLayout); + containerWidget->setLayout(newLayout); this->widgetLayout = newLayout; bool areEndpoints = false; @@ -1011,7 +994,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { ewsUpdateTimer = new QTimer(this); recentlyClosedTimer = new QTimer(this); - widget = new QWidget(); + containerWidget = new QWidget(); + //widget->setContentsMargins(0, 0, 0, 0); widgetLayout = new QGridLayout(); trayIcon = new QSystemTrayIcon(); trayIconMenu = new QMenu(); @@ -1032,7 +1016,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { */ scrollArea = new QScrollArea(this); //widget->setAttribute(Qt::WA_TranslucentBackground); - scrollArea->setWidget(widget); + scrollArea->setWidget(containerWidget); scrollArea->setWidgetResizable(true); scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); @@ -1297,7 +1281,7 @@ void MainWindow::reloadEndpointWidgets() { if (osh->getPlaybackEndpointHandlers().at(i)->getState() == EndpointState::ENDPOINT_ACTIVE){ log_debugcpp("EPWidget creation"); //osh->getPlaybackEndpointHandlers().at(i)->getCallbackInfo()->caller = osh->getGuid(); - EndpointWidget *epw = new EndpointWidget(osh->getPlaybackEndpointHandlers().at(i), widget); + EndpointWidget *epw = new EndpointWidget(osh->getPlaybackEndpointHandlers().at(i), containerWidget); log_wdebugcpp(L"epw name: " + epw->getEndpointHandler()->getName()); if ((epw->getEndpointHandler()->getRoles() == Roles::ROLE_ALL) || diff --git a/src/qt/qtclasses.h b/src/qt/qtclasses.h index 349b2d3..36a0add 100644 --- a/src/qt/qtclasses.h +++ b/src/qt/qtclasses.h @@ -207,7 +207,7 @@ private: std::vector ews; std::vector> roleBucketList; - QWidget *widget; + QWidget *containerWidget; QGridLayout *widgetLayout; QSystemTrayIcon *trayIcon;