maximize card pics in card info

This commit is contained in:
Max-Wilhelm Bruker 2011-11-26 14:57:31 +01:00
parent 7611bdd7cb
commit cef4fb11f3
2 changed files with 35 additions and 29 deletions

View file

@ -20,7 +20,7 @@ CardInfoWidget::CardInfoWidget(ResizeMode _mode, QWidget *parent, Qt::WindowFlag
{ {
if (mode == ModeGameTab) { if (mode == ModeGameTab) {
// Create indexed list of status views for card. // Create indexed list of status views for card.
const QStringList cardInfoStatus = QStringList() << tr("Hide card info") << tr("Show card only") << tr("Show text only") << tr("Show full info"); const QStringList cardInfoStatus = QStringList() << tr("Show card only") << tr("Show text only") << tr("Show full info");
// Create droplist for cardinfo view selection, and set right current index. // Create droplist for cardinfo view selection, and set right current index.
dropList = new QComboBox(); dropList = new QComboBox();
@ -70,15 +70,13 @@ CardInfoWidget::CardInfoWidget(ResizeMode _mode, QWidget *parent, Qt::WindowFlag
retranslateUi(); retranslateUi();
setFrameStyle(QFrame::Panel | QFrame::Raised); setFrameStyle(QFrame::Panel | QFrame::Raised);
if (mode == ModeGameTab) { if (mode == ModeGameTab) {
textLabel->setFixedHeight(100); textLabel->setMinimumHeight(100);
setFixedWidth(sizeHint().width()); setFixedWidth(sizeHint().width());
setMinimized(settingsCache->getCardInfoMinimized());
} else if (mode == ModePopUp) } else if (mode == ModePopUp)
setFixedWidth(350); setFixedWidth(350);
else else
setFixedWidth(250); setFixedWidth(250);
if (mode != ModeDeckEditor) setMinimized(settingsCache->getCardInfoMinimized());
setFixedHeight(sizeHint().height());
} }
void CardInfoWidget::minimizeClicked(int newMinimized) void CardInfoWidget::minimizeClicked(int newMinimized)
@ -92,28 +90,34 @@ void CardInfoWidget::setMinimized(int _minimized)
{ {
minimized = _minimized; minimized = _minimized;
// Set the picture to be shown only at "card only" (1) and "full info" (3) // Toggle oracle fields according to selected view.
if (minimized == 1 || minimized == 3) { bool showAll = ((minimized == 1) || (minimized == 2));
cardPicture->setVisible(true); if (mode == ModeGameTab) {
} else { nameLabel1->setVisible(showAll);
cardPicture->setVisible(false); nameLabel2->setVisible(showAll);
manacostLabel1->setVisible(showAll);
manacostLabel2->setVisible(showAll);
cardtypeLabel1->setVisible(showAll);
cardtypeLabel2->setVisible(showAll);
powtoughLabel1->setVisible(showAll);
powtoughLabel2->setVisible(showAll);
textLabel->setVisible(showAll);
} }
// Set the rest of the fields to be shown only at "full info" (3) and "oracle only" (2) cardPicture->hide();
bool showAll = (minimized == 2 || minimized == 3) ? true : false; cardHeightOffset = minimumSizeHint().height() + 10;
// Set the picture to be shown only at "card only" (0) and "full info" (2)
if (mode == ModeGameTab) {
cardPicture->setVisible((minimized == 0) || (minimized == 2));
// Toggle oracle fields as according to selected view. if (minimized == 0)
nameLabel2->setVisible(showAll); setMaximumHeight(cardHeightOffset + width() * aspectRatio);
nameLabel1->setVisible(showAll); else
manacostLabel1->setVisible(showAll); setMaximumHeight(1000000);
manacostLabel2->setVisible(showAll); } else
cardtypeLabel1->setVisible(showAll); cardPicture->show();
cardtypeLabel2->setVisible(showAll); resize(width(), sizeHint().height());
powtoughLabel1->setVisible(showAll);
powtoughLabel2->setVisible(showAll);
textLabel->setVisible(showAll);
setFixedHeight(sizeHint().height());
} }
void CardInfoWidget::setCard(CardInfo *card) void CardInfoWidget::setCard(CardInfo *card)
@ -166,10 +170,11 @@ void CardInfoWidget::retranslateUi()
void CardInfoWidget::resizeEvent(QResizeEvent * /*event*/) void CardInfoWidget::resizeEvent(QResizeEvent * /*event*/)
{ {
if (mode == ModeDeckEditor) { if ((mode == ModeGameTab) && (minimized == 1))
pixmapWidth = qMin(width() * 0.95, (height() - 200) / aspectRatio); return;
updatePixmap();
} pixmapWidth = qMax(100.0, qMin((qreal) cardPicture->width(), (height() - cardHeightOffset) / aspectRatio));
updatePixmap();
} }
QString CardInfoWidget::getCardName() const QString CardInfoWidget::getCardName() const

View file

@ -21,8 +21,9 @@ public:
private: private:
int pixmapWidth; int pixmapWidth;
qreal cardHeightOffset;
qreal aspectRatio; qreal aspectRatio;
int minimized; // 0 - minimized, 1 - card, 2 - oracle only, 3 - full int minimized; // 0 - card, 1 - oracle only, 2 - full
ResizeMode mode; ResizeMode mode;
QComboBox *dropList; QComboBox *dropList;