summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--svx/inc/tbunosearchcontrollers.hxx5
-rw-r--r--svx/source/tbxctrls/tbunosearchcontrollers.cxx20
2 files changed, 25 insertions, 0 deletions
diff --git a/svx/inc/tbunosearchcontrollers.hxx b/svx/inc/tbunosearchcontrollers.hxx
index 032662cf361d..91ddec8ba12e 100644
--- a/svx/inc/tbunosearchcontrollers.hxx
+++ b/svx/inc/tbunosearchcontrollers.hxx
@@ -46,6 +46,7 @@
#include <vcl/window.hxx>
#include <map>
+#include <vector>
namespace css = ::com::sun::star ;
namespace svx
@@ -86,11 +87,15 @@ public:
void freeController ( const css::uno::Reference< css::frame::XFrame >& xFrame, const css::uno::Reference< css::frame::XStatusListener >& xStatusListener, const ::rtl::OUString& sCommandURL );
css::uno::Reference< css::frame::XStatusListener > findController( const css::uno::Reference< css::frame::XFrame >& xFrame, const ::rtl::OUString& sCommandURL );
+ void saveSearchHistory(const FindTextFieldControl* m_pFindTextFieldControl);
+ void loadSearchHistory(FindTextFieldControl* m_pFindTextFieldControl);
+
private:
typedef ::comphelper::SequenceAsVector< css::beans::PropertyValue > SearchToolbarControllersVec;
typedef ::std::map< css::uno::Reference< css::frame::XFrame >, SearchToolbarControllersVec > SearchToolbarControllersMap;
SearchToolbarControllersMap aSearchToolbarControllersMap;
+ std::vector<rtl::OUString> aSearchStrings;
};
diff --git a/svx/source/tbxctrls/tbunosearchcontrollers.cxx b/svx/source/tbxctrls/tbunosearchcontrollers.cxx
index e58bd7fa5d69..2ad1cb17021d 100644
--- a/svx/source/tbxctrls/tbunosearchcontrollers.cxx
+++ b/svx/source/tbxctrls/tbunosearchcontrollers.cxx
@@ -246,6 +246,24 @@ SearchToolbarControllersManager& SearchToolbarControllersManager::createControll
return theSearchToolbarControllersManager::get();
}
+void SearchToolbarControllersManager::saveSearchHistory(const FindTextFieldControl* m_pFindTextFieldControl)
+{
+ sal_uInt16 nECount( m_pFindTextFieldControl->GetEntryCount() );
+ aSearchStrings.resize( nECount );
+ for( sal_uInt16 i=0; i<nECount; ++i )
+ {
+ aSearchStrings[i] = m_pFindTextFieldControl->GetEntry(i);
+ }
+}
+
+void SearchToolbarControllersManager::loadSearchHistory(FindTextFieldControl* m_pFindTextFieldControl)
+{
+ for( sal_uInt16 i=0; i<aSearchStrings.size(); ++i )
+ {
+ m_pFindTextFieldControl->InsertEntry(aSearchStrings[i],i);
+ }
+}
+
void SearchToolbarControllersManager::registryController( const css::uno::Reference< css::frame::XFrame >& xFrame, const css::uno::Reference< css::frame::XStatusListener >& xStatusListener, const ::rtl::OUString& sCommandURL )
{
SearchToolbarControllersMap::iterator pIt = aSearchToolbarControllersMap.find(xFrame);
@@ -382,6 +400,7 @@ void SAL_CALL FindTextToolbarController::dispose() throw ( css::uno::RuntimeExce
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();
+ SearchToolbarControllersManager::createControllersManager().saveSearchHistory(m_pFindTextFieldControl);
delete m_pFindTextFieldControl;
m_pFindTextFieldControl = 0;
}
@@ -428,6 +447,7 @@ css::uno::Reference< css::awt::XWindow > SAL_CALL FindTextToolbarController::cre
Size aSize(250, m_pFindTextFieldControl->GetTextHeight() + 200);
m_pFindTextFieldControl->SetSizePixel( aSize );
m_pFindTextFieldControl->SetModifyHdl(LINK(this, FindTextToolbarController, EditModifyHdl));
+ SearchToolbarControllersManager::createControllersManager().loadSearchHistory(m_pFindTextFieldControl);
}
xItemWindow = VCLUnoHelper::GetInterface( m_pFindTextFieldControl );