[Libreoffice-commits] core.git: unotools/source

Krisztian Pinter pin.terminator at gmail.com
Mon Sep 9 05:54:04 PDT 2013


 unotools/source/config/historyoptions.cxx |   28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

New commits:
commit 93eefe54f5d6b6092371bad1e86444489d29eee2
Author: Krisztian Pinter <pin.terminator at gmail.com>
Date:   Fri Sep 6 14:45:13 2013 +0200

    Make SvtHistoryOptions not return files if they can't be opened
    
    Change-Id: I68cb3363a33b2d6ceb2330486e26d5cfa913c5e7
    Reviewed-on: https://gerrit.libreoffice.org/5841
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/unotools/source/config/historyoptions.cxx b/unotools/source/config/historyoptions.cxx
index e552d81..bc935ad 100644
--- a/unotools/source/config/historyoptions.cxx
+++ b/unotools/source/config/historyoptions.cxx
@@ -18,6 +18,7 @@
  */
 
 
+#include <osl/file.hxx>
 #include <unotools/historyoptions.hxx>
 #include <unotools/configmgr.hxx>
 #include <unotools/configitem.hxx>
@@ -317,6 +318,18 @@ void SvtHistoryOptions_Impl::Clear( EHistoryType eHistory )
     }
 }
 
+static bool lcl_fileOpenable(const OUString &rURL)
+{
+    osl::File aRecentFile(rURL);
+    if(!aRecentFile.open(osl_File_OpenFlag_Read))
+    {
+        aRecentFile.close();
+        return true;
+    }
+    else
+        return false;
+}
+
 //*****************************************************************************************************************
 //  public method
 //  get a sequence list from the items
@@ -382,12 +395,15 @@ Sequence< Sequence< PropertyValue > > SvtHistoryOptions_Impl::GetList( EHistoryT
                     xOrderList->getByName(OUString::number(nItem)) >>= xSet;
                     xSet->getPropertyValue(OUString(s_sHistoryItemRef)) >>= sUrl;
 
-                    xItemList->getByName(sUrl) >>= xSet;
-                    seqProperties[s_nOffsetURL  ].Value <<= sUrl;
-                    xSet->getPropertyValue(OUString(s_sFilter))   >>= seqProperties[s_nOffsetFilter   ].Value;
-                    xSet->getPropertyValue(OUString(s_sTitle))    >>= seqProperties[s_nOffsetTitle    ].Value;
-                    xSet->getPropertyValue(OUString(s_sPassword)) >>= seqProperties[s_nOffsetPassword ].Value;
-                    aRet[nCount++] = seqProperties;
+                    if( !sUrl.startsWith("file://") || lcl_fileOpenable( sUrl ) )
+                    {
+                        xItemList->getByName(sUrl) >>= xSet;
+                        seqProperties[s_nOffsetURL  ].Value <<= sUrl;
+                        xSet->getPropertyValue(OUString(s_sFilter))   >>= seqProperties[s_nOffsetFilter   ].Value;
+                        xSet->getPropertyValue(OUString(s_sTitle))    >>= seqProperties[s_nOffsetTitle    ].Value;
+                        xSet->getPropertyValue(OUString(s_sPassword)) >>= seqProperties[s_nOffsetPassword ].Value;
+                        aRet[nCount++] = seqProperties;
+                    }
                 }
                 catch(const css::uno::Exception& ex)
                 {


More information about the Libreoffice-commits mailing list