diff -r 000000000000 -r 1450b09d0cfd ginebra2/chrome/bedrockchrome/download.snippet/download.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/chrome/bedrockchrome/download.snippet/download.js Tue May 04 12:39:35 2010 +0300
@@ -0,0 +1,118 @@
+/* js for download dialogs */
+
+function writeDownloadDialog()
+{
+ var image = 'download.snippet/icons/download_dialog_icon.png';
+
+ var html =
+ '
' +
+ '
' +
+ '' +
+ ' ' +
+ ' | ' +
+ '' +
+ 'Replace with localized message text' +
+ ' | ' +
+ '
' +
+ '
';
+
+ document.write(html);
+}
+
+var downloadTimeoutId = null;
+
+var downloadTimeoutSeconds = 3;
+
+function disableDownloadTimeout(caller)
+{
+ if (downloadTimeoutId != null) {
+ clearTimeout(downloadTimeoutId);
+ downloadTimeoutId = null;
+ }
+}
+
+function hideDownloadDialog()
+{
+ window.snippets.DownloadDialogId.hide();
+
+ // Clear timeout so we can use this function to hide
+ // the download dialog in response to an external
+ // mouse event and not just because of a timeout.
+
+ disableDownloadTimeout("hideDownloadDialog");
+}
+
+function showDownloadDialog(messageHTML)
+{
+ // Clear timeout so we can replace an existing dialog
+ // with the newest one without having hideDownloadDialog()
+ // hide the wrong dialog.
+
+ disableDownloadTimeout("showDownloadDialog");
+
+ document.getElementById('DownloadDialogTextId').innerHTML = messageHTML;
+
+ window.snippets.DownloadDialogId.setPosition(10,80);
+ window.snippets.DownloadDialogId.show();
+ window.snippets.DownloadDialogId.repaint();
+
+ downloadTimeoutId = setTimeout(
+ hideDownloadDialog,
+ downloadTimeoutSeconds * 1000);
+}
+
+// This will get called for BOTH explicit download
+// requests and for unsupported content downloads.
+// In the former case the file argument may not be
+// final as the download manager will rename files
+// to avoid overwriting existing files in the download
+// directory.
+//
+function onDownloadCreated(messageHTML)
+{
+ showDownloadDialog(messageHTML);
+}
+
+// This will get called for explicit download requests,
+// i.e. requests generated by selecting "Save Link" or
+// "Save Image" from the long-press menu.
+//
+// This will NOT get called for downloads executed in
+// response to QWebPage unsupportedContent signals,
+// as they get started by the QWebPage implementation
+// before they get passed to the download manager.
+//
+function onDownloadStarted(messageHTML)
+{
+ showDownloadDialog(messageHTML);
+}
+
+function onDownloadSuccess(messageHTML)
+{
+ showDownloadDialog(messageHTML);
+}
+
+function onDownloadFailure(messageHTML)
+{
+ showDownloadDialog(messageHTML);
+}
+
+function connectDownloadSignals()
+{
+ window.downloads.downloadCreated.connect(onDownloadCreated);
+ window.downloads.downloadStarted.connect(onDownloadStarted);
+ window.downloads.downloadSuccess.connect(onDownloadSuccess);
+ window.downloads.downloadFailure.connect(onDownloadFailure);
+
+ window.snippets.DownloadDialogId.externalMouseEvent.connect(
+ function(type, name, description) {
+ if ((name == "QGraphicsSceneMouseReleaseEvent") || (name == "QGraphicsSceneResizeEvent")) {
+ hideDownloadDialog();
+ }
+ }
+ );
+}
+
+if (window.downloads != null) {
+ window.chrome.chromeComplete.connect(connectDownloadSignals);
+}