Implement save_uri. Add boolean return arguments.
This commit is contained in:
parent
070c77c67f
commit
c9bdd4418c
@ -101,7 +101,7 @@
|
|||||||
(define-method save_uri
|
(define-method save_uri
|
||||||
(of-object "SugarBrowser")
|
(of-object "SugarBrowser")
|
||||||
(c-name "sugar_browser_save_uri")
|
(c-name "sugar_browser_save_uri")
|
||||||
(return-type "none")
|
(return-type "gboolean")
|
||||||
(parameters
|
(parameters
|
||||||
'("const-char*" "uri")
|
'("const-char*" "uri")
|
||||||
'("const-char*" "filename")
|
'("const-char*" "filename")
|
||||||
@ -111,7 +111,7 @@
|
|||||||
(define-method save_document
|
(define-method save_document
|
||||||
(of-object "SugarBrowser")
|
(of-object "SugarBrowser")
|
||||||
(c-name "sugar_browser_save_document")
|
(c-name "sugar_browser_save_document")
|
||||||
(return-type "none")
|
(return-type "gboolean")
|
||||||
(parameters
|
(parameters
|
||||||
'("const-char*" "filename")
|
'("const-char*" "filename")
|
||||||
)
|
)
|
||||||
|
@ -11,6 +11,7 @@ libsugarprivate_la_CPPFLAGS = \
|
|||||||
-I$(MOZILLA_INCLUDE_DIR)/pref \
|
-I$(MOZILLA_INCLUDE_DIR)/pref \
|
||||||
-I$(MOZILLA_INCLUDE_DIR)/uriloader \
|
-I$(MOZILLA_INCLUDE_DIR)/uriloader \
|
||||||
-I$(MOZILLA_INCLUDE_DIR)/webbrwsr \
|
-I$(MOZILLA_INCLUDE_DIR)/webbrwsr \
|
||||||
|
-I$(MOZILLA_INCLUDE_DIR)/webbrowserpersist \
|
||||||
-DPLUGIN_DIR=\"$(libdir)/mozilla/plugins\" \
|
-DPLUGIN_DIR=\"$(libdir)/mozilla/plugins\" \
|
||||||
-DSHARE_DIR=\"$(pkgdatadir)\"
|
-DSHARE_DIR=\"$(pkgdatadir)\"
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#include <nsILocalFile.h>
|
#include <nsILocalFile.h>
|
||||||
#include <nsIWebBrowser.h>
|
#include <nsIWebBrowser.h>
|
||||||
#include <nsIWebBrowserFocus.h>
|
#include <nsIWebBrowserFocus.h>
|
||||||
|
#include <nsIWebBrowserPersist.h>
|
||||||
#include <nsIDOMWindow.h>
|
#include <nsIDOMWindow.h>
|
||||||
#include <nsIDOMMouseEvent.h>
|
#include <nsIDOMMouseEvent.h>
|
||||||
#include <nsIGenericFactory.h>
|
#include <nsIGenericFactory.h>
|
||||||
@ -40,6 +41,8 @@
|
|||||||
#include <nsIDOMNode.h>
|
#include <nsIDOMNode.h>
|
||||||
#include <nsIDOMEventTarget.h>
|
#include <nsIDOMEventTarget.h>
|
||||||
#include <nsIDOMHTMLImageElement.h>
|
#include <nsIDOMHTMLImageElement.h>
|
||||||
|
#include <nsIIOService.h>
|
||||||
|
#include <nsComponentManagerUtils.h>
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PROP_0,
|
PROP_0,
|
||||||
@ -484,14 +487,53 @@ sugar_browser_grab_focus(SugarBrowser *browser)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
nsresult
|
||||||
|
NewURI(const char *uri, nsIURI **result)
|
||||||
|
{
|
||||||
|
nsresult rv;
|
||||||
|
|
||||||
|
nsCOMPtr<nsIServiceManager> mgr;
|
||||||
|
NS_GetServiceManager (getter_AddRefs (mgr));
|
||||||
|
NS_ENSURE_TRUE(mgr, FALSE);
|
||||||
|
|
||||||
|
nsCOMPtr<nsIIOService> ioService;
|
||||||
|
rv = mgr->GetServiceByContractID ("@mozilla.org/network/io-service;1",
|
||||||
|
NS_GET_IID (nsIIOService),
|
||||||
|
getter_AddRefs(ioService));
|
||||||
|
NS_ENSURE_SUCCESS(rv, FALSE);
|
||||||
|
|
||||||
|
nsCString cSpec(uri);
|
||||||
|
return ioService->NewURI (cSpec, nsnull, nsnull, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
sugar_browser_save_uri(SugarBrowser *browser,
|
sugar_browser_save_uri(SugarBrowser *browser,
|
||||||
const char *uri,
|
const char *uri,
|
||||||
const char *filename)
|
const char *filename)
|
||||||
{
|
{
|
||||||
|
nsresult rv;
|
||||||
|
|
||||||
|
nsCOMPtr<nsIURI> sourceURI;
|
||||||
|
rv = NewURI(uri, getter_AddRefs(sourceURI));
|
||||||
|
NS_ENSURE_SUCCESS(rv, FALSE);
|
||||||
|
|
||||||
|
nsCOMPtr<nsILocalFile> destFile = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID);
|
||||||
|
NS_ENSURE_TRUE(destFile, FALSE);
|
||||||
|
|
||||||
|
destFile->InitWithNativePath(nsCString(filename));
|
||||||
|
|
||||||
|
nsCOMPtr<nsIWebBrowser> webBrowser;
|
||||||
|
gtk_moz_embed_get_nsIWebBrowser(GTK_MOZ_EMBED(browser),
|
||||||
|
getter_AddRefs(webBrowser));
|
||||||
|
NS_ENSURE_TRUE(webBrowser, FALSE);
|
||||||
|
|
||||||
|
nsCOMPtr<nsIWebBrowserPersist> webPersist = do_QueryInterface (webBrowser);
|
||||||
|
NS_ENSURE_TRUE(webPersist, FALSE);
|
||||||
|
|
||||||
|
rv = webPersist->SaveURI(sourceURI, nsnull, nsnull, nsnull, nsnull, destFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
gboolean
|
||||||
sugar_browser_save_document(SugarBrowser *browser,
|
sugar_browser_save_document(SugarBrowser *browser,
|
||||||
const char *filename)
|
const char *filename)
|
||||||
{
|
{
|
||||||
|
@ -63,10 +63,10 @@ void sugar_browser_scroll_pixels (SugarBrowser *browser,
|
|||||||
int dx,
|
int dx,
|
||||||
int dy);
|
int dy);
|
||||||
void sugar_browser_grab_focus (SugarBrowser *browser);
|
void sugar_browser_grab_focus (SugarBrowser *browser);
|
||||||
void sugar_browser_save_uri (SugarBrowser *browser,
|
gboolean sugar_browser_save_uri (SugarBrowser *browser,
|
||||||
const char *uri,
|
const char *uri,
|
||||||
const char *filename);
|
const char *filename);
|
||||||
void sugar_browser_save_document (SugarBrowser *browser,
|
gboolean sugar_browser_save_document (SugarBrowser *browser,
|
||||||
const char *filename);
|
const char *filename);
|
||||||
|
|
||||||
gboolean sugar_browser_startup (const char *profile_path,
|
gboolean sugar_browser_startup (const char *profile_path,
|
||||||
|
Loading…
Reference in New Issue
Block a user