svx/source/tbxctrls/tbunosearchcontrollers.cxx | 4 svx/uiconfig/ui/checkbuttonbox.ui | 12 - svx/uiconfig/ui/findbox.ui | 10 - sw/uiconfig/swriter/ui/fielddialog.ui | 231 ++++--------------------- vcl/qt5/QtInstanceDialog.cxx | 2 vcl/qt5/QtInstanceTreeView.cxx | 8 6 files changed, 61 insertions(+), 206 deletions(-)
New commits: commit 00ebf365dd33d2272fdbb624976d6a6f94c3820c Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Sat Apr 19 17:57:53 2025 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Apr 19 21:18:13 2025 +0200 tdf#130857 qt weld: Don't unconditionally make dialogs modal Despite QDialog::modal [1] defaulting to false like GtkWindow::modal [2] and QtBuilder::setDialogProperties correctly evaluating the "modal" property in .ui files, even non-modal dialogs were run as modal dialogs when using SAL_VCL_QT_USE_WELDED_WIDGETS=1. (Seen with Writer's "Insert" -> "Fields" -> "More Fields..." dialog in a WIP branch.) This is because QDialog::open was used so far to open the dialog, for which the doc [3] explains: > Shows the dialog as a window modal dialog, returning immediately. Use QDialog::show/QWidget::show instead to show the dialog, which does unconditionally run the dialog as modal. This also makes the "Close" button work for that dialog. Previously, it wouldn't close the dialog because bAllow = !pDialog->get_visible() || !pDialog->get_modal(); in SfxChildWindow::QueryClose would evaluate to false because the dialog was both, visible and modal. [1] https://doc.qt.io/qt-6/qdialog.html#modal-prop [2] https://docs.gtk.org/gtk3/property.Window.modal.html [3] https://doc.qt.io/qt-6/qdialog.html#open Change-Id: I099d990c614b592751e01791b48405c674b6ed3f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184377 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/qt5/QtInstanceDialog.cxx b/vcl/qt5/QtInstanceDialog.cxx index 6ee4ca2bdff3..e9b5af5642bb 100644 --- a/vcl/qt5/QtInstanceDialog.cxx +++ b/vcl/qt5/QtInstanceDialog.cxx @@ -52,7 +52,7 @@ bool QtInstanceDialog::runAsync(const std::shared_ptr<weld::DialogController>& r m_xRunAsyncDialogController = rxOwner; m_aRunAsyncFunc = func; connect(m_pDialog, &QDialog::finished, this, &QtInstanceDialog::dialogFinished); - m_pDialog->open(); + m_pDialog->show(); return true; } commit 5de816bdeb927237262ac6c165b0a5ae0cb8466f Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Sat Apr 19 17:27:10 2025 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Apr 19 21:17:58 2025 +0200 sw: Resave fielddialog.ui with glade 3.40 This is Writer's "Insert" -> "Field" -> "More Fields..." dialog. Change-Id: Ic77b96cf659292307a7be14dc1cb3d0c2d01da4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184376 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/sw/uiconfig/swriter/ui/fielddialog.ui b/sw/uiconfig/swriter/ui/fielddialog.ui index e80a8509ffa4..498c74d77b5f 100644 --- a/sw/uiconfig/swriter/ui/fielddialog.ui +++ b/sw/uiconfig/swriter/ui/fielddialog.ui @@ -1,29 +1,29 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.36.0 --> +<!-- Generated with glade 3.40.0 --> <interface domain="sw"> <requires lib="gtk+" version="3.20"/> <object class="GtkDialog" id="FieldDialog"> - <property name="can_focus">False</property> - <property name="border_width">6</property> + <property name="can-focus">False</property> + <property name="border-width">6</property> <property name="title" translatable="yes" context="fielddialog|FieldDialog">Fields</property> - <property name="default_width">0</property> - <property name="default_height">0</property> - <property name="type_hint">dialog</property> + <property name="default-width">0</property> + <property name="default-height">0</property> + <property name="type-hint">dialog</property> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="orientation">vertical</property> <property name="spacing">12</property> <child internal-child="action_area"> <object class="GtkButtonBox" id="dialog-action_area1"> - <property name="can_focus">False</property> - <property name="layout_style">end</property> + <property name="can-focus">False</property> + <property name="layout-style">end</property> <child> <object class="GtkButton" id="reset"> <property name="label" translatable="yes" context="stock">_Reset</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="no_show_all">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="no-show-all">True</property> <property name="use-underline">True</property> </object> <packing> @@ -36,11 +36,11 @@ <object class="GtkButton" id="ok"> <property name="label" translatable="yes" context="fielddialog|ok">_Insert</property> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="has_default">True</property> - <property name="receives_default">True</property> - <property name="use_underline">True</property> + <property name="can-focus">True</property> + <property name="can-default">True</property> + <property name="has-default">True</property> + <property name="receives-default">True</property> + <property name="use-underline">True</property> <child internal-child="accessible"> <object class="AtkObject" id="ok-atkobject"> <property name="AtkObject::accessible-description" translatable="yes" context="fielddialog|extended_tip|ok">Inserts the selected field at the current cursor position in the document. To close the dialog, click the Close button.</property> @@ -57,8 +57,8 @@ <object class="GtkButton" id="cancel"> <property name="label" translatable="yes" context="stock">_Close</property> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> <property name="use-underline">True</property> <child internal-child="accessible"> <object class="AtkObject" id="cancel-atkobject"> @@ -76,8 +76,8 @@ <object class="GtkButton" id="help"> <property name="label" translatable="yes" context="stock">_Help</property> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> <property name="use-underline">True</property> </object> <packing> @@ -91,46 +91,22 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="pack_type">end</property> + <property name="pack-type">end</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkNotebook" id="tabcontrol"> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> - <property name="enable_popup">True</property> + <property name="enable-popup">True</property> <child> <!-- n-columns=1 n-rows=1 --> <object class="GtkGrid"> <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> + <property name="can-focus">False</property> <child> <placeholder/> </child> @@ -139,42 +115,18 @@ <child type="tab"> <object class="GtkLabel" id="document"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="fielddialog|document">Document</property> </object> <packing> - <property name="tab_fill">False</property> + <property name="tab-fill">False</property> </packing> </child> <child> <!-- n-columns=1 n-rows=1 --> <object class="GtkGrid"> <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> + <property name="can-focus">False</property> <child> <placeholder/> </child> @@ -186,43 +138,19 @@ <child type="tab"> <object class="GtkLabel" id="ref"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="fielddialog|ref">Cross-references</property> </object> <packing> <property name="position">1</property> - <property name="tab_fill">False</property> + <property name="tab-fill">False</property> </packing> </child> <child> <!-- n-columns=1 n-rows=1 --> <object class="GtkGrid"> <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> + <property name="can-focus">False</property> <child> <placeholder/> </child> @@ -234,43 +162,19 @@ <child type="tab"> <object class="GtkLabel" id="functions"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="fielddialog|functions">Functions</property> </object> <packing> <property name="position">2</property> - <property name="tab_fill">False</property> + <property name="tab-fill">False</property> </packing> </child> <child> <!-- n-columns=1 n-rows=1 --> <object class="GtkGrid"> <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> + <property name="can-focus">False</property> <child> <placeholder/> </child> @@ -282,43 +186,19 @@ <child type="tab"> <object class="GtkLabel" id="docinfo"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="fielddialog|docinfo">DocInformation</property> </object> <packing> <property name="position">3</property> - <property name="tab_fill">False</property> + <property name="tab-fill">False</property> </packing> </child> <child> <!-- n-columns=1 n-rows=1 --> <object class="GtkGrid"> <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> + <property name="can-focus">False</property> <child> <placeholder/> </child> @@ -330,43 +210,19 @@ <child type="tab"> <object class="GtkLabel" id="variables"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="fielddialog|variables">Variables</property> </object> <packing> <property name="position">4</property> - <property name="tab_fill">False</property> + <property name="tab-fill">False</property> </packing> </child> <child> <!-- n-columns=1 n-rows=1 --> <object class="GtkGrid"> <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> + <property name="can-focus">False</property> <child> <placeholder/> </child> @@ -378,12 +234,12 @@ <child type="tab"> <object class="GtkLabel" id="database"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="fielddialog|database">Database</property> </object> <packing> <property name="position">5</property> - <property name="tab_fill">False</property> + <property name="tab-fill">False</property> </packing> </child> </object> @@ -401,9 +257,6 @@ <action-widget response="-6">cancel</action-widget> <action-widget response="-11">help</action-widget> </action-widgets> - <child type="titlebar"> - <placeholder/> - </child> <child internal-child="accessible"> <object class="AtkObject" id="FieldDialog-atkobject"> <property name="AtkObject::accessible-description" translatable="yes" context="fielddialog|extended_tip|FieldDialog">Inserts a field at the current cursor position.</property> commit 62b30a8272d22d8b4b83556afee73824eafc52fb Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Sat Apr 19 17:04:51 2025 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Apr 19 21:17:52 2025 +0200 tdf#130857 qt weld: Implement QtInstanceTreeView::get_iter_first Change-Id: I2874958292ae188d24911f14698f2da44015d65c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184375 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx index a209be729990..3950999d0f43 100644 --- a/vcl/qt5/QtInstanceTreeView.cxx +++ b/vcl/qt5/QtInstanceTreeView.cxx @@ -490,10 +490,12 @@ bool QtInstanceTreeView::get_cursor(weld::TreeIter*) const void QtInstanceTreeView::set_cursor(const weld::TreeIter& rIter) { set_cursor(rowIndex(rIter)); } -bool QtInstanceTreeView::get_iter_first(weld::TreeIter&) const +bool QtInstanceTreeView::get_iter_first(weld::TreeIter& rIter) const { - assert(false && "Not implemented yet"); - return false; + QtInstanceTreeIter& rQtIter = static_cast<QtInstanceTreeIter&>(rIter); + const QModelIndex aIndex = modelIndex(0); + rQtIter.setModelIndex(aIndex); + return aIndex.isValid(); } bool QtInstanceTreeView::iter_next_sibling(weld::TreeIter&) const commit e5e491c3dbfdc5a51d7df0230191fd8d4aa39177 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Sat Apr 19 15:38:51 2025 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Apr 19 21:17:45 2025 +0200 tdf#130857 svx: Use container size for search bar item windows Set the CheckButtonItemWindow and FindTextFieldControl size to the size of the containers they contain (see corresponding .ui files svx/uiconfig/ui/checkbuttonbox.ui and svx/uiconfig/ui/findbox.ui), not only to the size of the checkbox/combobox inside of those containers. While the size is the same for gen and gtk3 on Linux, it isn't in a WIP branch of mine experimenting to support using native Qt widgets for those when using the qt6 VCL plugin, resulting in the checkbox/combobox not being shown completely. Change-Id: I5ae47adcf21f787d69e130eb2e45737a32676591 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184374 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> Tested-by: Jenkins diff --git a/svx/source/tbxctrls/tbunosearchcontrollers.cxx b/svx/source/tbxctrls/tbunosearchcontrollers.cxx index db1a1698adc0..7f24d173cd3d 100644 --- a/svx/source/tbxctrls/tbunosearchcontrollers.cxx +++ b/svx/source/tbxctrls/tbunosearchcontrollers.cxx @@ -86,7 +86,7 @@ public: m_xWidget->connect_key_press(LINK(this, CheckButtonItemWindow, KeyInputHdl)); m_xWidget->set_label(rLabel); - SetSizePixel(m_xWidget->get_preferred_size()); + SetSizePixel(m_xContainer->get_preferred_size()); } bool get_active() const @@ -229,7 +229,7 @@ FindTextFieldControl::FindTextFieldControl(ToolBox* pParent, m_xWidget->connect_entry_activate(LINK(this, FindTextFieldControl, ActivateHdl)); m_xWidget->set_size_request(250, -1); - SetSizePixel(m_xWidget->get_preferred_size()); + SetSizePixel(m_xContainer->get_preferred_size()); // tdf#154269 - respect FindReplaceRememberedSearches expert option m_nRememberSize = officecfg::Office::Common::Misc::FindReplaceRememberedSearches::get(); commit 03774463ff6798309a67eec10f896f1416d986fa Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Sat Apr 19 15:35:21 2025 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Apr 19 21:17:35 2025 +0200 svx: Resave checkbuttonbox.ui with glade 3.40 This .ui file is used for the checkboxes in the Search/Find toolbar that opens when pressing Ctrl+F in Writer. Change-Id: Ic1c5d0f5245fc29a0473b0a882d985c4fdd44f0d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184373 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> Tested-by: Jenkins diff --git a/svx/uiconfig/ui/checkbuttonbox.ui b/svx/uiconfig/ui/checkbuttonbox.ui index 06a59de7681c..55f194ace8bd 100644 --- a/svx/uiconfig/ui/checkbuttonbox.ui +++ b/svx/uiconfig/ui/checkbuttonbox.ui @@ -1,21 +1,21 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.22.1 --> +<!-- Generated with glade 3.40.0 --> <interface domain="svx"> <requires lib="gtk+" version="3.20"/> <object class="GtkBox" id="CheckButtonBox"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="spacing">6</property> <child> <object class="GtkCheckButton" id="checkbutton"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> + <property name="can-focus">True</property> + <property name="receives-default">False</property> <property name="hexpand">True</property> <property name="vexpand">True</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> + <property name="use-underline">True</property> + <property name="draw-indicator">True</property> </object> <packing> <property name="expand">False</property> commit c64781bde0ccc2a4bb23b57e7b922b47ead92f1d Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Sat Apr 19 15:32:26 2025 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Apr 19 21:17:29 2025 +0200 svx: Resave findbox.ui with glade 3.40 This .ui file is used for the combobox in the Search/Find toolbar that opens when pressing Ctrl+F in Writer. Change-Id: I6d1f12a8e217a1dbf68e2a13cddbd14cf8b8ac58 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184372 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/svx/uiconfig/ui/findbox.ui b/svx/uiconfig/ui/findbox.ui index b01c199de3d1..342b636286a7 100644 --- a/svx/uiconfig/ui/findbox.ui +++ b/svx/uiconfig/ui/findbox.ui @@ -1,22 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.22.1 --> +<!-- Generated with glade 3.40.0 --> <interface domain="svx"> <requires lib="gtk+" version="3.20"/> <object class="GtkBox" id="FindBox"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="spacing">6</property> <child> <object class="GtkComboBoxText" id="find"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> - <property name="has_entry">True</property> + <property name="has-entry">True</property> <child internal-child="entry"> <object class="GtkEntry"> + <property name="can-focus">True</property> <property name="truncate-multiline">True</property> - <property name="can_focus">True</property> </object> </child> </object>