From 1d271b45a5c4ae899696cb9d380a45a233d84b57 Mon Sep 17 00:00:00 2001 From: Phil Hoffmann Date: Wed, 8 Nov 2023 21:33:07 +0100 Subject: [PATCH] Fixed a crash when selecting a character with no images --- src/tools/characters/character.cpp | 6 +++++- src/tools/characters/charactertool.cpp | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/tools/characters/character.cpp b/src/tools/characters/character.cpp index 5186c4fb..f22f8c57 100644 --- a/src/tools/characters/character.cpp +++ b/src/tools/characters/character.cpp @@ -17,7 +17,11 @@ Character::Character(const QString &name, QObject *parent) : QObject(parent), a_ Character::Type Character::type() const { - if (m_files.isEmpty()) return Type::Unknown; + if (m_files.isEmpty()) + { + // characters of type image might not have been loaded yet + return m_wasLoaded ? Type::Unknown : Type::Image; + } if (m_files.first()->name().endsWith("pdf"_L1)) return Type::Pdf; diff --git a/src/tools/characters/charactertool.cpp b/src/tools/characters/charactertool.cpp index 273f9f4f..713eae7d 100644 --- a/src/tools/characters/charactertool.cpp +++ b/src/tools/characters/charactertool.cpp @@ -86,8 +86,15 @@ void CharacterTool::setCurrentCharacter(qsizetype index) { m_currentViewer = &m_imageViewer; } + else + { + m_currentViewer = nullptr; + } - m_currentViewer->setCharacter(m_currentCharacter); + if (m_currentViewer) + { + m_currentViewer->setCharacter(m_currentCharacter); + } } emit currentCharacterChanged();