sc/inc/dbdata.hxx | 8 + sc/inc/mid.h | 7 - sc/sdi/scslots.sdi | 1 sc/source/core/data/documen4.cxx | 2 sc/source/core/data/fillinfo.cxx | 2 sc/source/core/data/tablestyle.cxx | 79 +++++++++++-- sc/source/core/tool/dbdata.cxx | 36 +++++- sc/source/filter/excel/xedbdata.cxx | 2 sc/source/filter/excel/xestyle.cxx | 4 sc/source/ui/sidebar/DatabasePropertyPanel.cxx | 16 ++ sc/source/ui/sidebar/DatabasePropertyPanel.hxx | 2 sc/source/ui/unoobj/datauno.cxx | 8 - sc/source/ui/view/tableshell.cxx | 5 sc/uiconfig/scalc/ui/sidebardatabase.ui | 148 +++++++++++++++++++++++-- vcl/inc/jsdialog/jsdialogbuilder.hxx | 1 vcl/jsdialog/jsdialogbuilder.cxx | 6 + 16 files changed, 284 insertions(+), 43 deletions(-)
New commits: commit 1d73599332c658206464dc6b6ae77ff2680e0029 Author: Balazs Varga <[email protected]> AuthorDate: Thu Nov 13 16:59:20 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Mon Nov 17 19:05:29 2025 +0100 Table Style: handle the table style borders for cellinfo If we have a Tablepattern with borders we need to apply those border element to the cells on outside. Change-Id: I9ad94cdb22b1227c39053d34ce7fa96f4295258c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193987 Reviewed-by: Andras Timar <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/sc/source/core/data/tablestyle.cxx b/sc/source/core/data/tablestyle.cxx index 9d930e888e90..29373b9e81ab 100644 --- a/sc/source/core/data/tablestyle.cxx +++ b/sc/source/core/data/tablestyle.cxx @@ -503,21 +503,78 @@ std::unique_ptr<SvxBoxItem> ScTableStyle::GetBoxItem(const ScDBData& rDBData, SC { sal_Int32 nTotalRowStripPattern = mnFirstRowStripeSize + mnSecondRowStripeSize; bool bFirstRowStripe = (nRowIndex % nTotalRowStripPattern) < mnFirstRowStripeSize; - if (mpSecondRowStripePattern && !bFirstRowStripe) - { - const SvxBoxItem* pPoolItem - = GetItemFromPattern(mpSecondRowStripePattern.get(), ATTR_BORDER); - if (pPoolItem) - return std::make_unique<SvxBoxItem>(*pPoolItem); - } + const SvxBoxItem* pPoolItem = nullptr; if (mpFirstRowStripePattern && bFirstRowStripe) + pPoolItem = GetItemFromPattern(mpFirstRowStripePattern.get(), ATTR_BORDER); + else if (mpSecondRowStripePattern && !bFirstRowStripe) + pPoolItem = GetItemFromPattern(mpSecondRowStripePattern.get(), ATTR_BORDER); + + if (pPoolItem && mpTablePattern) { - const SvxBoxItem* pPoolItem - = GetItemFromPattern(mpFirstRowStripePattern.get(), ATTR_BORDER); - if (pPoolItem) - return std::make_unique<SvxBoxItem>(*pPoolItem); + const SvxBoxItem* pBoxItem = GetItemFromPattern(mpTablePattern.get(), ATTR_BORDER); + const SvxBoxInfoItem* pBoxInfoItem + = GetItemFromPattern(mpTablePattern.get(), ATTR_BORDER_INNER); + if (pBoxItem || pBoxInfoItem) + { + if (pBoxItem && nCol == aRange.aStart.Col()) + { + const ::editeng::SvxBorderLine* pLLine + = pBoxItem->GetLine(SvxBoxItemLine::LEFT); + if (pLLine) + { + std::unique_ptr<SvxBoxItem> pNewBoxItem(pPoolItem ? pPoolItem->Clone() + : nullptr); + if (!pNewBoxItem) + pNewBoxItem = std::make_unique<SvxBoxItem>(ATTR_BORDER); + if (pLLine) + pNewBoxItem->SetLine(pLLine, SvxBoxItemLine::LEFT); + + return pNewBoxItem; + } + } + else if (pBoxItem && nCol == aRange.aEnd.Col()) + { + const ::editeng::SvxBorderLine* pRLine + = pBoxItem->GetLine(SvxBoxItemLine::RIGHT); + if (pRLine) + { + std::unique_ptr<SvxBoxItem> pNewBoxItem(pPoolItem ? pPoolItem->Clone() + : nullptr); + if (!pNewBoxItem) + pNewBoxItem = std::make_unique<SvxBoxItem>(ATTR_BORDER); + if (pRLine) + pNewBoxItem->SetLine(pRLine, SvxBoxItemLine::RIGHT); + + return pNewBoxItem; + } + } + else + { + const ::editeng::SvxBorderLine* pVLine = nullptr; + if (pBoxInfoItem) + pVLine = pBoxInfoItem->GetVert(); + + if (pVLine) + { + std::unique_ptr<SvxBoxItem> pNewBoxItem(pPoolItem ? pPoolItem->Clone() + : nullptr); + if (!pNewBoxItem) + pNewBoxItem = std::make_unique<SvxBoxItem>(ATTR_BORDER); + if (pVLine) + { + pNewBoxItem->SetLine(pVLine, SvxBoxItemLine::LEFT); + pNewBoxItem->SetLine(pVLine, SvxBoxItemLine::RIGHT); + } + + return pNewBoxItem; + } + } + } } + + if (pPoolItem) + return std::make_unique<SvxBoxItem>(*pPoolItem); } if (pParam->mbColumnStripes) commit c03ade4fe37b38232360d7faad9f52f19ece0cb4 Author: Balazs Varga <[email protected]> AuthorDate: Thu Nov 13 12:34:35 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Mon Nov 17 19:05:19 2025 +0100 Table styles: add a simple combobox with the default ooxml table style names to make it possible to change a table style on an already exist table style. Change-Id: Ie9db663a42141b89119af70e9ddab4c8fbfbe7cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193986 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Andras Timar <[email protected]> diff --git a/sc/inc/dbdata.hxx b/sc/inc/dbdata.hxx index 65ed43be7a5b..54c1c5ade949 100644 --- a/sc/inc/dbdata.hxx +++ b/sc/inc/dbdata.hxx @@ -47,12 +47,15 @@ class SC_DLLPUBLIC ScDatabaseSettingItem final : public SfxPoolItem bool mbStripedRows; bool mbStripedCols; bool mbShowFilters; + OUString maStyleID; public: static SfxPoolItem* CreateDefault(); DECLARE_ITEM_TYPE_FUNCTION(ScDatabaseSettingItem) ScDatabaseSettingItem(); - ScDatabaseSettingItem(bool bHeaderRow, bool bTotalRow, bool bFirstCol, bool bLastCol, bool bStripedRows, bool bStripedCols, bool bShowFilter); + ScDatabaseSettingItem(bool bHeaderRow, bool bTotalRow, bool bFirstCol, bool bLastCol, + bool bStripedRows, bool bStripedCols, bool bShowFilter, + const OUString& aStyleID); ScDatabaseSettingItem( const ScDatabaseSettingItem& rItem ); virtual ~ScDatabaseSettingItem() override; @@ -70,6 +73,7 @@ public: bool HasStripedRows() const; bool HasStripedCols() const; bool HasShowFilters() const; + const OUString& GetStyleID() const; }; /** Enum used to indicate which portion of the DBArea is to be considered. */ @@ -126,7 +130,7 @@ protected: struct SAL_DLLPUBLIC_RTTI ScTableStyleParam { - OUString maStyleName; + OUString maStyleID; bool mbRowStripes; bool mbColumnStripes; bool mbFirstColumn; diff --git a/sc/inc/mid.h b/sc/inc/mid.h index e609a184e7ff..3ae9f3c4f148 100644 --- a/sc/inc/mid.h +++ b/sc/inc/mid.h @@ -24,9 +24,10 @@ #define MID_2 2 #define MID_3 3 #define MID_4 4 -#define MID_5 4 -#define MID_6 4 -#define MID_7 4 +#define MID_5 5 +#define MID_6 6 +#define MID_7 7 +#define MID_8 8 #endif diff --git a/sc/sdi/scslots.sdi b/sc/sdi/scslots.sdi index 77b97f36baa7..f0d4a498bf6c 100644 --- a/sc/sdi/scslots.sdi +++ b/sc/sdi/scslots.sdi @@ -30,6 +30,7 @@ module StarCalc BOOL StripedRows MID_5; BOOL StripedCols MID_6; BOOL ShowFilters MID_7; + String StyleID MID_8 }; item ScDatabaseSetting ScDatabaseSettingItem; diff --git a/sc/source/core/data/documen4.cxx b/sc/source/core/data/documen4.cxx index 352779393fa9..11b0559e0964 100644 --- a/sc/source/core/data/documen4.cxx +++ b/sc/source/core/data/documen4.cxx @@ -802,7 +802,7 @@ const SfxItemSet* ScDocument::GetTableFormatSet(SCCOL nCol, SCROW nRow, SCTAB nT if (!pTableStyleInfo) return nullptr; - const ScTableStyle* pTableStyle = mpTableStyles->GetTableStyle(pTableStyleInfo->maStyleName); + const ScTableStyle* pTableStyle = mpTableStyles->GetTableStyle(pTableStyleInfo->maStyleID); if (!pTableStyle) return nullptr; diff --git a/sc/source/core/data/fillinfo.cxx b/sc/source/core/data/fillinfo.cxx index c509cd5926b7..988bffe77520 100644 --- a/sc/source/core/data/fillinfo.cxx +++ b/sc/source/core/data/fillinfo.cxx @@ -421,7 +421,7 @@ void ScDocument::FillInfo( ScRange aDBRange; pDBData->GetArea(aDBRange); ScRange aIntersectionRange = aDBRange.Intersection(aTargetRange); - const ScTableStyle* pTableStyle = mpTableStyles->GetTableStyle(pTableStyleInfo->maStyleName); + const ScTableStyle* pTableStyle = mpTableStyles->GetTableStyle(pTableStyleInfo->maStyleID); if (!pTableStyle) continue; diff --git a/sc/source/core/tool/dbdata.cxx b/sc/source/core/tool/dbdata.cxx index e620443fa771..6044c8911fd8 100644 --- a/sc/source/core/tool/dbdata.cxx +++ b/sc/source/core/tool/dbdata.cxx @@ -58,7 +58,10 @@ ScDatabaseSettingItem::ScDatabaseSettingItem(): { } -ScDatabaseSettingItem::ScDatabaseSettingItem(bool bHeaderRow, bool bTotalRow, bool bFirstCol, bool bLastCol, bool bStripedRows, bool bStripedCols, bool bShowFilters): +ScDatabaseSettingItem::ScDatabaseSettingItem(bool bHeaderRow, bool bTotalRow, bool bFirstCol, + bool bLastCol, bool bStripedRows, bool bStripedCols, + bool bShowFilters, const OUString& aStyleID) + : SfxPoolItem(SCITEM_DATABASE_SETTING), mbHeaderRow(bHeaderRow), mbTotalRow(bTotalRow), @@ -66,7 +69,8 @@ ScDatabaseSettingItem::ScDatabaseSettingItem(bool bHeaderRow, bool bTotalRow, bo mbLastCol(bLastCol), mbStripedRows(bStripedRows), mbStripedCols(bStripedCols), - mbShowFilters(bShowFilters) + mbShowFilters(bShowFilters), + maStyleID(aStyleID) { } @@ -78,7 +82,8 @@ ScDatabaseSettingItem::ScDatabaseSettingItem(const ScDatabaseSettingItem& rItem) mbLastCol(rItem.mbLastCol), mbStripedRows(rItem.mbStripedRows), mbStripedCols(rItem.mbStripedCols), - mbShowFilters(rItem.mbShowFilters) + mbShowFilters(rItem.mbShowFilters), + maStyleID(rItem.maStyleID) { } @@ -111,6 +116,9 @@ bool ScDatabaseSettingItem::QueryValue(uno::Any& rVal, sal_uInt8 nMemberId ) con case 6: rVal <<= mbShowFilters; break; + case 7: + rVal <<= maStyleID; + break; default: return false; } @@ -121,8 +129,13 @@ bool ScDatabaseSettingItem::QueryValue(uno::Any& rVal, sal_uInt8 nMemberId ) con bool ScDatabaseSettingItem::PutValue(const uno::Any& rVal, sal_uInt8 nMemberId ) { bool bVal = false; + bool bRet = false; - bool bRet = (rVal >>= bVal); + OUString aStyleID; + if (nMemberId == 7) + bRet = (rVal >>= aStyleID); + else + bRet = (rVal >>= bVal); if(!bRet) return false; @@ -150,6 +163,9 @@ bool ScDatabaseSettingItem::PutValue(const uno::Any& rVal, sal_uInt8 nMemberId ) case 6: mbShowFilters = bVal; break; + case 7: + maStyleID = std::move(aStyleID); + break; default: return false; } @@ -176,6 +192,7 @@ ScDatabaseSettingItem& ScDatabaseSettingItem::operator=(const ScDatabaseSettingI mbStripedRows = rItem.mbStripedRows; mbStripedCols = rItem.mbStripedCols; mbShowFilters = rItem.mbShowFilters; + maStyleID = rItem.maStyleID; return *this; } @@ -187,7 +204,9 @@ bool ScDatabaseSettingItem::operator==(const SfxPoolItem& rItem) const return false; const ScDatabaseSettingItem& rDBItem = static_cast<const ScDatabaseSettingItem&>(rItem); - return mbHeaderRow == rDBItem.mbHeaderRow && mbTotalRow == rDBItem.mbTotalRow && mbFirstCol == rDBItem.mbFirstCol && mbLastCol == rDBItem.mbLastCol && mbStripedRows == rDBItem.mbStripedRows && mbStripedCols == rDBItem.mbStripedCols && mbShowFilters == rDBItem.mbShowFilters; + return mbHeaderRow == rDBItem.mbHeaderRow && mbTotalRow == rDBItem.mbTotalRow && mbFirstCol == rDBItem.mbFirstCol && + mbLastCol == rDBItem.mbLastCol && mbStripedRows == rDBItem.mbStripedRows && mbStripedCols == rDBItem.mbStripedCols && + mbShowFilters == rDBItem.mbShowFilters && maStyleID == rDBItem.maStyleID; } bool ScDatabaseSettingItem::HasHeaderRow() const @@ -225,6 +244,11 @@ bool ScDatabaseSettingItem::HasShowFilters() const return mbShowFilters; } +const OUString& ScDatabaseSettingItem::GetStyleID() const +{ + return maStyleID; +} + ScTableStyleParam::ScTableStyleParam(): mbRowStripes(true), mbColumnStripes(false), @@ -235,7 +259,7 @@ ScTableStyleParam::ScTableStyleParam(): bool ScTableStyleParam::operator==(const ScTableStyleParam& rParam) const { - if(maStyleName != rParam.maStyleName) + if(maStyleID != rParam.maStyleID) return false; if (mbRowStripes != rParam.mbRowStripes) diff --git a/sc/source/filter/excel/xedbdata.cxx b/sc/source/filter/excel/xedbdata.cxx index 2440213419b4..cde80605294a 100644 --- a/sc/source/filter/excel/xedbdata.cxx +++ b/sc/source/filter/excel/xedbdata.cxx @@ -320,7 +320,7 @@ void XclExpTables::SaveTableXml( XclExpXmlStream& rStrm, const Entry& rEntry ) if (const ScTableStyleParam* pParam = rData.GetTableStyleInfo()) { - const OUString& rStyleName = pParam->maStyleName; + const OUString& rStyleName = pParam->maStyleID; const ScTableStyle* pTableStyle = rStrm.GetRoot().GetDoc().GetTableStyles().GetTableStyle(rStyleName); if (pTableStyle) { diff --git a/sc/source/filter/excel/xestyle.cxx b/sc/source/filter/excel/xestyle.cxx index 276de3b7a774..20b2190c3351 100644 --- a/sc/source/filter/excel/xestyle.cxx +++ b/sc/source/filter/excel/xestyle.cxx @@ -3385,9 +3385,9 @@ XclExpXmlTableStyles::XclExpXmlTableStyles( const XclExpRoot& rRoot): for (auto itr = rDBs.begin(); itr != rDBs.end(); ++itr) { const ScTableStyleParam* pParam = itr->get()->GetTableStyleInfo(); - if (pParam && rTableStyles.GetTableStyle(pParam->maStyleName)) + if (pParam && rTableStyles.GetTableStyle(pParam->maStyleID)) { - aTableStyleNames.insert(pParam->maStyleName); + aTableStyleNames.insert(pParam->maStyleID); } } diff --git a/sc/source/ui/sidebar/DatabasePropertyPanel.cxx b/sc/source/ui/sidebar/DatabasePropertyPanel.cxx index c2dcc3825124..359699e783a0 100644 --- a/sc/source/ui/sidebar/DatabasePropertyPanel.cxx +++ b/sc/source/ui/sidebar/DatabasePropertyPanel.cxx @@ -41,6 +41,7 @@ ScDatabasePropertyPanel::ScDatabasePropertyPanel(weld::Widget* pParent, , m_xChkBandedColumns(m_xBuilder->weld_check_button(u"chk_banded_cols"_ustr)) , m_xChkFirstColumn(m_xBuilder->weld_check_button(u"chk_first_column"_ustr)) , m_xChkLastColumn(m_xBuilder->weld_check_button(u"chk_last_column"_ustr)) + , m_xCmbStyle(m_xBuilder->weld_combo_box(u"cb_styles"_ustr)) , maHeaderRowCtrl(SID_DATABASE_SETTINGS, *pBindings, *this) , mpBindings(pBindings) { @@ -56,6 +57,7 @@ ScDatabasePropertyPanel::~ScDatabasePropertyPanel() m_xChkBandedColumns.reset(); m_xChkFirstColumn.reset(); m_xChkLastColumn.reset(); + m_xCmbStyle.reset(); maHeaderRowCtrl.dispose(); } @@ -69,6 +71,7 @@ void ScDatabasePropertyPanel::Initialize() m_xChkBandedColumns->connect_toggled(LINK(this, ScDatabasePropertyPanel, EntryChanged)); m_xChkFirstColumn->connect_toggled(LINK(this, ScDatabasePropertyPanel, EntryChanged)); m_xChkLastColumn->connect_toggled(LINK(this, ScDatabasePropertyPanel, EntryChanged)); + m_xCmbStyle->connect_changed(LINK(this, ScDatabasePropertyPanel, StyleChanged)); } std::unique_ptr<PanelLayout> @@ -118,6 +121,7 @@ void ScDatabasePropertyPanel::NotifyItemUpdate(sal_uInt16 nSID, SfxItemState eSt m_xChkBandedRows->set_active(pItem->HasStripedRows()); m_xChkBandedColumns->set_active(pItem->HasStripedCols()); m_xChkFilterButtons->set_active(pItem->HasShowFilters()); + m_xCmbStyle->set_active_id(pItem->GetStyleID()); } break; } @@ -128,7 +132,17 @@ IMPL_LINK_NOARG(ScDatabasePropertyPanel, EntryChanged, weld::Toggleable&, void) ScDatabaseSettingItem aItem(m_xChkHeaderRow->get_active(), m_xChkTotalRow->get_active(), m_xChkFirstColumn->get_active(), m_xChkLastColumn->get_active(), m_xChkBandedRows->get_active(), m_xChkBandedColumns->get_active(), - m_xChkFilterButtons->get_active()); + m_xChkFilterButtons->get_active(), m_xCmbStyle->get_active_id()); + GetBindings()->GetDispatcher()->ExecuteList(SID_DATABASE_SETTINGS, SfxCallMode::RECORD, + { &aItem }); +} + +IMPL_LINK_NOARG(ScDatabasePropertyPanel, StyleChanged, weld::ComboBox&, void) +{ + ScDatabaseSettingItem aItem(m_xChkHeaderRow->get_active(), m_xChkTotalRow->get_active(), + m_xChkFirstColumn->get_active(), m_xChkLastColumn->get_active(), + m_xChkBandedRows->get_active(), m_xChkBandedColumns->get_active(), + m_xChkFilterButtons->get_active(), m_xCmbStyle->get_active_id()); GetBindings()->GetDispatcher()->ExecuteList(SID_DATABASE_SETTINGS, SfxCallMode::RECORD, { &aItem }); } diff --git a/sc/source/ui/sidebar/DatabasePropertyPanel.hxx b/sc/source/ui/sidebar/DatabasePropertyPanel.hxx index d1d6f6e39c99..3f3af3c4aea7 100644 --- a/sc/source/ui/sidebar/DatabasePropertyPanel.hxx +++ b/sc/source/ui/sidebar/DatabasePropertyPanel.hxx @@ -51,10 +51,12 @@ private: std::unique_ptr<weld::CheckButton> m_xChkBandedColumns; std::unique_ptr<weld::CheckButton> m_xChkFirstColumn; std::unique_ptr<weld::CheckButton> m_xChkLastColumn; + std::unique_ptr<weld::ComboBox> m_xCmbStyle; ::sfx2::sidebar::ControllerItem maHeaderRowCtrl; DECL_LINK(EntryChanged, weld::Toggleable&, void); + DECL_LINK(StyleChanged, weld::ComboBox&, void); vcl::EnumContext maContext; SfxBindings* mpBindings; diff --git a/sc/source/ui/unoobj/datauno.cxx b/sc/source/ui/unoobj/datauno.cxx index 66388634986a..2ed8fc32ce60 100644 --- a/sc/source/ui/unoobj/datauno.cxx +++ b/sc/source/ui/unoobj/datauno.cxx @@ -1977,15 +1977,15 @@ void SAL_CALL ScDatabaseRangeObj::setPropertyValue( } else if (aPropertyName == SC_UNONAME_TABLE_STYLENAME) { - OUString aStyleName; - aValue >>= aStyleName; + OUString aStyleID; + aValue >>= aStyleID; ScTableStyleParam aParam; const ScTableStyleParam* pOldParam = pData->GetTableStyleInfo(); if (pOldParam) { aParam = *pOldParam; } - aParam.maStyleName = aStyleName; + aParam.maStyleID = aStyleID; aNewData.SetTableStyleInfo(aParam); } @@ -2105,7 +2105,7 @@ uno::Any SAL_CALL ScDatabaseRangeObj::getPropertyValue( const OUString& aPropert { const ScTableStyleParam* pTableStyleInfo = GetDBData_Impl()->GetTableStyleInfo(); if (pTableStyleInfo) - aRet <<= pTableStyleInfo->maStyleName; + aRet <<= pTableStyleInfo->maStyleID; else aRet <<= OUString(); diff --git a/sc/source/ui/view/tableshell.cxx b/sc/source/ui/view/tableshell.cxx index 52744dd972bb..6fc243bda319 100644 --- a/sc/source/ui/view/tableshell.cxx +++ b/sc/source/ui/view/tableshell.cxx @@ -89,6 +89,7 @@ void ScTableShell::ExecuteDatabaseSettings(SfxRequest& rReq) aNewParam.mbColumnStripes = pDBItem->HasStripedCols(); aNewParam.mbFirstColumn = pDBItem->HasFirstCol(); aNewParam.mbLastColumn = pDBItem->HasLastCol(); + aNewParam.maStyleID = pDBItem->GetStyleID(); aNewDBData.SetTableStyleInfo(aNewParam); ScDBDocFunc aFunc(*rViewData.GetDocShell()); @@ -150,13 +151,13 @@ void ScTableShell::GetDatabaseSettings(SfxItemSet& rSet) rSet.Put(ScDatabaseSettingItem( pDBData->HasHeader(), pDBData->HasTotals(), pParam->mbFirstColumn, pParam->mbLastColumn, pParam->mbRowStripes, pParam->mbColumnStripes, - pDBData->HasAutoFilter())); + pDBData->HasAutoFilter(), pParam->maStyleID)); } else { rSet.Put(ScDatabaseSettingItem(pDBData->HasHeader(), pDBData->HasTotals(), false, false, false, false, - pDBData->HasAutoFilter())); + pDBData->HasAutoFilter(), u""_ustr)); } } break; diff --git a/sc/uiconfig/scalc/ui/sidebardatabase.ui b/sc/uiconfig/scalc/ui/sidebardatabase.ui index b8d085b42ef7..35ee4c339806 100644 --- a/sc/uiconfig/scalc/ui/sidebardatabase.ui +++ b/sc/uiconfig/scalc/ui/sidebardatabase.ui @@ -1,26 +1,29 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.40.0 --> +<!-- Generated with glade 3.38.2 --> <interface domain="sc"> <requires lib="gtk+" version="3.24"/> - <!-- n-columns=1 n-rows=1 --> + <!-- n-columns=1 n-rows=3 --> <object class="GtkGrid" id="DatabasePropertyPanel"> <property name="visible">True</property> <property name="can-focus">False</property> <property name="margin-top">2</property> <property name="margin-bottom">2</property> + <property name="row-spacing">5</property> <child> <!-- n-columns=2 n-rows=5 --> <object class="GtkGrid" id="grid1"> <property name="visible">True</property> <property name="can-focus">False</property> + <property name="hexpand">True</property> <property name="row-spacing">2</property> <property name="column-spacing">2</property> <child> <object class="GtkCheckButton" id="chk_header_row"> - <property name="label" translatable="yes" context="sidebardatabase|show_header_row_checkbox">Show Header Row</property> + <property name="label" translatable="yes" context="sidebardatabase|chk_header_row">Show Header Row</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="hexpand">True</property> <property name="draw-indicator">True</property> </object> <packing> @@ -30,10 +33,11 @@ </child> <child> <object class="GtkCheckButton" id="chk_total_row"> - <property name="label" translatable="yes" context="sidebardatabase|show_total_row_checkbox">Show Total Row</property> + <property name="label" translatable="yes" context="sidebardatabase|chk_total_row">Show Total Row</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="hexpand">True</property> <property name="draw-indicator">True</property> </object> <packing> @@ -43,10 +47,11 @@ </child> <child> <object class="GtkCheckButton" id="chk_filter_buttons"> - <property name="label" translatable="yes" context="sidebardatabase|show_filter_buttons_checkbox">Show Filter Buttons</property> + <property name="label" translatable="yes" context="sidebardatabase|chk_filter_buttons">Show Filter Buttons</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="hexpand">True</property> <property name="draw-indicator">True</property> </object> <packing> @@ -58,6 +63,7 @@ <object class="GtkSeparator"> <property name="visible">True</property> <property name="can-focus">False</property> + <property name="hexpand">True</property> </object> <packing> <property name="left-attach">0</property> @@ -68,6 +74,7 @@ <object class="GtkSeparator"> <property name="visible">True</property> <property name="can-focus">False</property> + <property name="hexpand">True</property> </object> <packing> <property name="left-attach">1</property> @@ -76,10 +83,11 @@ </child> <child> <object class="GtkCheckButton" id="chk_banded_rows"> - <property name="label" translatable="yes" context="sidebardatabase|banded_rows_formatting_checkbox">Banded Rows</property> + <property name="label" translatable="yes" context="sidebardatabase|chk_banded_rows">Banded Rows</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="hexpand">True</property> <property name="draw-indicator">True</property> </object> <packing> @@ -89,10 +97,11 @@ </child> <child> <object class="GtkCheckButton" id="chk_banded_cols"> - <property name="label" translatable="yes" context="sidebardatabase|banded_columns_formatting_checkbox">Banded Columns</property> + <property name="label" translatable="yes" context="sidebardatabase|chk_banded_cols">Banded Columns</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="hexpand">True</property> <property name="draw-indicator">True</property> </object> <packing> @@ -102,10 +111,11 @@ </child> <child> <object class="GtkCheckButton" id="chk_first_column"> - <property name="label" translatable="yes" context="sidebardatabase|first_column_formatting_checkbox">First Column</property> + <property name="label" translatable="yes" context="sidebardatabase|chk_first_column">First Column</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="hexpand">True</property> <property name="draw-indicator">True</property> </object> <packing> @@ -115,10 +125,11 @@ </child> <child> <object class="GtkCheckButton" id="chk_last_column"> - <property name="label" translatable="yes" context="sidebardatabase|last_column_formatting_checkbox">Last Column</property> + <property name="label" translatable="yes" context="sidebardatabase|chk_last_column">Last Column</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="hexpand">True</property> <property name="draw-indicator">True</property> </object> <packing> @@ -135,5 +146,124 @@ <property name="top-attach">0</property> </packing> </child> + <child> + <object class="GtkSeparator"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="hexpand">True</property> + </object> + <packing> + <property name="left-attach">0</property> + <property name="top-attach">1</property> + </packing> + </child> + <child> + <object class="GtkBox"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="hexpand">True</property> + <property name="spacing">5</property> + <child> + <object class="GtkLabel" id="lbl_styles"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="label" translatable="yes" context="sidebardatabase|lbl_styles">Table Styles</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">cb_styles</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="cb_styles"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="hexpand">True</property> + <property name="active">0</property> + <items> + <item id="none" translatable="yes" context="sidebardatabase|none">None</item> + <item id="TableStyleLight1" translatable="yes" context="sidebardatabase|tablestylelight1">Table Style Light 1</item> + <item id="TableStyleLight2" translatable="yes" context="sidebardatabase|tablestylelight2">Table Style Light 2</item> + <item id="TableStyleLight3" translatable="yes" context="sidebardatabase|tablestylelight3">Table Style Light 3</item> + <item id="TableStyleLight4" translatable="yes" context="sidebardatabase|tablestylelight4">Table Style Light 4</item> + <item id="TableStyleLight5" translatable="yes" context="sidebardatabase|tablestylelight5">Table Style Light 5</item> + <item id="TableStyleLight6" translatable="yes" context="sidebardatabase|tablestylelight6">Table Style Light 6</item> + <item id="TableStyleLight7" translatable="yes" context="sidebardatabase|tablestylelight7">Table Style Light 7</item> + <item id="TableStyleLight8" translatable="yes" context="sidebardatabase|tablestylelight8">Table Style Light 8</item> + <item id="TableStyleLight9" translatable="yes" context="sidebardatabase|tablestylelight9">Table Style Light 9</item> + <item id="TableStyleLight10" translatable="yes" context="sidebardatabase|tablestylelight10">Table Style Light 10</item> + <item id="TableStyleLight11" translatable="yes" context="sidebardatabase|tablestylelight11">Table Style Light 11</item> + <item id="TableStyleLight12" translatable="yes" context="sidebardatabase|tablestylelight12">Table Style Light 12</item> + <item id="TableStyleLight13" translatable="yes" context="sidebardatabase|tablestylelight13">Table Style Light 13</item> + <item id="TableStyleLight14" translatable="yes" context="sidebardatabase|tablestylelight14">Table Style Light 14</item> + <item id="TableStyleLight15" translatable="yes" context="sidebardatabase|tablestylelight15">Table Style Light 15</item> + <item id="TableStyleLight16" translatable="yes" context="sidebardatabase|tablestylelight16">Table Style Light 16</item> + <item id="TableStyleLight17" translatable="yes" context="sidebardatabase|tablestylelight17">Table Style Light 17</item> + <item id="TableStyleLight18" translatable="yes" context="sidebardatabase|tablestylelight18">Table Style Light 18</item> + <item id="TableStyleLight19" translatable="yes" context="sidebardatabase|tablestylelight19">Table Style Light 19</item> + <item id="TableStyleLight20" translatable="yes" context="sidebardatabase|tablestylelight20">Table Style Light 20</item> + <item id="TableStyleLight21" translatable="yes" context="sidebardatabase|tablestylelight21">Table Style Light 21</item> + <item id="TableStyleMedium1" translatable="yes" context="sidebardatabase|tablestylemedium1">Table Style Medium 1</item> + <item id="TableStyleMedium2" translatable="yes" context="sidebardatabase|tablestylemedium2">Table Style Medium 2</item> + <item id="TableStyleMedium3" translatable="yes" context="sidebardatabase|tablestylemedium3">Table Style Medium 3</item> + <item id="TableStyleMedium4" translatable="yes" context="sidebardatabase|tablestylemedium4">Table Style Medium 4</item> + <item id="TableStyleMedium5" translatable="yes" context="sidebardatabase|tablestylemedium5">Table Style Medium 5</item> + <item id="TableStyleMedium6" translatable="yes" context="sidebardatabase|tablestylemedium6">Table Style Medium 6</item> + <item id="TableStyleMedium7" translatable="yes" context="sidebardatabase|tablestylemedium7">Table Style Medium 7</item> + <item id="TableStyleMedium8" translatable="yes" context="sidebardatabase|tablestylemedium8">Table Style Medium 8</item> + <item id="TableStyleMedium9" translatable="yes" context="sidebardatabase|tablestylemedium9">Table Style Medium 9</item> + <item id="TableStyleMedium10" translatable="yes" context="sidebardatabase|tablestylemedium10">Table Style Medium 10</item> + <item id="TableStyleMedium11" translatable="yes" context="sidebardatabase|tablestylemedium11">Table Style Medium 11</item> + <item id="TableStyleMedium12" translatable="yes" context="sidebardatabase|tablestylemedium12">Table Style Medium 12</item> + <item id="TableStyleMedium13" translatable="yes" context="sidebardatabase|tablestylemedium13">Table Style Medium 13</item> + <item id="TableStyleMedium14" translatable="yes" context="sidebardatabase|tablestylemedium14">Table Style Medium 14</item> + <item id="TableStyleMedium15" translatable="yes" context="sidebardatabase|tablestylemedium15">Table Style Medium 15</item> + <item id="TableStyleMedium16" translatable="yes" context="sidebardatabase|tablestylemedium16">Table Style Medium 16</item> + <item id="TableStyleMedium17" translatable="yes" context="sidebardatabase|tablestylemedium17">Table Style Medium 17</item> + <item id="TableStyleMedium18" translatable="yes" context="sidebardatabase|tablestylemedium18">Table Style Medium 18</item> + <item id="TableStyleMedium19" translatable="yes" context="sidebardatabase|tablestylemedium19">Table Style Medium 19</item> + <item id="TableStyleMedium20" translatable="yes" context="sidebardatabase|tablestylemedium20">Table Style Medium 20</item> + <item id="TableStyleMedium21" translatable="yes" context="sidebardatabase|tablestylemedium21">Table Style Medium 21</item> + <item id="TableStyleMedium22" translatable="yes" context="sidebardatabase|tablestylemedium22">Table Style Medium 22</item> + <item id="TableStyleMedium23" translatable="yes" context="sidebardatabase|tablestylemedium23">Table Style Medium 23</item> + <item id="TableStyleMedium24" translatable="yes" context="sidebardatabase|tablestylemedium24">Table Style Medium 24</item> + <item id="TableStyleMedium25" translatable="yes" context="sidebardatabase|tablestylemedium25">Table Style Medium 25</item> + <item id="TableStyleMedium26" translatable="yes" context="sidebardatabase|tablestylemedium26">Table Style Medium 26</item> + <item id="TableStyleMedium27" translatable="yes" context="sidebardatabase|tablestylemedium27">Table Style Medium 27</item> + <item id="TableStyleMedium28" translatable="yes" context="sidebardatabase|tablestylemedium28">Table Style Medium 28</item> + <item id="TableStyleDark1" translatable="yes" context="sidebardatabase|tablestyledark1">Table Style Dark 1</item> + <item id="TableStyleDark2" translatable="yes" context="sidebardatabase|tablestyledark2">Table Style Dark 2</item> + <item id="TableStyleDark3" translatable="yes" context="sidebardatabase|tablestyledark3">Table Style Dark 3</item> + <item id="TableStyleDark4" translatable="yes" context="sidebardatabase|tablestyledark4">Table Style Dark 4</item> + <item id="TableStyleDark5" translatable="yes" context="sidebardatabase|tablestyledark5">Table Style Dark 5</item> + <item id="TableStyleDark6" translatable="yes" context="sidebardatabase|tablestyledark6">Table Style Dark 6</item> + <item id="TableStyleDark7" translatable="yes" context="sidebardatabase|tablestyledark7">Table Style Dark 7</item> + <item id="TableStyleDark8" translatable="yes" context="sidebardatabase|tablestyledark8">Table Style Dark 8</item> + <item id="TableStyleDark9" translatable="yes" context="sidebardatabase|tablestyledark9">Table Style Dark 9</item> + <item id="TableStyleDark10" translatable="yes" context="sidebardatabase|tablestyledark10">Table Style Dark 10</item> + <item id="TableStyleDark11" translatable="yes" context="sidebardatabase|tablestyledark11">Table Style Dark 11</item> + </items> + <child internal-child="accessible"> + <object class="AtkObject" id="cb_styles-atkobject"> + <property name="AtkObject::accessible-name" translatable="yes" context="sidebardatabase|tablestylenames">Table Style Names</property> + <property name="AtkObject::accessible-description" translatable="yes" context="sidebardatabase|defaulttablestylenames">Default Table Style Names</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="left-attach">0</property> + <property name="top-attach">2</property> + </packing> + </child> </object> </interface> diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index 29930748f213..1ca26e6a2bac 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -560,6 +560,7 @@ public: const OUString* pIconName, VirtualDevice* pImageSurface) override; virtual void remove(int pos) override; virtual void set_active(int pos) override; + virtual void set_active_id(const OUString& rStr) override; }; class JSComboBox final : public JSWidget<SalInstanceComboBoxWithEdit, ::ComboBox>, diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index c92003d9038c..843d023f5f58 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -1266,6 +1266,12 @@ void JSListBox::set_active(int pos) sendUpdate(); } +void JSListBox::set_active_id(const OUString& rStr) +{ + sal_uInt16 nPos = find_id(rStr); + set_active(nPos); +} + JSComboBox::JSComboBox(JSDialogSender* pSender, ::ComboBox* pComboBox, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : JSWidget<SalInstanceComboBoxWithEdit, ::ComboBox>(pSender, pComboBox, pBuilder,
