Fix a crash (#3011)

This commit is contained in:
Zach H 2018-01-18 11:53:57 -05:00 committed by GitHub
parent 7a150c558d
commit dcc632e0d4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 46 additions and 28 deletions

View file

@ -10,8 +10,7 @@
#include <QSplitter>
#include <QVBoxLayout>
CardFrame::CardFrame(const QString &cardName, QWidget *parent)
: QTabWidget(parent), info(nullptr), cardTextOnly(false)
CardFrame::CardFrame(const QString &cardName, QWidget *parent) : QTabWidget(parent), info(nullptr), cardTextOnly(false)
{
setContentsMargins(3, 3, 3, 3);
pic = new CardInfoPicture();
@ -72,7 +71,7 @@ void CardFrame::setViewMode(int mode)
if(currentIndex() != mode)
setCurrentIndex(mode);
switch(mode)
switch (mode)
{
case ImageOnlyView:
case TextOnlyView:
@ -83,6 +82,8 @@ void CardFrame::setViewMode(int mode)
splitter->addWidget(pic);
splitter->addWidget(text);
break;
default:
break;
}
settingsCache->setCardInfoViewMode(mode);
@ -91,10 +92,16 @@ void CardFrame::setViewMode(int mode)
void CardFrame::setCard(CardInfo *card)
{
if (info)
{
disconnect(info, nullptr, this, nullptr);
}
info = card;
if(info)
if (info)
{
connect(info, SIGNAL(destroyed()), this, SLOT(clear()));
}
text->setCard(info);
pic->setCard(info);
@ -107,7 +114,10 @@ void CardFrame::setCard(const QString &cardName)
void CardFrame::setCard(AbstractCardItem *card)
{
setCard(card->getInfo());
if (card)
{
setCard(card->getInfo());
}
}
void CardFrame::clear()