officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu | 5 sc/Library_sc.mk | 2 sc/UIConfig_scalc.mk | 1 sc/inc/TableStylesControl.hxx | 32 + sc/source/ui/app/scdll.cxx | 2 sc/source/ui/cctrl/TableStylesBox.cxx | 141 ++++++ sc/source/ui/cctrl/TableStylesControl.cxx | 65 +++ sc/source/ui/inc/TableStylesBox.hxx | 42 ++ sc/source/ui/view/tabview3.cxx | 1 sc/uiconfig/scalc/ui/notebookbar_online.ui | 25 + sc/uiconfig/scalc/ui/tablestylesbox.ui | 202 ++++++++++ sfx2/source/control/unoctitm.cxx | 1 vcl/jsdialog/enabled.cxx | 1 vcl/jsdialog/jsdialogbuilder.cxx | 4 14 files changed, 521 insertions(+), 3 deletions(-)
New commits: commit 118210092359111d0040332e0b0726e482263804 Author: Balazs Varga <[email protected]> AuthorDate: Wed Nov 26 09:04:21 2025 +0100 Commit: Balazs Varga <[email protected]> CommitDate: Thu Dec 4 09:27:28 2025 +0100 Table Styles: Add NoteBookBar implementation for table styles New ui file for the notebookbars which includes all the database settings options. Also fix some view shell issue when we deselect a table context and Insert Table is not active Since JSCheckButton is kind of a button which can have a default state (false) always need to send Update to online for registering the api call connecting to the checkbutton. Change-Id: Ie9701d2897b389c2a0192650a2f907e5fae59673 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194917 Reviewed-by: Gökay ŞATIR <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu index fb5406a7e5b4..8b7c974ca840 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu @@ -1167,6 +1167,11 @@ <value>1</value> </prop> </node> + <node oor:name=".uno:DatabaseSettings" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Table Style Options</value> + </prop> + </node> <node oor:name=".uno:DataTableMenu" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">~Table</value> diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk index dc46636209e6..f4eda1ad1ebd 100644 --- a/sc/Library_sc.mk +++ b/sc/Library_sc.mk @@ -404,6 +404,8 @@ $(eval $(call gb_Library_add_exception_objects,sc,\ sc/source/ui/cctrl/tbzoomsliderctrl \ sc/source/ui/cctrl/SheetViewBox \ sc/source/ui/cctrl/SheetViewControl \ + sc/source/ui/cctrl/TableStylesBox \ + sc/source/ui/cctrl/TableStylesControl \ sc/source/ui/condformat/condformatdlg \ sc/source/ui/condformat/condformatdlgentry \ sc/source/ui/condformat/condformatdlgdata \ diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk index e330e6d7a8ab..3607c7d91ad4 100644 --- a/sc/UIConfig_scalc.mk +++ b/sc/UIConfig_scalc.mk @@ -265,6 +265,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\ sc/uiconfig/scalc/ui/subtotaloptionspage \ sc/uiconfig/scalc/ui/subtotalgrppage \ sc/uiconfig/scalc/ui/statisticsinfopage \ + sc/uiconfig/scalc/ui/tablestylesbox \ sc/uiconfig/scalc/ui/tabcolordialog \ sc/uiconfig/scalc/ui/textimportoptions \ sc/uiconfig/scalc/ui/textimportcsv \ diff --git a/sc/inc/TableStylesControl.hxx b/sc/inc/TableStylesControl.hxx new file mode 100644 index 000000000000..a0bf7aeb002a --- /dev/null +++ b/sc/inc/TableStylesControl.hxx @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#pragma once + +#include <sfx2/tbxctrl.hxx> + +namespace sc +{ +/** Toolbox control for showing the Table Styles in the toolbar / notebookbar */ +class TableStylesControl final : public SfxToolBoxControl +{ +public: + SFX_DECL_TOOLBOX_CONTROL(); + + TableStylesControl(sal_uInt16 nSlotId, ToolBoxItemId nId, ToolBox& rToolBox); + virtual ~TableStylesControl() override; + + virtual void StateChangedAtToolBoxControl(sal_uInt16 nSID, SfxItemState eState, + const SfxPoolItem* pState) override; + virtual VclPtr<InterimItemWindow> CreateItemWindow(vcl::Window* pParent) override; +}; + +} // end of namespace sc + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/app/scdll.cxx b/sc/source/ui/app/scdll.cxx index b15e3c3fd605..5766417d13ad 100644 --- a/sc/source/ui/app/scdll.cxx +++ b/sc/source/ui/app/scdll.cxx @@ -74,6 +74,7 @@ #include <tbzoomsliderctrl.hxx> #include <svx/zoomsliderctrl.hxx> #include <SheetViewControl.hxx> +#include <TableStylesControl.hxx> #include <svx/xmlsecctrl.hxx> // Child windows @@ -152,6 +153,7 @@ void ScDLL::Init() svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod ); sc::ScNumberFormatControl ::RegisterControl(SID_NUMBER_TYPE_FORMAT, pMod ); sc::SheetViewControl::RegisterControl(FID_CURRENT_SHEET_VIEW, pMod); + sc::TableStylesControl ::RegisterControl(SID_DATABASE_SETTINGS, pMod); SvxGrafModeToolBoxControl ::RegisterControl(SID_ATTR_GRAF_MODE, pMod); SvxGrafRedToolBoxControl ::RegisterControl(SID_ATTR_GRAF_RED, pMod); diff --git a/sc/source/ui/cctrl/TableStylesBox.cxx b/sc/source/ui/cctrl/TableStylesBox.cxx new file mode 100644 index 000000000000..b239de1cc69c --- /dev/null +++ b/sc/source/ui/cctrl/TableStylesBox.cxx @@ -0,0 +1,141 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <TableStylesBox.hxx> + +#include <sfx2/dispatch.hxx> +#include <sfx2/viewfrm.hxx> +#include <sfx2/viewsh.hxx> +#include <svl/intitem.hxx> +#include <svl/itemset.hxx> + +#include <globstr.hrc> +#include <scresid.hxx> +#include <sc.hrc> +#include <docsh.hxx> +#include <viewdata.hxx> + +TableStylesBox::TableStylesBox(vcl::Window* pParent) + : InterimItemWindow(pParent, u"modules/scalc/ui/tablestylesbox.ui"_ustr, u"TableStylesBox"_ustr, + true, reinterpret_cast<sal_uInt64>(SfxViewShell::Current())) + , m_xChkHeaderRow(m_xBuilder->weld_check_button(u"chk_header_row2"_ustr)) + , m_xChkTotalRow(m_xBuilder->weld_check_button(u"chk_total_row2"_ustr)) + , m_xChkFilterButtons(m_xBuilder->weld_check_button(u"chk_filter_buttons2"_ustr)) + , m_xChkBandedRows(m_xBuilder->weld_check_button(u"chk_banded_rows2"_ustr)) + , m_xChkBandedColumns(m_xBuilder->weld_check_button(u"chk_banded_cols2"_ustr)) + , m_xChkFirstColumn(m_xBuilder->weld_check_button(u"chk_first_column2"_ustr)) + , m_xChkLastColumn(m_xBuilder->weld_check_button(u"chk_last_column2"_ustr)) + , m_xCmbStyle(m_xBuilder->weld_combo_box(u"tablestyles_cb2"_ustr)) +{ + m_xChkHeaderRow->connect_toggled(LINK(this, TableStylesBox, ToggleHdl)); + m_xChkTotalRow->connect_toggled(LINK(this, TableStylesBox, ToggleHdl)); + m_xChkFilterButtons->connect_toggled(LINK(this, TableStylesBox, ToggleHdl)); + m_xChkBandedRows->connect_toggled(LINK(this, TableStylesBox, ToggleHdl)); + m_xChkBandedColumns->connect_toggled(LINK(this, TableStylesBox, ToggleHdl)); + m_xChkFirstColumn->connect_toggled(LINK(this, TableStylesBox, ToggleHdl)); + m_xChkLastColumn->connect_toggled(LINK(this, TableStylesBox, ToggleHdl)); + + m_xCmbStyle->connect_changed(LINK(this, TableStylesBox, SelectHdl)); + m_xCmbStyle->connect_key_press(LINK(this, TableStylesBox, KeyInputHdl)); + // to have enough space for the entries since we have two row of entries + SetSizePixel(pParent->get_preferred_size() * 2); + // TODO: no Table tab page for core +} + +void TableStylesBox::dispose() +{ + m_xChkHeaderRow.reset(); + m_xChkTotalRow.reset(); + m_xChkFilterButtons.reset(); + m_xChkBandedRows.reset(); + m_xChkBandedColumns.reset(); + m_xChkFirstColumn.reset(); + m_xChkLastColumn.reset(); + m_xCmbStyle.reset(); + + InterimItemWindow::dispose(); +} + +TableStylesBox::~TableStylesBox() { disposeOnce(); } + +void TableStylesBox::Update(const ScDatabaseSettingItem* pItem) +{ + m_xChkHeaderRow->set_active(pItem->HasHeaderRow()); + m_xChkTotalRow->set_active(pItem->HasTotalRow()); + m_xChkFirstColumn->set_active(pItem->HasFirstCol()); + m_xChkLastColumn->set_active(pItem->HasLastCol()); + 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()); +} + +IMPL_LINK_NOARG(TableStylesBox, ToggleHdl, weld::Toggleable&, void) +{ + auto* pViewFrame = SfxViewFrame::Current(); + if (!pViewFrame) + return; + + SfxDispatcher* pDispatcher = pViewFrame->GetBindings().GetDispatcher(); + if (!pDispatcher) + return; + + 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()); + pDispatcher->ExecuteList(SID_DATABASE_SETTINGS, SfxCallMode::RECORD, { &aItem }); + pViewFrame->GetWindow().GrabFocus(); +} + +IMPL_LINK_NOARG(TableStylesBox, SelectHdl, weld::ComboBox&, void) +{ + auto* pViewFrame = SfxViewFrame::Current(); + if (!pViewFrame) + return; + + SfxDispatcher* pDispatcher = pViewFrame->GetBindings().GetDispatcher(); + if (!pDispatcher) + return; + + ScViewData* pViewData = ScDocShell::GetViewData(); + if (!pViewData) + return; + + const ScAddress aAddr = pViewData->GetCurPos(); + const ScDBData* pDBData = pViewData->GetDocument().GetDBAtCursor( + aAddr.Col(), aAddr.Row(), aAddr.Tab(), ScDBDataPortion::AREA); + + bool bChanged = true; + const OUString sValue = m_xCmbStyle->get_active_id(); + if (pDBData && pDBData->GetTableStyleInfo()) + { + const ScTableStyleParam* pParam = pDBData->GetTableStyleInfo(); + if (pParam->maStyleID == sValue) + bChanged = false; + } + + if (bChanged) + { + 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(), sValue); + pDispatcher->ExecuteList(SID_DATABASE_SETTINGS, SfxCallMode::RECORD, { &aItem }); + pViewFrame->GetWindow().GrabFocus(); + } +} + +IMPL_LINK(TableStylesBox, KeyInputHdl, const KeyEvent&, rKEvt, bool) +{ + return ChildKeyInput(rKEvt); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/cctrl/TableStylesControl.cxx b/sc/source/ui/cctrl/TableStylesControl.cxx new file mode 100644 index 000000000000..701c368c5dc4 --- /dev/null +++ b/sc/source/ui/cctrl/TableStylesControl.cxx @@ -0,0 +1,65 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <TableStylesControl.hxx> +#include <TableStylesBox.hxx> +#include <svl/intitem.hxx> +#include <vcl/toolbox.hxx> +#include <dbdata.hxx> + +using namespace sc; + +SFX_IMPL_TOOLBOX_CONTROL(TableStylesControl, ScDatabaseSettingItem); + +TableStylesControl::TableStylesControl(sal_uInt16 nSlotId, ToolBoxItemId nId, ToolBox& rTbx) + : SfxToolBoxControl(nSlotId, nId, rTbx) +{ +} + +TableStylesControl::~TableStylesControl() {} + +void TableStylesControl::StateChangedAtToolBoxControl(sal_uInt16, SfxItemState eState, + const SfxPoolItem* pState) +{ + ToolBoxItemId nId = GetId(); + ToolBox& rToolBox = GetToolBox(); + TableStylesBox* pTableStylesBox = static_cast<TableStylesBox*>(rToolBox.GetItemWindow(nId)); + + if (SfxItemState::DISABLED == eState) + pTableStylesBox->Disable(); + else + pTableStylesBox->Enable(); + + rToolBox.EnableItem(nId, SfxItemState::DISABLED != eState); + + switch (eState) + { + case SfxItemState::DEFAULT: + { + const ScDatabaseSettingItem* pDBItem + = static_cast<const ScDatabaseSettingItem*>(pState); + if (pDBItem) + pTableStylesBox->Update(pDBItem); + break; + } + + default: + break; + } +} + +VclPtr<InterimItemWindow> TableStylesControl::CreateItemWindow(vcl::Window* pParent) +{ + VclPtr<TableStylesBox> pControl = VclPtr<TableStylesBox>::Create(pParent); + pControl->Show(); + + return pControl; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/inc/TableStylesBox.hxx b/sc/source/ui/inc/TableStylesBox.hxx new file mode 100644 index 000000000000..ded18609471b --- /dev/null +++ b/sc/source/ui/inc/TableStylesBox.hxx @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#pragma once + +#include <vcl/InterimItemWindow.hxx> +#include <dbdata.hxx> + +/** Box / container for the combobox for showing / selecting the sheet view */ +class TableStylesBox final : public InterimItemWindow +{ +public: + explicit TableStylesBox(vcl::Window* pParent); + virtual void dispose() override; + virtual ~TableStylesBox() override; + + void Update(const ScDatabaseSettingItem* pItem); + + weld::ComboBox* getWidget() { return m_xCmbStyle.get(); } + +private: + std::unique_ptr<weld::CheckButton> m_xChkHeaderRow; + std::unique_ptr<weld::CheckButton> m_xChkTotalRow; + std::unique_ptr<weld::CheckButton> m_xChkFilterButtons; + std::unique_ptr<weld::CheckButton> m_xChkBandedRows; + 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; + + DECL_LINK(ToggleHdl, weld::Toggleable&, void); + DECL_LINK(SelectHdl, weld::ComboBox&, void); + DECL_LINK(KeyInputHdl, const KeyEvent&, bool); +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx index b11a15ac89c0..3f811ef10fe3 100644 --- a/sc/source/ui/view/tabview3.cxx +++ b/sc/source/ui/view/tabview3.cxx @@ -568,6 +568,7 @@ void ScTabView::SelectionChanged(bool bFromPaste) rBindings.Invalidate( SID_CURRENTCELL ); // -> Navigator rBindings.Invalidate( SID_AUTO_FILTER ); // -> Menu + rBindings.Invalidate( SID_INSERT_CALCTABLE ); rBindings.Invalidate( FID_NOTE_VISIBLE ); rBindings.Invalidate( FID_SHOW_NOTE ); rBindings.Invalidate( FID_HIDE_NOTE ); diff --git a/sc/uiconfig/scalc/ui/notebookbar_online.ui b/sc/uiconfig/scalc/ui/notebookbar_online.ui index ac926fe20410..ccabe97190c4 100644 --- a/sc/uiconfig/scalc/ui/notebookbar_online.ui +++ b/sc/uiconfig/scalc/ui/notebookbar_online.ui @@ -121,6 +121,31 @@ <property name="position">3</property> </packing> </child> + <child> + <object class="sfxlo-NotebookbarToolBox" id="DatabaseSettingsToolBox"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="valign">center</property> + <property name="hexpand">True</property> + <property name="toolbar_style">both</property> + <property name="show_arrow">False</property> + <child> + <object class="GtkToolButton" id="Home-DatabaseSettings"> + <property name="visible">True</property> + <property name="action_name">.uno:DatabaseSettings</property> + </object> + <packing> + <property name="expand">True</property> + <property name="homogeneous">True</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> </object> <packing> <property name="left_attach">0</property> diff --git a/sc/uiconfig/scalc/ui/tablestylesbox.ui b/sc/uiconfig/scalc/ui/tablestylesbox.ui new file mode 100644 index 000000000000..134d3037f190 --- /dev/null +++ b/sc/uiconfig/scalc/ui/tablestylesbox.ui @@ -0,0 +1,202 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.38.2 --> +<interface domain="sc"> + <requires lib="gtk+" version="3.20"/> + <object class="GtkBox" id="TableStylesBox"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="valign">center</property> + <property name="spacing">6</property> + <child> + <!-- n-columns=4 n-rows=2 --> + <object class="GtkGrid" id="grid1"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="valign">center</property> + <property name="column-spacing">4</property> + <child> + <object class="GtkCheckButton" id="chk_header_row2"> + <property name="label" translatable="yes" context="tablestylebox|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> + <property name="left-attach">0</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="chk_total_row2"> + <property name="label" translatable="yes" context="tablestylebox|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> + <property name="left-attach">0</property> + <property name="top-attach">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="chk_filter_buttons2"> + <property name="label" translatable="yes" context="tablestylebox|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> + <property name="left-attach">3</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="chk_first_column2"> + <property name="label" translatable="yes" context="tablestylebox|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> + <property name="left-attach">2</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="chk_last_column2"> + <property name="label" translatable="yes" context="tablestylebox|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> + <property name="left-attach">2</property> + <property name="top-attach">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="chk_banded_rows2"> + <property name="label" translatable="yes" context="tablestylebox|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> + <property name="left-attach">1</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="chk_banded_cols2"> + <property name="label" translatable="yes" context="tablestylebox|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> + <property name="left-attach">1</property> + <property name="top-attach">1</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="tablestyles_cb2"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="active">0</property> + <items> + <item id="none" translatable="yes" context="tablestylebox|none">None</item> + <item id="TableStyleLight1" translatable="yes" context="tablestylebox|tablestylelight1">Table Style Light 1</item> + <item id="TableStyleLight2" translatable="yes" context="tablestylebox|tablestylelight2">Table Style Light 2</item> + <item id="TableStyleLight3" translatable="yes" context="tablestylebox|tablestylelight3">Table Style Light 3</item> + <item id="TableStyleLight4" translatable="yes" context="tablestylebox|tablestylelight4">Table Style Light 4</item> + <item id="TableStyleLight5" translatable="yes" context="tablestylebox|tablestylelight5">Table Style Light 5</item> + <item id="TableStyleLight6" translatable="yes" context="tablestylebox|tablestylelight6">Table Style Light 6</item> + <item id="TableStyleLight7" translatable="yes" context="tablestylebox|tablestylelight7">Table Style Light 7</item> + <item id="TableStyleLight8" translatable="yes" context="tablestylebox|tablestylelight8">Table Style Light 8</item> + <item id="TableStyleLight9" translatable="yes" context="tablestylebox|tablestylelight9">Table Style Light 9</item> + <item id="TableStyleLight10" translatable="yes" context="tablestylebox|tablestylelight10">Table Style Light 10</item> + <item id="TableStyleLight11" translatable="yes" context="tablestylebox|tablestylelight11">Table Style Light 11</item> + <item id="TableStyleLight12" translatable="yes" context="tablestylebox|tablestylelight12">Table Style Light 12</item> + <item id="TableStyleLight13" translatable="yes" context="tablestylebox|tablestylelight13">Table Style Light 13</item> + <item id="TableStyleLight14" translatable="yes" context="tablestylebox|tablestylelight14">Table Style Light 14</item> + <item id="TableStyleLight15" translatable="yes" context="tablestylebox|tablestylelight15">Table Style Light 15</item> + <item id="TableStyleLight16" translatable="yes" context="tablestylebox|tablestylelight16">Table Style Light 16</item> + <item id="TableStyleLight17" translatable="yes" context="tablestylebox|tablestylelight17">Table Style Light 17</item> + <item id="TableStyleLight18" translatable="yes" context="tablestylebox|tablestylelight18">Table Style Light 18</item> + <item id="TableStyleLight19" translatable="yes" context="tablestylebox|tablestylelight19">Table Style Light 19</item> + <item id="TableStyleLight20" translatable="yes" context="tablestylebox|tablestylelight20">Table Style Light 20</item> + <item id="TableStyleLight21" translatable="yes" context="tablestylebox|tablestylelight21">Table Style Light 21</item> + <item id="TableStyleMedium1" translatable="yes" context="tablestylebox|tablestylemedium1">Table Style Medium 1</item> + <item id="TableStyleMedium2" translatable="yes" context="tablestylebox|tablestylemedium2">Table Style Medium 2</item> + <item id="TableStyleMedium3" translatable="yes" context="tablestylebox|tablestylemedium3">Table Style Medium 3</item> + <item id="TableStyleMedium4" translatable="yes" context="tablestylebox|tablestylemedium4">Table Style Medium 4</item> + <item id="TableStyleMedium5" translatable="yes" context="tablestylebox|tablestylemedium5">Table Style Medium 5</item> + <item id="TableStyleMedium6" translatable="yes" context="tablestylebox|tablestylemedium6">Table Style Medium 6</item> + <item id="TableStyleMedium7" translatable="yes" context="tablestylebox|tablestylemedium7">Table Style Medium 7</item> + <item id="TableStyleMedium8" translatable="yes" context="tablestylebox|tablestylemedium8">Table Style Medium 8</item> + <item id="TableStyleMedium9" translatable="yes" context="tablestylebox|tablestylemedium9">Table Style Medium 9</item> + <item id="TableStyleMedium10" translatable="yes" context="tablestylebox|tablestylemedium10">Table Style Medium 10</item> + <item id="TableStyleMedium11" translatable="yes" context="tablestylebox|tablestylemedium11">Table Style Medium 11</item> + <item id="TableStyleMedium12" translatable="yes" context="tablestylebox|tablestylemedium12">Table Style Medium 12</item> + <item id="TableStyleMedium13" translatable="yes" context="tablestylebox|tablestylemedium13">Table Style Medium 13</item> + <item id="TableStyleMedium14" translatable="yes" context="tablestylebox|tablestylemedium14">Table Style Medium 14</item> + <item id="TableStyleMedium15" translatable="yes" context="tablestylebox|tablestylemedium15">Table Style Medium 15</item> + <item id="TableStyleMedium16" translatable="yes" context="tablestylebox|tablestylemedium16">Table Style Medium 16</item> + <item id="TableStyleMedium17" translatable="yes" context="tablestylebox|tablestylemedium17">Table Style Medium 17</item> + <item id="TableStyleMedium18" translatable="yes" context="tablestylebox|tablestylemedium18">Table Style Medium 18</item> + <item id="TableStyleMedium19" translatable="yes" context="tablestylebox|tablestylemedium19">Table Style Medium 19</item> + <item id="TableStyleMedium20" translatable="yes" context="tablestylebox|tablestylemedium20">Table Style Medium 20</item> + <item id="TableStyleMedium21" translatable="yes" context="tablestylebox|tablestylemedium21">Table Style Medium 21</item> + <item id="TableStyleMedium22" translatable="yes" context="tablestylebox|tablestylemedium22">Table Style Medium 22</item> + <item id="TableStyleMedium23" translatable="yes" context="tablestylebox|tablestylemedium23">Table Style Medium 23</item> + <item id="TableStyleMedium24" translatable="yes" context="tablestylebox|tablestylemedium24">Table Style Medium 24</item> + <item id="TableStyleMedium25" translatable="yes" context="tablestylebox|tablestylemedium25">Table Style Medium 25</item> + <item id="TableStyleMedium26" translatable="yes" context="tablestylebox|tablestylemedium26">Table Style Medium 26</item> + <item id="TableStyleMedium27" translatable="yes" context="tablestylebox|tablestylemedium27">Table Style Medium 27</item> + <item id="TableStyleMedium28" translatable="yes" context="tablestylebox|tablestylemedium28">Table Style Medium 28</item> + <item id="TableStyleDark1" translatable="yes" context="tablestylebox|tablestyledark1">Table Style Dark 1</item> + <item id="TableStyleDark2" translatable="yes" context="tablestylebox|tablestyledark2">Table Style Dark 2</item> + <item id="TableStyleDark3" translatable="yes" context="tablestylebox|tablestyledark3">Table Style Dark 3</item> + <item id="TableStyleDark4" translatable="yes" context="tablestylebox|tablestyledark4">Table Style Dark 4</item> + <item id="TableStyleDark5" translatable="yes" context="tablestylebox|tablestyledark5">Table Style Dark 5</item> + <item id="TableStyleDark6" translatable="yes" context="tablestylebox|tablestyledark6">Table Style Dark 6</item> + <item id="TableStyleDark7" translatable="yes" context="tablestylebox|tablestyledark7">Table Style Dark 7</item> + <item id="TableStyleDark8" translatable="yes" context="tablestylebox|tablestyledark8">Table Style Dark 8</item> + <item id="TableStyleDark9" translatable="yes" context="tablestylebox|tablestyledark9">Table Style Dark 9</item> + <item id="TableStyleDark10" translatable="yes" context="tablestylebox|tablestyledark10">Table Style Dark 10</item> + <item id="TableStyleDark11" translatable="yes" context="tablestylebox|tablestyledark11">Table Style Dark 11</item> + </items> + <child internal-child="accessible"> + <object class="AtkObject" id="tablestyles_cb2-atkobject"> + <property name="AtkObject::accessible-name" translatable="yes" context="tablestylebox|tablestyles_cb|accessible_name">Table Styles</property> + </object> + </child> + </object> + <packing> + <property name="left-attach">3</property> + <property name="top-attach">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> +</interface> diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx index 7bef4796d3c8..660ce33229c4 100644 --- a/sfx2/source/control/unoctitm.cxx +++ b/sfx2/source/control/unoctitm.cxx @@ -1353,6 +1353,7 @@ const std::map<std::u16string_view, KitUnoCommand>& GetKitUnoCommandList() { u"EditHeaderAndFooter", { PayloadType::EnabledPayload, true } }, { u"InsertCalcTable", { PayloadType::EnabledPayload, true } }, { u"RemoveCalcTable", { PayloadType::EnabledPayload, true } }, + { u"DatabaseSettings", { PayloadType::EnabledPayload, true } }, { u"InsertSparkline", { PayloadType::EnabledPayload, true } }, { u"DeleteSparkline", { PayloadType::EnabledPayload, true } }, { u"DeleteSparklineGroup", { PayloadType::EnabledPayload, true } }, diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx index 856470d462ec..381f36d7b444 100644 --- a/vcl/jsdialog/enabled.cxx +++ b/vcl/jsdialog/enabled.cxx @@ -500,6 +500,7 @@ constexpr auto NotebookbarList = frozen::make_unordered_set<std::u16string_view>({ { u"modules/scalc/ui/numberbox.ui" }, { u"modules/scalc/ui/sheetviewbox.ui" }, + { u"modules/scalc/ui/tablestylesbox.ui" }, { u"svx/ui/fontnamebox.ui" }, { u"svx/ui/fontsizebox.ui" }, { u"svx/ui/stylespreview.ui" }, diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index 843d023f5f58..7f2f44313586 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -1560,10 +1560,8 @@ JSCheckButton::JSCheckButton(JSDialogSender* pSender, ::CheckBox* pCheckBox, void JSCheckButton::set_active(bool active) { - bool bWasActive = get_active(); SalInstanceCheckButton::set_active(active); - if (bWasActive != active) - sendUpdate(); + sendUpdate(); } JSDrawingArea::JSDrawingArea(JSDialogSender* pSender, VclDrawingArea* pDrawingArea,
