[GME-commit] GMESRC/GME/GMEActiveBrowser ActiveBrowserPropertyPage.cpp,1.46,1.47 ActiveBrowserPropertyPage.h,1.14,1.15 AggregateContextMenu.cpp,1.24,1.25 AggregateContextMenu.h,1.7,1.8 AggregateTreeCtrl.cpp,1.26,1.27 GMEActiveBrowser.rc,1.14,1.15 resource.h,1.10,1.11

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Mon Mar 13 19:24:26 CST 2006


Update of /project/gme-repository/GMESRC/GME/GMEActiveBrowser
In directory escher:/tmp/cvs-serv30279

Modified Files:
	ActiveBrowserPropertyPage.cpp ActiveBrowserPropertyPage.h 
	AggregateContextMenu.cpp AggregateContextMenu.h 
	AggregateTreeCtrl.cpp GMEActiveBrowser.rc resource.h 
Log Message:
Read-only flag can be applied to objects, from the "Access" menu.


CVS User: Zoltan Molnar, ISIS (zolmol)

Index: AggregateContextMenu.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/GMEActiveBrowser/AggregateContextMenu.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** AggregateContextMenu.cpp	14 Feb 2006 18:50:15 -0000	1.24
--- AggregateContextMenu.cpp	13 Mar 2006 19:24:24 -0000	1.25
***************
*** 113,116 ****
--- 113,118 ----
  			case ID_POPUP_HELP:			OnHelp();break;
  			case ID_POPUP_SHOWINPARENT: OnShowInParent();break;
+ 			case ID_POPUP_READONLY:     OnReadOnly( true);break;
+ 			case ID_POPUP_READWRITE:    OnReadOnly( false);break;
  			
  				
***************
*** 1117,1119 ****
--- 1119,1126 ----
  		pApp->GetCtrl()->FireShowInParentMgaObject( pUnknown);
  	}
+ }
+ 
+ void CAggregateContextMenu::OnReadOnly( bool pProtectMe)
+ {
+ 	m_pParent->accessRights( pProtectMe);
  }

Index: ActiveBrowserPropertyPage.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/GMEActiveBrowser/ActiveBrowserPropertyPage.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -C2 -d -r1.46 -r1.47
*** ActiveBrowserPropertyPage.cpp	14 Feb 2006 18:50:15 -0000	1.46
--- ActiveBrowserPropertyPage.cpp	13 Mar 2006 19:24:24 -0000	1.47
***************
*** 3515,3516 ****
--- 3515,3548 ----
  	return false;
  }
+ 
+ void CAggregatePropertyPage::accessRights( bool pbProtectIt)
+ {
+ 	CGMEActiveBrowserApp* pApp=(CGMEActiveBrowserApp*)AfxGetApp();
+ 	CMgaContext* pMgaContext=&pApp->m_CurrentProject.m_MgaContext;
+ 
+ 	HTREEITEM hItem = m_TreeAggregate.GetFirstSelectedItem();
+ 	if (hItem != NULL) 
+ 	{ 
+ 		
+ 		LPUNKNOWN pUnknown;
+ 		
+ 		if(!m_TreeAggregate.m_MgaMap.LookupObjectUnknown(hItem,pUnknown))return;
+ 					
+ 		CComQIPtr<IMgaObject> ccpObj(pUnknown);
+ 		if( !ccpObj)
+ 			return;
+ 
+ 		MSGTRY {
+ 			
+ 			CGMEActiveBrowserApp* pApp=(CGMEActiveBrowserApp*)AfxGetApp();
+ 			CMgaContext* pMgaContext=&pApp->m_CurrentProject.m_MgaContext;
+ 
+ 			pMgaContext->BeginTransaction(FALSE);
+ 
+ 			COMTHROW(ccpObj->PutReadOnlyAccessWithPropagate( pbProtectIt ? VARIANT_TRUE:VARIANT_FALSE));
+ 			pMgaContext->CommitTransaction();
+ 
+ 		} MSGCATCH("Error while applying new access rights",pMgaContext->AbortTransaction();)	
+ 		Refresh();
+ 	}
+ }

Index: AggregateContextMenu.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/GMEActiveBrowser/AggregateContextMenu.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** AggregateContextMenu.h	14 Feb 2006 18:50:15 -0000	1.7
--- AggregateContextMenu.h	13 Mar 2006 19:24:24 -0000	1.8
***************
*** 36,39 ****
--- 36,40 ----
  	void SetFolderChildren(LPUNKNOWN pUnknown);
  	void CreateForSingleItem();
+ 	void OnReadOnly( bool ro);
  	void OnHelp();
  	void OnShowInParent();

Index: ActiveBrowserPropertyPage.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/GMEActiveBrowser/ActiveBrowserPropertyPage.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** ActiveBrowserPropertyPage.h	31 Aug 2005 19:24:11 -0000	1.14
--- ActiveBrowserPropertyPage.h	13 Mar 2006 19:24:24 -0000	1.15
***************
*** 35,38 ****
--- 35,39 ----
  	void DoCopySmart( int k = 0);
  	bool askUserAndDetach( CComPtr<IMgaObject> obj); // called when archetype is deleted
+ 	void accessRights( bool pbProtectIt);
  
  	

Index: resource.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/GMEActiveBrowser/resource.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** resource.h	14 Feb 2006 18:50:15 -0000	1.10
--- resource.h	13 Mar 2006 19:24:24 -0000	1.11
***************
*** 75,79 ****
  #define ID_EDIT_PASTESPECIAL_SMART_MERGE 32801
  #define ID_EDIT_PASTESPECIAL_SMART_ADDITIVE 32802
! #define ID_POPUP_SHOWINPARENT               32803
  
  // Next default values for new objects
--- 75,81 ----
  #define ID_EDIT_PASTESPECIAL_SMART_MERGE 32801
  #define ID_EDIT_PASTESPECIAL_SMART_ADDITIVE 32802
! #define ID_POPUP_SHOWINPARENT           32803
! #define ID_POPUP_READONLY               32805
! #define ID_POPUP_READWRITE              32807
  
  // Next default values for new objects
***************
*** 82,86 ****
  #ifndef APSTUDIO_READONLY_SYMBOLS
  #define _APS_NEXT_RESOURCE_VALUE        220
! #define _APS_NEXT_COMMAND_VALUE         32804
  #define _APS_NEXT_CONTROL_VALUE         218
  #define _APS_NEXT_SYMED_VALUE           104
--- 84,88 ----
  #ifndef APSTUDIO_READONLY_SYMBOLS
  #define _APS_NEXT_RESOURCE_VALUE        220
! #define _APS_NEXT_COMMAND_VALUE         32808
  #define _APS_NEXT_CONTROL_VALUE         218
  #define _APS_NEXT_SYMED_VALUE           104

Index: AggregateTreeCtrl.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/GMEActiveBrowser/AggregateTreeCtrl.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** AggregateTreeCtrl.cpp	31 Aug 2005 19:24:11 -0000	1.26
--- AggregateTreeCtrl.cpp	13 Mar 2006 19:24:24 -0000	1.27
***************
*** 1171,1177 ****
  	// Checking access rights
  	VARIANT_BOOL vtbIsWritable=VARIANT_FALSE;
  	COMTHROW( ccpObject->get_IsWritable(&vtbIsWritable));
  
! 	if (vtbIsWritable != VARIANT_TRUE)
  	{
  		// Read only object
--- 1171,1179 ----
  	// Checking access rights
  	VARIANT_BOOL vtbIsWritable=VARIANT_FALSE;
+ 	VARIANT_BOOL vtbIsReadOnly=VARIANT_FALSE;
  	COMTHROW( ccpObject->get_IsWritable(&vtbIsWritable));
+ 	COMTHROW( ccpObject->HasReadOnlyAccess( &vtbIsReadOnly));
  
! 	if (vtbIsWritable != VARIANT_TRUE || vtbIsReadOnly == VARIANT_TRUE)
  	{
  		// Read only object
***************
*** 1203,1242 ****
  
  	/////////////// If it is an FCO cast it //////////////
! 	// If not an FCO
! 	if(ObjectProxy.m_TypeInfo==OBJTYPE_FOLDER)return;
  
! 	CComQIPtr<IMgaFCO> ccpMgaFCO(ObjectProxy.m_pMgaObject);
! 	if(!ccpMgaFCO)return; // Not an FCO
  
! 	
! 	pMgaContext->BeginTransaction();
! 	// Is it instance?
! 	VARIANT_BOOL vtbIsInstance=VARIANT_FALSE;
! 	COMTHROW(ccpMgaFCO->get_IsInstance(&vtbIsInstance));
  
! 	if(vtbIsInstance!=VARIANT_TRUE)
! 	{
! 		CComPtr<IMgaFCO> ccpBaseType;
! 		COMTHROW(ccpMgaFCO->get_BaseType(&ccpBaseType));
  
- 		if(!ccpBaseType)
- 		{
- 			// Not derived
  		}
  		else
  		{
! 			// Derived
! 			cState|=0x0008;
! 		}
! 
! 	}
! 	else
! 	{
! 		// Instance
! 		cState|=0x0004;
  
! 	}
  
! 	pMgaContext->CommitTransaction();	
  	
  
--- 1205,1245 ----
  
  	/////////////// If it is an FCO cast it //////////////
! 	// If not an Folder deal with Subtype/instance flags
! 	if(ObjectProxy.m_TypeInfo!=OBJTYPE_FOLDER) 
! 	{
! 		CComQIPtr<IMgaFCO> ccpMgaFCO(ObjectProxy.m_pMgaObject);
! 		if(!ccpMgaFCO)return; // Not an FCO
  
! 		
! 		pMgaContext->BeginTransaction();
! 		// Is it instance?
! 		VARIANT_BOOL vtbIsInstance=VARIANT_FALSE;
! 		COMTHROW(ccpMgaFCO->get_IsInstance(&vtbIsInstance));
  
! 		if(vtbIsInstance!=VARIANT_TRUE)
! 		{
! 			CComPtr<IMgaFCO> ccpBaseType;
! 			COMTHROW(ccpMgaFCO->get_BaseType(&ccpBaseType));
  
! 			if(!ccpBaseType)
! 			{
! 				// Not derived
! 			}
! 			else
! 			{
! 				// Derived
! 				cState|=0x0008;
! 			}
  
  		}
  		else
  		{
! 			// Instance
! 			cState|=0x0004;
  
! 		}
  
! 		pMgaContext->CommitTransaction();
! 	} // if not folder
  	
  

Index: GMEActiveBrowser.rc
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/GMEActiveBrowser/GMEActiveBrowser.rc,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** GMEActiveBrowser.rc	14 Feb 2006 18:50:15 -0000	1.14
--- GMEActiveBrowser.rc	13 Mar 2006 19:24:24 -0000	1.15
***************
*** 345,349 ****
          MENUITEM "&Preferences",                ID_POPUP_PREFERENCES
          MENUITEM "&Registry...",                ID_POPUP_REGISTRY
-         MENUITEM "Show in Parent",              ID_POPUP_SHOWINPARENT
          MENUITEM "Attach Library...",           ID_POPUP_ATTACH_LIBRARY
          MENUITEM "Refresh Library",             ID_POPUP_REFRESH_LIBRARY
--- 345,348 ----
***************
*** 386,389 ****
--- 385,394 ----
          END
          MENUITEM "&Interpret",                  ID_POPUP_INTERPRET
+         POPUP "Access"
+         BEGIN
+             MENUITEM "Read Only",                   ID_POPUP_READONLY
+             MENUITEM "Read Write",                  ID_POPUP_READWRITE
+         END
+         MENUITEM "View in Parent",              ID_POPUP_SHOWINPARENT
          MENUITEM SEPARATOR
          MENUITEM "&Help",                       ID_POPUP_HELP



More information about the GME-commit mailing list