void CPropertyCommand::undo() { if(oldValue().isValid() && !propertyName().isEmpty()) { foreach (QObject * object, fobjects) object->setProperty(qPrintable(propertyName()),oldValue()); } }
Variable &Variable::set(Value *v) { DENG2_ASSERT(v != 0); QScopedPointer<Value> val(v); // If the value would change, must check if this is allowed. verifyWritable(*v); verifyValid(*v); QScopedPointer<Value> oldValue(d->value); // old value deleted afterwards d->value = val.take(); // We'll only determine if actual change occurred if someone is interested. if(!audienceForChange().isEmpty() || !audienceForChangeFrom().isEmpty()) { bool notify = true; try { // Did it actually change? Let's compare... notify = oldValue.isNull() || oldValue->compare(*v); } catch(Error const &) { // Perhaps the values weren't comparable? } if(notify) { DENG2_FOR_AUDIENCE2(Change, i) i->variableValueChanged(*this, *d->value); DENG2_FOR_AUDIENCE2(ChangeFrom, i) i->variableValueChangedFrom(*this, *oldValue, *d->value); } } return *this; }
nsresult nsAutoCompleteController::RevertTextValue() { // StopSearch() can call PostSearchCleanup() which might result // in a blur event, which could null out mInput, so we need to check it // again. See bug #408463 for more details if (!mInput) return NS_OK; nsAutoString oldValue(mSearchString); nsCOMPtr<nsIAutoCompleteInput> input(mInput); bool cancel = false; input->OnTextReverted(&cancel); if (!cancel) { nsCOMPtr<nsIObserverService> obsSvc = mozilla::services::GetObserverService(); NS_ENSURE_STATE(obsSvc); obsSvc->NotifyObservers(input, "autocomplete-will-revert-text", nsnull); nsAutoString inputValue; input->GetTextValue(inputValue); // Don't change the value if it is the same to prevent sending useless events. // NOTE: how can |RevertTextValue| be called with inputValue != oldValue? if (!oldValue.Equals(inputValue)) { input->SetTextValue(oldValue); } obsSvc->NotifyObservers(input, "autocomplete-did-revert-text", nsnull); } return NS_OK; }
nsresult nsAutoCompleteController::RevertTextValue() { // StopSearch() can call PostSearchCleanup() which might result // in a blur event, which could null out mInput, so we need to check it // again. See bug #408463 for more details if (!mInput) return NS_OK; nsAutoString oldValue(mSearchString); nsCOMPtr<nsIAutoCompleteInput> input(mInput); PRBool cancel = PR_FALSE; input->OnTextReverted(&cancel); if (!cancel) { nsCOMPtr<nsIObserverService> obsSvc = mozilla::services::GetObserverService(); NS_ENSURE_STATE(obsSvc); obsSvc->NotifyObservers(input, "autocomplete-will-revert-text", nsnull); input->SetTextValue(oldValue); obsSvc->NotifyObservers(input, "autocomplete-did-revert-text", nsnull); } return NS_OK; }
void ObjectNodeInstance::refreshProperty(const PropertyName &name) { QQmlProperty property(object(), QString::fromUtf8(name), context()); if (!property.isValid()) return; QVariant oldValue(property.read()); if (property.isResettable()) property.reset(); else property.write(resetValue(name)); if (oldValue.type() == QVariant::Url) { QByteArray key = oldValue.toUrl().toEncoded(QUrl::UrlFormattingOption(0x100)); QString pixmapKey = QString::fromUtf8(key.constData(), key.count()); QPixmapCache::remove(pixmapKey); } property.write(oldValue); }
long operator++(Task a,int) { Task oldValue(a.value); a.value++; return atol(oldValue.value); }
void AppearancePrefView::MessageReceived(BMessage* msg) { bool modified = false; switch (msg->what) { case MSG_HALF_FONT_CHANGED: { const char* family = NULL; const char* style = NULL; msg->FindString("font_family", &family); msg->FindString("font_style", &style); PrefHandler* pref = PrefHandler::Default(); const char* currentFamily = pref->getString(PREF_HALF_FONT_FAMILY); const char* currentStyle = pref->getString(PREF_HALF_FONT_STYLE); if (currentFamily == NULL || strcmp(currentFamily, family) || currentStyle == NULL || strcmp(currentStyle, style)) { pref->setString(PREF_HALF_FONT_FAMILY, family); pref->setString(PREF_HALF_FONT_STYLE, style); modified = true; } break; } case MSG_HALF_SIZE_CHANGED: if (strcmp(PrefHandler::Default()->getString(PREF_HALF_FONT_SIZE), fFontSize->Menu()->FindMarked()->Label())) { PrefHandler::Default()->setString(PREF_HALF_FONT_SIZE, fFontSize->Menu()->FindMarked()->Label()); modified = true; } break; case MSG_COLOR_CHANGED: { rgb_color oldColor = PrefHandler::Default()->getRGB( fColorField->Menu()->FindMarked()->Label()); if (oldColor != fColorControl->ValueAsColor()) { PrefHandler::Default()->setRGB( fColorField->Menu()->FindMarked()->Label(), fColorControl->ValueAsColor()); modified = true; } } break; case MSG_COLOR_SCHEMA_CHANGED: { color_schema* newSchema = NULL; if (msg->FindPointer("color_schema", (void**)&newSchema) == B_OK) { if (newSchema == &gCustomSchema) _EnableCustomColors(true); else _EnableCustomColors(false); _ChangeColorSchema(newSchema); modified = true; } break; } case MSG_COLOR_FIELD_CHANGED: fColorControl->SetValue(PrefHandler::Default()->getRGB( fColorField->Menu()->FindMarked()->Label())); break; case MSG_WARN_ON_EXIT_CHANGED: if (PrefHandler::Default()->getBool(PREF_WARN_ON_EXIT) != fWarnOnExit->Value()) { PrefHandler::Default()->setBool(PREF_WARN_ON_EXIT, fWarnOnExit->Value()); modified = true; } break; case MSG_TAB_TITLE_SETTING_CHANGED: { BString oldValue(PrefHandler::Default()->getString(PREF_TAB_TITLE)); if (oldValue != fTabTitle->Text()) { PrefHandler::Default()->setString(PREF_TAB_TITLE, fTabTitle->Text()); modified = true; } break; } case MSG_WINDOW_TITLE_SETTING_CHANGED: { BString oldValue(PrefHandler::Default()->getString( PREF_WINDOW_TITLE)); if (oldValue != fWindowTitle->Text()) { PrefHandler::Default()->setString(PREF_WINDOW_TITLE, fWindowTitle->Text()); modified = true; } break; } default: BView::MessageReceived(msg); return; } if (modified) { fTerminalMessenger.SendMessage(msg); BMessenger messenger(this); messenger.SendMessage(MSG_PREF_MODIFIED); } }
void Ruler::resetValue() { setValue(oldValue()); }
void AppearancePrefView::MessageReceived(BMessage* msg) { bool modified = false; switch (msg->what) { case MSG_HALF_FONT_CHANGED: { const char* family = NULL; const char* style = NULL; const char* size = NULL; if (msg->FindString("font_family", &family) != B_OK || msg->FindString("font_style", &style) != B_OK || msg->FindString("font_size", &size) != B_OK) { break; } PrefHandler* pref = PrefHandler::Default(); const char* currentFamily = pref->getString(PREF_HALF_FONT_FAMILY); const char* currentStyle = pref->getString(PREF_HALF_FONT_STYLE); const char* currentSize = pref->getString(PREF_HALF_FONT_SIZE); if (currentFamily == NULL || strcmp(currentFamily, family) != 0 || currentStyle == NULL || strcmp(currentStyle, style) != 0 || currentSize == NULL || strcmp(currentSize, size) != 0) { pref->setString(PREF_HALF_FONT_FAMILY, family); pref->setString(PREF_HALF_FONT_STYLE, style); pref->setString(PREF_HALF_FONT_SIZE, size); _MarkSelectedFont(family, style, size); modified = true; } break; } case MSG_COLOR_CHANGED: { const BMessage* itemMessage = fColorField->Menu()->FindMarked()->Message(); const char* label = NULL; if (itemMessage->FindString("label", &label) != B_OK) break; rgb_color oldColor = PrefHandler::Default()->getRGB(label); if (oldColor != fColorControl->ValueAsColor()) { BMenuItem* item = fColorSchemeField->Menu()->FindMarked(); if (strcmp(item->Label(), gCustomColorScheme.name) != 0) { item->SetMarked(false); item = fColorSchemeField->Menu()->FindItem( gCustomColorScheme.name); if (item) item->SetMarked(true); } PrefHandler::Default()->setRGB(label, fColorControl->ValueAsColor()); modified = true; } break; } case MSG_COLOR_SCHEME_CHANGED: { color_scheme* newScheme = NULL; if (msg->FindPointer("color_scheme", (void**)&newScheme) == B_OK) { _ChangeColorScheme(newScheme); modified = true; } break; } case MSG_COLOR_FIELD_CHANGED: { const char* label = NULL; if (msg->FindString("label", &label) == B_OK) fColorControl->SetValue(PrefHandler::Default()->getRGB(label)); break; } case MSG_BLINK_CURSOR_CHANGED: if (PrefHandler::Default()->getBool(PREF_BLINK_CURSOR) != fBlinkCursor->Value()) { PrefHandler::Default()->setBool(PREF_BLINK_CURSOR, fBlinkCursor->Value()); modified = true; } break; case MSG_WARN_ON_EXIT_CHANGED: if (PrefHandler::Default()->getBool(PREF_WARN_ON_EXIT) != fWarnOnExit->Value()) { PrefHandler::Default()->setBool(PREF_WARN_ON_EXIT, fWarnOnExit->Value()); modified = true; } break; case MSG_TAB_TITLE_SETTING_CHANGED: { BString oldValue(PrefHandler::Default()->getString(PREF_TAB_TITLE)); if (oldValue != fTabTitle->Text()) { PrefHandler::Default()->setString(PREF_TAB_TITLE, fTabTitle->Text()); modified = true; } break; } case MSG_WINDOW_TITLE_SETTING_CHANGED: { BString oldValue(PrefHandler::Default()->getString( PREF_WINDOW_TITLE)); if (oldValue != fWindowTitle->Text()) { PrefHandler::Default()->setString(PREF_WINDOW_TITLE, fWindowTitle->Text()); modified = true; } break; } default: BView::MessageReceived(msg); return; } if (modified) { fTerminalMessenger.SendMessage(msg); BMessenger messenger(this); messenger.SendMessage(MSG_PREF_MODIFIED); } }