implement feature

This commit is contained in:
RickyRister 2024-12-16 23:41:08 -08:00
parent 959a268f91
commit 0dfb88ba99
2 changed files with 17 additions and 3 deletions

View file

@ -282,7 +282,7 @@ static qreal determineNewZoneHeight(qreal oldZoneHeight)
return calcMaxInitialHeight();
}
void ZoneViewWidget::resizeToZoneContents()
void ZoneViewWidget::resizeToZoneContents(bool forceInitialHeight)
{
QRectF zoneRect = zone->getOptimumRect();
qreal totalZoneHeight = zoneRect.height();
@ -293,7 +293,7 @@ void ZoneViewWidget::resizeToZoneContents()
QSizeF maxSize(width, zoneRect.height() + extraHeight + 10);
qreal currentZoneHeight = rect().height() - extraHeight - 10;
qreal newZoneHeight = determineNewZoneHeight(currentZoneHeight);
qreal newZoneHeight = forceInitialHeight ? calcMaxInitialHeight() : determineNewZoneHeight(currentZoneHeight);
QSizeF initialSize(width, newZoneHeight + extraHeight + 10);
@ -335,3 +335,16 @@ void ZoneViewWidget::initStyleOption(QStyleOption *option) const
if (titleBar)
titleBar->icon = QPixmap("theme:cockatrice");
}
void ZoneViewWidget::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
if (event->pos().y() <= 0) {
// expand window to full height and width if not currently at full height and width
// otherwise shrink window to initial max height
if (size().height() < maximumHeight() || size().width() < maximumWidth()) {
resize(maximumSize());
} else {
resizeToZoneContents(true);
}
}
}

View file

@ -63,7 +63,7 @@ private slots:
void processGroupBy(int value);
void processSortBy(int value);
void processSetPileView(QT_STATE_CHANGED_T value);
void resizeToZoneContents();
void resizeToZoneContents(bool forceInitialHeight = false);
void handleScrollBarChange(int value);
void zoneDeleted();
void moveEvent(QGraphicsSceneMoveEvent * /* event */) override;
@ -90,6 +90,7 @@ public:
protected:
void closeEvent(QCloseEvent *event) override;
void initStyleOption(QStyleOption *option) const override;
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
};
#endif