digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
Loading...
Searching...
No Matches
Digikam::ItemHistoryGraphData Class Reference
+ Inheritance diagram for Digikam::ItemHistoryGraphData:

Public Member Functions

 ItemHistoryGraphData (const HistoryGraph &g)
 
void addHistory (const DImageHistory &givenHistory, qlonglong extraCurrent=0)
 
Vertex addVertex (const HistoryImageId &id)
 
Vertex addVertex (const ItemInfo &info)
 
Vertex addVertex (const QList< HistoryImageId > &imageIds)
 
Vertex addVertex (qlonglong id)
 
Vertex addVertexScanned (qlonglong id)
 
QHash< Vertex, HistoryImageId::Typescategorize () const
 
ItemHistoryGraphDataoperator= (const HistoryGraph &g)
 
int removeNextUnresolvedVertex (int begin)
 
QList< ItemInfotoInfoList (const QList< Vertex > &vertices) const
 
- Public Member Functions inherited from Digikam::Graph< VertexProperties, EdgeProperties >
 Graph (const Graph &g)
 
 Graph (MeaningOfDirection dir=ParentToChild)
 
Edge addEdge (const Vertex &v1, const Vertex &v2)
 
Vertex addVertex ()
 
Vertex addVertex (const VertexProperties &properties)
 
QList< VertexadjacentVertices (const Vertex &v, AdjacencyFlags flags=AllEdges) const
 
void clear ()
 
Edge edge (const Vertex &v1, const Vertex &v2) const
 
int edgeCount () const
 
QList< VertexPair > edgePairs () const
 
QList< Edgeedges () const
 
QList< Edgeedges (const Vertex &v, AdjacencyFlags flags=AllEdges) const
 
template<class T >
Vertex findVertexByProperties (const T &value) const
 
const GraphContainer & getGraph () const
 Accessing vertices and edges.
 
bool hasEdge (const Vertex &v1, const Vertex &v2) const
 
bool hasEdges () const
 
bool hasEdges (const Vertex &v, AdjacencyFlags flags=AllEdges) const
 
int inDegree (const Vertex &v) const
 
bool isConnected (const Vertex &v1, const Vertex &v2) const
 
bool isEmpty () const
 
bool isLeaf (const Vertex &v) const
 
bool isRoot (const Vertex &v) const
 
QList< Vertexleaves () const
 Returns all leaves, i.e.
 
QList< VertexleavesFrom (const Vertex &v) const
 
QList< VertexlongestPathTouching (const Vertex &v) const
 Returns the longest path through the graph, starting from a vertex in roots(), ending on a vertex in leaves(), and passing vertex v.
 
template<typename LessThan >
QList< VertexlongestPathTouching (const Vertex &v, LessThan lessThan) const
 
MeaningOfDirection meaningOfDirection () const
 
Graphoperator= (const Graph &other)
 
int outDegree (const Vertex &v) const
 
EdgeProperties & properties (const Edge &e)
 
const EdgeProperties & properties (const Edge &e) const
 
VertexProperties & properties (const Vertex &v)
 
const VertexProperties & properties (const Vertex &v) const
 
EdgeProperties properties (const Vertex &v1, const Vertex &v2) const
 
void remove (const Vertex &v)
 
QList< Vertexroots () const
 Returns all roots, i.e.
 
QList< VertexrootsOf (const Vertex &v) const
 Returns all roots of vertex v.
 
void setProperties (const Edge &e, const EdgeProperties &props)
 
void setProperties (const Vertex &v, const VertexProperties &props)
 
QMap< Vertex, int > shortestDistancesFrom (const Vertex &v) const
 Returns the shortest distances from Vertex to all vertices in the graph.
 
QList< VertexshortestPath (const Vertex &v1, const Vertex &v2) const
 Returns the shortestPath between id1 and id2.
 
Vertex source (const Edge &e) const
 
Vertex target (const Edge &e) const
 
QList< VertextopologicalSort () const
 Returns the vertex ids of this graph, in topological order.
 
Graph transitiveClosure (GraphCopyFlags flags=CopyAllProperties) const
 Returns a copy of this graph with all edges added to form the transitive closure.
 
Graph transitiveReduction (QList< Edge > *removedEdges=0, GraphCopyFlags flags=CopyAllProperties) const
 Returns a copy of this graph, with edges removed so that the transitive reduction is formed.
 
int vertexCount () const
 
QList< Vertexvertices () const
 
QList< VertexverticesBreadthFirst (const Vertex &givenRef=Vertex()) const
 Orders all vertices of the graph in a breadth-first manner.
 
template<typename LessThan >
QList< VertexverticesDepthFirstSorted (const Vertex &givenRef, LessThan lessThan) const
 Orders all vertices of the graph in a depth-first manner.
 
QList< VertexverticesDominatedBy (const Vertex &v, const Vertex &root, const QList< Vertex > &presortedVertices) const
 For a vertex v reachable from a vertex root returns all vertices dominated by v starting from root.
 
QList< VertexverticesDominatedBy (const Vertex &v, const Vertex &root, ReturnOrder order=BreadthFirstOrder) const
 For a vertex v reachable from a vertex root, returns, in depth-first or breadth-first order, all vertices dominated by v starting from root.
 
template<typename LessThan >
QList< VertexverticesDominatedByDepthFirstSorted (const Vertex &v, const Vertex &root, LessThan lessThan) const
 For a vertex v reachable from a vertex root all vertices dominated by v starting from root.
 

Protected Member Functions

void applyProperties (Vertex &v, const QList< ItemInfo > &infos, const QList< HistoryImageId > &ids)
 
- Protected Member Functions inherited from Digikam::Graph< VertexProperties, EdgeProperties >
void copyProperties (Graph &other, GraphCopyFlags flags, const std::vector< vertex_t > &copiedVertices) const
 According to the given flags and based on the map, copies vertex and edge properties from this to the other graph.
 
QList< EdgeedgeDifference (const Graph &other, const std::vector< vertex_t > &copiedVertices) const
 Returns a list of edges of this graph that have been removed in other.
 
QList< VertexfindZeroDegree (bool inOrOut) const
 Finds vertex ids of all vertices with zero in- our out-degree.
 
QList< VertexfindZeroDegreeFrom (const Vertex &v, bool inOrOut) const
 
QList< VertexlistPath (const Vertex &root, const Vertex &target, const VertexVertexMap &predecessors, MeaningOfDirection dir=ParentToChild) const
 Get a list of vertex ids for the path from root to target, using the given predecessors.
 
QList< VertexmostRemoteNodes (const VertexIntMap &distances) const
 Get the list of vertices with the largest value in the given distance map.
 
QList< VertextreeFromPredecessors (const Vertex &v, const VertexVertexMap &predecessors) const
 
void treeFromPredecessorsRecursive (const Vertex &v, QList< Vertex > &vertices, const VertexVertexMap &predecessors) const
 

Additional Inherited Members

- Public Types inherited from Digikam::Graph< VertexProperties, EdgeProperties >
typedef graph_traits::adjacency_iterator adjacency_iter
 
typedef std::pair< adjacency_iter, adjacency_iter > adjacency_vertex_range_t
 
enum  AdjacencyFlags {
  OutboundEdges = 1 << 0 , InboundEdges = 1 << 1 , EdgesToLeaf = 1 << 2 , EdgesToRoot = 1 << 3 ,
  AllEdges = InboundEdges | OutboundEdges
}
 
typedef boost::property_map< GraphContainer, edge_properties_t >::const_type const_edge_property_map_t
 
typedef boost::property_map< GraphContainer, boost::vertex_index_t >::const_type const_vertex_index_map_t
 
typedef boost::property_map< GraphContainer, vertex_properties_t >::const_type const_vertex_property_map_t
 
typedef graph_traits::degree_size_type degree_t
 
typedef graph_traits::edge_iterator edge_iter
 
typedef boost::property_map< GraphContainer, edge_properties_t >::type edge_property_map_t
 
typedef std::pair< edge_iter, edge_iter > edge_range_t
 
typedef graph_traits::edge_descriptor edge_t
 
typedef QPair< Edge, EdgeEdgePair
 
typedef boost::graph_traits< GraphContainer > graph_traits
 a bunch of graph-specific typedefs that make the long boost types manageable.
 
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, boost::property< boost::vertex_index_t, int, boost::property< vertex_properties_t, VertexProperties > >, boost::property< edge_properties_t, EdgeProperties > > GraphContainer
 
enum  GraphCopyFlags { CopyVertexProperties = 1 << 0 , CopyEdgeProperties = 1 << 1 , CopyAllProperties = CopyVertexProperties | CopyEdgeProperties }
 
typedef graph_traits::in_edge_iterator in_edge_iter
 
typedef boost::inv_adjacency_iterator_generator< GraphContainer, vertex_t, in_edge_iter >::type inv_adjacency_iter
 
typedef std::pair< inv_adjacency_iter, inv_adjacency_iter > inv_adjacency_vertex_range_t
 
typedef graph_traits::out_edge_iterator out_edge_iter
 
typedef std::pair< out_edge_iter, out_edge_iter > out_edge_range_t
 
enum  ReturnOrder { BreadthFirstOrder , DepthFirstOrder }
 
typedef boost::property_map< GraphContainer, boost::vertex_index_t >::type vertex_index_map_t
 
typedef graph_traits::vertex_iterator vertex_iter
 
typedef boost::property_map< GraphContainer, vertex_properties_t >::type vertex_property_map_t
 
typedef std::pair< vertex_iter, vertex_iter > vertex_range_t
 
typedef graph_traits::vertex_descriptor vertex_t
 
typedef QMapForAdaptors< Vertex, int > VertexIntMap
 
typedef boost::associative_property_map< VertexIntMapVertexIntMapAdaptor
 
typedef QPair< Vertex, VertexVertexPair
 
typedef QMapForAdaptors< Vertex, VertexVertexVertexMap
 
typedef boost::associative_property_map< VertexVertexMapVertexVertexMapAdaptor
 
- Static Public Member Functions inherited from Digikam::Graph< VertexProperties, EdgeProperties >
template<typename T >
static bool alwaysFalse (const T &, const T &)
 
- Static Protected Member Functions inherited from Digikam::Graph< VertexProperties, EdgeProperties >
template<typename range_t >
static bool isEmptyRange (const range_t &range)
 
template<typename range_t >
static QList< EdgetoEdgeList (const range_t &range)
 
template<typename Value , typename range_t >
static QList< Value > toList (const range_t &range)
 Returns a list of vertex ids of vertices in the given range.
 
template<typename range_t >
static QList< VertextoVertexList (const range_t &range)
 
- Protected Attributes inherited from Digikam::Graph< VertexProperties, EdgeProperties >
MeaningOfDirection direction = ParentToChild
 
GraphContainer graph