Re: [Libreoffice-commits] Adapt SwSrcEditWindow's SyntaxTimerHdl to being used in an Idle now

2015-05-06 Thread Tobias Madl
Patch in Gerrit: 5a142827fb945408c51725b31ebc1ded13a2d9c5

On Wed, May 6, 2015 at 10:03 AM, Tobias Madl tobias.madl@gmail.com
wrote:

 So yeah SetTimeout should be deletet, but it should be replaced with
 SetPriority (and of course set with an appropriate Priority), because
 otherwise it gets the default priority: HIGH.

 The taks should be stopped if there is absolutely no more work to do. If
 stop is called it gets completely removed of the tasklist. So if you think
 that it has no more work todo you can stop it by yourself.

 But i think i get your point, because i see that i missed to ask if the
 task is active (i only check if it should be delete). I wil change this and
 then you could set the task as inactive if you think that for now it has no
 more work to do and if it comes to the position:


   if (... !pIdle-IsActive()) pIdle-Start();

 it should be reactivatet.

 On Tue, May 5, 2015 at 11:46 AM, Stephan Bergmann sberg...@redhat.com
 wrote:

 I assume deleting the SetTimeout calls without replacement is fine, as
 the idle handler will automatically keep being called again?

 But then, is it OK that it only ever gets Stop()'ed in
 SwSrcEditWindow::dispose, or should it also stop itself when there's no
 more work to do?

 And is it necessary to do that

   if (... !pIdle-IsActive()) pIdle-Start();

 thing from within the handler?

 On 05/05/2015 10:22 AM, Stephan Bergmann wrote:

 commit c0e209bf5f418f1564d16e234251783a0857a9d4
 Author: Stephan Bergmann sberg...@redhat.com
 Date:   Tue May 5 10:16:43 2015 +0200

  Adapt SwSrcEditWindow's SyntaxTimerHdl to being used in an Idle now

  ...not a Timer, since d843f3de731667a298a83fc66637c7f983f3b24d
 changed timers
  to idle

  Change-Id: If8c6a52d6fb7b1e392e8f31bc8f0db22b2f049e1

 diff --git a/sw/source/uibase/docvw/srcedtw.cxx
 b/sw/source/uibase/docvw/srcedtw.cxx
 index cd66ace..02e1e66 100644
 --- a/sw/source/uibase/docvw/srcedtw.cxx
 +++ b/sw/source/uibase/docvw/srcedtw.cxx
 @@ -56,7 +56,6 @@ struct SwTextPortion

   #define MAX_SYNTAX_HIGHLIGHT 20
   #define MAX_HIGHLIGHTTIME 200
 -#define SYNTAX_HIGHLIGHT_TIMEOUT 200

   typedef std::dequeSwTextPortion SwTextPortions;

 @@ -579,7 +578,7 @@ IMPL_LINK(SwSrcEditWindow, ScrollHdl, ScrollBar*,
 pScroll)
   return 0;
   }

 -IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer )
 +IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Idle *, pIdle )
   {
   tools::Time aSyntaxCheckStart( tools::Time::SYSTEM );
   SAL_WARN_IF(pTextView == 0, sw, No View yet, but syntax
 highlighting?!);
 @@ -605,7 +604,6 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *,
 pTimer )
   break;
   if((tools::Time( tools::Time::SYSTEM ).GetTime() -
 aSyntaxCheckStart.GetTime())  MAX_HIGHLIGHTTIME )
   {
 -pTimer-SetTimeout( 2 * SYNTAX_HIGHLIGHT_TIMEOUT );
   break;
   }
   }
 @@ -620,13 +618,12 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer
 *, pTimer )
   nCount ++;
   if(tools::Time( tools::Time::SYSTEM ).GetTime() -
 aSyntaxCheckStart.GetTime()  MAX_HIGHLIGHTTIME)
   {
 -pTimer-SetTimeout( 2 * SYNTAX_HIGHLIGHT_TIMEOUT );
   break;
   }
   }

 -if(!aSyntaxLineTable.empty()  !pTimer-IsActive())
 -pTimer-Start();
 +if(!aSyntaxLineTable.empty()  !pIdle-IsActive())
 +pIdle-Start();
   // SyntaxTimerHdl is called when text changed
   // = good opportunity to determine text width!
   long nPrevTextWidth = nCurTextWidth;
 diff --git a/sw/source/uibase/inc/srcedtw.hxx
 b/sw/source/uibase/inc/srcedtw.hxx
 index 823e3cd..55e53f4 100644
 --- a/sw/source/uibase/inc/srcedtw.hxx
 +++ b/sw/source/uibase/inc/srcedtw.hxx
 @@ -95,7 +95,7 @@ private:
   using OutputDevice::SetFont;
   voidSetFont();

 -DECL_LINK( SyntaxTimerHdl, Timer * );
 +DECL_LINK( SyntaxTimerHdl, Idle * );
   DECL_LINK( TimeoutHdl, Timer * );

   using Window::Notify;




___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: [Libreoffice-commits] Adapt SwSrcEditWindow's SyntaxTimerHdl to being used in an Idle now

2015-05-06 Thread Tobias Madl
So yeah SetTimeout should be deletet, but it should be replaced with
SetPriority (and of course set with an appropriate Priority), because
otherwise it gets the default priority: HIGH.

The taks should be stopped if there is absolutely no more work to do. If
stop is called it gets completely removed of the tasklist. So if you think
that it has no more work todo you can stop it by yourself.

But i think i get your point, because i see that i missed to ask if the
task is active (i only check if it should be delete). I wil change this and
then you could set the task as inactive if you think that for now it has no
more work to do and if it comes to the position:


  if (... !pIdle-IsActive()) pIdle-Start();

it should be reactivatet.

On Tue, May 5, 2015 at 11:46 AM, Stephan Bergmann sberg...@redhat.com
wrote:

 I assume deleting the SetTimeout calls without replacement is fine, as the
 idle handler will automatically keep being called again?

 But then, is it OK that it only ever gets Stop()'ed in
 SwSrcEditWindow::dispose, or should it also stop itself when there's no
 more work to do?

 And is it necessary to do that

   if (... !pIdle-IsActive()) pIdle-Start();

 thing from within the handler?

 On 05/05/2015 10:22 AM, Stephan Bergmann wrote:

 commit c0e209bf5f418f1564d16e234251783a0857a9d4
 Author: Stephan Bergmann sberg...@redhat.com
 Date:   Tue May 5 10:16:43 2015 +0200

  Adapt SwSrcEditWindow's SyntaxTimerHdl to being used in an Idle now

  ...not a Timer, since d843f3de731667a298a83fc66637c7f983f3b24d
 changed timers
  to idle

  Change-Id: If8c6a52d6fb7b1e392e8f31bc8f0db22b2f049e1

 diff --git a/sw/source/uibase/docvw/srcedtw.cxx
 b/sw/source/uibase/docvw/srcedtw.cxx
 index cd66ace..02e1e66 100644
 --- a/sw/source/uibase/docvw/srcedtw.cxx
 +++ b/sw/source/uibase/docvw/srcedtw.cxx
 @@ -56,7 +56,6 @@ struct SwTextPortion

   #define MAX_SYNTAX_HIGHLIGHT 20
   #define MAX_HIGHLIGHTTIME 200
 -#define SYNTAX_HIGHLIGHT_TIMEOUT 200

   typedef std::dequeSwTextPortion SwTextPortions;

 @@ -579,7 +578,7 @@ IMPL_LINK(SwSrcEditWindow, ScrollHdl, ScrollBar*,
 pScroll)
   return 0;
   }

 -IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer )
 +IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Idle *, pIdle )
   {
   tools::Time aSyntaxCheckStart( tools::Time::SYSTEM );
   SAL_WARN_IF(pTextView == 0, sw, No View yet, but syntax
 highlighting?!);
 @@ -605,7 +604,6 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *,
 pTimer )
   break;
   if((tools::Time( tools::Time::SYSTEM ).GetTime() -
 aSyntaxCheckStart.GetTime())  MAX_HIGHLIGHTTIME )
   {
 -pTimer-SetTimeout( 2 * SYNTAX_HIGHLIGHT_TIMEOUT );
   break;
   }
   }
 @@ -620,13 +618,12 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer
 *, pTimer )
   nCount ++;
   if(tools::Time( tools::Time::SYSTEM ).GetTime() -
 aSyntaxCheckStart.GetTime()  MAX_HIGHLIGHTTIME)
   {
 -pTimer-SetTimeout( 2 * SYNTAX_HIGHLIGHT_TIMEOUT );
   break;
   }
   }

 -if(!aSyntaxLineTable.empty()  !pTimer-IsActive())
 -pTimer-Start();
 +if(!aSyntaxLineTable.empty()  !pIdle-IsActive())
 +pIdle-Start();
   // SyntaxTimerHdl is called when text changed
   // = good opportunity to determine text width!
   long nPrevTextWidth = nCurTextWidth;
 diff --git a/sw/source/uibase/inc/srcedtw.hxx
 b/sw/source/uibase/inc/srcedtw.hxx
 index 823e3cd..55e53f4 100644
 --- a/sw/source/uibase/inc/srcedtw.hxx
 +++ b/sw/source/uibase/inc/srcedtw.hxx
 @@ -95,7 +95,7 @@ private:
   using OutputDevice::SetFont;
   voidSetFont();

 -DECL_LINK( SyntaxTimerHdl, Timer * );
 +DECL_LINK( SyntaxTimerHdl, Idle * );
   DECL_LINK( TimeoutHdl, Timer * );

   using Window::Notify;



___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: [Libreoffice-commits] Adapt SwSrcEditWindow's SyntaxTimerHdl to being used in an Idle now

2015-05-05 Thread Stephan Bergmann
I assume deleting the SetTimeout calls without replacement is fine, as 
the idle handler will automatically keep being called again?


But then, is it OK that it only ever gets Stop()'ed in 
SwSrcEditWindow::dispose, or should it also stop itself when there's no 
more work to do?


And is it necessary to do that

  if (... !pIdle-IsActive()) pIdle-Start();

thing from within the handler?

On 05/05/2015 10:22 AM, Stephan Bergmann wrote:

commit c0e209bf5f418f1564d16e234251783a0857a9d4
Author: Stephan Bergmann sberg...@redhat.com
Date:   Tue May 5 10:16:43 2015 +0200

 Adapt SwSrcEditWindow's SyntaxTimerHdl to being used in an Idle now

 ...not a Timer, since d843f3de731667a298a83fc66637c7f983f3b24d changed 
timers
 to idle

 Change-Id: If8c6a52d6fb7b1e392e8f31bc8f0db22b2f049e1

diff --git a/sw/source/uibase/docvw/srcedtw.cxx 
b/sw/source/uibase/docvw/srcedtw.cxx
index cd66ace..02e1e66 100644
--- a/sw/source/uibase/docvw/srcedtw.cxx
+++ b/sw/source/uibase/docvw/srcedtw.cxx
@@ -56,7 +56,6 @@ struct SwTextPortion

  #define MAX_SYNTAX_HIGHLIGHT 20
  #define MAX_HIGHLIGHTTIME 200
-#define SYNTAX_HIGHLIGHT_TIMEOUT 200

  typedef std::dequeSwTextPortion SwTextPortions;

@@ -579,7 +578,7 @@ IMPL_LINK(SwSrcEditWindow, ScrollHdl, ScrollBar*, pScroll)
  return 0;
  }

-IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer )
+IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Idle *, pIdle )
  {
  tools::Time aSyntaxCheckStart( tools::Time::SYSTEM );
  SAL_WARN_IF(pTextView == 0, sw, No View yet, but syntax 
highlighting?!);
@@ -605,7 +604,6 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer 
)
  break;
  if((tools::Time( tools::Time::SYSTEM ).GetTime() - 
aSyntaxCheckStart.GetTime())  MAX_HIGHLIGHTTIME )
  {
-pTimer-SetTimeout( 2 * SYNTAX_HIGHLIGHT_TIMEOUT );
  break;
  }
  }
@@ -620,13 +618,12 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, 
pTimer )
  nCount ++;
  if(tools::Time( tools::Time::SYSTEM ).GetTime() - 
aSyntaxCheckStart.GetTime()  MAX_HIGHLIGHTTIME)
  {
-pTimer-SetTimeout( 2 * SYNTAX_HIGHLIGHT_TIMEOUT );
  break;
  }
  }

-if(!aSyntaxLineTable.empty()  !pTimer-IsActive())
-pTimer-Start();
+if(!aSyntaxLineTable.empty()  !pIdle-IsActive())
+pIdle-Start();
  // SyntaxTimerHdl is called when text changed
  // = good opportunity to determine text width!
  long nPrevTextWidth = nCurTextWidth;
diff --git a/sw/source/uibase/inc/srcedtw.hxx b/sw/source/uibase/inc/srcedtw.hxx
index 823e3cd..55e53f4 100644
--- a/sw/source/uibase/inc/srcedtw.hxx
+++ b/sw/source/uibase/inc/srcedtw.hxx
@@ -95,7 +95,7 @@ private:
  using OutputDevice::SetFont;
  voidSetFont();

-DECL_LINK( SyntaxTimerHdl, Timer * );
+DECL_LINK( SyntaxTimerHdl, Idle * );
  DECL_LINK( TimeoutHdl, Timer * );

  using Window::Notify;


___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice