optionally display card names on cards even if they have a picture
This commit is contained in:
parent
8ccde61492
commit
4a34c52c8c
5 changed files with 46 additions and 10 deletions
|
@ -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*/)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue