[Libreoffice-commits] core.git: sd/source sd/uiconfig

Akshay Deep akshaydeepiitr at gmail.com
Wed Feb 1 17:21:28 UTC 2017


 sd/source/ui/animations/CustomAnimationPane.cxx  |   63 ++++++++++++++++++++---
 sd/source/ui/animations/CustomAnimationPane.hxx  |    4 +
 sd/uiconfig/simpress/ui/customanimationspanel.ui |   36 +++++++++++++
 3 files changed, 96 insertions(+), 7 deletions(-)

New commits:
commit 76acb8ab5f302d1dc3a33ac8c13e5e8fd7b6c7a5
Author: Akshay Deep <akshaydeepiitr at gmail.com>
Date:   Tue Jan 17 23:03:02 2017 +0530

    tdf#98034 - SIDEBAR: Add delay spinbox to Custom Animation tab
    
    Change-Id: Ie13a5e04207475794fef75c568786f37eb2c406f
    Reviewed-on: https://gerrit.libreoffice.org/33230
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Heiko Tietze <tietze.heiko at googlemail.com>
    Reviewed-by: Akshay Deep <akshaydeepiitr at gmail.com>

diff --git a/sd/source/ui/animations/CustomAnimationPane.cxx b/sd/source/ui/animations/CustomAnimationPane.cxx
index 5d2697a..093b0df 100644
--- a/sd/source/ui/animations/CustomAnimationPane.cxx
+++ b/sd/source/ui/animations/CustomAnimationPane.cxx
@@ -177,6 +177,9 @@ void CustomAnimationPane::initialize()
     get(mpLBCategory, "categorylb");
     get(mpFTAnimation, "effectlabel");
     get(mpLBAnimation, "effect_list");
+    get(mpFTStartDelay, "delay_label");
+    get(mpMFStartDelay, "delay_value");
+
     mpLBAnimation->SetSelectHdl(LINK(this, CustomAnimationPane, AnimationSelectHdl));
     get(mpCustomAnimationList, "custom_animation_list");
     mpCustomAnimationList->setController( dynamic_cast<ICustomAnimationListController*> ( this ) );
@@ -212,6 +215,9 @@ void CustomAnimationPane::initialize()
     mpPBPlay->SetClickHdl( LINK( this, CustomAnimationPane, implClickHdl ) );
     mpCBAutoPreview->SetClickHdl( LINK( this, CustomAnimationPane, implClickHdl ) );
     mpLBCategory->SetSelectHdl( LINK(this, CustomAnimationPane, UpdateAnimationLB) );
+    mpMFStartDelay->SetModifyHdl( LINK(this, CustomAnimationPane, DelayModifiedHdl) );
+    mpMFStartDelay->SetLoseFocusHdl(LINK( this, CustomAnimationPane, DelayLoseFocusHdl));
+
 
     if(!mbHorizontal)
       maStrModify = mpFTEffect->GetText();
@@ -267,6 +273,8 @@ void CustomAnimationPane::dispose()
     mpPBPropertyMore.clear();
     mpFTDuration.clear();
     mpCBXDuration.clear();
+    mpFTStartDelay.clear();
+    mpMFStartDelay.clear();
     mpCustomAnimationList.clear();
     mpPBMoveUp.clear();
     mpPBMoveDown.clear();
@@ -506,6 +514,8 @@ void CustomAnimationPane::updateControls()
         mpLBCategory->Disable();
         mpFTAnimation->Disable();
         mpLBAnimation->Disable();
+        mpFTStartDelay->Disable();
+        mpMFStartDelay->Disable();
         mpLBAnimation->Clear();
         mpCustomAnimationList->clear();
         return;
@@ -536,6 +546,8 @@ void CustomAnimationPane::updateControls()
     mpLBStart->Enable(nSelectionCount > 0);
     mpLBProperty->Enable(nSelectionCount > 0);
     mpPBPropertyMore->Enable(nSelectionCount > 0);
+    mpFTStartDelay->Enable(nSelectionCount > 0);
+    mpMFStartDelay->Enable(nSelectionCount > 0);
 
     mpFTProperty->SetText( maStrProperty );
 
@@ -600,6 +612,8 @@ void CustomAnimationPane::updateControls()
             mpFTProperty->Enable( false );
             mpLBProperty->Enable( false );
             mpPBPropertyMore->Enable( false );
+            mpFTStartDelay->Enable( false );
+            mpMFStartDelay->Enable( false );
         }
         sal_uInt32 nCategoryPos = LISTBOX_ENTRY_NOTFOUND;
         switch(pEffect->getPresetClass())
@@ -662,12 +676,19 @@ void CustomAnimationPane::updateControls()
         }
 
         mpPBPropertyMore->Enable();
+
+        mpFTStartDelay->Enable();
+        mpMFStartDelay->Enable();
+        double fBegin = pEffect->getBegin();
+        mpMFStartDelay->SetValue(fBegin*10.0);
     }
     else
     {
         mpLBProperty->setSubControl( nullptr );
         mpFTProperty->Enable( false );
         mpLBProperty->Enable( false );
+        mpFTStartDelay->Enable( false );
+        mpMFStartDelay->Enable( false );
         mpPBPropertyMore->Enable( false );
         mpFTDuration->Enable(false);
         mpCBXDuration->Enable(false);
@@ -1288,15 +1309,17 @@ void CustomAnimationPane::changeSelection( STLPropertySet* pResultSet, STLProper
             }
         }
 
+        double fBegin = 0.0;
+
         if( pResultSet->getPropertyState( nHandleBegin ) == STLPropertyState::Direct )
-        {
-            double fBegin = 0.0;
             pResultSet->getPropertyValue( nHandleBegin ) >>= fBegin;
-            if( pEffect->getBegin() != fBegin )
-            {
-                pEffect->setBegin( fBegin );
-                bChanged = true;
-            }
+        else
+            fBegin = pEffect->getBegin();
+
+        if( pEffect->getBegin() != fBegin && pResultSet->getPropertyState( nHandleBegin ) == STLPropertyState::Direct)
+        {
+            pEffect->setBegin( fBegin );
+            bChanged = true;
         }
 
         if( pResultSet->getPropertyState( nHandleDuration ) == STLPropertyState::Direct )
@@ -2011,6 +2034,32 @@ IMPL_LINK_NOARG(CustomAnimationPane, implPropertyHdl, LinkParamNone*, void)
     }
 }
 
+IMPL_LINK_NOARG(CustomAnimationPane, DelayModifiedHdl, Edit&, void)
+{
+    addUndo();
+}
+
+IMPL_LINK_NOARG(CustomAnimationPane, DelayLoseFocusHdl, Control&, void)
+{
+    double fBegin = mpMFStartDelay->GetValue();
+
+    //sequence rebuild only when the control loses focus
+    MainSequenceRebuildGuard aGuard( mpMainSequence );
+
+    // change selected effect
+    EffectSequence::iterator aIter( maListSelection.begin() );
+    const EffectSequence::iterator aEnd( maListSelection.end() );
+    while( aIter != aEnd )
+    {
+        CustomAnimationEffectPtr pEffect = (*aIter++);
+        pEffect->setBegin( fBegin/10.0 );
+    }
+
+    mpMainSequence->rebuild();
+    updateControls();
+    mrBase.GetDocShell()->SetModified();
+}
+
 IMPL_LINK_NOARG(CustomAnimationPane, AnimationSelectHdl, ListBox&, void)
 {
     if( maListSelection.size() == 1 )
diff --git a/sd/source/ui/animations/CustomAnimationPane.hxx b/sd/source/ui/animations/CustomAnimationPane.hxx
index 636fff1e..214075c 100644
--- a/sd/source/ui/animations/CustomAnimationPane.hxx
+++ b/sd/source/ui/animations/CustomAnimationPane.hxx
@@ -125,6 +125,8 @@ private:
     DECL_LINK( EventMultiplexerListener, tools::EventMultiplexerEvent&, void );
     DECL_LINK( lateInitCallback, Timer *, void );
     DECL_LINK( DurationModifiedHdl, Edit&, void );
+    DECL_LINK( DelayModifiedHdl, Edit&, void );
+    DECL_LINK( DelayLoseFocusHdl, Control&, void );
     DECL_LINK( UpdateAnimationLB, ListBox&, void );
     DECL_LINK( AnimationSelectHdl, ListBox&, void );
     void implControlHdl(Control*);
@@ -145,6 +147,8 @@ private:
     VclPtr<PushButton> mpPBPropertyMore;
     VclPtr<FixedText>  mpFTDuration;
     VclPtr<MetricBox>   mpCBXDuration;
+    VclPtr<FixedText>   mpFTStartDelay;
+    VclPtr<MetricField> mpMFStartDelay;
     VclPtr<CustomAnimationList>    mpCustomAnimationList;
     VclPtr<PushButton> mpPBMoveUp;
     VclPtr<PushButton> mpPBMoveDown;
diff --git a/sd/uiconfig/simpress/ui/customanimationspanel.ui b/sd/uiconfig/simpress/ui/customanimationspanel.ui
index 9e1c536..9688079 100644
--- a/sd/uiconfig/simpress/ui/customanimationspanel.ui
+++ b/sd/uiconfig/simpress/ui/customanimationspanel.ui
@@ -3,6 +3,11 @@
 <interface>
   <requires lib="gtk+" version="3.0"/>
   <requires lib="LibreOffice" version="1.0"/>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">999.99000000000001</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
   <object class="GtkImage" id="image1">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -338,6 +343,37 @@
                   </packing>
                 </child>
                 <child>
+                  <object class="GtkLabel" id="delay_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">end</property>
+                    <property name="label" translatable="yes">_Delay:</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">3</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSpinButton" id="delay_value:0.0sec">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="halign">start</property>
+                    <property name="hexpand">True</property>
+                    <property name="text" translatable="yes">0.0</property>
+                    <property name="adjustment">adjustment1</property>
+                    <property name="digits">1</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">3</property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
                   <placeholder/>
                 </child>
                 <child>


More information about the Libreoffice-commits mailing list