diff --git a/include/lrpreviewreportwidget.h b/include/lrpreviewreportwidget.h index 4e35ea6..e33f75f 100644 --- a/include/lrpreviewreportwidget.h +++ b/include/lrpreviewreportwidget.h @@ -12,6 +12,7 @@ class PreviewReportWidget; class PreviewReportWidgetPrivate; class ReportEnginePrivate; +class ReportEngine; class LIMEREPORT_EXPORT PreviewReportWidget : public QWidget { @@ -20,7 +21,7 @@ class LIMEREPORT_EXPORT PreviewReportWidget : public QWidget friend class PreviewReportWindow; friend class PreviewReportWidgetPrivate; public: - explicit PreviewReportWidget(ReportEnginePrivate *report, QWidget *parent = 0); + explicit PreviewReportWidget(ReportEngine *report, QWidget *parent = 0); ~PreviewReportWidget(); public slots: void refreshPages(); diff --git a/include/lrreportengine.h b/include/lrreportengine.h index 9bd87b5..cbeb76b 100644 --- a/include/lrreportengine.h +++ b/include/lrreportengine.h @@ -63,11 +63,15 @@ class DataSourceManager; class ReportEnginePrivate; class PageDesignIntf; class PageItemDesignIntf; +class ReportDesignWidget; +class PreviewReportWidget; typedef QList< QSharedPointer > ReportPages; class LIMEREPORT_EXPORT ReportEngine : public QObject{ Q_OBJECT + friend class ReportDesignWidget; + friend class PreviewReportWidget; public: static void setSettings(QSettings *value){m_settings=value;} public: diff --git a/limereport/lrpreviewreportwidget.cpp b/limereport/lrpreviewreportwidget.cpp index fdf2e3b..c93004c 100644 --- a/limereport/lrpreviewreportwidget.cpp +++ b/limereport/lrpreviewreportwidget.cpp @@ -60,14 +60,15 @@ PageItemDesignIntf::Ptr PreviewReportWidgetPrivate::currentPage() else return PageItemDesignIntf::Ptr(0); } -PreviewReportWidget::PreviewReportWidget(ReportEnginePrivate *report, QWidget *parent) : +PreviewReportWidget::PreviewReportWidget(ReportEngine *report, QWidget *parent) : QWidget(parent), ui(new Ui::PreviewReportWidget), d_ptr(new PreviewReportWidgetPrivate(this)) { ui->setupUi(this); - d_ptr->m_previewPage = report->createPreviewPage(); + d_ptr->m_report = report->d_ptr; + d_ptr->m_previewPage = d_ptr->m_report->createPreviewPage(); d_ptr->m_previewPage->setItemMode( LimeReport::PreviewMode ); - d_ptr->m_report = report; + ui->errorsView->setVisible(false); connect(ui->graphicsView->verticalScrollBar(),SIGNAL(valueChanged(int)), this, SLOT(slotSliderMoved(int))); diff --git a/limereport/lrpreviewreportwidget.h b/limereport/lrpreviewreportwidget.h index 4e35ea6..e33f75f 100644 --- a/limereport/lrpreviewreportwidget.h +++ b/limereport/lrpreviewreportwidget.h @@ -12,6 +12,7 @@ class PreviewReportWidget; class PreviewReportWidgetPrivate; class ReportEnginePrivate; +class ReportEngine; class LIMEREPORT_EXPORT PreviewReportWidget : public QWidget { @@ -20,7 +21,7 @@ class LIMEREPORT_EXPORT PreviewReportWidget : public QWidget friend class PreviewReportWindow; friend class PreviewReportWidgetPrivate; public: - explicit PreviewReportWidget(ReportEnginePrivate *report, QWidget *parent = 0); + explicit PreviewReportWidget(ReportEngine *report, QWidget *parent = 0); ~PreviewReportWidget(); public slots: void refreshPages(); diff --git a/limereport/lrpreviewreportwindow.cpp b/limereport/lrpreviewreportwindow.cpp index b000547..02ee7ad 100644 --- a/limereport/lrpreviewreportwindow.cpp +++ b/limereport/lrpreviewreportwindow.cpp @@ -34,6 +34,8 @@ #include "lrreportengine_p.h" #include "lrpreviewreportwidget.h" #include "lrpreviewreportwidget_p.h" +#include "items/editors/lrfonteditorwidget.h" +#include "items/editors/lrtextalignmenteditorwidget.h" #include #include @@ -43,7 +45,7 @@ namespace LimeReport{ -PreviewReportWindow::PreviewReportWindow(ReportEnginePrivate *report,QWidget *parent, QSettings *settings, Qt::WindowFlags flags) : +PreviewReportWindow::PreviewReportWindow(ReportEngine *report, QWidget *parent, QSettings *settings, Qt::WindowFlags flags) : QMainWindow(parent,flags), ui(new Ui::PreviewReportWindow), m_settings(settings), m_ownedSettings(false) { diff --git a/limereport/lrpreviewreportwindow.h b/limereport/lrpreviewreportwindow.h index 92b2829..e61bf76 100644 --- a/limereport/lrpreviewreportwindow.h +++ b/limereport/lrpreviewreportwindow.h @@ -34,15 +34,10 @@ #include #include #include +#include +#include -#include "lrpagedesignintf.h" -#include "lrreportrender.h" -#include "serializators/lrstorageintf.h" #include "serializators/lrxmlreader.h" -#include "lrpreviewreportwidget.h" - -#include "items/editors/lrfonteditorwidget.h" -#include "items/editors/lrtextalignmenteditorwidget.h" namespace LimeReport { @@ -50,11 +45,19 @@ namespace Ui { class PreviewReportWindow; } +class PreviewReportWidget; +class FontEditorWidget; +class TextAlignmentEditorWidget; +class ReportEngine; +class PageItemDesignIntf; +typedef QList< QSharedPointer > ReportPages; + + class PreviewReportWindow : public QMainWindow { Q_OBJECT public: - explicit PreviewReportWindow(ReportEnginePrivate *report, QWidget *parent = 0, QSettings* settings=0, Qt::WindowFlags flags=0); + explicit PreviewReportWindow(ReportEngine *report, QWidget *parent = 0, QSettings* settings=0, Qt::WindowFlags flags=0); ~PreviewReportWindow(); void setReportReader(ItemsReaderIntf::Ptr reader); void setPages(ReportPages pages); diff --git a/limereport/lrreportdesignwidget.cpp b/limereport/lrreportdesignwidget.cpp index 7c7c2bc..8c6f5f8 100644 --- a/limereport/lrreportdesignwidget.cpp +++ b/limereport/lrreportdesignwidget.cpp @@ -47,7 +47,9 @@ namespace LimeReport { -ReportDesignWidget::ReportDesignWidget(ReportEnginePrivate *report, QMainWindow *mainWindow, QWidget *parent) : +// ReportDesignIntf + +ReportDesignWidget::ReportDesignWidget(ReportEngine *report, QMainWindow *mainWindow, QWidget *parent) : QWidget(parent), #ifdef HAVE_QTDESIGNER_INTEGRATION m_dialogDesignerManager(new DialogDesignerManager(this)), @@ -66,7 +68,7 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivate *report, QMainWindow m_report->appendPage("page1"); } else { - m_report=report; + m_report=report->d_ptr; if (!m_report->pageCount()) m_report->appendPage("page1"); } @@ -77,7 +79,8 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivate *report, QMainWindow connect(m_tabWidget, SIGNAL(currentChanged(int)), this, SLOT(slotCurrentTabChanged(int))); connect(m_report->scriptContext(), SIGNAL(dialogDeleted(QString)), this, SLOT(slotDialogDeleted(QString))); - m_scriptEditor->setPlainText(report->scriptContext()->initScript()); + //m_instance=this; + m_scriptEditor->setPlainText(m_report->scriptContext()->initScript()); m_zoomer = new GraphicsViewZoomer(activeView()); #ifdef Q_OS_WIN diff --git a/limereport/lrreportdesignwidget.h b/limereport/lrreportdesignwidget.h index 455b685..82717af 100644 --- a/limereport/lrreportdesignwidget.h +++ b/limereport/lrreportdesignwidget.h @@ -69,7 +69,7 @@ public: Dialog, Script }; - ReportDesignWidget(ReportEnginePrivate* report,QMainWindow *mainWindow,QWidget *parent = 0); + ReportDesignWidget(ReportEngine* report, QMainWindow *mainWindow, QWidget *parent = 0); ~ReportDesignWidget(); void createStartPage(); void clear(); diff --git a/limereport/lrreportdesignwindow.cpp b/limereport/lrreportdesignwindow.cpp index b44eff7..2f15315 100644 --- a/limereport/lrreportdesignwindow.cpp +++ b/limereport/lrreportdesignwindow.cpp @@ -62,7 +62,7 @@ namespace LimeReport{ ReportDesignWindow* ReportDesignWindow::m_instance=0; -ReportDesignWindow::ReportDesignWindow(ReportEnginePrivate *report, QWidget *parent, QSettings* settings) : +ReportDesignWindow::ReportDesignWindow(ReportEngine *report, QWidget *parent, QSettings* settings) : QMainWindow(parent), m_textAttibutesIsChanging(false), m_settings(settings), m_ownedSettings(false), m_progressDialog(0), m_showProgressDialog(true) { initReportEditor(report); @@ -458,7 +458,7 @@ void ReportDesignWindow::createMainMenu() m_recentFilesMenu->setDisabled(m_recentFiles.isEmpty()); } -void ReportDesignWindow::initReportEditor(ReportEnginePrivate* report) +void ReportDesignWindow::initReportEditor(ReportEngine* report) { m_reportDesignWidget=new ReportDesignWidget(report,this,this); setCentralWidget(m_reportDesignWidget); diff --git a/limereport/lrreportdesignwindow.h b/limereport/lrreportdesignwindow.h index 658c984..94c4bd5 100644 --- a/limereport/lrreportdesignwindow.h +++ b/limereport/lrreportdesignwindow.h @@ -59,7 +59,7 @@ class ReportDesignWindow : public QMainWindow { Q_OBJECT public: - explicit ReportDesignWindow(ReportEnginePrivate* report, QWidget *parent = 0, QSettings* settings=0); + explicit ReportDesignWindow(ReportEngine *report, QWidget *parent = 0, QSettings* settings=0); ~ReportDesignWindow(); static ReportDesignWindow* instance(){return m_instance;} @@ -139,6 +139,7 @@ private: void createItemsActions(); void createObjectInspector(); void createObjectsBrowser(); + void initReportEditor(ReportEngine *report); void createDataWindow(); void createScriptWindow(); #ifdef HAVE_QTDESIGNER_INTEGRATION diff --git a/limereport/lrreportengine.cpp b/limereport/lrreportengine.cpp index 10ea8bb..9a90359 100644 --- a/limereport/lrreportengine.cpp +++ b/limereport/lrreportengine.cpp @@ -381,7 +381,8 @@ void ReportEnginePrivate::previewReport(PreviewHints hints) ReportPages pages = renderToPages(); dataManager()->setDesignTime(true); if (pages.count()>0){ - PreviewReportWindow* w = new PreviewReportWindow(this,0,settings()); + Q_Q(ReportEngine); + PreviewReportWindow* w = new PreviewReportWindow(q,0,settings()); w->setWindowFlags(Qt::Dialog|Qt::WindowMaximizeButtonHint|Qt::WindowCloseButtonHint| Qt::WindowMinMaxButtonsHint); w->setAttribute(Qt::WA_DeleteOnClose,true); w->setWindowModality(Qt::ApplicationModal); @@ -415,7 +416,8 @@ void ReportEnginePrivate::previewReport(PreviewHints hints) PreviewReportWidget* ReportEnginePrivate::createPreviewWidget(QWidget* parent){ - PreviewReportWidget* widget = new PreviewReportWidget(this, parent); + Q_Q(ReportEngine); + PreviewReportWidget* widget = new PreviewReportWidget(q, parent); try{ dataManager()->setDesignTime(false); ReportPages pages = renderToPages(); @@ -488,7 +490,8 @@ PageDesignIntf* ReportEngine::createPreviewScene(QObject* parent){ void ReportEnginePrivate::designReport() { if (!m_designerWindow) { - m_designerWindow = new LimeReport::ReportDesignWindow(this,QApplication::activeWindow(),settings()); + Q_Q(ReportEngine); + m_designerWindow = new LimeReport::ReportDesignWindow(q,QApplication::activeWindow(),settings()); m_designerWindow->setAttribute(Qt::WA_DeleteOnClose,true); m_designerWindow->setWindowIcon(QIcon(":report/images/logo32")); m_designerWindow->setShowProgressDialog(m_showProgressDialog); diff --git a/limereport/lrreportengine.h b/limereport/lrreportengine.h index 9bd87b5..cbeb76b 100644 --- a/limereport/lrreportengine.h +++ b/limereport/lrreportengine.h @@ -63,11 +63,15 @@ class DataSourceManager; class ReportEnginePrivate; class PageDesignIntf; class PageItemDesignIntf; +class ReportDesignWidget; +class PreviewReportWidget; typedef QList< QSharedPointer > ReportPages; class LIMEREPORT_EXPORT ReportEngine : public QObject{ Q_OBJECT + friend class ReportDesignWidget; + friend class PreviewReportWidget; public: static void setSettings(QSettings *value){m_settings=value;} public: