Closed Bug 9363 Opened 25 years ago Closed 25 years ago

[feature] need shortcut creation functionality in nsFileSpec()

Categories

(SeaMonkey :: UI Design, defect, P3)

All
Mac System 8.6
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: ssu0262, Assigned: samir_bugzilla)

References

Details

The creation of Shortcuts (on Windows), Aliases (on Mac), and Links (on Unix)
need to be supported by nsFileSpec().  There should be a common function name
for the three platforms to be supported, like CreateSymbolicLink().

There should be no UI manipulation here.  Just file creation.

Here is a preliminary shortcut requirement set of parameters for the windows
platform:

     Description:
        * name of the shortcut file (full path required)
     Working Dir:
        * working directory for the application to run under
     Icon Path: (user optional)
        * full path to a .ico, .exe, or .dll file
     Icon: (user optional - default should be 0)
        * index of the icon to use in the .ico, .exe, or .dll
          file
     Flags:
        * specifies the appearance of how the application is to
          be run, such as running minimized, maximized, in
          seperate memory, and so on.
     Command Line:
        * command line to execute for the shortcut.
     Command Line Parameters:
        * command line parameters for the application.
Assignee: warren → ssu
I don't know how to implement this stuff, but it sounds like roughly the right
thing (provided the api is truly xp and there aren't magical parameters you use
on some platforms and not others). Reassigning to Sean.
We were pretty specifically asking for a NON-XP solution because the three
platform types support different functionality with different required
parameters.

It sucks, but we MUST be able to create at least Win shortcuts and Mac aliases
-- and they ARE different. We think some sort of nsFileSpec is appropriate
rather than hacking it into XPInstall because we think other people are going
to want this.

nsFileSpec is not a paragon of XP-ness, there are almost a dozen special #ifdef
XP_MAC methods already.
Status: NEW → ASSIGNED
The #ifdef that you see in nsFileSpec.h gives mac developer access to this
information if they ever need to call a system service.  (There is no way that
you can get a true FSSpec from a filepath without being vunerable to known
bugs.)  For the platform specific nature of file systems and the robustness of
the service which nsFileSpec offers, I would have to disagree: nsFileSpec is a
paragon of XP-ness.

I suggest that we abandoned putting this in the nsFileSpec which does
contradict what I was proposing a few weeks ago. I suggest this for the
following reasons:

1.  There will not be many users of this functionality.  Take a look at
the nova code base that I believe that this type of functionality is
only used in three for four places.  I can only remember profiles using
this functionality explicitly to create an alias.  There were other
places where the Mac had to do some special stuff, but that was because
it was a mac.

2.  The interface to the APIs is very very platform dependent.  On the
mac, only one parameter is needed.  Unix can be one parameter as well if
we discount the possible flags and permission settings.  What do the
other 5 parameters mean to these other platform.  Passing nsnull to them
may cause people to do #ifdef in there code and avoidance of this was
the one of the first design goals.

3.  Which lead to:  how would I use it?  I understand that exposing this
functionality to xpinstall script writers is important, but I do not
know if nsFileSpec is the right place for it.  Show me how we would this
function in nsFileSpec in seamonkey.
Blocks: 11020
Summary: need shortcut creation functionality in nsFileSpec() → [feature] need shortcut creation functionality in nsFileSpec()
Target Milestone: M15
this can be put in after beta 1.
OS: Windows NT → Mac System 8.6
The Windows shortcut routine is already in.  I'm working with Samir with the Mac
alias now.

Changing the OS to Mac.
Assignee: ssu → sgehani
Status: ASSIGNED → NEW
Samir says this is fixed by him.  Reassigning to him for closure.
QA Contact: beppe → cpratt
Status: NEW → ASSIGNED
This is now essentially bug 14345. Will mark fixed when tree reopens for M12
development and we check this in.
Target Milestone: M15 → M11
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Fix checked in.
Status: RESOLVED → VERIFIED
QA Contact: cpratt → claudius
Mac OS bug, reassigning QA to claudius.
Product: Core → Mozilla Application Suite
You need to log in before you can comment on or make changes to this bug.