Review Request: Add KMessageWidget, an alternative to KMessageBox

Aurélien Gâteau agateau at kde.org
Tue May 3 08:37:41 BST 2011



> On May 1, 2011, 10:14 a.m., Hugo Pereira Da Costa wrote:
> > Hello Aurelien, 
> > 
> > Though I have nothing to say against the current design of your kmessagebox widget, something I miss in your implementation is the possibility for a widget style to override/replace your rendering. I can indeed imagine some styles (not oxygen though) for which your design might not integrate that well, notably "skulpture" for which all widgets have square corners, that won't match your nice rounded one. 
> > 
> > There is a mechanism to "register" custom style primitives that widget styles may or may not support, and for your custom widget to test whether the style supports the new primitive or not, allowing it to fallback to its own rendering, when not supported. I think it would be nice for your widget (and other 'custom' widgets that you'd plan to implement) to use this mechanism, for better future integration.
> > 
> > kdeui/kdelibs/kcapacitybar implements this mechanism (the widget appears in the statusbar of dolphin to give the available space on a given device), and oxygen (as well as bespin) actually uses it to render the capacity bar as a regular "progress bar", instead of the default implementation (which you can see by using any style but oxygen, or bespin, e.g. plastique). 
> > 
> > Tell me that you think, and also if needed I can help implementing if you agree with the above but are short of time to work on it.
> > 
> > Cheers,
> > 
> > Hugo
> 
> Aaron J. Seigo wrote:
>     note that this widget exposes a bug in oxygen style where when fading between two strings in a QLabel, the background is not updated. so when the text changes as well as the background color, the old background color remains. this is easily seen if you run kmessagewidgetdemo from kdeexamples/kmessagewidget/ and switch between the Information and Positive messages.
> 
> Hugo Pereira Da Costa wrote:
>     Thanks Aaron.
>     Its now fixed (in a temporary way) in trunk. 
>     Note: I've been planing to re-implement the label text transition for a looong time now, in a much more robust way, to avoid these kind of issues -that occur elsewhere in kde- ... But have not found time so far :(
>
> 
> Aurélien Gâteau wrote:
>     @Hugo: Interesting, I didn't know about this mechanism. I will be quite busy for the upcoming two weeks so if you feel like implementing it, feel free to (btw: I don't get the nice capacity bar in Dolphin anymore, just a progress bar, is it normal?)
>     
>     @Aaron: I was able to reproduce this bug for a while when the "content" widget was hidden away by moving it (0, content->height()). Strangely enough changing the code to move it to (0, -content->height()) fixed it for me.
> 
> Hugo Pereira Da Costa wrote:
>     Aurélien: "btw: I don't get the nice capacity bar in Dolphin anymore, just a progress bar, is it normal?"
>     Yes its normal. Its precisely what the "styling" mechanism allowed us to do. We (that is: Nuno, I, and some others) felt that the default implementation provided by Dolphin, although nice, had some polishing issues, and did not integrate well with Oxygen, so we re-implemented it in oxygen, and after some more discussion with Nuno, we figured that rather than implementing a new UI element with different rendering for just this purpose, we'd better just reuse the progress bar element, which which achieves just the same goal.

Well... it "breaks" the documentation of the widget then, see: http://api.kde.org/4.5-api/kdelibs-apidocs/kdeui/html/classKCapacityBar.html (in the "Detailed Description" section)


- Aurélien


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/101249/#review3002
-----------------------------------------------------------


On April 30, 2011, 1:10 p.m., Aurélien Gâteau wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/101249/
> -----------------------------------------------------------
> 
> (Updated April 30, 2011, 1:10 p.m.)
> 
> 
> Review request for kdelibs.
> 
> 
> Summary
> -------
> 
> KMessageWidget is a new widget which can be considered as a less intrusive alternative for KMessageBox. It was designed during KDE UX sprint 2011 ( http://community.kde.org/Sprints/UX2011/KMessageWidget ).
> 
> The class documentation should make it clear how and when it can be used.
> 
> This widget could be used by:
> - Browsers to implement their "remember password" widgets (Konqueror, Rekonq...)
> - Forms to provide feedback on validation errors
> - Bluedevil KCM to replace its custom "No Bluetooth adapter have been found" message widget
> - Nepomuk/Strigi KCM to indicate status of their services
> - Gwenview to replace its custom save bar
> - ...
> 
> I still have a few additions in mind for the API but it is already usable and since we are freezing I think it can be merged in master in its current state. I assume it will still be possible to extend the API a bit before kdelibs 4.7 freezes for good.
> 
> I also wrote an example program in the kdeexample repository ( https://projects.kde.org/projects/kde/kdeexamples/repository/show?rev=agateau%2Fkmessagewidget ), though I am wondering whether it shouldn't be moved in kdeui/tests as it is more a manual test program than an example.
> 
> 
> Diffs
> -----
> 
>   kdeui/CMakeLists.txt d1873d154f4dde92c29f2e6dab1be70d49ddb55e 
>   kdeui/widgets/kmessagewidget.h PRE-CREATION 
>   kdeui/widgets/kmessagewidget.cpp PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/101249/diff
> 
> 
> Testing
> -------
> 
> 
> Screenshots
> -----------
> 
> Montage from kmessagewidgetdemo
>   http://git.reviewboard.kde.org/r/101249/s/141/
> 
> 
> Thanks,
> 
> Aurélien
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110503/9824950d/attachment.htm>


More information about the kde-core-devel mailing list