andre@24: /* Copyright (C) 2015 by ETH Zürich andre@24: * Software engineering by Intevation GmbH andre@24: * andre@24: * This file is Free Software under the GNU GPL (v>=2) andre@24: * and comes with ABSOLUTELY NO WARRANTY! andre@24: * See LICENSE.txt for details. andre@24: */ andre@24: andre@3: #include "imagelabel.h" andre@3: andre@3: ImageLabel::ImageLabel(QWidget *parent) : andre@3: QWidget(parent) { andre@3: label = new QLabel(this); andre@3: label->setScaledContents(true); andre@3: label->setFixedSize(0,0); andre@3: } andre@3: andre@3: void ImageLabel::resizeEvent(QResizeEvent *event) { andre@3: QWidget::resizeEvent(event); andre@3: resizeImage(); andre@3: } andre@3: andre@3: const QPixmap* ImageLabel::pixmap() const { andre@3: return label->pixmap(); andre@3: } andre@3: andre@3: void ImageLabel::setPixmap (const QPixmap &pixmap){ andre@3: label->setPixmap(pixmap); andre@3: resizeImage(); andre@3: } andre@3: andre@3: void ImageLabel::resizeImage() { andre@3: QSize pixSize = label->pixmap()->size(); andre@3: pixSize.scale(size(), Qt::KeepAspectRatio); andre@3: label->setFixedSize(pixSize); andre@3: } andre@38: andre@38: void ImageLabel::mouseDoubleClickEvent(QMouseEvent * e) { andre@38: QWidget::mouseDoubleClickEvent(e); andre@38: emit doubleClicked(); andre@38: } andre@38: andre@38: void ImageLabel::closeEvent(QCloseEvent *e) { andre@38: Q_UNUSED(e); andre@38: emit closeRequested(); andre@38: }