Ticket #247 (new defect)

Opened 19 months ago

Last modified 19 months ago

Vidalia-icon dont show up at startup

Reported by: vidalia Owned by: developer
Priority: normal Milestone:
Component: Vidalia Version: 0.0.12
Keywords: Cc:

Description

the vidalia-icon doesnt show up in the menubar in ubuntu fesity when i set it to start when ubuntu starts. if i then stop vidalia and then start it again it it works and the icon shows up.

Change History

  Changed 19 months ago by edmanm

  • milestone Vidalia 0.1.x deleted

  Changed 19 months ago by edmanm

Which version of Qt is your Vidalia using?

  Changed 19 months ago by vidalia

its 4.2.3

i have the same settings as in vidalia 0.11 and then it worked. tried it on two feisty installations and it didnt work on none of them.

  Changed 19 months ago by vidalia

Tried it now on Gutsy with Qt 4.3.0 instead of 4.2.3 and same thing there. The 'Vidalia Control Panel' pops up but no icon.

  Changed 19 months ago by vidalia

http://trac.vidalia-project.net/changeset/1719

QSystemTrayIcon::isSystemTrayAvailable() checks if a systemtray is avaliable, but when Vidalia starts Gnome hasn't loaded completely yet.

In the documentation for Qt it says:

"Returns true if the system tray is available; otherwise returns false.

If the system tray is currently unavailable but becomes available later, QSystemTrayIcon will automatically add an entry in the system tray if it is visible."

Is it possible to implement it so it check if a system-tray is available, not just at the start, so it can return an icon if it notice a system-tray has showed up later?

follow-up: ↓ 7   Changed 19 months ago by vidalia

Or maybe you could do something like this:

remove line 160 and instead add this in src/gui/mainwindow.cpp:

    /* Show the tray icon anyway just in case it really is a tray but the 
     * command didn't get it :P */
    _trayIcon.show();
    /* Don't let people hide the main window, since that may be all they have. */

Or maybe you could change so it checks if it is a tray, but it don't remove the tray at all just open 'Vidalia Control Panel'.

But i still don't like to be forced open that window, isn't it any better way to do it? Maybe have an option at the 'Advanced' tab in the 'Settings' window to not show the control-panel at start, just trust the user that he knows what he is doing?

in reply to: ↑ 6   Changed 19 months ago by edmanm

Replying to vidalia:

But i still don't like to be forced open that window, isn't it any better way to do it? Maybe have an option at the 'Advanced' tab in the 'Settings' window to not show the control-panel at start

If Vidalia is able to detect that your platform has some sort of tray area, you will see a "Hide" button and a checkbox that says "Show this window at startup." You can uncheck the checkbox, so you aren't forced to see that window when Vidalia is first run.

The problem here is that QSystemTrayIcon::isSystemTrayAvailable() is close to what we want, but not quite exactly. What we really want is a way to either detect if a system tray will become available, or perhaps a signal notifying Vidalia when the tray does become available. Then, we can make the "Hide" button and the "Show this window on startup" checkbox visible.

If we simply always make the "Hide" button available on window managers without a tray area (e.g., Enlightenment, by default), some users will complain about actually being able to hide the window but not get it back. Then we will have just gone in a circle.

  Changed 19 months ago by vidalia

Ok, but like it's now i don't think its a good idea. It would be better of you left the tray-icon and instead used QSystemTrayIcon::isSystemTrayAvailable() to just open the control-panel. Now it removes a function from vidalia if i want it to start at the same time as Gnome, but if you leavinjg the icon there no harm done; the people that don't have a tray area, won't notice anything exept that the control-panel pops up.

Note: See TracTickets for help on using tickets.