Add methods to Application & Adaptor classes to retrieve the ObjectRegistry 15/238515/2
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Tue, 14 Jul 2020 14:12:06 +0000 (15:12 +0100)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Wed, 15 Jul 2020 10:26:49 +0000 (10:26 +0000)
Change-Id: I249478a4b3246d4cf07681fc5239cc9c569577a1

automated-tests/src/dali-adaptor/utc-Dali-Application.cpp
automated-tests/src/dali-adaptor/utc-Dali-PixelBuffer.cpp
dali/integration-api/adaptor-framework/adaptor.h [changed mode: 0755->0644]
dali/internal/adaptor/common/adaptor-impl.cpp [changed mode: 0755->0644]
dali/internal/adaptor/common/adaptor-impl.h [changed mode: 0755->0644]
dali/internal/adaptor/common/adaptor.cpp [changed mode: 0755->0644]
dali/internal/adaptor/common/application-impl.cpp [changed mode: 0755->0644]
dali/internal/adaptor/common/application-impl.h [changed mode: 0755->0644]
dali/public-api/adaptor-framework/application.cpp
dali/public-api/adaptor-framework/application.h

index a127398..b37574b 100644 (file)
@@ -537,3 +537,10 @@ int UtcDaliApplicationGetLanguageP(void)
 
   END_TEST;
 }
+
+int UtcDaliApplicationGetObjectRegistryN(void)
+{
+  Application application = Application::New();
+  DALI_TEST_CHECK( !application.GetObjectRegistry() );
+  END_TEST;
+}
index 9123b19..47d3138 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -244,7 +244,7 @@ int UtcDaliPixelBufferConvert(void)
     a.AddRenderer(r);
     a.SetProperty( Actor::Property::SIZE, Vector2(10, 10) );
     a.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
-    Stage::GetCurrent().Add(a);
+    application.GetScene().Add(a);
 
     application.SendNotification();
     application.Render();
old mode 100755 (executable)
new mode 100644 (file)
index 7ad1912..4f708e4
@@ -36,6 +36,7 @@
 namespace Dali
 {
 
+class ObjectRegistry;
 class RenderSurfaceInterface;
 
 using WindowContainer = std::vector<Window>;
@@ -477,6 +478,12 @@ public:
   SceneHolderList GetSceneHolders() const;
 
   /**
+   * @brief Gets the Object registry.
+   * @return The object registry
+   */
+  Dali::ObjectRegistry GetObjectRegistry() const;
+
+  /**
    * @brief Called when the window becomes fully or partially visible.
    */
   void OnWindowShown();
old mode 100755 (executable)
new mode 100644 (file)
index 58f9c85..d1600e9
@@ -22,9 +22,9 @@
 // EXTERNAL INCLUDES
 #include <errno.h>
 #include <sys/stat.h>
-#include <dali/public-api/common/stage.h>
 #include <dali/public-api/actors/layer.h>
 #include <dali/public-api/object/any.h>
+#include <dali/public-api/object/object-registry.h>
 #include <dali/devel-api/actors/actor-devel.h>
 #include <dali/integration-api/debug.h>
 #include <dali/integration-api/core.h>
@@ -1130,6 +1130,16 @@ Dali::SceneHolderList Adaptor::GetSceneHolders() const
   return sceneHolderList;
 }
 
+Dali::ObjectRegistry Adaptor::GetObjectRegistry() const
+{
+  Dali::ObjectRegistry registry;
+  if( mCore )
+  {
+    registry = mCore->GetObjectRegistry();
+  }
+  return registry;
+}
+
 Adaptor::Adaptor(Dali::Integration::SceneHolder window, Dali::Adaptor& adaptor, Dali::RenderSurfaceInterface* surface, EnvironmentOptions* environmentOptions)
 : mResizedSignal(),
   mLanguageChangedSignal(),
@@ -1168,10 +1178,12 @@ Adaptor::Adaptor(Dali::Integration::SceneHolder window, Dali::Adaptor& adaptor,
 
 void Adaptor::SetRootLayoutDirection( std::string locale )
 {
-  Dali::Stage stage = Dali::Stage::GetCurrent();
-
-  stage.GetRootLayer().SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION,
-                                    static_cast< LayoutDirection::Type >( Internal::Adaptor::Locale::GetDirection( std::string( locale ) ) ) );
+  for ( auto& window : mWindows )
+  {
+    Dali::Actor root = window->GetRootLayer();
+    root.SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION,
+                      static_cast< LayoutDirection::Type >( Internal::Adaptor::Locale::GetDirection( std::string( locale ) ) ) );
+  }
 }
 
 bool Adaptor::AddIdleEnterer( CallbackBase* callback, bool forceAdd )
old mode 100755 (executable)
new mode 100644 (file)
index 151a4b1..115f78a
@@ -315,6 +315,11 @@ public: // AdaptorInternalServices implementation
    */
   Dali::SceneHolderList GetSceneHolders() const;
 
+  /**
+   * @copydoc Dali::Adaptor::GetObjectRegistry()
+   */
+  Dali::ObjectRegistry GetObjectRegistry() const;
+
 public:
 
   /**
old mode 100755 (executable)
new mode 100644 (file)
index 9551d82..cbb3d19
@@ -19,6 +19,7 @@
 #include <dali/integration-api/adaptor-framework/adaptor.h>
 
 // EXTERNAL INCLUDES
+#include <dali/public-api/object/object-registry.h>
 #include <dali/integration-api/debug.h>
 
 // INTERNAL INCLUDES
@@ -270,6 +271,11 @@ SceneHolderList Adaptor::GetSceneHolders() const
   return mImpl->GetSceneHolders();
 }
 
+Dali::ObjectRegistry Adaptor::GetObjectRegistry() const
+{
+  return mImpl->GetObjectRegistry();
+}
+
 void Adaptor::OnWindowShown()
 {
   mImpl->OnWindowShown();
old mode 100755 (executable)
new mode 100644 (file)
index a4a0825..d626def
@@ -19,6 +19,7 @@
 #include <dali/internal/adaptor/common/application-impl.h>
 
 // EXTERNAL INCLUDES
+#include <dali/public-api/object/object-registry.h>
 #include <dali/integration-api/debug.h>
 #include <dali/devel-api/common/singleton-service.h>
 
@@ -361,6 +362,16 @@ std::string Application::GetLanguage() const
   return mFramework->GetLanguage();
 }
 
+Dali::ObjectRegistry Application::GetObjectRegistry() const
+{
+  Dali::ObjectRegistry objectRegistry;
+  if( mAdaptor )
+  {
+    objectRegistry = mAdaptor->GetObjectRegistry();
+  }
+  return objectRegistry;
+}
+
 Dali::Adaptor& Application::GetAdaptor()
 {
   return *mAdaptor;
old mode 100755 (executable)
new mode 100644 (file)
index 53f8556..d8d7363
@@ -137,6 +137,11 @@ public:
   std::string GetLanguage() const;
 
   /**
+   * @copydoc Dali::Application::GetObjectRegistry();
+   */
+  Dali::ObjectRegistry GetObjectRegistry() const;
+
+  /**
    * @copydoc Dali::Application::GetResourcePath();
    */
   static std::string GetResourcePath();
index 3986735..b0f7b2a 100644 (file)
@@ -19,6 +19,7 @@
 #include <dali/public-api/adaptor-framework/application.h>
 
 // EXTERNAL INCLUDES
+#include <dali/public-api/object/object-registry.h>
 #include <dali/integration-api/debug.h>
 
 // INTERNAL INCLUDES
@@ -195,6 +196,11 @@ std::string Application::GetLanguage() const
   return Internal::Adaptor::GetImplementation(*this).GetLanguage();
 }
 
+ObjectRegistry Application::GetObjectRegistry() const
+{
+  return Internal::Adaptor::GetImplementation(*this).GetObjectRegistry();
+}
+
 Application::AppSignalType& Application::InitSignal()
 {
   return Internal::Adaptor::GetImplementation(*this).InitSignal();
index b2eba8e..c264e46 100644 (file)
@@ -29,6 +29,9 @@
 
 namespace Dali
 {
+
+class ObjectRegistry;
+
 /**
  * @addtogroup dali_adaptor_framework
  * @{
@@ -302,6 +305,15 @@ public:
    */
   std::string GetLanguage() const;
 
+  /**
+   * @brief Gets the Object registry.
+   *
+   * @SINCE_1_9.21
+   * @return The object registry
+   * @note This will only be a valid handle after the InitSignal has been emitted.
+   */
+  ObjectRegistry GetObjectRegistry() const;
+
 public:  // Signals
 
   /**