~marcustomlinson/unity-scopes-api/fix-clang-warnings

« back to all changes in this revision

Viewing changes to src/scopes/internal/OptionSelectorFilterImpl.cpp

  • Committer: Tarmac
  • Author(s): Pawel Stolowski
  • Date: 2015-11-16 11:01:57 UTC
  • mfrom: (639.2.3 filters-changes)
  • Revision ID: tarmac-20151116110157-sdb24wznwxxlg8cp
Only allow Primary flag to be set for single-selection OptionSelector (throw for others).

Approved by PS Jenkins bot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
 
47
47
OptionSelectorFilter::SPtr OptionSelectorFilterImpl::create(VariantMap const& var)
48
48
{
49
 
    return std::shared_ptr<OptionSelectorFilter>(new OptionSelectorFilter(new OptionSelectorFilterImpl(var)));
 
49
    auto filter = std::shared_ptr<OptionSelectorFilter>(new OptionSelectorFilter(new OptionSelectorFilterImpl(var)));
 
50
    filter->fwd()->validate_display_hints();
 
51
    return filter;
50
52
}
51
53
 
52
54
OptionSelectorFilterImpl::OptionSelectorFilterImpl(VariantMap const& var)
137
139
    return options_.size();
138
140
}
139
141
 
 
142
void OptionSelectorFilterImpl::validate_display_hints() const
 
143
{
 
144
    if ((display_hints() & FilterBase::DisplayHints::Primary) && multi_select_)
 
145
    {
 
146
        throw unity::InvalidArgumentException("OptionSelectorFilter::set_display_hints(): primary navigation flag cannot be enabled with multi-selection");
 
147
    }
 
148
}
 
149
 
140
150
std::list<FilterOption::SCPtr> OptionSelectorFilterImpl::options() const
141
151
{
142
152
    return options_;