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);
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

View File

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

View File

@ -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

View File

@ -136,6 +136,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){
@ -312,4 +327,4 @@ void PreviewReportWindow::on_actionShowMessages_toggled(bool value)
m_previewReportWidget->setErrorsMesagesVisible(value);
}
}// namespace LimeReport
}// namespace LimeReport

View File

@ -59,6 +59,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();

View File

@ -307,7 +307,7 @@ bool ReportEnginePrivate::printToPDF(const QString &fileName)
return false;
}
void ReportEnginePrivate::previewReport()
void ReportEnginePrivate::previewReport(PreviewHints hints)
{
QTime start = QTime::currentTime();
try{
@ -327,6 +327,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 ="<<start.msecsTo(QTime::currentTime());
@ -654,12 +659,12 @@ bool ReportEngine::printToPDF(const QString &fileName)
return d->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()

View File

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

View File

@ -80,7 +80,7 @@ public:
bool printReport(QPrinter *printer=0);
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;}