On 19 Apr 2014, at 2:03 AM, John Weeks wrote:

> Our application runs on Macintosh and Windows desktop systems. On Macintosh 
> it is usual to have the menu bar active even when a modal dialog is 
> displayed, and it can be used to cut/copy/paste in editable fields in the 
> dialog.
> 
> Qt, on the other hand, uses the Windows convention of disabling the menu bar 
> when a modal dialog is displayed.

Not the whole menu bar, but most menu items.

> First question: is it possible to override Qt's behavior on a Macintosh?
> 
> In Qt, to make the shortcuts for edit actions work, individual widgets like 
> QLineEdit filter key press events looking for shortcut keystrokes. That makes 
> it really difficult to change those shortcuts, should you choose to do so.
> 
> Second question: Do Qt widgets do it that way because QAction shortcuts don't 
> work in a modal dialog?
> 
> We have a widget that we use in modal dialogs that should have edit actions 
> available. It has a contextual menu, and that works- you can choose Copy from 
> the contextual menu to copy from this widget. But adding a shortcut to that 
> menu doesn't make the shortcut available. I'm guessing that the answer here 
> is that we need to filter the key press events to implement shortcuts in 
> modal dialogs. Is that correct?
> 
> Thank you!

I just recently figured out how to get the menu shortcuts working in 
QFileDialog:  see QTBUG-17291 and 
https://codereview.qt-project.org/#change,82404

The basis of it is that the native menu items need to have a "nil" target which 
means they go to the first responder, which is the native widget that has 
focus.  Then the OS will intercept the keystrokes that are shortcuts for those 
menu items, and Qt will not see them, but they will work with the native 
widgets.  Qt uses a native file dialog, so it's appropriate in that case.  
There may be other cases when we need to do that, but none that I know of for 
sure yet.

But I guess having shortcuts work in Qt widget-based dialogs is a different 
story anyway.  You can write up a bug about this, and provide an example to 
demonstrate if possible.
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to