Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/lib/src/SugarDownload.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/src/SugarDownload.cpp')
-rw-r--r--lib/src/SugarDownload.cpp52
1 files changed, 36 insertions, 16 deletions
diff --git a/lib/src/SugarDownload.cpp b/lib/src/SugarDownload.cpp
index 9c68b8f..62ca5ac 100644
--- a/lib/src/SugarDownload.cpp
+++ b/lib/src/SugarDownload.cpp
@@ -35,27 +35,39 @@ GSugarDownload::Init (nsIURI *aSource,
NS_IMETHODIMP
GSugarDownload::OnStateChange (nsIWebProgress *aWebProgress, nsIRequest *aRequest,
PRUint32 aStateFlags, nsresult aStatus)
-{
- nsCString url;
- nsCString mimeType;
- nsCString targetURI;
-
- if ((((aStateFlags & STATE_IS_REQUEST) &&
+{
+ SugarBrowserChandler *browser_chandler = sugar_get_browser_chandler();
+
+ if (((aStateFlags & STATE_IS_REQUEST) &&
(aStateFlags & STATE_IS_NETWORK) &&
- (aStateFlags & STATE_STOP)) ||
- aStateFlags == STATE_STOP) &&
- NS_SUCCEEDED (aStatus)) {
+ (aStateFlags & STATE_START)) ||
+ aStateFlags == STATE_START) {
+
+ nsCString url;
+ nsCString mimeType;
mMIMEInfo->GetMIMEType(mimeType);
mSource->GetSpec(url);
- SugarBrowserChandler *browser_chandler = sugar_get_browser_chandler();
- sugar_browser_chandler_handle_content(browser_chandler,
- url.get(),
- mimeType.get(),
- mTargetFileName.get());
+ sugar_browser_chandler_download_started(browser_chandler,
+ url.get(),
+ mimeType.get(),
+ mTargetFileName.get());
+
+ } else if (((aStateFlags & STATE_IS_REQUEST) &&
+ (aStateFlags & STATE_IS_NETWORK) &&
+ (aStateFlags & STATE_STOP)) ||
+ aStateFlags == STATE_STOP) {
+
+ if (NS_SUCCEEDED (aStatus)) {
+ sugar_browser_chandler_download_completed(browser_chandler,
+ mTargetFileName.get());
+ } else {
+ sugar_browser_chandler_download_cancelled(browser_chandler,
+ mTargetFileName.get());
+ }
}
-
+
return NS_OK;
}
@@ -79,7 +91,15 @@ GSugarDownload::OnProgressChange64 (nsIWebProgress *aWebProgress,
PRInt64 aMaxSelfProgress,
PRInt64 aCurTotalProgress,
PRInt64 aMaxTotalProgress)
-{
+{
+ SugarBrowserChandler *browser_chandler = sugar_get_browser_chandler();
+ PRInt32 percentComplete =
+ (PRInt32)(((float)aCurSelfProgress / (float)aMaxSelfProgress) * 100.0);
+
+ sugar_browser_chandler_update_progress(browser_chandler,
+ mTargetFileName.get(),
+ percentComplete);
+
return NS_OK;
}