From: Vadim Zeitlin Date: Mon, 24 Jul 2006 17:37:39 +0000 (+0000) Subject: added HasHandlerForPath() (modified patch 1514524) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/b8b37cedd39bae3a3653003a7f8ae5fecf4df78f added HasHandlerForPath() (modified patch 1514524) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/filesys.tex b/docs/latex/wx/filesys.tex index 15bfcca767..5f28f6f092 100644 --- a/docs/latex/wx/filesys.tex +++ b/docs/latex/wx/filesys.tex @@ -54,6 +54,14 @@ are deleted in wxFileSystem's destructor so that you don't have to care about it. +\membersection{wxFileSystem::HasHandlerForPath}\label{wxfilesystemhashandlerforpath} + +\func{static bool}{HasHandlerForPath}{\param{const wxString \&}{ location}} + +This static function returns \true if there is a registered handler which can open the given +location. + + \membersection{wxFileSystem::ChangePathTo}\label{wxfilesystemchangepathto} \func{void}{ChangePathTo}{\param{const wxString\& }{location}, \param{bool }{is\_dir = false}} diff --git a/include/wx/filesys.h b/include/wx/filesys.h index ff06ee7dbd..354d940275 100644 --- a/include/wx/filesys.h +++ b/include/wx/filesys.h @@ -188,6 +188,9 @@ public: // In fact, this class is only front-end to the FS handlers :-) static void AddHandler(wxFileSystemHandler *handler); + // Returns true if there is a handler which can open the given location. + static bool HasHandlerForPath(const wxString& location); + // remove all items from the m_Handlers list static void CleanUpHandlers(); diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index 61ec083da4..5e99f9787a 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -485,6 +485,18 @@ void wxFileSystem::AddHandler(wxFileSystemHandler *handler) m_Handlers.Append(handler); } +bool wxFileSystem::HasHandlerForPath(const wxString &location) +{ + for ( wxList::compatibility_iterator node = m_Handlers.GetFirst(); + node; node = node->GetNext() ) + { + wxFileSystemHandler *h = (wxFileSystemHandler*) node->GetData(); + if (h->CanOpen(location)) + return true; + } + + return false; +} void wxFileSystem::CleanUpHandlers() {