A somewhat workable solution (that still doesn't downsize correctly)

This commit is contained in:
Lukas Brübach 2025-01-20 15:34:41 +01:00
parent 14229666e3
commit 06099000c5
5 changed files with 26 additions and 11 deletions

View file

@ -11,13 +11,13 @@ EdhrecCommanderApiResponseCardListDisplayWidget::EdhrecCommanderApiResponseCardL
{ {
layout = new QVBoxLayout(this); layout = new QVBoxLayout(this);
setLayout(layout); setLayout(layout);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
setMinimumSize(0, 0); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
auto header = new QLabel(this); auto header = new QLabel(this);
header->setText(toDisplay.header); header->setText(toDisplay.header);
flowWidget = new FlowWidget(this, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAsNeeded); flowWidget = new FlowWidget(this, Qt::Horizontal, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAlwaysOff);
foreach (EdhrecCommanderApiResponseCardDetails card_detail, toDisplay.cardViews) { foreach (EdhrecCommanderApiResponseCardDetails card_detail, toDisplay.cardViews) {
auto widget = new EdhrecCommanderApiResponseCardDetailsDisplayWidget(flowWidget, card_detail); auto widget = new EdhrecCommanderApiResponseCardDetailsDisplayWidget(flowWidget, card_detail);
@ -27,3 +27,9 @@ EdhrecCommanderApiResponseCardListDisplayWidget::EdhrecCommanderApiResponseCardL
layout->addWidget(header); layout->addWidget(header);
layout->addWidget(flowWidget); layout->addWidget(flowWidget);
} }
void EdhrecCommanderApiResponseCardListDisplayWidget::resizeEvent(QResizeEvent *event)
{
QWidget::resizeEvent(event);
qDebug() << event->size();
}

View file

@ -4,6 +4,7 @@
#include "../../../ui/widgets/general/layout_containers/flow_widget.h" #include "../../../ui/widgets/general/layout_containers/flow_widget.h"
#include "api_response/edhrec_commander_api_response_card_list.h" #include "api_response/edhrec_commander_api_response_card_list.h"
#include <QResizeEvent>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QWidget> #include <QWidget>
@ -13,6 +14,7 @@ class EdhrecCommanderApiResponseCardListDisplayWidget : public QWidget
public: public:
explicit EdhrecCommanderApiResponseCardListDisplayWidget(QWidget *parent, explicit EdhrecCommanderApiResponseCardListDisplayWidget(QWidget *parent,
EdhrecCommanderApiResponseCardList toDisplay); EdhrecCommanderApiResponseCardList toDisplay);
void resizeEvent(QResizeEvent *event) override;
private: private:
QVBoxLayout *layout; QVBoxLayout *layout;

View file

@ -21,12 +21,12 @@ EdhrecCommanderApiResponseDisplayWidget::EdhrecCommanderApiResponseDisplayWidget
auto commanderPicture = new CardInfoPictureWidget(this); auto commanderPicture = new CardInfoPictureWidget(this);
commanderPicture->setCard( commanderPicture->setCard(
CardDatabaseManager::getInstance()->getCard(response.container.getCommanderDetails().getName())); CardDatabaseManager::getInstance()->getCard(response.container.getCommanderDetails().getName()));
layout->addWidget(commanderPicture, 0, Qt::AlignHCenter); layout->addWidget(commanderPicture);
auto edhrec_commander_api_response_card_lists = response.container.getCardlists(); auto edhrec_commander_api_response_card_lists = response.container.getCardlists();
foreach (EdhrecCommanderApiResponseCardList card_list, edhrec_commander_api_response_card_lists) { foreach (EdhrecCommanderApiResponseCardList card_list, edhrec_commander_api_response_card_lists) {
auto cardListDisplayWidget = new EdhrecCommanderApiResponseCardListDisplayWidget(this, card_list); auto cardListDisplayWidget = new EdhrecCommanderApiResponseCardListDisplayWidget(this, card_list);
layout->addWidget(cardListDisplayWidget, 0, Qt::AlignHCenter); layout->addWidget(cardListDisplayWidget);
} }
} }
@ -34,4 +34,7 @@ void EdhrecCommanderApiResponseDisplayWidget::resizeEvent(QResizeEvent *event)
{ {
QWidget::resizeEvent(event); QWidget::resizeEvent(event);
qDebug() << event->size(); qDebug() << event->size();
layout->invalidate();
layout->activate();
layout->update();
} }

View file

@ -15,10 +15,13 @@ TabEdhRec::TabEdhRec(TabSupervisor *_tabSupervisor) : Tab(_tabSupervisor)
{ {
setMinimumSize(0, 0); setMinimumSize(0, 0);
scrollArea = new QScrollArea();
flowWidget = new FlowWidget(this, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAsNeeded); scrollArea->setWidgetResizable(true);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
// flowWidget = new FlowWidget(this, Qt::Vertical, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAsNeeded);
networkManager = new QNetworkAccessManager(this); networkManager = new QNetworkAccessManager(this);
setCentralWidget(flowWidget); setCentralWidget(scrollArea);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)) #if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
networkManager->setTransferTimeout(); // Use Qt's default timeout networkManager->setTransferTimeout(); // Use Qt's default timeout
#endif #endif
@ -74,8 +77,9 @@ void TabEdhRec::processApiJson(QNetworkReply *reply)
EdhrecCommanderApiResponse deckData; EdhrecCommanderApiResponse deckData;
deckData.fromJson(jsonObj); deckData.fromJson(jsonObj);
displayWidget = new EdhrecCommanderApiResponseDisplayWidget(flowWidget, deckData); displayWidget = new EdhrecCommanderApiResponseDisplayWidget(this, deckData);
flowWidget->addWidget(displayWidget); // flowWidget->addWidget(displayWidget);
scrollArea->setWidget(displayWidget);
reply->deleteLater(); reply->deleteLater();
update(); update();

View file

@ -30,7 +30,7 @@ public slots:
void setCard(CardInfoPtr _cardToQuery); void setCard(CardInfoPtr _cardToQuery);
private: private:
FlowWidget *flowWidget; QScrollArea *scrollArea;
CardInfoPtr cardToQuery; CardInfoPtr cardToQuery;
EdhrecCommanderApiResponseDisplayWidget *displayWidget; EdhrecCommanderApiResponseDisplayWidget *displayWidget;
}; };