1 /** 2 * UGENE - Integrated Bioinformatics Tools. 3 * Copyright (C) 2008-2021 UniPro <ugene@unipro.ru> 4 * http://ugene.net 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 9 * of the License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 19 * MA 02110-1301, USA. 20 */ 21 22 #ifndef _U2_WIDGET_SCREENSHOT_EXPORT_TASK_H_ 23 #define _U2_WIDGET_SCREENSHOT_EXPORT_TASK_H_ 24 25 #include "ImageExportTask.h" 26 27 class QWidget; 28 29 namespace U2 { 30 31 class WidgetScreenshotExportTask : public ImageExportTask { 32 Q_OBJECT 33 public: WidgetScreenshotExportTask(QWidget * widget,const ImageExportTaskSettings & settings)34 WidgetScreenshotExportTask(QWidget *widget, const ImageExportTaskSettings &settings) 35 : ImageExportTask(settings), 36 widget(widget) { 37 } 38 virtual void run() = 0; 39 40 protected: 41 QWidget *widget; 42 }; 43 44 class WidgetScreenshotExportToSvgTask : public WidgetScreenshotExportTask { 45 Q_OBJECT 46 public: WidgetScreenshotExportToSvgTask(QWidget * widget,const ImageExportTaskSettings & settings)47 WidgetScreenshotExportToSvgTask(QWidget *widget, const ImageExportTaskSettings &settings) 48 : WidgetScreenshotExportTask(widget, settings) { 49 } 50 void run(); 51 }; 52 53 class WidgetScreenshotExportToPdfTask : public WidgetScreenshotExportTask { 54 public: WidgetScreenshotExportToPdfTask(QWidget * widget,const ImageExportTaskSettings & settings)55 WidgetScreenshotExportToPdfTask(QWidget *widget, const ImageExportTaskSettings &settings) 56 : WidgetScreenshotExportTask(widget, settings) { 57 } 58 void run(); 59 }; 60 61 class WidgetScreenshotExportToBitmapTask : public WidgetScreenshotExportTask { 62 public: WidgetScreenshotExportToBitmapTask(QWidget * widget,const ImageExportTaskSettings & settings)63 WidgetScreenshotExportToBitmapTask(QWidget *widget, const ImageExportTaskSettings &settings) 64 : WidgetScreenshotExportTask(widget, settings) { 65 } 66 void run(); 67 }; 68 69 class WidgetScreenshotImageExportController : public ImageExportController { 70 Q_OBJECT 71 public: 72 WidgetScreenshotImageExportController(QWidget *widget); 73 74 int getImageWidth() const; 75 int getImageHeight() const; 76 77 protected: initSettingsWidget()78 void initSettingsWidget() { 79 } 80 81 Task *getExportToSvgTask(const ImageExportTaskSettings &settings) const; 82 Task *getExportToPdfTask(const ImageExportTaskSettings &settings) const; 83 Task *getExportToBitmapTask(const ImageExportTaskSettings &settings) const; 84 85 private: 86 QWidget *widget; 87 }; 88 89 } // namespace U2 90 91 #endif // _U2_WIDGET_SCREENSHOT_EXPORT_TASK_H_ 92