summary refs log tree commit diff
path: root/src/ui/FlatButton.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/FlatButton.cc')
-rw-r--r--src/ui/FlatButton.cc713
1 files changed, 361 insertions, 352 deletions
diff --git a/src/ui/FlatButton.cc b/src/ui/FlatButton.cc
index d59fe259..4ba92a38 100644
--- a/src/ui/FlatButton.cc
+++ b/src/ui/FlatButton.cc
@@ -14,54 +14,54 @@
 void
 FlatButton::init()
 {
-	ripple_overlay_ = new RippleOverlay(this);
-	state_machine_ = new FlatButtonStateMachine(this);
-	role_ = ui::Role::Default;
-	ripple_style_ = ui::RippleStyle::PositionedRipple;
-	icon_placement_ = ui::ButtonIconPlacement::LeftIcon;
-	overlay_style_ = ui::OverlayStyle::GrayOverlay;
-	bg_mode_ = Qt::TransparentMode;
-	fixed_ripple_radius_ = 64;
-	corner_radius_ = 3;
-	base_opacity_ = 0.13;
-	font_size_ = 10; // 10.5;
-	use_fixed_ripple_radius_ = false;
-
-	setStyle(&ThemeManager::instance());
-	setAttribute(Qt::WA_Hover);
-	setMouseTracking(true);
-	setCursor(QCursor(Qt::PointingHandCursor));
-
-	QPainterPath path;
-	path.addRoundedRect(rect(), corner_radius_, corner_radius_);
-
-	ripple_overlay_->setClipPath(path);
-	ripple_overlay_->setClipping(true);
-
-	state_machine_->setupProperties();
-	state_machine_->startAnimations();
+        ripple_overlay_          = new RippleOverlay(this);
+        state_machine_           = new FlatButtonStateMachine(this);
+        role_                    = ui::Role::Default;
+        ripple_style_            = ui::RippleStyle::PositionedRipple;
+        icon_placement_          = ui::ButtonIconPlacement::LeftIcon;
+        overlay_style_           = ui::OverlayStyle::GrayOverlay;
+        bg_mode_                 = Qt::TransparentMode;
+        fixed_ripple_radius_     = 64;
+        corner_radius_           = 3;
+        base_opacity_            = 0.13;
+        font_size_               = 10; // 10.5;
+        use_fixed_ripple_radius_ = false;
+
+        setStyle(&ThemeManager::instance());
+        setAttribute(Qt::WA_Hover);
+        setMouseTracking(true);
+        setCursor(QCursor(Qt::PointingHandCursor));
+
+        QPainterPath path;
+        path.addRoundedRect(rect(), corner_radius_, corner_radius_);
+
+        ripple_overlay_->setClipPath(path);
+        ripple_overlay_->setClipping(true);
+
+        state_machine_->setupProperties();
+        state_machine_->startAnimations();
 }
 
 FlatButton::FlatButton(QWidget *parent, ui::ButtonPreset preset)
   : QPushButton(parent)
 {
-	init();
-	applyPreset(preset);
+        init();
+        applyPreset(preset);
 }
 
 FlatButton::FlatButton(const QString &text, QWidget *parent, ui::ButtonPreset preset)
   : QPushButton(text, parent)
 {
-	init();
-	applyPreset(preset);
+        init();
+        applyPreset(preset);
 }
 
 FlatButton::FlatButton(const QString &text, ui::Role role, QWidget *parent, ui::ButtonPreset preset)
   : QPushButton(text, parent)
 {
-	init();
-	applyPreset(preset);
-	setRole(role);
+        init();
+        applyPreset(preset);
+        setRole(role);
 }
 
 FlatButton::~FlatButton()
@@ -71,406 +71,406 @@ FlatButton::~FlatButton()
 void
 FlatButton::applyPreset(ui::ButtonPreset preset)
 {
-	switch (preset) {
-	case ui::ButtonPreset::FlatPreset:
-		setOverlayStyle(ui::OverlayStyle::NoOverlay);
-		break;
-	case ui::ButtonPreset::CheckablePreset:
-		setOverlayStyle(ui::OverlayStyle::NoOverlay);
-		setCheckable(true);
-		break;
-	default:
-		break;
-	}
+        switch (preset) {
+        case ui::ButtonPreset::FlatPreset:
+                setOverlayStyle(ui::OverlayStyle::NoOverlay);
+                break;
+        case ui::ButtonPreset::CheckablePreset:
+                setOverlayStyle(ui::OverlayStyle::NoOverlay);
+                setCheckable(true);
+                break;
+        default:
+                break;
+        }
 }
 
 void
 FlatButton::setRole(ui::Role role)
 {
-	role_ = role;
-	state_machine_->setupProperties();
+        role_ = role;
+        state_machine_->setupProperties();
 }
 
 ui::Role
 FlatButton::role() const
 {
-	return role_;
+        return role_;
 }
 
 void
 FlatButton::setForegroundColor(const QColor &color)
 {
-	foreground_color_ = color;
+        foreground_color_ = color;
 }
 
 QColor
 FlatButton::foregroundColor() const
 {
-	if (!foreground_color_.isValid()) {
-		if (bg_mode_ == Qt::OpaqueMode) {
-			return ThemeManager::instance().themeColor("BrightWhite");
-		}
+        if (!foreground_color_.isValid()) {
+                if (bg_mode_ == Qt::OpaqueMode) {
+                        return ThemeManager::instance().themeColor("BrightWhite");
+                }
 
-		switch (role_) {
-		case ui::Role::Primary:
-			return ThemeManager::instance().themeColor("Blue");
-		case ui::Role::Secondary:
-			return ThemeManager::instance().themeColor("Gray");
-		case ui::Role::Default:
-		default:
-			return ThemeManager::instance().themeColor("Black");
-		}
-	}
+                switch (role_) {
+                case ui::Role::Primary:
+                        return ThemeManager::instance().themeColor("Blue");
+                case ui::Role::Secondary:
+                        return ThemeManager::instance().themeColor("Gray");
+                case ui::Role::Default:
+                default:
+                        return ThemeManager::instance().themeColor("Black");
+                }
+        }
 
-	return foreground_color_;
+        return foreground_color_;
 }
 
 void
 FlatButton::setBackgroundColor(const QColor &color)
 {
-	background_color_ = color;
+        background_color_ = color;
 }
 
 QColor
 FlatButton::backgroundColor() const
 {
-	if (!background_color_.isValid()) {
-		switch (role_) {
-		case ui::Role::Primary:
-			return ThemeManager::instance().themeColor("Blue");
-		case ui::Role::Secondary:
-			return ThemeManager::instance().themeColor("Gray");
-		case ui::Role::Default:
-		default:
-			return ThemeManager::instance().themeColor("Black");
-		}
-	}
+        if (!background_color_.isValid()) {
+                switch (role_) {
+                case ui::Role::Primary:
+                        return ThemeManager::instance().themeColor("Blue");
+                case ui::Role::Secondary:
+                        return ThemeManager::instance().themeColor("Gray");
+                case ui::Role::Default:
+                default:
+                        return ThemeManager::instance().themeColor("Black");
+                }
+        }
 
-	return background_color_;
+        return background_color_;
 }
 
 void
 FlatButton::setOverlayColor(const QColor &color)
 {
-	overlay_color_ = color;
-	setOverlayStyle(ui::OverlayStyle::TintedOverlay);
+        overlay_color_ = color;
+        setOverlayStyle(ui::OverlayStyle::TintedOverlay);
 }
 
 QColor
 FlatButton::overlayColor() const
 {
-	if (!overlay_color_.isValid()) {
-		return foregroundColor();
-	}
+        if (!overlay_color_.isValid()) {
+                return foregroundColor();
+        }
 
-	return overlay_color_;
+        return overlay_color_;
 }
 
 void
 FlatButton::setDisabledForegroundColor(const QColor &color)
 {
-	disabled_color_ = color;
+        disabled_color_ = color;
 }
 
 QColor
 FlatButton::disabledForegroundColor() const
 {
-	if (!disabled_color_.isValid()) {
-		return ThemeManager::instance().themeColor("FadedWhite");
-	}
+        if (!disabled_color_.isValid()) {
+                return ThemeManager::instance().themeColor("FadedWhite");
+        }
 
-	return disabled_color_;
+        return disabled_color_;
 }
 
 void
 FlatButton::setDisabledBackgroundColor(const QColor &color)
 {
-	disabled_background_color_ = color;
+        disabled_background_color_ = color;
 }
 
 QColor
 FlatButton::disabledBackgroundColor() const
 {
-	if (!disabled_background_color_.isValid()) {
-		return ThemeManager::instance().themeColor("FadedWhite");
-	}
+        if (!disabled_background_color_.isValid()) {
+                return ThemeManager::instance().themeColor("FadedWhite");
+        }
 
-	return disabled_background_color_;
+        return disabled_background_color_;
 }
 
 void
 FlatButton::setFontSize(qreal size)
 {
-	font_size_ = size;
+        font_size_ = size;
 
-	QFont f(font());
-	f.setPixelSize(size);
-	setFont(f);
+        QFont f(font());
+        f.setPixelSize(size);
+        setFont(f);
 
-	update();
+        update();
 }
 
 qreal
 FlatButton::fontSize() const
 {
-	return font_size_;
+        return font_size_;
 }
 
 void
 FlatButton::setOverlayStyle(ui::OverlayStyle style)
 {
-	overlay_style_ = style;
-	update();
+        overlay_style_ = style;
+        update();
 }
 
 ui::OverlayStyle
 FlatButton::overlayStyle() const
 {
-	return overlay_style_;
+        return overlay_style_;
 }
 
 void
 FlatButton::setRippleStyle(ui::RippleStyle style)
 {
-	ripple_style_ = style;
+        ripple_style_ = style;
 }
 
 ui::RippleStyle
 FlatButton::rippleStyle() const
 {
-	return ripple_style_;
+        return ripple_style_;
 }
 
 void
 FlatButton::setIconPlacement(ui::ButtonIconPlacement placement)
 {
-	icon_placement_ = placement;
-	update();
+        icon_placement_ = placement;
+        update();
 }
 
 ui::ButtonIconPlacement
 FlatButton::iconPlacement() const
 {
-	return icon_placement_;
+        return icon_placement_;
 }
 
 void
 FlatButton::setCornerRadius(qreal radius)
 {
-	corner_radius_ = radius;
-	updateClipPath();
-	update();
+        corner_radius_ = radius;
+        updateClipPath();
+        update();
 }
 
 qreal
 FlatButton::cornerRadius() const
 {
-	return corner_radius_;
+        return corner_radius_;
 }
 
 void
 FlatButton::setBackgroundMode(Qt::BGMode mode)
 {
-	bg_mode_ = mode;
-	state_machine_->setupProperties();
+        bg_mode_ = mode;
+        state_machine_->setupProperties();
 }
 
 Qt::BGMode
 FlatButton::backgroundMode() const
 {
-	return bg_mode_;
+        return bg_mode_;
 }
 
 void
 FlatButton::setBaseOpacity(qreal opacity)
 {
-	base_opacity_ = opacity;
-	state_machine_->setupProperties();
+        base_opacity_ = opacity;
+        state_machine_->setupProperties();
 }
 
 qreal
 FlatButton::baseOpacity() const
 {
-	return base_opacity_;
+        return base_opacity_;
 }
 
 void
 FlatButton::setCheckable(bool value)
 {
-	state_machine_->updateCheckedStatus();
-	state_machine_->setCheckedOverlayProgress(0);
+        state_machine_->updateCheckedStatus();
+        state_machine_->setCheckedOverlayProgress(0);
 
-	QPushButton::setCheckable(value);
+        QPushButton::setCheckable(value);
 }
 
 void
 FlatButton::setHasFixedRippleRadius(bool value)
 {
-	use_fixed_ripple_radius_ = value;
+        use_fixed_ripple_radius_ = value;
 }
 
 bool
 FlatButton::hasFixedRippleRadius() const
 {
-	return use_fixed_ripple_radius_;
+        return use_fixed_ripple_radius_;
 }
 
 void
 FlatButton::setFixedRippleRadius(qreal radius)
 {
-	fixed_ripple_radius_ = radius;
-	setHasFixedRippleRadius(true);
+        fixed_ripple_radius_ = radius;
+        setHasFixedRippleRadius(true);
 }
 
 QSize
 FlatButton::sizeHint() const
 {
-	ensurePolished();
+        ensurePolished();
 
-	QSize label(fontMetrics().size(Qt::TextSingleLine, text()));
+        QSize label(fontMetrics().size(Qt::TextSingleLine, text()));
 
-	int w = 20 + label.width();
-	int h = label.height();
+        int w = 20 + label.width();
+        int h = label.height();
 
-	if (!icon().isNull()) {
-		w += iconSize().width() + FlatButton::IconPadding;
-		h = qMax(h, iconSize().height());
-	}
+        if (!icon().isNull()) {
+                w += iconSize().width() + FlatButton::IconPadding;
+                h = qMax(h, iconSize().height());
+        }
 
-	return QSize(w, 20 + h);
+        return QSize(w, 20 + h);
 }
 
 void
 FlatButton::checkStateSet()
 {
-	state_machine_->updateCheckedStatus();
-	QPushButton::checkStateSet();
+        state_machine_->updateCheckedStatus();
+        QPushButton::checkStateSet();
 }
 
 void
 FlatButton::mousePressEvent(QMouseEvent *event)
 {
-	if (ui::RippleStyle::NoRipple != ripple_style_) {
-		QPoint pos;
-		qreal radiusEndValue;
+        if (ui::RippleStyle::NoRipple != ripple_style_) {
+                QPoint pos;
+                qreal radiusEndValue;
 
-		if (ui::RippleStyle::CenteredRipple == ripple_style_) {
-			pos = rect().center();
-		} else {
-			pos = event->pos();
-		}
+                if (ui::RippleStyle::CenteredRipple == ripple_style_) {
+                        pos = rect().center();
+                } else {
+                        pos = event->pos();
+                }
 
-		if (use_fixed_ripple_radius_) {
-			radiusEndValue = fixed_ripple_radius_;
-		} else {
-			radiusEndValue = static_cast<qreal>(width()) / 2;
-		}
+                if (use_fixed_ripple_radius_) {
+                        radiusEndValue = fixed_ripple_radius_;
+                } else {
+                        radiusEndValue = static_cast<qreal>(width()) / 2;
+                }
 
-		Ripple *ripple = new Ripple(pos);
+                Ripple *ripple = new Ripple(pos);
 
-		ripple->setRadiusEndValue(radiusEndValue);
-		ripple->setOpacityStartValue(0.35);
-		ripple->setColor(foregroundColor());
-		ripple->radiusAnimation()->setDuration(250);
-		ripple->opacityAnimation()->setDuration(250);
+                ripple->setRadiusEndValue(radiusEndValue);
+                ripple->setOpacityStartValue(0.35);
+                ripple->setColor(foregroundColor());
+                ripple->radiusAnimation()->setDuration(250);
+                ripple->opacityAnimation()->setDuration(250);
 
-		ripple_overlay_->addRipple(ripple);
-	}
+                ripple_overlay_->addRipple(ripple);
+        }
 
-	QPushButton::mousePressEvent(event);
+        QPushButton::mousePressEvent(event);
 }
 
 void
 FlatButton::mouseReleaseEvent(QMouseEvent *event)
 {
-	QPushButton::mouseReleaseEvent(event);
-	state_machine_->updateCheckedStatus();
+        QPushButton::mouseReleaseEvent(event);
+        state_machine_->updateCheckedStatus();
 }
 
 void
 FlatButton::resizeEvent(QResizeEvent *event)
 {
-	QPushButton::resizeEvent(event);
-	updateClipPath();
+        QPushButton::resizeEvent(event);
+        updateClipPath();
 }
 
 void
 FlatButton::paintEvent(QPaintEvent *event)
 {
-	Q_UNUSED(event)
+        Q_UNUSED(event)
 
-	QPainter painter(this);
-	painter.setRenderHint(QPainter::Antialiasing);
+        QPainter painter(this);
+        painter.setRenderHint(QPainter::Antialiasing);
 
-	const qreal cr = corner_radius_;
+        const qreal cr = corner_radius_;
 
-	if (cr > 0) {
-		QPainterPath path;
-		path.addRoundedRect(rect(), cr, cr);
+        if (cr > 0) {
+                QPainterPath path;
+                path.addRoundedRect(rect(), cr, cr);
 
-		painter.setClipPath(path);
-		painter.setClipping(true);
-	}
+                painter.setClipPath(path);
+                painter.setClipping(true);
+        }
 
-	paintBackground(&painter);
+        paintBackground(&painter);
 
-	painter.setOpacity(1);
-	painter.setClipping(false);
+        painter.setOpacity(1);
+        painter.setClipping(false);
 
-	paintForeground(&painter);
+        paintForeground(&painter);
 }
 
 void
 FlatButton::paintBackground(QPainter *painter)
 {
-	const qreal overlayOpacity = state_machine_->overlayOpacity();
-	const qreal checkedProgress = state_machine_->checkedOverlayProgress();
-
-	if (Qt::OpaqueMode == bg_mode_) {
-		QBrush brush;
-		brush.setStyle(Qt::SolidPattern);
-
-		if (isEnabled()) {
-			brush.setColor(backgroundColor());
-		} else {
-			brush.setColor(disabledBackgroundColor());
-		}
-
-		painter->setOpacity(1);
-		painter->setBrush(brush);
-		painter->setPen(Qt::NoPen);
-		painter->drawRect(rect());
-	}
-
-	QBrush brush;
-	brush.setStyle(Qt::SolidPattern);
-	painter->setPen(Qt::NoPen);
-
-	if (!isEnabled()) {
-		return;
-	}
-
-	if ((ui::OverlayStyle::NoOverlay != overlay_style_) && (overlayOpacity > 0)) {
-		if (ui::OverlayStyle::TintedOverlay == overlay_style_) {
-			brush.setColor(overlayColor());
-		} else {
-			brush.setColor(Qt::gray);
-		}
-
-		painter->setOpacity(overlayOpacity);
-		painter->setBrush(brush);
-		painter->drawRect(rect());
-	}
-
-	if (isCheckable() && checkedProgress > 0) {
-		const qreal q = Qt::TransparentMode == bg_mode_ ? 0.45 : 0.7;
-		brush.setColor(foregroundColor());
-		painter->setOpacity(q * checkedProgress);
-		painter->setBrush(brush);
-		QRect r(rect());
-		r.setHeight(static_cast<qreal>(r.height()) * checkedProgress);
-		painter->drawRect(r);
-	}
+        const qreal overlayOpacity  = state_machine_->overlayOpacity();
+        const qreal checkedProgress = state_machine_->checkedOverlayProgress();
+
+        if (Qt::OpaqueMode == bg_mode_) {
+                QBrush brush;
+                brush.setStyle(Qt::SolidPattern);
+
+                if (isEnabled()) {
+                        brush.setColor(backgroundColor());
+                } else {
+                        brush.setColor(disabledBackgroundColor());
+                }
+
+                painter->setOpacity(1);
+                painter->setBrush(brush);
+                painter->setPen(Qt::NoPen);
+                painter->drawRect(rect());
+        }
+
+        QBrush brush;
+        brush.setStyle(Qt::SolidPattern);
+        painter->setPen(Qt::NoPen);
+
+        if (!isEnabled()) {
+                return;
+        }
+
+        if ((ui::OverlayStyle::NoOverlay != overlay_style_) && (overlayOpacity > 0)) {
+                if (ui::OverlayStyle::TintedOverlay == overlay_style_) {
+                        brush.setColor(overlayColor());
+                } else {
+                        brush.setColor(Qt::gray);
+                }
+
+                painter->setOpacity(overlayOpacity);
+                painter->setBrush(brush);
+                painter->drawRect(rect());
+        }
+
+        if (isCheckable() && checkedProgress > 0) {
+                const qreal q = Qt::TransparentMode == bg_mode_ ? 0.45 : 0.7;
+                brush.setColor(foregroundColor());
+                painter->setOpacity(q * checkedProgress);
+                painter->setBrush(brush);
+                QRect r(rect());
+                r.setHeight(static_cast<qreal>(r.height()) * checkedProgress);
+                painter->drawRect(r);
+        }
 }
 
 #define COLOR_INTERPOLATE(CH) (1 - progress) * source.CH() + progress *dest.CH()
@@ -478,63 +478,64 @@ FlatButton::paintBackground(QPainter *painter)
 void
 FlatButton::paintForeground(QPainter *painter)
 {
-	if (isEnabled()) {
-		painter->setPen(foregroundColor());
-		const qreal progress = state_machine_->checkedOverlayProgress();
-
-		if (isCheckable() && progress > 0) {
-			QColor source = foregroundColor();
-			QColor dest = Qt::TransparentMode == bg_mode_ ? Qt::white : backgroundColor();
-			if (qFuzzyCompare(1, progress)) {
-				painter->setPen(dest);
-			} else {
-				painter->setPen(QColor(COLOR_INTERPOLATE(red),
-						       COLOR_INTERPOLATE(green),
-						       COLOR_INTERPOLATE(blue),
-						       COLOR_INTERPOLATE(alpha)));
-			}
-		}
-	} else {
-		painter->setPen(disabledForegroundColor());
-	}
-
-	if (icon().isNull()) {
-		painter->drawText(rect(), Qt::AlignCenter, text());
-		return;
-	}
-
-	QSize textSize(fontMetrics().size(Qt::TextSingleLine, text()));
-	QSize base(size() - textSize);
-
-	const int iw = iconSize().width() + IconPadding;
-	QPoint pos((base.width() - iw) / 2, 0);
-
-	QRect textGeometry(pos + QPoint(0, base.height() / 2), textSize);
-	QRect iconGeometry(pos + QPoint(0, (height() - iconSize().height()) / 2), iconSize());
-
-	/* if (ui::LeftIcon == icon_placement_) { */
-	/* 	textGeometry.translate(iw, 0); */
-	/* } else { */
-	/* 	iconGeometry.translate(textSize.width() + IconPadding, 0); */
-	/* } */
-
-	painter->drawText(textGeometry, Qt::AlignCenter, text());
-
-	QPixmap pixmap = icon().pixmap(iconSize());
-	QPainter icon(&pixmap);
-	icon.setCompositionMode(QPainter::CompositionMode_SourceIn);
-	icon.fillRect(pixmap.rect(), painter->pen().color());
-	painter->drawPixmap(iconGeometry, pixmap);
+        if (isEnabled()) {
+                painter->setPen(foregroundColor());
+                const qreal progress = state_machine_->checkedOverlayProgress();
+
+                if (isCheckable() && progress > 0) {
+                        QColor source = foregroundColor();
+                        QColor dest =
+                          Qt::TransparentMode == bg_mode_ ? Qt::white : backgroundColor();
+                        if (qFuzzyCompare(1, progress)) {
+                                painter->setPen(dest);
+                        } else {
+                                painter->setPen(QColor(COLOR_INTERPOLATE(red),
+                                                       COLOR_INTERPOLATE(green),
+                                                       COLOR_INTERPOLATE(blue),
+                                                       COLOR_INTERPOLATE(alpha)));
+                        }
+                }
+        } else {
+                painter->setPen(disabledForegroundColor());
+        }
+
+        if (icon().isNull()) {
+                painter->drawText(rect(), Qt::AlignCenter, text());
+                return;
+        }
+
+        QSize textSize(fontMetrics().size(Qt::TextSingleLine, text()));
+        QSize base(size() - textSize);
+
+        const int iw = iconSize().width() + IconPadding;
+        QPoint pos((base.width() - iw) / 2, 0);
+
+        QRect textGeometry(pos + QPoint(0, base.height() / 2), textSize);
+        QRect iconGeometry(pos + QPoint(0, (height() - iconSize().height()) / 2), iconSize());
+
+        /* if (ui::LeftIcon == icon_placement_) { */
+        /* 	textGeometry.translate(iw, 0); */
+        /* } else { */
+        /* 	iconGeometry.translate(textSize.width() + IconPadding, 0); */
+        /* } */
+
+        painter->drawText(textGeometry, Qt::AlignCenter, text());
+
+        QPixmap pixmap = icon().pixmap(iconSize());
+        QPainter icon(&pixmap);
+        icon.setCompositionMode(QPainter::CompositionMode_SourceIn);
+        icon.fillRect(pixmap.rect(), painter->pen().color());
+        painter->drawPixmap(iconGeometry, pixmap);
 }
 
 void
 FlatButton::updateClipPath()
 {
-	const qreal radius = corner_radius_;
+        const qreal radius = corner_radius_;
 
-	QPainterPath path;
-	path.addRoundedRect(rect(), radius, radius);
-	ripple_overlay_->setClipPath(path);
+        QPainterPath path;
+        path.addRoundedRect(rect(), radius, radius);
+        ripple_overlay_->setClipPath(path);
 }
 
 FlatButtonStateMachine::FlatButtonStateMachine(FlatButton *parent)
@@ -554,45 +555,45 @@ FlatButtonStateMachine::FlatButtonStateMachine(FlatButton *parent)
   , checked_overlay_progress_(parent->isChecked() ? 1 : 0)
   , was_checked_(false)
 {
-	Q_ASSERT(parent);
+        Q_ASSERT(parent);
 
-	parent->installEventFilter(this);
+        parent->installEventFilter(this);
 
-	config_state_->setInitialState(neutral_state_);
-	addState(top_level_state_);
-	setInitialState(top_level_state_);
+        config_state_->setInitialState(neutral_state_);
+        addState(top_level_state_);
+        setInitialState(top_level_state_);
 
-	checkable_state_->setInitialState(parent->isChecked() ? checked_state_ : unchecked_state_);
-	QSignalTransition *transition;
-	QPropertyAnimation *animation;
+        checkable_state_->setInitialState(parent->isChecked() ? checked_state_ : unchecked_state_);
+        QSignalTransition *transition;
+        QPropertyAnimation *animation;
 
-	transition = new QSignalTransition(this, SIGNAL(buttonChecked()));
-	transition->setTargetState(checked_state_);
-	unchecked_state_->addTransition(transition);
+        transition = new QSignalTransition(this, SIGNAL(buttonChecked()));
+        transition->setTargetState(checked_state_);
+        unchecked_state_->addTransition(transition);
 
-	animation = new QPropertyAnimation(this, "checkedOverlayProgress", this);
-	animation->setDuration(200);
-	transition->addAnimation(animation);
+        animation = new QPropertyAnimation(this, "checkedOverlayProgress", this);
+        animation->setDuration(200);
+        transition->addAnimation(animation);
 
-	transition = new QSignalTransition(this, SIGNAL(buttonUnchecked()));
-	transition->setTargetState(unchecked_state_);
-	checked_state_->addTransition(transition);
+        transition = new QSignalTransition(this, SIGNAL(buttonUnchecked()));
+        transition->setTargetState(unchecked_state_);
+        checked_state_->addTransition(transition);
 
-	animation = new QPropertyAnimation(this, "checkedOverlayProgress", this);
-	animation->setDuration(200);
-	transition->addAnimation(animation);
+        animation = new QPropertyAnimation(this, "checkedOverlayProgress", this);
+        animation->setDuration(200);
+        transition->addAnimation(animation);
 
-	addTransition(button_, QEvent::FocusIn, neutral_state_, neutral_focused_state_);
-	addTransition(button_, QEvent::FocusOut, neutral_focused_state_, neutral_state_);
-	addTransition(button_, QEvent::Enter, neutral_state_, hovered_state_);
-	addTransition(button_, QEvent::Leave, hovered_state_, neutral_state_);
-	addTransition(button_, QEvent::Enter, neutral_focused_state_, hovered_focused_state_);
-	addTransition(button_, QEvent::Leave, hovered_focused_state_, neutral_focused_state_);
-	addTransition(button_, QEvent::FocusIn, hovered_state_, hovered_focused_state_);
-	addTransition(button_, QEvent::FocusOut, hovered_focused_state_, hovered_state_);
-	addTransition(this, SIGNAL(buttonPressed()), hovered_state_, pressed_state_);
-	addTransition(button_, QEvent::Leave, pressed_state_, neutral_focused_state_);
-	addTransition(button_, QEvent::FocusOut, pressed_state_, hovered_state_);
+        addTransition(button_, QEvent::FocusIn, neutral_state_, neutral_focused_state_);
+        addTransition(button_, QEvent::FocusOut, neutral_focused_state_, neutral_state_);
+        addTransition(button_, QEvent::Enter, neutral_state_, hovered_state_);
+        addTransition(button_, QEvent::Leave, hovered_state_, neutral_state_);
+        addTransition(button_, QEvent::Enter, neutral_focused_state_, hovered_focused_state_);
+        addTransition(button_, QEvent::Leave, hovered_focused_state_, neutral_focused_state_);
+        addTransition(button_, QEvent::FocusIn, hovered_state_, hovered_focused_state_);
+        addTransition(button_, QEvent::FocusOut, hovered_focused_state_, hovered_state_);
+        addTransition(this, SIGNAL(buttonPressed()), hovered_state_, pressed_state_);
+        addTransition(button_, QEvent::Leave, pressed_state_, neutral_focused_state_);
+        addTransition(button_, QEvent::FocusOut, pressed_state_, hovered_state_);
 }
 
 FlatButtonStateMachine::~FlatButtonStateMachine()
@@ -602,97 +603,105 @@ FlatButtonStateMachine::~FlatButtonStateMachine()
 void
 FlatButtonStateMachine::setOverlayOpacity(qreal opacity)
 {
-	overlay_opacity_ = opacity;
-	button_->update();
+        overlay_opacity_ = opacity;
+        button_->update();
 }
 
 void
 FlatButtonStateMachine::setCheckedOverlayProgress(qreal opacity)
 {
-	checked_overlay_progress_ = opacity;
-	button_->update();
+        checked_overlay_progress_ = opacity;
+        button_->update();
 }
 
 void
 FlatButtonStateMachine::startAnimations()
 {
-	start();
+        start();
 }
 
 void
 FlatButtonStateMachine::setupProperties()
 {
-	QColor overlayColor;
+        QColor overlayColor;
 
-	if (Qt::TransparentMode == button_->backgroundMode()) {
-		overlayColor = button_->backgroundColor();
-	} else {
-		overlayColor = button_->foregroundColor();
-	}
+        if (Qt::TransparentMode == button_->backgroundMode()) {
+                overlayColor = button_->backgroundColor();
+        } else {
+                overlayColor = button_->foregroundColor();
+        }
 
-	const qreal baseOpacity = button_->baseOpacity();
+        const qreal baseOpacity = button_->baseOpacity();
 
-	neutral_state_->assignProperty(this, "overlayOpacity", 0);
-	neutral_focused_state_->assignProperty(this, "overlayOpacity", 0);
-	hovered_state_->assignProperty(this, "overlayOpacity", baseOpacity);
-	hovered_focused_state_->assignProperty(this, "overlayOpacity", baseOpacity);
-	pressed_state_->assignProperty(this, "overlayOpacity", baseOpacity);
-	checked_state_->assignProperty(this, "checkedOverlayProgress", 1);
-	unchecked_state_->assignProperty(this, "checkedOverlayProgress", 0);
+        neutral_state_->assignProperty(this, "overlayOpacity", 0);
+        neutral_focused_state_->assignProperty(this, "overlayOpacity", 0);
+        hovered_state_->assignProperty(this, "overlayOpacity", baseOpacity);
+        hovered_focused_state_->assignProperty(this, "overlayOpacity", baseOpacity);
+        pressed_state_->assignProperty(this, "overlayOpacity", baseOpacity);
+        checked_state_->assignProperty(this, "checkedOverlayProgress", 1);
+        unchecked_state_->assignProperty(this, "checkedOverlayProgress", 0);
 
-	button_->update();
+        button_->update();
 }
 
 void
 FlatButtonStateMachine::updateCheckedStatus()
 {
-	const bool checked = button_->isChecked();
-	if (was_checked_ != checked) {
-		was_checked_ = checked;
-		if (checked) {
-			emit buttonChecked();
-		} else {
-			emit buttonUnchecked();
-		}
-	}
+        const bool checked = button_->isChecked();
+        if (was_checked_ != checked) {
+                was_checked_ = checked;
+                if (checked) {
+                        emit buttonChecked();
+                } else {
+                        emit buttonUnchecked();
+                }
+        }
 }
 
 bool
 FlatButtonStateMachine::eventFilter(QObject *watched, QEvent *event)
 {
-	if (QEvent::FocusIn == event->type()) {
-		QFocusEvent *focusEvent = static_cast<QFocusEvent *>(event);
-		if (focusEvent && Qt::MouseFocusReason == focusEvent->reason()) {
-			emit buttonPressed();
-			return true;
-		}
-	}
+        if (QEvent::FocusIn == event->type()) {
+                QFocusEvent *focusEvent = static_cast<QFocusEvent *>(event);
+                if (focusEvent && Qt::MouseFocusReason == focusEvent->reason()) {
+                        emit buttonPressed();
+                        return true;
+                }
+        }
 
-	return QStateMachine::eventFilter(watched, event);
+        return QStateMachine::eventFilter(watched, event);
 }
 
 void
-FlatButtonStateMachine::addTransition(QObject *object, const char *signal, QState *fromState, QState *toState)
+FlatButtonStateMachine::addTransition(QObject *object,
+                                      const char *signal,
+                                      QState *fromState,
+                                      QState *toState)
 {
-	addTransition(new QSignalTransition(object, signal), fromState, toState);
+        addTransition(new QSignalTransition(object, signal), fromState, toState);
 }
 
 void
-FlatButtonStateMachine::addTransition(QObject *object, QEvent::Type eventType, QState *fromState, QState *toState)
+FlatButtonStateMachine::addTransition(QObject *object,
+                                      QEvent::Type eventType,
+                                      QState *fromState,
+                                      QState *toState)
 {
-	addTransition(new QEventTransition(object, eventType), fromState, toState);
+        addTransition(new QEventTransition(object, eventType), fromState, toState);
 }
 
 void
-FlatButtonStateMachine::addTransition(QAbstractTransition *transition, QState *fromState, QState *toState)
+FlatButtonStateMachine::addTransition(QAbstractTransition *transition,
+                                      QState *fromState,
+                                      QState *toState)
 {
-	transition->setTargetState(toState);
+        transition->setTargetState(toState);
 
-	QPropertyAnimation *animation;
+        QPropertyAnimation *animation;
 
-	animation = new QPropertyAnimation(this, "overlayOpacity", this);
-	animation->setDuration(150);
-	transition->addAnimation(animation);
+        animation = new QPropertyAnimation(this, "overlayOpacity", this);
+        animation->setDuration(150);
+        transition->addAnimation(animation);
 
-	fromState->addTransition(transition);
+        fromState->addTransition(transition);
 }