[Libreoffice-commits] core.git: 3 commits - odk/examples

Chr. Rossmanith ChrRossmanith at gmx.de
Sun Mar 31 11:57:21 PDT 2013


 odk/examples/cpp/counter/counter.cxx                 |   36 -------------------
 odk/examples/java/Inspector/SourceCodeGenerator.java |   10 -----
 2 files changed, 1 insertion(+), 45 deletions(-)

New commits:
commit d7a301476dfbec6a70e45808602838078bad780a
Author: Chr. Rossmanith <ChrRossmanith at gmx.de>
Date:   Sun Mar 31 17:15:33 2013 +0200

    Remove commented code in odk/examples
    
    Change-Id: I8b28729d3cc632426efac02028f0d0e332243012
    Reviewed-on: https://gerrit.libreoffice.org/3138
    Reviewed-by: Thomas Arnhold <thomas at arnhold.org>
    Tested-by: Thomas Arnhold <thomas at arnhold.org>

diff --git a/odk/examples/cpp/counter/counter.cxx b/odk/examples/cpp/counter/counter.cxx
index 572d9c1..6f65f5c 100644
--- a/odk/examples/cpp/counter/counter.cxx
+++ b/odk/examples/cpp/counter/counter.cxx
@@ -164,42 +164,6 @@ Reference< XInterface > SAL_CALL MyCounterImpl_create(
 //#### EXPORTED ###########################################################
 //#########################################################################
 
-
-/**
- * This function creates an implementation section in the registry and another subkey
- *
- * for each supported service.
- * @param pServiceManager   the service manager
- * @param pRegistryKey      the registry key
- */
-// extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void * pRegistryKey)
-// {
-//  sal_Bool result = sal_False;
-
-//  if (pRegistryKey)
-//  {
-//      try
-//      {
-//          Reference< XRegistryKey > xNewKey(
-//              reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
-//                  OUString( RTL_CONSTASCII_USTRINGPARAM("/" IMPLNAME "/UNO/SERVICES") ) ) );
-
-//          const Sequence< OUString > & rSNL =
-//              MyCounterImpl::getSupportedServiceNames_Static();
-//          const OUString * pArray = rSNL.getConstArray();
-//          for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
-//              xNewKey->createKey( pArray[nPos] );
-
-//          return sal_True;
-//      }
-//      catch (InvalidRegistryException &)
-//      {
-//          // we should not ignore exceptions
-//      }
-//  }
-//  return result;
-// }
-
 /**
  * This function is called to get service factories for an implementation.
  *
diff --git a/odk/examples/java/Inspector/SourceCodeGenerator.java b/odk/examples/java/Inspector/SourceCodeGenerator.java
index ac7bdfa..f8de8c2 100644
--- a/odk/examples/java/Inspector/SourceCodeGenerator.java
+++ b/odk/examples/java/Inspector/SourceCodeGenerator.java
@@ -92,7 +92,6 @@ public class SourceCodeGenerator {
                         if (oUnoMethodNode.isInvoked()){
                             UnoObjectDefinition oUnoReturnObjectDefinition = getUnoObjectDefinition(_xTreepathProvider, oUnoMethodNode, i);
                             if (!isVariableDeclared(oUnoReturnObjectDefinition, this.generateVariableNameFromMethod(oUnoMethodNode.getXIdlMethod()))){
-//                                sStatementCode += "\n";
                                 sStatementCode += "\n" + getMethodStatementSourceCode(oUnoMethodNode, sVariableName, oUnoReturnObjectDefinition);
                             }
                             sVariableName = oUnoReturnObjectDefinition.getVariableName();
@@ -103,7 +102,6 @@ public class SourceCodeGenerator {
                         Any oReturnObject = com.sun.star.uno.Any.complete(oUnoPropertyNode.getUnoReturnObject());
                         UnoObjectDefinition oUnoReturnObjectDefinition = new UnoObjectDefinition(oReturnObject);
                         if (!isVariableDeclared(oUnoReturnObjectDefinition, oUnoPropertyNode.getProperty().Name)){
-//                            sStatementCode += "\n";
                             sStatementCode += "\n" + getPropertyStatementSourceCode(oUnoPropertyNode, sVariableName, oUnoReturnObjectDefinition);
                         }
                         sVariableName = oUnoReturnObjectDefinition.getVariableName();
@@ -858,7 +856,6 @@ class UnoObjectDefinition{
     public class JavaCodeGenerator implements XLanguageSourceCodeGenerator{
         String sStatementsCode = "";
         boolean bAddAnyConverter = false;
-//        boolean bAddTypeImport = false;
         boolean bIsPropertyUnoObjectDefined = false;
 
         public JavaCodeGenerator(){
@@ -1549,12 +1546,7 @@ class UnoObjectDefinition{
 
 
         public String getConvertedSourceCodeValueOfObject(String _sReturnVariableName, String _sObjectDescription, TypeClass _aTypeClass, String _sTypeName){
-//            if (m_oIntrospector.isPrimitive(_aTypeClass)){
-                return _sObjectDescription + " >>= " + _sReturnVariableName;
-//            }
-//            else{
-//                return _sReturnVariableName + " = " + _sObjectDescription;
-//            }
+            return _sObjectDescription + " >>= " + _sReturnVariableName;
         }
 
 
commit d054a817be89c2827f53cd17c2df42ef01e4f4e1
Author: Tor Lillqvist <tml at iki.fi>
Date:   Sun Mar 31 21:54:33 2013 +0300

    Revert "Try redrawing in multiple phases to avoid blocking the UI thread too long"
    
    This reverts commit 3aae02d02d418222b0b51748008ed5c9c1f1d3c2.

diff --git a/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m b/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m
index 8daaccd..2f74d48 100644
--- a/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m
+++ b/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m
@@ -37,7 +37,6 @@ static UIView *theView;
     r.origin = CGPointMake(0, 0);
 
     self.view = [[View alloc] initWithFrame: r];
-    self.view.clearsContextBeforeDrawing = NO;
     vc.view = self.view;
     theView = self.view;
 
diff --git a/vcl/inc/ios/iosinst.hxx b/vcl/inc/ios/iosinst.hxx
index bb33936..3b87de6 100644
--- a/vcl/inc/ios/iosinst.hxx
+++ b/vcl/inc/ios/iosinst.hxx
@@ -52,13 +52,12 @@ public:
     void damaged( IosSalFrame *frame,
                   const basegfx::B2IBox& rDamageRect);
 
-    typedef enum { IDLE, PENDING, WAITING, GOAHEAD } eRenderWindowsState;
-    struct {
-        eRenderWindowsState state;
+    typedef struct {
+        bool done;
         CGContextRef context;
         CGRect rect;
-    } m_aRenderWindowsState;
-    DECL_LINK( RenderWindows, void* );
+    } RenderWindowsArg;
+    DECL_LINK( RenderWindows, RenderWindowsArg* );
 
     pthread_mutex_t m_aRenderMutex;
     pthread_cond_t m_aRenderCond;
diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx
index 444d1ac..4767c46 100644
--- a/vcl/ios/iosinst.cxx
+++ b/vcl/ios/iosinst.cxx
@@ -107,8 +107,6 @@ IosSalInstance::IosSalInstance( SalYieldMutex *pMutex )
     rc = pthread_mutex_init( &m_aRenderMutex, NULL );
     SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_init failed: " << strerror( rc ) );
 #endif
-
-    m_aRenderWindowsState.state = IDLE;
 }
 
 IosSalInstance::~IosSalInstance()
@@ -281,7 +279,7 @@ void lo_set_view_size(int width, int height)
     viewHeight = height;
 }
 
-IMPL_LINK_NOARG( IosSalInstance, RenderWindows )
+IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg )
 {
     int rc;
 
@@ -292,19 +290,6 @@ IMPL_LINK_NOARG( IosSalInstance, RenderWindows )
 
     NSLog(@"RenderWindows: mutex locked");
 
-    m_aRenderWindowsState.state = WAITING;
-
-    /* We need to poke the UI thread to do drawRect() which calls
-     * lo_render_windows() which signals the condition so we can
-     * continue.
-     */
-    lo_damaged( m_aRenderWindowsState.rect );
-
-    while (m_aRenderWindowsState.state != GOAHEAD) {
-        rc = pthread_cond_wait( &m_aRenderCond, &m_aRenderMutex );
-        SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) );
-    }
-
     NSDate *a = [NSDate date];
 
     for( std::list< SalFrame* >::const_iterator it = getFrames().begin();
@@ -314,7 +299,7 @@ IMPL_LINK_NOARG( IosSalInstance, RenderWindows )
         SalFrameGeometry aGeom = pFrame->GetGeometry();
         CGRect bbox = CGRectMake( aGeom.nX, aGeom.nY, aGeom.nWidth, aGeom.nHeight );
         if ( pFrame->IsVisible() &&
-             CGRectIntersectsRect( m_aRenderWindowsState.rect, bbox ) ) {
+             CGRectIntersectsRect( arg->rect, bbox ) ) {
 
             const basebmp::BitmapDeviceSharedPtr aDevice = pFrame->getDevice();
             CGDataProviderRef provider =
@@ -331,11 +316,11 @@ IMPL_LINK_NOARG( IosSalInstance, RenderWindows )
                                NULL,
                                false,
                                kCGRenderingIntentDefault );
-            CGContextDrawImage( m_aRenderWindowsState.context, bbox, image );
+            CGContextDrawImage( arg->context, bbox, image );
         }
     }
 
-    m_aRenderWindowsState.state = IDLE;
+    arg->done = true;
 
     rc = pthread_cond_signal( &m_aRenderCond );
     SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_signal failed:" << strerror( rc ) );
@@ -369,25 +354,16 @@ void lo_render_windows( CGContextRef context, CGRect rect )
 
     NSLog(@"lo_render_windows: mutex locked");
 
-    if (pInstance->m_aRenderWindowsState.state == IosSalInstance::IDLE) {
-        pInstance->m_aRenderWindowsState.state = IosSalInstance::PENDING;
-        pInstance->m_aRenderWindowsState.context = context;
-        pInstance->m_aRenderWindowsState.rect = rect;
-        Application::PostUserEvent( LINK( pInstance, IosSalInstance, RenderWindows ) );
-    } else {
-        pInstance->m_aRenderWindowsState.context = context;
-        pInstance->m_aRenderWindowsState.rect = CGRectUnion( pInstance->m_aRenderWindowsState.rect, rect );
-        if (pInstance->m_aRenderWindowsState.state == IosSalInstance::WAITING) {
-            pInstance->m_aRenderWindowsState.state = IosSalInstance::GOAHEAD;
-            pthread_cond_signal( &pInstance->m_aRenderCond );
-            while (pInstance->m_aRenderWindowsState.state != IosSalInstance::IDLE) {
-                rc = pthread_cond_wait( &pInstance->m_aRenderCond, &pInstance->m_aRenderMutex );
-                SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) );
-            }
-        }
+    IosSalInstance::RenderWindowsArg arg = { false, context, rect };
+    Application::PostUserEvent( LINK( pInstance, IosSalInstance, RenderWindows), &arg );
+
+    while (!arg.done) {
+        rc = pthread_cond_wait( &pInstance->m_aRenderCond, &pInstance->m_aRenderMutex );
+        SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) );
     }
 
-    NSLog(@"lo_render_windows: unlocking mutex");
+    NSLog(@"lo_render_windows: mutex unlocked");
+
     rc = pthread_mutex_unlock( &pInstance->m_aRenderMutex );
     SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_unlock failed: " << strerror( rc ) );
 
commit 41a70cc2d32dde3e2c76a6f1d4f3dd1b32bb1c02
Author: Tor Lillqvist <tml at iki.fi>
Date:   Sun Mar 31 20:39:01 2013 +0300

    Try redrawing in multiple phases to avoid blocking the UI thread too long
    
    When initially calling lo_render_windows() from a redrawRect(), just
    post the user event asking for a redraw of the (headless) windows, and
    return without actually drawing anything to the context.
    
    Then when the RenderWindows() callback for that user event eventually
    gets called (which during startup and/or loading of a document might
    be several seconds later, as there is lots of other activity going on
    also as "user events"), ask the UI thread for a fresh redraw, and wait
    for lo_render_windows() in that phase to signal the actual redraw of
    the "headless" windows into the context.
    
    Unfortunately this doesn't work well enough. It is not a good idea to
    not draw anything in response to a drawRect() it seems. The affected
    rectangle gets initialised to black. So there is now irritating
    flashing. One sees an almost ready document (and the UI elements which
    still are there), but then it goes away for some time before finally
    re-appearding. Quite silly. So I will revert this, and I am committing
    it just to keep the code for reference in git.
    
    Change-Id: I9ee490345f093d80113c36f9e3268cab5a810dd0

diff --git a/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m b/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m
index 2f74d48..8daaccd 100644
--- a/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m
+++ b/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m
@@ -37,6 +37,7 @@ static UIView *theView;
     r.origin = CGPointMake(0, 0);
 
     self.view = [[View alloc] initWithFrame: r];
+    self.view.clearsContextBeforeDrawing = NO;
     vc.view = self.view;
     theView = self.view;
 
diff --git a/vcl/inc/ios/iosinst.hxx b/vcl/inc/ios/iosinst.hxx
index 3b87de6..bb33936 100644
--- a/vcl/inc/ios/iosinst.hxx
+++ b/vcl/inc/ios/iosinst.hxx
@@ -52,12 +52,13 @@ public:
     void damaged( IosSalFrame *frame,
                   const basegfx::B2IBox& rDamageRect);
 
-    typedef struct {
-        bool done;
+    typedef enum { IDLE, PENDING, WAITING, GOAHEAD } eRenderWindowsState;
+    struct {
+        eRenderWindowsState state;
         CGContextRef context;
         CGRect rect;
-    } RenderWindowsArg;
-    DECL_LINK( RenderWindows, RenderWindowsArg* );
+    } m_aRenderWindowsState;
+    DECL_LINK( RenderWindows, void* );
 
     pthread_mutex_t m_aRenderMutex;
     pthread_cond_t m_aRenderCond;
diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx
index 4767c46..444d1ac 100644
--- a/vcl/ios/iosinst.cxx
+++ b/vcl/ios/iosinst.cxx
@@ -107,6 +107,8 @@ IosSalInstance::IosSalInstance( SalYieldMutex *pMutex )
     rc = pthread_mutex_init( &m_aRenderMutex, NULL );
     SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_init failed: " << strerror( rc ) );
 #endif
+
+    m_aRenderWindowsState.state = IDLE;
 }
 
 IosSalInstance::~IosSalInstance()
@@ -279,7 +281,7 @@ void lo_set_view_size(int width, int height)
     viewHeight = height;
 }
 
-IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg )
+IMPL_LINK_NOARG( IosSalInstance, RenderWindows )
 {
     int rc;
 
@@ -290,6 +292,19 @@ IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg )
 
     NSLog(@"RenderWindows: mutex locked");
 
+    m_aRenderWindowsState.state = WAITING;
+
+    /* We need to poke the UI thread to do drawRect() which calls
+     * lo_render_windows() which signals the condition so we can
+     * continue.
+     */
+    lo_damaged( m_aRenderWindowsState.rect );
+
+    while (m_aRenderWindowsState.state != GOAHEAD) {
+        rc = pthread_cond_wait( &m_aRenderCond, &m_aRenderMutex );
+        SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) );
+    }
+
     NSDate *a = [NSDate date];
 
     for( std::list< SalFrame* >::const_iterator it = getFrames().begin();
@@ -299,7 +314,7 @@ IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg )
         SalFrameGeometry aGeom = pFrame->GetGeometry();
         CGRect bbox = CGRectMake( aGeom.nX, aGeom.nY, aGeom.nWidth, aGeom.nHeight );
         if ( pFrame->IsVisible() &&
-             CGRectIntersectsRect( arg->rect, bbox ) ) {
+             CGRectIntersectsRect( m_aRenderWindowsState.rect, bbox ) ) {
 
             const basebmp::BitmapDeviceSharedPtr aDevice = pFrame->getDevice();
             CGDataProviderRef provider =
@@ -316,11 +331,11 @@ IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg )
                                NULL,
                                false,
                                kCGRenderingIntentDefault );
-            CGContextDrawImage( arg->context, bbox, image );
+            CGContextDrawImage( m_aRenderWindowsState.context, bbox, image );
         }
     }
 
-    arg->done = true;
+    m_aRenderWindowsState.state = IDLE;
 
     rc = pthread_cond_signal( &m_aRenderCond );
     SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_signal failed:" << strerror( rc ) );
@@ -354,16 +369,25 @@ void lo_render_windows( CGContextRef context, CGRect rect )
 
     NSLog(@"lo_render_windows: mutex locked");
 
-    IosSalInstance::RenderWindowsArg arg = { false, context, rect };
-    Application::PostUserEvent( LINK( pInstance, IosSalInstance, RenderWindows), &arg );
-
-    while (!arg.done) {
-        rc = pthread_cond_wait( &pInstance->m_aRenderCond, &pInstance->m_aRenderMutex );
-        SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) );
+    if (pInstance->m_aRenderWindowsState.state == IosSalInstance::IDLE) {
+        pInstance->m_aRenderWindowsState.state = IosSalInstance::PENDING;
+        pInstance->m_aRenderWindowsState.context = context;
+        pInstance->m_aRenderWindowsState.rect = rect;
+        Application::PostUserEvent( LINK( pInstance, IosSalInstance, RenderWindows ) );
+    } else {
+        pInstance->m_aRenderWindowsState.context = context;
+        pInstance->m_aRenderWindowsState.rect = CGRectUnion( pInstance->m_aRenderWindowsState.rect, rect );
+        if (pInstance->m_aRenderWindowsState.state == IosSalInstance::WAITING) {
+            pInstance->m_aRenderWindowsState.state = IosSalInstance::GOAHEAD;
+            pthread_cond_signal( &pInstance->m_aRenderCond );
+            while (pInstance->m_aRenderWindowsState.state != IosSalInstance::IDLE) {
+                rc = pthread_cond_wait( &pInstance->m_aRenderCond, &pInstance->m_aRenderMutex );
+                SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) );
+            }
+        }
     }
 
-    NSLog(@"lo_render_windows: mutex unlocked");
-
+    NSLog(@"lo_render_windows: unlocking mutex");
     rc = pthread_mutex_unlock( &pInstance->m_aRenderMutex );
     SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_unlock failed: " << strerror( rc ) );
 


More information about the Libreoffice-commits mailing list