[Development] Qt Windows Extras and Jump Lists

Jake Thomas Petroules jake.petroules at petroules.com
Fri Jan 25 00:08:52 CET 2013


As if it's possible for COM to be beautiful? :)

I looked over your code briefly and it looks pretty nice.

Implementing something like QtDockTile is somewhat odd because the it was developed as a series of plugins with a single QDockTile API. I think the abstraction of these platform features into a single logical API is useful, however I'm not sure we can do that easily with the current QWindowsExtras / QMacExtras / QX11Extras trio. QDockTile as a class would have to go into QtGui to make proper use of that abstraction, but then you have the problem of backporting it to Qt 4. Or you could duplicate the header across all 3 libraries which isn't exactly ideal. I guess the best approach is to just forego having it as a single API and just have a series of individual classes for the functionality of each platform in each of the Q***Extras libraries.

Then there's the problem of where the Unity portion goes *at all*. Not QX11Extras since it's not window system specific but DE-specific, and I doubt anyone would want to create a QUnityExtras (although I certainly wouldn't be opposed - it'll have to go somewhere).

The QPixmap-and-friends conversion functions is a big one that definitely belongs in QWindowsExtras. I already mentioned that in my initial proposal to create a QWindowsExtras library, and Morten Sørvig and I both have some changes pending to add similar conversion functions in QMacExtras.

So yes, the Windows 7 jump lists, etc., functionality should definitely be implemented in QWindowsExtras in my opinion. The questions I see that need answering are:

* Is there a place for a QDockTile abstraction on top of Windows 7 taskbar features, OS X Dock features and Unity launcher features (while still having the individual APIs available)?
* Where would the Unity functionality go? Do we need a QUnityExtras as well?

What do others think?

Either way, I don't think anyone would disagree that we need a QWindowsExtras. Could someone create it in playground/qwindowsextras so those of us interested in contributing can begin submitting code?

Jake Petroules
Petroules Corporation (www.petroules.com)
Email: jake.petroules at petroules.com
Telephone: +1 (970) 587-3821

On Jan 24, 2013, at 5:40 PM, Ivan V. <define-true-false at yandex.com> wrote:

> Something more beautiful. :) 
> 
> Firstly, there's no need in C-style abstractions.
> Secondly, there will be implemented some more features. 
> And it won't be designed as a pugin for plugin, which uses library wrapped by another library.
> 
> I've already done some features. Code is here: https://github.com/dtf/QtWindowsExtras
> Alsio, it is going to include various conversion functions, which where removed from QPixmap in Qt5, as was asked here: http://lists.qt-project.org/pipermail/development/2013-January/009390.html .
> 
> But that's not the topic. The only thing I would like to know is if it is ok to include in Qt code, which, I think, is some kind of hack. What do you think?
> 
> 25.01.2013, 00:30, "Jake Thomas Petroules" <jake.petroules at petroules.com>:
>> Ah, I'm familiar with the project from which it was forked. If this is not the code that is going to be a proposal for QWindowsExtras then what is?
>> 
>> Jake Petroules
>> Petroules Corporation (www.petroules.com)
>> Email: jake.petroules at petroules.com
>> Telephone: +1 (970) 587-3821
>> 
>> On Jan 24, 2013, at 5:14 PM, Ivan V. <define-true-false at yandex.com> wrote:
>> 
>>>  Of course it is.
>>>  Here is the project: https://github.com/dtf/QtDockTile
>>>  Here is the somewhat ugly code, which was born by cloudy consciousness: https://github.com/dtf/QtDockTile/tree/master/src/plugins/windows
>>> 
>>>  Note that it is not the code that is going to be a proposal for Qt Windows Extras.
>>> 
>>>  25.01.2013, 00:07, "Jake Thomas Petroules" <jake.petroules at petroules.com>:
>>>>  Interesting. Is your wrapper open source and where might one find it?
>>>> 
>>>>  Jake Petroules
>>>>  Petroules Corporation (www.petroules.com)
>>>>  Email: jake.petroules at petroules.com
>>>>  Telephone: +1 (970) 587-3821
>>>> 
>>>>  On Jan 24, 2013, at 4:34 PM, Ivan V. <define-true-false at yandex.com> wrote:
>>>>>   Hello, Jake,
>>>>> 
>>>>>   The main "unusualness" about our wrapper is that it not only wraps ICustomDestinationList COM-interface, but also allows programmer to put there QActions and use it like with some kind of menus. What it does it stores these actions, gives them unique id's, and those id-s puts into command-line argument to rundll32, which after activation of jumplist item calls a procedure, which then finds respective action by id and triggers it. It's pretty common mechanism of transforming this unusable "Jump Lists", which is only list of shortcuts, into something more usable.
>>>>>   _______________________________________________
>>>>>   Development mailing list
>>>>>   Development at qt-project.org
>>>>>   http://lists.qt-project.org/mailman/listinfo/development
>>>  _______________________________________________
>>>  Development mailing list
>>>  Development at qt-project.org
>>>  http://lists.qt-project.org/mailman/listinfo/development
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130124/d0d4a4ff/attachment.html>


More information about the Development mailing list