]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/mimecmn.cpp
moved all wxDialog event handlers to wxDialogBase to avoid code duplication
[wxWidgets.git] / src / common / mimecmn.cpp
index 44f0fbe1087da998ef50aea5f3bbf2250f768ef2..43de8ee906d7e67c88d9edda872b194b426eb35f 100644 (file)
     #include "wx/dynarray.h"
     #include "wx/string.h"
     #include "wx/intl.h"
+    #include "wx/log.h"
 #endif //WX_PRECOMP
 
 #include "wx/module.h"
-#include "wx/log.h"
 #include "wx/file.h"
 #include "wx/iconloc.h"
 #include "wx/confbase.h"
@@ -453,28 +453,27 @@ bool wxFileType::SetDefaultIcon(const wxString& cmd, int index)
 #endif
 }
 
-//----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 // wxMimeTypesManagerFactory
-//----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 
 wxMimeTypesManagerFactory *wxMimeTypesManagerFactory::m_factory = NULL;
 
 /* static */
-void wxMimeTypesManagerFactory::SetFactory( wxMimeTypesManagerFactory *factory )
+void wxMimeTypesManagerFactory::Set(wxMimeTypesManagerFactory *factory)
 {
-    if (wxMimeTypesManagerFactory::m_factory)
-        delete wxMimeTypesManagerFactory::m_factory;
+    delete m_factory;
 
-    wxMimeTypesManagerFactory::m_factory = factory;
+    m_factory = factory;
 }
 
 /* static */
-wxMimeTypesManagerFactory *wxMimeTypesManagerFactory::GetFactory()
+wxMimeTypesManagerFactory *wxMimeTypesManagerFactory::Get()
 {
-    if (!wxMimeTypesManagerFactory::m_factory)
-        wxMimeTypesManagerFactory::m_factory = new wxMimeTypesManagerFactory;
+    if ( !m_factory )
+        m_factory = new wxMimeTypesManagerFactory;
 
-    return wxMimeTypesManagerFactory::m_factory;
+    return m_factory;
 }
 
 wxMimeTypesManagerImpl *wxMimeTypesManagerFactory::CreateMimeTypesManagerImpl()
@@ -489,7 +488,7 @@ wxMimeTypesManagerImpl *wxMimeTypesManagerFactory::CreateMimeTypesManagerImpl()
 void wxMimeTypesManager::EnsureImpl()
 {
     if ( !m_impl )
-        m_impl = wxMimeTypesManagerFactory::GetFactory()->CreateMimeTypesManagerImpl();
+        m_impl = wxMimeTypesManagerFactory::Get()->CreateMimeTypesManagerImpl();
 }
 
 bool wxMimeTypesManager::IsOfType(const wxString& mimeType,
@@ -528,6 +527,8 @@ wxMimeTypesManager::~wxMimeTypesManager()
 
 bool wxMimeTypesManager::Unassociate(wxFileType *ft)
 {
+    EnsureImpl();
+
 #if defined(__UNIX__) && !defined(__CYGWIN__) && !defined(__WINE__)
     return m_impl->Unassociate(ft);
 #else
@@ -673,10 +674,12 @@ class wxMimeTypeCmnModule: public wxModule
 {
 public:
     wxMimeTypeCmnModule() : wxModule() { }
+
     virtual bool OnInit() { return true; }
     virtual void OnExit()
     {
-        // this avoids false memory leak allerts:
+        wxMimeTypesManagerFactory::Set(NULL);
+
         if ( gs_mimeTypesManager.m_impl != NULL )
         {
             delete gs_mimeTypesManager.m_impl;