Envision
A visual programming IDE for object-oriented languages
|
Public Member Functions | |
Dependencies (const QList< MergeChange * > &changes, const QMultiHash< Model::NodeIdType, MergeChange * > &changesForNode, const QMultiHash< Model::NodeIdType, MergeChange * > &changesForChildren) | |
QList< MergeChange * > | changesDependingOn (MergeChange *independentChange) const |
void | copyDependencies (MergeChange *sourceChange, MergeChange *destinationChange) |
QList< MergeChange * > | dependenciesOf (MergeChange *dependentChange) const |
bool | hasDependencies (MergeChange *change) const |
void | insert (MergeChange *dependentChange, MergeChange *independentChange) |
void | recomputeAll (GenericTree *tree) |
void | remove (MergeChange *dependentChange, MergeChange *independentChange) |
void | removeAll (MergeChange *change) |
bool | removeDependenciesForSafeMoveChanges (const Conflicts &directConflicts, GenericTree *tree) |
Removes the dependencies of some move changes, which are safe to apply, despite depending on other moves. More... | |
bool | removeDependenciesInsideNonConflictingAtomicCycles (const Conflicts &directConflicts) |
Scans all changes to detect all-or-nothing dependency chains and removese the depenencies if all elements are non-conflicting and if they don't depend on external elements. More... | |
Private Member Functions | |
void | addChildrenRemovedDependency (MergeChange *change, GenericTree *tree) |
void | addDependencies (MergeChange *change, GenericTree *tree) |
void | addLabelDependency (MergeChange *change) |
void | addMoveDependency (MergeChange *change, GenericTree *tree) |
void | addParentPresentDependency (MergeChange *change, GenericTree *tree) |
Private Attributes | |
const QList< MergeChange * > & | changes_ |
const QMultiHash< Model::NodeIdType, MergeChange * > & | changesForChildren_ |
const QMultiHash< Model::NodeIdType, MergeChange * > & | changesForNode_ |
QMultiHash< MergeChange *, MergeChange * > | dependencies_ |
QMultiHash< MergeChange *, MergeChange * > | reverseDependencies_ |
FilePersistence::Dependencies::Dependencies | ( | const QList< MergeChange * > & | changes, |
const QMultiHash< Model::NodeIdType, MergeChange * > & | changesForNode, | ||
const QMultiHash< Model::NodeIdType, MergeChange * > & | changesForChildren | ||
) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
void FilePersistence::Dependencies::copyDependencies | ( | MergeChange * | sourceChange, |
MergeChange * | destinationChange | ||
) |
|
inline |
|
inline |
|
inline |
void FilePersistence::Dependencies::recomputeAll | ( | GenericTree * | tree | ) |
|
inline |
void FilePersistence::Dependencies::removeAll | ( | MergeChange * | change | ) |
bool FilePersistence::Dependencies::removeDependenciesForSafeMoveChanges | ( | const Conflicts & | directConflicts, |
GenericTree * | tree | ||
) |
Removes the dependencies of some move changes, which are safe to apply, despite depending on other moves.
For now these are only move changes that both branches perform.
Returns whether any dependencies were removed
bool FilePersistence::Dependencies::removeDependenciesInsideNonConflictingAtomicCycles | ( | const Conflicts & | directConflicts | ) |
Scans all changes to detect all-or-nothing dependency chains and removese the depenencies if all elements are non-conflicting and if they don't depend on external elements.
Returns true if any dependencies were removed.
|
private |
|
private |
|
private |
|
private |
|
private |