29 #include <QModelIndexList>
37 QSortFilterProxyModel(0)
39 qRegisterMetaType<ScenarioItem*>();
40 qRegisterMetaType<ApplicationDatabaseItem*>();
41 qRegisterMetaType<OpenScenarioItem*>();
42 qRegisterMetaType<SettingsItem*>();
55 QModelIndex source_index = mapToSource(proxy_index);
56 return sourceModel()->data(source_index, role);
59 return QVariant::fromValue(
60 reinterpret_cast<ScenarioItem*
>(proxy_index.internalPointer()));
62 return QVariant::fromValue(
65 return QVariant::fromValue(
68 return QVariant::fromValue(
69 reinterpret_cast<SettingsItem*
>(proxy_index.internalPointer()));
78 const QModelIndex& sourceParent)
const
80 QModelIndexList childrenColumn1;
82 childrenColumn1 << sourceModel()->index(sourceRow, 0, sourceParent);
85 for (
int i = 0; i < childrenColumn1.size(); ++i)
87 for (
int j = 0; j < sourceModel()->rowCount(childrenColumn1[i]); ++j)
89 childrenColumn1 << childrenColumn1[i].child(j, 0);
94 for (
int i = 0; i < childrenColumn1.size(); ++i)
96 if (sourceModel()->data(childrenColumn1[i]).toString().contains(filterRegExp()))
103 if (sourceModel()->columnCount() > 1)
105 QModelIndexList childrenColumn2;
107 childrenColumn2 << sourceModel()->index(sourceRow, 1, sourceParent);
110 for (
int i = 0; i < childrenColumn2.size(); ++i)
112 for (
int j = 0; j < sourceModel()->rowCount(childrenColumn2[i]); ++j)
114 childrenColumn2 << childrenColumn2[i].child(j, 1);
118 for (
int i = 0; i < childrenColumn2.size(); ++i)
120 if (sourceModel()->data(childrenColumn2[i]).toString().contains(filterRegExp()))