Announce and Discuss the Latest Theme and Extension Releases.
morphis
Posts: 207Joined: November 10th, 2003, 2:27 pm
Posted June 29th, 2004, 11:15 pm
I found in 0.9, with "Super Drag and Go" installed, I cannot to move selected text around in the text box/frame (e.g. edit frame for this forum). And I did a quick test on 0.8 and found it doesn't effect 0.8. Any other users can confirm this bug?
Anyone coming up ideas why this problem occurs and how to solve it, please post your idea in this thread. Thanks!
NetOne
Posts: 209Joined: March 15th, 2004, 3:50 am
Posted June 29th, 2004, 11:28 pm
Yes...The same problem occurs for Firefox 0.9.1 on my machine.
morphis
Posts: 207Joined: November 10th, 2003, 2:27 pm
Posted June 30th, 2004, 4:05 pm
I fixed this problem in the new release 0.2. Go to its homepage and install the new one and try it out.
NetOne wrote:Yes...The same problem occurs for Firefox 0.9.1 on my machine.
NetOne
Posts: 209Joined: March 15th, 2004, 3:50 am
Posted July 2nd, 2004, 9:59 am
Finally I can visit the forum again!
Great work! Thanks!
NetOne
Posts: 209Joined: March 15th, 2004, 3:50 am
Posted July 3rd, 2004, 1:00 am
Morphis:
Since the abiltiy of saving an image when dragged is very important for me, I implemented a very simple such funtion for me: if Ctrl key is holded when dropping an image, the image is automatically saved to your default download directory.
The coded added to your extension is posted here. I you wish, please use it as an reference. I just hope you can add such function to your extension.
1. The following is added to the onDrag function
- Code: Select all
if (aEvent.ctrlKey && aDragSession.sourceNode.nodeName == 'IMG') { superDrag.saveImage(aDragSession.sourceNode.src); document.getElementById('statusbar-display').label = "The image is being saved."; return; }
2. The following is two functions added to the superDrag object: - Code: Select all
getDownloadsFolder: function() { var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("browser.download."); if (!pref.prefHasUserValue("dir")) { var fileLocator = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties); var dir = fileLocator.get("DeskV", Components.interfaces.nsILocalFile); return dir.path; } else return pref.getCharPref("dir"); }, saveImage: function(src) { var fileName = src.substring(src.lastIndexOf('/')+1, src.length); var fileSaving = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); var path = superDrag.getDownloadsFolder() + "\\"; fileSaving.initWithPath(path); if (!fileSaving.exists()) { alert("The download folder does not exist!"); return; }
fileSaving.initWithPath(path + fileName); var i = 1; while (fileSaving.exists()) { if (fileName.indexOf('.') != -1) { var ext = fileName.substring(fileName.lastIndexOf('.'), fileName.length); var file = fileName.substring(0, fileName.length - ext.length); var newFileName = file + "-" + i + ext; fileSaving.initWithPath(path + newFileName); } else fileSaving.initWithPath(path + fileName + i); i++; } var cacheKey = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString); cacheKey.data = src; var urifix = Components.classes['@mozilla.org/docshell/urifixup;1'].getService(Components.interfaces.nsIURIFixup); var uri = urifix.createFixupURI(src, 0); var hosturi = null;
if (uri.host.length > 0) { hosturi = urifix.createFixupURI(uri.host, 0); }
var persist = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1'].createInstance(Components.interfaces.nsIWebBrowserPersist); persist.persistFlags = Components.interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_FROM_CACHE | Components.interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_CLEANUP_ON_FAILURE; persist.saveURI(uri, cacheKey, hosturi, null, null, fileSaving); },
Last edited by NetOne on July 3rd, 2004, 1:56 am, edited 1 time in total.
Rowne Mastaile

Posts: 1434Joined: December 21st, 2003, 3:05 pmLocation: Housed in a swirling neosma of scintillating thought and turgid ideas.
Posted July 3rd, 2004, 1:20 am
Ooh, that's neat!
For those interested, I have a modified XPinstaller of this here [ link].
I will, of course, remove it if Morphis says so, however.
This is wonderfully functional but there is one caveat.
If you don't use the 'Save all files to this folder' it can lock out mouse access. That's okay because one can still use the tab key but I thought I'd point that out.
NetOne
Posts: 209Joined: March 15th, 2004, 3:50 am
Posted July 3rd, 2004, 1:58 am
I've tried as what you said, but there is no such problem. :)
And I've change the code a little to make it saving the image frome cache and to change the statusbar text to indicate the operation has been submitted. You can modidy your link if you wish. (Please note that the parameter name for saveImage function is changed.) Thanks!
BTW, those code are based on the code in the "Image toolbar" extension. Thanks to the authors of "Image toolbar".
Rowne Mastaile

Posts: 1434Joined: December 21st, 2003, 3:05 pmLocation: Housed in a swirling neosma of scintillating thought and turgid ideas.
Posted July 3rd, 2004, 4:18 am
I find there is but maybe it's just me.
If you hold Ctrl and drag an image without the default set, it'll bring up a dialog but the browser will believe you're still dragging in the background of the dialog and the background (behind the dialog) has the focus. Perhaps I implimented your code incorrectly...
The mouse can still move and it works perfectly fine but clicking Save or Cancel in the dialog has no effect, one has to tab to them.
Rowne Mastaile

Posts: 1434Joined: December 21st, 2003, 3:05 pmLocation: Housed in a swirling neosma of scintillating thought and turgid ideas.
Posted July 3rd, 2004, 10:28 am
Allow me to take back what I said earlier. Your code is perfect.
My problem was DownloadSort, apparently. I discovered this when I was trying to sort out why GMailCompose doesn't work.
With DownloadSort disabled, your extension addition has the desired effect. Very well done. Sorry about the irrelevant bug report and that.
At least now though if anyone else has this problem, they'll know it's DownloadSort.
-Edit-
I'm curious, let's say I wanted to change this to another folder other than my default download folder, what would I change? So it would always download there instead of the default.
NetOne
Posts: 209Joined: March 15th, 2004, 3:50 am
Posted July 3rd, 2004, 3:16 pm
Just change getDownloadsFolder() function to return the directory to what you want, such as "E:\\pictures" or some else. :)
morphis
Posts: 207Joined: November 10th, 2003, 2:27 pm
Posted July 3rd, 2004, 9:04 pm
-Netone
I intergrate part of code into release 0.2.1 to make the "drag image to download" feature avaible. I didn't use your function "saveImage",
instead, I use the system function "saveUrl" which invokes the download manager to handle the download. See below "simplified" code section:
- Code: Select all
if (aEvent.ctrlKey && aDragSession.sourceNode.nodeName == 'IMG') { // superDrag.saveImage(aDragSession.sourceNode.src); ==> saveUrl(DragSession.sourceNode.src, ...); document.getElementById('statusbar-display').label = "The image is being saved."; return; }
Thanks for your, including Roan Foofitush's , help.
NetOne
Posts: 209Joined: March 15th, 2004, 3:50 am
Posted July 3rd, 2004, 11:43 pm
I'm very glad to hear about this. It's my hornor to be helpful. :)
In the code I initially posted here the system function saveUrl is used. But I changed it to the saveImage function later because I'm not sure if saveUrl can save the image frome cache. I can't find any document about the saveUrl function.
morphis wrote:-Netone I intergrate part of code into release 0.2.1 to make the "drag image to download" feature avaible. I didn't use your function "saveImage", instead, I use the system function "saveUrl" which invokes the download manager to handle the download. See below "simplified" code section: - Code: Select all
if (aEvent.ctrlKey && aDragSession.sourceNode.nodeName == 'IMG') { // superDrag.saveImage(aDragSession.sourceNode.src); ==> saveUrl(DragSession.sourceNode.src, ...); document.getElementById('statusbar-display').label = "The image is being saved."; return; }
Thanks for your, including Roan Foofitush's , help.
Last edited by NetOne on July 4th, 2004, 12:00 am, edited 1 time in total.
NetOne
Posts: 209Joined: March 15th, 2004, 3:50 am
Posted July 3rd, 2004, 11:53 pm
BTW, could you add an option for saving the image to a default folder directly?
soccer_dude182

Posts: 720Joined: July 11th, 2003, 10:50 pmLocation: Waco, TX
Posted July 4th, 2004, 8:19 am
NetOne wrote:BTW, could you add an option for saving the image to a default folder directly?
I would also like this.
Luftpost
Posts: 460Joined: October 11th, 2003, 7:54 am
Posted July 4th, 2004, 10:05 am
Just tried 0.2.1 it works fine, except when I click on options i get a xml parsing error.
Help!
Return to Extension/Theme Releases
Who is online
Users browsing this forum: No registered users and 2 guests
|