From 05f616efaac1f5b9516afd85f44f9e8ee1bfd8f8 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Tue, 1 Jul 2008 09:28:08 +0000 Subject: [PATCH] Add stub for parsing globs file git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/unix/mimetype.h | 3 +++ src/unix/mimetype.cpp | 26 +++++++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/include/wx/unix/mimetype.h b/include/wx/unix/mimetype.h index fca5e9212e..76a27cc59b 100644 --- a/include/wx/unix/mimetype.h +++ b/include/wx/unix/mimetype.h @@ -84,6 +84,9 @@ protected: // Scan XDG directory void LoadXDGAppsFilesFromDir(const wxString& dirname); + // Load XDG globs files + void LoadXDGGlobs(const wxString& filename); + // functions used to do associations virtual int AddToMimeData(const wxString& strType, const wxString& strIcon, diff --git a/src/unix/mimetype.cpp b/src/unix/mimetype.cpp index 5c7ba44abb..dd76cf2a6a 100644 --- a/src/unix/mimetype.cpp +++ b/src/unix/mimetype.cpp @@ -16,7 +16,7 @@ #pragma hdrstop #endif -#if wxUSE_MIMETYPE && wxUSE_FILE && wxUSE_TEXTFILE +#if wxUSE_MIMETYPE && wxUSE_FILE #include "wx/unix/mimetype.h" @@ -32,7 +32,6 @@ #include "wx/confbase.h" #include "wx/ffile.h" -#include "wx/textfile.h" #include "wx/dir.h" #include "wx/tokenzr.h" #include "wx/iconloc.h" @@ -73,7 +72,7 @@ public: { wxString t = tok.GetNextToken(); t.MakeLower(); - if ((!!t) && (t.Find( "comment" ) != 0) && (t.Find( "generic" ) != 0)) + if ((!!t) && (t.Find( "comment" ) != 0) && (t.Find( "#" ) != 0) && (t.Find( "generic" ) != 0)) m_text.Add( t ); } return true; @@ -248,6 +247,17 @@ void wxMimeTypesManagerImpl::LoadXDGAppsFilesFromDir(const wxString& dirname) } +void wxMimeTypesManagerImpl::LoadXDGGlobs(const wxString& filename) +{ + wxLogTrace(TRACE_MIME, wxT("loading XDG globs file from %s"), filename.c_str()); + + wxMimeTextFile file(filename); + if ( !file.Open() ) + return; + + // Parse it here +} + // ---------------------------------------------------------------------------- // wxFileTypeImpl (Unix) // ---------------------------------------------------------------------------- @@ -494,6 +504,8 @@ void wxMimeTypesManagerImpl::InitIfNeeded() } } + + // read system and user mailcaps and other files void wxMimeTypesManagerImpl::Initialize(int mailcapStyles, const wxString& sExtraDir) @@ -503,7 +515,10 @@ void wxMimeTypesManagerImpl::Initialize(int mailcapStyles, return; #endif - // Load desktop files for Gnome, and then override them with the Gnome defaults. + // Read MIME type - extension associations + LoadXDGGlobs( "/usr/share/mime/globs" ); + + // Load desktop files for XDG, and then override them with the defaults. // We will override them one desktop file at a time, rather // than one mime type at a time, but it should be a reasonable // heuristic. @@ -815,6 +830,7 @@ wxFileType * wxMimeTypesManagerImpl::GetFileTypeFromMimeType(const wxString& mim // first look for an exact match int index = m_aTypes.Index(mimetype); + if ( index != wxNOT_FOUND ) { fileType = new wxFileType; @@ -973,4 +989,4 @@ bool wxMimeTypesManagerImpl::Unassociate(wxFileType *ft) } #endif - // wxUSE_MIMETYPE && wxUSE_FILE && wxUSE_TEXTFILE + // wxUSE_MIMETYPE && wxUSE_FILE -- 2.45.2