1 #ifndef LRPREVIEWREPORTWIDGET_H 2 #define LRPREVIEWREPORTWIDGET_H 3 4 #include <QWidget> 5 #include <QTimer> 6 #include <QPrinter> 7 #include "lrglobal.h" 8 #include "lrpreparedpagesintf.h" 9 10 namespace LimeReport { 11 12 namespace Ui { 13 class PreviewReportWidget; 14 } 15 16 class PreviewReportWidgetPrivate; 17 class ReportEnginePrivate; 18 class ReportEngine; 19 class PageDesignIntf; 20 21 class LIMEREPORT_EXPORT PreviewReportWidget : public QWidget 22 { 23 Q_OBJECT 24 friend class ReportEnginePrivate; 25 friend class PreviewReportWindow; 26 friend class PreviewReportWidgetPrivate; 27 public: 28 explicit PreviewReportWidget(ReportEngine *report, QWidget *parent = 0); 29 ~PreviewReportWidget(); 30 QList<QString> aviableExporters(); 31 bool exportReport(QString exporterName, const QMap<QString, QVariant>& params = QMap<QString, QVariant>()); 32 ScaleType scaleType() const; 33 int scalePercent() const; 34 void setScaleType(const ScaleType &scaleType, int percent = 0); 35 void setPreviewPageBackgroundColor(QColor color); 36 QColor previewPageBackgroundColor(); 37 QPrinter *defaultPrinter() const; 38 void setDefaultPrinter(QPrinter *defaultPrinter); 39 void startInsertTextItem(); 40 void activateItemSelectionMode(); 41 void deleteSelectedItems(); 42 void activateCurrentPage(); 43 44 public slots: 45 void refreshPages(); 46 void zoomIn(); 47 void zoomOut(); 48 49 void firstPage(); 50 void priorPage(); 51 void nextPage(); 52 void lastPage(); 53 54 void print(); 55 void printToPDF(); 56 void pageNavigatorChanged(int value); 57 void saveToFile(); 58 void setScalePercent(int percent); 59 void fitWidth(); 60 void fitPage(); 61 protected: 62 void resizeEvent(QResizeEvent *); 63 signals: 64 void pageChanged(int page); 65 void scalePercentChanged(int percent); 66 void pagesSet(int pageCount); 67 void itemInserted(LimeReport::PageDesignIntf* report, QPointF pos, const QString& ItemType); 68 void onSave(bool& saved, LimeReport::IPreparedPages* pages); 69 private slots: 70 void slotSliderMoved(int value); 71 void reportEngineDestroyed(QObject* object); 72 void slotZoomed(double); 73 void resizeDone(); 74 private: 75 void initPreview(); 76 void setErrorsMesagesVisible(bool visible); 77 void setErrorMessages(const QStringList &value); 78 void emitPageSet(); 79 private: 80 Ui::PreviewReportWidget *ui; 81 PreviewReportWidgetPrivate* d_ptr; 82 ScaleType m_scaleType; 83 int m_scalePercent; 84 QTimer m_resizeTimer; 85 QColor m_previewPageBackgroundColor; 86 QPrinter* m_defaultPrinter; 87 void printPages(QPrinter *printer); 88 }; 89 90 } // namespace LimeReport 91 #endif // LRPREVIEWREPORTWIDGET_H 92