From kfm-devel Fri Jun 30 07:53:05 2000 From: David Faure Date: Fri, 30 Jun 2000 07:53:05 +0000 To: kfm-devel Subject: Re: Bug#4656: konqueror : Default keys to delete files X-MARC-Message: https://marc.info/?l=kfm-devel&m=96235175730837 On Thu, Jun 29, 2000 at 07:41:39PM -0400, Dawit Alemayehu wrote: > On Thu, 29 Jun 2000, David Faure wrote: > > IIRC there's an easy way to know which widget has the focus - QApplication::focus_widget. > > I'd rather ask this one. But the QWidget part of the patch would be the same in > > this solution too. > > Hmm.... trying to do as little work as possible eh ?? :)) No, thinking modular. Think about the fact that you wanted to use that for KLineEdit (or was it KComboBox). Are you going to require that everyone using it writes a method in the KTMW-derived class, to catch some particular events that the lineedit wants to handle itself ? Sounds wrong to me :-) > How about the following code then: > > // Default to current behavior. > bool allowAccelEvent = true; > > // Get the widget that has the current focus > QWidget* w = qApp->focusWidget(); > > // Check focusWdget does not return NULL and make sure > // the top level widget that contains the widget with focus > // is the one we are currently watching... Always good to check, but I fail to see when this would not be true. If a widget has the focus, then it means its toplevel widget is active, otherwise it wouldn't have the focus :-) (AFAIK) > if ( w && w->topLevelWidget() == d->watch ) > allowAccelEvent = w->allowAcceleratorEvent( k ); // Query the widget with focus > > if ( allowAccelEvent ) > > The only problem with this approach is that the application programmer has no > control over what he wants to do in his application but rather the individual > widgets. I guess application programmers can always inherit and override the > implementation in any particular widget if they choose to... Right - but if someone defines a KAction/QAccel with "Del", he certainly does not want that to prevent deleting a char from a lineedit... -- David FAURE david@mandrakesoft.com, faure@kde.org http://home.clara.net/faure/, http://www.konqueror.org/ KDE, Making The Future of Computing Available Today