[Libreoffice-commits] core.git: desktop/source desktop/uiconfig

Muhammet Kara muhammet.kara at pardus.org.tr
Mon Nov 21 09:19:30 UTC 2016


 desktop/source/deployment/gui/dp_gui_dialog2.cxx |  131 ++++++++---------------
 desktop/source/deployment/gui/dp_gui_dialog2.hxx |    8 +
 desktop/uiconfig/ui/extensionmanager.ui          |    3 
 3 files changed, 58 insertions(+), 84 deletions(-)

New commits:
commit 3aec456ba8a0d1f9aef2fc1735d1861fe9d3a98c
Author: Muhammet Kara <muhammet.kara at pardus.org.tr>
Date:   Fri Nov 18 17:42:18 2016 +0300

    tdf#103146 Revamp Extension Manager Dialog, Part 3
    
    Move the "Enable"/"Disable" button which was customly
    implemented from the ExtBoxWithBtns_Impl to the new row.
    This should also solve some accessibility issues.
    
    Also remove some unnecessary code pieces for clean-up.
    
    Change-Id: Iec7820779110eea3411a774de8277ef238f562e7
    Reviewed-on: https://gerrit.libreoffice.org/30973
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>

diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.cxx b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
index 06c34411..2b257a3 100644
--- a/desktop/source/deployment/gui/dp_gui_dialog2.cxx
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
@@ -81,8 +81,6 @@ using namespace ::com::sun::star::system;
 
 namespace dp_gui {
 
-#define TOP_OFFSET           5
-
 #define USER_PACKAGE_MANAGER    "user"
 #define SHARED_PACKAGE_MANAGER  "shared"
 #define BUNDLED_PACKAGE_MANAGER "bundled"
@@ -116,19 +114,11 @@ class ExtBoxWithBtns_Impl : public ExtensionBox_Impl
 {
     bool            m_bInterfaceLocked;
 
-    VclPtr<PushButton>     m_pEnableBtn;
-
     VclPtr<ExtMgrDialog>   m_pParent;
 
-    void            SetButtonPos( const Rectangle& rRect );
     void            SetButtonStatus( const TEntry_Impl& rEntry );
     MENU_COMMAND    ShowPopupMenu( const Point &rPos, const long nPos );
 
-
-    DECL_LINK( ScrollHdl, ScrollBar*, void );
-
-    DECL_LINK( HandleEnableBtn, Button*, void );
-
 public:
     explicit ExtBoxWithBtns_Impl(vcl::Window* pParent);
     virtual ~ExtBoxWithBtns_Impl() override;
@@ -147,7 +137,6 @@ public:
 ExtBoxWithBtns_Impl::ExtBoxWithBtns_Impl(vcl::Window* pParent)
     : ExtensionBox_Impl(pParent)
     , m_bInterfaceLocked(false)
-    , m_pEnableBtn(nullptr)
     , m_pParent(nullptr)
 {
 }
@@ -158,22 +147,7 @@ void ExtBoxWithBtns_Impl::InitFromDialog(ExtMgrDialog *pParentDialog)
 
     m_pParent = pParentDialog;
 
-    m_pEnableBtn = VclPtr<PushButton>::Create( this, WB_TABSTOP );
-
     SetHelpId( HID_EXTENSION_MANAGER_LISTBOX );
-    m_pEnableBtn->SetHelpId( HID_EXTENSION_MANAGER_LISTBOX_DISABLE );
-
-    m_pEnableBtn->SetClickHdl( LINK( this, ExtBoxWithBtns_Impl, HandleEnableBtn ) );
-
-    m_pEnableBtn->SetText( DialogHelper::getResourceString( RID_CTX_ITEM_DISABLE ) );
-
-    Size aSize = LogicToPixel( Size( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ),
-                               MapMode( MapUnit::MapAppFont ) );
-    m_pEnableBtn->SetSizePixel( aSize );
-
-    SetExtraSize( aSize.Height() + 2 * TOP_OFFSET );
-
-    SetScrollHdl( LINK( this, ExtBoxWithBtns_Impl, ScrollHdl ) );
 }
 
 VCL_BUILDER_DECL_FACTORY(ExtBoxWithBtns)
@@ -189,7 +163,6 @@ ExtBoxWithBtns_Impl::~ExtBoxWithBtns_Impl()
 
 void ExtBoxWithBtns_Impl::dispose()
 {
-    m_pEnableBtn.disposeAndClear();
     m_pParent.clear();
     ExtensionBox_Impl::dispose();
 }
@@ -207,14 +180,10 @@ void ExtBoxWithBtns_Impl::RecalcAll()
     {
         m_pParent->enableOptionsButton( false );
         m_pParent->enableRemoveButton( false );
-        m_pEnableBtn->Disable();
-        m_pEnableBtn->Hide();
+        m_pParent->enableEnableButton( false );
     }
 
     ExtensionBox_Impl::RecalcAll();
-
-    if ( nActive != svt::IExtensionListBox::ENTRY_NOTFOUND )
-        SetButtonPos( GetEntryRect( nActive ) );
 }
 
 
@@ -227,17 +196,6 @@ void ExtBoxWithBtns_Impl::selectEntry( const long nPos )
     ExtensionBox_Impl::selectEntry( nPos );
 }
 
-
-void ExtBoxWithBtns_Impl::SetButtonPos( const Rectangle& rRect )
-{
-    Size  aBtnSize( m_pEnableBtn->GetSizePixel() );
-    Point aBtnPos( rRect.Left() + ICON_OFFSET,
-                   rRect.Bottom() - TOP_OFFSET - aBtnSize.Height() );
-
-    m_pEnableBtn->SetPosPixel( aBtnPos );
-}
-
-
 void ExtBoxWithBtns_Impl::SetButtonStatus(const TEntry_Impl& rEntry)
 {
     bool bShowOptionBtn = true;
@@ -245,26 +203,22 @@ void ExtBoxWithBtns_Impl::SetButtonStatus(const TEntry_Impl& rEntry)
     rEntry->m_bHasButtons = false;
     if ( ( rEntry->m_eState == REGISTERED ) || ( rEntry->m_eState == NOT_AVAILABLE ) )
     {
-        m_pEnableBtn->SetText( DialogHelper::getResourceString( RID_CTX_ITEM_DISABLE ) );
-        m_pEnableBtn->SetHelpId( HID_EXTENSION_MANAGER_LISTBOX_DISABLE );
+        m_pParent->enableButtontoEnable( false );
     }
     else
     {
-        m_pEnableBtn->SetText( DialogHelper::getResourceString( RID_CTX_ITEM_ENABLE ) );
-        m_pEnableBtn->SetHelpId( HID_EXTENSION_MANAGER_LISTBOX_ENABLE );
+        m_pParent->enableButtontoEnable( true );
         bShowOptionBtn = false;
     }
 
     if ( ( !rEntry->m_bUser || ( rEntry->m_eState == NOT_AVAILABLE ) || rEntry->m_bMissingDeps )
          && !rEntry->m_bMissingLic )
     {
-        m_pEnableBtn->Disable();
-        m_pEnableBtn->Hide();
+        m_pParent->enableEnableButton( false );
     }
     else
     {
-        m_pEnableBtn->Enable( !rEntry->m_bLocked );
-        m_pEnableBtn->Show();
+        m_pParent->enableEnableButton( !rEntry->m_bLocked );
         rEntry->m_bHasButtons = true;
     }
 
@@ -371,42 +325,12 @@ void ExtBoxWithBtns_Impl::enableButtons( bool bEnable )
     }
     else
     {
-        m_pEnableBtn->Enable( false );
+        m_pParent->enableEnableButton( false );
         m_pParent->enableOptionsButton( false );
         m_pParent->enableRemoveButton( false );
     }
 }
 
-
-IMPL_LINK( ExtBoxWithBtns_Impl, ScrollHdl, ScrollBar*, pScrBar, void )
-{
-    long nDelta = pScrBar->GetDelta();
-
-    Point aNewEnPt( m_pEnableBtn->GetPosPixel() - Point( 0, nDelta ) );
-
-    DoScroll( nDelta );
-
-    m_pEnableBtn->SetPosPixel( aNewEnPt );
-}
-
-IMPL_LINK_NOARG(ExtBoxWithBtns_Impl, HandleEnableBtn, Button*, void)
-{
-    const sal_Int32 nActive = getSelIndex();
-
-    if ( nActive != svt::IExtensionListBox::ENTRY_NOTFOUND )
-    {
-        TEntry_Impl pEntry = GetEntryData( nActive );
-
-        if ( pEntry->m_bMissingLic )
-            m_pParent->acceptLicense( pEntry->m_xPackage );
-        else
-        {
-            const bool bEnable( pEntry->m_eState != REGISTERED );
-            m_pParent->enablePackage( pEntry->m_xPackage, bEnable );
-        }
-    }
-}
-
 //                             DialogHelper
 
 DialogHelper::DialogHelper( const uno::Reference< uno::XComponentContext > &xContext,
@@ -555,6 +479,7 @@ ExtMgrDialog::ExtMgrDialog(vcl::Window *pParent, TheExtensionManager *pManager,
     get(m_pOptionsBtn, "optionsbtn");
     get(m_pAddBtn, "addbtn");
     get(m_pRemoveBtn, "removebtn");
+    get(m_pEnableBtn, "enablebtn");
     get(m_pUpdateBtn, "updatebtn");
     get(m_pCloseBtn, "close");
     get(m_pBundledCbx, "bundled");
@@ -569,10 +494,12 @@ ExtMgrDialog::ExtMgrDialog(vcl::Window *pParent, TheExtensionManager *pManager,
 
     m_pOptionsBtn->SetHelpId( HID_EXTENSION_MANAGER_LISTBOX_OPTIONS );
     m_pRemoveBtn->SetHelpId( HID_EXTENSION_MANAGER_LISTBOX_REMOVE );
+    m_pEnableBtn->SetHelpId( HID_EXTENSION_MANAGER_LISTBOX_ENABLE );
 
     m_pOptionsBtn->SetClickHdl( LINK( this, ExtMgrDialog, HandleOptionsBtn ) );
     m_pAddBtn->SetClickHdl( LINK( this, ExtMgrDialog, HandleAddBtn ) );
     m_pRemoveBtn->SetClickHdl( LINK( this, ExtMgrDialog, HandleRemoveBtn ) );
+    m_pEnableBtn->SetClickHdl( LINK( this, ExtMgrDialog, HandleEnableBtn ) );
     m_pCloseBtn->SetClickHdl( LINK( this, ExtMgrDialog, HandleCloseBtn ) );
 
     m_pCancelBtn->SetClickHdl( LINK( this, ExtMgrDialog, HandleCancelBtn ) );
@@ -611,6 +538,7 @@ void ExtMgrDialog::dispose()
     m_pOptionsBtn.clear();
     m_pAddBtn.clear();
     m_pRemoveBtn.clear();
+    m_pEnableBtn.clear();
     m_pUpdateBtn.clear();
     m_pCloseBtn.clear();
     m_pBundledCbx.clear();
@@ -819,11 +747,30 @@ void ExtMgrDialog::enableOptionsButton( bool bEnable )
     m_pOptionsBtn->Enable( bEnable );
 }
 
-void ExtMgrDialog::enableRemoveButton ( bool bEnable )
+void ExtMgrDialog::enableRemoveButton( bool bEnable )
 {
     m_pRemoveBtn->Enable( bEnable );
 }
 
+void ExtMgrDialog::enableEnableButton( bool bEnable )
+{
+    m_pEnableBtn->Enable( bEnable );
+}
+
+void ExtMgrDialog::enableButtontoEnable( bool bEnable )
+{
+    if (bEnable)
+    {
+        m_pEnableBtn->SetText( DialogHelper::getResourceString( RID_CTX_ITEM_ENABLE ) );
+        m_pEnableBtn->SetHelpId( HID_EXTENSION_MANAGER_LISTBOX_ENABLE );
+    }
+    else
+    {
+        m_pEnableBtn->SetText( DialogHelper::getResourceString( RID_CTX_ITEM_DISABLE ) );
+        m_pEnableBtn->SetHelpId( HID_EXTENSION_MANAGER_LISTBOX_DISABLE );
+    }
+}
+
 IMPL_LINK_NOARG(ExtMgrDialog, HandleCancelBtn, Button*, void)
 {
     if ( m_xAbortChannel.is() )
@@ -966,6 +913,24 @@ IMPL_LINK_NOARG(ExtMgrDialog, HandleRemoveBtn, Button*, void)
     }
 }
 
+IMPL_LINK_NOARG(ExtMgrDialog, HandleEnableBtn, Button*, void)
+{
+    const sal_Int32 nActive = m_pExtensionBox->getSelIndex();
+
+    if ( nActive != svt::IExtensionListBox::ENTRY_NOTFOUND )
+    {
+        TEntry_Impl pEntry = m_pExtensionBox->GetEntryData( nActive );
+
+        if ( pEntry->m_bMissingLic )
+            acceptLicense( pEntry->m_xPackage );
+        else
+        {
+            const bool bEnable( pEntry->m_eState != REGISTERED );
+            enablePackage( pEntry->m_xPackage, bEnable );
+        }
+    }
+}
+
 IMPL_LINK_NOARG(ExtMgrDialog, HandleExtTypeCbx, Button*, void)
 {
     // re-creates the list of packages with addEntry selecting the packages
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.hxx b/desktop/source/deployment/gui/dp_gui_dialog2.hxx
index 618973b..f96e40d 100644
--- a/desktop/source/deployment/gui/dp_gui_dialog2.hxx
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.hxx
@@ -105,6 +105,7 @@ class ExtMgrDialog : public ModelessDialog,
     VclPtr<PushButton>          m_pOptionsBtn;
     VclPtr<PushButton>          m_pAddBtn;
     VclPtr<PushButton>          m_pRemoveBtn;
+    VclPtr<PushButton>          m_pEnableBtn;
     VclPtr<PushButton>          m_pUpdateBtn;
     VclPtr<CloseButton>         m_pCloseBtn;
     VclPtr<CheckBox>            m_pBundledCbx;
@@ -137,6 +138,7 @@ class ExtMgrDialog : public ModelessDialog,
     DECL_LINK( HandleOptionsBtn, Button*, void );
     DECL_LINK( HandleAddBtn, Button*, void );
     DECL_LINK( HandleRemoveBtn, Button*, void );
+    DECL_LINK( HandleEnableBtn, Button*, void );
     DECL_LINK( HandleUpdateBtn, Button*, void );
     DECL_LINK( HandleCancelBtn, Button*, void );
     DECL_LINK( HandleCloseBtn, Button*, void );
@@ -178,6 +180,12 @@ public:
 
     void enableOptionsButton( bool bEnable );
     void enableRemoveButton( bool bEnable );
+    void enableEnableButton( bool bEnable );
+    /*
+     * Transform the button to "Enable", or to "Disable"
+     * based on the value of bEnable.
+     */
+    void enableButtontoEnable( bool bEnable );
 };
 
 
diff --git a/desktop/uiconfig/ui/extensionmanager.ui b/desktop/uiconfig/ui/extensionmanager.ui
index e17bc77..f40b386 100644
--- a/desktop/uiconfig/ui/extensionmanager.ui
+++ b/desktop/uiconfig/ui/extensionmanager.ui
@@ -140,7 +140,8 @@
                 </child>
                 <child>
                   <object class="GtkButton" id="enablebtn">
-                    <property name="label" translatable="yes">Enable</property>
+                    <property name="label" translatable="yes">_Enable</property>
+                    <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
                     <property name="use_underline">True</property>


More information about the Libreoffice-commits mailing list