[Libreoffice-commits] core.git: Branch 'feature/qt5+kde5' - 2 commits - vcl/qt5

Katarina Behrens Katarina.Behrens at cib.de
Tue May 29 08:23:09 UTC 2018


 vcl/qt5/Qt5Menu.cxx |   23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

New commits:
commit d81634d3815c2c4e0acdf26811afbe656bc98fb9
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Tue May 29 09:53:43 2018 +0200

    Add radiobuttons to native menus
    
    Change-Id: I015bbb0a337b917096ca6f542a73c24c79fbef7d

diff --git a/vcl/qt5/Qt5Menu.cxx b/vcl/qt5/Qt5Menu.cxx
index 6c219aff7557..e61595af4850 100644
--- a/vcl/qt5/Qt5Menu.cxx
+++ b/vcl/qt5/Qt5Menu.cxx
@@ -87,6 +87,7 @@ void Qt5Menu::DoFullMenuUpdate( Menu* pMenuBar, QMenu* pParentMenu )
 
     if ( mbMenuBar && mpQMenuBar )
         mpQMenuBar->clear();
+    QActionGroup* pQAG = nullptr;
 
     for ( sal_Int32 nItem = 0; nItem < static_cast<sal_Int32>(GetItemCount()); nItem++ )
     {
@@ -105,8 +106,11 @@ void Qt5Menu::DoFullMenuUpdate( Menu* pMenuBar, QMenu* pParentMenu )
         else
         {
             if( pSalMenuItem->mpSubMenu )
+            {
                 // submenu
                 pQMenu = pQMenu->addMenu( toQString(aText) );
+                pQAG = new QActionGroup( pQMenu );
+            }
             else
             {
                 if ( pSalMenuItem->mnType == MenuItemType::SEPARATOR )
@@ -122,6 +126,16 @@ void Qt5Menu::DoFullMenuUpdate( Menu* pMenuBar, QMenu* pParentMenu )
                         pAction->setCheckable( true );
                         pAction->setChecked( bChecked );
                     }
+                    else if (itemBits & MenuItemBits::RADIOCHECK)
+                    {
+                        pAction->setCheckable(true);
+                        if ( !pQAG )
+                        {
+                            pQAG = new QActionGroup( pQMenu );
+                            pQAG->setExclusive(true);
+                        }
+                        pQAG->addAction( pAction );
+                    }
 
                     connect( pAction, &QAction::triggered, this,
                              [this, pSalMenuItem]{ DispatchCommand(pSalMenuItem); } );
commit 1cd7a03876f665289c4e4a6b9f4cb73fc54d987a
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Mon May 28 13:59:43 2018 +0200

    Add checkmark buttons to native menus
    
    Change-Id: If64227af287006cb4f9b980dac97b2fb401eac88

diff --git a/vcl/qt5/Qt5Menu.cxx b/vcl/qt5/Qt5Menu.cxx
index 91de0defccff..6c219aff7557 100644
--- a/vcl/qt5/Qt5Menu.cxx
+++ b/vcl/qt5/Qt5Menu.cxx
@@ -96,6 +96,8 @@ void Qt5Menu::DoFullMenuUpdate( Menu* pMenuBar, QMenu* pParentMenu )
         QMenu* pQMenu = pParentMenu;
         NativeItemText( aText );
         vcl::KeyCode nAccelKey = pVCLMenu->GetAccelKey( nId );
+        bool bChecked = pVCLMenu->IsItemChecked( nId );
+        MenuItemBits itemBits = pVCLMenu->GetItemBits( nId );
 
         if (mbMenuBar && mpQMenuBar)
             // top-level menu
@@ -114,6 +116,13 @@ void Qt5Menu::DoFullMenuUpdate( Menu* pMenuBar, QMenu* pParentMenu )
                     // leaf menu
                     QAction *pAction = pQMenu->addAction( toQString(aText) );
                     pAction->setShortcut( toQString( nAccelKey.GetName(GetFrame()->GetWindow()) ) );
+
+                    if (itemBits & MenuItemBits::CHECKABLE)
+                    {
+                        pAction->setCheckable( true );
+                        pAction->setChecked( bChecked );
+                    }
+
                     connect( pAction, &QAction::triggered, this,
                              [this, pSalMenuItem]{ DispatchCommand(pSalMenuItem); } );
                 }


More information about the Libreoffice-commits mailing list