From 1213cfde6b9052c1eb50b46d5cae2eef28d4b8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Sat, 16 Feb 2019 20:19:12 +0000 Subject: [PATCH] weld HangulHanjaEditDictDialog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: If0d49a65735b66eaa8db11686099ed29b01711c4 Reviewed-on: https://gerrit.libreoffice.org/67929 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- cui/source/dialogs/hangulhanjadlg.cxx | 267 ++++++++---------- cui/source/inc/hangulhanjadlg.hxx | 80 +++--- cui/uiconfig/ui/hangulhanjaeditdictdialog.ui | 149 +++++----- .../source/glade/libreoffice-catalog.xml.in | 3 - include/vcl/weld.hxx | 2 + solenv/bin/native-code.py | 1 - solenv/sanitizers/ui/cui.suppr | 4 + vcl/source/app/salvtables.cxx | 12 + vcl/unx/gtk3/gtk3gtkinst.cxx | 12 + 9 files changed, 260 insertions(+), 270 deletions(-) diff --git a/cui/source/dialogs/hangulhanjadlg.cxx b/cui/source/dialogs/hangulhanjadlg.cxx index 53d72894911e..46fa519c8f3f 100644 --- a/cui/source/dialogs/hangulhanjadlg.cxx +++ b/cui/source/dialogs/hangulhanjadlg.cxx @@ -1063,8 +1063,8 @@ namespace svx DBG_ASSERT( pEntry, "+HangulHanjaEditDictDialog::EditDictHdl(): call of edit should not be possible with no selection!" ); if( pEntry ) { - ScopedVclPtrInstance< HangulHanjaEditDictDialog > aEdDlg(this, m_aDictList, m_pDictsLB->GetSelectedEntryPos()); - aEdDlg->Execute(); + HangulHanjaEditDictDialog aEdDlg(GetFrameWeld(), m_aDictList, m_pDictsLB->GetSelectedEntryPos()); + aEdDlg.run(); } } @@ -1324,12 +1324,12 @@ namespace svx if( _bUp ) { if( !m_pPrev ) - bRet = m_pScrollBar->GetThumbPos() > m_pScrollBar->GetRangeMin(); + bRet = m_pScrollBar->vadjustment_get_value() > m_pScrollBar->vadjustment_get_lower(); } else { if( !m_pNext ) - bRet = m_pScrollBar->GetThumbPos() < ( m_pScrollBar->GetRangeMax() - 4 ); + bRet = m_pScrollBar->vadjustment_get_value() < ( m_pScrollBar->vadjustment_get_upper() - 4 ); } return bRet; @@ -1337,92 +1337,71 @@ namespace svx void SuggestionEdit::DoJump( bool _bUp ) { - const Link& rLoseFocusHdl = GetLoseFocusHdl(); - rLoseFocusHdl.Call( *this ); - m_pScrollBar->SetThumbPos( m_pScrollBar->GetThumbPos() + ( _bUp? -1 : 1 ) ); - - static_cast< HangulHanjaEditDictDialog* >( GetParentDialog() )->UpdateScrollbar(); + m_pScrollBar->vadjustment_set_value( m_pScrollBar->vadjustment_get_value() + ( _bUp? -1 : 1 ) ); + m_pParent->UpdateScrollbar(); } - SuggestionEdit::SuggestionEdit( vcl::Window* pParent, WinBits nBits ) - : Edit(pParent, nBits) + SuggestionEdit::SuggestionEdit(std::unique_ptr xEntry, HangulHanjaEditDictDialog* pParent) + : m_pParent(pParent) , m_pPrev(nullptr) , m_pNext(nullptr) , m_pScrollBar(nullptr) + , m_xEntry(std::move(xEntry)) { + m_xEntry->connect_key_press(LINK(this, SuggestionEdit, KeyInputHdl)); } - SuggestionEdit::~SuggestionEdit() - { - disposeOnce(); - } - - void SuggestionEdit::dispose() - { - m_pPrev.clear(); - m_pNext.clear(); - m_pScrollBar.clear(); - Edit::dispose(); - } - - bool SuggestionEdit::PreNotify( NotifyEvent& rNEvt ) + IMPL_LINK(SuggestionEdit, KeyInputHdl, const KeyEvent&, rKEvt, bool) { bool bHandled = false; - if( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT ) + + const vcl::KeyCode& rKeyCode = rKEvt.GetKeyCode(); + sal_uInt16 nMod = rKeyCode.GetModifier(); + sal_uInt16 nCode = rKeyCode.GetCode(); + if( nCode == KEY_TAB && ( !nMod || KEY_SHIFT == nMod ) ) { - const KeyEvent* pKEvt = rNEvt.GetKeyEvent(); - const vcl::KeyCode& rKeyCode = pKEvt->GetKeyCode(); - sal_uInt16 nMod = rKeyCode.GetModifier(); - sal_uInt16 nCode = rKeyCode.GetCode(); - if( nCode == KEY_TAB && ( !nMod || KEY_SHIFT == nMod ) ) + bool bUp = KEY_SHIFT == nMod; + if( ShouldScroll( bUp ) ) { - bool bUp = KEY_SHIFT == nMod; - if( ShouldScroll( bUp ) ) + DoJump( bUp ); + m_xEntry->select_region(0, -1); + // Tab-travel doesn't really happen, so emulate it by setting a selection manually + bHandled = true; + } + } + else if( KEY_UP == nCode || KEY_DOWN == nCode ) + { + bool bUp = KEY_UP == nCode; + if( ShouldScroll( bUp ) ) + { + DoJump( bUp ); + bHandled = true; + } + else if( bUp ) + { + if( m_pPrev ) { - DoJump( bUp ); - SetSelection( Selection( 0, SELECTION_MAX ) ); - // Tab-travel doesn't really happen, so emulate it by setting a selection manually + m_pPrev->grab_focus(); bHandled = true; } } - else if( KEY_UP == nCode || KEY_DOWN == nCode ) + else if( m_pNext ) { - bool bUp = KEY_UP == nCode; - if( ShouldScroll( bUp ) ) - { - DoJump( bUp ); - bHandled = true; - } - else if( bUp ) - { - if( m_pPrev ) - { - m_pPrev->GrabFocus(); - bHandled = true; - } - } - else if( m_pNext ) - { - m_pNext->GrabFocus(); - bHandled = true; - } + m_pNext->grab_focus(); + bHandled = true; } } - if( !bHandled ) - bHandled = Edit::PreNotify( rNEvt ); return bHandled; } - void SuggestionEdit::init( ScrollBar* pScrollBar, SuggestionEdit* pPrev, SuggestionEdit* pNext) + void SuggestionEdit::init(weld::ScrolledWindow* pScrollBar, SuggestionEdit* pPrev, SuggestionEdit* pNext) { m_pScrollBar = pScrollBar; m_pPrev = pPrev; m_pNext = pNext; } - VCL_BUILDER_FACTORY_ARGS(SuggestionEdit, WB_LEFT|WB_VCENTER|WB_BORDER) - namespace { bool GetConversions( const Reference< XConversionDictionary >& _xDict, @@ -1450,47 +1429,46 @@ namespace svx } } - - IMPL_LINK_NOARG( HangulHanjaEditDictDialog, ScrollHdl, ScrollBar*, void ) + IMPL_LINK_NOARG( HangulHanjaEditDictDialog, ScrollHdl, weld::ScrolledWindow&, void ) { UpdateScrollbar(); } - IMPL_LINK_NOARG( HangulHanjaEditDictDialog, OriginalModifyHdl, Edit&, void ) + IMPL_LINK_NOARG( HangulHanjaEditDictDialog, OriginalModifyHdl, weld::ComboBox&, void ) { m_bModifiedOriginal = true; - m_aOriginal = comphelper::string::stripEnd( m_aOriginalLB->GetText(), ' ' ); + m_aOriginal = comphelper::string::stripEnd( m_xOriginalLB->get_active_text(), ' ' ); UpdateSuggestions(); UpdateButtonStates(); } - IMPL_LINK( HangulHanjaEditDictDialog, EditModifyHdl1, Edit&, rEdit, void ) + IMPL_LINK( HangulHanjaEditDictDialog, EditModifyHdl1, weld::Entry&, rEdit, void ) { EditModify( &rEdit, 0 ); } - IMPL_LINK( HangulHanjaEditDictDialog, EditModifyHdl2, Edit&, rEdit, void ) + IMPL_LINK( HangulHanjaEditDictDialog, EditModifyHdl2, weld::Entry&, rEdit, void ) { EditModify( &rEdit, 1 ); } - IMPL_LINK( HangulHanjaEditDictDialog, EditModifyHdl3, Edit&, rEdit, void ) + IMPL_LINK( HangulHanjaEditDictDialog, EditModifyHdl3, weld::Entry&, rEdit, void ) { EditModify( &rEdit, 2 ); } - IMPL_LINK( HangulHanjaEditDictDialog, EditModifyHdl4, Edit&, rEdit, void ) + IMPL_LINK( HangulHanjaEditDictDialog, EditModifyHdl4, weld::Entry&, rEdit, void ) { EditModify( &rEdit, 3 ); } - IMPL_LINK_NOARG( HangulHanjaEditDictDialog, BookLBSelectHdl, ListBox&, void ) + IMPL_LINK_NOARG( HangulHanjaEditDictDialog, BookLBSelectHdl, weld::ComboBox&, void ) { - InitEditDictDialog( m_aBookLB->GetSelectedEntryPos() ); + InitEditDictDialog( m_xBookLB->get_active() ); } - IMPL_LINK_NOARG( HangulHanjaEditDictDialog, NewPBPushHdl, Button*, void ) + IMPL_LINK_NOARG( HangulHanjaEditDictDialog, NewPBPushHdl, weld::Button&, void ) { DBG_ASSERT( m_pSuggestions, "-HangulHanjaEditDictDialog::NewPBPushHdl(): no suggestions... search in hell..." ); Reference< XConversionDictionary > xDict = m_rDictList[ m_nCurrentDict ]; @@ -1558,7 +1536,7 @@ namespace svx return bRemovedSomething; } - IMPL_LINK_NOARG( HangulHanjaEditDictDialog, DeletePBPushHdl, Button*, void ) + IMPL_LINK_NOARG( HangulHanjaEditDictDialog, DeletePBPushHdl, weld::Button&, void ) { if( DeleteEntryFromDictionary( m_rDictList[ m_nCurrentDict ] ) ) { @@ -1568,22 +1546,23 @@ namespace svx } } - void HangulHanjaEditDictDialog::InitEditDictDialog( sal_uInt32 _nSelDict ) + void HangulHanjaEditDictDialog::InitEditDictDialog( sal_uInt32 nSelDict ) { if( m_pSuggestions ) m_pSuggestions->Clear(); - if( m_nCurrentDict != _nSelDict ) + if( m_nCurrentDict != nSelDict ) { - m_nCurrentDict = _nSelDict; + m_nCurrentDict = nSelDict; m_aOriginal.clear(); m_bModifiedOriginal = true; } UpdateOriginalLB(); - m_aOriginalLB->SetText( !m_aOriginal.isEmpty() ? m_aOriginal : m_aEditHintText, Selection( 0, SELECTION_MAX ) ); - m_aOriginalLB->GrabFocus(); + m_xOriginalLB->set_entry_text( !m_aOriginal.isEmpty() ? m_aOriginal : m_aEditHintText); + m_xOriginalLB->select_entry_region(0, -1); + m_xOriginalLB->grab_focus(); UpdateSuggestions(); UpdateButtonStates(); @@ -1591,7 +1570,7 @@ namespace svx void HangulHanjaEditDictDialog::UpdateOriginalLB() { - m_aOriginalLB->Clear(); + m_xOriginalLB->clear(); Reference< XConversionDictionary > xDict = m_rDictList[ m_nCurrentDict ]; if( xDict.is() ) { @@ -1600,7 +1579,7 @@ namespace svx OUString* pEntry = aEntries.getArray(); while( n ) { - m_aOriginalLB->InsertEntry( *pEntry ); + m_xOriginalLB->append_text( *pEntry ); ++pEntry; --n; @@ -1618,8 +1597,8 @@ namespace svx bool bNew = bHaveValidOriginalString && m_pSuggestions && m_pSuggestions->GetCount() > 0; bNew = bNew && ( m_bModifiedSuggestions || m_bModifiedOriginal ); - m_aNewPB->Enable( bNew ); - m_aDeletePB->Enable(!m_bModifiedOriginal && bHaveValidOriginalString); + m_xNewPB->set_sensitive( bNew ); + m_xDeletePB->set_sensitive(!m_bModifiedOriginal && bHaveValidOriginalString); } void HangulHanjaEditDictDialog::UpdateSuggestions() @@ -1652,26 +1631,26 @@ namespace svx m_bModifiedSuggestions = false; } - m_aScrollSB->SetThumbPos( 0 ); + m_xScrollSB->vadjustment_set_value( 0 ); UpdateScrollbar(); // will force edits to be filled new } - void HangulHanjaEditDictDialog::SetEditText( Edit& _rEdit, sal_uInt16 _nEntryNum ) + void HangulHanjaEditDictDialog::SetEditText(SuggestionEdit& rEdit, sal_uInt16 nEntryNum) { OUString aStr; if( m_pSuggestions ) { - aStr = m_pSuggestions->Get( _nEntryNum ); + aStr = m_pSuggestions->Get(nEntryNum); } - _rEdit.SetText( aStr ); + rEdit.set_text(aStr); } - void HangulHanjaEditDictDialog::EditModify( Edit const * _pEdit, sal_uInt8 _nEntryOffset ) + void HangulHanjaEditDictDialog::EditModify(const weld::Entry* pEdit, sal_uInt8 _nEntryOffset) { m_bModifiedSuggestions = true; - OUString aTxt( _pEdit->GetText() ); + OUString aTxt( pEdit->get_text() ); sal_uInt16 nEntryNum = m_nTopPos + _nEntryOffset; if( aTxt.isEmpty() ) { @@ -1690,54 +1669,55 @@ namespace svx UpdateButtonStates(); } - HangulHanjaEditDictDialog::HangulHanjaEditDictDialog( vcl::Window* _pParent, HHDictList& _rDictList, sal_uInt32 _nSelDict ) - :ModalDialog ( _pParent, "HangulHanjaEditDictDialog", "cui/ui/hangulhanjaeditdictdialog.ui" ) - ,m_aEditHintText ( CuiResId(RID_SVXSTR_EDITHINT) ) - ,m_rDictList ( _rDictList ) - ,m_nCurrentDict ( 0xFFFFFFFF ) - ,m_nTopPos ( 0 ) - ,m_bModifiedSuggestions ( false ) - ,m_bModifiedOriginal ( false ) + HangulHanjaEditDictDialog::HangulHanjaEditDictDialog(weld::Window* pParent, HHDictList& _rDictList, sal_uInt32 nSelDict) + : GenericDialogController(pParent, "cui/ui/hangulhanjaeditdictdialog.ui", "HangulHanjaEditDictDialog") + , m_aEditHintText ( CuiResId(RID_SVXSTR_EDITHINT) ) + , m_rDictList ( _rDictList ) + , m_nCurrentDict ( 0xFFFFFFFF ) + , m_nTopPos ( 0 ) + , m_bModifiedSuggestions ( false ) + , m_bModifiedOriginal ( false ) + , m_xBookLB(m_xBuilder->weld_combo_box("book")) + , m_xOriginalLB(m_xBuilder->weld_combo_box("original")) + , m_xEdit1(new SuggestionEdit(m_xBuilder->weld_entry("edit1"), this)) + , m_xEdit2(new SuggestionEdit(m_xBuilder->weld_entry("edit2"), this)) + , m_xEdit3(new SuggestionEdit(m_xBuilder->weld_entry("edit3"), this)) + , m_xEdit4(new SuggestionEdit(m_xBuilder->weld_entry("edit4"), this)) + , m_xContents(m_xBuilder->weld_widget("box")) + , m_xScrollSB(m_xBuilder->weld_scrolled_window("scrollbar")) + , m_xNewPB(m_xBuilder->weld_button("new")) + , m_xDeletePB(m_xBuilder->weld_button("delete")) { - get( m_aBookLB, "book" ); - get( m_aOriginalLB, "original" ); - get( m_aNewPB, "new" ); - get( m_aDeletePB, "delete" ); - get( m_aScrollSB, "scrollbar" ); - get( m_aEdit1, "edit1" ); - get( m_aEdit2, "edit2" ); - get( m_aEdit3, "edit3" ); - get( m_aEdit4, "edit4" ); + m_xScrollSB->set_user_managed_scrolling(); - m_aEdit1->init( m_aScrollSB, nullptr, m_aEdit2 ); - m_aEdit2->init( m_aScrollSB, m_aEdit1, m_aEdit3 ); - m_aEdit3->init( m_aScrollSB, m_aEdit2, m_aEdit4 ); - m_aEdit4->init( m_aScrollSB, m_aEdit3, nullptr ); + Size aSize(m_xContents->get_preferred_size()); + m_xScrollSB->set_size_request(-1, aSize.Height()); - m_aOriginalLB->SetModifyHdl( LINK( this, HangulHanjaEditDictDialog, OriginalModifyHdl ) ); + m_xEdit1->init( m_xScrollSB.get(), nullptr, m_xEdit2.get() ); + m_xEdit2->init( m_xScrollSB.get(), m_xEdit1.get(), m_xEdit3.get() ); + m_xEdit3->init( m_xScrollSB.get(), m_xEdit2.get(), m_xEdit4.get() ); + m_xEdit4->init( m_xScrollSB.get(), m_xEdit3.get(), nullptr ); - m_aNewPB->SetClickHdl( LINK( this, HangulHanjaEditDictDialog, NewPBPushHdl ) ); - m_aNewPB->Enable( false ); + m_xOriginalLB->connect_changed( LINK( this, HangulHanjaEditDictDialog, OriginalModifyHdl ) ); - m_aDeletePB->SetClickHdl( LINK( this, HangulHanjaEditDictDialog, DeletePBPushHdl ) ); - m_aDeletePB->Enable( false ); + m_xNewPB->connect_clicked( LINK( this, HangulHanjaEditDictDialog, NewPBPushHdl ) ); + m_xNewPB->set_sensitive( false ); + + m_xDeletePB->connect_clicked( LINK( this, HangulHanjaEditDictDialog, DeletePBPushHdl ) ); + m_xDeletePB->set_sensitive( false ); static_assert(MAXNUM_SUGGESTIONS >= 5, "number of suggestions should not under-run the value of 5"); - Link aScrLk( LINK( this, HangulHanjaEditDictDialog, ScrollHdl ) ); - m_aScrollSB->SetScrollHdl( aScrLk ); - m_aScrollSB->SetEndScrollHdl( aScrLk ); - m_aScrollSB->SetRangeMin( 0 ); - m_aScrollSB->SetRangeMax( MAXNUM_SUGGESTIONS ); - m_aScrollSB->SetPageSize( 4 ); // because we have 4 edits / page - m_aScrollSB->SetVisibleSize( 4 ); + // 4 here, because we have 4 edits / page + m_xScrollSB->vadjustment_configure(0, 0, MAXNUM_SUGGESTIONS, 1, 4, 4); + m_xScrollSB->connect_vadjustment_changed(LINK(this, HangulHanjaEditDictDialog, ScrollHdl)); - m_aEdit1->SetModifyHdl( LINK( this, HangulHanjaEditDictDialog, EditModifyHdl1 ) ); - m_aEdit2->SetModifyHdl( LINK( this, HangulHanjaEditDictDialog, EditModifyHdl2 ) ); - m_aEdit3->SetModifyHdl( LINK( this, HangulHanjaEditDictDialog, EditModifyHdl3 ) ); - m_aEdit4->SetModifyHdl( LINK( this, HangulHanjaEditDictDialog, EditModifyHdl4 ) ); + m_xEdit1->connect_changed( LINK( this, HangulHanjaEditDictDialog, EditModifyHdl1 ) ); + m_xEdit2->connect_changed( LINK( this, HangulHanjaEditDictDialog, EditModifyHdl2 ) ); + m_xEdit3->connect_changed( LINK( this, HangulHanjaEditDictDialog, EditModifyHdl3 ) ); + m_xEdit4->connect_changed( LINK( this, HangulHanjaEditDictDialog, EditModifyHdl4 ) ); - m_aBookLB->SetSelectHdl( LINK( this, HangulHanjaEditDictDialog, BookLBSelectHdl ) ); + m_xBookLB->connect_changed( LINK( this, HangulHanjaEditDictDialog, BookLBSelectHdl ) ); sal_uInt32 nDictCnt = m_rDictList.size(); for( sal_uInt32 n = 0 ; n < nDictCnt ; ++n ) { @@ -1745,46 +1725,27 @@ namespace svx OUString aName; if( xDic.is() ) aName = xDic->getName(); - m_aBookLB->InsertEntry( aName ); + m_xBookLB->append_text( aName ); } - m_aBookLB->SelectEntryPos( sal_uInt16( _nSelDict ) ); + m_xBookLB->set_active(nSelDict); - InitEditDictDialog( _nSelDict ); + InitEditDictDialog(nSelDict); } HangulHanjaEditDictDialog::~HangulHanjaEditDictDialog() { - disposeOnce(); - } - - void HangulHanjaEditDictDialog::dispose() - { - m_pSuggestions.reset(); - m_aBookLB.clear(); - m_aOriginalLB.clear(); - m_aEdit1.clear(); - m_aEdit2.clear(); - m_aEdit3.clear(); - m_aEdit4.clear(); - m_aScrollSB.clear(); - m_aNewPB.clear(); - m_aDeletePB.clear(); - ModalDialog::dispose(); } void HangulHanjaEditDictDialog::UpdateScrollbar() { - sal_uInt16 nPos = sal_uInt16( m_aScrollSB->GetThumbPos() ); + sal_uInt16 nPos = m_xScrollSB->vadjustment_get_value(); m_nTopPos = nPos; - SetEditText( *m_aEdit1, nPos++ ); - SetEditText( *m_aEdit2, nPos++ ); - SetEditText( *m_aEdit3, nPos++ ); - SetEditText( *m_aEdit4, nPos ); + SetEditText( *m_xEdit1, nPos++ ); + SetEditText( *m_xEdit2, nPos++ ); + SetEditText( *m_xEdit3, nPos++ ); + SetEditText( *m_xEdit4, nPos ); } - - } - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/hangulhanjadlg.hxx b/cui/source/inc/hangulhanjadlg.hxx index 92fceadfc5ad..390e8663433e 100644 --- a/cui/source/inc/hangulhanjadlg.hxx +++ b/cui/source/inc/hangulhanjadlg.hxx @@ -244,26 +244,31 @@ namespace svx }; class SuggestionList; + class HangulHanjaEditDictDialog; - class SuggestionEdit : public Edit + class SuggestionEdit { private: - VclPtr m_pPrev; - VclPtr m_pNext; - VclPtr m_pScrollBar; + HangulHanjaEditDictDialog* m_pParent; + SuggestionEdit* m_pPrev; + SuggestionEdit* m_pNext; + weld::ScrolledWindow* m_pScrollBar; + std::unique_ptr m_xEntry; bool ShouldScroll( bool _bUp ) const; void DoJump( bool _bUp ); public: - SuggestionEdit( vcl::Window* pParent, WinBits nBits ); - virtual ~SuggestionEdit() override; - virtual void dispose() override; - virtual bool PreNotify( NotifyEvent& rNEvt ) override; - void init( ScrollBar* pScrollBar, SuggestionEdit* pPrev, SuggestionEdit* pNext); + SuggestionEdit(std::unique_ptr xEntry, HangulHanjaEditDictDialog* pParent); + DECL_LINK(KeyInputHdl, const KeyEvent&, bool); + void init(weld::ScrolledWindow* pScrollBar, SuggestionEdit* pPrev, SuggestionEdit* pNext); + + void grab_focus() { m_xEntry->grab_focus(); } + OUString get_text() const { return m_xEntry->get_text(); } + void set_text(const OUString& rText) { m_xEntry->set_text(rText); } + void connect_changed(const Link& rLink) { m_xEntry->connect_changed(rLink); } }; - - class HangulHanjaEditDictDialog : public ModalDialog + class HangulHanjaEditDictDialog : public weld::GenericDialogController { private: const OUString m_aEditHintText; @@ -273,53 +278,50 @@ namespace svx OUString m_aOriginal; std::unique_ptr m_pSuggestions; - VclPtr m_aBookLB; - VclPtr m_aOriginalLB; - VclPtr m_aEdit1; - VclPtr m_aEdit2; - VclPtr m_aEdit3; - VclPtr m_aEdit4; - VclPtr m_aScrollSB; - VclPtr m_aNewPB; - VclPtr m_aDeletePB; - sal_uInt16 m_nTopPos; bool m_bModifiedSuggestions; bool m_bModifiedOriginal; - DECL_LINK( OriginalModifyHdl, Edit&, void ); - DECL_LINK( ScrollHdl, ScrollBar*, void ); - DECL_LINK( EditModifyHdl1, Edit&, void ); - DECL_LINK( EditModifyHdl2, Edit&, void ); - DECL_LINK( EditModifyHdl3, Edit&, void ); - DECL_LINK( EditModifyHdl4, Edit&, void ); + std::unique_ptr m_xBookLB; + std::unique_ptr m_xOriginalLB; + std::unique_ptr m_xEdit1; + std::unique_ptr m_xEdit2; + std::unique_ptr m_xEdit3; + std::unique_ptr m_xEdit4; + std::unique_ptr m_xContents; + std::unique_ptr m_xScrollSB; + std::unique_ptr m_xNewPB; + std::unique_ptr m_xDeletePB; - DECL_LINK( BookLBSelectHdl, ListBox&, void ); - DECL_LINK( NewPBPushHdl, Button*, void ); - DECL_LINK( DeletePBPushHdl, Button*, void ); + DECL_LINK( OriginalModifyHdl, weld::ComboBox&, void ); + DECL_LINK( ScrollHdl, weld::ScrolledWindow&, void ); + DECL_LINK( EditModifyHdl1, weld::Entry&, void ); + DECL_LINK( EditModifyHdl2, weld::Entry&, void ); + DECL_LINK( EditModifyHdl3, weld::Entry&, void ); + DECL_LINK( EditModifyHdl4, weld::Entry&, void ); - void InitEditDictDialog( sal_uInt32 _nSelDict ); + DECL_LINK( BookLBSelectHdl, weld::ComboBox&, void ); + DECL_LINK( NewPBPushHdl, weld::Button&, void ); + DECL_LINK( DeletePBPushHdl, weld::Button&, void ); + + void InitEditDictDialog(sal_uInt32 nSelDict); void UpdateOriginalLB(); void UpdateSuggestions(); void UpdateButtonStates(); - void SetEditText( Edit& _rEdit, sal_uInt16 _nEntryNum ); - void EditModify( Edit const * _pEdit, sal_uInt8 _nEntryOffset ); + void SetEditText( SuggestionEdit& rEdit, sal_uInt16 nEntryNum ); + void EditModify( const weld::Entry* pEdit, sal_uInt8 nEntryOffset ); bool DeleteEntryFromDictionary( const css::uno::Reference< css::linguistic2::XConversionDictionary >& xDict ); public: - HangulHanjaEditDictDialog( vcl::Window* _pParent, HHDictList& _rDictList, sal_uInt32 _nSelDict ); - virtual ~HangulHanjaEditDictDialog() override; - virtual void dispose() override; + HangulHanjaEditDictDialog(weld::Window* pParent, HHDictList& rDictList, sal_uInt32 nSelDict); + virtual ~HangulHanjaEditDictDialog() override; void UpdateScrollbar(); }; - - } - #endif // SVX_HANGUL_HANJA_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/uiconfig/ui/hangulhanjaeditdictdialog.ui b/cui/uiconfig/ui/hangulhanjaeditdictdialog.ui index dda3a5219479..9d076b3e3943 100644 --- a/cui/uiconfig/ui/hangulhanjaeditdictdialog.ui +++ b/cui/uiconfig/ui/hangulhanjaeditdictdialog.ui @@ -1,13 +1,18 @@ - + - False 6 Edit Custom Dictionary + True + 0 + 0 dialog + + + False @@ -85,7 +90,7 @@ False 12 - + True False @@ -103,10 +108,10 @@ True False - 0 Book True book + 0 @@ -138,7 +143,7 @@ 6 12 - + True False start @@ -147,7 +152,6 @@ True - 0.5 none False @@ -209,9 +213,9 @@ True False - 0 Original True + 0 @@ -228,6 +232,7 @@ True False + True 0 none @@ -237,82 +242,77 @@ 6 12 - + True - False - 6 + True + start + never + always + in - + True False - vertical - + True - True + False True - 40 + 3 + vertical + 6 + + + True + True + True + 40 + + + True + True + 0 + + + + + True + True + True + + + True + True + 1 + + + + + True + True + True + + + True + True + 2 + + + + + True + True + True + + + True + True + 3 + + - - True - True - 0 - - - - - True - True - True - - - True - True - 1 - - - - - True - True - True - - - True - True - 2 - - - - - True - True - True - - - True - True - 3 - - - True - True - 0 - - - - - True - False - vertical - - - False - True - 1 - @@ -322,10 +322,10 @@ True False - 0 Suggestions True end + 0 @@ -348,6 +348,7 @@ + close help diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in index 1d98ea2862bf..784b173d5e33 100644 --- a/extras/source/glade/libreoffice-catalog.xml.in +++ b/extras/source/glade/libreoffice-catalog.xml.in @@ -521,9 +521,6 @@ generic-name="DataTreeListBox" parent="GtkTreeView" icon-name="widget-gtk-treeview"/> - diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 868a444dcf87..4fb71ca77bf1 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -217,6 +217,8 @@ public: virtual int vadjustment_get_upper() const = 0; virtual void vadjustment_set_upper(int upper) = 0; virtual int vadjustment_get_page_size() const = 0; + virtual int vadjustment_get_lower() const = 0; + virtual void vadjustment_set_lower(int upper) = 0; virtual void set_vpolicy(VclPolicyType eVPolicy) = 0; virtual VclPolicyType get_vpolicy() const = 0; void connect_vadjustment_changed(const Link& rLink) diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py index c95a0a48d51a..be38032d6d90 100755 --- a/solenv/bin/native-code.py +++ b/solenv/bin/native-code.py @@ -502,7 +502,6 @@ custom_widgets = [ 'StatusBar', 'StructListBox', 'SuggestionDisplay', - 'SuggestionEdit', 'SvSimpleTableContainer', 'SvTreeListBox', 'SvtFileView', diff --git a/solenv/sanitizers/ui/cui.suppr b/solenv/sanitizers/ui/cui.suppr index 2e83d8eed13e..c472d257df2a 100644 --- a/solenv/sanitizers/ui/cui.suppr +++ b/solenv/sanitizers/ui/cui.suppr @@ -237,6 +237,10 @@ cui/uiconfig/ui/hangulhanjaconversiondialog.ui://GtkLabel[@id='label4'] orphan-l cui/uiconfig/ui/hangulhanjaconversiondialog.ui://cuilo-SuggestionDisplay[@id='suggestions:border'] no-labelled-by cui/uiconfig/ui/hangulhanjaconversiondialog.ui://GtkLabel[@id='label5'] orphan-label cui/uiconfig/ui/hangulhanjaconversiondialog.ui://GtkLabel[@id='label6'] orphan-label +cui/uiconfig/ui/hangulhanjaeditdictdialog.ui://GtkEntry[@id='edit1'] no-labelled-by +cui/uiconfig/ui/hangulhanjaeditdictdialog.ui://GtkEntry[@id='edit2'] no-labelled-by +cui/uiconfig/ui/hangulhanjaeditdictdialog.ui://GtkEntry[@id='edit3'] no-labelled-by +cui/uiconfig/ui/hangulhanjaeditdictdialog.ui://GtkEntry[@id='edit4'] no-labelled-by cui/uiconfig/ui/hatchpage.ui://GtkLabel[@id='angleft'] orphan-label cui/uiconfig/ui/hatchpage.ui://GtkScale[@id='angleslider'] no-labelled-by cui/uiconfig/ui/hatchpage.ui://GtkSpinButton[@id='anglemtr'] no-labelled-by diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 7bbda76e9dfb..55a6e36077c3 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -1180,6 +1180,18 @@ public: rVertScrollBar.SetRangeMax(upper); } + virtual int vadjustment_get_lower() const override + { + ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar(); + return rVertScrollBar.GetRangeMin(); + } + + virtual void vadjustment_set_lower(int lower) override + { + ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar(); + rVertScrollBar.SetRangeMin(lower); + } + virtual int vadjustment_get_page_size() const override { ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar(); diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 3afb2e260b28..baf0d649cc9a 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -3051,6 +3051,18 @@ public: enable_notify_events(); } + virtual int vadjustment_get_lower() const override + { + return gtk_adjustment_get_lower(m_pVAdjustment); + } + + virtual void vadjustment_set_lower(int lower) override + { + disable_notify_events(); + gtk_adjustment_set_lower(m_pVAdjustment, lower); + enable_notify_events(); + } + virtual int vadjustment_get_page_size() const override { return gtk_adjustment_get_page_size(m_pVAdjustment);