1 /* 2 SPDX-FileCopyrightText: 2005 Jason Harris <kstars@30doradus.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include "ui_thumbnailpicker.h" 10 11 #include <KIO/Job> 12 13 #include <QDialog> 14 #include <QPixmap> 15 16 class QRect; 17 class KJob; 18 class DetailDialog; 19 class SkyObject; 20 21 class ThumbnailPickerUI : public QFrame, public Ui::ThumbnailPicker 22 { 23 Q_OBJECT 24 public: 25 explicit ThumbnailPickerUI(QWidget *p); 26 }; 27 28 /** 29 * @short Dialog for modifying an object's thumbnail image 30 * 31 * @author Jason Harris 32 */ 33 class ThumbnailPicker : public QDialog 34 { 35 Q_OBJECT 36 public: 37 ThumbnailPicker(SkyObject *o, const QPixmap ¤t, QWidget *parent = nullptr, double w = 200, double h = 200, 38 QString cap = i18n("Choose Thumbnail Image")); 39 ~ThumbnailPicker() override; 40 image()41 QPixmap *image() { return Image; } currentListImage()42 QPixmap *currentListImage() { return PixList.at(SelectedImageIndex); } imageFound()43 bool imageFound() const { return bImageFound; } imageRect()44 QRect *imageRect() const { return ImageRect; } 45 46 private slots: 47 void slotEditImage(); 48 void slotUnsetImage(); 49 void slotSetFromList(int i); 50 void slotSetFromURL(); 51 void slotFillList(); 52 void slotProcessGoogleResult(KJob *); 53 54 /** Make sure download has finished, then make sure file exists, then add image to list */ 55 void slotJobResult(KJob *); 56 57 private: 58 QPixmap shrinkImage(QPixmap *original, int newSize, bool setImage = false); 59 void parseGooglePage(const QString &URL); 60 61 int SelectedImageIndex; 62 double thumbWidth, thumbHeight; 63 ThumbnailPickerUI *ui; 64 QPixmap *Image; 65 SkyObject *Object; 66 QList<KIO::Job *> JobList; 67 QList<QPixmap *> PixList; 68 bool bImageFound; 69 QRect *ImageRect; 70 }; 71