summaryrefslogtreecommitdiff
path: root/src/gui/widgets/characterviewsmall.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-01-01 19:20:41 +0300
committerAndrei Karas <akaras@inbox.ru>2015-01-01 19:20:41 +0300
commit37be713ea07bbe8ddcea10c77bf1bfa2cd74b989 (patch)
treeaef0df6b5a8f8c8dfb6cc05d9580eb9dbb1c03e2 /src/gui/widgets/characterviewsmall.cpp
parent4332a501d9a8a1d37913e1236dc1e60702f4b573 (diff)
downloadplus-37be713ea07bbe8ddcea10c77bf1bfa2cd74b989.tar.gz
plus-37be713ea07bbe8ddcea10c77bf1bfa2cd74b989.tar.bz2
plus-37be713ea07bbe8ddcea10c77bf1bfa2cd74b989.tar.xz
plus-37be713ea07bbe8ddcea10c77bf1bfa2cd74b989.zip
Fix crash with completly broken themes.
Diffstat (limited to 'src/gui/widgets/characterviewsmall.cpp')
-rw-r--r--src/gui/widgets/characterviewsmall.cpp25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/gui/widgets/characterviewsmall.cpp b/src/gui/widgets/characterviewsmall.cpp
index b68c0171a..7e327c29f 100644
--- a/src/gui/widgets/characterviewsmall.cpp
+++ b/src/gui/widgets/characterviewsmall.cpp
@@ -48,11 +48,21 @@ CharacterViewSmall::CharacterViewSmall(CharSelectDialog *const widget,
add(*it);
}
const int sz = static_cast<signed>(mCharacterEntries->size());
- mSelected = 0;
- mSelectedEntry = (*mCharacterEntries)[mSelected];
- mSelectedEntry->setVisible(true);
- mNumber->setCaption(strprintf("%d / %d", mSelected + 1, sz));
- mNumber->adjustSize();
+ if (sz > 0)
+ {
+ mSelected = 0;
+ mSelectedEntry = (*mCharacterEntries)[mSelected];
+ mSelectedEntry->setVisible(true);
+ mNumber->setCaption(strprintf("%d / %d", mSelected + 1, sz));
+ mNumber->adjustSize();
+ }
+ else
+ {
+ mSelected = -1;
+ mSelectedEntry = nullptr;
+ mNumber->setCaption("0 / 0");
+ mNumber->adjustSize();
+ }
}
add(mPrevious);
add(mNext);
@@ -69,6 +79,8 @@ CharacterViewSmall::~CharacterViewSmall()
void CharacterViewSmall::show(const int i)
{
const int sz = static_cast<signed>(mCharacterEntries->size());
+ if (sz <= 0)
+ return;
if (mSelectedEntry)
mSelectedEntry->setVisible(false);
if (i >= sz)
@@ -85,6 +97,9 @@ void CharacterViewSmall::show(const int i)
void CharacterViewSmall::resize()
{
+ const int sz = static_cast<signed>(mCharacterEntries->size());
+ if (sz <= 0)
+ return;
const CharacterDisplay *const firtChar = (*mCharacterEntries)[0];
const int x = (getWidth() - firtChar->getWidth()) / 2;
const int y = (getHeight() - firtChar->getHeight()) / 2;