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::Types > categorize () const
ItemHistoryGraphData & operator= (const HistoryGraph &g)
int removeNextUnresolvedVertex (int begin)
QList< ItemInfo > toInfoList (const QList< Vertex > &vertices) const
Public Member Functions inherited from Digikam::Graph< HistoryVertexProperties, HistoryEdgeProperties >
 Graph (const Graph &g)
 Graph (MeaningOfDirection dir=ParentToChild)
Edge addEdge (const Vertex &v1, const Vertex &v2)
Vertex addVertex ()
Vertex addVertex (const HistoryVertexProperties &properties)
QList< Vertex > adjacentVertices (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< Edge > edges () const
QList< Edge > edges (const Vertex &v, AdjacencyFlags flags=AllEdges) const
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< Vertex > leaves () const
 Returns all leaves, i.e.
QList< Vertex > leavesFrom (const Vertex &v) const
QList< Vertex > longestPathTouching (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.
QList< Vertex > longestPathTouching (const Vertex &v, LessThan lessThan) const
MeaningOfDirection meaningOfDirection () const
Graph & operator= (const Graph &other)
int outDegree (const Vertex &v) const
HistoryEdgeProperties & properties (const Edge &e)
const HistoryEdgeProperties & properties (const Edge &e) const
HistoryVertexProperties & properties (const Vertex &v)
const HistoryVertexProperties & properties (const Vertex &v) const
HistoryEdgeProperties properties (const Vertex &v1, const Vertex &v2) const
void remove (const Vertex &v)
QList< Vertex > roots () const
 Returns all roots, i.e.
QList< Vertex > rootsOf (const Vertex &v) const
 Returns all roots of vertex v.
void setProperties (const Edge &e, const HistoryEdgeProperties &props)
void setProperties (const Vertex &v, const HistoryVertexProperties &props)
QMap< Vertex, int > shortestDistancesFrom (const Vertex &v) const
 Returns the shortest distances from Vertex to all vertices in the graph.
QList< Vertex > shortestPath (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< Vertex > topologicalSort () 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< Vertex > vertices () const
QList< Vertex > verticesBreadthFirst (const Vertex &givenRef=Vertex()) const
 Orders all vertices of the graph in a breadth-first manner.
QList< Vertex > verticesDepthFirstSorted (const Vertex &givenRef, LessThan lessThan) const
 Orders all vertices of the graph in a depth-first manner.
QList< Vertex > verticesDominatedBy (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< Vertex > verticesDominatedBy (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.
QList< Vertex > verticesDominatedByDepthFirstSorted (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< HistoryVertexProperties, HistoryEdgeProperties >
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< Edge > edgeDifference (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< Vertex > findZeroDegree (bool inOrOut) const
 Finds vertex ids of all vertices with zero in- our out-degree.
QList< Vertex > findZeroDegreeFrom (const Vertex &v, bool inOrOut) const
QList< Vertex > listPath (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< Vertex > mostRemoteNodes (const VertexIntMap &distances) const
 Get the list of vertices with the largest value in the given distance map.
QList< Vertex > treeFromPredecessors (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< HistoryVertexProperties, HistoryEdgeProperties >
typedef graph_traits::adjacency_iterator adjacency_iter
typedef std::pair< adjacency_iter, adjacency_iter > adjacency_vertex_range_t
enum  AdjacencyFlags
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, Edge > EdgePair
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, HistoryVertexProperties > >, boost::property< edge_properties_t, HistoryEdgeProperties > > GraphContainer
enum  GraphCopyFlags
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
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< VertexIntMap > VertexIntMapAdaptor
typedef QPair< Vertex, Vertex > VertexPair
typedef QMapForAdaptors< Vertex, Vertex > VertexVertexMap
typedef boost::associative_property_map< VertexVertexMap > VertexVertexMapAdaptor
Static Public Member Functions inherited from Digikam::Graph< HistoryVertexProperties, HistoryEdgeProperties >
static bool alwaysFalse (const T &, const T &)
Static Protected Member Functions inherited from Digikam::Graph< HistoryVertexProperties, HistoryEdgeProperties >
static bool isEmptyRange (const range_t &range)
static QList< Edge > toEdgeList (const range_t &range)
static QList< Value > toList (const range_t &range)
 Returns a list of vertex ids of vertices in the given range.
static QList< Vertex > toVertexList (const range_t &range)
Protected Attributes inherited from Digikam::Graph< HistoryVertexProperties, HistoryEdgeProperties >
MeaningOfDirection direction
GraphContainer graph