[PATCH] fdo#63035 Add "Match Case" to Find bar.

Andrzej J.R. Hunt (via Code Review) gerrit at gerrit.libreoffice.org
Mon May 20 06:23:08 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3977

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/77/3977/1

fdo#63035 Add "Match Case" to Find bar.

Change-Id: I1339767de7980426d32960bf5ee60e2f5c011be4
---
M basctl/uiconfig/basicide/toolbar/findbar.xml
M include/svx/dialogs.hrc
M officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
M officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
M sc/uiconfig/scalc/toolbar/findbar.xml
M sd/uiconfig/sdraw/toolbar/findbar.xml
M sd/uiconfig/simpress/toolbar/findbar.xml
M svx/inc/tbunosearchcontrollers.hxx
M svx/source/tbxctrls/tbunosearchcontrollers.cxx
M svx/source/tbxctrls/tbunosearchcontrollers.src
M svx/source/unodraw/unoctabl.cxx
M svx/util/svx.component
M sw/uiconfig/sglobal/toolbar/findbar.xml
M sw/uiconfig/sweb/toolbar/findbar.xml
M sw/uiconfig/swriter/toolbar/findbar.xml
M sw/uiconfig/swxform/toolbar/findbar.xml
16 files changed, 300 insertions(+), 3 deletions(-)



diff --git a/basctl/uiconfig/basicide/toolbar/findbar.xml b/basctl/uiconfig/basicide/toolbar/findbar.xml
index 42baa21..57aec06 100644
--- a/basctl/uiconfig/basicide/toolbar/findbar.xml
+++ b/basctl/uiconfig/basicide/toolbar/findbar.xml
@@ -22,6 +22,7 @@
   <toolbar:toolbaritem xlink:href=".uno:FindText"/>
   <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
   <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+  <toolbar:toolbaritem xlink:href=".uno:MatchCase"/>
   <toolbar:toolbarseparator/>
   <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
 </toolbar:toolbar>
diff --git a/include/svx/dialogs.hrc b/include/svx/dialogs.hrc
index 339cba7..f9e7833 100644
--- a/include/svx/dialogs.hrc
+++ b/include/svx/dialogs.hrc
@@ -928,6 +928,7 @@
 #define RID_SVXSTR_OUTLINENUM_DESCRIPTION_7                 (RID_SVXSTR_OUTLINENUM_DESCRIPTIONS + 7)//?
 
 #define RID_SVXSTR_FINDBAR_FIND                             (RID_SVX_START + 1190)
+#define RID_SVXSTR_FINDBAR_MATCHCASE                        (RID_SVX_START + 1192)
 
 #define RID_SVXSTR_NEXTFREE                                 (RID_SVX_START + 1191)
 
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
index 56055d4..6fd5def 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
@@ -429,6 +429,17 @@
           <value>com.sun.star.svx.UpSearchToolboxController</value>
         </prop>
       </node>
+      <node oor:name="com.sun.star.svx.MatchCaseToolboxController" oor:op="replace">
+        <prop oor:name="Command">
+          <value>.uno:MatchCase</value>
+        </prop>
+        <prop oor:name="Module">
+          <value/>
+        </prop>
+        <prop oor:name="Controller">
+          <value>com.sun.star.svx.MatchCaseToolboxController</value>
+        </prop>
+      </node>
       <node oor:name="c4" oor:op="replace" install:module="reportbuilder">
         <prop oor:name="Command">
           <value>.uno:FontColor</value>
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index 8ff9b74..b9e77a6 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -1470,6 +1470,11 @@
           <value>1</value>
         </prop>
       </node>
+      <node oor:name=".uno:MatchCase" oor:op="replace">
+        <prop oor:name="Label" oor:type="xs:string">
+          <value xml:lang="en-US">Match Case</value>
+        </prop>
+      </node>
       <node oor:name=".uno:ExitSearch" oor:op="replace">
         <prop oor:name="Label" oor:type="xs:string">
           <value xml:lang="en-US">Exit Search</value>
diff --git a/sc/uiconfig/scalc/toolbar/findbar.xml b/sc/uiconfig/scalc/toolbar/findbar.xml
index a0e6037..f8052a1 100644
--- a/sc/uiconfig/scalc/toolbar/findbar.xml
+++ b/sc/uiconfig/scalc/toolbar/findbar.xml
@@ -22,6 +22,7 @@
   <toolbar:toolbaritem xlink:href=".uno:FindText"/>
   <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
   <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+  <toolbar:toolbaritem xlink:href=".uno:MatchCase"/>
   <toolbar:toolbarseparator/>
   <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
 </toolbar:toolbar>
diff --git a/sd/uiconfig/sdraw/toolbar/findbar.xml b/sd/uiconfig/sdraw/toolbar/findbar.xml
index a0e6037..f8052a1 100644
--- a/sd/uiconfig/sdraw/toolbar/findbar.xml
+++ b/sd/uiconfig/sdraw/toolbar/findbar.xml
@@ -22,6 +22,7 @@
   <toolbar:toolbaritem xlink:href=".uno:FindText"/>
   <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
   <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+  <toolbar:toolbaritem xlink:href=".uno:MatchCase"/>
   <toolbar:toolbarseparator/>
   <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
 </toolbar:toolbar>
diff --git a/sd/uiconfig/simpress/toolbar/findbar.xml b/sd/uiconfig/simpress/toolbar/findbar.xml
index a0e6037..f8052a1 100644
--- a/sd/uiconfig/simpress/toolbar/findbar.xml
+++ b/sd/uiconfig/simpress/toolbar/findbar.xml
@@ -22,6 +22,7 @@
   <toolbar:toolbaritem xlink:href=".uno:FindText"/>
   <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
   <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+  <toolbar:toolbaritem xlink:href=".uno:MatchCase"/>
   <toolbar:toolbarseparator/>
   <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
 </toolbar:toolbar>
diff --git a/svx/inc/tbunosearchcontrollers.hxx b/svx/inc/tbunosearchcontrollers.hxx
index 23eb22f..5a83776 100644
--- a/svx/inc/tbunosearchcontrollers.hxx
+++ b/svx/inc/tbunosearchcontrollers.hxx
@@ -33,6 +33,7 @@
 #include <cppuhelper/implbase1.hxx>
 #include <cppuhelper/weak.hxx>
 #include <svtools/toolboxcontroller.hxx>
+#include <vcl/button.hxx>
 #include <vcl/combobox.hxx>
 #include <vcl/window.hxx>
 
@@ -215,6 +216,49 @@
     Type meType;
 };
 
+class MatchCaseToolboxController : public svt::ToolboxController,
+                                      public css::lang::XServiceInfo
+{
+public:
+    MatchCaseToolboxController( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
+    ~MatchCaseToolboxController();
+
+    // XInterface
+    virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) throw ( css::uno::RuntimeException );
+    virtual void SAL_CALL acquire() throw ();
+    virtual void SAL_CALL release() throw ();
+
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() throw( css::uno::RuntimeException );
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw( css::uno::RuntimeException );
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( css::uno::RuntimeException );
+
+    static OUString getImplementationName_Static( ) throw()
+    {
+        return OUString( "com.sun.star.svx.MatchCaseToolboxController" );
+    }
+
+    static css::uno::Sequence< OUString >  getSupportedServiceNames_Static() throw();
+
+    // XComponent
+    virtual void SAL_CALL dispose() throw ( css::uno::RuntimeException );
+
+    // XInitialization
+    virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) throw ( css::uno::Exception, css::uno::RuntimeException);
+
+    // XToolbarController
+    virtual void SAL_CALL execute( sal_Int16 KeyModifier ) throw ( css::uno::RuntimeException );
+    virtual css::uno::Reference< css::awt::XWindow > SAL_CALL createItemWindow( const css::uno::Reference< css::awt::XWindow >& Parent ) throw ( css::uno::RuntimeException );
+
+    // XStatusListener
+    virtual void SAL_CALL statusChanged( const css::frame::FeatureStateEvent& rEvent ) throw ( css::uno::RuntimeException );
+
+    DECL_LINK(ClickHdl, void*);
+
+private:
+    CheckBox* m_pMatchCaseControl;
+};
+
 // protocol handler for "vnd.sun.star.findbar:*" URLs
 // The dispatch object will be used for shortcut commands for findbar
 class FindbarDispatcher : public css::lang::XServiceInfo,
@@ -267,6 +311,7 @@
 css::uno::Reference< css::uno::XInterface > SAL_CALL FindTextToolbarController_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& rSMgr );
 css::uno::Reference< css::uno::XInterface > SAL_CALL DownSearchToolboxController_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& rSMgr );
 css::uno::Reference< css::uno::XInterface > SAL_CALL UpSearchToolboxController_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& rSMgr );
+css::uno::Reference< css::uno::XInterface > SAL_CALL MatchCaseToolboxController_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& rSMgr );
 css::uno::Reference< css::uno::XInterface > SAL_CALL ExitFindbarToolboxController_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& rSMgr );
 css::uno::Reference< css::uno::XInterface > SAL_CALL FindbarDispatcher_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& rSMgr );
 
diff --git a/svx/source/tbxctrls/tbunosearchcontrollers.cxx b/svx/source/tbxctrls/tbunosearchcontrollers.cxx
index d67e5ac..6dc6aa8 100644
--- a/svx/source/tbxctrls/tbunosearchcontrollers.cxx
+++ b/svx/source/tbxctrls/tbunosearchcontrollers.cxx
@@ -25,6 +25,7 @@
 #include <comphelper/processfactory.hxx>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/frame/XLayoutManager.hpp>
+#include <com/sun/star/i18n/TransliterationModules.hpp>
 #include <com/sun/star/text/XTextRange.hpp>
 #include <com/sun/star/ui/XUIElement.hpp>
 #include <com/sun/star/util/URL.hpp>
@@ -42,12 +43,14 @@
 static const char SEARCHITEM_SEARCHSTRING[] = "SearchItem.SearchString";
 static const char SEARCHITEM_SEARCHBACKWARD[] = "SearchItem.Backward";
 static const char SEARCHITEM_SEARCHFLAGS[] = "SearchItem.SearchFlags";
+static const char SEARCHITEM_TRANSLITERATEFLAGS[] = "SearchItem.TransliterateFlags";
 
 static const char COMMAND_EXECUTESEARCH[] = ".uno:ExecuteSearch";
 static const char COMMAND_FINDTEXT[] = ".uno:FindText";
 static const char COMMAND_DOWNSEARCH[] = ".uno:DownSearch";
 static const char COMMAND_UPSEARCH[] = ".uno:UpSearch";
 static const char COMMAND_EXITSEARCH[] = ".uno:ExitSearch";
+static const char COMMAND_MATCHCASE[] = ".uno:MatchCase";
 static const char COMMAND_APPENDSEARCHHISTORY[] = "AppendSearchHistory";
 
 static const sal_Int32       REMEMBER_SIZE = 10;
@@ -163,8 +166,27 @@
             {
                 Remember_Impl(GetText());
 
+                sal_Bool aMatchCase;
+                Window* pWindow = GetParent();
+                ToolBox* pToolBox = (ToolBox*)pWindow;
+                if ( pToolBox )
+                {
+                    sal_uInt16 nItemCount = pToolBox->GetItemCount();
+                    for ( sal_uInt16 i=0; i<nItemCount; ++i )
+                    {
+                        OUString sItemCommand = pToolBox->GetItemCommand(i);
+                        if ( sItemCommand == COMMAND_MATCHCASE )
+                        {
+                            CheckBox* pItemWin = (CheckBox*) pToolBox->GetItemWindow(i);
+                            if (pItemWin)
+                                aMatchCase = pItemWin->IsChecked();
+                            break;
+                        }
+                    }
+                }
+
                 OUString sFindText = GetText();
-                css::uno::Sequence< css::beans::PropertyValue > lArgs(3);
+                css::uno::Sequence< css::beans::PropertyValue > lArgs(4);
 
                 lArgs[0].Name = OUString(SEARCHITEM_SEARCHSTRING);
                 lArgs[0].Value <<= sFindText;
@@ -177,6 +199,10 @@
 
                 lArgs[2].Name = OUString(SEARCHITEM_SEARCHFLAGS);
                 lArgs[2].Value <<= (sal_Int32)0;
+
+                lArgs[3].Name = OUString(SEARCHITEM_TRANSLITERATEFLAGS);
+                lArgs[3].Value <<= !aMatchCase ?
+                        com::sun::star::i18n::TransliterationModules_IGNORE_CASE : 0;
 
                 impl_executeSearch( m_xContext, m_xFrame, lArgs);
                 nRet = 1;
@@ -561,6 +587,7 @@
         throw css::lang::DisposedException();
 
     OUString sFindText;
+    sal_Bool aMatchCase;
     Window* pWindow = VCLUnoHelper::GetWindow( getParent() );
     ToolBox* pToolBox = (ToolBox*)pWindow;
     if ( pToolBox )
@@ -574,18 +601,25 @@
                 Window* pItemWin = pToolBox->GetItemWindow(i);
                 if (pItemWin)
                     sFindText = pItemWin->GetText();
-                break;
+            } else if ( sItemCommand == COMMAND_MATCHCASE )
+            {
+                CheckBox* pItemWin = (CheckBox*) pToolBox->GetItemWindow(i);
+                if (pItemWin)
+                    aMatchCase = pItemWin->IsChecked();
             }
         }
     }
 
-    css::uno::Sequence< css::beans::PropertyValue > lArgs(3);
+    css::uno::Sequence< css::beans::PropertyValue > lArgs(4);
     lArgs[0].Name = OUString(SEARCHITEM_SEARCHSTRING);
     lArgs[0].Value <<= sFindText;
     lArgs[1].Name = OUString(SEARCHITEM_SEARCHBACKWARD);
     lArgs[1].Value <<= sal_Bool( meType == UP );
     lArgs[2].Name = OUString(SEARCHITEM_SEARCHFLAGS);
     lArgs[2].Value <<= (sal_Int32)0;
+    lArgs[3].Name = OUString(SEARCHITEM_TRANSLITERATEFLAGS);
+    lArgs[3].Value <<= !aMatchCase ?
+        com::sun::star::i18n::TransliterationModules_IGNORE_CASE : 0;
 
     impl_executeSearch(m_xContext, m_xFrame, lArgs);
 
@@ -603,6 +637,177 @@
     if ( m_bDisposed )
         return;
 }
+
+//-----------------------------------------------------------------------------------------------------------
+// MatchCaseToolboxController
+
+MatchCaseToolboxController::MatchCaseToolboxController( const css::uno::Reference< css::uno::XComponentContext >& rxContext )
+    :svt::ToolboxController( rxContext,
+    css::uno::Reference< css::frame::XFrame >(),
+    OUString(COMMAND_MATCHCASE) )
+{
+}
+
+MatchCaseToolboxController::~MatchCaseToolboxController()
+{
+}
+
+// XInterface
+css::uno::Any SAL_CALL MatchCaseToolboxController::queryInterface( const css::uno::Type& aType ) throw ( css::uno::RuntimeException )
+{
+    css::uno::Any a = ToolboxController::queryInterface( aType );
+    if ( a.hasValue() )
+        return a;
+
+    return ::cppu::queryInterface( aType, static_cast< css::lang::XServiceInfo* >( this ) );
+}
+
+void SAL_CALL MatchCaseToolboxController::acquire() throw ()
+{
+    ToolboxController::acquire();
+}
+
+void SAL_CALL MatchCaseToolboxController::release() throw ()
+{
+    ToolboxController::release();
+}
+
+// XServiceInfo
+OUString SAL_CALL MatchCaseToolboxController::getImplementationName() throw( css::uno::RuntimeException )
+{
+    return getImplementationName_Static();
+}
+
+sal_Bool SAL_CALL MatchCaseToolboxController::supportsService( const OUString& ServiceName ) throw( css::uno::RuntimeException )
+{
+    const css::uno::Sequence< OUString > aSNL( getSupportedServiceNames() );
+    const OUString * pArray = aSNL.getConstArray();
+
+    for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
+        if( pArray[i] == ServiceName )
+            return true;
+
+    return false;
+}
+
+css::uno::Sequence< OUString > SAL_CALL MatchCaseToolboxController::getSupportedServiceNames() throw( css::uno::RuntimeException )
+{
+    return getSupportedServiceNames_Static();
+}
+
+css::uno::Sequence< OUString >  MatchCaseToolboxController::getSupportedServiceNames_Static() throw()
+{
+    css::uno::Sequence< OUString > aSNS( 1 );
+    aSNS.getArray()[0] = OUString( "com.sun.star.frame.ToolbarController" );
+    return aSNS;
+}
+
+// XComponent
+void SAL_CALL MatchCaseToolboxController::dispose() throw ( css::uno::RuntimeException )
+{
+    SolarMutexGuard aSolarMutexGuard;
+
+    SearchToolbarControllersManager::createControllersManager().freeController(m_xFrame, css::uno::Reference< css::frame::XStatusListener >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY), m_aCommandURL);
+
+    svt::ToolboxController::dispose();
+
+    delete m_pMatchCaseControl;
+    m_pMatchCaseControl = 0;
+}
+
+// XInitialization
+void SAL_CALL MatchCaseToolboxController::initialize( const css::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw ( css::uno::Exception, css::uno::RuntimeException)
+{
+    svt::ToolboxController::initialize(aArguments);
+
+    SearchToolbarControllersManager::createControllersManager().registryController(m_xFrame, css::uno::Reference< css::frame::XStatusListener >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY), m_aCommandURL);
+}
+
+// XToolbarController
+void SAL_CALL MatchCaseToolboxController::execute( sal_Int16 /*KeyModifier*/ ) throw ( css::uno::RuntimeException )
+{
+}
+
+css::uno::Reference< css::awt::XWindow > SAL_CALL MatchCaseToolboxController::createItemWindow( const css::uno::Reference< css::awt::XWindow >& Parent ) throw ( css::uno::RuntimeException )
+{
+    css::uno::Reference< css::awt::XWindow > xItemWindow;
+
+    css::uno::Reference< css::awt::XWindow > xParent( Parent );
+    Window* pParent = VCLUnoHelper::GetWindow( xParent );
+    if ( pParent )
+    {
+        ToolBox* pToolbar =  ( ToolBox* )pParent;
+        m_pMatchCaseControl = new CheckBox( pToolbar, 0 );
+        m_pMatchCaseControl->SetText( SVX_RESSTR( RID_SVXSTR_FINDBAR_MATCHCASE ) );
+        Size aSize( m_pMatchCaseControl->GetTextWidth(SVX_RESSTR( RID_SVXSTR_FINDBAR_MATCHCASE )) + 35,
+                                    m_pMatchCaseControl->GetTextHeight() + 15);
+        m_pMatchCaseControl->SetSizePixel( aSize );
+        m_pMatchCaseControl->SetClickHdl(LINK(this, MatchCaseToolboxController, ClickHdl));
+    }
+    xItemWindow = VCLUnoHelper::GetInterface( m_pMatchCaseControl );
+
+    return xItemWindow;
+}
+
+// XStatusListener
+void SAL_CALL MatchCaseToolboxController::statusChanged( const css::frame::FeatureStateEvent& rEvent ) throw ( css::uno::RuntimeException )
+{
+    (void) rEvent;
+    SolarMutexGuard aSolarMutexGuard;
+    if ( m_bDisposed )
+        return;
+}
+
+IMPL_LINK_NOARG(MatchCaseToolboxController, ClickHdl)
+{
+    if ( m_bDisposed )
+        throw css::lang::DisposedException();
+
+    OUString sFindText;
+    sal_Bool aMatchCase;
+    Window* pWindow = VCLUnoHelper::GetWindow( getParent() );
+    ToolBox* pToolBox = (ToolBox*)pWindow;
+    if ( pToolBox )
+    {
+        sal_uInt16 nItemCount = pToolBox->GetItemCount();
+        for ( sal_uInt16 i=0; i<nItemCount; ++i )
+        {
+            OUString sItemCommand = pToolBox->GetItemCommand(i);
+            if ( sItemCommand == COMMAND_FINDTEXT )
+            {
+                Window* pItemWin = pToolBox->GetItemWindow(i);
+                if (pItemWin)
+                    sFindText = pItemWin->GetText();
+            } else if ( sItemCommand == COMMAND_MATCHCASE )
+            {
+                CheckBox* pItemWin = (CheckBox*) pToolBox->GetItemWindow(i);
+                if (pItemWin)
+                    aMatchCase = pItemWin->IsChecked();
+            }
+        }
+    }
+
+    css::uno::Sequence< css::beans::PropertyValue > lArgs(4);
+    lArgs[0].Name = OUString(SEARCHITEM_SEARCHSTRING);
+    lArgs[0].Value <<= sFindText;
+    lArgs[1].Name = OUString(SEARCHITEM_SEARCHBACKWARD);
+    lArgs[1].Value <<= sal_False;
+    lArgs[2].Name = OUString(SEARCHITEM_SEARCHFLAGS);
+    lArgs[2].Value <<= (sal_Int32)0;
+    lArgs[3].Name = OUString(SEARCHITEM_TRANSLITERATEFLAGS);
+    lArgs[3].Value <<= !aMatchCase ?
+        com::sun::star::i18n::TransliterationModules_IGNORE_CASE : 0;
+
+    impl_executeSearch(m_xContext, m_xFrame, lArgs);
+
+    css::frame::FeatureStateEvent aEvent;
+    aEvent.FeatureURL.Complete = OUString(COMMAND_APPENDSEARCHHISTORY);
+    css::uno::Reference< css::frame::XStatusListener > xStatusListener = SearchToolbarControllersManager::createControllersManager().findController(m_xFrame, COMMAND_FINDTEXT);
+    if (xStatusListener.is())
+        xStatusListener->statusChanged( aEvent );
+    return 0;
+}
+
 //-----------------------------------------------------------------------------------------------------------
 // class ExitSearchToolboxController
 
@@ -899,6 +1104,13 @@
             comphelper::getComponentContext(rSMgr), UpDownSearchToolboxController::UP ) );
 }
 
+css::uno::Reference< css::uno::XInterface > SAL_CALL MatchCaseToolboxController_createInstance(
+    const css::uno::Reference< css::lang::XMultiServiceFactory >& rSMgr )
+{
+    return static_cast< cppu::OWeakObject * >(
+        new MatchCaseToolboxController( comphelper::getComponentContext(rSMgr) ) );
+}
+
 css::uno::Reference< css::uno::XInterface > SAL_CALL ExitFindbarToolboxController_createInstance(
     const css::uno::Reference< css::lang::XMultiServiceFactory >& rSMgr )
 {
diff --git a/svx/source/tbxctrls/tbunosearchcontrollers.src b/svx/source/tbxctrls/tbunosearchcontrollers.src
index a9d42b9..d3b8920 100644
--- a/svx/source/tbxctrls/tbunosearchcontrollers.src
+++ b/svx/source/tbxctrls/tbunosearchcontrollers.src
@@ -24,4 +24,9 @@
     Text [ en-US ] = "Find" ;
 };
 
+String RID_SVXSTR_FINDBAR_MATCHCASE
+{
+    Text [ en-US ] = "Match Case" ;
+};
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/unodraw/unoctabl.cxx b/svx/source/unodraw/unoctabl.cxx
index 0ea4b3a..86b596e 100644
--- a/svx/source/unodraw/unoctabl.cxx
+++ b/svx/source/unodraw/unoctabl.cxx
@@ -306,6 +306,13 @@
                 svx::UpSearchToolboxController_createInstance,
                 svx::UpDownSearchToolboxController::getSupportedServiceNames_Static() );
         }
+        else if ( svx::MatchCaseToolboxController::getImplementationName_Static().equalsAscii( pImplName ) )
+        {
+            xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ),
+                svx::MatchCaseToolboxController::getImplementationName_Static(),
+                svx::MatchCaseToolboxController_createInstance,
+                svx::MatchCaseToolboxController::getSupportedServiceNames_Static() );
+        }
         else if ( svx::ExitSearchToolboxController::getImplementationName_Static().equalsAscii( pImplName ) )
         {
             xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ),
diff --git a/svx/util/svx.component b/svx/util/svx.component
index ea9f39c..84b5d36 100644
--- a/svx/util/svx.component
+++ b/svx/util/svx.component
@@ -58,6 +58,9 @@
   <implementation name="com.sun.star.svx.FindTextToolboxController">
     <service name="com.sun.star.frame.ToolbarController"/>
   </implementation>
+  <implementation name="com.sun.star.svx.MatchCaseToolboxController">
+    <service name="com.sun.star.frame.ToolbarController"/>
+  </implementation>
   <implementation name="com.sun.star.svx.FontHeightToolBoxController">
     <service name="com.sun.star.frame.ToolbarController"/>
   </implementation>
diff --git a/sw/uiconfig/sglobal/toolbar/findbar.xml b/sw/uiconfig/sglobal/toolbar/findbar.xml
index a0e6037..f8052a1 100644
--- a/sw/uiconfig/sglobal/toolbar/findbar.xml
+++ b/sw/uiconfig/sglobal/toolbar/findbar.xml
@@ -22,6 +22,7 @@
   <toolbar:toolbaritem xlink:href=".uno:FindText"/>
   <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
   <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+  <toolbar:toolbaritem xlink:href=".uno:MatchCase"/>
   <toolbar:toolbarseparator/>
   <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
 </toolbar:toolbar>
diff --git a/sw/uiconfig/sweb/toolbar/findbar.xml b/sw/uiconfig/sweb/toolbar/findbar.xml
index a0e6037..f8052a1 100644
--- a/sw/uiconfig/sweb/toolbar/findbar.xml
+++ b/sw/uiconfig/sweb/toolbar/findbar.xml
@@ -22,6 +22,7 @@
   <toolbar:toolbaritem xlink:href=".uno:FindText"/>
   <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
   <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+  <toolbar:toolbaritem xlink:href=".uno:MatchCase"/>
   <toolbar:toolbarseparator/>
   <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
 </toolbar:toolbar>
diff --git a/sw/uiconfig/swriter/toolbar/findbar.xml b/sw/uiconfig/swriter/toolbar/findbar.xml
index a0e6037..f8052a1 100644
--- a/sw/uiconfig/swriter/toolbar/findbar.xml
+++ b/sw/uiconfig/swriter/toolbar/findbar.xml
@@ -22,6 +22,7 @@
   <toolbar:toolbaritem xlink:href=".uno:FindText"/>
   <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
   <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+  <toolbar:toolbaritem xlink:href=".uno:MatchCase"/>
   <toolbar:toolbarseparator/>
   <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
 </toolbar:toolbar>
diff --git a/sw/uiconfig/swxform/toolbar/findbar.xml b/sw/uiconfig/swxform/toolbar/findbar.xml
index a0e6037..f8052a1 100644
--- a/sw/uiconfig/swxform/toolbar/findbar.xml
+++ b/sw/uiconfig/swxform/toolbar/findbar.xml
@@ -22,6 +22,7 @@
   <toolbar:toolbaritem xlink:href=".uno:FindText"/>
   <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
   <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+  <toolbar:toolbaritem xlink:href=".uno:MatchCase"/>
   <toolbar:toolbarseparator/>
   <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
 </toolbar:toolbar>

-- 
To view, visit https://gerrit.libreoffice.org/3977
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1339767de7980426d32960bf5ee60e2f5c011be4
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Andrzej J.R. Hunt <andrzej at ahunt.org>



More information about the LibreOffice mailing list