Fix #46 Allow to customize the Preview dialog

hints (ShowAllPreviewBars, HidePreviewToolBar, HidePreviewMenuBar, HidePreviewStatusBar, HideAllPreviewBar) have been added to preview method
This commit is contained in:
Arin Alex 2016-08-02 22:33:33 +03:00
parent c52a0240c6
commit 7ce974090e
8 changed files with 46 additions and 9 deletions

View File

@ -80,6 +80,13 @@ namespace Const{
QString extractClassName(QString className); QString extractClassName(QString className);
enum RenderPass {FirstPass, SecondPass}; enum RenderPass {FirstPass, SecondPass};
enum ArrangeType {AsNeeded, Force}; 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{ class ReportError : public std::runtime_error{
public: public:
ReportError(const QString& message):std::runtime_error(message.toStdString()){} ReportError(const QString& message):std::runtime_error(message.toStdString()){}
@ -104,6 +111,6 @@ namespace Const{
} // namespace LimeReport } // namespace LimeReport
Q_DECLARE_OPERATORS_FOR_FLAGS(LimeReport::PreviewHints)
#endif // GLOBAL_H #endif // GLOBAL_H

View File

@ -71,7 +71,7 @@ public:
bool printReport(QPrinter *printer=0); bool printReport(QPrinter *printer=0);
void printToFile(const QString& fileName); void printToFile(const QString& fileName);
bool printToPDF(const QString& fileName); bool printToPDF(const QString& fileName);
void previewReport(); void previewReport(PreviewHints hints = ShowAllPreviewBars);
void designReport(); void designReport();
void setShowProgressDialog(bool value); void setShowProgressDialog(bool value);
IDataSourceManager* dataManager(); IDataSourceManager* dataManager();

View File

@ -80,6 +80,13 @@ namespace Const{
QString extractClassName(QString className); QString extractClassName(QString className);
enum RenderPass {FirstPass, SecondPass}; enum RenderPass {FirstPass, SecondPass};
enum ArrangeType {AsNeeded, Force}; 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{ class ReportError : public std::runtime_error{
public: public:
ReportError(const QString& message):std::runtime_error(message.toStdString()){} ReportError(const QString& message):std::runtime_error(message.toStdString()){}
@ -104,6 +111,6 @@ namespace Const{
} // namespace LimeReport } // namespace LimeReport
Q_DECLARE_OPERATORS_FOR_FLAGS(LimeReport::PreviewHints)
#endif // GLOBAL_H #endif // GLOBAL_H

View File

@ -136,6 +136,21 @@ void PreviewReportWindow::setErrorMessages(const QStringList &value){
m_previewReportWidget->setErrorMessages(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() QSettings*PreviewReportWindow::settings()
{ {
if (m_settings){ if (m_settings){
@ -312,4 +327,4 @@ void PreviewReportWindow::on_actionShowMessages_toggled(bool value)
m_previewReportWidget->setErrorsMesagesVisible(value); m_previewReportWidget->setErrorsMesagesVisible(value);
} }
}// namespace LimeReport }// namespace LimeReport

View File

@ -59,6 +59,9 @@ public:
void initPreview(int pagesCount); void initPreview(int pagesCount);
void setSettings(QSettings* value); void setSettings(QSettings* value);
void setErrorMessages(const QStringList& value); void setErrorMessages(const QStringList& value);
void setToolBarVisible(bool value);
void setStatusBarVisible(bool value);
void setMenuVisible(bool value);
QSettings* settings(); QSettings* settings();
protected: protected:
void writeSetting(); void writeSetting();

View File

@ -307,7 +307,7 @@ bool ReportEnginePrivate::printToPDF(const QString &fileName)
return false; return false;
} }
void ReportEnginePrivate::previewReport() void ReportEnginePrivate::previewReport(PreviewHints hints)
{ {
QTime start = QTime::currentTime(); QTime start = QTime::currentTime();
try{ try{
@ -327,6 +327,11 @@ void ReportEnginePrivate::previewReport()
if (!dataManager()->errorsList().isEmpty()){ if (!dataManager()->errorsList().isEmpty()){
w->setErrorMessages(dataManager()->errorsList()); w->setErrorMessages(dataManager()->errorsList());
} }
w->setMenuVisible(!hints.testFlag(HidePreviewMenuBar));
w->setStatusBarVisible(!hints.testFlag(HidePreviewStatusBar));
w->setToolBarVisible(!hints.testFlag(HidePreviewToolBar));
m_activePreview = w; m_activePreview = w;
connect(w,SIGNAL(destroyed(QObject*)), this, SLOT(slotPreviewWindowDestroed(QObject*))); connect(w,SIGNAL(destroyed(QObject*)), this, SLOT(slotPreviewWindowDestroed(QObject*)));
qDebug()<<"render time ="<<start.msecsTo(QTime::currentTime()); qDebug()<<"render time ="<<start.msecsTo(QTime::currentTime());
@ -654,12 +659,12 @@ bool ReportEngine::printToPDF(const QString &fileName)
return d->printToPDF(fileName); return d->printToPDF(fileName);
} }
void ReportEngine::previewReport() void ReportEngine::previewReport(PreviewHints hints)
{ {
Q_D(ReportEngine); Q_D(ReportEngine);
if (m_settings) if (m_settings)
d->setSettings(m_settings); d->setSettings(m_settings);
d->previewReport(); d->previewReport(hints);
} }
void ReportEngine::designReport() void ReportEngine::designReport()

View File

@ -71,7 +71,7 @@ public:
bool printReport(QPrinter *printer=0); bool printReport(QPrinter *printer=0);
void printToFile(const QString& fileName); void printToFile(const QString& fileName);
bool printToPDF(const QString& fileName); bool printToPDF(const QString& fileName);
void previewReport(); void previewReport(PreviewHints hints = ShowAllPreviewBars);
void designReport(); void designReport();
void setShowProgressDialog(bool value); void setShowProgressDialog(bool value);
IDataSourceManager* dataManager(); IDataSourceManager* dataManager();

View File

@ -80,7 +80,7 @@ public:
bool printReport(QPrinter *printer=0); bool printReport(QPrinter *printer=0);
void printToFile(const QString& fileName); void printToFile(const QString& fileName);
bool printToPDF(const QString& fileName); bool printToPDF(const QString& fileName);
void previewReport(); void previewReport(PreviewHints hints = ShowAllPreviewBars);
void designReport(); void designReport();
void setSettings(QSettings* value); void setSettings(QSettings* value);
void setShowProgressDialog(bool value){m_showProgressDialog = value;} void setShowProgressDialog(bool value){m_showProgressDialog = value;}