diff --git a/launcher/ui/themes/CatPainter.cpp b/launcher/ui/themes/CatPainter.cpp index 7c152fdc9..5e37d3abc 100644 --- a/launcher/ui/themes/CatPainter.cpp +++ b/launcher/ui/themes/CatPainter.cpp @@ -57,10 +57,16 @@ void CatPainter::paint(QPainter* painter, const QRect& viewport) widWidth = frame.width(); if (frame.height() < widHeight) widHeight = frame.height(); + } else if (fit == "cover") { + aspectMode = Qt::KeepAspectRatioByExpanding; } auto pixmap = frame.scaled(widWidth, widHeight, aspectMode, Qt::SmoothTransformation); QRect rectOfPixmap = pixmap.rect(); - rectOfPixmap.moveBottomRight(viewport.bottomRight()); + if (fit == "cover") { + rectOfPixmap.moveCenter(viewport.center()); + } else { + rectOfPixmap.moveBottomRight(viewport.bottomRight()); + } painter->drawPixmap(rectOfPixmap.topLeft(), pixmap); painter->setOpacity(1.0); }; diff --git a/launcher/ui/widgets/AppearanceWidget.cpp b/launcher/ui/widgets/AppearanceWidget.cpp index d93a34657..0364a8d81 100644 --- a/launcher/ui/widgets/AppearanceWidget.cpp +++ b/launcher/ui/widgets/AppearanceWidget.cpp @@ -98,7 +98,7 @@ void AppearanceWidget::applySettings() settings->set("ConsoleFontSize", m_ui->fontSizeBox->value()); settings->set("CatOpacity", m_ui->catOpacitySlider->value()); auto catFit = m_ui->catFitComboBox->currentIndex(); - settings->set("CatFit", catFit == 0 ? "fit" : catFit == 1 ? "fill" : "strech"); + settings->set("CatFit", catFit == 0 ? "fit" : catFit == 1 ? "fill" : catFit == 2 ? "cover" : "strech"); applySnow(m_ui->snowCheckBox->isChecked()); } @@ -121,7 +121,7 @@ void AppearanceWidget::loadSettings() m_ui->catOpacitySlider->setValue(settings->get("CatOpacity").toInt()); auto catFit = settings->get("CatFit").toString(); - m_ui->catFitComboBox->setCurrentIndex(catFit == "fit" ? 0 : catFit == "fill" ? 1 : 2); + m_ui->catFitComboBox->setCurrentIndex(catFit == "fit" ? 0 : catFit == "fill" ? 1 : catFit == "cover" ? 2 : 3); } void AppearanceWidget::retranslateUi() diff --git a/launcher/ui/widgets/AppearanceWidget.ui b/launcher/ui/widgets/AppearanceWidget.ui index a9a5e234e..3f9944b09 100644 --- a/launcher/ui/widgets/AppearanceWidget.ui +++ b/launcher/ui/widgets/AppearanceWidget.ui @@ -372,6 +372,11 @@ + Cover + + + + Stretch