RPL Global User-defined Functions -- 4-30-2009 (b) http://cadswes2.colorado.edu/~philw/2009/GlobalRplFunctions/ Two changes to the RplApplication::Type properties of RplObjs, RplExpressions and ValueConstraints. These are related to the new dynamic application type override mechanism needed for evaluation of Global RPL Functions. Global Functions and related entities have the "GLOBAL" RPL application type, but during evaluation, the caller's RPL application type needs to be used. (1) The "static" RplApplication::Type property is now characterized as "local" rather than "owner". (Using "static" was awkward because the _dynamic_ override property was implemented with _static_ variables and methods). (2) The getApplicationType() methods (in three classes) now return the dynamic override value ONLY IF the local application type is "GLOBAL". It was expected that the dynamic substitution would be active only on such entities (global) -- but it's safer to explicitly restrict the the mechanism to global RPL entities. ------------------------------- Rpl/RplObj.cpp Rpl/RplObj.hpp Rpl/ValueConstraint.cpp Rpl/ValueConstraint.hpp RplExpression/RplExpression.cpp RplExpression/RplExpression.hpp ------------------------------- OLD: RplApplication::Type _ownerAppType; NEW: RplApplication::Type _localAppType; OLD: inline RplApplication::Type getOwnerAppType() const; NEW: inline RplApplication::Type getLocalAppType() const; Changes to calls to this method in files: QtRpl/RplBaseDlg.cpp QtRpl/RplBlockDlg.cpp QtRpl/RplDlgMgr.cpp QtRpl/RplFrame.cpp QtRpl/RplFunctionDlg.cpp QtRpl/RplGroupDlg.cpp QtRpl/RplListView.cpp QtRpl/RplSetDlg.cpp Q3GUI/LoadSaveMgr.cpp Changes to these three public methods. These now consider the dynamic application type substitution only if the local application type is "GLOBAL": inline RplApplication::Type RplObj::getApplicationType() const inline RplApplication::Type RplExpression::getApplicationType() const inline RplApplication::Type ValueConstraint::getApplicationType() const ---