0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-27 18:08:10 +03:00
LimeReport/include/lrpreviewreportwidget.h

94 lines
2.6 KiB
C
Raw Normal View History

2016-03-30 23:04:59 +03:00
#ifndef LRPREVIEWREPORTWIDGET_H
#define LRPREVIEWREPORTWIDGET_H
#include <QWidget>
2018-07-11 02:42:43 +03:00
#include <QTimer>
#include <QPrinter>
2016-03-30 23:04:59 +03:00
#include "lrglobal.h"
#include "lrpreparedpagesintf.h"
2016-03-30 23:04:59 +03:00
namespace LimeReport {
namespace Ui {
class PreviewReportWidget;
}
class PreviewReportWidgetPrivate;
class ReportEnginePrivate;
class ReportEngine;
class PageDesignIntf;
2016-03-30 23:04:59 +03:00
class LIMEREPORT_EXPORT PreviewReportWidget : public QWidget
{
Q_OBJECT
friend class ReportEnginePrivate;
friend class PreviewReportWindow;
friend class PreviewReportWidgetPrivate;
public:
explicit PreviewReportWidget(ReportEngine *report, QWidget *parent = 0);
2018-06-23 13:09:27 +03:00
~PreviewReportWidget();
QList<QString> aviableExporters();
bool exportReport(QString exporterName, const QMap<QString, QVariant>& params = QMap<QString, QVariant>());
2018-07-11 02:42:43 +03:00
ScaleType scaleType() const;
int scalePercent() const;
void setScaleType(const ScaleType &scaleType, int percent = 0);
void setPreviewPageBackgroundColor(QColor color);
QColor previewPageBackgroundColor();
QPrinter *defaultPrinter() const;
void setDefaultPrinter(QPrinter *defaultPrinter);
void startInsertTextItem();
void activateItemSelectionMode();
void deleteSelectedItems();
void activateCurrentPage();
2016-03-30 23:04:59 +03:00
public slots:
void refreshPages();
2016-04-02 03:38:23 +03:00
void zoomIn();
void zoomOut();
void firstPage();
void priorPage();
void nextPage();
void lastPage();
void print();
void printToPDF();
2019-11-19 23:04:04 +03:00
void printToExcel();
2016-04-02 03:38:23 +03:00
void pageNavigatorChanged(int value);
void saveToFile();
void setScalePercent(int percent);
void fitWidth();
void fitPage();
2018-07-11 02:42:43 +03:00
protected:
void resizeEvent(QResizeEvent *);
2016-03-30 23:04:59 +03:00
signals:
void pageChanged(int page);
2016-04-02 03:38:23 +03:00
void scalePercentChanged(int percent);
void pagesSet(int pageCount);
void itemInserted(LimeReport::PageDesignIntf* report, QPointF pos, const QString& ItemType);
void onSave(bool& saved, LimeReport::IPreparedPages* pages);
2016-03-30 23:04:59 +03:00
private slots:
void slotSliderMoved(int value);
void reportEngineDestroyed(QObject* object);
2016-04-05 23:06:11 +03:00
void slotZoomed(double);
2018-07-11 02:42:43 +03:00
void resizeDone();
private:
void initPreview();
void setErrorsMesagesVisible(bool visible);
void setErrorMessages(const QStringList &value);
2016-04-02 03:38:23 +03:00
void emitPageSet();
2016-03-30 23:04:59 +03:00
private:
Ui::PreviewReportWidget *ui;
PreviewReportWidgetPrivate* d_ptr;
2018-07-11 02:42:43 +03:00
ScaleType m_scaleType;
int m_scalePercent;
QTimer m_resizeTimer;
QColor m_previewPageBackgroundColor;
QPrinter* m_defaultPrinter;
void printPages(QPrinter *printer);
bool m_scaleChanging;
2016-03-30 23:04:59 +03:00
};
} // namespace LimeReport
#endif // LRPREVIEWREPORTWIDGET_H