diff --git a/include/lrglobal.h b/include/lrglobal.h index b131207..be094a4 100644 --- a/include/lrglobal.h +++ b/include/lrglobal.h @@ -80,6 +80,13 @@ namespace Const{ QString extractClassName(QString className); enum RenderPass {FirstPass, SecondPass}; enum ArrangeType {AsNeeded, Force}; + enum PreviewHint{ShowAllPreviewBars=0, + HidePreviewToolBar=1, + HidePreviewMenuBar=2, + HidePreviewStatusBar=4, + HideAllPreviewBar=7}; + Q_DECLARE_FLAGS(PreviewHints, PreviewHint) + class ReportError : public std::runtime_error{ public: ReportError(const QString& message):std::runtime_error(message.toStdString()){} @@ -104,6 +111,6 @@ namespace Const{ } // namespace LimeReport - +Q_DECLARE_OPERATORS_FOR_FLAGS(LimeReport::PreviewHints) #endif // GLOBAL_H diff --git a/include/lrreportengine.h b/include/lrreportengine.h index 94b78d2..c2cdfe8 100644 --- a/include/lrreportengine.h +++ b/include/lrreportengine.h @@ -77,7 +77,7 @@ public: void printToFile(const QString& fileName); PageDesignIntf *createPreviewScene(QObject *parent = 0); bool printToPDF(const QString& fileName); - void previewReport(); + void previewReport(PreviewHints hints = ShowAllPreviewBars); void designReport(); void setShowProgressDialog(bool value); IDataSourceManager* dataManager(); diff --git a/limereport/lrglobal.h b/limereport/lrglobal.h index b131207..be094a4 100644 --- a/limereport/lrglobal.h +++ b/limereport/lrglobal.h @@ -80,6 +80,13 @@ namespace Const{ QString extractClassName(QString className); enum RenderPass {FirstPass, SecondPass}; enum ArrangeType {AsNeeded, Force}; + enum PreviewHint{ShowAllPreviewBars=0, + HidePreviewToolBar=1, + HidePreviewMenuBar=2, + HidePreviewStatusBar=4, + HideAllPreviewBar=7}; + Q_DECLARE_FLAGS(PreviewHints, PreviewHint) + class ReportError : public std::runtime_error{ public: ReportError(const QString& message):std::runtime_error(message.toStdString()){} @@ -104,6 +111,6 @@ namespace Const{ } // namespace LimeReport - +Q_DECLARE_OPERATORS_FOR_FLAGS(LimeReport::PreviewHints) #endif // GLOBAL_H diff --git a/limereport/lrpreviewreportwindow.cpp b/limereport/lrpreviewreportwindow.cpp index f4adbde..ea106a4 100644 --- a/limereport/lrpreviewreportwindow.cpp +++ b/limereport/lrpreviewreportwindow.cpp @@ -149,6 +149,21 @@ void PreviewReportWindow::setErrorMessages(const QStringList &value){ m_previewReportWidget->setErrorMessages(value); } +void PreviewReportWindow::setToolBarVisible(bool value) +{ + ui->toolBar->setVisible(value); +} + +void PreviewReportWindow::setStatusBarVisible(bool value) +{ + ui->statusbar->setVisible(value); +} + +void PreviewReportWindow::setMenuVisible(bool value) +{ + ui->menubar->setVisible(value); +} + QSettings*PreviewReportWindow::settings() { if (m_settings){ diff --git a/limereport/lrpreviewreportwindow.h b/limereport/lrpreviewreportwindow.h index dbc6995..8f5a1d1 100644 --- a/limereport/lrpreviewreportwindow.h +++ b/limereport/lrpreviewreportwindow.h @@ -62,6 +62,9 @@ public: void initPreview(int pagesCount); void setSettings(QSettings* value); void setErrorMessages(const QStringList& value); + void setToolBarVisible(bool value); + void setStatusBarVisible(bool value); + void setMenuVisible(bool value); QSettings* settings(); protected: void writeSetting(); diff --git a/limereport/lrreportengine.cpp b/limereport/lrreportengine.cpp index e47f3ec..c6ba750 100644 --- a/limereport/lrreportengine.cpp +++ b/limereport/lrreportengine.cpp @@ -355,7 +355,7 @@ bool ReportEnginePrivate::printToPDF(const QString &fileName) return false; } -void ReportEnginePrivate::previewReport() +void ReportEnginePrivate::previewReport(PreviewHints hints) { QTime start = QTime::currentTime(); try{ @@ -375,6 +375,11 @@ void ReportEnginePrivate::previewReport() if (!dataManager()->errorsList().isEmpty()){ w->setErrorMessages(dataManager()->errorsList()); } + + w->setMenuVisible(!hints.testFlag(HidePreviewMenuBar)); + w->setStatusBarVisible(!hints.testFlag(HidePreviewStatusBar)); + w->setToolBarVisible(!hints.testFlag(HidePreviewToolBar)); + m_activePreview = w; connect(w,SIGNAL(destroyed(QObject*)), this, SLOT(slotPreviewWindowDestroed(QObject*))); qDebug()<<"render time ="<printToPDF(fileName); } -void ReportEngine::previewReport() +void ReportEngine::previewReport(PreviewHints hints) { Q_D(ReportEngine); if (m_settings) d->setSettings(m_settings); - d->previewReport(); + d->previewReport(hints); } void ReportEngine::designReport() diff --git a/limereport/lrreportengine.h b/limereport/lrreportengine.h index 94b78d2..c2cdfe8 100644 --- a/limereport/lrreportengine.h +++ b/limereport/lrreportengine.h @@ -77,7 +77,7 @@ public: void printToFile(const QString& fileName); PageDesignIntf *createPreviewScene(QObject *parent = 0); bool printToPDF(const QString& fileName); - void previewReport(); + void previewReport(PreviewHints hints = ShowAllPreviewBars); void designReport(); void setShowProgressDialog(bool value); IDataSourceManager* dataManager(); diff --git a/limereport/lrreportengine_p.h b/limereport/lrreportengine_p.h index aa83886..818f52e 100644 --- a/limereport/lrreportengine_p.h +++ b/limereport/lrreportengine_p.h @@ -86,7 +86,7 @@ public: bool printPages(ReportPages pages, QPrinter *printer, PrintRange printRange = PrintRange()); void printToFile(const QString& fileName); bool printToPDF(const QString& fileName); - void previewReport(); + void previewReport(PreviewHints hints = ShowAllPreviewBars); void designReport(); void setSettings(QSettings* value); void setShowProgressDialog(bool value){m_showProgressDialog = value;}