Check dynamic casts for null.

This commit is contained in:
Jim Evins
2018-01-02 03:03:59 -05:00
parent b2859d47bb
commit 26f10d7faf
+51 -49
View File
@@ -63,38 +63,39 @@ namespace glabels
{ {
foreach ( QListWidgetItem *item, findItems( "*", Qt::MatchWildcard ) ) foreach ( QListWidgetItem *item, findItems( "*", Qt::MatchWildcard ) )
{ {
auto *tItem = dynamic_cast<TemplatePickerItem *>(item); if (auto *tItem = dynamic_cast<TemplatePickerItem *>(item))
{
bool nameMask = tItem->tmplate()->name().contains( searchString, Qt::CaseInsensitive ); bool nameMask = tItem->tmplate()->name().contains( searchString, Qt::CaseInsensitive );
bool sizeMask = bool sizeMask =
(isoMask && tItem->tmplate()->isSizeIso()) || (isoMask && tItem->tmplate()->isSizeIso()) ||
(usMask && tItem->tmplate()->isSizeUs()) || (usMask && tItem->tmplate()->isSizeUs()) ||
(otherMask && tItem->tmplate()->isSizeOther()); (otherMask && tItem->tmplate()->isSizeOther());
bool categoryMask; bool categoryMask;
if ( anyCategory ) if ( anyCategory )
{
categoryMask = true;
}
else
{
categoryMask = false;
foreach ( QString id, categoryIds )
{ {
categoryMask = categoryMask || tItem->tmplate()->hasCategory( id ); categoryMask = true;
}
else
{
categoryMask = false;
foreach ( QString id, categoryIds )
{
categoryMask = categoryMask || tItem->tmplate()->hasCategory( id );
}
} }
}
if ( nameMask && sizeMask && categoryMask ) if ( nameMask && sizeMask && categoryMask )
{ {
item->setHidden( false ); item->setHidden( false );
} }
else else
{ {
item->setHidden( true ); item->setHidden( true );
item->setSelected( false ); item->setSelected( false );
}
} }
} }
} }
@@ -107,26 +108,27 @@ namespace glabels
{ {
foreach ( QListWidgetItem *item, findItems( "*", Qt::MatchWildcard ) ) foreach ( QListWidgetItem *item, findItems( "*", Qt::MatchWildcard ) )
{ {
auto *tItem = dynamic_cast<TemplatePickerItem *>(item); if (auto *tItem = dynamic_cast<TemplatePickerItem *>(item))
bool match = false;
foreach ( QString name, names )
{ {
if ( tItem->tmplate()->name() == name ) bool match = false;
foreach ( QString name, names )
{ {
match = true; if ( tItem->tmplate()->name() == name )
break; {
match = true;
break;
}
} }
}
if ( match ) if ( match )
{ {
item->setHidden( false ); item->setHidden( false );
} }
else else
{ {
item->setHidden( true ); item->setHidden( true );
item->setSelected( false ); item->setSelected( false );
}
} }
} }
} }
@@ -138,15 +140,15 @@ namespace glabels
const model::Template *TemplatePicker::selectedTemplate() const model::Template *TemplatePicker::selectedTemplate()
{ {
QList<QListWidgetItem *> items = selectedItems(); QList<QListWidgetItem *> items = selectedItems();
if ( items.isEmpty() ) if ( !items.isEmpty() )
{ {
return nullptr; if (auto *tItem = dynamic_cast<TemplatePickerItem*>(items.first()))
} {
else return tItem->tmplate();
{ }
auto *tItem = dynamic_cast<TemplatePickerItem*>(items.first());
return tItem->tmplate();
} }
return nullptr;
} }
} // namespace glabels } // namespace glabels