addTableOfContensItem function has been modified

This commit is contained in:
Arin Alexander 2017-08-19 01:16:57 +03:00
parent c7a5646241
commit f68a8fff65
5 changed files with 24 additions and 39 deletions

View File

@ -331,21 +331,6 @@ void PageItemDesignIntf::initColumnsPos(QVector<qreal> &posByColumns, qreal pos,
} }
} }
QString PageItemDesignIntf::initScript() const
{
return m_initScript;
}
void PageItemDesignIntf::setInitScript(const QString& value)
{
if (m_initScript.compare(value) != 0){
QString old_value = m_initScript;
m_initScript = value;
if (!isLoading())
notify("initScript", old_value, value);
}
}
bool PageItemDesignIntf::getIsTOC() const bool PageItemDesignIntf::getIsTOC() const
{ {
return m_isTOC; return m_isTOC;

View File

@ -56,7 +56,6 @@ class PageItemDesignIntf : public LimeReport::ItemsContainerDesignInft
Q_PROPERTY(bool isExtendedInDesignMode READ isExtendedInDesignMode WRITE setExtendedInDesignMode) Q_PROPERTY(bool isExtendedInDesignMode READ isExtendedInDesignMode WRITE setExtendedInDesignMode)
Q_PROPERTY(int extendedHeight READ extendedHeight WRITE setExtendedHeight) Q_PROPERTY(int extendedHeight READ extendedHeight WRITE setExtendedHeight)
Q_PROPERTY(bool pageIsTOC READ getIsTOC WRITE setIsTOC) Q_PROPERTY(bool pageIsTOC READ getIsTOC WRITE setIsTOC)
Q_PROPERTY(QString initScript READ initScript WRITE setInitScript)
friend class ReportRender; friend class ReportRender;
public: public:
enum Orientation { Portrait, Landscape }; enum Orientation { Portrait, Landscape };
@ -130,9 +129,6 @@ public:
bool getIsTOC() const; bool getIsTOC() const;
void setIsTOC(bool isTOC); void setIsTOC(bool isTOC);
QString initScript() const;
void setInitScript(const QString& value);
signals: signals:
void beforeFirstPageRendered(); void beforeFirstPageRendered();
void afterLastPageRendered(); void afterLastPageRendered();
@ -167,7 +163,6 @@ private:
bool m_isExtendedInDesignMode; bool m_isExtendedInDesignMode;
int m_extendedHeight; int m_extendedHeight;
bool m_isTOC; bool m_isTOC;
QString m_initScript;
}; };
typedef QList<PageItemDesignIntf::Ptr> ReportPages; typedef QList<PageItemDesignIntf::Ptr> ReportPages;

View File

@ -237,6 +237,8 @@ void ReportDesignWidget::createTabs(){
connectPage(m_report->pageAt(i)); connectPage(m_report->pageAt(i));
pageIndex = m_tabWidget->addTab(view,QIcon(),m_report->pageAt(i)->pageItem()->objectName()); pageIndex = m_tabWidget->addTab(view,QIcon(),m_report->pageAt(i)->pageItem()->objectName());
m_tabWidget->setTabWhatsThis(pageIndex, "page"); m_tabWidget->setTabWhatsThis(pageIndex, "page");
connect(m_report->pageAt(i)->pageItem(), SIGNAL(propertyObjectNameChanged(QString,QString)),
this, SLOT(slotPagePropertyObjectNameChanged(QString,QString)));
} }
m_scriptEditor = new QTextEdit(this); m_scriptEditor = new QTextEdit(this);
@ -827,6 +829,9 @@ void ReportDesignWidget::slotPagePropertyObjectNameChanged(const QString &oldVal
void ReportDesignWidget::slotTabMoved(int from, int to) void ReportDesignWidget::slotTabMoved(int from, int to)
{ {
Q_UNUSED(from)
Q_UNUSED(to)
QList<PageDesignIntf*> pages; QList<PageDesignIntf*> pages;
for ( int i = 0; i < m_tabWidget->tabBar()->count(); ++i){ for ( int i = 0; i < m_tabWidget->tabBar()->count(); ++i){

View File

@ -538,9 +538,9 @@ QVariant ScriptEngineManager::evaluateScript(const QString& script){
return QVariant(); return QVariant();
} }
void ScriptEngineManager::addTableOfContensItem(const QString& content, int pageNumber, int indent) void ScriptEngineManager::addTableOfContensItem(const QString& uniqKey, const QString& content, int pageNumber, int indent)
{ {
m_tableOfContens->setItem(content, pageNumber, indent); m_tableOfContens->setItem(uniqKey, content, pageNumber, indent);
} }
void ScriptEngineManager::updateModel() void ScriptEngineManager::updateModel()
@ -756,9 +756,9 @@ bool ScriptEngineManager::createAddTableOfContensItemFunction()
fd.setManagerName(LimeReport::Const::FUNCTION_MANAGER_NAME); fd.setManagerName(LimeReport::Const::FUNCTION_MANAGER_NAME);
fd.setCategory(tr("GENERAL")); fd.setCategory(tr("GENERAL"));
fd.setName("addTableOfContensItem"); fd.setName("addTableOfContensItem");
fd.setDescription("addTableOfContensItem(\""+tr("Content")+"\", \""+tr("Page Number")+", \""+tr("Indent")+"\")"); fd.setDescription("addTableOfContensItem(\""+tr("Unique identifier")+" \""+tr("Content")+"\", \""+tr("Page Number")+", \""+tr("Indent")+"\")");
fd.setScriptWrapper(QString("function addTableOfContensItem(content, pageNumber, indent){" fd.setScriptWrapper(QString("function addTableOfContensItem(uniqKey, content, pageNumber, indent){"
"return %1.addTableOfContensItem(content, pageNumber, indent);}" "return %1.addTableOfContensItem(uniqKey, content, pageNumber, indent);}"
).arg(LimeReport::Const::FUNCTION_MANAGER_NAME) ).arg(LimeReport::Const::FUNCTION_MANAGER_NAME)
); );
return addFunction(fd); return addFunction(fd);
@ -1418,9 +1418,9 @@ QVariant ScriptFunctionsManager::getField(const QString &field)
return dm->fieldData(field); return dm->fieldData(field);
} }
void ScriptFunctionsManager::addTableOfContensItem(const QString& content, int pageNumber, int indent) void ScriptFunctionsManager::addTableOfContensItem(const QString& uniqKey, const QString& content, int pageNumber, int indent)
{ {
scriptEngineManager()->addTableOfContensItem(content, pageNumber, indent); scriptEngineManager()->addTableOfContensItem(uniqKey, content, pageNumber, indent);
} }
void ScriptFunctionsManager::clearTableOfContens() void ScriptFunctionsManager::clearTableOfContens()
@ -1470,21 +1470,21 @@ TableOfContens::~TableOfContens()
clear(); clear();
} }
void TableOfContens::setItem(const QString& content, int pageNumber, int indent) void TableOfContens::setItem(const QString& uniqKey, const QString& content, int pageNumber, int indent)
{ {
ContentItem * item = 0; ContentItem * item = 0;
if (m_hash.contains(content)){ if (m_hash.contains(uniqKey)){
ContentItem* item = m_hash.value(content); item = m_hash.value(uniqKey);
item->pageNumber = pageNumber; item->content = content;
item->indent = indent; item->pageNumber = pageNumber;
} else { item->indent = indent;
ContentItem* item = new ContentItem; } else {
item = new ContentItem;
item->content = content; item->content = content;
item->pageNumber = pageNumber; item->pageNumber = pageNumber;
item->indent = indent; item->indent = indent;
m_tableOfContens.append(item); m_tableOfContens.append(item);
m_hash.insert(content, item); m_hash.insert(uniqKey, item);
} }
} }

View File

@ -67,7 +67,7 @@ class TableOfContens : public QObject{
Q_OBJECT Q_OBJECT
public: public:
~TableOfContens(); ~TableOfContens();
void setItem(const QString& content, int pageNumber, int indent = 0); void setItem(const QString& uniqKey, const QString& content, int pageNumber, int indent = 0);
void clear(); void clear();
private slots: private slots:
void slotOneSlotDS(LimeReport::CallbackInfo info, QVariant &data); void slotOneSlotDS(LimeReport::CallbackInfo info, QVariant &data);
@ -264,7 +264,7 @@ public:
Q_INVOKABLE QVariant getVariable(const QString& name); Q_INVOKABLE QVariant getVariable(const QString& name);
Q_INVOKABLE QVariant getField(const QString& field); Q_INVOKABLE QVariant getField(const QString& field);
Q_INVOKABLE QVariant color(const QString& color){ return QColor(color);} Q_INVOKABLE QVariant color(const QString& color){ return QColor(color);}
Q_INVOKABLE void addTableOfContensItem(const QString& content, int pageNumber, int indent = 0); Q_INVOKABLE void addTableOfContensItem(const QString& uniqKey, const QString& content, int pageNumber, int indent = 0);
Q_INVOKABLE void clearTableOfContens(); Q_INVOKABLE void clearTableOfContens();
#ifdef USE_QJSENGINE #ifdef USE_QJSENGINE
Q_INVOKABLE QFont font(const QString& family, int pointSize = -1, bool bold = false, bool italic = false, bool underLine = false); Q_INVOKABLE QFont font(const QString& family, int pointSize = -1, bool bold = false, bool italic = false, bool underLine = false);
@ -305,7 +305,7 @@ public:
QString expandDataFields(QString context, ExpandType expandType, QVariant &varValue, QObject* reportItem); QString expandDataFields(QString context, ExpandType expandType, QVariant &varValue, QObject* reportItem);
QString expandScripts(QString context, QVariant &varValue, QObject* reportItem); QString expandScripts(QString context, QVariant &varValue, QObject* reportItem);
QVariant evaluateScript(const QString &script); QVariant evaluateScript(const QString &script);
void addTableOfContensItem(const QString& content, int pageNumber, int indent); void addTableOfContensItem(const QString& uniqKey, const QString& content, int pageNumber, int indent);
void clearTableOfContens(){ m_tableOfContens->clear(); } void clearTableOfContens(){ m_tableOfContens->clear(); }
protected: protected: