/digikam-2.7.0/extra/kipi-plugins/debianscreenshots/kclickableimagelabel.cpp
C++ | 83 lines | 48 code | 13 blank | 22 comment | 3 complexity | e500ccff8f1714c834ca225acc06e1a3 MD5 | raw file
Possible License(s): CC-BY-SA-3.0, LGPL-2.1, LGPL-3.0, LGPL-2.0, MPL-2.0-no-copyleft-exception, GPL-3.0, GPL-2.0
- /* ============================================================
- *
- * This file is a part of kipi-plugins project
- * http://www.digikam.org
- *
- * Date : 2010-11-29
- * Description : a kipi plugin to export images to Debian Screenshots
- *
- * Copyright (C) 2010 by Pau Garcia i Quiles <pgquiles at elpauer dot org>
- *
- * This program 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 2, or (at your option) any later version.
- *
- * This program 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.
- *
- * ============================================================ */
- #include "kclickableimagelabel.moc"
- // Qt includes
- #include <QDesktopServices>
- #include <QRect>
- #include <QCursor>
- #include <QDebug>
- namespace KIPIDebianScreenshotsPlugin
- {
- KClickableImageLabel::KClickableImageLabel(QWidget* parent, Qt::WindowFlags f)
- : QLabel(parent, f), m_url(QUrl())
- {
- setMouseTracking(true);
- }
- KClickableImageLabel::KClickableImageLabel(const QString& text, QWidget* parent, Qt::WindowFlags f)
- : QLabel(text, parent, f), m_url(QUrl())
- {
- }
- void KClickableImageLabel::setUrl(const QUrl& url)
- {
- m_url = url;
- }
- QUrl KClickableImageLabel::url() const
- {
- return m_url;
- }
- void KClickableImageLabel::mousePressEvent(QMouseEvent* /* ev */)
- {
- if(m_url.isEmpty())
- {
- return;
- }
- QDesktopServices::openUrl(m_url);
- }
- void KClickableImageLabel::mouseMoveEvent(QMouseEvent* /* ev */)
- {
- if(pixmap()->isNull())
- {
- return;
- }
- if( rect().contains(mapFromGlobal(QCursor::pos())) )
- {
- setCursor(Qt::PointingHandCursor);
- }
- else
- {
- setCursor(Qt::ArrowCursor);
- }
- }
- } // KIPIDebianScreenshotsPlugin