mirror of
https://github.com/python-LimeReport/LimeReport.git
synced 2024-12-24 12:34:39 +03:00
Pages reordering has been added
This commit is contained in:
parent
f7d461cb30
commit
97d61335e5
@ -53,6 +53,9 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivate *report, QMainWindow
|
|||||||
{
|
{
|
||||||
m_tabWidget = new QTabWidget(this);
|
m_tabWidget = new QTabWidget(this);
|
||||||
m_tabWidget->setTabPosition(QTabWidget::South);
|
m_tabWidget->setTabPosition(QTabWidget::South);
|
||||||
|
m_tabWidget->setMovable(true);
|
||||||
|
connect(m_tabWidget->tabBar(), SIGNAL(tabMoved(int,int)), this, SLOT(slotTabMoved(int,int)));
|
||||||
|
|
||||||
QVBoxLayout* mainLayout = new QVBoxLayout(this);
|
QVBoxLayout* mainLayout = new QVBoxLayout(this);
|
||||||
mainLayout->addWidget(m_tabWidget);
|
mainLayout->addWidget(m_tabWidget);
|
||||||
setLayout(mainLayout);
|
setLayout(mainLayout);
|
||||||
@ -152,7 +155,9 @@ void ReportDesignWidget::createTabs(){
|
|||||||
view->centerOn(0,0);
|
view->centerOn(0,0);
|
||||||
view->scale(0.5,0.5);
|
view->scale(0.5,0.5);
|
||||||
connectPage(m_report->pageAt(i));
|
connectPage(m_report->pageAt(i));
|
||||||
m_tabWidget->addTab(view,QIcon(),tr("Page")+QString::number(i+1));
|
m_tabWidget->addTab(view,QIcon(),m_report->pageAt(i)->pageItem()->objectName());
|
||||||
|
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);
|
||||||
m_tabWidget->addTab(m_scriptEditor,QIcon(),tr("Script"));
|
m_tabWidget->addTab(m_scriptEditor,QIcon(),tr("Script"));
|
||||||
@ -476,8 +481,10 @@ void ReportDesignWidget::addPage()
|
|||||||
PageDesignIntf* page = m_report->appendPage("page"+QString::number(m_report->pageCount()+1));
|
PageDesignIntf* page = m_report->appendPage("page"+QString::number(m_report->pageCount()+1));
|
||||||
view->setScene(page);
|
view->setScene(page);
|
||||||
int index = m_report->pageCount()-1;
|
int index = m_report->pageCount()-1;
|
||||||
m_tabWidget->insertTab(index,view,QIcon(),tr("Page")+QString::number(m_report->pageCount()));
|
m_tabWidget->insertTab(index,view,QIcon(),page->pageItem()->objectName());
|
||||||
m_tabWidget->setCurrentIndex(index);
|
m_tabWidget->setCurrentIndex(index);
|
||||||
|
connect(page->pageItem(), SIGNAL(propertyObjectNameChanged(QString,QString)),
|
||||||
|
this, SLOT(slotPagePropertyObjectNameChanged(QString,QString)));
|
||||||
connectPage(page);
|
connectPage(page);
|
||||||
view->scale(0.5,0.5);
|
view->scale(0.5,0.5);
|
||||||
view->centerOn(0,0);
|
view->centerOn(0,0);
|
||||||
@ -608,6 +615,33 @@ void ReportDesignWidget::slotCurrentTabChanged(int index)
|
|||||||
emit activePageChanged();
|
emit activePageChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ReportDesignWidget::slotPagePropertyObjectNameChanged(const QString &oldValue, const QString &newValue)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < m_tabWidget->count(); ++i ){
|
||||||
|
if (m_tabWidget->tabText(i).compare(oldValue) == 0){
|
||||||
|
m_tabWidget->setTabText(i, newValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReportDesignWidget::slotTabMoved(int from, int to)
|
||||||
|
{
|
||||||
|
QList<PageDesignIntf*> pages;
|
||||||
|
|
||||||
|
for ( int i = 0; i < m_tabWidget->tabBar()->count(); ++i){
|
||||||
|
QGraphicsView* view = dynamic_cast<QGraphicsView*>(m_tabWidget->widget(i));
|
||||||
|
if (view){
|
||||||
|
PageDesignIntf* page = dynamic_cast<PageDesignIntf*>(view->scene());
|
||||||
|
if (page){
|
||||||
|
pages.append(page);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_report->reorderPages(pages);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
bool ReportDesignWidget::eventFilter(QObject *target, QEvent *event)
|
bool ReportDesignWidget::eventFilter(QObject *target, QEvent *event)
|
||||||
{
|
{
|
||||||
if (event->type() == QEvent::Wheel){
|
if (event->type() == QEvent::Wheel){
|
||||||
|
@ -128,6 +128,8 @@ private slots:
|
|||||||
void slotDatasourceCollectionLoaded(const QString&);
|
void slotDatasourceCollectionLoaded(const QString&);
|
||||||
void slotSceneRectChanged(QRectF);
|
void slotSceneRectChanged(QRectF);
|
||||||
void slotCurrentTabChanged(int index);
|
void slotCurrentTabChanged(int index);
|
||||||
|
void slotPagePropertyObjectNameChanged(const QString& oldValue, const QString& newValue);
|
||||||
|
void slotTabMoved(int from, int to);
|
||||||
signals:
|
signals:
|
||||||
void insertModeStarted();
|
void insertModeStarted();
|
||||||
void itemInserted(LimeReport::PageDesignIntf*,QPointF,const QString&);
|
void itemInserted(LimeReport::PageDesignIntf*,QPointF,const QString&);
|
||||||
|
@ -106,6 +106,7 @@ PageDesignIntf *ReportEnginePrivate::createPage(const QString &pageName)
|
|||||||
{
|
{
|
||||||
PageDesignIntf* page =new PageDesignIntf();
|
PageDesignIntf* page =new PageDesignIntf();
|
||||||
page->setObjectName(pageName);
|
page->setObjectName(pageName);
|
||||||
|
page->pageItem()->setObjectName("Report"+pageName);
|
||||||
page->setReportEditor(this);
|
page->setReportEditor(this);
|
||||||
page->setReportSettings(&m_reportSettings);
|
page->setReportSettings(&m_reportSettings);
|
||||||
return page;
|
return page;
|
||||||
@ -719,6 +720,14 @@ void ReportEnginePrivate::setPassPhrase(const QString &passPhrase)
|
|||||||
m_passPhrase = passPhrase;
|
m_passPhrase = passPhrase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ReportEnginePrivate::reorderPages(const QList<PageDesignIntf *>& reorderedPages)
|
||||||
|
{
|
||||||
|
m_pages.clear();
|
||||||
|
foreach(PageDesignIntf* page, reorderedPages){
|
||||||
|
m_pages.append(page);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool ReportEnginePrivate::resultIsEditable() const
|
bool ReportEnginePrivate::resultIsEditable() const
|
||||||
{
|
{
|
||||||
return m_resultIsEditable;
|
return m_resultIsEditable;
|
||||||
|
@ -128,7 +128,7 @@ public:
|
|||||||
void setResultEditable(bool value);
|
void setResultEditable(bool value);
|
||||||
|
|
||||||
void setPassPhrase(const QString &passPhrase);
|
void setPassPhrase(const QString &passPhrase);
|
||||||
|
void reorderPages(const QList<PageDesignIntf *> &reorderedPages);
|
||||||
signals:
|
signals:
|
||||||
void pagesLoadFinished();
|
void pagesLoadFinished();
|
||||||
void datasourceCollectionLoadFinished(const QString& collectionName);
|
void datasourceCollectionLoadFinished(const QString& collectionName);
|
||||||
|
Loading…
Reference in New Issue
Block a user