optionally display card names on cards even if they have a picture

This commit is contained in:
Max-Wilhelm Bruker 2011-02-11 18:54:55 +01:00
parent 8ccde61492
commit 4a34c52c8c
5 changed files with 46 additions and 10 deletions

View file

@ -20,6 +20,7 @@ AbstractCardItem::AbstractCardItem(const QString &_name, Player *_owner, QGraphi
setCacheMode(DeviceCoordinateCache);
connect(info, SIGNAL(pixmapUpdated()), this, SLOT(pixmapUpdated()));
connect(settingsCache, SIGNAL(displayCardNamesChanged()), this, SLOT(update()));
animationTimer = new QTimer(this);
animationTimer->setSingleShot(false);
@ -68,9 +69,11 @@ void AbstractCardItem::transformPainter(QPainter *painter, const QSizeF &transla
painter->setTransform(pixmapTransform);
QFont f;
int fontSize = translatedSize.height() / 6;
int fontSize = translatedSize.height() / 8;
if (fontSize < 9)
fontSize = 9;
if (fontSize > 12)
fontSize = 12;
f.setPixelSize(fontSize);
painter->setFont(f);
}
@ -120,12 +123,19 @@ void AbstractCardItem::paintPicture(QPainter *painter, int angle)
pen.setWidth(2);
painter->setPen(pen);
painter->drawRect(QRectF(1, 1, CARD_WIDTH - 2, CARD_HEIGHT - 2));
transformPainter(painter, translatedSize, angle);
painter->setPen(textColor);
painter->drawText(QRectF(4 * scaleFactor, 4 * scaleFactor, translatedSize.width() - 8 * scaleFactor, translatedSize.height() - 8 * scaleFactor), Qt::AlignTop | Qt::AlignLeft | Qt::TextWrapAnywhere, name);
}
painter->restore();
if (!translatedPixmap || settingsCache->getDisplayCardNames()) {
painter->save();
transformPainter(painter, translatedSize, angle);
painter->setPen(Qt::white);
painter->setBackground(Qt::black);
painter->setBackgroundMode(Qt::OpaqueMode);
painter->drawText(QRectF(3 * scaleFactor, 3 * scaleFactor, translatedSize.width() - 6 * scaleFactor, translatedSize.height() - 6 * scaleFactor), Qt::AlignTop | Qt::AlignLeft | Qt::TextWrapAnywhere, name);
}
painter->restore();
}
void AbstractCardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/)

View file

@ -218,6 +218,16 @@ AppearanceSettingsPage::AppearanceSettingsPage()
zoneBgGroupBox = new QGroupBox;
zoneBgGroupBox->setLayout(zoneBgGrid);
displayCardNamesCheckBox = new QCheckBox;
displayCardNamesCheckBox->setChecked(settingsCache->getDisplayCardNames());
connect(displayCardNamesCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setDisplayCardNames(int)));
QGridLayout *cardsGrid = new QGridLayout;
cardsGrid->addWidget(displayCardNamesCheckBox, 0, 0, 1, 2);
cardsGroupBox = new QGroupBox;
cardsGroupBox->setLayout(cardsGrid);
horizontalHandCheckBox = new QCheckBox;
horizontalHandCheckBox->setChecked(settingsCache->getHorizontalHand());
connect(horizontalHandCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setHorizontalHand(int)));
@ -254,6 +264,7 @@ AppearanceSettingsPage::AppearanceSettingsPage()
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(zoneBgGroupBox);
mainLayout->addWidget(cardsGroupBox);
mainLayout->addWidget(handGroupBox);
mainLayout->addWidget(tableGroupBox);
mainLayout->addWidget(zoneViewGroupBox);
@ -270,6 +281,9 @@ void AppearanceSettingsPage::retranslateUi()
playerAreaBgLabel->setText(tr("Path to player info background:"));
cardBackPicturePathLabel->setText(tr("Path to picture of card back:"));
cardsGroupBox->setTitle(tr("Card rendering"));
displayCardNamesCheckBox->setText(tr("Display card names on cards having a picture"));
handGroupBox->setTitle(tr("Hand layout"));
horizontalHandCheckBox->setText(tr("Display hand horizontally (wastes space)"));
@ -468,8 +482,8 @@ DlgSettings::DlgSettings(QWidget *parent)
contentsWidget->setViewMode(QListView::IconMode);
contentsWidget->setIconSize(QSize(96, 84));
contentsWidget->setMovement(QListView::Static);
contentsWidget->setMinimumWidth(115);
contentsWidget->setMaximumWidth(130);
contentsWidget->setMinimumWidth(130);
contentsWidget->setMaximumWidth(150);
contentsWidget->setSpacing(12);
pagesWidget = new QStackedWidget;
@ -500,7 +514,7 @@ DlgSettings::DlgSettings(QWidget *parent)
retranslateUi();
resize(700, 450);
resize(800, 450);
}
void DlgSettings::createIcons()

View file

@ -67,8 +67,8 @@ signals:
private:
QLabel *handBgLabel, *stackBgLabel, *tableBgLabel, *playerAreaBgLabel, *cardBackPicturePathLabel;
QLineEdit *handBgEdit, *stackBgEdit, *tableBgEdit, *playerAreaBgEdit, *cardBackPicturePathEdit;
QCheckBox *horizontalHandCheckBox, *invertVerticalCoordinateCheckBox, *zoneViewSortByNameCheckBox, *zoneViewSortByTypeCheckBox;
QGroupBox *zoneBgGroupBox, *handGroupBox, *tableGroupBox, *zoneViewGroupBox;
QCheckBox *displayCardNamesCheckBox, *horizontalHandCheckBox, *invertVerticalCoordinateCheckBox, *zoneViewSortByNameCheckBox, *zoneViewSortByTypeCheckBox;
QGroupBox *zoneBgGroupBox, *cardsGroupBox, *handGroupBox, *tableGroupBox, *zoneViewGroupBox;
public:
AppearanceSettingsPage();
void retranslateUi();

View file

@ -20,6 +20,7 @@ SettingsCache::SettingsCache()
picDownload = settings->value("personal/picturedownload", true).toBool();
doubleClickToPlay = settings->value("interface/doubleclicktoplay", true).toBool();
cardInfoMinimized = settings->value("interface/cardinfominimized", false).toBool();
displayCardNames = settings->value("cards/displaycardnames", true).toBool();
horizontalHand = settings->value("hand/horizontal", true).toBool();
invertVerticalCoordinate = settings->value("table/invert_vertical", false).toBool();
tapAnimation = settings->value("cards/tapanimation", true).toBool();
@ -109,6 +110,13 @@ void SettingsCache::setCardInfoMinimized(bool _cardInfoMinimized)
settings->setValue("interface/cardinfominimized", cardInfoMinimized);
}
void SettingsCache::setDisplayCardNames(int _displayCardNames)
{
displayCardNames = _displayCardNames;
settings->setValue("cards/displaycardnames", displayCardNames);
emit displayCardNamesChanged();
}
void SettingsCache::setHorizontalHand(int _horizontalHand)
{
horizontalHand = _horizontalHand;

View file

@ -17,6 +17,7 @@ signals:
void playerBgPathChanged();
void cardBackPicturePathChanged();
void picDownloadChanged();
void displayCardNamesChanged();
void horizontalHandChanged();
void invertVerticalCoordinateChanged();
private:
@ -28,6 +29,7 @@ private:
bool picDownload;
bool doubleClickToPlay;
bool cardInfoMinimized;
bool displayCardNames;
bool horizontalHand;
bool invertVerticalCoordinate;
bool tapAnimation;
@ -46,6 +48,7 @@ public:
bool getPicDownload() const { return picDownload; }
bool getDoubleClickToPlay() const { return doubleClickToPlay; }
bool getCardInfoMinimized() const { return cardInfoMinimized; }
bool getDisplayCardNames() const { return displayCardNames; }
bool getHorizontalHand() const { return horizontalHand; }
bool getInvertVerticalCoordinate() const { return invertVerticalCoordinate; }
bool getTapAnimation() const { return tapAnimation; }
@ -64,6 +67,7 @@ public slots:
void setPicDownload(int _picDownload);
void setDoubleClickToPlay(int _doubleClickToPlay);
void setCardInfoMinimized(bool _cardInfoMinimized);
void setDisplayCardNames(int _displayCardNames);
void setHorizontalHand(int _horizontalHand);
void setInvertVerticalCoordinate(int _invertVerticalCoordinate);
void setTapAnimation(int _tapAnimation);