Opened 7 years ago

Last modified 21 months ago

#99 new enhancement

Finalize xsystray and QSystemTrayIcon

Reported by: dmik Owned by:
Priority: major Milestone: Qt 5
Component: xsystray Version: 4.5.1 Beta 3
Severity: medium Keywords:


This includes the following:

  1. Optimize server-side memory pool performance by organizing free blocks in a one-way linked list (this makes sense when there are many allocations in the pool which currently may lead to full scan when searching for a free block).
  2. Alpha blend icons in the tray.
  3. Native-drawn notification balloons.
  4. Support SysTray??/WPS API (DDE).

Change History (14)

comment:1 Changed 7 years ago by dmik

As for alpha blending, I don't actually think it makes sense to implement it only in xsystray itself: the icons will still be drawn w/o alpha blending in e.g. the window's title bar and in other XCenter plugins like the window list. So if we do it in xsystray, we should also do so in these two mentioned cases: by subclassing WC_TITLEBAR and by patching the relevant XCenter plugins. See also #99.

comment:2 Changed 7 years ago by diver

  • Severity set to medium

comment:3 Changed 6 years ago by dmik

#99 above actually means #44.

comment:4 Changed 6 years ago by diver

  • Milestone changed from Qt Enhanced to Qt 4.7

comment:5 Changed 6 years ago by dmik

It is known from the beginning that xsystray belongs to XWP, not to Qt and one day it will be moved here. Besides, the client API part of xsystray needs to go to a separate DLL (rather than e.g. being a static library) because of its dependence on kLIBC. This is necessary to let other applications (like Odin) easily use xsystray.

Since moving to XWP actually requires to branch it first, we postpone this for now and will still host xsystray within the Qt SVN for a while but will not be distributing it with Qt and will create a separate WPI instead. These actions will be tracked in this ticket too.

comment:6 Changed 6 years ago by dmik

Placed xsystray API to a separate DLL in r835. This will go to a separate xsystray WPI a bit later (most likely, for the Java GA).

comment:7 Changed 6 years ago by diver

  • Component changed from QtGui to xsystray

comment:8 Changed 6 years ago by yagiza

Sounds really nice. And what 'bout other SysTray?'s features, like displaying current keyboard input layer icon and clock? Do you plan to implement them also?

comment:9 Changed 6 years ago by dmik

We don't really need yet another clock :) So I don't plan to add it. I'm though thinking on combining the standard xCenter Time widget with the xsystray widget. But I'm not sure if I will finally do that as it will make impossible to have them placed apart (if someone ever wishes so).

Regarding the input indicator, I assume you mean the support for Keyboard Layer/2. KL/2 uses the old SysTray?/WPS API so it will work once step 4. above is implemented. In the mean time, you may use my other widget, Keyboard Layer/2 Indicator which is independent of any of the systrays at all :)

comment:10 Changed 6 years ago by Yagiza

Well... I never meant that KL/2 thing. I'm just talking about this feature:
SysTray?'s readme:

  Hidden feature:
    Experimental feature for showing keyboard layout in system tray. You need
    settings into CONFIG.SYS with values referring to icons for 
    national/default keyboard layout images.  Example:
    SET SYSTRAY_LANGVIEW_LATIN=c:\os2\default.ico
    SET SYSTRAY_LANGVIEW_NATIONAL=c:\os2\national.ico
    Do not open Language Viewer from System Setup folder - it will cause total
    functionality lost of system tray keyboard layout viewer until reboot.
	For icons, see folder "lang_ico" which contain icons that I use.

The feature is really useful for those, who uses more than one keyboard layer.

comment:11 Changed 6 years ago by dmik

I will add the language icon to xsystray. This will act like a default icon in a newly added xsystray widget, which is also good because now it's empty which confuses users.

For that, I will take the icons from my xkblayer xCenter plugin. Will probably also add SYSTRAY_LANGVIEW_* support as well.

comment:12 Changed 6 years ago by dmik

  • Milestone changed from Qt 4.7 to Qt Enhanced

This is not related to Qt too much, so we postpone it past the 4.7 milestone.

comment:13 Changed 4 years ago by diver

  • Milestone changed from Qt Enhanced to Qt

this finaly needs to be adressed. and then we need to integrate it to xwp.

comment:14 Changed 21 months ago by diver

  • Milestone changed from Qt to Qt 5

Milestone renamed

Note: See TracTickets for help on using tickets.