Ejemplo n.º 1
0
void HelpWindow::Ids(int pid, Vector<int>& r)
{
	int n = tree.GetChildCount(pid);
	for(int i = 0; i < n; i++) {
		int id = tree.GetChild(pid, i);
		if(!IsNull(tree.GetValue(id))) {
			r.Add(id);
			Ids(id, r);
		}
	}
}
Ejemplo n.º 2
0
DcOptions::Ids DcOptions::sortedDcIds() const {
	auto result = Ids();
	{
		QReadLocker lock(&_mutex);
		result.reserve(_data.size());
		for (auto &item : _data) {
			if (!base::contains(result, item.second.id)) {
				result.push_back(item.second.id);
			}
		}
	}
	std::sort(result.begin(), result.end());
	return result;
}
Ejemplo n.º 3
0
bool HelpWindow::PrevNext(int d, bool allowempty)
{
	Vector<int> r = Ids();
	int id = tree.GetCursor();
	if(id < 0)
		return false;
	int ii = FindIndex(r, id);
	if(ii < 0)
		return false;
	for(;;) {
		ii += d;
		if(ii >= r.GetCount() || ii < 0)
			return false;
		if(!IsNull(tree.Get(r[ii])) || allowempty) {
			tree.SetCursor(r[ii]);
			return true;
		}
	}
}
Ejemplo n.º 4
0
Vector<int> HelpWindow::Ids()
{
	Vector<int> r;
	Ids(0, r);
	return r;
}