0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-24 00:33:02 +03:00

ReportSettings have been added to report items

This commit is contained in:
Arin Alex 2016-06-24 23:15:59 +03:00
parent 779eefcab5
commit ac98da1394
6 changed files with 57 additions and 4 deletions

View File

@ -75,7 +75,8 @@ BaseDesignIntf::BaseDesignIntf(const QString &storageTypeName, QObject *owner, Q
m_margin(4),
m_itemAlign(DesignedItemAlign),
m_changingItemAlign(false),
m_borderColor(Qt::black)
m_borderColor(Qt::black),
m_reportSettings(0)
{
setGeometry(QRectF(0, 0, m_width, m_height));
if (BaseDesignIntf *item = dynamic_cast<BaseDesignIntf *>(parent)) {
@ -626,6 +627,19 @@ void BaseDesignIntf::turnOnSelectionMarker(bool value)
}
}
ReportSettings *BaseDesignIntf::reportSettings() const
{
return m_reportSettings;
}
void BaseDesignIntf::setReportSettings(ReportSettings *reportSettings)
{
m_reportSettings = reportSettings;
foreach(BaseDesignIntf* child, childBaseItems()){
child->setReportSettings(reportSettings);
}
}
QColor BaseDesignIntf::borderColor() const
{
return m_borderColor;
@ -1187,6 +1201,7 @@ BaseDesignIntf *BaseDesignIntf::cloneItemWOChild(ItemMode mode, QObject *owner,
clone->setObjectName(this->objectName());
clone->setItemMode(mode);
clone->objectLoadStarted();
clone->setReportSettings(this->reportSettings());
for (int i = 0; i < clone->metaObject()->propertyCount(); i++) {
if (clone->metaObject()->property(i).isWritable())
clone->setProperty(clone->metaObject()->property(i).name(), property(clone->metaObject()->property(i).name()));

View File

@ -245,7 +245,9 @@ public:
QColor borderColor() const;
void setBorderColor(const QColor &borderColor);
void setItemVisible(const bool& value);
virtual bool canContainChildren(){ return false;}
virtual bool canContainChildren(){ return false;}
ReportSettings* reportSettings() const;
void setReportSettings(ReportSettings *reportSettings);
protected:
//ICollectionContainer
@ -347,6 +349,7 @@ private:
ItemAlign m_itemAlign;
bool m_changingItemAlign;
QColor m_borderColor;
ReportSettings* m_reportSettings;
signals:
void geometryChanged(QObject* object, QRectF newGeometry, QRectF oldGeometry);
void posChanged(QObject* object, QPointF newPos, QPointF oldPos);

View File

@ -92,7 +92,8 @@ PageDesignIntf::PageDesignIntf(QObject *parent):
m_multiSelectStarted(false),
m_movedItem(0),
m_joinItem(0),
m_magneticMovement(false)
m_magneticMovement(false),
m_reportSettings(0)
{
m_reportEditor = dynamic_cast<ReportEnginePrivate *>(parent);
updatePageRect();
@ -1044,6 +1045,17 @@ void PageDesignIntf::changeSelectedGroupProperty(const QString &name, const QVar
}
}
ReportSettings *PageDesignIntf::getReportSettings() const
{
return m_reportSettings;
}
void PageDesignIntf::setReportSettings(ReportSettings *reportSettings)
{
m_reportSettings = reportSettings;
m_pageItem->setReportSettings(m_reportSettings);
}
bool PageDesignIntf::magneticMovement() const
{
return m_magneticMovement;

View File

@ -178,6 +178,9 @@ namespace LimeReport {
bool magneticMovement() const;
void setMagneticMovement(bool magneticMovement);
ReportSettings *getReportSettings() const;
void setReportSettings(ReportSettings *reportSettings);
protected:
virtual void keyPressEvent(QKeyEvent *event);
@ -309,6 +312,7 @@ namespace LimeReport {
BaseDesignIntf* m_joinItem;
JoinType m_joinType;
bool m_magneticMovement;
ReportSettings* m_reportSettings;
};
class AbstractPageCommand : public CommandIf{

View File

@ -93,6 +93,7 @@ PageDesignIntf *ReportEnginePrivate::createPage(const QString &pageName)
PageDesignIntf* page =new PageDesignIntf();
page->setObjectName(pageName);
page->setReportEditor(this);
page->setReportSettings(&m_reportSettings);
return page;
}
@ -117,6 +118,7 @@ void ReportEnginePrivate::collectionLoadFinished(const QString &)
{
foreach (PageDesignIntf* page, m_pages) {
page->setReportEditor(this);
page->setReportSettings(&m_reportSettings);
page->setSceneRect(-Const::SCENE_MARGIN,-Const::SCENE_MARGIN,
page->pageItem()->width()+Const::SCENE_MARGIN*2,
page->pageItem()->height()+Const::SCENE_MARGIN*2);
@ -152,6 +154,7 @@ void ReportEnginePrivate::clearReport()
m_pages.clear();
m_datasources->clear(DataSourceManager::Owned);
m_fileName="";
m_reportSettings.setDefaultValues();
emit cleared();
}
@ -559,6 +562,16 @@ QString ReportEnginePrivate::renderToString()
}else return QString();
}
bool ReportEnginePrivate::suppressFieldAndVarError() const
{
return m_reportSettings.suppressAbsentFieldsAndVarsWarnings();
}
void ReportEnginePrivate::setSuppressFieldAndVarError(bool suppressFieldAndVarError)
{
m_reportSettings.setSuppressAbsentFieldsAndVarsWarnings(suppressFieldAndVarError);
}
QString ReportEnginePrivate::previewWindowTitle() const
{
return m_previewWindowTitle;
@ -582,7 +595,7 @@ void ReportEnginePrivate::setPreviewWindowIcon(const QIcon &previewWindowIcon)
ReportPages ReportEnginePrivate::renderToPages()
{
m_reportRender = ReportRender::Ptr(new ReportRender);
dataManager()->clearErrorsList();
dataManager()->clearErrors();
dataManager()->connectAllDatabases();
dataManager()->setDesignTime(false);
connect(m_reportRender.data(),SIGNAL(pageRendered(int)),
@ -590,6 +603,7 @@ ReportPages ReportEnginePrivate::renderToPages()
if (m_pages.count()){
emit renderStarted();
m_reportRender->setDatasources(dataManager());
m_pages.at(0)->setReportSettings(&m_reportSettings);
ReportPages result = m_reportRender->renderPageToPages(m_pages.at(0));
emit renderFinished();
return result;

View File

@ -56,6 +56,7 @@ class ReportEnginePrivate : public QObject, public ICollectionContainer
Q_DECLARE_PUBLIC(ReportEngine)
Q_PROPERTY(ACollectionProperty pages READ fakeCollectionReader())
Q_PROPERTY(QObject* datasourcesManager READ dataManager())
Q_PROPERTY(bool suppressFieldAndVarError READ suppressFieldAndVarError WRITE setSuppressFieldAndVarError)
friend class PreviewReportWidget;
public:
static void printReport(ItemsReaderIntf::Ptr reader, QPrinter &printer);
@ -112,6 +113,9 @@ public:
QString previewWindowTitle() const;
void setPreviewWindowTitle(const QString &previewWindowTitle);
bool suppressFieldAndVarError() const;
void setSuppressFieldAndVarError(bool suppressFieldAndVarError);
signals:
void pagesLoadFinished();
void datasourceCollectionLoadFinished(const QString& collectionName);
@ -158,6 +162,7 @@ private:
QIcon m_previewWindowIcon;
QString m_previewWindowTitle;
QPointer<ReportDesignWindow> m_designerWindow;
ReportSettings m_reportSettings;
};
}