data/RelationGraphFamilies.h
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "RelationGraph.h" | ||
| 4 | |||
| 5 | // F103-10/F103-13: families in the relationship graph — a family card lists | ||
| 6 | // its members with the relation type "member" (or a member's card the | ||
| 7 | // family with "member-of"). Used by RelationGraph::ego()/overview() only. | ||
| 8 | namespace RelationGraph::Families { | ||
| 9 | |||
| 10 | bool isMembership(const StoredEdge &e); | ||
| 11 | // F103-21: the first card id of the stand-ins for families known by name only. | ||
| 12 | constexpr qint64 NamedFamilyBase = qint64(1) << 52; | ||
| 13 | 1424 | inline bool isNamedFamily(qint64 cardId) { return cardId >= NamedFamilyBase; } | |
| 14 | // A family by name only ("member-of" with a text target on its members' | ||
| 15 | // cards) becomes a stand-in person (key "family:<name>"), so it is an area | ||
| 16 | // like a family card; the same name, ignoring case, is the same family. | ||
| 17 | // A name that matches a card was already resolved to that card. | ||
| 18 | void addNamedFamilies(Input *input); | ||
| 19 | // family card id → its member card ids. | ||
| 20 | QHash<qint64, QList<qint64>> of(const Input &input); | ||
| 21 | // The areas of `graph`: a family's shown members and, when shown, its own | ||
| 22 | // (hidden, Node::family) node; one shown member is enough (F103-33). | ||
| 23 | void addAreas(const Input &input, const QHash<qint64, QList<qint64>> &families, qint64 centerCardId, Graph *graph); | ||
| 24 | |||
| 25 | } // namespace RelationGraph::Families | ||
| 26 |