diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-03-01 11:53:13 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-03-01 16:43:38 +0100 |
commit | c2b20809b5d446d8f9d1d35723d67d24f64144dd (patch) | |
tree | f0ffbeadc710a56777cb5f08ca10b43ee78838b6 /cui | |
parent | 62ddc7ca3ba200fa9b01919d901e77c2a69e3c43 (diff) |
weld CuiAboutConfigValueDialog
Change-Id: I91f5fb2bcd7eb365214278d9683d71c78ad45617
Reviewed-on: https://gerrit.libreoffice.org/68547
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cui')
-rw-r--r-- | cui/source/options/optaboutconfig.cxx | 46 | ||||
-rw-r--r-- | cui/source/options/optaboutconfig.hxx | 25 | ||||
-rw-r--r-- | cui/uiconfig/ui/aboutconfigvaluedialog.ui | 18 |
3 files changed, 36 insertions, 53 deletions
diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx index 2cde3cdc3f6b..5947c50b7047 100644 --- a/cui/source/options/optaboutconfig.cxx +++ b/cui/source/options/optaboutconfig.cxx @@ -77,13 +77,11 @@ struct UserData {} }; -VCL_BUILDER_FACTORY_ARGS(CuiCustomMultilineEdit,WB_LEFT|WB_VCENTER|WB_BORDER|WB_3DLOOK) - -void CuiCustomMultilineEdit::KeyInput( const KeyEvent& rKeyEvent ) +IMPL_LINK(CuiAboutConfigValueDialog, KeyInputHdl, const KeyEvent&, rKeyEvent, bool) { bool bValid = false; bool bNonSpace = rKeyEvent.GetKeyCode().GetCode() != KEY_SPACE; - if( bNumericOnly && bNonSpace ) + if (m_bNumericOnly && bNonSpace ) { const vcl::KeyCode& rKeyCode = rKeyEvent.GetKeyCode(); sal_uInt16 nGroup = rKeyCode.GetGroup(); @@ -132,13 +130,9 @@ void CuiCustomMultilineEdit::KeyInput( const KeyEvent& rKeyEvent ) } else bValid = true; - if( bValid ) - Edit::KeyInput( rKeyEvent ); -} -Size CuiCustomMultilineEdit::GetOptimalSize() const -{ - return LogicToPixel(Size(150, GetTextHeight()), MapMode(MapUnit::MapAppFont)); + //if value return true to claim that it has been handled + return !bValid; } CuiAboutConfigTabPage::CuiAboutConfigTabPage( vcl::Window* pParent/*, const SfxItemSet& rItemSet*/ ) : @@ -540,27 +534,21 @@ std::vector< OUString > CuiAboutConfigTabPage::commaStringToSequence( const OUSt return tempVector; } -CuiAboutConfigValueDialog::CuiAboutConfigValueDialog( vcl::Window* pWindow, - const OUString& rValue, - int limit ) : - ModalDialog( pWindow, "AboutConfigValueDialog", "cui/ui/aboutconfigvaluedialog.ui" ), - m_pEDValue( get<CuiCustomMultilineEdit>("valuebox") ) +CuiAboutConfigValueDialog::CuiAboutConfigValueDialog(weld::Window* pWindow, + const OUString& rValue, + int limit) + : GenericDialogController(pWindow, "cui/ui/aboutconfigvaluedialog.ui", "AboutConfigValueDialog") + , m_bNumericOnly(limit != 0) + , m_xEDValue(m_xBuilder->weld_entry("valuebox")) { - m_pEDValue->bNumericOnly = ( limit !=0 ); - m_pEDValue->SetMaxTextLen( limit == 0 ? EDIT_NOLIMIT : limit); - m_pEDValue->SetText( rValue ); - + if (limit) + m_xEDValue->set_max_length(limit); + m_xEDValue->set_text(rValue); + m_xEDValue->connect_key_press(LINK(this, CuiAboutConfigValueDialog, KeyInputHdl)); } CuiAboutConfigValueDialog::~CuiAboutConfigValueDialog() { - disposeOnce(); -} - -void CuiAboutConfigValueDialog::dispose() -{ - m_pEDValue.clear(); - ModalDialog::dispose(); } IMPL_LINK_NOARG( CuiAboutConfigTabPage, ResetBtnHdl_Impl, Button*, void ) @@ -636,11 +624,11 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl, Button*, void ) else if( sPropertyType == "hyper" ) limit = HYPER_LEN_LIMIT; - VclPtrInstance<CuiAboutConfigValueDialog> pValueDialog(nullptr, sDialogValue, limit); + CuiAboutConfigValueDialog aValueDialog(GetFrameWeld(), sDialogValue, limit); - if( pValueDialog->Execute() == RET_OK ) + if (aValueDialog.run() == RET_OK ) { - sNewValue = pValueDialog->getValue(); + sNewValue = aValueDialog.getValue(); bSaveChanges = true; if ( sPropertyType == "short") { diff --git a/cui/source/options/optaboutconfig.hxx b/cui/source/options/optaboutconfig.hxx index 7d10212ee11b..eed7400de050 100644 --- a/cui/source/options/optaboutconfig.hxx +++ b/cui/source/options/optaboutconfig.hxx @@ -26,19 +26,6 @@ class CuiAboutConfigValueDialog; struct Prop_Impl; struct UserData; -class CuiCustomMultilineEdit : public Edit -{ -public: - bool bNumericOnly; - CuiCustomMultilineEdit( vcl::Window* pParent, WinBits nStyle ) - : Edit( pParent, nStyle ) - , bNumericOnly(false) - {} - - virtual void KeyInput( const KeyEvent& rKeyEvent ) override; - virtual Size GetOptimalSize() const override; -}; - class CuiAboutConfigTabPage : public ModalDialog { private: @@ -80,19 +67,21 @@ public: void FillItemSet(); }; -class CuiAboutConfigValueDialog : public ModalDialog +class CuiAboutConfigValueDialog : public weld::GenericDialogController { private: - VclPtr<CuiCustomMultilineEdit> m_pEDValue; + bool m_bNumericOnly; + std::unique_ptr<weld::Entry> m_xEDValue; + + DECL_LINK(KeyInputHdl, const KeyEvent&, bool); public: - CuiAboutConfigValueDialog( vcl::Window* pWindow, const OUString& rValue , int limit); + CuiAboutConfigValueDialog(weld::Window* pWindow, const OUString& rValue , int limit); virtual ~CuiAboutConfigValueDialog() override; - virtual void dispose() override; OUString getValue() { - return m_pEDValue->GetText(); + return m_xEDValue->get_text(); } }; diff --git a/cui/uiconfig/ui/aboutconfigvaluedialog.ui b/cui/uiconfig/ui/aboutconfigvaluedialog.ui index 6fb99a2f2b7e..cb96b0effa1d 100644 --- a/cui/uiconfig/ui/aboutconfigvaluedialog.ui +++ b/cui/uiconfig/ui/aboutconfigvaluedialog.ui @@ -1,14 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.22.1 --> <interface domain="cui"> <requires lib="gtk+" version="3.18"/> - <requires lib="LibreOffice" version="1.0"/> <object class="GtkDialog" id="AboutConfigValueDialog"> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="aboutconfigvaluedialog|AboutConfigValueDialog">Name</property> - <property name="resizable">False</property> + <property name="modal">True</property> + <property name="default_width">0</property> + <property name="default_height">0</property> <property name="type_hint">dialog</property> + <child> + <placeholder/> + </child> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> <property name="can_focus">False</property> @@ -83,8 +87,10 @@ <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="aboutconfigvaluedialog|label1">Value:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">valuebox</property> + <property name="xalign">0</property> </object> <packing> <property name="expand">False</property> @@ -93,11 +99,11 @@ </packing> </child> <child> - <object class="cuilo-CuiCustomMultilineEdit" id="valuebox"> + <object class="GtkEntry" id="valuebox"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hexpand">True</property> - <property name="wrap_mode">char</property> + <property name="width_chars">50</property> </object> <packing> <property name="expand">False</property> |