KClearableLineEdit

Ingo Klöcker kloecker at kde.org
Wed Aug 23 15:35:52 BST 2006


Am Mittwoch, 23. August 2006 14:26 schrieb Jaroslaw Staniek:
> Aaron J. Seigo said the following, On 2006-08-23 09:27:
> > attached is a class that implements a line edit with an embedded
> > clear button. the intention is to replace all those lineedits with
> > the clear button next to them. why?
> >
> > a) they currently look ugly by breaking layouts out
> > b) they unnecessarily increase the visual noise with More Buttons
> > c) being external to the line edit they are currently not very well
> > associated with the widget they act upon.
> >
> > the only downside to this new class (besides bugs i am not aware of
> > and some unwanted flickering on resizing, all of which are fixables
> > as issues arise) is that i'm not sure what the accessibility impact
> > would be; worst case is that this class would need to export via
> > QAccessible that it has a clear function? not sure ...
> >
> > i also implemented this as a subclass of KLineEdit rather than
> > embed the functionality into KLineEdit since KLineEdit is already a
> > pretty hairy beast and i didn't want to add to that.
>
> Nice improvement. One note: what if I have already reimplemented
> KLineEdit (or want to add the 'clear' button to aneditable combo box
> or date/time edit?

QComboBox *cb = new QComboBox();
KClearableLineEdit *cle = new KClearableLineEdit( cb );
cb.setLineEdit( cle );

(or something similar) should work in the case of the combo box.

> Maybe we can _also_ have an interface that can be 
> inherited, thus delivering the "clearing" functionality?

KClearableLineEdit has exactly the same interface as KLineEdit. It 
doesn't add any new methods. What you probably mean is usage of the 
Decorator pattern instead of introducing a new subclass (KCLE) forcing 
everybody to change the class they derive from 
(s/KLineEdit/KClearableLineEdit/) in order to get the functionality of 
the new subclass.

Regards,
Ingo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20060823/90d1e498/attachment.sig>


More information about the kde-core-devel mailing list