]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/helpfrm.cpp
wxFileName::Normalize(wxPATH_NORM_ENV_VARS) now works
[wxWidgets.git] / src / html / helpfrm.cpp
index 5c1dffd66e2375f703e846df82f8e01d6d7364e7..3d743fa0f74ea19c81a28c255c2246122446d4e9 100644 (file)
@@ -501,6 +501,9 @@ wxHtmlHelpFrame::~wxHtmlHelpFrame()
         WX_CLEAR_HASH_TABLE(*m_PagesHash);
         delete m_PagesHash;
     }
         WX_CLEAR_HASH_TABLE(*m_PagesHash);
         delete m_PagesHash;
     }
+#if wxUSE_PRINTING_ARCHITECTURE
+    if (m_Printer) delete m_Printer;
+#endif
 }
 
 
 }
 
 
@@ -740,21 +743,29 @@ bool wxHtmlHelpFrame::KeywordSearch(const wxString& keyword,
     if (foundcnt)
     {
         wxHtmlContentsItem *it;
     if (foundcnt)
     {
         wxHtmlContentsItem *it;
-        if (mode == wxHELP_SEARCH_ALL)
-        {
-            it = (wxHtmlContentsItem*) m_SearchList->GetClientData(0);
-        }
-        else if (mode == wxHELP_SEARCH_INDEX)
+        switch ( mode )
         {
         {
-            it = (wxHtmlContentsItem*) m_IndexList->GetClientData(0);
+            default:
+                wxFAIL_MSG( _T("unknown help search mode") );
+                // fall back
+
+            case wxHELP_SEARCH_ALL:
+                it = (wxHtmlContentsItem*) m_SearchList->GetClientData(0);
+                break;
+
+            case wxHELP_SEARCH_INDEX:
+                it = (wxHtmlContentsItem*) m_IndexList->GetClientData(0);
+                break;
         }
         }
+
         if (it)
         {
             m_HtmlWin->LoadPage(it->GetFullPath());
             NotifyPageChanged();
         }
     }
         if (it)
         {
             m_HtmlWin->LoadPage(it->GetFullPath());
             NotifyPageChanged();
         }
     }
-    return (foundcnt > 0);
+
+    return foundcnt > 0;
 }
 
 void wxHtmlHelpFrame::CreateContents()
 }
 
 void wxHtmlHelpFrame::CreateContents()
@@ -1378,22 +1389,29 @@ void wxHtmlHelpFrame::OnToolbar(wxCommandEvent& event)
 
         case wxID_HTML_OPENFILE :
             {
 
         case wxID_HTML_OPENFILE :
             {
+                wxString filemask = wxString(
+                    _("HTML files (*.html;*.htm)|*.html;*.htm|")) +
+                    _("Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|") +
+                    _("HTML Help Project (*.hhp)|*.hhp|") +
+#if wxUSE_LIBMSPACK
+                    _("Compressed HTML Help file (*.chm)|*.chm|") +
+#endif
+                    _("All files (*.*)|*");
                 wxString s = wxFileSelector(_("Open HTML document"),
                                             wxEmptyString,
                                             wxEmptyString,
                                             wxEmptyString,
                 wxString s = wxFileSelector(_("Open HTML document"),
                                             wxEmptyString,
                                             wxEmptyString,
                                             wxEmptyString,
-                                            _(
-"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|\
-Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|\
-HTML Help Project (*.hhp)|*.hhp|\
-All files (*.*)|*"
-                                            ),
+                                            filemask,
                                             wxOPEN | wxFILE_MUST_EXIST,
                                             this);
                 if (!s.IsEmpty())
                 {
                     wxString ext = s.Right(4).Lower();
                                             wxOPEN | wxFILE_MUST_EXIST,
                                             this);
                 if (!s.IsEmpty())
                 {
                     wxString ext = s.Right(4).Lower();
-                    if (ext == _T(".zip") || ext == _T(".htb") || ext == _T(".hhp"))
+                    if (ext == _T(".zip") || ext == _T(".htb") ||
+#if wxUSE_LIBMSPACK
+                        ext == _T(".chm") ||
+#endif
+                        ext == _T(".hhp"))
                     {
                         wxBusyCursor bcur;
                         m_Data->AddBook(s);
                     {
                         wxBusyCursor bcur;
                         m_Data->AddBook(s);