File indexing completed on 2024-04-21 03:42:36
0001 /* 0002 SPDX-FileCopyrightText: 2005 Jason Harris <kstars@30doradus.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "thumbnaileditor.h" 0008 0009 #include "thumbnailpicker.h" 0010 #include "ui_thumbnaileditor.h" 0011 0012 #include <KLocalizedString> 0013 0014 #include <QHBoxLayout> 0015 #include <QLabel> 0016 #include <QMouseEvent> 0017 #include <QPaintEvent> 0018 #include <QPixmap> 0019 0020 #include <QDebug> 0021 #include <QDialogButtonBox> 0022 #include <QPushButton> 0023 0024 ThumbnailEditorUI::ThumbnailEditorUI(QWidget *parent) : QFrame(parent) 0025 { 0026 setupUi(this); 0027 } 0028 0029 ThumbnailEditor::ThumbnailEditor(ThumbnailPicker *_tp, double _w, double _h) : QDialog(_tp), tp(_tp) 0030 { 0031 #ifdef Q_OS_OSX 0032 setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint); 0033 #endif 0034 ui = new ThumbnailEditorUI(this); 0035 w = _w; 0036 h = _h; 0037 ui->MessageLabel->setText(i18n("Crop region will be scaled to [ %1 * %2 ]", w, h)); 0038 0039 setWindowTitle(i18nc("@title:window", "Edit Thumbnail Image")); 0040 QVBoxLayout *mainLayout = new QVBoxLayout; 0041 mainLayout->addWidget(ui); 0042 setLayout(mainLayout); 0043 0044 QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); 0045 mainLayout->addWidget(buttonBox); 0046 connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); 0047 connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); 0048 0049 ui->ImageCanvas->setCropRect(tp->imageRect()->x(), tp->imageRect()->y(), tp->imageRect()->width(), 0050 tp->imageRect()->height()); 0051 ui->ImageCanvas->setImage(tp->currentListImage()); 0052 0053 //DEBUG 0054 //qDebug() << Q_FUNC_INFO << tp->currentListImage()->size(); 0055 0056 connect(ui->ImageCanvas, SIGNAL(cropRegionModified()), SLOT(slotUpdateCropLabel())); 0057 slotUpdateCropLabel(); 0058 0059 update(); 0060 } 0061 0062 QPixmap ThumbnailEditor::thumbnail() 0063 { 0064 QImage im = ui->ImageCanvas->croppedImage().toImage(); 0065 im = im.scaled(w, h, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); 0066 return QPixmap::fromImage(im); 0067 } 0068 0069 void ThumbnailEditor::slotUpdateCropLabel() 0070 { 0071 QRect *r = ui->ImageCanvas->cropRect(); 0072 ui->CropLabel->setText(i18n("Crop region: [%1,%2 %3x%4]", r->left(), r->top(), r->width(), r->height())); 0073 }