diff -r b023a8d2866a -r ea65f74e6de4 photosgallery/inc/glxfilterproperties.h --- a/photosgallery/inc/glxfilterproperties.h Thu Jul 15 18:39:01 2010 +0300 +++ b/photosgallery/inc/glxfilterproperties.h Thu Aug 19 09:55:03 2010 +0300 @@ -24,9 +24,8 @@ // INCLUDES #include #include - +#include // for deep copying the path // FORWARD DECLARATIONS -class CMPXCollectionPath; // CONSTANTS @@ -56,6 +55,89 @@ iNoDRM(EFalse) {} + /** + * Destructor + */ + inline ~TGlxFilterProperties () + { + delete iPath; + } + + /** + * overloaded assignment operator + * + * @param aFilterProperties, assigned object + * @return TGlxFilterProperties object after deep copying the path. + */ + inline TGlxFilterProperties& operator=(const TGlxFilterProperties& aFilterProperties) + { + if(this != &aFilterProperties) + { + iSortOrder = aFilterProperties.iSortOrder; + iSortDirection = aFilterProperties.iSortDirection; + iIncludeCameraAlbum = aFilterProperties.iIncludeCameraAlbum; + iMinCount = aFilterProperties.iMinCount; + iContainsItem = aFilterProperties.iContainsItem; + iExcludeAnimation = aFilterProperties.iExcludeAnimation; + iLastCaptureDate = aFilterProperties.iLastCaptureDate; + iMaxCount = aFilterProperties.iMaxCount; + iThumbnailLoadability = aFilterProperties.iThumbnailLoadability; + iItemType = aFilterProperties.iItemType; + iPromoteSystemItems = aFilterProperties.iPromoteSystemItems; + iOrigin = aFilterProperties.iOrigin; + iUri = aFilterProperties.iUri; + iStartDate = aFilterProperties.iStartDate; + iEndDate = aFilterProperties.iEndDate; + iNoDRM = aFilterProperties.iNoDRM; + + // creating a copy of iPath + if(aFilterProperties.iPath) + { + const CMPXCollectionPath* path = aFilterProperties.iPath; + iPath = CMPXCollectionPath::NewL(*path); + } + else + { + iPath = NULL; + } + } + return *this; + } + /** + * Copy constructor + * + * @param aFilterProperties, assigned object + */ + inline TGlxFilterProperties(const TGlxFilterProperties& aFilterProperties) + { + iSortOrder = aFilterProperties.iSortOrder; + iSortDirection = aFilterProperties.iSortDirection; + iIncludeCameraAlbum = aFilterProperties.iIncludeCameraAlbum; + iMinCount = aFilterProperties.iMinCount; + iContainsItem = aFilterProperties.iContainsItem; + iExcludeAnimation = aFilterProperties.iExcludeAnimation; + iLastCaptureDate = aFilterProperties.iLastCaptureDate; + iMaxCount = aFilterProperties.iMaxCount; + iThumbnailLoadability = aFilterProperties.iThumbnailLoadability; + iItemType = aFilterProperties.iItemType; + iPromoteSystemItems = aFilterProperties.iPromoteSystemItems; + iOrigin = aFilterProperties.iOrigin; + iUri = aFilterProperties.iUri; + iStartDate = aFilterProperties.iStartDate; + iEndDate = aFilterProperties.iEndDate; + iNoDRM = aFilterProperties.iNoDRM; + + // creating a copy of iPath + if(aFilterProperties.iPath) + { + const CMPXCollectionPath* path = aFilterProperties.iPath; + iPath = CMPXCollectionPath::NewL(*path); + } + else + { + iPath = NULL; + } + } public: TGlxFilterSortOrder iSortOrder; TGlxFilterSortDirection iSortDirection;