47#include <QApplication>
50#include <QFontDatabase>
59#include <QStyleOption>
65#pragma warning(disable : 4786)
70template <
class PrivateData,
class Value>
72setSimpleMinimumData(PrivateData*
data,
const Value& minVal)
74 data->minVal = minVal;
87template <
class PrivateData,
class Value>
89setSimpleMaximumData(PrivateData*
data,
const Value& maxVal)
91 data->maxVal = maxVal;
104template <
class PrivateData,
class Value>
106setSizeMinimumData(PrivateData*
data,
const Value& newMinVal)
108 data->minVal = newMinVal;
110 if (
data->maxVal.width() <
data->minVal.width())
112 data->maxVal.setWidth(
data->minVal.width());
115 if (
data->maxVal.height() <
data->minVal.height())
117 data->maxVal.setHeight(
data->minVal.height());
120 if (
data->val.width() <
data->minVal.width())
122 data->val.setWidth(
data->minVal.width());
125 if (
data->val.height() <
data->minVal.height())
127 data->val.setHeight(
data->minVal.height());
131template <
class PrivateData,
class Value>
133setSizeMaximumData(PrivateData*
data,
const Value& newMaxVal)
135 data->maxVal = newMaxVal;
137 if (
data->minVal.width() >
data->maxVal.width())
139 data->minVal.setWidth(
data->maxVal.width());
142 if (
data->minVal.height() >
data->maxVal.height())
144 data->minVal.setHeight(
data->maxVal.height());
147 if (
data->val.width() >
data->maxVal.width())
149 data->val.setWidth(
data->maxVal.width());
152 if (
data->val.height() >
data->maxVal.height())
154 data->val.setHeight(
data->maxVal.height());
158template <
class SizeValue>
160qBoundSize(
const SizeValue& minVal,
const SizeValue& val,
const SizeValue& maxVal)
162 SizeValue croppedVal = val;
164 if (minVal.width() > val.width())
166 croppedVal.setWidth(minVal.width());
168 else if (maxVal.width() < val.width())
170 croppedVal.setWidth(maxVal.width());
173 if (minVal.height() > val.height())
175 croppedVal.setHeight(minVal.height());
177 else if (maxVal.height() < val.height())
179 croppedVal.setHeight(maxVal.height());
187qBound(QSize minVal, QSize val, QSize maxVal)
189 return qBoundSize(minVal, val, maxVal);
193qBound(QSizeF minVal, QSizeF val, QSizeF maxVal)
195 return qBoundSize(minVal, val, maxVal);
200 template <
class Value>
202 orderBorders(Value& minVal, Value& maxVal)
206 qSwap(minVal, maxVal);
210 template <
class Value>
212 orderSizeBorders(Value& minVal, Value& maxVal)
214 Value fromSize = minVal;
215 Value toSize = maxVal;
217 if (fromSize.width() > toSize.width())
219 fromSize.setWidth(maxVal.width());
220 toSize.setWidth(minVal.width());
223 if (fromSize.height() > toSize.height())
225 fromSize.setHeight(maxVal.height());
226 toSize.setHeight(minVal.height());
234 orderBorders(QSize& minVal, QSize& maxVal)
236 orderSizeBorders(minVal, maxVal);
240 orderBorders(QSizeF& minVal, QSizeF& maxVal)
242 orderSizeBorders(minVal, maxVal);
249template <
class Value,
class PrivateData>
251getData(
const QMap<const QtProperty*, PrivateData>& propertyMap,
252 Value PrivateData::*
data,
254 const Value& defaultValue =
Value())
256 using PropertyToData = QMap<const QtProperty*, PrivateData>;
257 using PropertyToDataConstIterator =
typename PropertyToData::const_iterator;
258 const PropertyToDataConstIterator it = propertyMap.constFind(property);
260 if (it == propertyMap.constEnd())
265 return it.value().*
data;
268template <
class Value,
class PrivateData>
270getValue(
const QMap<const QtProperty*, PrivateData>& propertyMap,
272 const Value& defaultValue =
Value())
274 return getData<Value>(propertyMap, &PrivateData::val, property, defaultValue);
277template <
class Value,
class PrivateData>
279getMinimum(
const QMap<const QtProperty*, PrivateData>& propertyMap,
281 const Value& defaultValue =
Value())
283 return getData<Value>(propertyMap, &PrivateData::minVal, property, defaultValue);
286template <
class Value,
class PrivateData>
288getMaximum(
const QMap<const QtProperty*, PrivateData>& propertyMap,
290 const Value& defaultValue =
Value())
292 return getData<Value>(propertyMap, &PrivateData::maxVal, property, defaultValue);
295template <
class ValueChangeParameter,
class Value,
class PropertyManager>
297setSimpleValue(QMap<const QtProperty*, Value>& propertyMap,
298 PropertyManager* manager,
299 void (PropertyManager::*propertyChangedSignal)(
QtProperty*),
300 void (PropertyManager::*valueChangedSignal)(
QtProperty*, ValueChangeParameter),
304 using PropertyToData = QMap<const QtProperty*, Value>;
305 using PropertyToDataIterator =
typename PropertyToData::iterator;
306 const PropertyToDataIterator it = propertyMap.find(property);
308 if (it == propertyMap.end())
313 if (it.value() == val)
320 emit(manager->*propertyChangedSignal)(property);
321 emit(manager->*valueChangedSignal)(property, val);
324template <
class ValueChangeParameter,
325 class PropertyManagerPrivate,
326 class PropertyManager,
329setValueInRange(PropertyManager* manager,
330 PropertyManagerPrivate* managerPrivate,
331 void (PropertyManager::*propertyChangedSignal)(
QtProperty*),
332 void (PropertyManager::*valueChangedSignal)(
QtProperty*, ValueChangeParameter),
335 void (PropertyManagerPrivate::*setSubPropertyValue)(
QtProperty*,
336 ValueChangeParameter))
338 using PrivateData =
typename PropertyManagerPrivate::Data;
339 using PropertyToData = QMap<const QtProperty*, PrivateData>;
340 using PropertyToDataIterator =
typename PropertyToData::iterator;
341 const PropertyToDataIterator it = managerPrivate->m_values.find(property);
343 if (it == managerPrivate->m_values.end())
348 PrivateData&
data = it.value();
359 if (
data.val == oldVal)
364 if (setSubPropertyValue)
366 (managerPrivate->*setSubPropertyValue)(property,
data.val);
369 emit(manager->*propertyChangedSignal)(property);
370 emit(manager->*valueChangedSignal)(property,
data.val);
373template <
class ValueChangeParameter,
374 class PropertyManagerPrivate,
375 class PropertyManager,
378setBorderValues(PropertyManager* manager,
379 PropertyManagerPrivate* managerPrivate,
380 void (PropertyManager::*propertyChangedSignal)(
QtProperty*),
381 void (PropertyManager::*valueChangedSignal)(
QtProperty*, ValueChangeParameter),
382 void (PropertyManager::*rangeChangedSignal)(
QtProperty*,
383 ValueChangeParameter,
384 ValueChangeParameter),
388 void (PropertyManagerPrivate::*setSubPropertyRange)(
QtProperty*,
389 ValueChangeParameter,
390 ValueChangeParameter,
391 ValueChangeParameter))
393 using PrivateData =
typename PropertyManagerPrivate::Data;
394 using PropertyToData = QMap<const QtProperty*, PrivateData>;
395 using PropertyToDataIterator =
typename PropertyToData::iterator;
396 const PropertyToDataIterator it = managerPrivate->m_values.find(property);
398 if (it == managerPrivate->m_values.end())
403 Value fromVal = minVal;
404 Value toVal = maxVal;
405 orderBorders(fromVal, toVal);
407 PrivateData&
data = it.value();
409 if (
data.minVal == fromVal &&
data.maxVal == toVal)
416 data.setMinimumValue(fromVal);
417 data.setMaximumValue(toVal);
419 emit(manager->*rangeChangedSignal)(property,
data.minVal,
data.maxVal);
421 if (setSubPropertyRange)
423 (managerPrivate->*setSubPropertyRange)(property,
data.minVal,
data.maxVal,
data.val);
426 if (
data.val == oldVal)
431 emit(manager->*propertyChangedSignal)(property);
432 emit(manager->*valueChangedSignal)(property,
data.val);
435template <
class ValueChangeParameter,
436 class PropertyManagerPrivate,
437 class PropertyManager,
441setBorderValue(PropertyManager* manager,
442 PropertyManagerPrivate* managerPrivate,
443 void (PropertyManager::*propertyChangedSignal)(
QtProperty*),
444 void (PropertyManager::*valueChangedSignal)(
QtProperty*, ValueChangeParameter),
445 void (PropertyManager::*rangeChangedSignal)(
QtProperty*,
446 ValueChangeParameter,
447 ValueChangeParameter),
449 Value (PrivateData::*getRangeVal)()
const,
450 void (PrivateData::*setRangeVal)(ValueChangeParameter),
451 const Value& borderVal,
452 void (PropertyManagerPrivate::*setSubPropertyRange)(
QtProperty*,
453 ValueChangeParameter,
454 ValueChangeParameter,
455 ValueChangeParameter))
457 using PropertyToData = QMap<const QtProperty*, PrivateData>;
458 using PropertyToDataIterator =
typename PropertyToData::iterator;
459 const PropertyToDataIterator it = managerPrivate->m_values.find(property);
461 if (it == managerPrivate->m_values.end())
466 PrivateData&
data = it.value();
468 if ((
data.*getRangeVal)() == borderVal)
475 (
data.*setRangeVal)(borderVal);
477 emit(manager->*rangeChangedSignal)(property,
data.minVal,
data.maxVal);
479 if (setSubPropertyRange)
481 (managerPrivate->*setSubPropertyRange)(property,
data.minVal,
data.maxVal,
data.val);
484 if (
data.val == oldVal)
489 emit(manager->*propertyChangedSignal)(property);
490 emit(manager->*valueChangedSignal)(property,
data.val);
493template <
class ValueChangeParameter,
494 class PropertyManagerPrivate,
495 class PropertyManager,
499setMinimumValue(PropertyManager* manager,
500 PropertyManagerPrivate* managerPrivate,
501 void (PropertyManager::*propertyChangedSignal)(
QtProperty*),
502 void (PropertyManager::*valueChangedSignal)(
QtProperty*, ValueChangeParameter),
503 void (PropertyManager::*rangeChangedSignal)(
QtProperty*,
504 ValueChangeParameter,
505 ValueChangeParameter),
509 void (PropertyManagerPrivate::*setSubPropertyRange)(
510 QtProperty*, ValueChangeParameter, ValueChangeParameter, ValueChangeParameter) = 0;
511 setBorderValue<ValueChangeParameter,
512 PropertyManagerPrivate,
515 PrivateData>(manager,
517 propertyChangedSignal,
521 &PropertyManagerPrivate::Data::minimumValue,
522 &PropertyManagerPrivate::Data::setMinimumValue,
524 setSubPropertyRange);
527template <
class ValueChangeParameter,
528 class PropertyManagerPrivate,
529 class PropertyManager,
533setMaximumValue(PropertyManager* manager,
534 PropertyManagerPrivate* managerPrivate,
535 void (PropertyManager::*propertyChangedSignal)(
QtProperty*),
536 void (PropertyManager::*valueChangedSignal)(
QtProperty*, ValueChangeParameter),
537 void (PropertyManager::*rangeChangedSignal)(
QtProperty*,
538 ValueChangeParameter,
539 ValueChangeParameter),
543 void (PropertyManagerPrivate::*setSubPropertyRange)(
544 QtProperty*, ValueChangeParameter, ValueChangeParameter, ValueChangeParameter) = 0;
545 setBorderValue<ValueChangeParameter,
546 PropertyManagerPrivate,
549 PrivateData>(manager,
551 propertyChangedSignal,
555 &PropertyManagerPrivate::Data::maximumValue,
556 &PropertyManagerPrivate::Data::setMaximumValue,
558 setSubPropertyRange);
561class QtMetaEnumWrapper :
public QObject
569 return QSizePolicy::Ignored;
586 return m_policyEnumNames;
592 return m_languageEnumNames;
598 return m_countryEnumNames.value(language);
606 QLocale::Language* language,
607 QLocale::Country* country)
const;
609 QLocale::Country country,
611 int* countryIndex)
const;
616 QStringList m_policyEnumNames;
617 QStringList m_languageEnumNames;
618 QMap<QLocale::Language, QStringList> m_countryEnumNames;
619 QMap<int, QLocale::Language> m_indexToLanguage;
620 QMap<QLocale::Language, int> m_languageToIndex;
621 QMap<int, QMap<int, QLocale::Country>> m_indexToCountry;
622 QMap<QLocale::Language, QMap<QLocale::Country, int>> m_countryToIndex;
623 QMetaEnum m_policyEnum;
626static QList<QLocale::Country>
627sortCountries(
const QList<QLocale::Country>& countries)
629 QMultiMap<QString, QLocale::Country> nameToCountry;
630 QListIterator<QLocale::Country> itCountry(countries);
632 while (itCountry.hasNext())
634 QLocale::Country country = itCountry.next();
635 nameToCountry.insert(QLocale::countryToString(country), country);
638 return nameToCountry.values();
642QtMetaEnumProvider::initLocale()
644 QMultiMap<QString, QLocale::Language> nameToLanguage;
645 QLocale::Language language = QLocale::C;
647 while (language <= QLocale::LastLanguage)
649 QLocale locale(language);
651 if (locale.language() == language)
653 nameToLanguage.insert(QLocale::languageToString(language), language);
656 language = (QLocale::Language)((uint)language + 1);
659 const QLocale system = QLocale::system();
661 if (!nameToLanguage.contains(QLocale::languageToString(system.language())))
663 nameToLanguage.insert(QLocale::languageToString(system.language()), system.language());
666 QList<QLocale::Language> languages = nameToLanguage.values();
667 QListIterator<QLocale::Language> itLang(languages);
669 while (itLang.hasNext())
671 QLocale::Language language = itLang.next();
672 QList<QLocale::Country> countries;
673 countries = QLocale::countriesForLanguage(language);
675 if (countries.isEmpty() && language == system.language())
677 countries << system.country();
680 if (!countries.isEmpty() && !m_languageToIndex.contains(language))
682 countries = sortCountries(countries);
683 int langIdx = m_languageEnumNames.count();
684 m_indexToLanguage[langIdx] = language;
685 m_languageToIndex[language] = langIdx;
686 QStringList countryNames;
687 QListIterator<QLocale::Country> it(countries);
692 QLocale::Country country = it.next();
693 countryNames << QLocale::countryToString(country);
694 m_indexToCountry[langIdx][countryIdx] = country;
695 m_countryToIndex[language][country] = countryIdx;
699 m_languageEnumNames << QLocale::languageToString(language);
700 m_countryEnumNames[language] = countryNames;
709 p = QtMetaEnumWrapper::staticMetaObject.property(
710 QtMetaEnumWrapper::staticMetaObject.propertyOffset() + 0);
711 m_policyEnum = p.enumerator();
712 const int keyCount = m_policyEnum.keyCount();
714 for (
int i = 0; i < keyCount; i++)
716 m_policyEnumNames << QLatin1String(m_policyEnum.key(i));
725 return static_cast<QSizePolicy::Policy
>(m_policyEnum.value(
index));
731 const int keyCount = m_policyEnum.keyCount();
733 for (
int i = 0; i < keyCount; i++)
745 QLocale::Language* language,
746 QLocale::Country* country)
const
748 QLocale::Language l = QLocale::C;
749 QLocale::Country
c = QLocale::AnyCountry;
751 if (m_indexToLanguage.contains(languageIndex))
753 l = m_indexToLanguage[languageIndex];
755 if (m_indexToCountry.contains(languageIndex) &&
756 m_indexToCountry[languageIndex].contains(countryIndex))
758 c = m_indexToCountry[languageIndex][countryIndex];
775 QLocale::Country country,
777 int* countryIndex)
const
782 if (m_languageToIndex.contains(language))
784 l = m_languageToIndex[language];
786 if (m_countryToIndex.contains(language) && m_countryToIndex[language].contains(country))
788 c = m_countryToIndex[language][country];
893 setSimpleMinimumData(
this, newMinVal);
899 setSimpleMaximumData(
this, newMaxVal);
988 return getValue<int>(d_ptr->m_values, property, 0);
999 return getMinimum<int>(d_ptr->m_values, property, 0);
1010 return getMaximum<int>(d_ptr->m_values, property, 0);
1023 return getData<int>(
1037 return getData<bool>(
1047 const QtIntPropertyManagerPrivate::PropertyValueMap::const_iterator it =
1048 d_ptr->m_values.constFind(property);
1050 if (it == d_ptr->m_values.constEnd())
1055 return QString::number(it.value().val);
1073 setValueInRange<int, QtIntPropertyManagerPrivate, QtIntPropertyManager, int>(
1080 setSubPropertyValue);
1095 setMinimumValue<int,
1120 setMaximumValue<int,
1151 setBorderValues<int, QtIntPropertyManagerPrivate, QtIntPropertyManager, int>(
1160 setSubPropertyRange);
1173 const QtIntPropertyManagerPrivate::PropertyValueMap::iterator it =
1174 d_ptr->m_values.find(property);
1176 if (it == d_ptr->m_values.end())
1188 if (
data.singleStep == step)
1193 data.singleStep = step;
1208 const QtIntPropertyManagerPrivate::PropertyValueMap::iterator it =
1209 d_ptr->m_values.find(property);
1211 if (it == d_ptr->m_values.end())
1218 if (
data.readOnly == readOnly)
1223 data.readOnly = readOnly;
1245 d_ptr->m_values.remove(property);
1284 setSimpleMinimumData(
this, newMinVal);
1290 setSimpleMaximumData(
this, newMaxVal);
1368 d_ptr->q_ptr =
this;
1391 return getValue<double>(d_ptr->m_values, property, 0.0);
1402 return getMinimum<double>(d_ptr->m_values, property, 0.0);
1413 return getMaximum<double>(d_ptr->m_values, property, 0.0);
1426 return getData<double>(
1438 return getData<int>(
1452 return getData<bool>(
1462 const QtDoublePropertyManagerPrivate::PropertyValueMap::const_iterator it =
1463 d_ptr->m_values.constFind(property);
1465 if (it == d_ptr->m_values.constEnd())
1470 return QLocale::system().toString(it.value().val,
'f', it.value().decimals);
1488 setValueInRange<double, QtDoublePropertyManagerPrivate, QtDoublePropertyManager, double>(
1495 setSubPropertyValue);
1508 const QtDoublePropertyManagerPrivate::PropertyValueMap::iterator it =
1509 d_ptr->m_values.find(property);
1511 if (it == d_ptr->m_values.end())
1523 if (
data.singleStep == step)
1528 data.singleStep = step;
1543 const QtDoublePropertyManagerPrivate::PropertyValueMap::iterator it =
1544 d_ptr->m_values.find(property);
1546 if (it == d_ptr->m_values.end())
1553 if (
data.readOnly == readOnly)
1558 data.readOnly = readOnly;
1577 const QtDoublePropertyManagerPrivate::PropertyValueMap::iterator it =
1578 d_ptr->m_values.find(property);
1580 if (it == d_ptr->m_values.end())
1596 if (
data.decimals == prec)
1601 data.decimals = prec;
1620 setMinimumValue<double,
1645 setMaximumValue<double,
1677 setBorderValues<double, QtDoublePropertyManagerPrivate, QtDoublePropertyManager, double>(
1686 setSubPropertyRange);
1704 d_ptr->m_values.remove(property);
1717 regExp(QString(QLatin1Char(
'*')), Qt::CaseSensitive, QRegExp::Wildcard),
1780 d_ptr->q_ptr =
this;
1803 return getValue<QString>(d_ptr->m_values, property);
1817 return getData<QRegExp>(
1841 return getData<bool>(
1851 const QtStringPropertyManagerPrivate::PropertyValueMap::const_iterator it =
1852 d_ptr->m_values.constFind(property);
1854 if (it == d_ptr->m_values.constEnd())
1859 return it.value().val;
1868 const QtStringPropertyManagerPrivate::PropertyValueMap::const_iterator it =
1869 d_ptr->m_values.constFind(property);
1871 if (it == d_ptr->m_values.constEnd())
1877 edit.setEchoMode((
EchoMode)it.value().echoMode);
1878 edit.setText(it.value().val);
1879 return edit.displayText();
1895 const QtStringPropertyManagerPrivate::PropertyValueMap::iterator it =
1896 d_ptr->m_values.find(property);
1898 if (it == d_ptr->m_values.end())
1905 if (
data.val == val)
1910 if (
data.regExp.isValid() && !
data.regExp.exactMatch(val))
1931 const QtStringPropertyManagerPrivate::PropertyValueMap::iterator it =
1932 d_ptr->m_values.find(property);
1934 if (it == d_ptr->m_values.end())
1956 const QtStringPropertyManagerPrivate::PropertyValueMap::iterator it =
1957 d_ptr->m_values.find(property);
1959 if (it == d_ptr->m_values.end())
1986 const QtStringPropertyManagerPrivate::PropertyValueMap::iterator it =
1987 d_ptr->m_values.find(property);
1989 if (it == d_ptr->m_values.end())
1996 if (
data.readOnly == readOnly)
2001 data.readOnly = readOnly;
2023 d_ptr->m_values.remove(property);
2029drawCheckBox(
bool value)
2031 QStyleOptionButton opt;
2032 opt.state |= value ? QStyle::State_On : QStyle::State_Off;
2033 opt.state |= QStyle::State_Enabled;
2034 const QStyle* style = QApplication::style();
2038 const int indicatorWidth = style->pixelMetric(QStyle::PM_IndicatorWidth, &opt);
2039 const int indicatorHeight = style->pixelMetric(QStyle::PM_IndicatorHeight, &opt);
2040 const int listViewIconSize = indicatorWidth;
2041 const int pixmapWidth = indicatorWidth;
2042 const int pixmapHeight = qMax(indicatorHeight, listViewIconSize);
2044 opt.rect = QRect(0, 0, indicatorWidth, indicatorHeight);
2045 QPixmap pixmap = QPixmap(pixmapWidth, pixmapHeight);
2046 pixmap.fill(Qt::transparent);
2049 const int xoff = (pixmapWidth > indicatorWidth) ? (pixmapWidth - indicatorWidth) / 2 : 0;
2051 (pixmapHeight > indicatorHeight) ? (pixmapHeight - indicatorHeight) / 2 : 0;
2052 QPainter painter(&pixmap);
2053 painter.translate(xoff, yoff);
2054 style->drawPrimitive(QStyle::PE_IndicatorCheckBox, &opt, &painter);
2056 return QIcon(pixmap);
2117 d_ptr->q_ptr =
this;
2140 return getValue<bool>(d_ptr->m_values, property,
false);
2146 return getData<bool>(
2156 const QtBoolPropertyManagerPrivate::PropertyValueMap::const_iterator it =
2157 d_ptr->m_values.constFind(property);
2159 if (it == d_ptr->m_values.constEnd())
2166 if (!
data.textVisible)
2171 static const QString trueText = tr(
"True");
2172 static const QString falseText = tr(
"False");
2173 return data.val ? trueText : falseText;
2182 const QtBoolPropertyManagerPrivate::PropertyValueMap::const_iterator it =
2183 d_ptr->m_values.constFind(property);
2185 if (it == d_ptr->m_values.constEnd())
2190 return it.value().val ? d_ptr->m_checkedIcon : d_ptr->m_uncheckedIcon;
2203 const QtBoolPropertyManagerPrivate::PropertyValueMap::iterator it =
2204 d_ptr->m_values.find(property);
2206 if (it == d_ptr->m_values.end())
2213 if (
data.val == val)
2228 const QtBoolPropertyManagerPrivate::PropertyValueMap::iterator it =
2229 d_ptr->m_values.find(property);
2231 if (it == d_ptr->m_values.end())
2265 d_ptr->m_values.remove(property);
2300 setSimpleMinimumData(
this, newMinVal);
2306 setSimpleMaximumData(
this, newMaxVal);
2364 d_ptr->q_ptr =
this;
2367 d_ptr->m_format = loc.dateFormat(QLocale::ShortFormat);
2390 return getValue<QDate>(d_ptr->m_values, property);
2401 return getMinimum<QDate>(d_ptr->m_values, property);
2412 return getMaximum<QDate>(d_ptr->m_values, property);
2421 const QtDatePropertyManagerPrivate::PropertyValueMap::const_iterator it =
2422 d_ptr->m_values.constFind(property);
2424 if (it == d_ptr->m_values.constEnd())
2429 return it.value().val.toString(d_ptr->m_format);
2447 setValueInRange<const QDate&, QtDatePropertyManagerPrivate, QtDatePropertyManager, const QDate>(
2454 setSubPropertyValue);
2469 setMinimumValue<
const QDate&,
2494 setMaximumValue<
const QDate&,
2525 QtProperty*,
const QDate&,
const QDate&,
const QDate&) = 0;
2526 setBorderValues<const QDate&, QtDatePropertyManagerPrivate, QtDatePropertyManager, QDate>(
2535 setSubPropertyRange);
2553 d_ptr->m_values.remove(property);
2600 d_ptr->q_ptr =
this;
2603 d_ptr->m_format = loc.timeFormat(QLocale::ShortFormat);
2626 return d_ptr->m_values.value(property, QTime());
2635 const QtTimePropertyManagerPrivate::PropertyValueMap::const_iterator it =
2636 d_ptr->m_values.constFind(property);
2638 if (it == d_ptr->m_values.constEnd())
2643 return it.value().toString(d_ptr->m_format);
2656 setSimpleValue<const QTime&, QTime, QtTimePropertyManager>(
2671 d_ptr->m_values[property] = QTime::currentTime();
2680 d_ptr->m_values.remove(property);
2724 d_ptr->q_ptr =
this;
2727 d_ptr->m_format = loc.dateFormat(QLocale::ShortFormat);
2728 d_ptr->m_format += QLatin1Char(
' ');
2729 d_ptr->m_format += loc.timeFormat(QLocale::ShortFormat);
2752 return d_ptr->m_values.value(property, QDateTime());
2761 const QtDateTimePropertyManagerPrivate::PropertyValueMap::const_iterator it =
2762 d_ptr->m_values.constFind(property);
2764 if (it == d_ptr->m_values.constEnd())
2769 return it.value().toString(d_ptr->m_format);
2782 setSimpleValue<const QDateTime&, QDateTime, QtDateTimePropertyManager>(
2797 d_ptr->m_values[property] = QDateTime::currentDateTime();
2806 d_ptr->m_values.remove(property);
2851 d_ptr->q_ptr =
this;
2874 return d_ptr->m_values.value(property, QKeySequence());
2883 const QtKeySequencePropertyManagerPrivate::PropertyValueMap::const_iterator it =
2884 d_ptr->m_values.constFind(property);
2886 if (it == d_ptr->m_values.constEnd())
2891 return it.value().toString(QKeySequence::NativeText);
2904 setSimpleValue<const QKeySequence&, QKeySequence, QtKeySequencePropertyManager>(
2919 d_ptr->m_values[property] = QKeySequence();
2928 d_ptr->m_values.remove(property);
2970 d_ptr->q_ptr =
this;
2993 return d_ptr->m_values.value(property, QChar());
3002 const QtCharPropertyManagerPrivate::PropertyValueMap::const_iterator it =
3003 d_ptr->m_values.constFind(property);
3005 if (it == d_ptr->m_values.constEnd())
3010 const QChar
c = it.value();
3011 return c.isNull() ? QString() : QString(
c);
3024 setSimpleValue<const QChar&, QChar, QtCharPropertyManager>(
3039 d_ptr->m_values[property] = QChar();
3048 d_ptr->m_values.remove(property);
3084 const QLocale loc =
m_values[prop];
3085 QLocale::Language newLanguage = loc.language();
3086 QLocale::Country newCountry = loc.country();
3087 metaEnumProvider()->indexToLocale(value, 0, &newLanguage, 0);
3088 QLocale newLoc(newLanguage, newCountry);
3089 q_ptr->setValue(prop, newLoc);
3093 const QLocale loc =
m_values[prop];
3094 QLocale::Language newLanguage = loc.language();
3095 QLocale::Country newCountry = loc.country();
3096 metaEnumProvider()->indexToLocale(
3101 QLocale newLoc(newLanguage, newCountry);
3102 q_ptr->setValue(prop, newLoc);
3159 d_ptr->q_ptr =
this;
3162 connect(d_ptr->m_enumPropertyManager,
3167 connect(d_ptr->m_enumPropertyManager,
3195 return d_ptr->m_enumPropertyManager;
3209 return d_ptr->m_values.
value(property, QLocale());
3218 const QtLocalePropertyManagerPrivate::PropertyValueMap::const_iterator it =
3219 d_ptr->m_values.constFind(property);
3221 if (it == d_ptr->m_values.constEnd())
3226 QLocale loc = it.value();
3230 metaEnumProvider()->localeToIndex(loc.language(), loc.country(), &langIdx, &countryIdx);
3231 QString
str = tr(
"%1, %2")
3232 .arg(metaEnumProvider()->languageEnumNames().at(langIdx))
3233 .arg(metaEnumProvider()->countryEnumNames(loc.language()).at(countryIdx));
3248 const QtLocalePropertyManagerPrivate::PropertyValueMap::iterator it =
3249 d_ptr->m_values.find(property);
3251 if (it == d_ptr->m_values.end())
3256 const QLocale loc = it.value();
3267 metaEnumProvider()->localeToIndex(val.language(), val.country(), &langIdx, &countryIdx);
3269 if (loc.language() != val.language())
3271 d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToLanguage.value(property),
3273 d_ptr->m_enumPropertyManager->setEnumNames(
3274 d_ptr->m_propertyToCountry.value(property),
3275 metaEnumProvider()->countryEnumNames(val.language()));
3278 d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToCountry.value(property), countryIdx);
3291 d_ptr->m_values[property] = val;
3295 metaEnumProvider()->localeToIndex(val.language(), val.country(), &langIdx, &countryIdx);
3297 QtProperty* languageProp = d_ptr->m_enumPropertyManager->addProperty();
3299 d_ptr->m_enumPropertyManager->setEnumNames(languageProp,
3300 metaEnumProvider()->languageEnumNames());
3301 d_ptr->m_enumPropertyManager->setValue(languageProp, langIdx);
3302 d_ptr->m_propertyToLanguage[property] = languageProp;
3303 d_ptr->m_languageToProperty[languageProp] = property;
3306 QtProperty* countryProp = d_ptr->m_enumPropertyManager->addProperty();
3308 d_ptr->m_enumPropertyManager->setEnumNames(
3309 countryProp, metaEnumProvider()->countryEnumNames(val.language()));
3310 d_ptr->m_enumPropertyManager->setValue(countryProp, countryIdx);
3311 d_ptr->m_propertyToCountry[property] = countryProp;
3312 d_ptr->m_countryToProperty[countryProp] = property;
3322 QtProperty* languageProp = d_ptr->m_propertyToLanguage[property];
3326 d_ptr->m_languageToProperty.remove(languageProp);
3327 delete languageProp;
3330 d_ptr->m_propertyToLanguage.remove(property);
3332 QtProperty* countryProp = d_ptr->m_propertyToCountry[property];
3336 d_ptr->m_countryToProperty.remove(countryProp);
3340 d_ptr->m_propertyToCountry.remove(property);
3342 d_ptr->m_values.remove(property);
3374 q_ptr->setValue(xprop, p);
3380 q_ptr->setValue(yprop, p);
3435 d_ptr->q_ptr =
this;
3438 connect(d_ptr->m_intPropertyManager,
3442 connect(d_ptr->m_intPropertyManager,
3470 return d_ptr->m_intPropertyManager;
3484 return d_ptr->m_values.
value(property, QPoint());
3493 const QtPointPropertyManagerPrivate::PropertyValueMap::const_iterator it =
3494 d_ptr->m_values.constFind(property);
3496 if (it == d_ptr->m_values.constEnd())
3501 const QPoint v = it.value();
3502 return QString(tr(
"(%1, %2)").arg(QString::number(v.x())).arg(QString::number(v.y())));
3516 const QtPointPropertyManagerPrivate::PropertyValueMap::iterator it =
3517 d_ptr->m_values.find(property);
3519 if (it == d_ptr->m_values.end())
3524 if (it.value() == val)
3530 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToX[property], val.x());
3531 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToY[property], val.y());
3543 d_ptr->m_values[property] = QPoint(0, 0);
3545 QtProperty* xProp = d_ptr->m_intPropertyManager->addProperty();
3547 d_ptr->m_intPropertyManager->setValue(xProp, 0);
3548 d_ptr->m_propertyToX[property] = xProp;
3549 d_ptr->m_xToProperty[xProp] = property;
3552 QtProperty* yProp = d_ptr->m_intPropertyManager->addProperty();
3554 d_ptr->m_intPropertyManager->setValue(yProp, 0);
3555 d_ptr->m_propertyToY[property] = yProp;
3556 d_ptr->m_yToProperty[yProp] = property;
3566 QtProperty* xProp = d_ptr->m_propertyToX[property];
3570 d_ptr->m_xToProperty.remove(xProp);
3574 d_ptr->m_propertyToX.remove(property);
3576 QtProperty* yProp = d_ptr->m_propertyToY[property];
3580 d_ptr->m_yToProperty.remove(yProp);
3584 d_ptr->m_propertyToY.remove(property);
3586 d_ptr->m_values.remove(property);
3628 q_ptr->setValue(prop, p);
3634 q_ptr->setValue(prop, p);
3700 d_ptr->q_ptr =
this;
3703 connect(d_ptr->m_doublePropertyManager,
3706 SLOT(slotDoubleChanged(
QtProperty*,
double)));
3707 connect(d_ptr->m_doublePropertyManager,
3735 return d_ptr->m_doublePropertyManager;
3749 return getValue<QPointF>(d_ptr->m_values, property);
3760 return getData<int>(
3770 const QtPointFPropertyManagerPrivate::PropertyValueMap::const_iterator it =
3771 d_ptr->m_values.constFind(property);
3773 if (it == d_ptr->m_values.constEnd())
3778 const QPointF v = it.value().val;
3779 const int dec = it.value().decimals;
3781 tr(
"(%1, %2)").arg(QString::number(v.x(),
'f', dec)).arg(QString::number(v.y(),
'f', dec)));
3795 const QtPointFPropertyManagerPrivate::PropertyValueMap::iterator it =
3796 d_ptr->m_values.find(property);
3798 if (it == d_ptr->m_values.end())
3803 if (it.value().val == val)
3808 it.value().val = val;
3809 d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToX[property], val.x());
3810 d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToY[property], val.y());
3828 const QtPointFPropertyManagerPrivate::PropertyValueMap::iterator it =
3829 d_ptr->m_values.find(property);
3831 if (it == d_ptr->m_values.end())
3847 if (
data.decimals == prec)
3852 data.decimals = prec;
3853 d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToX[property], prec);
3854 d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToY[property], prec);
3869 QtProperty* xProp = d_ptr->m_doublePropertyManager->addProperty();
3871 d_ptr->m_doublePropertyManager->setDecimals(xProp,
decimals(property));
3872 d_ptr->m_doublePropertyManager->setValue(xProp, 0);
3873 d_ptr->m_propertyToX[property] = xProp;
3874 d_ptr->m_xToProperty[xProp] = property;
3877 QtProperty* yProp = d_ptr->m_doublePropertyManager->addProperty();
3879 d_ptr->m_doublePropertyManager->setDecimals(yProp,
decimals(property));
3880 d_ptr->m_doublePropertyManager->setValue(yProp, 0);
3881 d_ptr->m_propertyToY[property] = yProp;
3882 d_ptr->m_yToProperty[yProp] = property;
3892 QtProperty* xProp = d_ptr->m_propertyToX[property];
3896 d_ptr->m_xToProperty.remove(xProp);
3900 d_ptr->m_propertyToX.remove(property);
3902 QtProperty* yProp = d_ptr->m_propertyToY[property];
3906 d_ptr->m_yToProperty.remove(yProp);
3910 d_ptr->m_propertyToY.remove(property);
3912 d_ptr->m_values.remove(property);
3925 void setRange(
QtProperty* property,
const QSize& minVal,
const QSize& maxVal,
const QSize& val);
3952 setSizeMinimumData(
this, newMinVal);
3958 setSizeMaximumData(
this, newMaxVal);
3981 q_ptr->setValue(prop, s);
3987 q_ptr->setValue(prop, s);
4015 const QSize& minVal,
4016 const QSize& maxVal,
4082 d_ptr->q_ptr =
this;
4085 connect(d_ptr->m_intPropertyManager,
4089 connect(d_ptr->m_intPropertyManager,
4117 return d_ptr->m_intPropertyManager;
4131 return getValue<QSize>(d_ptr->m_values, property);
4142 return getMinimum<QSize>(d_ptr->m_values, property);
4153 return getMaximum<QSize>(d_ptr->m_values, property);
4162 const QtSizePropertyManagerPrivate::PropertyValueMap::const_iterator it =
4163 d_ptr->m_values.constFind(property);
4165 if (it == d_ptr->m_values.constEnd())
4170 const QSize v = it.value().val;
4171 return QString(tr(
"%1 x %2").arg(QString::number(v.width())).arg(QString::number(v.height())));
4188 setValueInRange<const QSize&, QtSizePropertyManagerPrivate, QtSizePropertyManager, const QSize>(
4210 setBorderValue<
const QSize&,
4239 setBorderValue<
const QSize&,
4273 setBorderValues<const QSize&, QtSizePropertyManagerPrivate, QtSizePropertyManager, QSize>(
4293 QtProperty* wProp = d_ptr->m_intPropertyManager->addProperty();
4295 d_ptr->m_intPropertyManager->setValue(wProp, 0);
4296 d_ptr->m_intPropertyManager->setMinimum(wProp, 0);
4297 d_ptr->m_propertyToW[property] = wProp;
4298 d_ptr->m_wToProperty[wProp] = property;
4301 QtProperty* hProp = d_ptr->m_intPropertyManager->addProperty();
4303 d_ptr->m_intPropertyManager->setValue(hProp, 0);
4304 d_ptr->m_intPropertyManager->setMinimum(hProp, 0);
4305 d_ptr->m_propertyToH[property] = hProp;
4306 d_ptr->m_hToProperty[hProp] = property;
4316 QtProperty* wProp = d_ptr->m_propertyToW[property];
4320 d_ptr->m_wToProperty.remove(wProp);
4324 d_ptr->m_propertyToW.remove(property);
4326 QtProperty* hProp = d_ptr->m_propertyToH[property];
4330 d_ptr->m_hToProperty.remove(hProp);
4334 d_ptr->m_propertyToH.remove(property);
4336 d_ptr->m_values.remove(property);
4350 setRange(
QtProperty* property,
const QSizeF& minVal,
const QSizeF& maxVal,
const QSizeF& val);
4379 setSizeMinimumData(
this, newMinVal);
4385 setSizeMaximumData(
this, newMaxVal);
4408 q_ptr->setValue(prop, s);
4414 q_ptr->setValue(prop, s);
4442 const QSizeF& minVal,
4443 const QSizeF& maxVal,
4517 d_ptr->q_ptr =
this;
4520 connect(d_ptr->m_doublePropertyManager,
4523 SLOT(slotDoubleChanged(
QtProperty*,
double)));
4524 connect(d_ptr->m_doublePropertyManager,
4552 return d_ptr->m_doublePropertyManager;
4566 return getValue<QSizeF>(d_ptr->m_values, property);
4577 return getData<int>(
4589 return getMinimum<QSizeF>(d_ptr->m_values, property);
4600 return getMaximum<QSizeF>(d_ptr->m_values, property);
4609 const QtSizeFPropertyManagerPrivate::PropertyValueMap::const_iterator it =
4610 d_ptr->m_values.constFind(property);
4612 if (it == d_ptr->m_values.constEnd())
4617 const QSizeF v = it.value().val;
4618 const int dec = it.value().decimals;
4619 return QString(tr(
"%1 x %2")
4620 .arg(QString::number(v.width(),
'f', dec))
4621 .arg(QString::number(v.height(),
'f', dec)));
4638 setValueInRange<const QSizeF&, QtSizeFPropertyManagerPrivate, QtSizeFPropertyManager, QSizeF>(
4660 const QtSizeFPropertyManagerPrivate::PropertyValueMap::iterator it =
4661 d_ptr->m_values.find(property);
4663 if (it == d_ptr->m_values.end())
4679 if (
data.decimals == prec)
4684 data.decimals = prec;
4685 d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToW[property], prec);
4686 d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToH[property], prec);
4705 setBorderValue<
const QSizeF&,
4734 setBorderValue<
const QSizeF&,
4768 setBorderValues<const QSizeF&, QtSizeFPropertyManagerPrivate, QtSizeFPropertyManager, QSizeF>(
4788 QtProperty* wProp = d_ptr->m_doublePropertyManager->addProperty();
4790 d_ptr->m_doublePropertyManager->setDecimals(wProp,
decimals(property));
4791 d_ptr->m_doublePropertyManager->setValue(wProp, 0);
4792 d_ptr->m_doublePropertyManager->setMinimum(wProp, 0);
4793 d_ptr->m_propertyToW[property] = wProp;
4794 d_ptr->m_wToProperty[wProp] = property;
4797 QtProperty* hProp = d_ptr->m_doublePropertyManager->addProperty();
4799 d_ptr->m_doublePropertyManager->setDecimals(hProp,
decimals(property));
4800 d_ptr->m_doublePropertyManager->setValue(hProp, 0);
4801 d_ptr->m_doublePropertyManager->setMinimum(hProp, 0);
4802 d_ptr->m_propertyToH[property] = hProp;
4803 d_ptr->m_hToProperty[hProp] = property;
4813 QtProperty* wProp = d_ptr->m_propertyToW[property];
4817 d_ptr->m_wToProperty.remove(wProp);
4821 d_ptr->m_propertyToW.remove(property);
4823 QtProperty* hProp = d_ptr->m_propertyToH[property];
4827 d_ptr->m_hToProperty.remove(hProp);
4831 d_ptr->m_propertyToH.remove(property);
4833 d_ptr->m_values.remove(property);
4880 q_ptr->setValue(prop, r);
4886 q_ptr->setValue(prop, r);
4894 if (!
data.constraint.isNull() &&
4895 data.constraint.x() +
data.constraint.width() < r.x() + r.width())
4897 r.moveLeft(
data.constraint.left() +
data.constraint.width() - r.width());
4900 q_ptr->setValue(prop, r);
4908 if (!
data.constraint.isNull() &&
4909 data.constraint.y() +
data.constraint.height() < r.y() + r.height())
4911 r.moveTop(
data.constraint.top() +
data.constraint.height() - r.height());
4914 q_ptr->setValue(prop, r);
4945 const QRect& constraint,
4948 const bool isNull = constraint.isNull();
4949 const int left = isNull ? INT_MIN : constraint.left();
4950 const int right = isNull ? INT_MAX : constraint.left() + constraint.width();
4951 const int top = isNull ? INT_MIN : constraint.top();
4952 const int bottom = isNull ? INT_MAX : constraint.top() + constraint.height();
4953 const int width = isNull ? INT_MAX : constraint.width();
4954 const int height = isNull ? INT_MAX : constraint.height();
5020 d_ptr->q_ptr =
this;
5023 connect(d_ptr->m_intPropertyManager,
5027 connect(d_ptr->m_intPropertyManager,
5055 return d_ptr->m_intPropertyManager;
5069 return getValue<QRect>(d_ptr->m_values, property);
5080 return getData<QRect>(
5090 const QtRectPropertyManagerPrivate::PropertyValueMap::const_iterator it =
5091 d_ptr->m_values.constFind(property);
5093 if (it == d_ptr->m_values.constEnd())
5098 const QRect v = it.value().val;
5099 return QString(tr(
"[(%1, %2), %3 x %4]")
5100 .arg(QString::number(v.x()))
5101 .arg(QString::number(v.y()))
5102 .arg(QString::number(v.width()))
5103 .arg(QString::number(v.height())));
5121 const QtRectPropertyManagerPrivate::PropertyValueMap::iterator it =
5122 d_ptr->m_values.find(property);
5124 if (it == d_ptr->m_values.end())
5131 QRect newRect = val.normalized();
5133 if (!
data.constraint.isNull() && !
data.constraint.contains(newRect))
5135 const QRect r1 =
data.constraint;
5136 const QRect r2 = newRect;
5137 newRect.setLeft(qMax(r1.left(), r2.left()));
5138 newRect.setRight(qMin(r1.right(), r2.right()));
5139 newRect.setTop(qMax(r1.top(), r2.top()));
5140 newRect.setBottom(qMin(r1.bottom(), r2.bottom()));
5142 if (newRect.width() < 0 || newRect.height() < 0)
5148 if (
data.val == newRect)
5156 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToX[property], newRect.x());
5157 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToY[property], newRect.y());
5158 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToW[property], newRect.width());
5159 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToH[property], newRect.height());
5178 const QtRectPropertyManagerPrivate::PropertyValueMap::iterator it =
5179 d_ptr->m_values.find(property);
5181 if (it == d_ptr->m_values.end())
5188 QRect newConstraint =
constraint.normalized();
5190 if (
data.constraint == newConstraint)
5195 const QRect oldVal =
data.val;
5197 data.constraint = newConstraint;
5199 if (!
data.constraint.isNull() && !
data.constraint.contains(oldVal))
5201 QRect r1 =
data.constraint;
5202 QRect r2 =
data.val;
5204 if (r2.width() > r1.width())
5206 r2.setWidth(r1.width());
5209 if (r2.height() > r1.height())
5211 r2.setHeight(r1.height());
5214 if (r2.left() < r1.left())
5216 r2.moveLeft(r1.left());
5218 else if (r2.right() > r1.right())
5220 r2.moveRight(r1.right());
5223 if (r2.top() < r1.top())
5225 r2.moveTop(r1.top());
5227 else if (r2.bottom() > r1.bottom())
5229 r2.moveBottom(r1.bottom());
5239 d_ptr->setConstraint(property,
data.constraint,
data.val);
5241 if (
data.val == oldVal)
5258 QtProperty* xProp = d_ptr->m_intPropertyManager->addProperty();
5260 d_ptr->m_intPropertyManager->setValue(xProp, 0);
5261 d_ptr->m_propertyToX[property] = xProp;
5262 d_ptr->m_xToProperty[xProp] = property;
5265 QtProperty* yProp = d_ptr->m_intPropertyManager->addProperty();
5267 d_ptr->m_intPropertyManager->setValue(yProp, 0);
5268 d_ptr->m_propertyToY[property] = yProp;
5269 d_ptr->m_yToProperty[yProp] = property;
5272 QtProperty* wProp = d_ptr->m_intPropertyManager->addProperty();
5274 d_ptr->m_intPropertyManager->setValue(wProp, 0);
5275 d_ptr->m_intPropertyManager->setMinimum(wProp, 0);
5276 d_ptr->m_propertyToW[property] = wProp;
5277 d_ptr->m_wToProperty[wProp] = property;
5280 QtProperty* hProp = d_ptr->m_intPropertyManager->addProperty();
5282 d_ptr->m_intPropertyManager->setValue(hProp, 0);
5283 d_ptr->m_intPropertyManager->setMinimum(hProp, 0);
5284 d_ptr->m_propertyToH[property] = hProp;
5285 d_ptr->m_hToProperty[hProp] = property;
5295 QtProperty* xProp = d_ptr->m_propertyToX[property];
5299 d_ptr->m_xToProperty.remove(xProp);
5303 d_ptr->m_propertyToX.remove(property);
5305 QtProperty* yProp = d_ptr->m_propertyToY[property];
5309 d_ptr->m_yToProperty.remove(yProp);
5313 d_ptr->m_propertyToY.remove(property);
5315 QtProperty* wProp = d_ptr->m_propertyToW[property];
5319 d_ptr->m_wToProperty.remove(wProp);
5323 d_ptr->m_propertyToW.remove(property);
5325 QtProperty* hProp = d_ptr->m_propertyToH[property];
5329 d_ptr->m_hToProperty.remove(hProp);
5333 d_ptr->m_propertyToH.remove(property);
5335 d_ptr->m_values.remove(property);
5383 q_ptr->setValue(prop, r);
5389 q_ptr->setValue(prop, r);
5394 QRectF r =
data.val;
5397 if (!
data.constraint.isNull() &&
5398 data.constraint.x() +
data.constraint.width() < r.x() + r.width())
5400 r.moveLeft(
data.constraint.left() +
data.constraint.width() - r.width());
5403 q_ptr->setValue(prop, r);
5408 QRectF r =
data.val;
5411 if (!
data.constraint.isNull() &&
5412 data.constraint.y() +
data.constraint.height() < r.y() + r.height())
5414 r.moveTop(
data.constraint.top() +
data.constraint.height() - r.height());
5417 q_ptr->setValue(prop, r);
5448 const QRectF& constraint,
5451 const bool isNull = constraint.isNull();
5452 const float left = isNull ? FLT_MIN : constraint.left();
5453 const float right = isNull ? FLT_MAX : constraint.left() + constraint.width();
5454 const float top = isNull ? FLT_MIN : constraint.top();
5455 const float bottom = isNull ? FLT_MAX : constraint.top() + constraint.height();
5456 const float width = isNull ? FLT_MAX : constraint.width();
5457 const float height = isNull ? FLT_MAX : constraint.height();
5533 d_ptr->q_ptr =
this;
5536 connect(d_ptr->m_doublePropertyManager,
5539 SLOT(slotDoubleChanged(
QtProperty*,
double)));
5540 connect(d_ptr->m_doublePropertyManager,
5568 return d_ptr->m_doublePropertyManager;
5582 return getValue<QRectF>(d_ptr->m_values, property);
5593 return getData<int>(
5605 return getData<QRectF>(
5615 const QtRectFPropertyManagerPrivate::PropertyValueMap::const_iterator it =
5616 d_ptr->m_values.constFind(property);
5618 if (it == d_ptr->m_values.constEnd())
5623 const QRectF v = it.value().val;
5624 const int dec = it.value().decimals;
5625 return QString(tr(
"[(%1, %2), %3 x %4]")
5626 .arg(QString::number(v.x(),
'f', dec))
5627 .arg(QString::number(v.y(),
'f', dec))
5628 .arg(QString::number(v.width(),
'f', dec))
5629 .arg(QString::number(v.height(),
'f', dec)));
5647 const QtRectFPropertyManagerPrivate::PropertyValueMap::iterator it =
5648 d_ptr->m_values.find(property);
5650 if (it == d_ptr->m_values.end())
5657 QRectF newRect = val.normalized();
5659 if (!
data.constraint.isNull() && !
data.constraint.contains(newRect))
5661 const QRectF r1 =
data.constraint;
5662 const QRectF r2 = newRect;
5663 newRect.setLeft(qMax(r1.left(), r2.left()));
5664 newRect.setRight(qMin(r1.right(), r2.right()));
5665 newRect.setTop(qMax(r1.top(), r2.top()));
5666 newRect.setBottom(qMin(r1.bottom(), r2.bottom()));
5668 if (newRect.width() < 0 || newRect.height() < 0)
5674 if (
data.val == newRect)
5682 d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToX[property], newRect.x());
5683 d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToY[property], newRect.y());
5684 d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToW[property], newRect.width());
5685 d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToH[property], newRect.height());
5704 const QtRectFPropertyManagerPrivate::PropertyValueMap::iterator it =
5705 d_ptr->m_values.find(property);
5707 if (it == d_ptr->m_values.end())
5714 QRectF newConstraint =
constraint.normalized();
5716 if (
data.constraint == newConstraint)
5721 const QRectF oldVal =
data.val;
5723 data.constraint = newConstraint;
5725 if (!
data.constraint.isNull() && !
data.constraint.contains(oldVal))
5727 QRectF r1 =
data.constraint;
5728 QRectF r2 =
data.val;
5730 if (r2.width() > r1.width())
5732 r2.setWidth(r1.width());
5735 if (r2.height() > r1.height())
5737 r2.setHeight(r1.height());
5740 if (r2.left() < r1.left())
5742 r2.moveLeft(r1.left());
5744 else if (r2.right() > r1.right())
5746 r2.moveRight(r1.right());
5749 if (r2.top() < r1.top())
5751 r2.moveTop(r1.top());
5753 else if (r2.bottom() > r1.bottom())
5755 r2.moveBottom(r1.bottom());
5765 d_ptr->setConstraint(property,
data.constraint,
data.val);
5767 if (
data.val == oldVal)
5788 const QtRectFPropertyManagerPrivate::PropertyValueMap::iterator it =
5789 d_ptr->m_values.find(property);
5791 if (it == d_ptr->m_values.end())
5807 if (
data.decimals == prec)
5812 data.decimals = prec;
5813 d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToX[property], prec);
5814 d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToY[property], prec);
5815 d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToW[property], prec);
5816 d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToH[property], prec);
5831 QtProperty* xProp = d_ptr->m_doublePropertyManager->addProperty();
5833 d_ptr->m_doublePropertyManager->setDecimals(xProp,
decimals(property));
5834 d_ptr->m_doublePropertyManager->setValue(xProp, 0);
5835 d_ptr->m_propertyToX[property] = xProp;
5836 d_ptr->m_xToProperty[xProp] = property;
5839 QtProperty* yProp = d_ptr->m_doublePropertyManager->addProperty();
5841 d_ptr->m_doublePropertyManager->setDecimals(yProp,
decimals(property));
5842 d_ptr->m_doublePropertyManager->setValue(yProp, 0);
5843 d_ptr->m_propertyToY[property] = yProp;
5844 d_ptr->m_yToProperty[yProp] = property;
5847 QtProperty* wProp = d_ptr->m_doublePropertyManager->addProperty();
5849 d_ptr->m_doublePropertyManager->setDecimals(wProp,
decimals(property));
5850 d_ptr->m_doublePropertyManager->setValue(wProp, 0);
5851 d_ptr->m_doublePropertyManager->setMinimum(wProp, 0);
5852 d_ptr->m_propertyToW[property] = wProp;
5853 d_ptr->m_wToProperty[wProp] = property;
5856 QtProperty* hProp = d_ptr->m_doublePropertyManager->addProperty();
5858 d_ptr->m_doublePropertyManager->setDecimals(hProp,
decimals(property));
5859 d_ptr->m_doublePropertyManager->setValue(hProp, 0);
5860 d_ptr->m_doublePropertyManager->setMinimum(hProp, 0);
5861 d_ptr->m_propertyToH[property] = hProp;
5862 d_ptr->m_hToProperty[hProp] = property;
5872 QtProperty* xProp = d_ptr->m_propertyToX[property];
5876 d_ptr->m_xToProperty.remove(xProp);
5880 d_ptr->m_propertyToX.remove(property);
5882 QtProperty* yProp = d_ptr->m_propertyToY[property];
5886 d_ptr->m_yToProperty.remove(yProp);
5890 d_ptr->m_propertyToY.remove(property);
5892 QtProperty* wProp = d_ptr->m_propertyToW[property];
5896 d_ptr->m_wToProperty.remove(wProp);
5900 d_ptr->m_propertyToW.remove(property);
5902 QtProperty* hProp = d_ptr->m_propertyToH[property];
5906 d_ptr->m_hToProperty.remove(hProp);
5910 d_ptr->m_propertyToH.remove(property);
5912 d_ptr->m_values.remove(property);
5996 d_ptr->q_ptr =
this;
6020 return getValue<int>(d_ptr->m_values, property, -1);
6031 return getData<QStringList>(
6043 return getData<QMap<int, QIcon>>(d_ptr->m_values,
6046 QMap<int, QIcon>());
6055 const QtEnumPropertyManagerPrivate::PropertyValueMap::const_iterator it =
6056 d_ptr->m_values.constFind(property);
6058 if (it == d_ptr->m_values.constEnd())
6065 const int v =
data.val;
6067 if (v >= 0 && v <
data.enumNames.count())
6069 return data.enumNames.at(v);
6081 const QtEnumPropertyManagerPrivate::PropertyValueMap::const_iterator it =
6082 d_ptr->m_values.constFind(property);
6084 if (it == d_ptr->m_values.constEnd())
6091 const int v =
data.val;
6092 return data.enumIcons.value(v);
6108 const QtEnumPropertyManagerPrivate::PropertyValueMap::iterator it =
6109 d_ptr->m_values.find(property);
6111 if (it == d_ptr->m_values.end())
6118 if (val >=
data.enumNames.count())
6123 if (val < 0 &&
data.enumNames.count() > 0)
6133 if (
data.val == val)
6159 const QtEnumPropertyManagerPrivate::PropertyValueMap::iterator it =
6160 d_ptr->m_values.find(property);
6162 if (it == d_ptr->m_values.end())
6202 const QtEnumPropertyManagerPrivate::PropertyValueMap::iterator it =
6203 d_ptr->m_values.find(property);
6205 if (it == d_ptr->m_values.end())
6232 d_ptr->m_values.remove(property);
6278 while (itProp.hasNext())
6295 q_ptr->setValue(prop, v);
6308 if (flagProperty == 0)
6374 d_ptr->q_ptr =
this;
6377 connect(d_ptr->m_boolPropertyManager,
6381 connect(d_ptr->m_boolPropertyManager,
6409 return d_ptr->m_boolPropertyManager;
6423 return getValue<int>(d_ptr->m_values, property, 0);
6434 return getData<QStringList>(
6444 const QtFlagPropertyManagerPrivate::PropertyValueMap::const_iterator it =
6445 d_ptr->m_values.constFind(property);
6447 if (it == d_ptr->m_values.constEnd())
6456 const QChar bar = QLatin1Char(
'|');
6457 const QStringList::const_iterator fncend =
data.flagNames.constEnd();
6459 for (QStringList::const_iterator it =
data.flagNames.constBegin(); it != fncend; ++it)
6461 if (
data.val & (1 << level))
6493 const QtFlagPropertyManagerPrivate::PropertyValueMap::iterator it =
6494 d_ptr->m_values.find(property);
6496 if (it == d_ptr->m_values.end())
6503 if (
data.val == val)
6508 if (val > (1 <<
data.flagNames.count()) - 1)
6522 QListIterator<QtProperty*> itProp(d_ptr->m_propertyToFlags[property]);
6525 while (itProp.hasNext())
6531 d_ptr->m_boolPropertyManager->setValue(prop, val & (1 << level));
6551 const QtFlagPropertyManagerPrivate::PropertyValueMap::iterator it =
6552 d_ptr->m_values.find(property);
6554 if (it == d_ptr->m_values.end())
6571 QListIterator<QtProperty*> itProp(d_ptr->m_propertyToFlags[property]);
6573 while (itProp.hasNext())
6580 d_ptr->m_flagToProperty.remove(prop);
6584 d_ptr->m_propertyToFlags[property].clear();
6588 while (itFlag.hasNext())
6590 const QString flagName = itFlag.next();
6591 QtProperty* prop = d_ptr->m_boolPropertyManager->addProperty();
6593 property->addSubProperty(prop);
6594 d_ptr->m_propertyToFlags[property].append(prop);
6595 d_ptr->m_flagToProperty[prop] = property;
6612 d_ptr->m_propertyToFlags[property] = QList<QtProperty*>();
6621 QListIterator<QtProperty*> itProp(d_ptr->m_propertyToFlags[property]);
6623 while (itProp.hasNext())
6630 d_ptr->m_flagToProperty.remove(prop);
6634 d_ptr->m_propertyToFlags.remove(property);
6636 d_ptr->m_values.remove(property);
6679 sp.setHorizontalStretch(value);
6680 q_ptr->setValue(prop, sp);
6685 sp.setVerticalStretch(value);
6686 q_ptr->setValue(prop, sp);
6696 sp.setHorizontalPolicy(metaEnumProvider()->indexToSizePolicy(value));
6697 q_ptr->setValue(prop, sp);
6702 sp.setVerticalPolicy(metaEnumProvider()->indexToSizePolicy(value));
6703 q_ptr->setValue(prop, sp);
6772 d_ptr->q_ptr =
this;
6775 connect(d_ptr->m_intPropertyManager,
6780 connect(d_ptr->m_enumPropertyManager,
6785 connect(d_ptr->m_intPropertyManager,
6789 connect(d_ptr->m_enumPropertyManager,
6817 return d_ptr->m_intPropertyManager;
6833 return d_ptr->m_enumPropertyManager;
6847 return d_ptr->m_values.
value(property, QSizePolicy());
6856 const QtSizePolicyPropertyManagerPrivate::PropertyValueMap::const_iterator it =
6857 d_ptr->m_values.constFind(property);
6859 if (it == d_ptr->m_values.constEnd())
6864 const QSizePolicy sp = it.value();
6869 const QString hPolicy = hIndex != -1 ? mep->
policyEnumNames().at(hIndex) : tr(
"<Invalid>");
6870 const QString vPolicy = vIndex != -1 ? mep->
policyEnumNames().at(vIndex) : tr(
"<Invalid>");
6871 const QString
str = tr(
"[%1, %2, %3, %4]")
6872 .arg(hPolicy, vPolicy)
6873 .arg(sp.horizontalStretch())
6874 .arg(sp.verticalStretch());
6889 const QtSizePolicyPropertyManagerPrivate::PropertyValueMap::iterator it =
6890 d_ptr->m_values.find(property);
6892 if (it == d_ptr->m_values.end())
6897 if (it.value() == val)
6904 d_ptr->m_enumPropertyManager->setValue(
6905 d_ptr->m_propertyToHPolicy[property],
6906 metaEnumProvider()->sizePolicyToIndex(val.horizontalPolicy()));
6907 d_ptr->m_enumPropertyManager->setValue(
6908 d_ptr->m_propertyToVPolicy[property],
6909 metaEnumProvider()->sizePolicyToIndex(val.verticalPolicy()));
6910 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToHStretch[property],
6911 val.horizontalStretch());
6912 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToVStretch[property],
6913 val.verticalStretch());
6926 d_ptr->m_values[property] = val;
6928 QtProperty* hPolicyProp = d_ptr->m_enumPropertyManager->addProperty();
6930 d_ptr->m_enumPropertyManager->setEnumNames(hPolicyProp, metaEnumProvider()->policyEnumNames());
6931 d_ptr->m_enumPropertyManager->setValue(
6932 hPolicyProp, metaEnumProvider()->sizePolicyToIndex(val.horizontalPolicy()));
6933 d_ptr->m_propertyToHPolicy[property] = hPolicyProp;
6934 d_ptr->m_hPolicyToProperty[hPolicyProp] = property;
6937 QtProperty* vPolicyProp = d_ptr->m_enumPropertyManager->addProperty();
6939 d_ptr->m_enumPropertyManager->setEnumNames(vPolicyProp, metaEnumProvider()->policyEnumNames());
6940 d_ptr->m_enumPropertyManager->setValue(
6941 vPolicyProp, metaEnumProvider()->sizePolicyToIndex(val.verticalPolicy()));
6942 d_ptr->m_propertyToVPolicy[property] = vPolicyProp;
6943 d_ptr->m_vPolicyToProperty[vPolicyProp] = property;
6946 QtProperty* hStretchProp = d_ptr->m_intPropertyManager->addProperty();
6948 d_ptr->m_intPropertyManager->setValue(hStretchProp, val.horizontalStretch());
6949 d_ptr->m_intPropertyManager->setRange(hStretchProp, 0, 0xff);
6950 d_ptr->m_propertyToHStretch[property] = hStretchProp;
6951 d_ptr->m_hStretchToProperty[hStretchProp] = property;
6954 QtProperty* vStretchProp = d_ptr->m_intPropertyManager->addProperty();
6956 d_ptr->m_intPropertyManager->setValue(vStretchProp, val.verticalStretch());
6957 d_ptr->m_intPropertyManager->setRange(vStretchProp, 0, 0xff);
6958 d_ptr->m_propertyToVStretch[property] = vStretchProp;
6959 d_ptr->m_vStretchToProperty[vStretchProp] = property;
6969 QtProperty* hPolicyProp = d_ptr->m_propertyToHPolicy[property];
6973 d_ptr->m_hPolicyToProperty.remove(hPolicyProp);
6977 d_ptr->m_propertyToHPolicy.remove(property);
6979 QtProperty* vPolicyProp = d_ptr->m_propertyToVPolicy[property];
6983 d_ptr->m_vPolicyToProperty.remove(vPolicyProp);
6987 d_ptr->m_propertyToVPolicy.remove(property);
6989 QtProperty* hStretchProp = d_ptr->m_propertyToHStretch[property];
6993 d_ptr->m_hStretchToProperty.remove(hStretchProp);
6994 delete hStretchProp;
6997 d_ptr->m_propertyToHStretch.remove(property);
6999 QtProperty* vStretchProp = d_ptr->m_propertyToVStretch[property];
7003 d_ptr->m_vStretchToProperty.remove(vStretchProp);
7004 delete vStretchProp;
7007 d_ptr->m_propertyToVStretch.remove(property);
7009 d_ptr->m_values.remove(property);
7020Q_GLOBAL_STATIC(QFontDatabase, fontDatabase)
7081 f.setPointSize(value);
7082 q_ptr->setValue(prop, f);
7098 q_ptr->setValue(prop, f);
7114 q_ptr->setValue(prop, f);
7120 q_ptr->setValue(prop, f);
7125 f.setUnderline(value);
7126 q_ptr->setValue(prop, f);
7131 f.setStrikeOut(value);
7132 q_ptr->setValue(prop, f);
7137 f.setKerning(value);
7138 q_ptr->setValue(prop, f);
7205 using PropertyPropertyMap = QMap<const QtProperty*, QtProperty*>;
7215 for (PropertyPropertyMap::const_iterator it =
m_propertyToFamily.constBegin(); it != cend;
7273 d_ptr->q_ptr =
this;
7274 QObject::connect(qApp, SIGNAL(fontDatabaseChanged()),
this, SLOT(slotFontDatabaseChanged()));
7277 connect(d_ptr->m_intPropertyManager,
7282 connect(d_ptr->m_enumPropertyManager,
7287 connect(d_ptr->m_boolPropertyManager,
7292 connect(d_ptr->m_intPropertyManager,
7296 connect(d_ptr->m_enumPropertyManager,
7300 connect(d_ptr->m_boolPropertyManager,
7327 return d_ptr->m_intPropertyManager;
7342 return d_ptr->m_enumPropertyManager;
7358 return d_ptr->m_boolPropertyManager;
7373 return d_ptr->m_values.
value(property, QFont());
7382 const QtFontPropertyManagerPrivate::PropertyValueMap::const_iterator it =
7383 d_ptr->m_values.constFind(property);
7385 if (it == d_ptr->m_values.constEnd())
7399 const QtFontPropertyManagerPrivate::PropertyValueMap::const_iterator it =
7400 d_ptr->m_values.constFind(property);
7402 if (it == d_ptr->m_values.constEnd())
7421 const QtFontPropertyManagerPrivate::PropertyValueMap::iterator it =
7422 d_ptr->m_values.find(property);
7424 if (it == d_ptr->m_values.end())
7429 const QFont oldVal = it.value();
7431 if (oldVal == val && oldVal.resolve() == val.resolve())
7438 int idx = d_ptr->m_familyNames.indexOf(val.family());
7445 bool settingValue = d_ptr->m_settingValue;
7446 d_ptr->m_settingValue =
true;
7447 d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToFamily[property], idx);
7448 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToPointSize[property], val.pointSize());
7449 d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToBold[property], val.bold());
7450 d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToItalic[property], val.italic());
7451 d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToUnderline[property], val.underline());
7452 d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToStrikeOut[property], val.strikeOut());
7453 d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToKerning[property], val.kerning());
7454 d_ptr->m_settingValue = settingValue;
7467 d_ptr->m_values[property] = val;
7469 QtProperty* familyProp = d_ptr->m_enumPropertyManager->addProperty();
7472 if (d_ptr->m_familyNames.empty())
7474 d_ptr->m_familyNames = fontDatabase()->families();
7477 d_ptr->m_enumPropertyManager->setEnumNames(familyProp, d_ptr->m_familyNames);
7478 int idx = d_ptr->m_familyNames.indexOf(val.family());
7485 d_ptr->m_enumPropertyManager->setValue(familyProp, idx);
7486 d_ptr->m_propertyToFamily[property] = familyProp;
7487 d_ptr->m_familyToProperty[familyProp] = property;
7490 QtProperty* pointSizeProp = d_ptr->m_intPropertyManager->addProperty();
7492 d_ptr->m_intPropertyManager->setValue(pointSizeProp, val.pointSize());
7493 d_ptr->m_intPropertyManager->setMinimum(pointSizeProp, 1);
7494 d_ptr->m_propertyToPointSize[property] = pointSizeProp;
7495 d_ptr->m_pointSizeToProperty[pointSizeProp] = property;
7498 QtProperty* boldProp = d_ptr->m_boolPropertyManager->addProperty();
7500 d_ptr->m_boolPropertyManager->setValue(boldProp, val.bold());
7501 d_ptr->m_propertyToBold[property] = boldProp;
7502 d_ptr->m_boldToProperty[boldProp] = property;
7505 QtProperty* italicProp = d_ptr->m_boolPropertyManager->addProperty();
7507 d_ptr->m_boolPropertyManager->setValue(italicProp, val.italic());
7508 d_ptr->m_propertyToItalic[property] = italicProp;
7509 d_ptr->m_italicToProperty[italicProp] = property;
7512 QtProperty* underlineProp = d_ptr->m_boolPropertyManager->addProperty();
7514 d_ptr->m_boolPropertyManager->setValue(underlineProp, val.underline());
7515 d_ptr->m_propertyToUnderline[property] = underlineProp;
7516 d_ptr->m_underlineToProperty[underlineProp] = property;
7519 QtProperty* strikeOutProp = d_ptr->m_boolPropertyManager->addProperty();
7521 d_ptr->m_boolPropertyManager->setValue(strikeOutProp, val.strikeOut());
7522 d_ptr->m_propertyToStrikeOut[property] = strikeOutProp;
7523 d_ptr->m_strikeOutToProperty[strikeOutProp] = property;
7526 QtProperty* kerningProp = d_ptr->m_boolPropertyManager->addProperty();
7528 d_ptr->m_boolPropertyManager->setValue(kerningProp, val.kerning());
7529 d_ptr->m_propertyToKerning[property] = kerningProp;
7530 d_ptr->m_kerningToProperty[kerningProp] = property;
7540 QtProperty* familyProp = d_ptr->m_propertyToFamily[property];
7544 d_ptr->m_familyToProperty.remove(familyProp);
7548 d_ptr->m_propertyToFamily.remove(property);
7550 QtProperty* pointSizeProp = d_ptr->m_propertyToPointSize[property];
7554 d_ptr->m_pointSizeToProperty.remove(pointSizeProp);
7555 delete pointSizeProp;
7558 d_ptr->m_propertyToPointSize.remove(property);
7560 QtProperty* boldProp = d_ptr->m_propertyToBold[property];
7564 d_ptr->m_boldToProperty.remove(boldProp);
7568 d_ptr->m_propertyToBold.remove(property);
7570 QtProperty* italicProp = d_ptr->m_propertyToItalic[property];
7574 d_ptr->m_italicToProperty.remove(italicProp);
7578 d_ptr->m_propertyToItalic.remove(property);
7580 QtProperty* underlineProp = d_ptr->m_propertyToUnderline[property];
7584 d_ptr->m_underlineToProperty.remove(underlineProp);
7585 delete underlineProp;
7588 d_ptr->m_propertyToUnderline.remove(property);
7590 QtProperty* strikeOutProp = d_ptr->m_propertyToStrikeOut[property];
7594 d_ptr->m_strikeOutToProperty.remove(strikeOutProp);
7595 delete strikeOutProp;
7598 d_ptr->m_propertyToStrikeOut.remove(property);
7600 QtProperty* kerningProp = d_ptr->m_propertyToKerning[property];
7604 d_ptr->m_kerningToProperty.remove(kerningProp);
7608 d_ptr->m_propertyToKerning.remove(property);
7610 d_ptr->m_values.remove(property);
7646 q_ptr->setValue(prop,
c);
7652 q_ptr->setValue(prop,
c);
7658 q_ptr->setValue(prop,
c);
7664 q_ptr->setValue(prop,
c);
7731 d_ptr->q_ptr =
this;
7734 connect(d_ptr->m_intPropertyManager,
7739 connect(d_ptr->m_intPropertyManager,
7767 return d_ptr->m_intPropertyManager;
7781 return d_ptr->m_values.
value(property, QColor());
7791 const QtColorPropertyManagerPrivate::PropertyValueMap::const_iterator it =
7792 d_ptr->m_values.constFind(property);
7794 if (it == d_ptr->m_values.constEnd())
7809 const QtColorPropertyManagerPrivate::PropertyValueMap::const_iterator it =
7810 d_ptr->m_values.constFind(property);
7812 if (it == d_ptr->m_values.constEnd())
7831 const QtColorPropertyManagerPrivate::PropertyValueMap::iterator it =
7832 d_ptr->m_values.find(property);
7834 if (it == d_ptr->m_values.end())
7839 if (it.value() == val)
7846 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToR[property], val.red());
7847 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToG[property], val.green());
7848 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToB[property], val.blue());
7849 d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToA[property], val.alpha());
7862 d_ptr->m_values[property] = val;
7864 QtProperty* rProp = d_ptr->m_intPropertyManager->addProperty();
7866 d_ptr->m_intPropertyManager->setValue(rProp, val.red());
7867 d_ptr->m_intPropertyManager->setRange(rProp, 0, 0xFF);
7868 d_ptr->m_propertyToR[property] = rProp;
7869 d_ptr->m_rToProperty[rProp] = property;
7872 QtProperty* gProp = d_ptr->m_intPropertyManager->addProperty();
7874 d_ptr->m_intPropertyManager->setValue(gProp, val.green());
7875 d_ptr->m_intPropertyManager->setRange(gProp, 0, 0xFF);
7876 d_ptr->m_propertyToG[property] = gProp;
7877 d_ptr->m_gToProperty[gProp] = property;
7880 QtProperty* bProp = d_ptr->m_intPropertyManager->addProperty();
7882 d_ptr->m_intPropertyManager->setValue(bProp, val.blue());
7883 d_ptr->m_intPropertyManager->setRange(bProp, 0, 0xFF);
7884 d_ptr->m_propertyToB[property] = bProp;
7885 d_ptr->m_bToProperty[bProp] = property;
7888 QtProperty* aProp = d_ptr->m_intPropertyManager->addProperty();
7890 d_ptr->m_intPropertyManager->setValue(aProp, val.alpha());
7891 d_ptr->m_intPropertyManager->setRange(aProp, 0, 0xFF);
7892 d_ptr->m_propertyToA[property] = aProp;
7893 d_ptr->m_aToProperty[aProp] = property;
7903 QtProperty* rProp = d_ptr->m_propertyToR[property];
7907 d_ptr->m_rToProperty.remove(rProp);
7911 d_ptr->m_propertyToR.remove(property);
7913 QtProperty* gProp = d_ptr->m_propertyToG[property];
7917 d_ptr->m_gToProperty.remove(gProp);
7921 d_ptr->m_propertyToG.remove(property);
7923 QtProperty* bProp = d_ptr->m_propertyToB[property];
7927 d_ptr->m_bToProperty.remove(bProp);
7931 d_ptr->m_propertyToB.remove(property);
7933 QtProperty* aProp = d_ptr->m_propertyToA[property];
7937 d_ptr->m_aToProperty.remove(aProp);
7941 d_ptr->m_propertyToA.remove(property);
7943 d_ptr->m_values.remove(property);
7950static void clearCursorDatabase();
7958 qAddPostRoutine(clearCursorDatabase);
7965clearCursorDatabase()
7967 cursorDatabase2()->clear();
8010 d_ptr->q_ptr =
this;
8034 return d_ptr->m_values.value(property, QCursor());
8044 const QtCursorPropertyManagerPrivate::PropertyValueMap::const_iterator it =
8045 d_ptr->m_values.constFind(property);
8047 if (it == d_ptr->m_values.constEnd())
8052 return cursorDatabase2()->cursorToShapeName(it.value());
8061 const QtCursorPropertyManagerPrivate::PropertyValueMap::const_iterator it =
8062 d_ptr->m_values.constFind(property);
8064 if (it == d_ptr->m_values.constEnd())
8069 return cursorDatabase2()->cursorToShapeIcon(it.value());
8083 const QtCursorPropertyManagerPrivate::PropertyValueMap::iterator it =
8084 d_ptr->m_values.find(property);
8086 if (it == d_ptr->m_values.end())
8091 if (it.value().shape() ==
value.shape() &&
value.shape() != Qt::BitmapCursor)
8110 d_ptr->m_values[property] = QCursor();
8120 d_ptr->m_values.remove(property);
8125#include "moc_qtpropertymanager.cpp"
8126#include "qtpropertymanager.moc"
void propertyDestroyed(QtProperty *property)
void propertyChanged(QtProperty *property)
QtAbstractPropertyManager(QObject *parent=0)
QMap< const QtProperty *, Data > PropertyValueMap
QtBoolPropertyManagerPrivate()
const QIcon m_checkedIcon
const QIcon m_uncheckedIcon
PropertyValueMap m_values
The QtBoolPropertyManager class provides and manages boolean properties.
void initializeProperty(QtProperty *property) override
void textVisibleChanged(QtProperty *property, bool)
void setValue(QtProperty *property, bool val)
bool textVisible(const QtProperty *property) const
void setTextVisible(QtProperty *property, bool textVisible)
QIcon valueIcon(const QtProperty *property) const override
void valueChanged(QtProperty *property, bool val)
bool value(const QtProperty *property) const
void uninitializeProperty(QtProperty *property) override
QtBoolPropertyManager(QObject *parent=0)
QString valueText(const QtProperty *property) const override
~QtBoolPropertyManager() override
QMap< const QtProperty *, QChar > PropertyValueMap
PropertyValueMap m_values
The QtCharPropertyManager provides and manages QChar properties.
void initializeProperty(QtProperty *property) override
QChar value(const QtProperty *property) const
QtCharPropertyManager(QObject *parent=0)
~QtCharPropertyManager() override
void uninitializeProperty(QtProperty *property) override
void valueChanged(QtProperty *property, const QChar &val)
QString valueText(const QtProperty *property) const override
void setValue(QtProperty *property, const QChar &val)
void slotPropertyDestroyed(QtProperty *property)
QMap< const QtProperty *, QtProperty * > m_rToProperty
QMap< const QtProperty *, QtProperty * > m_propertyToA
QtIntPropertyManager * m_intPropertyManager
QMap< const QtProperty *, QtProperty * > m_propertyToG
void slotIntChanged(QtProperty *property, int value)
QMap< const QtProperty *, QtProperty * > m_bToProperty
QMap< const QtProperty *, QtProperty * > m_gToProperty
QMap< const QtProperty *, QtProperty * > m_propertyToB
QMap< const QtProperty *, QColor > PropertyValueMap
QMap< const QtProperty *, QtProperty * > m_propertyToR
PropertyValueMap m_values
QMap< const QtProperty *, QtProperty * > m_aToProperty
The QtColorPropertyManager provides and manages QColor properties.
void initializeProperty(QtProperty *property) override
QtIntPropertyManager * subIntPropertyManager() const
void setValue(QtProperty *property, const QColor &val)
QtColorPropertyManager(QObject *parent=0)
QIcon valueIcon(const QtProperty *property) const override
void valueChanged(QtProperty *property, const QColor &val)
void uninitializeProperty(QtProperty *property) override
QColor value(const QtProperty *property) const
QString valueText(const QtProperty *property) const override
~QtColorPropertyManager() override
QMap< const QtProperty *, QCursor > PropertyValueMap
PropertyValueMap m_values
The QtCursorPropertyManager provides and manages QCursor properties.
void initializeProperty(QtProperty *property) override
void setValue(QtProperty *property, const QCursor &val)
void valueChanged(QtProperty *property, const QCursor &val)
QtCursorPropertyManager(QObject *parent=0)
QCursor value(const QtProperty *property) const
QIcon valueIcon(const QtProperty *property) const override
void uninitializeProperty(QtProperty *property) override
~QtCursorPropertyManager() override
QString valueText(const QtProperty *property) const override
QMap< const QtProperty *, Data > m_values
QMap< const QtProperty *, Data > PropertyValueMap
The QtDatePropertyManager provides and manages QDate properties.
void setValue(QtProperty *property, const QDate &val)
void initializeProperty(QtProperty *property) override
QDate minimum(const QtProperty *property) const
QtDatePropertyManager(QObject *parent=0)
QDate value(const QtProperty *property) const
void rangeChanged(QtProperty *property, const QDate &minVal, const QDate &maxVal)
void valueChanged(QtProperty *property, const QDate &val)
void setMinimum(QtProperty *property, const QDate &minVal)
~QtDatePropertyManager() override
void setRange(QtProperty *property, const QDate &minVal, const QDate &maxVal)
void uninitializeProperty(QtProperty *property) override
QDate maximum(const QtProperty *property) const
QString valueText(const QtProperty *property) const override
void setMaximum(QtProperty *property, const QDate &maxVal)
QMap< const QtProperty *, QDateTime > PropertyValueMap
PropertyValueMap m_values
The QtDateTimePropertyManager provides and manages QDateTime properties.
void initializeProperty(QtProperty *property) override
void valueChanged(QtProperty *property, const QDateTime &val)
~QtDateTimePropertyManager() override
QDateTime value(const QtProperty *property) const
void uninitializeProperty(QtProperty *property) override
void setValue(QtProperty *property, const QDateTime &val)
QtDateTimePropertyManager(QObject *parent=0)
QString valueText(const QtProperty *property) const override
QMap< const QtProperty *, Data > PropertyValueMap
PropertyValueMap m_values
The QtDoublePropertyManager provides and manages double properties.
~QtDoublePropertyManager() override
int decimals(const QtProperty *property) const
void initializeProperty(QtProperty *property) override
void setSingleStep(QtProperty *property, double step)
void setMaximum(QtProperty *property, double maxVal)
void setDecimals(QtProperty *property, int prec)
double maximum(const QtProperty *property) const
double minimum(const QtProperty *property) const
bool isReadOnly(const QtProperty *property) const
void singleStepChanged(QtProperty *property, double step)
void readOnlyChanged(QtProperty *property, bool readOnly)
void valueChanged(QtProperty *property, double val)
void setValue(QtProperty *property, double val)
double value(const QtProperty *property) const
void setMinimum(QtProperty *property, double minVal)
double singleStep(const QtProperty *property) const
void rangeChanged(QtProperty *property, double minVal, double maxVal)
void setRange(QtProperty *property, double minVal, double maxVal)
void uninitializeProperty(QtProperty *property) override
void decimalsChanged(QtProperty *property, int prec)
QtDoublePropertyManager(QObject *parent=0)
QString valueText(const QtProperty *property) const override
void setReadOnly(QtProperty *property, bool readOnly)
QMap< const QtProperty *, Data > PropertyValueMap
PropertyValueMap m_values
The QtEnumPropertyManager provides and manages enum properties.
void initializeProperty(QtProperty *property) override
void setEnumNames(QtProperty *property, const QStringList &names)
void valueChanged(QtProperty *property, int val)
QMap< int, QIcon > enumIcons(const QtProperty *property) const
QStringList enumNames(const QtProperty *property) const
void setValue(QtProperty *property, int val)
void enumNamesChanged(QtProperty *property, const QStringList &names)
void enumIconsChanged(QtProperty *property, const QMap< int, QIcon > &icons)
QtEnumPropertyManager(QObject *parent=0)
QIcon valueIcon(const QtProperty *property) const override
void setEnumIcons(QtProperty *property, const QMap< int, QIcon > &icons)
void uninitializeProperty(QtProperty *property) override
QString valueText(const QtProperty *property) const override
int value(const QtProperty *property) const
~QtEnumPropertyManager() override
QMap< const QtProperty *, QtProperty * > m_flagToProperty
void slotPropertyDestroyed(QtProperty *property)
QMap< const QtProperty *, Data > PropertyValueMap
QtBoolPropertyManager * m_boolPropertyManager
QMap< const QtProperty *, QList< QtProperty * > > m_propertyToFlags
void slotBoolChanged(QtProperty *property, bool value)
PropertyValueMap m_values
The QtFlagPropertyManager provides and manages flag properties.
void initializeProperty(QtProperty *property) override
void flagNamesChanged(QtProperty *property, const QStringList &names)
void valueChanged(QtProperty *property, int val)
void setValue(QtProperty *property, int val)
~QtFlagPropertyManager() override
QtFlagPropertyManager(QObject *parent=0)
void uninitializeProperty(QtProperty *property) override
QStringList flagNames(const QtProperty *property) const
void setFlagNames(QtProperty *property, const QStringList &names)
QString valueText(const QtProperty *property) const override
QtBoolPropertyManager * subBoolPropertyManager() const
int value(const QtProperty *property) const
QMap< const QtProperty *, QtProperty * > m_boldToProperty
QMap< const QtProperty *, QtProperty * > m_pointSizeToProperty
QMap< const QtProperty *, QtProperty * > m_propertyToKerning
QStringList m_familyNames
void slotPropertyDestroyed(QtProperty *property)
QMap< const QtProperty *, QtProperty * > m_italicToProperty
QMap< const QtProperty *, QtProperty * > m_propertyToUnderline
QMap< const QtProperty *, QtProperty * > m_propertyToFamily
QtIntPropertyManager * m_intPropertyManager
QMap< const QtProperty *, QtProperty * > m_propertyToItalic
QMap< const QtProperty *, QtProperty * > m_kerningToProperty
void slotIntChanged(QtProperty *property, int value)
QtBoolPropertyManager * m_boolPropertyManager
void slotEnumChanged(QtProperty *property, int value)
QMap< const QtProperty *, QtProperty * > m_propertyToPointSize
QMap< const QtProperty *, QtProperty * > m_strikeOutToProperty
QtEnumPropertyManager * m_enumPropertyManager
QMap< const QtProperty *, QtProperty * > m_propertyToStrikeOut
QtFontPropertyManagerPrivate()
QMap< const QtProperty *, QtProperty * > m_propertyToBold
void slotBoolChanged(QtProperty *property, bool value)
PropertyValueMap m_values
QTimer * m_fontDatabaseChangeTimer
QMap< const QtProperty *, QtProperty * > m_familyToProperty
void slotFontDatabaseChanged()
QMap< const QtProperty *, QFont > PropertyValueMap
QMap< const QtProperty *, QtProperty * > m_underlineToProperty
void slotFontDatabaseDelayedChange()
The QtFontPropertyManager provides and manages QFont properties.
void initializeProperty(QtProperty *property) override
QtIntPropertyManager * subIntPropertyManager() const
QtFontPropertyManager(QObject *parent=0)
~QtFontPropertyManager() override
QtEnumPropertyManager * subEnumPropertyManager() const
QIcon valueIcon(const QtProperty *property) const override
void uninitializeProperty(QtProperty *property) override
void valueChanged(QtProperty *property, const QFont &val)
QFont value(const QtProperty *property) const
void setValue(QtProperty *property, const QFont &val)
QString valueText(const QtProperty *property) const override
QtBoolPropertyManager * subBoolPropertyManager() const
void initializeProperty(QtProperty *property) override
bool hasValue(const QtProperty *property) const override
QtGroupPropertyManager(QObject *parent=0)
~QtGroupPropertyManager() override
void uninitializeProperty(QtProperty *property) override
QMap< const QtProperty *, Data > PropertyValueMap
PropertyValueMap m_values
The QtIntPropertyManager provides and manages int properties.
void initializeProperty(QtProperty *property) override
int minimum(const QtProperty *property) const
void valueChanged(QtProperty *property, int val)
void setMaximum(QtProperty *property, int maxVal)
void setRange(QtProperty *property, int minVal, int maxVal)
void setValue(QtProperty *property, int val)
void rangeChanged(QtProperty *property, int minVal, int maxVal)
bool isReadOnly(const QtProperty *property) const
void setMinimum(QtProperty *property, int minVal)
~QtIntPropertyManager() override
void readOnlyChanged(QtProperty *property, bool readOnly)
void singleStepChanged(QtProperty *property, int step)
int singleStep(const QtProperty *property) const
void setSingleStep(QtProperty *property, int step)
void uninitializeProperty(QtProperty *property) override
QtIntPropertyManager(QObject *parent=0)
QString valueText(const QtProperty *property) const override
int maximum(const QtProperty *property) const
void setReadOnly(QtProperty *property, bool readOnly)
int value(const QtProperty *property) const
PropertyValueMap m_values
QMap< const QtProperty *, QKeySequence > PropertyValueMap
The QtKeySequencePropertyManager provides and manages QKeySequence properties.
void initializeProperty(QtProperty *property) override
QKeySequence value(const QtProperty *property) const
void uninitializeProperty(QtProperty *property) override
~QtKeySequencePropertyManager() override
QString valueText(const QtProperty *property) const override
void setValue(QtProperty *property, const QKeySequence &val)
void valueChanged(QtProperty *property, const QKeySequence &val)
QtKeySequencePropertyManager(QObject *parent=0)
void slotPropertyDestroyed(QtProperty *property)
QMap< const QtProperty *, QtProperty * > m_languageToProperty
QMap< const QtProperty *, QtProperty * > m_propertyToCountry
void slotEnumChanged(QtProperty *property, int value)
QMap< const QtProperty *, QLocale > PropertyValueMap
QtLocalePropertyManagerPrivate()
QtEnumPropertyManager * m_enumPropertyManager
PropertyValueMap m_values
QMap< const QtProperty *, QtProperty * > m_propertyToLanguage
QMap< const QtProperty *, QtProperty * > m_countryToProperty
The QtLocalePropertyManager provides and manages QLocale properties.
void setValue(QtProperty *property, const QLocale &val)
void initializeProperty(QtProperty *property) override
QtEnumPropertyManager * subEnumPropertyManager() const
~QtLocalePropertyManager() override
QLocale value(const QtProperty *property) const
void valueChanged(QtProperty *property, const QLocale &val)
void uninitializeProperty(QtProperty *property) override
QtLocalePropertyManager(QObject *parent=0)
QString valueText(const QtProperty *property) const override
void slotDoubleChanged(QtProperty *property, double value)
QMap< const QtProperty *, QtProperty * > m_propertyToX
void slotPropertyDestroyed(QtProperty *property)
QMap< const QtProperty *, Data > PropertyValueMap
QMap< const QtProperty *, QtProperty * > m_yToProperty
PropertyValueMap m_values
QtDoublePropertyManager * m_doublePropertyManager
QMap< const QtProperty *, QtProperty * > m_propertyToY
QMap< const QtProperty *, QtProperty * > m_xToProperty
The QtPointFPropertyManager provides and manages QPointF properties.
int decimals(const QtProperty *property) const
void initializeProperty(QtProperty *property) override
QtPointFPropertyManager(QObject *parent=0)
QPointF value(const QtProperty *property) const
void valueChanged(QtProperty *property, const QPointF &val)
void setDecimals(QtProperty *property, int prec)
void uninitializeProperty(QtProperty *property) override
void decimalsChanged(QtProperty *property, int prec)
QString valueText(const QtProperty *property) const override
void setValue(QtProperty *property, const QPointF &val)
~QtPointFPropertyManager() override
QtDoublePropertyManager * subDoublePropertyManager() const
QMap< const QtProperty *, QtProperty * > m_propertyToX
void slotPropertyDestroyed(QtProperty *property)
QMap< const QtProperty *, QPoint > PropertyValueMap
QtIntPropertyManager * m_intPropertyManager
void slotIntChanged(QtProperty *property, int value)
QMap< const QtProperty *, QtProperty * > m_yToProperty
PropertyValueMap m_values
QMap< const QtProperty *, QtProperty * > m_propertyToY
QMap< const QtProperty *, QtProperty * > m_xToProperty
The QtPointPropertyManager provides and manages QPoint properties.
void valueChanged(QtProperty *property, const QPoint &val)
~QtPointPropertyManager() override
void initializeProperty(QtProperty *property) override
QtPointPropertyManager(QObject *parent=0)
QtIntPropertyManager * subIntPropertyManager() const
void setValue(QtProperty *property, const QPoint &val)
QPoint value(const QtProperty *property) const
void uninitializeProperty(QtProperty *property) override
QString valueText(const QtProperty *property) const override
static QString fontValueText(const QFont &f)
static QIcon fontValueIcon(const QFont &f)
static QIcon brushValueIcon(const QBrush &b)
static QString colorValueText(const QColor &c)
The QtProperty class encapsulates an instance of a property.
void setPropertyName(const QString &text)
void addSubProperty(QtProperty *property)
void slotDoubleChanged(QtProperty *property, double value)
QMap< const QtProperty *, QtProperty * > m_propertyToH
QMap< const QtProperty *, QtProperty * > m_propertyToX
void slotPropertyDestroyed(QtProperty *property)
QMap< const QtProperty *, QtProperty * > m_propertyToW
QMap< const QtProperty *, Data > PropertyValueMap
QMap< const QtProperty *, QtProperty * > m_hToProperty
void setConstraint(QtProperty *property, const QRectF &constraint, const QRectF &val)
QMap< const QtProperty *, QtProperty * > m_yToProperty
PropertyValueMap m_values
QMap< const QtProperty *, QtProperty * > m_wToProperty
QtDoublePropertyManager * m_doublePropertyManager
QMap< const QtProperty *, QtProperty * > m_propertyToY
QMap< const QtProperty *, QtProperty * > m_xToProperty
The QtRectFPropertyManager provides and manages QRectF properties.
int decimals(const QtProperty *property) const
void initializeProperty(QtProperty *property) override
QRectF constraint(const QtProperty *property) const
void setConstraint(QtProperty *property, const QRectF &constraint)
void constraintChanged(QtProperty *property, const QRectF &constraint)
void setDecimals(QtProperty *property, int prec)
void valueChanged(QtProperty *property, const QRectF &val)
QRectF value(const QtProperty *property) const
~QtRectFPropertyManager() override
void uninitializeProperty(QtProperty *property) override
QtRectFPropertyManager(QObject *parent=0)
void decimalsChanged(QtProperty *property, int prec)
void setValue(QtProperty *property, const QRectF &val)
QString valueText(const QtProperty *property) const override
QtDoublePropertyManager * subDoublePropertyManager() const
QMap< const QtProperty *, QtProperty * > m_propertyToH
QMap< const QtProperty *, QtProperty * > m_propertyToX
void slotPropertyDestroyed(QtProperty *property)
void setConstraint(QtProperty *property, const QRect &constraint, const QRect &val)
QMap< const QtProperty *, QtProperty * > m_propertyToW
QMap< const QtProperty *, Data > PropertyValueMap
QtIntPropertyManager * m_intPropertyManager
void slotIntChanged(QtProperty *property, int value)
QMap< const QtProperty *, QtProperty * > m_hToProperty
QMap< const QtProperty *, QtProperty * > m_yToProperty
PropertyValueMap m_values
QMap< const QtProperty *, QtProperty * > m_wToProperty
QMap< const QtProperty *, QtProperty * > m_propertyToY
QMap< const QtProperty *, QtProperty * > m_xToProperty
The QtRectPropertyManager provides and manages QRect properties.
void valueChanged(QtProperty *property, const QRect &val)
void initializeProperty(QtProperty *property) override
QtIntPropertyManager * subIntPropertyManager() const
~QtRectPropertyManager() override
QtRectPropertyManager(QObject *parent=0)
QRect constraint(const QtProperty *property) const
void setValue(QtProperty *property, const QRect &val)
void constraintChanged(QtProperty *property, const QRect &constraint)
void uninitializeProperty(QtProperty *property) override
QRect value(const QtProperty *property) const
QString valueText(const QtProperty *property) const override
void setConstraint(QtProperty *property, const QRect &constraint)
void slotDoubleChanged(QtProperty *property, double value)
QMap< const QtProperty *, QtProperty * > m_propertyToH
void slotPropertyDestroyed(QtProperty *property)
QMap< const QtProperty *, QtProperty * > m_propertyToW
QMap< const QtProperty *, Data > PropertyValueMap
void setValue(QtProperty *property, const QSizeF &val)
QMap< const QtProperty *, QtProperty * > m_hToProperty
PropertyValueMap m_values
QMap< const QtProperty *, QtProperty * > m_wToProperty
void setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal, const QSizeF &val)
QtDoublePropertyManager * m_doublePropertyManager
The QtSizeFPropertyManager provides and manages QSizeF properties.
int decimals(const QtProperty *property) const
void initializeProperty(QtProperty *property) override
void setMaximum(QtProperty *property, const QSizeF &maxVal)
~QtSizeFPropertyManager() override
QSizeF value(const QtProperty *property) const
void setMinimum(QtProperty *property, const QSizeF &minVal)
QSizeF maximum(const QtProperty *property) const
void setDecimals(QtProperty *property, int prec)
void setValue(QtProperty *property, const QSizeF &val)
void uninitializeProperty(QtProperty *property) override
QtSizeFPropertyManager(QObject *parent=0)
QSizeF minimum(const QtProperty *property) const
void decimalsChanged(QtProperty *property, int prec)
void setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal)
QString valueText(const QtProperty *property) const override
void valueChanged(QtProperty *property, const QSizeF &val)
QtDoublePropertyManager * subDoublePropertyManager() const
void rangeChanged(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal)
QMap< const QtProperty *, QtProperty * > m_hPolicyToProperty
QMap< const QtProperty *, QtProperty * > m_propertyToHPolicy
QMap< const QtProperty *, QtProperty * > m_vStretchToProperty
void slotPropertyDestroyed(QtProperty *property)
QMap< const QtProperty *, QtProperty * > m_propertyToHStretch
QtIntPropertyManager * m_intPropertyManager
void slotIntChanged(QtProperty *property, int value)
void slotEnumChanged(QtProperty *property, int value)
QMap< const QtProperty *, QtProperty * > m_propertyToVPolicy
QtSizePolicyPropertyManagerPrivate()
QMap< const QtProperty *, QtProperty * > m_vPolicyToProperty
QtEnumPropertyManager * m_enumPropertyManager
QMap< const QtProperty *, QtProperty * > m_hStretchToProperty
QMap< const QtProperty *, QSizePolicy > PropertyValueMap
QMap< const QtProperty *, QtProperty * > m_propertyToVStretch
PropertyValueMap m_values
The QtSizePolicyPropertyManager provides and manages QSizePolicy properties.
~QtSizePolicyPropertyManager() override
void initializeProperty(QtProperty *property) override
QtIntPropertyManager * subIntPropertyManager() const
void valueChanged(QtProperty *property, const QSizePolicy &val)
QtEnumPropertyManager * subEnumPropertyManager() const
void setValue(QtProperty *property, const QSizePolicy &val)
void uninitializeProperty(QtProperty *property) override
QSizePolicy value(const QtProperty *property) const
QtSizePolicyPropertyManager(QObject *parent=0)
QString valueText(const QtProperty *property) const override
QMap< const QtProperty *, QtProperty * > m_propertyToH
void slotPropertyDestroyed(QtProperty *property)
void setValue(QtProperty *property, const QSize &val)
QMap< const QtProperty *, QtProperty * > m_propertyToW
QMap< const QtProperty *, Data > PropertyValueMap
QtIntPropertyManager * m_intPropertyManager
void slotIntChanged(QtProperty *property, int value)
void setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal, const QSize &val)
QMap< const QtProperty *, QtProperty * > m_hToProperty
PropertyValueMap m_values
QMap< const QtProperty *, QtProperty * > m_wToProperty
The QtSizePropertyManager provides and manages QSize properties.
void initializeProperty(QtProperty *property) override
QtIntPropertyManager * subIntPropertyManager() const
void valueChanged(QtProperty *property, const QSize &val)
void setValue(QtProperty *property, const QSize &val)
void setMinimum(QtProperty *property, const QSize &minVal)
~QtSizePropertyManager() override
void setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal)
QSize minimum(const QtProperty *property) const
void setMaximum(QtProperty *property, const QSize &maxVal)
void uninitializeProperty(QtProperty *property) override
QtSizePropertyManager(QObject *parent=0)
QSize value(const QtProperty *property) const
void rangeChanged(QtProperty *property, const QSize &minVal, const QSize &maxVal)
QString valueText(const QtProperty *property) const override
QSize maximum(const QtProperty *property) const
QMap< const QtProperty *, Data > m_values
QMap< const QtProperty *, Data > PropertyValueMap
The QtStringPropertyManager provides and manages QString properties.
void initializeProperty(QtProperty *property) override
QRegExp regExp(const QtProperty *property) const
void setRegExp(QtProperty *property, const QRegExp ®Exp)
~QtStringPropertyManager() override
QString displayText(const QtProperty *property) const override
void regExpChanged(QtProperty *property, const QRegExp ®Exp)
bool isReadOnly(const QtProperty *property) const
QtStringPropertyManager(QObject *parent=0)
QString value(const QtProperty *property) const
void setEchoMode(QtProperty *property, EchoMode echoMode)
void valueChanged(QtProperty *property, const QString &val)
void setValue(QtProperty *property, const QString &val)
void uninitializeProperty(QtProperty *property) override
void readOnlyChanged(QtProperty *property, bool)
void echoModeChanged(QtProperty *property, const int)
QString valueText(const QtProperty *property) const override
void setReadOnly(QtProperty *property, bool readOnly)
EchoMode echoMode(const QtProperty *property) const override
QMap< const QtProperty *, QTime > PropertyValueMap
PropertyValueMap m_values
The QtTimePropertyManager provides and manages QTime properties.
void initializeProperty(QtProperty *property) override
~QtTimePropertyManager() override
QTime value(const QtProperty *property) const
void valueChanged(QtProperty *property, const QTime &val)
QtTimePropertyManager(QObject *parent=0)
void setValue(QtProperty *property, const QTime &val)
void uninitializeProperty(QtProperty *property) override
QString valueText(const QtProperty *property) const override
Value
Color maps that associate a color to every float from [0..1].
QLineEdit::EchoMode EchoMode
QSize qBound(QSize minVal, QSize val, QSize maxVal)
void setMinimumValue(const QDate &newMinVal)
QDate minimumValue() const
void setMaximumValue(const QDate &newMaxVal)
QDate maximumValue() const
double maximumValue() const
void setMinimumValue(double newMinVal)
void setMaximumValue(double newMaxVal)
double minimumValue() const
QMap< int, QIcon > enumIcons
void setMaximumValue(int newMaxVal)
void setMinimumValue(int newMinVal)
QSizeF maximumValue() const
void setMaximumValue(const QSizeF &newMaxVal)
QSizeF minimumValue() const
void setMinimumValue(const QSizeF &newMinVal)
void setMinimumValue(const QSize &newMinVal)
void setMaximumValue(const QSize &newMaxVal)
QSize maximumValue() const
QSize minimumValue() const