[commit] r2414 - in trunk/GME: GMEActiveBrowser Mga
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Tue Jan 14 16:29:51 CST 2014
Author: ksmyth
Date: Tue Jan 14 16:29:51 2014
New Revision: 2414
Log:
TreeBrowser: better error messages for failed copy/paste or drag/drop (META-2548)
Modified:
trunk/GME/GMEActiveBrowser/ActiveBrowserPropertyPage.cpp
trunk/GME/GMEActiveBrowser/AggregateTreeCtrl.cpp
trunk/GME/GMEActiveBrowser/StdAfx.cpp
trunk/GME/Mga/MgaCheck.cpp
Modified: trunk/GME/GMEActiveBrowser/ActiveBrowserPropertyPage.cpp
==============================================================================
--- trunk/GME/GMEActiveBrowser/ActiveBrowserPropertyPage.cpp Fri Jan 10 16:21:02 2014 (r2413)
+++ trunk/GME/GMEActiveBrowser/ActiveBrowserPropertyPage.cpp Tue Jan 14 16:29:51 2014 (r2414)
@@ -2620,7 +2620,7 @@
if( m_TreeAggregate.DoDrop( DRAGOP_COPY, &OleDataObject, CPoint( 0, 0))) {
// what about set focus back
m_TreeAggregate.SetFocus();
- } else msg = _T("Cannot paste data from the clipboard. Please select valid target item.");
+ }
} else msg = _T("Cannot recover data from the clipboard.");
if( !msg.IsEmpty()) MessageBox( msg, _T("Paste Error"), MB_ICONERROR);
Modified: trunk/GME/GMEActiveBrowser/AggregateTreeCtrl.cpp
==============================================================================
--- trunk/GME/GMEActiveBrowser/AggregateTreeCtrl.cpp Fri Jan 10 16:21:02 2014 (r2413)
+++ trunk/GME/GMEActiveBrowser/AggregateTreeCtrl.cpp Tue Jan 14 16:29:51 2014 (r2414)
@@ -826,10 +826,11 @@
// first move the selected folders. The order matters
// since the NEWCHILD event must be the last one.
- if( ccpDroppedFolders) COMTHROW( ccpTargetFolder->MoveFolders( ccpDroppedFolders, &ccpNewFolders));
+ if (ccpDroppedFolders)
+ ccpTargetFolder->__MoveFolders(ccpDroppedFolders, &ccpNewFolders);
// then move the selected fcos
- COMTHROW( ccpTargetFolder->MoveFCOs( ccpDroppedFCOs, &ccpNewFCOs));
+ ccpTargetFolder->__MoveFCOs(ccpDroppedFCOs, &ccpNewFCOs);
// this ensures that the new parent is notified in the right time and place
// a NEWCHILD event is sent to the target folder
@@ -840,10 +841,11 @@
case DRAGOP_COPY:
{
CComPtr<IMgaFolders> ccpNewFolders;
- if( ccpDroppedFolders) COMTHROW(ccpTargetFolder->CopyFolders(ccpDroppedFolders,&ccpNewFolders));
+ if (ccpDroppedFolders)
+ ccpTargetFolder->__CopyFolders(ccpDroppedFolders,&ccpNewFolders);
CComPtr<IMgaFCOs> ccpNewFCOs;
- COMTHROW(ccpTargetFolder->CopyFCOs(ccpDroppedFCOs,&ccpNewFCOs));
+ ccpTargetFolder->__CopyFCOs(ccpDroppedFCOs,&ccpNewFCOs);
MGACOLL_ITERATE(IMgaFCO, ccpNewFCOs) { // for smart copy related entries
MakeSureGUIDIsUniqueForSmartCopy( CComPtr<IMgaFCO>( MGACOLL_ITER) );
@@ -983,9 +985,8 @@
COMTHROW(ccpFCO->get_MetaRole(&ccpMetaRole));
CComPtr<IMgaMetaFCO> ccpKind;
COMTHROW(ccpFCO->get_Meta(&ccpKind));
- CComPtr<IMgaMetaRole> ccpNewRole;
-
- COMTHROW(ccpMgaResolver->get_RoleByMeta(ccpTargetModel,ccpKind,OBJTYPE_NULL,ccpMetaRole,NULL,&ccpNewRole));
+
+ IMgaMetaRolePtr ccpNewRole = ccpMgaResolver->RoleByMeta[ccpTargetModel,ccpKind,OBJTYPE_NULL,ccpMetaRole,NULL];
COMTHROW(ccpMetaRoles->Append(ccpNewRole));
}
MGACOLL_ITERATE_END;
@@ -1014,9 +1015,9 @@
COMTHROW(ccpFCO->get_MetaRole(&ccpMetaRole));
CComPtr<IMgaMetaFCO> ccpKind;
COMTHROW(ccpFCO->get_Meta(&ccpKind));
- CComPtr<IMgaMetaRole> ccpNewRole;
+ IMgaMetaRolePtr ccpNewRole;
- COMTHROW(ccpMgaResolver->get_RoleByMeta(ccpTargetModel,ccpKind,OBJTYPE_NULL,ccpMetaRole,NULL,&ccpNewRole));
+ ccpNewRole = ccpMgaResolver->RoleByMeta[ccpTargetModel,ccpKind,OBJTYPE_NULL,ccpMetaRole,NULL];
COMTHROW(ccpMetaRoles->Append(ccpNewRole));
}
MGACOLL_ITERATE_END;
Modified: trunk/GME/GMEActiveBrowser/StdAfx.cpp
==============================================================================
--- trunk/GME/GMEActiveBrowser/StdAfx.cpp Fri Jan 10 16:21:02 2014 (r2413)
+++ trunk/GME/GMEActiveBrowser/StdAfx.cpp Tue Jan 14 16:29:51 2014 (r2414)
@@ -6,3 +6,4 @@
#import "MetaLib.tlb" implementation_only no_namespace raw_method_prefix("") high_method_prefix("__") no_registry
#import "MgaLib.tlb" implementation_only no_namespace raw_method_prefix("") high_method_prefix("__") no_registry
+#import "MgaUtilLib.tlb" implementation_only no_namespace raw_method_prefix("") high_method_prefix("__") no_registry
Modified: trunk/GME/Mga/MgaCheck.cpp
==============================================================================
--- trunk/GME/Mga/MgaCheck.cpp Fri Jan 10 16:21:02 2014 (r2413)
+++ trunk/GME/Mga/MgaCheck.cpp Tue Jan 14 16:29:51 2014 (r2414)
@@ -28,9 +28,28 @@
//#pragma bookmark todo: put back stuff that needs testing
}
for(i = list.begin(); i != list.end(); ++i) {
- if(((*i).first).IsDeleted()) continue;
- if((*i).second & CHK_ILLEGAL) { COMTHROW(E_MGA_OP_REFUSED); }
- else if((*i).second & CHK_SELF) { COMTHROW(ObjForCore((*i).first)->Check()); }
+ if (((*i).first).IsDeleted())
+ continue;
+ if ((*i).second & CHK_ILLEGAL)
+ {
+ COMTHROW(E_MGA_OP_REFUSED);
+ }
+ else if((*i).second & CHK_SELF)
+ {
+ HRESULT hr = ObjForCore((*i).first)->Check();
+ if (FAILED(hr))
+ {
+ _bstr_t err;
+ if (GetErrorInfo(err.GetAddress()))
+ {
+ throw_com_error(hr, err);
+ }
+ else
+ {
+ COMTHROW(hr);
+ }
+ }
+ }
}
list.clear();
}
@@ -221,8 +240,15 @@
// ok, if current element and its parent are both rootfolders
stillok = COM_EQUAL( metaf, parentmf) && COM_EQUAL( metaf, mf);
}
+ if (!stillok)
+ COMTHROW(E_MGA_META_VIOLATION);
+ }
+ else
+ {
+ _bstr_t err = L"'";
+ err += parentmf->Name + "' cannot contain '" + metaf->Name + L"'";
+ throw_com_error(E_MGA_META_VIOLATION, err);
}
- if(!stillok) COMTHROW(E_MGA_META_VIOLATION);
}
MGACOLL_ITERATE_END;
}
@@ -259,7 +285,13 @@
MGACOLL_ITERATE(IMgaMetaFCO, kinds) {
if(COM_EQUAL(meta, MGACOLL_ITER)) break;
}
- if(MGACOLL_AT_END) COMTHROW(E_MGA_META_VIOLATION);
+ if (MGACOLL_AT_END)
+ {
+ IMgaMetaFCOPtr r = meta.p;
+ _bstr_t err = L"'";
+ err += r->Name + "' cannot be contained in the root folder";
+ throw_com_error(E_MGA_META_VIOLATION, err);
+ }
MGACOLL_ITERATE_END;
}
else if(parenttyp == OBJTYPE_NULL) {
More information about the gme-commit
mailing list