From b770669b648622e0bbc107955f856eefffbf7140 Mon Sep 17 00:00:00 2001
From: Arin Alexander <arin_a@bk.ru>
Date: Thu, 21 Apr 2016 01:06:08 +0400
Subject: [PATCH] Object browser has been fixed

Object browser has been fixed
---
 limereport/lrreportdesignwidget.cpp           | 2 ++
 limereport/lrreportdesignwidget.h             | 1 +
 limereport/objectsbrowser/lrobjectbrowser.cpp | 7 +++++++
 limereport/objectsbrowser/lrobjectbrowser.h   | 1 +
 4 files changed, 11 insertions(+)

diff --git a/limereport/lrreportdesignwidget.cpp b/limereport/lrreportdesignwidget.cpp
index 9c23915..93074a2 100644
--- a/limereport/lrreportdesignwidget.cpp
+++ b/limereport/lrreportdesignwidget.cpp
@@ -163,6 +163,8 @@ void ReportDesignWidget::setActivePage(PageDesignIntf *page)
             this, SIGNAL(bandAdded(LimeReport::PageDesignIntf*,LimeReport::BandDesignIntf*)));
     connect(page, SIGNAL(bandRemoved(LimeReport::PageDesignIntf*,LimeReport::BandDesignIntf*)),
             this, SIGNAL(bandDeleted(LimeReport::PageDesignIntf*,LimeReport::BandDesignIntf*)));
+    connect(page, SIGNAL(pageUpdateFinished(LimeReport::PageDesignIntf*)),
+            this, SIGNAL(activePageUpdated(LimeReport::PageDesignIntf*)));
 
     m_view->centerOn(0, 0);
     emit activePageChanged();
diff --git a/limereport/lrreportdesignwidget.h b/limereport/lrreportdesignwidget.h
index d247f2b..8b807d4 100644
--- a/limereport/lrreportdesignwidget.h
+++ b/limereport/lrreportdesignwidget.h
@@ -130,6 +130,7 @@ signals:
     void cleared();
     void loaded();
     void activePageChanged();
+    void activePageUpdated(LimeReport::PageDesignIntf*);
     void bandAdded(LimeReport::PageDesignIntf*, LimeReport::BandDesignIntf*);
     void bandDeleted(LimeReport::PageDesignIntf*, LimeReport::BandDesignIntf*);
     void itemAdded(LimeReport::PageDesignIntf*, LimeReport::BaseDesignIntf*);
diff --git a/limereport/objectsbrowser/lrobjectbrowser.cpp b/limereport/objectsbrowser/lrobjectbrowser.cpp
index 57df82f..c9c7f6e 100644
--- a/limereport/objectsbrowser/lrobjectbrowser.cpp
+++ b/limereport/objectsbrowser/lrobjectbrowser.cpp
@@ -67,6 +67,8 @@ void ObjectBrowser::setReportEditor(ReportDesignWidget *report)
             this, SLOT(slotItemSelected(LimeReport::BaseDesignIntf*)));
     connect(m_report, SIGNAL(multiItemSelected()),
             this, SLOT(slotMultiItemSelected()) );
+    connect(m_report, SIGNAL(activePageUpdated(LimeReport::PageDesignIntf*)),
+            this, SLOT(slotActivePageUpdated(LimeReport::PageDesignIntf*)));
     connect(m_treeView, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),
             this, SLOT(slotItemDoubleClicked(QTreeWidgetItem*,int)));
 
@@ -266,6 +268,11 @@ void ObjectBrowser::slotItemDoubleClicked(QTreeWidgetItem *item, int)
     }
 }
 
+void ObjectBrowser::slotActivePageUpdated(LimeReport::PageDesignIntf *)
+{
+    buildTree();
+}
+
 void ObjectBrowserNode::setObject(QObject *value)
 {
     m_object = value;
diff --git a/limereport/objectsbrowser/lrobjectbrowser.h b/limereport/objectsbrowser/lrobjectbrowser.h
index b39ac1f..ceddbec 100644
--- a/limereport/objectsbrowser/lrobjectbrowser.h
+++ b/limereport/objectsbrowser/lrobjectbrowser.h
@@ -74,6 +74,7 @@ private slots:
     void slotItemSelected(LimeReport::BaseDesignIntf* item);
     void slotMultiItemSelected();
     void slotItemDoubleClicked(QTreeWidgetItem* item,int);
+    void slotActivePageUpdated(LimeReport::PageDesignIntf*);
 private:
     ReportDesignWidget* m_report;
     QMainWindow*        m_mainWindow;