11#include <QFontMetrics>
12#include <QGuiApplication>
13#include <QQmlComponent>
21#include "kirigamiplatform_logging.h"
22#include "platformpluginfactory.h"
31 Q_DISABLE_COPY(UnitsPrivate)
34 explicit UnitsPrivate(
Units *units)
37 , gridUnit(
std::ceil(fontMetrics.height()))
41 , veryLongDuration(400)
44 , veryShortDuration(50)
47 , iconSizes(new IconSizes(units))
65 int veryShortDuration;
69 IconSizes *
const iconSizes;
72 bool customUnitsSet =
false;
75Units::~Units() =
default;
79 , d(
std::make_unique<UnitsPrivate>(this))
84int Units::gridUnit()
const
89void Units::setGridUnit(
int size)
91 if (d->gridUnit == size) {
96 d->customUnitsSet =
true;
100int Units::smallSpacing()
const
102 return d->smallSpacing;
105void Units::setSmallSpacing(
int size)
107 if (d->smallSpacing == size) {
111 d->smallSpacing = size;
112 d->customUnitsSet =
true;
113 Q_EMIT smallSpacingChanged();
116int Units::mediumSpacing()
const
118 return d->mediumSpacing;
121void Units::setMediumSpacing(
int size)
123 if (d->mediumSpacing == size) {
127 d->mediumSpacing = size;
128 d->customUnitsSet =
true;
129 Q_EMIT mediumSpacingChanged();
132int Units::largeSpacing()
const
134 return d->largeSpacing;
137void Units::setLargeSpacing(
int size)
139 if (d->largeSpacing) {
143 d->largeSpacing = size;
144 d->customUnitsSet =
true;
145 Q_EMIT largeSpacingChanged();
148int Units::veryLongDuration()
const
150 return d->veryLongDuration;
153void Units::setVeryLongDuration(
int duration)
155 if (d->veryLongDuration == duration) {
159 d->veryLongDuration = duration;
160 Q_EMIT veryLongDurationChanged();
163int Units::longDuration()
const
165 return d->longDuration;
168void Units::setLongDuration(
int duration)
170 if (d->longDuration == duration) {
174 d->longDuration = duration;
175 Q_EMIT longDurationChanged();
178int Units::shortDuration()
const
180 return d->shortDuration;
183void Units::setShortDuration(
int duration)
185 if (d->shortDuration == duration) {
189 d->shortDuration = duration;
190 Q_EMIT shortDurationChanged();
193int Units::veryShortDuration()
const
195 return d->veryShortDuration;
198void Units::setVeryShortDuration(
int duration)
200 if (d->veryShortDuration == duration) {
204 d->veryShortDuration = duration;
205 Q_EMIT veryShortDurationChanged();
208int Units::humanMoment()
const
210 return d->humanMoment;
213void Units::setHumanMoment(
int duration)
215 if (d->humanMoment == duration) {
219 d->humanMoment = duration;
220 Q_EMIT humanMomentChanged();
223int Units::toolTipDelay()
const
225 return d->toolTipDelay;
228void Units::setToolTipDelay(
int delay)
230 if (d->toolTipDelay == delay) {
234 d->toolTipDelay = delay;
235 Q_EMIT toolTipDelayChanged();
240#ifndef KIRIGAMI_BUILD_TYPE_STATIC
243 auto plugin = PlatformPluginFactory::findPlugin(pluginName);
244 if (!plugin && !pluginName.
isEmpty()) {
245 plugin = PlatformPluginFactory::findPlugin();
249 return plugin->createUnits(qmlEngine);
253 return new Units(qmlEngine);
261 if (d->customUnitsSet) {
265 d->gridUnit = std::ceil(d->fontMetrics.height());
267 Q_EMIT d->iconSizes->sizeForLabelsChanged();
272IconSizes *Units::iconSizes()
const
277IconSizes::IconSizes(
Units *units)
283int IconSizes::roundedIconSize(
int size)
const
308int IconSizes::sizeForLabels()
const
311 return roundedIconSize(m_units->d->fontMetrics.height());
314int IconSizes::small()
const
319int IconSizes::smallMedium()
const
324int IconSizes::medium()
const
329int IconSizes::large()
const
334int IconSizes::huge()
const
339int IconSizes::enormous()
const
346#include "moc_units.cpp"
virtual bool event(QEvent *e)
virtual bool eventFilter(QObject *watched, QEvent *event)
void installEventFilter(QObject *filterObj)
QVariant property(const char *name) const const
bool isEmpty() const const
QString toString() const const