diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-09-06 17:32:45 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-09-07 18:17:44 +0200 |
commit | 0593afe5606b6388a705f3e8b19e427fcbf7555b (patch) | |
tree | a3e95f1bedb3fa25a6809da1e5f19203af43d5b8 | |
parent | da8617d69a7b27a3eeb3f26e207ddf1b4de3eeb3 (diff) |
just edit Entry to readonly, instead of a shadow ro widget
Change-Id: I28d6d3cceec5224a6b38bd44ec380974cd3bae12
Reviewed-on: https://gerrit.libreoffice.org/60104
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | cui/uiconfig/ui/patterntabpage.ui | 3 | ||||
-rw-r--r-- | cui/uiconfig/ui/transparencytabpage.ui | 20 | ||||
-rw-r--r-- | include/sfx2/mgetempl.hxx | 3 | ||||
-rw-r--r-- | include/vcl/weld.hxx | 2 | ||||
-rw-r--r-- | sfx2/source/dialog/mgetempl.cxx | 39 | ||||
-rw-r--r-- | sfx2/uiconfig/ui/managestylepage.ui | 67 | ||||
-rw-r--r-- | sw/qa/uitest/writer_tests2/horizontalLine.py | 4 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/footnoteareapage.ui | 4 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/textgridpage.ui | 1 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 15 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 10 |
11 files changed, 79 insertions, 89 deletions
diff --git a/cui/uiconfig/ui/patterntabpage.ui b/cui/uiconfig/ui/patterntabpage.ui index 1d882b507029..836e9a5ee05f 100644 --- a/cui/uiconfig/ui/patterntabpage.ui +++ b/cui/uiconfig/ui/patterntabpage.ui @@ -178,9 +178,10 @@ <child> <object class="GtkDrawingArea" id="CTL_PIXEL"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="halign">start</property> <property name="valign">start</property> + <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> <child internal-child="accessible"> <object class="AtkObject" id="CTL_PIXEL-atkobject"> <property name="AtkObject::accessible-name" translatable="yes" context="patterntabpage|CTL_PIXEL-atkobject">Pattern Editor</property> diff --git a/cui/uiconfig/ui/transparencytabpage.ui b/cui/uiconfig/ui/transparencytabpage.ui index f2c6ff5b77a3..4961059ec762 100644 --- a/cui/uiconfig/ui/transparencytabpage.ui +++ b/cui/uiconfig/ui/transparencytabpage.ui @@ -74,7 +74,7 @@ <object class="GtkRadioButton" id="RBT_TRANS_OFF"> <property name="label" translatable="yes" context="transparencytabpage|RBT_TRANS_OFF">_No transparency</property> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="xalign">0</property> @@ -91,7 +91,7 @@ <object class="GtkRadioButton" id="RBT_TRANS_LINEAR"> <property name="label" translatable="yes" context="transparencytabpage|RBT_TRANS_LINEAR">_Transparency:</property> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="xalign">0</property> @@ -111,7 +111,7 @@ <object class="GtkRadioButton" id="RBT_TRANS_GRADIENT"> <property name="label" translatable="yes" context="transparencytabpage|RBT_TRANS_GRADIENT">_Gradient</property> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="xalign">0</property> @@ -126,7 +126,7 @@ <child> <object class="GtkSpinButton" id="MTR_TRANSPARENT"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="activates_default">True</property> <property name="adjustment">adjustmentPercent</property> <accessibility> @@ -160,7 +160,7 @@ <child> <object class="GtkSpinButton" id="MTR_TRGR_END_VALUE"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="activates_default">True</property> <property name="adjustment">adjustmentPercent5</property> </object> @@ -172,7 +172,7 @@ <child> <object class="GtkSpinButton" id="MTR_TRGR_START_VALUE"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="activates_default">True</property> <property name="adjustment">adjustmentPercent4</property> </object> @@ -184,7 +184,7 @@ <child> <object class="GtkSpinButton" id="MTR_TRGR_BORDER"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="activates_default">True</property> <property name="adjustment">adjustmentPercent3</property> </object> @@ -196,7 +196,7 @@ <child> <object class="GtkSpinButton" id="MTR_TRGR_ANGLE"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="activates_default">True</property> <property name="adjustment">adjustmentDegrees</property> </object> @@ -208,7 +208,7 @@ <child> <object class="GtkSpinButton" id="MTR_TRGR_CENTER_Y"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="activates_default">True</property> <property name="adjustment">adjustmentPercent2</property> </object> @@ -220,7 +220,7 @@ <child> <object class="GtkSpinButton" id="MTR_TRGR_CENTER_X"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="activates_default">True</property> <property name="adjustment">adjustmentPercent1</property> </object> diff --git a/include/sfx2/mgetempl.hxx b/include/sfx2/mgetempl.hxx index 238d662c33f5..d63b1a05ed0a 100644 --- a/include/sfx2/mgetempl.hxx +++ b/include/sfx2/mgetempl.hxx @@ -49,8 +49,7 @@ class SfxManageStyleSheetPage final : public SfxTabPage OUString aParent; SfxStyleSearchBits nFlags; - std::unique_ptr<weld::TextView> m_xNameRo; - std::unique_ptr<weld::Entry> m_xNameRw; + std::unique_ptr<weld::Entry> m_xName; std::unique_ptr<weld::CheckButton> m_xAutoCB; std::unique_ptr<weld::Label> m_xFollowFt; std::unique_ptr<weld::ComboBoxText> m_xFollowLb; diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 89a4bed797de..6ea83851ef85 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -44,6 +44,7 @@ public: virtual void set_visible(bool visible) = 0; virtual bool get_visible() const = 0; //if this widget visibility is true virtual bool is_visible() const = 0; //if this widget visibility and all parents is true + virtual void set_can_focus(bool bCanFocus) = 0; virtual void grab_focus() = 0; virtual bool has_focus() const = 0; virtual void set_has_default(bool has_default) = 0; @@ -492,6 +493,7 @@ public: virtual bool get_selection_bounds(int& rStartPos, int& rEndPos) = 0; virtual void set_position(int nCursorPos) = 0; virtual void set_editable(bool bEditable) = 0; + virtual bool get_editable() const = 0; virtual vcl::Font get_font() = 0; virtual void set_font(const vcl::Font& rFont) = 0; diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx index 86cbaef7b9f5..b878329bcf63 100644 --- a/sfx2/source/dialog/mgetempl.cxx +++ b/sfx2/source/dialog/mgetempl.cxx @@ -54,8 +54,7 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(TabPageParent pParent, const Sf , aFollow(pStyle->GetFollow()) , aParent(pStyle->GetParent()) , nFlags(pStyle->GetMask()) - , m_xNameRo(m_xBuilder->weld_text_view("namero")) - , m_xNameRw(m_xBuilder->weld_entry("namerw")) + , m_xName(m_xBuilder->weld_entry("name")) , m_xAutoCB(m_xBuilder->weld_check_button("autoupdate")) , m_xFollowFt(m_xBuilder->weld_label("nextstyleft")) , m_xFollowLb(m_xBuilder->weld_combo_box_text("nextstyle")) @@ -68,7 +67,6 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(TabPageParent pParent, const Sf , m_xDescFt(m_xBuilder->weld_label("desc")) , m_xNameFt(m_xBuilder->weld_label("nameft")) { - m_xNameRo->set_size_request(m_xNameRw->get_preferred_size().Width(), -1); m_xFollowLb->make_sorted(); const int nMaxWidth(m_xFollowLb->get_approximate_digit_width() * 50); m_xFollowLb->set_size_request(nMaxWidth , -1); @@ -117,16 +115,14 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(TabPageParent pParent, const Sf aFollow = pStyle->GetFollow(); aParent = pStyle->GetParent(); } - m_xNameRw->set_text(pStyle->GetName()); + m_xName->set_text(pStyle->GetName()); // Set the field read-only if it is NOT an user-defined style // but allow selecting and copying - if (!pStyle->IsUserDefined()) + if (pStyle->IsUserDefined()) { - m_xNameRo->set_text(m_xNameRw->get_text()); - m_xNameRw->hide(); - m_xNameRo->show(); - m_xNameFt->set_mnemonic_widget(m_xNameRo.get()); + m_xName->set_can_focus(true); + m_xName->set_editable(true); } if ( pStyle->HasFollowSupport() && pPool ) @@ -227,9 +223,9 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(TabPageParent pParent, const Sf if (m_xFollowLb->get_sensitive() || m_xBaseLb->get_sensitive()) { - m_xNameRw->connect_focus_in( + m_xName->connect_focus_in( LINK( this, SfxManageStyleSheetPage, GetFocusHdl ) ); - m_xNameRw->connect_focus_out( + m_xName->connect_focus_out( LINK( this, SfxManageStyleSheetPage, LoseFocusHdl ) ); } // It is a style with auto update? (SW only) @@ -319,7 +315,7 @@ void SfxManageStyleSheetPage::SetDescriptionText_Impl() IMPL_LINK_NOARG(SfxManageStyleSheetPage, EditStyleSelectHdl_Impl, weld::ComboBoxText&, void) { OUString aTemplName(m_xFollowLb->get_active_text()); - OUString aEditTemplName(m_xNameRo->get_text()); + OUString aEditTemplName(m_xName->get_text()); if (!( aTemplName == aEditTemplName)) m_xEditStyleBtn->set_sensitive(true); else @@ -468,8 +464,9 @@ void SfxManageStyleSheetPage::Reset( const SfxItemSet* /*rAttrSet*/ ) if ( sCmp != aName ) pStyle->SetName( aName ); - m_xNameRw->set_text( aName ); - m_xNameRw->select_region(0, -1); + m_xName->set_text( aName ); + if (m_xName->get_editable()) + m_xName->select_region(0, -1); if ( m_xFollowLb->get_sensitive() ) { @@ -547,7 +544,7 @@ void SfxManageStyleSheetPage::ActivatePage( const SfxItemSet& rSet) rSet.GetItemState( SID_ATTR_AUTO_STYLE_UPDATE, false, &pPoolItem ) ) m_xAutoCB->set_active(static_cast<const SfxBoolItem*>(pPoolItem)->GetValue()); m_xAutoCB->save_state(); - m_xNameRw->save_value(); + m_xName->save_value(); } DeactivateRC SfxManageStyleSheetPage::DeactivatePage( SfxItemSet* pItemSet ) @@ -569,20 +566,20 @@ DeactivateRC SfxManageStyleSheetPage::DeactivatePage( SfxItemSet* pItemSet ) { DeactivateRC nRet = DeactivateRC::LeavePage; - if (m_xNameRw->get_value_changed_from_saved()) + if (m_xName->get_value_changed_from_saved()) { // By pressing <Enter> LoseFocus() is not triggered through StarView - if (m_xNameRw->has_focus()) - LoseFocusHdl( *m_xNameRw ); + if (m_xName->has_focus()) + LoseFocusHdl( *m_xName ); - if (!pStyle->SetName(comphelper::string::stripStart(m_xNameRw->get_text(), ' '))) + if (!pStyle->SetName(comphelper::string::stripStart(m_xName->get_text(), ' '))) { std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(GetFrameWeld(), VclMessageType::Info, VclButtonsType::Ok, SfxResId(STR_TABPAGE_INVALIDNAME))); xBox->run(); - m_xNameRw->grab_focus(); - m_xNameRw->select_region(0, -1); + m_xName->grab_focus(); + m_xName->select_region(0, -1); return DeactivateRC::KeepPage; } bModified = true; diff --git a/sfx2/uiconfig/ui/managestylepage.ui b/sfx2/uiconfig/ui/managestylepage.ui index 30dbb6ddf707..54841c9c0c07 100644 --- a/sfx2/uiconfig/ui/managestylepage.ui +++ b/sfx2/uiconfig/ui/managestylepage.ui @@ -36,7 +36,7 @@ <property name="can_focus">False</property> <property name="label" translatable="yes" context="managestylepage|nameft">_Name:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">namerw</property> + <property name="mnemonic_widget">name</property> <property name="xalign">1</property> </object> <packing> @@ -102,7 +102,7 @@ <object class="GtkButton" id="editstyle"> <property name="label" translatable="yes" context="managestylepage|editstyle">Edit Style</property> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="receives_default">False</property> </object> <packing> @@ -126,7 +126,7 @@ <object class="GtkButton" id="editlinkstyle"> <property name="label" translatable="yes" context="managestylepage|editlinkstyle">Edit Style</property> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="receives_default">False</property> </object> <packing> @@ -147,53 +147,6 @@ </packing> </child> <child> - <object class="GtkGrid" id="grid2"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="column_spacing">12</property> - <child> - <object class="GtkEntry" id="namerw"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="valign">center</property> - <property name="hexpand">True</property> - <property name="width_chars">52</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">never</property> - <property name="vscrollbar_policy">never</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkTextView" id="namero"> - <property name="can_focus">True</property> - <property name="no_show_all">True</property> - <property name="valign">center</property> - <property name="hexpand">True</property> - <property name="editable">False</property> - <property name="cursor_visible">False</property> - </object> - </child> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> - </child> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> <object class="GtkCheckButton" id="autoupdate"> <property name="label" translatable="yes" context="managestylepage|autoupdate">_AutoUpdate</property> <property name="can_focus">True</property> @@ -209,6 +162,20 @@ </packing> </child> <child> + <object class="GtkEntry" id="name"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">center</property> + <property name="hexpand">True</property> + <property name="editable">False</property> + <property name="width_chars">52</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">0</property> + </packing> + </child> + <child> <placeholder/> </child> <child> diff --git a/sw/qa/uitest/writer_tests2/horizontalLine.py b/sw/qa/uitest/writer_tests2/horizontalLine.py index 7a25d36ee19e..c102f603157d 100644 --- a/sw/qa/uitest/writer_tests2/horizontalLine.py +++ b/sw/qa/uitest/writer_tests2/horizontalLine.py @@ -23,7 +23,7 @@ class WriterInsertHorizontalLine(UITestCase): self.ui_test.execute_dialog_through_command(".uno:EditStyle") #open style dialog xDialog = self.xUITest.getTopFocusWindow() - xStyleNametxt = xDialog.getChild("namerw") + xStyleNametxt = xDialog.getChild("name") self.assertEqual(get_state_as_dict(xStyleNametxt)["Text"], "Horizontal Line") #check style name xCancBtn = xDialog.getChild("cancel") self.ui_test.close_dialog_through_button(xCancBtn) @@ -33,7 +33,7 @@ class WriterInsertHorizontalLine(UITestCase): self.ui_test.execute_dialog_through_command(".uno:EditStyle") #open style dialog xDialog = self.xUITest.getTopFocusWindow() - xStyleNametxt = xDialog.getChild("namerw") + xStyleNametxt = xDialog.getChild("name") self.assertEqual(get_state_as_dict(xStyleNametxt)["Text"], "Horizontal Line") #check style name xCancBtn = xDialog.getChild("cancel") self.ui_test.close_dialog_through_button(xCancBtn) diff --git a/sw/uiconfig/swriter/ui/footnoteareapage.ui b/sw/uiconfig/swriter/ui/footnoteareapage.ui index 47c4db80c019..ec0e9c253d18 100644 --- a/sw/uiconfig/swriter/ui/footnoteareapage.ui +++ b/sw/uiconfig/swriter/ui/footnoteareapage.ui @@ -297,7 +297,7 @@ <child> <object class="GtkMenuButton" id="style"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="halign">start</property> <property name="hexpand">True</property> @@ -314,7 +314,7 @@ <child> <object class="GtkMenuButton" id="color"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="halign">start</property> <property name="hexpand">True</property> diff --git a/sw/uiconfig/swriter/ui/textgridpage.ui b/sw/uiconfig/swriter/ui/textgridpage.ui index 76cc6d1435d0..811f68ee9a30 100644 --- a/sw/uiconfig/swriter/ui/textgridpage.ui +++ b/sw/uiconfig/swriter/ui/textgridpage.ui @@ -293,7 +293,6 @@ <property name="valign">start</property> <property name="row_spacing">6</property> <property name="column_spacing">12</property> - <property name="row_homogeneous">True</property> <child> <object class="GtkSpinButton" id="spinMF_CHARWIDTH"> <property name="visible">True</property> diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 6eff8ea00b1e..4ad3fd6cf393 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -220,6 +220,16 @@ public: return m_xWidget->IsReallyVisible(); } + virtual void set_can_focus(bool bCanFocus) override + { + auto nStyle = m_xWidget->GetStyle() & ~(WB_TABSTOP | WB_NOTABSTOP); + if (bCanFocus) + nStyle |= WB_TABSTOP; + else + nStyle |= WB_NOTABSTOP; + m_xWidget->SetStyle(nStyle); + } + virtual void grab_focus() override { m_xWidget->GrabFocus(); @@ -1419,6 +1429,11 @@ public: m_xEntry->SetReadOnly(!bEditable); } + virtual bool get_editable() const override + { + return !m_xEntry->IsReadOnly(); + } + virtual vcl::Font get_font() override { return m_xEntry->GetFont(); diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 762eeabc8911..8ebccbbf2cc4 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -1232,6 +1232,11 @@ public: return gtk_widget_is_visible(m_pWidget); } + virtual void set_can_focus(bool bCanFocus) override + { + gtk_widget_set_can_focus(m_pWidget, bCanFocus); + } + virtual void grab_focus() override { gtk_widget_grab_focus(m_pWidget); @@ -3380,6 +3385,11 @@ public: gtk_editable_set_editable(GTK_EDITABLE(m_pEntry), bEditable); } + virtual bool get_editable() const override + { + return gtk_editable_get_editable(GTK_EDITABLE(m_pEntry)); + } + virtual void disable_notify_events() override { g_signal_handler_block(m_pEntry, m_nInsertTextSignalId); |