2
* Copyright (C) 2013 Canonical, Ltd.
5
* Pawel Stolowski <pawel.stolowski@canonical.com>
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; version 3.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
21
#include "unityoptionsmodel.h"
24
#include "filteroption.h"
26
UnityOptionsModel::UnityOptionsModel(QObject *parent,
27
const std::vector<unity::dash::FilterOption::Ptr> options,
28
sigc::signal<void, unity::dash::FilterOption::Ptr> optionAdded,
29
sigc::signal<void, unity::dash::FilterOption::Ptr> optionRemoved,
31
GenericOptionsModel(showAllOption, parent)
33
setOptions(options, optionAdded, optionRemoved);
36
void UnityOptionsModel::setOptions(const std::vector<unity::dash::FilterOption::Ptr> options,
37
sigc::signal<void, unity::dash::FilterOption::Ptr> optionAdded,
38
sigc::signal<void, unity::dash::FilterOption::Ptr> optionRemoved)
40
for (unsigned int i=0; i<options.size(); i++)
42
addOption(new FilterOption(options[i], this));
44
optionAdded.connect(sigc::mem_fun(this, &UnityOptionsModel::onOptionAdded));
45
optionRemoved.connect(sigc::mem_fun(this, &UnityOptionsModel::onOptionRemoved));
48
void UnityOptionsModel::onOptionAdded(unity::dash::FilterOption::Ptr option)
50
int index = m_options.count();
53
beginInsertRows(QModelIndex(), index, index);
54
addOption(new FilterOption(option, this));
59
void UnityOptionsModel::onOptionRemoved(unity::dash::FilterOption::Ptr option)
61
auto index = indexOf(QString::fromStdString(option->id));
64
beginRemoveRows(QModelIndex(), index, index);