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