weld: Pass SizeGroup mode in ctor

Pass the VclSizeGroupMode the weld::SizeGroup
should use directly in the call to
weld::Builder::create_size_group via a new param
and pass it to the ctors of the implementations,
instead of calling a separate weld::SizeGroup::set_mode
after calling the ctor to set the mode afterwards.

Change-Id: Ia65291cd8832846ecdf0a5fef8d3b89bf8f4d1bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203993
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This commit is contained in:
Michael Weghorn
2026-04-21 10:25:37 +02:00
parent 10c4554356
commit 8ac9964792
8 changed files with 18 additions and 16 deletions
+2 -1
View File
@@ -22,6 +22,7 @@ class OAccessible;
}
enum class FieldUnit : sal_uInt16;
enum class VclSizeGroupMode;
namespace weld
{
@@ -122,7 +123,7 @@ public:
virtual std::unique_ptr<Popover> weld_popover(const OUString& id) = 0;
virtual std::unique_ptr<Toolbar> weld_toolbar(const OUString& id) = 0;
virtual std::unique_ptr<Scrollbar> weld_scrollbar(const OUString& id) = 0;
virtual std::unique_ptr<SizeGroup> create_size_group() = 0;
virtual std::unique_ptr<SizeGroup> create_size_group(VclSizeGroupMode eMode) = 0;
/* return a Dialog suitable to take a screenshot of containing the contents of the .ui file.
If the toplevel element is a dialog, that will be returned
-2
View File
@@ -21,8 +21,6 @@ class VCL_DLLPUBLIC SizeGroup
{
public:
virtual void add_widget(weld::Widget* pWidget) = 0;
// the default mode is VclSizeGroupMode::Horizontal
virtual void set_mode(VclSizeGroupMode eMode) = 0;
virtual ~SizeGroup() {}
};
}
+1 -2
View File
@@ -817,8 +817,7 @@ void SfxTabDialogController::setPreviewsToSamePlace()
if (aGrids.size() <= 1)
return;
m_xSizeGroup = m_xBuilder->create_size_group();
m_xSizeGroup->set_mode(VclSizeGroupMode::Both);
m_xSizeGroup = m_xBuilder->create_size_group(VclSizeGroupMode::Both);
for (auto& rGrid : aGrids)
m_xSizeGroup->add_widget(rGrid.get());
}
+1 -1
View File
@@ -96,7 +96,7 @@ public:
virtual std::unique_ptr<weld::Popover> weld_popover(const OUString& rId) override;
virtual std::unique_ptr<weld::Toolbar> weld_toolbar(const OUString& rId) override;
virtual std::unique_ptr<weld::Scrollbar> weld_scrollbar(const OUString& rId) override;
virtual std::unique_ptr<weld::SizeGroup> create_size_group() override;
virtual std::unique_ptr<weld::SizeGroup> create_size_group(VclSizeGroupMode eMode) override;
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
+1 -1
View File
@@ -162,7 +162,7 @@ public:
virtual std::unique_ptr<weld::Scrollbar> weld_scrollbar(const OUString& id) override;
virtual std::unique_ptr<weld::SizeGroup> create_size_group() override;
virtual std::unique_ptr<weld::SizeGroup> create_size_group(VclSizeGroupMode eMode) override;
OUString get_current_page_help_id() const;
+1 -1
View File
@@ -962,7 +962,7 @@ std::unique_ptr<weld::Scrollbar> QtInstanceBuilder::weld_scrollbar(const OUStrin
return xRet;
}
std::unique_ptr<weld::SizeGroup> QtInstanceBuilder::create_size_group()
std::unique_ptr<weld::SizeGroup> QtInstanceBuilder::create_size_group(VclSizeGroupMode)
{
assert(false && "Not implemented yet");
return nullptr;
+5 -4
View File
@@ -1266,17 +1266,18 @@ private:
std::shared_ptr<VclSizeGroup> m_xGroup;
public:
SalInstanceSizeGroup()
SalInstanceSizeGroup(VclSizeGroupMode eMode)
: m_xGroup(std::make_shared<VclSizeGroup>())
{
m_xGroup->set_mode(eMode);
}
virtual void add_widget(weld::Widget* pWidget) override
{
SalInstanceWidget* pVclWidget = dynamic_cast<SalInstanceWidget*>(pWidget);
assert(pVclWidget && pVclWidget->getWidget());
pVclWidget->getWidget()->add_to_size_group(m_xGroup);
}
virtual void set_mode(VclSizeGroupMode eMode) override { m_xGroup->set_mode(eMode); }
};
}
@@ -6860,9 +6861,9 @@ std::unique_ptr<weld::Scrollbar> SalInstanceBuilder::weld_scrollbar(const OUStri
return pScrollbar ? std::make_unique<SalInstanceScrollbar>(pScrollbar, this, false) : nullptr;
}
std::unique_ptr<weld::SizeGroup> SalInstanceBuilder::create_size_group()
std::unique_ptr<weld::SizeGroup> SalInstanceBuilder::create_size_group(VclSizeGroupMode eMode)
{
return std::make_unique<SalInstanceSizeGroup>();
return std::make_unique<SalInstanceSizeGroup>(eMode);
}
OUString SalInstanceBuilder::get_current_page_help_id() const
+7 -4
View File
@@ -5705,17 +5705,20 @@ class GtkInstanceSizeGroup : public weld::SizeGroup
private:
GtkSizeGroup* m_pGroup;
public:
GtkInstanceSizeGroup()
GtkInstanceSizeGroup(VclSizeGroupMode eMode)
: m_pGroup(gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL))
{
set_mode(eMode);
}
virtual void add_widget(weld::Widget* pWidget) override
{
GtkInstanceWidget* pVclWidget = dynamic_cast<GtkInstanceWidget*>(pWidget);
assert(pVclWidget);
gtk_size_group_add_widget(m_pGroup, pVclWidget->getWidget());
}
virtual void set_mode(VclSizeGroupMode eVclMode) override
void set_mode(VclSizeGroupMode eVclMode)
{
GtkSizeGroupMode eGtkMode(GTK_SIZE_GROUP_NONE);
switch (eVclMode)
@@ -24181,9 +24184,9 @@ public:
return std::make_unique<GtkInstanceScrollbar>(pScrollbar, this, false);
}
virtual std::unique_ptr<weld::SizeGroup> create_size_group() override
virtual std::unique_ptr<weld::SizeGroup> create_size_group(VclSizeGroupMode eMode) override
{
return std::make_unique<GtkInstanceSizeGroup>();
return std::make_unique<GtkInstanceSizeGroup>(eMode);
}
};