Archive: Items that need to be put in the NSIS installer


Items that need to be put in the NSIS installer
This is a place where you post what you would like to see in the NSIS installer.

Rules:
1) Don't flame anyone for having stupid ideas
2) Just post ideas, replies are accepted, just keep them short and sweet.

--------------------------------------------

Here is my offerings:

Have client-side registration
The option to replace the Name "Nullsoft Install System vX.XX" with whatever we want.

Have Fun
-DJ


Basically I'd like the aforementioned ideas:

1) An option to automatically check for a previous installation on a new installation and that will run the uninstaller before the new installation.

2) The ability to increment or decrement variables. I understand this is a bit more involved since the variables are currently strings and not a type of int.

3) Ability to autoclose the uninstaller program so that you don't have to click on close to exit. This is sort of tied into the first one since you end up with the uninstallers sitting on top of the current installer without closing in the current situation.


One other thing I forgot

4) Something like #define for easy replacement of templated types of scripts. I have a suite of installers which all have a similar style and have resorted to using strcpy $4 "name" and then using $4 to create the template, but it doesn't work for everything. It won't work in File statements, or outside of function/section blocks. So a #define type of replacement would be very nice and useful.

5) The ability to resize the installer/uninstaller window. It's currently a fixed size, so if you have really long filenames/directory names, you can't see the full path since you can't resize the windows.

6) Carryover of variables between functions. Doubt this will happen, but it would be nice to be able to set a var in the main section and then check it in one of the call back functions such as .OnInstSuccess. You can do it by writing registry keys and checking them between functions, but having some global vars would be useful in some situations.


User interaction other than INSTDIR
It would be very nice to be able to get user input. The best solution would be to have as many questions as I want on each panel and then be able to set the size (Pomflain's idea) of the install app so that the questions look right. Something along the lines of the Sections directives would be cool.



QuestionPane [title for pane]
Question $(0-9) "[string for question in quotes]"
QuestionChoice $(0-9) "[string for question in quotes]" (RADIO, DROPDOWN)
Selection "[title for selection]"
Selection "[title for selection]"
Selection "[title for selection]"
QuestionChoiceEnd
QuestionPaneEnd

example:
QuestionPane "User Address"
Question $0 "Address"
Question $1 "City"
QuestionChoice $2 "State" DROPDOWN
Selection "Alabama"
Selection "Arkansas"
Selection "Arizona"
QuestionChoiceEnd
QuestionPaneEnd

QuestionPane "User Info"
Question $3 "Username"
Question $4 "Server Name"
QuestionPaneEnd

ExecWait '"emailUserInfo.exe $0 $1 $2 $3 $4"'
WriteINIStr "$INSTDIR\config.ini" "userinfo" "username" "$3"
WriteINIStr "$INSTDIR\config.ini" "userinfo" "servername" "$4"


This example would have two panes that would show up, one with three questions and the next with two. The placement could be standard, with the questions on top of the textbox or selection. I believe textbox and selection should be the minimum since free form text and specific answers to questions are usually needed.

Something like what I wanted, except for the multiple pop-ups.
-DJ


I'd like the ability to add small graphics on these 'panes' or Dialogs as we programmers call them.

-- DoctorMO --


I want the programmer to have the option for the main NSIS window to close when it is complete. It doesn't look good if the user needs to click on "close" in order to receive a notice that installation is complete. (if this feature is already implemented, please, HOW DO I USE IT?)

Also, I want the ability to use .png files for a splash screen, taking full advantage of the alpha channel. One could have a round, anti-aliased splash screen that blends perfectly with whatever is behind it.

Here are some minor suggestions:
1. Ability to change the NullSoft Install System text.
2. Why does it automatically append "Setup" to the end of the titlebar? I don't like this!

3. Ability to change the titlebar of a popup dialog.
4. Ability to specify the installer/uninstaller icons.


And finally, I have a few questions:
1. How do I allow the user to choose what to install? (Full, Compact, Recommended, Custom)

2. How do I auto-close the main window when installation is finished? And is there a way I can prompt the user to reboot the system?


Some possible solutions
Pomflain:

1) An option to automatically check for a previous installation on a new installation and that will run the uninstaller before the new installation.
Already possible. In the .onInit check to see if a key in the registry exists, if it does then you know that there has been a previous installation. Then run the uninstall for that version with ExecWait and then continue with the install.

3) Ability to autoclose the uninstaller program so that you don't have to click on close to exit. This is sort of tied into the first one since you end up with the uninstallers sitting on top of the current installer without closing in the current situation.
Pretty sure this can be done already.

Angry Weasel:
Most of your questions could be answered by going through the documentation or examples that come with NSIS. Anyways try:
1. Use 'BrandingText'
4. Use 'Icon'
Set AutoCloseWindow to True to automagically close the installer upon completion.
Have a look at SectionIn re: Full/compact/custom Install types

Me? I'd like additional callbacks added for each page like Felfert's patch allows (or, in my case, doesn't..)

Re: Items that need to be put in the NSIS installer

Originally posted by DuaneJeffers
The option to replace the Name "Nullsoft Install System vX.XX" with whatever we want.
WTF?? NSIS is a great product, Justin puts a lot of his free time in it, it's completely free and open-source, and now you wanna remove that one small label of credits???
It's not even real credits in fact...
Kinda ingratefull ... /me really feels like flaming now...

Dude, chill. BrandingText doesn't even really work.


Oops :D It hadn't yet been implemented in the version I used primarily (the wizard I had been using used a different version)...dl'ed whatever the new version is and now it works fine :)


I don't mind the small pice of text, whats the point in using someone elses installer if you won't allow them a credit. be ashamed of yourselves.

I like the idea of a splash screen, but I'd still like to see graphic abilty built in.

i.e
PictureFile, X, Y, Pannel ect.

-- DoctorMO --


DoctorMO : there's already a splash screen possibility, it even allows you to play sound.

Go to yuor startmenu --> NSIS --> Contrib --> Splash Screen Help


You can replace "Nullsoft Install System vX.XX" by the BrandingText command.


Here my small wishlist:

1. Ability to add/remove components when rerunning setup. On the first page of the setup wizard you should have the following options: add/remove components, repair and uninstall.

2. It should be possible to insert a small graphic on the left (or right :D ) side of the setup pages.


orig. by angry weasel:

Also, I want the ability to use .png files for a splash screen, taking full advantage of the alpha channel. One could have a round, anti-aliased splash screen that blends perfectly with whatever is behind it.

yay this is a very good idea, but can please somebody explain me what exactly is the alpa channel?

some idea: this is maybe stupid, but however. What if will be the installer splitted in multiple files. e.g. if you have installer that has 4MB and you need to put it on 3 floppy disks... do you know what i mean? (`coz my english is not good:D) you compile the installer with some new magic directive /split_into_4_files... compiler generates "install.exe, install.e00, install.e01, ..." you insert first disk run installer and after short while "pip..." please insert disk two atc... did you get that? bye bye, trace ;)


Originally posted by trace
yay this is a very good idea, but can please somebody explain me what exactly is the alpa channel?
An Alpha Channel is a part of a image file (Gif or PNG) that controls transparency. While gifs only have 1 Alpha channel (Pixels can only be There, or Not There, [100%, or 0%]) PNG's are allowed multiple channels. Pixels can be 50% Transparent, 25% transparent, 100%, 0%, anything. Basically, Alpha is Transparency.

As for the suggestion, it's kinda like a .rar file, right? Like, it'll split each part into a 1.4meg file, instead of 15meg files.

Sounds nifty.

Originally posted by WolfieD


An Alpha Channel is a part of a image file (Gif or PNG) that controls transparency. While gifs only have 1 Alpha channel (Pixels can only be There, or Not There, [100%, or 0%]) PNG's are allowed multiple channels.
Small correction: Both Gifs and PNGs have only one alpha channel. The difference between the alpha channels is, that the alpha channel of gif is 1 bit large (visible or not, like a mask) while the alpha channel of a png image is several bits large (8 I think). Imagine it as a greyscale image where white is visible and black invisible and the grey colours are partial visible.

yes it`s like *.rar file... and thaks for the alpha channel :D is there somebody else who thinks that the file splitting is an good idea? now i`m thinking, that i didn`t see any reply from justin (nsis creator). so why do we post thousands of ideas when the leader don`t tell as, if it`s a fakin` idea or not, and why is this impossible to do and blah bla blah...:(

bye bye, trace ;)


I do like the idea of file splitting an installer. But don't get mad a Justin for not responding. He is busy you know, with Winamp, SHOUTcast, NSIS, and any other project, he will come back to give input.

-Duane


GIFs don't support an alpha channel at all. They added the ability to specify that a particular color in the image should be rendered transparent. Although very similar, it features the drawback that you lose one color from the final image. In a format that only supports 256 color images to begin with, it becomes a more important issue.

Splitting an installer across multiple files would be nice, but are there really that many people distributing software on floppy anymore? A CD costs less that one floppy, much less 10 of them. I guess that if your install is several hundred megabytes then I could see the use, especially if you plan to offer web download. CDs are cheap, and even having it made professionally doesn't cost much compared to floppies.

Along the lines of the above mentioned large installs, I would like to see something similar to make dependancies. To only recompile items which have been modified since the last compile. (do you know how long it takes to build a 600 MB install with compression enabled) Perhaps a way to isolate the files in each Section and then only recompile the section which has modified files.

I would like to see the ability to add a graphic to the main install window. If this is across the top (like Windows Installer) or down the side doesn't matter much.

Callback functions for additional items like when the user selects/deselects a section. This would have to have the ability to programatically select/deselect sections also.

And pizza. It definately needs to be able to cook pizza.

michael


i`m not angry at justin i undestand that he`s busy.

that pizza idea is good i love pizza yum-yum:D

oh! no ideas for today, maybe later, cheers :p


If it's not too much trouble, I'd love to see support for at least 256 colour images for the selected/deselected bmps, and icons, etc.

I also really like michael/locnar42's idea for callback functions in order to enable section selection/deselction.

Great job on NSIS Justin, and any other contributors. :D
Michael - a special thank you for you amongst the contributors since I love InstallOptions so much. :D

(Hey!! I liked the old 'eek' smiley - the new one is nice too, but I miss the old one. :eek: Gosh we users sure are a picky bunch arent we? Can't let anything go without making some kind of comment. ;))


256 color icons for sure! 16 bit is for Win9x and NT4 pc's and those are old OS's...


But there are still a whole bunch of people who use Windows 98 and other OSes like that. Granted, it would be nice to have a NSIS XP-enhanced version, but it might not happen.

-Duane


The "Nullsoft Install System vX.XX" text can easily be replaced. Use BrandingText "Whatever you want."


CodeSquid

1. Ability to add/remove components when rerunning setup. On the first page of the setup wizard you should have the following options: add/remove components, repair and uninstall.
You can easily do it by adding an InstallOptions screen on startup that asks you what would you like to do and then make the installer act according to the selection.

BTW, my wish is that NSIS or InstallOptions will have support for images.

kichik:
Try NSIS BrandImage. The only version is 1.59, but you could do some code hacking. https://sourceforge.net/project/show...lease_id=59178 (it is hosted by the NSIS Project House .. Admin(s): Koen van de Sante and me :))

-Duane


i want visible required sections (ok nobody else needs this)


some of the wishes are already implemented (in 1.91)

so thats not the problem

branding images would be fine
and a new component page (treeview) like in the ms office installer for big installers so that u can group your files

and an option if u select one section that requires another (strange i know but would be fine) then the other should select itselfs automaticly

something like

if (a<b) {

}


have a german version at my hp ...
click on my sig


I only got one word: ReadRegBin


Add OnChange to a field in Custom page.

Example:

[Field 1]
Type=droplist (or whatever type)
ListItems=MSSQL|MySQL
OnChange=DoStuffFunction
...

When the droplist is changed the function DoStuffFunction is executed, there I could e.g. let [Field X] be Enabled or Disabled

ingig