void PromotionTaskMenu::editPromotedWidgets(QDesignerFormEditorInterface *core, QWidget* parent) { QDesignerLanguageExtension *lang = languageExtension(core); // Show over non-promotable widget QDialog *promotionEditor = 0; if (lang) lang->createPromotionDialog(core, parent); if (!promotionEditor) promotionEditor = new QDesignerPromotionDialog(core, parent); promotionEditor->exec(); delete promotionEditor; }
void PromotionTaskMenu::slotEditPromoteTo() { Q_ASSERT(m_widget); // Check whether invoked over a promotable widget QDesignerFormWindowInterface *fw = formWindow(); QDesignerFormEditorInterface *core = fw->core(); const QString base_class_name = WidgetFactory::classNameOf(core, m_widget); Q_ASSERT(QDesignerPromotionDialog::baseClassNames(core->promotion()).contains(base_class_name)); // Show over promotable widget QString promoteToClassName; QDialog *promotionEditor = 0; if (QDesignerLanguageExtension *lang = languageExtension(core)) promotionEditor = lang->createPromotionDialog(core, base_class_name, &promoteToClassName, fw); if (!promotionEditor) promotionEditor = new QDesignerPromotionDialog(core, fw, base_class_name, &promoteToClassName); if (promotionEditor->exec() == QDialog::Accepted && !promoteToClassName.isEmpty()) { promoteTo(fw, promoteToClassName); } delete promotionEditor; }
void PromotionTaskMenu::addActions(QDesignerFormWindowInterface *fw, unsigned flags, ActionList &actionList) { Q_ASSERT(m_widget); const int previousSize = actionList.size(); const PromotionState promotionState = createPromotionActions(fw); // Promotion candidates/demote actionList += m_promotionActions; // Edit action depending on context switch (promotionState) { case CanPromote: actionList += m_EditPromoteToAction; break; case CanDemote: if (!(flags & SuppressGlobalEdit)) actionList += m_globalEditAction; if (!languageExtension(fw->core())) { actionList += separatorAction(this); actionList += m_EditSignalsSlotsAction; } break; default: if (!(flags & SuppressGlobalEdit)) actionList += m_globalEditAction; break; } // Add separators if required if (actionList.size() > previousSize) { if (flags & LeadingSeparator) actionList.insert(previousSize, separatorAction(this)); if (flags & TrailingSeparator) actionList += separatorAction(this); } }
Writer& Writer::writeFloatValueImpl(T value) { if (std::isfinite(value)) { beginValue(); *m_Stream << value; m_State = AT_END_OF_VALUE; } else if (!languageExtension(NON_FINITE_FLOATS_AS_STRINGS)) { YSON_THROW(std::string("Illegal floating point value '") + std::to_string(value) + "'"); } else { if (std::isnan(value)) writeValue("NaN"); else if (value < 0) writeValue("-infinity"); else writeValue("infinity"); } return *this; }
bool Writer::isUnquotedValueNamesEnabled() const { return languageExtension(UNQUOTED_VALUE_NAMES); }
bool Writer::isNonFiniteFloatsAsStringsEnabled() const { return languageExtension(NON_FINITE_FLOATS_AS_STRINGS); }