diff --git a/src/libcalamaresui/widgets/ClickableLabel.cpp b/src/libcalamaresui/widgets/ClickableLabel.cpp new file mode 100644 index 000000000..d363737fe --- /dev/null +++ b/src/libcalamaresui/widgets/ClickableLabel.cpp @@ -0,0 +1,52 @@ +/* === This file is part of Calamares - === + * + * Copyright 2014, Teo Mrnjavac + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "ClickableLabel.h" + +#include + + +ClickableLabel::ClickableLabel( QWidget* parent, Qt::WindowFlags f ) + : QLabel( parent, f ) +{} + + +ClickableLabel::ClickableLabel( const QString& text, QWidget* parent, Qt::WindowFlags f ) + : QLabel( text, parent, f ) +{} + + +ClickableLabel::~ClickableLabel() +{} + + +void +ClickableLabel::mousePressEvent( QMouseEvent* event ) +{ + QLabel::mousePressEvent( event ); + m_time.start(); +} + + +void +ClickableLabel::mouseReleaseEvent( QMouseEvent* event ) +{ + QLabel::mouseReleaseEvent( event ); + if ( m_time.elapsed() < qApp->doubleClickInterval() ) + emit clicked(); +} diff --git a/src/libcalamaresui/widgets/ClickableLabel.h b/src/libcalamaresui/widgets/ClickableLabel.h new file mode 100644 index 000000000..fc198b98b --- /dev/null +++ b/src/libcalamaresui/widgets/ClickableLabel.h @@ -0,0 +1,44 @@ +/* === This file is part of Calamares - === + * + * Copyright 2014, Teo Mrnjavac + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef CLICKABLELABEL_H +#define CLICKABLELABEL_H + +#include +#include + +class ClickableLabel : public QLabel +{ + Q_OBJECT +public: + explicit ClickableLabel( QWidget* parent = nullptr, Qt::WindowFlags f = 0 ); + explicit ClickableLabel( const QString& text, QWidget* parent = nullptr, Qt::WindowFlags f = 0 ); + virtual ~ClickableLabel(); + +signals: + void clicked(); + +protected: + virtual void mousePressEvent( QMouseEvent* event ); + virtual void mouseReleaseEvent( QMouseEvent* event ); + +private: + QTime m_time; +}; + +#endif // CLICKABLELABEL_H