Nightly: improved Python interface to TPGSettings
- Improved the PyTPGSettings interface and added it to Cam module.  Still requires further work
- Updated documentation and code in PyTPGBase and ExampleTPG class to use new PyTPGSettings object
Nightly: improved Python interface to TPGSettings (p2)
- Improved the PyTPGSettings interface and added it to Cam module. Still requires further work
- Updated documentation and code in PyTPGBase and ExampleTPG class to use new PyTPGSettings object
Small changes for Windows build
Removed 'boost_python' from the link libraries for the Windows build.  It's all because of the naming of the library file.  With it omitted, the library still gets linked (presumably via a #pragma) but the filename matches the threading and versioning values assigned to the filename.
Changed the _MSC_VER comparison so tha ShFolder.h was NOT included for a VS2008 compilation.
Added all the TPG source files to the TestPlugin/CMakeLists.txt file to make it compile and link on Windows.
Merge branch 'cam-py' into nightly
Added MyPlugins.cpp/h to the CMakeLists.txt file for the Cam project.
Changed the reference to the moc_CamManager.cpp file within CamManager.cpp so that it could be found when CamManager.cpp was included in other projects (such as CamGUI)
Added files to the GUI/CMakeLists.txt file so that it would compile on Windows.
Changed lots of printf() calls to qDebug(), qWarning() etc.

Changed references to PreCompiled.h so that none of them included a path to the header file within the '#include' line.  Instead I've added an extra path to the CMakeLists.txt files so that the correct PreCompiled.h file was chosen based on the project rather than the source file that refers to it.  This allows header files to be included in both the CAM and CAMGUI projects with each one selecting the PreCompiled.h file for its own project.  Without this, we end up with conflicting __declspec(dllimport)/dllexport definitions.

Removed TPGSettings.cpp from the CamGui project as it's defined within the Cam.dll file and is, therefore, multiply defined if it's also included in the CamGui project.
Moved the implementation of some methods from the header file into the CPP file so that it would not be defined twice in the CamGui project (that gets it both from the header file and from the link to the CAM.DLL file)
Moved some more method implementations from the header file to the CPP file so that we don't end up with a duplicate implementation when one module loads both the header file and the other module's library (DLL)
Resolved conflicts.  Only minor changes
Changed references to PreCompiled.h from the 'double quotes' to the angle brackets form of inclusion in an attempt to stop it looking in the 'current' directory before looking in the INCLUDE paths given to the compiler.

Removed the FCAppCam pre-processor from the Windows build of the CamGui project so that it could be used to indicate whether we're compiling the 'Cam' library as opposed to the 'CamGui' or any of the plugins projects.  This allows some extra macros to be implemented in each of the two PreCompiled.h files to specify the correct dllimport/dllexport values based on the project rather than on which file includes which PreCompiled.h file.

Moved lots of method implementations out of the header files into the CPP files so that we don't end up with duplicate implementations when the CAM library is linked with the CamGui and/or Plugin libraries on the Windows build.
Changed the prefix and destination values for the Windows build of the TestPlugin so that the DLL ended up in the directory where the main application would look for it.

Fixed up the dllexport/dllimport declarations for the TestPlugin.
Just some small cleanup hoping to figure out where the crash is coming from
Changed the CppTPGFactory::scanPlugins() method to stop deleting the CppTPGPlugin objects each time because pointers to these objects are still being held by parent objects.  As an alternative, we now check the plugins that we've already seen (by file name) and only load those that have not been loaded before.  This fixes a crashing bug when a newly added TPG object is selected and its properties listed.  i.e. the object used to find the properties had a stale pointer
Added extra words to comment to remind me which object holds the pointers that need cleaning up if we delete a CppTPGPlugin object
Added mechanism to cleanout plugin objects when a CppTPGFactory object is deleted (even though it's a singleton)