Replace the int of the SubType of SelectionChanges with an enum class.
The meaning of it is nowhere documented and some magic numbers like 0,1,2 are used in several places in the code.
Replace the int of the 'resolve' argument of several functions with a proper enum class.
* This avoids the inconsistencies in client code where often true/false is passed when an int is expected
* This avoids the use of magic numbers like 0, 1, 2 or the undocumented 3
+ replace QDirModel with QFileSystemModel
+ QProcess::start(QString, OpenMode) is deprecated
+ QByteArray::append is deprecated
+ QPixmap* QLabel::pixmap() is deprecated
This patch includes the actual implementation of Link, which is
implemented as an extension named LinkBaseExtension in App namespace,
and a full view provider ViewProviderLink in Gui. The reason of not
using ViewProviderExtension is because it need full control when
display, not just extending existing functionalities.
Please see [here](https://git.io/fjPue) for more details of the
implementation.
This patch also includes a set of link manipulation commands, and a
task panel for overriding geometry element colors.