зеркало из https://github.com/mozilla/pjs.git
Bug 391980 - "New Download manager automatically associates all types of files including folders with one file type" [p=ventnor.bugzilla@yahoo.com.au (Michael Ventnor) r=bsmedberg a=blocking-firefox3+]
This commit is contained in:
Родитель
6b844c146d
Коммит
4da1075e5a
|
@ -50,6 +50,7 @@ extern "C" {
|
||||||
#include <libgnomevfs/gnome-vfs-mime.h>
|
#include <libgnomevfs/gnome-vfs-mime.h>
|
||||||
#include <libgnomevfs/gnome-vfs-mime-handlers.h>
|
#include <libgnomevfs/gnome-vfs-mime-handlers.h>
|
||||||
#include <libgnomevfs/gnome-vfs-mime-info.h>
|
#include <libgnomevfs/gnome-vfs-mime-info.h>
|
||||||
|
#include <libgnomevfs/gnome-vfs-utils.h>
|
||||||
#include <libgnome/gnome-url.h>
|
#include <libgnome/gnome-url.h>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,6 +246,20 @@ nsGnomeVFSService::ShowURI(nsIURI *aURI)
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
nsGnomeVFSService::ShowURIForInput(const nsACString &aUri)
|
||||||
|
{
|
||||||
|
char* spec = gnome_vfs_make_uri_from_input(PromiseFlatCString(aUri).get());
|
||||||
|
nsresult rv = NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
if (gnome_url_show(spec, NULL))
|
||||||
|
rv = NS_OK;
|
||||||
|
|
||||||
|
if (spec)
|
||||||
|
g_free(spec);
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsGnomeVFSService::SetAppStringKey(const nsACString &aID,
|
nsGnomeVFSService::SetAppStringKey(const nsACString &aID,
|
||||||
PRInt32 aKey,
|
PRInt32 aKey,
|
||||||
|
|
|
@ -83,6 +83,10 @@
|
||||||
#include "nsITimelineService.h"
|
#include "nsITimelineService.h"
|
||||||
#include "nsIProgrammingLanguage.h"
|
#include "nsIProgrammingLanguage.h"
|
||||||
|
|
||||||
|
#ifdef MOZ_WIDGET_GTK2
|
||||||
|
#include "nsIGnomeVFSService.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "nsNativeCharsetUtils.h"
|
#include "nsNativeCharsetUtils.h"
|
||||||
#include "nsTraceRefcntImpl.h"
|
#include "nsTraceRefcntImpl.h"
|
||||||
|
|
||||||
|
@ -1663,13 +1667,44 @@ nsLocalFile::Launch()
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsLocalFile::Reveal()
|
nsLocalFile::Reveal()
|
||||||
{
|
{
|
||||||
|
#ifdef MOZ_WIDGET_GTK2
|
||||||
|
nsCOMPtr<nsIGnomeVFSService> vfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
|
||||||
|
if (!vfs)
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
PRBool isDirectory;
|
||||||
|
if (NS_FAILED(IsDirectory(&isDirectory)))
|
||||||
|
return NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
if (isDirectory) {
|
||||||
|
return vfs->ShowURIForInput(mPath);
|
||||||
|
} else {
|
||||||
|
nsCOMPtr<nsIFile> parentDir;
|
||||||
|
nsCAutoString dirPath;
|
||||||
|
if (NS_FAILED(GetParent(getter_AddRefs(parentDir))))
|
||||||
|
return NS_ERROR_FAILURE;
|
||||||
|
if (NS_FAILED(parentDir->GetNativePath(dirPath)))
|
||||||
|
return NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
return vfs->ShowURIForInput(dirPath);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
return NS_ERROR_FAILURE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsLocalFile::Launch()
|
nsLocalFile::Launch()
|
||||||
{
|
{
|
||||||
|
#ifdef MOZ_WIDGET_GTK2
|
||||||
|
nsCOMPtr<nsIGnomeVFSService> vfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
|
||||||
|
if (!vfs)
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
return vfs->ShowURIForInput(mPath);
|
||||||
|
#else
|
||||||
|
return NS_ERROR_FAILURE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ interface nsIURI;
|
||||||
/* nsIGnomeVFSMimeApp holds information about an application that is looked up
|
/* nsIGnomeVFSMimeApp holds information about an application that is looked up
|
||||||
with nsIGnomeVFSService::GetAppForMimeType. */
|
with nsIGnomeVFSService::GetAppForMimeType. */
|
||||||
|
|
||||||
[scriptable, uuid(99ae024f-e869-4973-958b-54768a84295a)]
|
[scriptable, uuid(57b1ef41-35cd-48e9-a248-2030c8365067)]
|
||||||
interface nsIGnomeVFSMimeApp : nsISupports
|
interface nsIGnomeVFSMimeApp : nsISupports
|
||||||
{
|
{
|
||||||
const long EXPECTS_URIS = 0;
|
const long EXPECTS_URIS = 0;
|
||||||
|
@ -143,6 +143,7 @@ interface nsIGnomeVFSService : nsISupports
|
||||||
|
|
||||||
/* Open the given URI in the default application */
|
/* Open the given URI in the default application */
|
||||||
void showURI(in nsIURI uri);
|
void showURI(in nsIURI uri);
|
||||||
|
[noscript] void showURIForInput(in ACString uri);
|
||||||
};
|
};
|
||||||
|
|
||||||
%{C++
|
%{C++
|
||||||
|
|
Загрузка…
Ссылка в новой задаче