Reworked deck editor

This commit is contained in:
Fabio Bas 2015-06-13 20:37:51 +02:00
parent 50b908c7c4
commit 3af5804073
13 changed files with 157 additions and 79 deletions

View file

@ -5,26 +5,76 @@
#include "main.h"
#include "cardinfopicture.h"
#include "cardinfotext.h"
#include "settingscache.h"
#include <QVBoxLayout>
#include <QTabBar>
CardFrame::CardFrame(int width, int height,
const QString &cardName, QWidget *parent)
: QStackedWidget(parent)
: QFrame(parent)
, info(0)
, cardTextOnly(false)
{
setFrameStyle(QFrame::Panel | QFrame::Raised);
setMaximumWidth(width);
setMinimumWidth(width);
setMaximumHeight(height);
setMinimumHeight(height);
pic = new CardInfoPicture(width);
addWidget(pic);
text = new CardInfoText();
addWidget(text);
connect(pic, SIGNAL(hasPictureChanged()), this, SLOT(hasPictureChanged()));
tabBar = new QTabBar(this);
tabBar->setDrawBase(false);
tabBar->insertTab(ImageOnlyView, QString());
tabBar->insertTab(TextOnlyView, QString());
tabBar->insertTab(ImageAndTextView, QString());
connect(tabBar, SIGNAL(currentChanged(int)), this, SLOT(setViewMode(int)));
QVBoxLayout * layout = new QVBoxLayout();
layout->addWidget(tabBar);
layout->addWidget(pic);
layout->addWidget(text);
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(0);
setLayout(layout);
setViewMode(settingsCache->getCardInfoViewMode());
setCard(db->getCard(cardName));
}
void CardFrame::retranslateUi()
{
tabBar->setTabText(ImageOnlyView, tr("Image"));
tabBar->setTabText(TextOnlyView, tr("Description"));
tabBar->setTabText(ImageAndTextView, tr("Both"));
}
void CardFrame::setViewMode(int mode)
{
if(tabBar->currentIndex() != mode)
tabBar->setCurrentIndex(mode);
switch(mode)
{
case ImageOnlyView:
pic->setVisible(true);
text->setVisible(false);
break;
case TextOnlyView:
pic->setVisible(false);
text->setVisible(true);
break;
case ImageAndTextView:
pic->setVisible(true);
text->setVisible(true);
break;
}
settingsCache->setCardInfoViewMode(mode);
}
void CardFrame::setCard(CardInfo *card)
{
if (info)
@ -49,11 +99,3 @@ void CardFrame::clear()
{
setCard(db->getCard());
}
void CardFrame::hasPictureChanged()
{
if (pic->hasPicture() && !cardTextOnly)
setCurrentWidget(pic);
else
setCurrentWidget(text);
}