[commit] r2674 - in trunk: Paradigms/MetaGME/MetaDecorator SDK/DecoratorLib
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Thu May 11 16:35:08 CDT 2017
Author: ksmyth
Date: Thu May 11 16:35:08 2017
New Revision: 2674
Log:
MetaDecorator: dont crash when trying to edit an attribute in a library
Modified:
trunk/Paradigms/MetaGME/MetaDecorator/MetaAttributePart.cpp
trunk/SDK/DecoratorLib/InPlaceEditDialog.cpp
Modified: trunk/Paradigms/MetaGME/MetaDecorator/MetaAttributePart.cpp
==============================================================================
--- trunk/Paradigms/MetaGME/MetaDecorator/MetaAttributePart.cpp Tue May 9 13:49:17 2017 (r2673)
+++ trunk/Paradigms/MetaGME/MetaDecorator/MetaAttributePart.cpp Thu May 11 16:35:08 2017 (r2674)
@@ -37,12 +37,12 @@
void MetaAttributePart::ExecuteOperation(const CString& newString)
{
// transaction operation begin
- m_strText = newString;
CComBSTR bstr;
CopyTo(newString, bstr);
HRESULT hr = m_spActualFCO->put_Name(bstr);
if (hr != E_MGA_NAME_DUPLICATE)
COMTHROW(hr);
+ m_strText = newString;
// transaction operation end
}
@@ -57,8 +57,10 @@
{
__super::InitializeEx(pProject, pPart, pFCO, parentWnd, preferences);
VARIANT_BOOL isLibObject = VARIANT_TRUE;
- pFCO->get_IsLibObject(&isLibObject);
- m_bTextEditable = isLibObject == VARIANT_FALSE;
+ m_spActualFCO->get_IsLibObject(&isLibObject);
+ VARIANT_BOOL isReadOnly = VARIANT_TRUE;
+ m_spActualFCO->HasReadOnlyAccess(&isReadOnly);
+ m_bTextEditable = isLibObject == VARIANT_FALSE && isReadOnly == VARIANT_FALSE;
}
}; // namespace MetaDecor
Modified: trunk/SDK/DecoratorLib/InPlaceEditDialog.cpp
==============================================================================
--- trunk/SDK/DecoratorLib/InPlaceEditDialog.cpp Tue May 9 13:49:17 2017 (r2673)
+++ trunk/SDK/DecoratorLib/InPlaceEditDialog.cpp Thu May 11 16:35:08 2017 (r2674)
@@ -102,7 +102,12 @@
m_Text = textToValidate;
m_parentPart->LabelChanged(m_Text);
// transaction operation begin
- m_parentPart->ExecuteOperation(m_Text);
+ try {
+ m_parentPart->ExecuteOperation(m_Text);
+ }
+ catch (const hresult_exception&) {
+ // FIXME send crashrpt
+ }
// transaction operation end
} else {
m_intendedParentCWnd->MessageBox(_T("Invalid (non ASCII) string data: ") + textToValidate, _T("In-place Editor"), MB_ICONERROR);
More information about the gme-commit
mailing list