LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
util.h
Go to the documentation of this file.
1 /**********************************************************************
2  * LeechCraft - modular cross-platform feature rich internet client.
3  * Copyright (C) 2006-2014 Georg Rudoy
4  *
5  * Distributed under the Boost Software License, Version 1.0.
6  * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7  **********************************************************************/
8 
9 #pragma once
10 
11 #include <QModelIndex>
12 
13 namespace LC::Util
14 {
15  template<typename F>
16  void EnumerateChildren (const QModelIndex& idx, bool includingRoot, F&& f)
17  {
18  if (includingRoot)
19  f (idx);
20 
21  auto model = idx.model ();
22  for (int i = 0; i < model->rowCount (idx); ++i)
23  EnumerateChildren (model->index (i, 0, idx), true, f);
24  }
25 
26 }
LC::Util::EnumerateChildren
void EnumerateChildren(const QModelIndex &idx, bool includingRoot, F &&f)
Definition: util.h:22
LC::Util
Definition: icoreproxy.h:33
LC::Util::oral::sph::f
constexpr detail::ExprTree< detail::ExprType::LeafStaticPlaceholder, detail::MemberPtrs< Ptr > > f
Definition: oral.h:952