BOOL CXTPCalendarRemindersManager::_Dismiss(CXTPCalendarReminder* pReminder) { CXTPCalendarEventPtr ptrEvent = pReminder ? pReminder->GetEvent() : NULL; if (!pReminder || !ptrEvent) { ASSERT(FALSE); return FALSE; } CXTPAutoResetValue<BOOL> autoReset(m_bSkipOnEventChanged, FALSE); m_bSkipOnEventChanged = TRUE; if (ptrEvent->GetRecurrenceState() == xtpCalendarRecurrenceOccurrence) { CXTPCalendarRecurrencePatternPtr ptrPattern = ptrEvent->GetRecurrencePattern(); CXTPCalendarEventPtr ptrMaster = ptrPattern ? ptrPattern->GetMasterEvent() : NULL; if (ptrMaster) { ptrPattern->SetOccReminder(ptrEvent, FALSE); VERIFY( ptrMaster->UpdateRecurrence(ptrPattern) ); VERIFY( XTP_SAFE_GET1(ptrMaster->GetDataProvider(), ChangeEvent(ptrMaster), FALSE) ); } } else { ptrEvent->SetReminder(FALSE); //ptrEvent->GetCustomProperties()->RemoveProperty(cszEventCustProp_NextReminderTime_Snoozed); VERIFY( XTP_SAFE_GET1(ptrEvent->GetDataProvider(), ChangeEvent(ptrEvent), FALSE) ); } return TRUE; }
BOOL CXTPCalendarRemindersManager::_RemoveSnoozeData(CXTPCalendarReminder* pRmd) { CXTPCalendarEventPtr ptrEvent = pRmd->GetEvent(); if (ptrEvent && ptrEvent->GetCustomProperties()) { COleVariant varTmp; BOOL bSnoozed = ptrEvent->GetCustomProperties()->GetProperty( cszEventCustProp_NextReminderTime_Snoozed, varTmp); if (bSnoozed) { if (ptrEvent->GetRecurrenceState() == xtpCalendarRecurrenceOccurrence) { CXTPCalendarRecurrencePatternPtr ptrPattern = ptrEvent->GetRecurrencePattern(); CXTPCalendarEventPtr ptrMaster = ptrPattern ? ptrPattern->GetMasterEvent() : NULL; if (ptrMaster) { ptrPattern->SetOccReminder(ptrEvent, xtpCalendarRmdPrm_Default, (DATE)xtpCalendarRmdPrm_Default); VERIFY( ptrMaster->UpdateRecurrence(ptrPattern) ); VERIFY( XTP_SAFE_GET1(ptrMaster->GetDataProvider(), ChangeEvent(ptrMaster), FALSE) ); } } else { ptrEvent->GetCustomProperties()->RemoveProperty(cszEventCustProp_NextReminderTime_Snoozed); VERIFY( XTP_SAFE_GET1(ptrEvent->GetDataProvider(), ChangeEvent(ptrEvent), FALSE) ); } return TRUE; } } return FALSE; }
void FPropertyEditor::OnCustomResetToDefault( FSimpleDelegate OnCustomResetToDefaultDelegate ) { if(OnCustomResetToDefaultDelegate.IsBound()) { PropertyNode->NotifyPreChange( PropertyNode->GetProperty(), PropertyUtilities->GetNotifyHook() ); OnCustomResetToDefaultDelegate.Execute(); // Call PostEditchange on all the objects FPropertyChangedEvent ChangeEvent( PropertyNode->GetProperty() ); PropertyNode->NotifyPostChange( ChangeEvent, PropertyUtilities->GetNotifyHook() ); } }
void SSingleProperty::SetColorPropertyFromColorPicker(FLinearColor NewColor) { if( HasValidProperty() ) { UProperty* NodeProperty = ValueNode->GetProperty(); check(NodeProperty); //@todo if multiple objects we need to iterate ValueNode->NotifyPreChange(NodeProperty, GetNotifyHook()); FPropertyChangedEvent ChangeEvent(NodeProperty, EPropertyChangeType::ValueSet); ValueNode->NotifyPostChange( ChangeEvent, GetNotifyHook() ); } }
void Preferences::Put(const QString& key, const QString& value) { QString oldValue; { QMutexLocker scopedMutex(&m_Mutex); AssertValid_unlocked(); oldValue = m_Properties[key]; m_Properties[key] = value; } if (oldValue != value) { this->SetDirty(true); this->OnPropertyChanged(ChangeEvent(this, key, oldValue, value)); } }
void SDetailsViewBase::OnColorPickerWindowClosed(const TSharedRef<SWindow>& Window) { const TSharedPtr< FPropertyNode > PinnedColorPropertyNode = ColorPropertyNode.Pin(); if (ensure(PinnedColorPropertyNode.IsValid())) { UProperty* Property = PinnedColorPropertyNode->GetProperty(); if (Property && PropertyUtilities.IsValid()) { FPropertyChangedEvent ChangeEvent(Property, EPropertyChangeType::ArrayAdd); PinnedColorPropertyNode->FixPropertiesInEvent(ChangeEvent); PropertyUtilities->NotifyFinishedChangingProperties(ChangeEvent); } } // A color picker window is no longer open bHasOpenColorPicker = false; ColorPropertyNode.Reset(); }
void FPropertyEditor::SetEditConditionState( bool bShouldEnable ) { PropertyNode->NotifyPreChange( PropertyNode->GetProperty(), PropertyUtilities->GetNotifyHook() ); for ( int32 ValueIdx = 0; ValueIdx < PropertyEditConditions.Num(); ValueIdx++ ) { uint8* ValueAddr = PropertyEditConditions[ValueIdx].Address; if ( XOR(bShouldEnable, PropertyEditConditions[ValueIdx].bNegateValue) ) { EditConditionProperty->SetPropertyValue( ValueAddr, true ); } else { EditConditionProperty->SetPropertyValue( ValueAddr, false ); } } FPropertyChangedEvent ChangeEvent(PropertyNode->GetProperty()); PropertyNode->NotifyPostChange( ChangeEvent, PropertyUtilities->GetNotifyHook() ); }
void SDetailsViewBase::SetColorPropertyFromColorPicker(FLinearColor NewColor) { const TSharedPtr< FPropertyNode > PinnedColorPropertyNode = ColorPropertyNode.Pin(); if (ensure(PinnedColorPropertyNode.IsValid())) { UProperty* Property = PinnedColorPropertyNode->GetProperty(); check(Property); FObjectPropertyNode* ObjectNode = PinnedColorPropertyNode->FindObjectItemParent(); if (ObjectNode && ObjectNode->GetNumObjects()) { FScopedTransaction Transaction(NSLOCTEXT("UnrealEd", "SetColorProperty", "Set Color Property")); PinnedColorPropertyNode->NotifyPreChange(Property, GetNotifyHook()); FPropertyChangedEvent ChangeEvent(Property, EPropertyChangeType::ValueSet); PinnedColorPropertyNode->NotifyPostChange(ChangeEvent, GetNotifyHook()); } } }
void SPropertyEditorColor::OnColorPickerCancelled( FLinearColor OriginalColor ) { const TSharedRef< FPropertyNode > PropertyNode = PropertyEditor->GetPropertyNode(); UProperty* Property = PropertyNode->GetProperty(); check(Property); FReadAddressList ReadAddresses; PropertyNode->GetReadAddress( false, ReadAddresses, false ); if( ReadAddresses.Num() ) { check( OriginalColors.Num() == ReadAddresses.Num() ); PropertyNode->NotifyPreChange(Property, PropertyUtilities->GetNotifyHook()); for( int32 AddrIndex = 0; AddrIndex < ReadAddresses.Num(); ++AddrIndex ) { const uint8* Addr = ReadAddresses.GetAddress(AddrIndex); if( Addr ) { if( Cast<UStructProperty>(Property)->Struct->GetFName() == NAME_Color ) { *(FColor*)Addr = OriginalColors[AddrIndex].ToFColor(false); } else { check( Cast<UStructProperty>(Property)->Struct->GetFName() == NAME_LinearColor ); *(FLinearColor*)Addr = OriginalColors[AddrIndex]; } } } FPropertyChangedEvent ChangeEvent(Property, EPropertyChangeType::ValueSet); PropertyNode->NotifyPostChange( ChangeEvent, PropertyUtilities->GetNotifyHook() ); } OriginalColors.Empty(); }
void SPropertyEditorColor::SetColor(FLinearColor NewColor) { const TSharedRef< FPropertyNode > PropertyNode = PropertyEditor->GetPropertyNode(); UProperty* Property = PropertyNode->GetProperty(); check(Property); FReadAddressList ReadAddresses; PropertyNode->GetReadAddress( false, ReadAddresses, false ); if( ReadAddresses.Num() ) { GEditor->BeginTransaction( NSLOCTEXT("UnrealEd", "SetColorProperty", "Set Color Property") ); PropertyNode->NotifyPreChange(Property, PropertyUtilities->GetNotifyHook()); for( int32 AddrIndex = 0; AddrIndex < ReadAddresses.Num(); ++AddrIndex ) { const uint8* Addr = ReadAddresses.GetAddress(AddrIndex); if( Addr ) { if( Cast<UStructProperty>(Property)->Struct->GetFName() == NAME_Color ) { *(FColor*)Addr = NewColor.ToFColor(false); } else { check( Cast<UStructProperty>(Property)->Struct->GetFName() == NAME_LinearColor ); *(FLinearColor*)Addr = NewColor; } } } FPropertyChangedEvent ChangeEvent(Property, EPropertyChangeType::ValueSet); PropertyNode->NotifyPostChange( ChangeEvent, PropertyUtilities->GetNotifyHook() ); GEditor->EndTransaction(); } }
BOOL CXTPCalendarRemindersManager::Snooze(CXTPCalendarReminder* pReminder, int nMinutesAfterNow) { const int cnMaxSnoozeMinutes = (60*24*365) * 1000; // 1000 years // WARNING. no sense to snooze before now. ASSERT(nMinutesAfterNow >= 1); // WARNING. do you really need to snooze so far. ASSERT(nMinutesAfterNow <= cnMaxSnoozeMinutes); nMinutesAfterNow = max(1, min(nMinutesAfterNow, cnMaxSnoozeMinutes)); CXTPCalendarEventPtr ptrEvent = pReminder ? pReminder->GetEvent() : NULL; if (!pReminder || !ptrEvent) { ASSERT(FALSE); return FALSE; } pReminder->m_dtNextReminderTime = CXTPCalendarUtils::GetCurrentTime(); pReminder->m_dtNextReminderTime += CXTPCalendarUtils::Minutes2Span(nMinutesAfterNow); m_arWaitingReminders.Add(pReminder, TRUE); int nIdx = m_arActiveReminders.Find(pReminder); if (nIdx >= 0) { m_arActiveReminders.RemoveAt(nIdx); } CXTPAutoResetValue<BOOL> autoReset(m_bSkipOnEventChanged, FALSE); m_bSkipOnEventChanged = TRUE; if (ptrEvent->GetRecurrenceState() == xtpCalendarRecurrenceOccurrence) { CXTPCalendarRecurrencePatternPtr ptrPattern = ptrEvent->GetRecurrencePattern(); CXTPCalendarEventPtr ptrMaster = ptrPattern ? ptrPattern->GetMasterEvent() : NULL; if (ptrMaster) { ptrPattern->SetOccReminder(ptrEvent, xtpCalendarRmdPrm_DontChange, (DATE)pReminder->m_dtNextReminderTime); VERIFY( ptrMaster->UpdateRecurrence(ptrPattern) ); VERIFY( XTP_SAFE_GET1(ptrMaster->GetDataProvider(), ChangeEvent(ptrMaster), FALSE) ); } } else { VERIFY( ptrEvent->GetCustomProperties()->SetProperty( cszEventCustProp_NextReminderTime_Snoozed, (DATE)pReminder->m_dtNextReminderTime) ); VERIFY( XTP_SAFE_GET1(ptrEvent->GetDataProvider(), ChangeEvent(ptrEvent), FALSE) ); } NotifyReminders(xtpCalendarReminderSnoozed, (LPARAM)pReminder); return TRUE; }
/** * Changes the details of an existing event. * * Use GetEvent() to specify the event. * * @param aStatus Asynchronous status word to signal when the operation is complete * @param aSmsMessage The SMS message that the event concerns * @param aData SMS PDU information for the event * @param aStatusId Optional string to include in the log message, specified by * resource ID * @capability WriteUserData */ EXPORT_C void CSmsEventLogger::ChangeEvent(TRequestStatus& aStatus, const CSmsMessage& aSmsMessage, const TLogSmsPduData& aData, TInt* aStatusId) { ChangeEvent(aStatus, aSmsMessage, NULL, aData, aStatusId); } // CSmsEventLogger::ChangeEvent