[Android-development] Native menubar and modal dialogs

maitai at virtual-winds.org maitai at virtual-winds.org
Wed Sep 3 10:42:11 CEST 2014


Hello,

This is related to QTBUG-38777

I am trying to disable the menu each time a QDialog pops up but I am 
facing another problem if I do that:

void MenuBar::blockMenu(const bool &block)
{
     if(block){
         qWarning()<<"disabling menu..."<<actions().size();
         while(!actions().isEmpty()){
                 qWarning()<<"removing"<<actions().first()->text();
                 this->removeAction(actions().first());
         }
         qWarning()<<"disabling menu ok";
     } else {
         if(actions().isEmpty()){
             qWarning()<<"enabling menu...";
             for(int n=0; n<currentMenu.size(); ++n)
                 this->addMenu(currentMenu.at(n));
             qWarning()<<"enabling menu ok";
         }
     }
}


This is working fine when the action menu that triggered the dialog is 
at first or second level in the menu. If it's a third level menu, I get 
a crash on the qWarning()<<...<<actions().size();

It seems that actions() is out of scope and that I cannot even access to 
QMenuBar::actions().size().

If I add a tempo of 1 second before calling this routine, then it works 
and I don't get a crash anymore, so it really seems that Qt is doing 
something tricky with the menubar that I should not disturb ;) But I 
cannot really put this bad tempo trick in production... I am not even 
sure 1 sec will be enough on all devices...

I have also tried to use QWidget::setAttribue(Qt::QA_disabled) and 
QA_ForceDisabled but this has no effect on the native menubar...

Any clue? Or maybe I just have to wait for 5.4 because QTBUG-38777 will 
be fixed?

Thanks
Philippe Lelong

Le 05-05-2014 13:07, BogDan a écrit :
> Hi,
> 
>   The android menu bar should reflect the active window, e.g. if the
> active window has a QMenubar if should display it, if not it should be
> empty/disabled.
> Please use https://bugreports.qt-project.org to open an issue and
> assigne it to me.
> 
> BogDan.
> 
> 
> 
> ----- Original Message -----
> From: "maitai at virtual-winds.org" <maitai at virtual-winds.org>
> To: Android Development <Android-development at qt-project.org>
> Cc:
> Sent: Monday, May 5, 2014 10:05 AM
> Subject: [Android-development] Native menubar and modal dialogs
> 
> Hello,
> 
> In my opinion, the native android menu (QMenubar) should be inactive
> when a modal dialog is executing (like it is on other platforms). Is
> there a way to achieve that without emptying/refiling it each time a
> modal qdialog pops up?
> 
> Thanks
> Philippe LELONG
> _______________________________________________
> Android-development mailing list
> Android-development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/android-development



More information about the Android-development mailing list