officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu | 8 sc/Library_sc.mk | 1 sc/UIConfig_scalc.mk | 1 sc/inc/SheetView.hxx | 7 sc/inc/SheetViewManager.hxx | 3 sc/inc/sc.hrc | 1 sc/sdi/scalc.sdi | 18 + sc/sdi/tabvwsh.sdi | 1 sc/source/core/data/SheetView.cxx | 3 sc/source/core/data/SheetViewManager.cxx | 8 sc/source/ui/dialogs/SelectSheetViewDialog.cxx | 92 +++++ sc/source/ui/inc/dialogs/SelectSheetViewDialog.hxx | 42 ++ sc/source/ui/inc/viewfunc.hxx | 1 sc/source/ui/view/tabvwsh3.cxx | 18 + sc/source/ui/view/tabvwsha.cxx | 1 sc/source/ui/view/viewfun3.cxx | 28 - sc/uiconfig/scalc/ui/selectsheetviewdialog.ui | 161 ++++++++++ vcl/jsdialog/enabled.cxx | 3 18 files changed, 380 insertions(+), 17 deletions(-)
New commits: commit 3b0ea28e061f9335b907ae8febfadf8fc04c599b Author: Tomaž Vajngerl <[email protected]> AuthorDate: Mon Oct 6 23:49:50 2025 +0900 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Fri Oct 10 14:00:06 2025 +0200 sc: add a SelectSheetView command to select a sheet view This adds a command that opens a dialog to show all the available sheet views for the current sheet. Selecting a sheet view will switch to that sheet view (or default view) on OK. This also adds name as a parameter to SheetView class, so we can store a name of the sheet view. The name is currently generated and is in a format of "Temp SheetView #". Change-Id: I11accc30780991f74da97120bb4085ef283a0564 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191978 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192149 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[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 a9d1175b75c4..3dcb94e9369e 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu @@ -2725,6 +2725,14 @@ <value>1</value> </prop> </node> + <node oor:name=".uno:SelectSheetView" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Select Sheet View</value> + </prop> + <prop oor:name="Properties" oor:type="xs:int"> + <value>1</value> + </prop> + </node> <node oor:name=".uno:ExitSheetView" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Exit Sheet View</value> diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk index 724c24b1de00..7a4c6a34cc14 100644 --- a/sc/Library_sc.mk +++ b/sc/Library_sc.mk @@ -435,6 +435,7 @@ $(eval $(call gb_Library_add_exception_objects,sc,\ sc/source/ui/dbgui/sfiltdlg \ sc/source/ui/dbgui/validate \ sc/source/ui/dialogs/searchresults \ + sc/source/ui/dialogs/SelectSheetViewDialog \ sc/source/ui/dialogs/SparklineDialog \ sc/source/ui/dialogs/SparklineDataRangeDialog \ sc/source/ui/docshell/arealink \ diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk index 84ff69d9bc3e..6b4026af9734 100644 --- a/sc/UIConfig_scalc.mk +++ b/sc/UIConfig_scalc.mk @@ -228,6 +228,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\ sc/uiconfig/scalc/ui/searchresults \ sc/uiconfig/scalc/ui/selectdatasource \ sc/uiconfig/scalc/ui/selectrange \ + sc/uiconfig/scalc/ui/selectsheetviewdialog \ sc/uiconfig/scalc/ui/selectsource \ sc/uiconfig/scalc/ui/sheetprintpage \ sc/uiconfig/scalc/ui/sharedocumentdlg \ diff --git a/sc/inc/SheetView.hxx b/sc/inc/SheetView.hxx index 4411f56b7b1d..4f4e2258004f 100644 --- a/sc/inc/SheetView.hxx +++ b/sc/inc/SheetView.hxx @@ -8,7 +8,9 @@ */ #pragma once + #include "types.hxx" +#include <rtl/ustring.hxx> class ScTable; @@ -24,13 +26,16 @@ class SheetView private: ScTable* mpTable = nullptr; bool mbSynced = true; + OUString maName; public: - SheetView(ScTable* pTable); + SheetView(ScTable* pTable, OUString const& rName); ScTable* getTablePointer() const; SCTAB getTableNumber() const; + OUString const& GetName() { return maName; } + /** A sheet view is valid if the pointer to the table is set */ bool isValid() const; diff --git a/sc/inc/SheetViewManager.hxx b/sc/inc/SheetViewManager.hxx index b8562c568eeb..3687197d3619 100644 --- a/sc/inc/SheetViewManager.hxx +++ b/sc/inc/SheetViewManager.hxx @@ -26,12 +26,15 @@ class SC_DLLPUBLIC SheetViewManager { private: std::vector<std::shared_ptr<SheetView>> maViews; + sal_Int32 maNameCounter = 0; bool isValidSheetViewID(SheetViewID nID) const { return nID >= 0 && o3tl::make_unsigned(nID) < maViews.size(); } + OUString generateName(); + public: SheetViewManager(); diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc index cd2e11463981..51e78553ae2b 100644 --- a/sc/inc/sc.hrc +++ b/sc/inc/sc.hrc @@ -290,6 +290,7 @@ class SvxZoomSliderItem; #define FID_SWITCH_TO_NEXT_SHEET_VIEW (VIEW_MENU_START + 13) #define FID_SWITCH_TO_PREVIOUS_SHEET_VIEW (VIEW_MENU_START + 14) #define FID_EXIT_SHEET_VIEW (VIEW_MENU_START + 15) +#define FID_SELECT_SHEET_VIEW (VIEW_MENU_START + 16) #define FID_CHG_ACCEPT (VIEW_MENU_START + 18)// DANGER DIRTY ID #define FID_CHG_COMMENT (VIEW_MENU_START + 19)// DANGER DIRTY ID diff --git a/sc/sdi/scalc.sdi b/sc/sdi/scalc.sdi index e05cfa78c43b..ebab09fef7fc 100644 --- a/sc/sdi/scalc.sdi +++ b/sc/sdi/scalc.sdi @@ -6121,6 +6121,24 @@ SfxBoolItem SwitchToPreviousSheetView FID_SWITCH_TO_PREVIOUS_SHEET_VIEW GroupId = SfxGroupId::View ] +SfxBoolItem SelectSheetView FID_SELECT_SHEET_VIEW +[ + /* flags */ + AutoUpdate = FALSE, + FastCall = FALSE, + ReadOnlyDoc = TRUE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + + /* config */ + AccelConfig = TRUE, + MenuConfig = FALSE, + ToolBoxConfig = FALSE, + GroupId = SfxGroupId::View +] + SfxBoolItem ExitSheetView FID_EXIT_SHEET_VIEW [ /* flags */ diff --git a/sc/sdi/tabvwsh.sdi b/sc/sdi/tabvwsh.sdi index e3bb2dfedbcb..753e606b8bec 100644 --- a/sc/sdi/tabvwsh.sdi +++ b/sc/sdi/tabvwsh.sdi @@ -212,6 +212,7 @@ interface TableEditView FID_SWITCH_TO_NEXT_SHEET_VIEW [ ExecMethod = Execute; StateMethod = GetState; ] FID_SWITCH_TO_PREVIOUS_SHEET_VIEW [ ExecMethod = Execute; StateMethod = GetState; ] FID_EXIT_SHEET_VIEW [ ExecMethod = Execute; StateMethod = GetState; ] + FID_SELECT_SHEET_VIEW [ ExecMethod = Execute; StateMethod = GetState; ] FID_NORMALVIEWMODE [ ExecMethod = Execute; StateMethod = GetState; ] FID_PAGEBREAKMODE [ ExecMethod = Execute; StateMethod = GetState; ] SID_REPAINT [ ExecMethod = Execute; StateMethod = GetState; ] diff --git a/sc/source/core/data/SheetView.cxx b/sc/source/core/data/SheetView.cxx index a445b0380c63..0c51d5ea6678 100644 --- a/sc/source/core/data/SheetView.cxx +++ b/sc/source/core/data/SheetView.cxx @@ -12,8 +12,9 @@ namespace sc { -SheetView::SheetView(ScTable* pTable) +SheetView::SheetView(ScTable* pTable, OUString const& rName) : mpTable(pTable) + , maName(rName) { } diff --git a/sc/source/core/data/SheetViewManager.cxx b/sc/source/core/data/SheetViewManager.cxx index ca8cbd38b169..3ffed7b9f9e1 100644 --- a/sc/source/core/data/SheetViewManager.cxx +++ b/sc/source/core/data/SheetViewManager.cxx @@ -17,7 +17,7 @@ SheetViewManager::SheetViewManager() {} SheetViewID SheetViewManager::create(ScTable* pSheetViewTable) { SheetViewID nID(maViews.size()); - maViews.emplace_back(std::make_shared<SheetView>(pSheetViewTable)); + maViews.emplace_back(std::make_shared<SheetView>(pSheetViewTable, generateName())); return nID; } @@ -116,6 +116,12 @@ void SheetViewManager::unsyncAllSheetViews() pSheetView->unsync(); } } + +OUString SheetViewManager::generateName() +{ + maNameCounter++; + return u"Temp SheetView " + OUString::number(maNameCounter); +} } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/dialogs/SelectSheetViewDialog.cxx b/sc/source/ui/dialogs/SelectSheetViewDialog.cxx new file mode 100644 index 000000000000..10595a6dd0de --- /dev/null +++ b/sc/source/ui/dialogs/SelectSheetViewDialog.cxx @@ -0,0 +1,92 @@ +/* -*- 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 <dialogs/SelectSheetViewDialog.hxx> +#include <sal/config.h> +#include <o3tl/safeint.hxx> +#include <memory> + +#include <viewdata.hxx> +#include <SheetViewManager.hxx> + +namespace sc +{ +class SheetViewListEntry +{ + std::shared_ptr<SheetView> mpSheetView; + sc::SheetViewID mnSheetViewID = sc::InvalidSheetViewID; + +public: + SheetViewListEntry(std::shared_ptr<SheetView> const& pSheetView, sc::SheetViewID nSheetViewID) + : mpSheetView(pSheetView) + , mnSheetViewID(nSheetViewID) + { + } + + OUString getName() const { return mpSheetView->GetName(); } + sc::SheetViewID getSheetViewID() const { return mnSheetViewID; } +}; + +SelectSheetViewDialog::SelectSheetViewDialog(weld::Window* pParent, ScViewData& rViewData) + : GenericDialogController(pParent, u"modules/scalc/ui/selectsheetviewdialog.ui"_ustr, + u"SelectSheetViewDialog"_ustr) + , mrViewData(rViewData) + , m_xEntryTree(m_xBuilder->weld_tree_view(u"entry-list"_ustr)) +{ + m_xEntryTree->connect_selection_changed(LINK(this, SelectSheetViewDialog, NameModifyHdl)); + + ScDocument& rDocument = mrViewData.GetDocument(); + + auto pSheetManager = rDocument.GetSheetViewManager(mrViewData.GetTabNumber()); + + m_xEntryTree->freeze(); + m_xEntryTree->clear(); + + OUString sActiveID = u"-1"_ustr; + m_xEntryTree->append(u"-1"_ustr, u"Default View"_ustr); + + sc::SheetViewID nSheetViewID = 0; + + for (auto const& pSheetView : pSheetManager->getSheetViews()) + { + if (pSheetView) + { + auto& aEntry = m_aEntries.emplace_back(pSheetView, nSheetViewID); + OUString sID = OUString::number(m_aEntries.size() - 1); + if (nSheetViewID == mrViewData.GetSheetViewID()) + sActiveID = sID; + m_xEntryTree->append(sID, aEntry.getName()); + } + nSheetViewID++; + } + m_xEntryTree->thaw(); + + m_xEntryTree->select_id(sActiveID); +} + +SelectSheetViewDialog::~SelectSheetViewDialog() {} + +IMPL_LINK_NOARG(SelectSheetViewDialog, NameModifyHdl, weld::TreeView&, void) +{ + m_nCurrentIndex = m_xEntryTree->get_selected_id().toInt32(); +} + +sc::SheetViewID SelectSheetViewDialog::getSelectedSheetViewID() const +{ + if (m_nCurrentIndex == sc::DefaultSheetViewID) + return sc::DefaultSheetViewID; + + if (m_nCurrentIndex < 0 || o3tl::make_unsigned(m_nCurrentIndex) >= m_aEntries.size()) + return sc::InvalidSheetViewID; + + return m_aEntries[m_nCurrentIndex].getSheetViewID(); +} +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/inc/dialogs/SelectSheetViewDialog.hxx b/sc/source/ui/inc/dialogs/SelectSheetViewDialog.hxx new file mode 100644 index 000000000000..c9a8eecebb09 --- /dev/null +++ b/sc/source/ui/inc/dialogs/SelectSheetViewDialog.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 <vector> +#include <sal/types.h> +#include <vcl/weld.hxx> +#include <SheetViewTypes.hxx> + +class ScViewData; +class ScDocument; + +namespace sc +{ +class SheetViewListEntry; + +/** Dialog to show all sheet views and allows to select one to be used */ +class SelectSheetViewDialog : public weld::GenericDialogController +{ + ScViewData& mrViewData; + std::unique_ptr<weld::TreeView> m_xEntryTree; + std::vector<SheetViewListEntry> m_aEntries; + sal_Int32 m_nCurrentIndex = -1; + + DECL_LINK(NameModifyHdl, weld::TreeView&, void); + +public: + SelectSheetViewDialog(weld::Window* pParent, ScViewData& rViewData); + virtual ~SelectSheetViewDialog() override; + + sc::SheetViewID getSelectedSheetViewID() const; +}; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/inc/viewfunc.hxx b/sc/source/ui/inc/viewfunc.hxx index 5385f4f8d857..0ed2d8ee58bd 100644 --- a/sc/source/ui/inc/viewfunc.hxx +++ b/sc/source/ui/inc/viewfunc.hxx @@ -371,6 +371,7 @@ public: void RemoveCurrentSheetView(); void SwitchSheetView(sc::SwitchSheetViewDirection eDirection); void ExitSheetView(); // Switch to default view + void SelectSheetView(sc::SheetViewID nSelectSheetViewID); // Internal helper functions protected: diff --git a/sc/source/ui/view/tabvwsh3.cxx b/sc/source/ui/view/tabvwsh3.cxx index 9fb981539321..7c3b3fc6a536 100644 --- a/sc/source/ui/view/tabvwsh3.cxx +++ b/sc/source/ui/view/tabvwsh3.cxx @@ -65,6 +65,7 @@ #include <svx/dialog/ThemeDialog.hxx> #include <ThemeColorChanger.hxx> +#include <dialogs/SelectSheetViewDialog.hxx> namespace { @@ -1062,6 +1063,23 @@ void ScTabViewShell::Execute( SfxRequest& rReq ) case FID_EXIT_SHEET_VIEW: ExitSheetView(); break; + case FID_SELECT_SHEET_VIEW: + { + ScViewData& rViewData = GetViewData(); + auto pDialog = std::make_shared<sc::SelectSheetViewDialog>(GetFrameWeld(), rViewData); + weld::DialogController::runAsync(pDialog, [this, pDialog](sal_uInt32 nResult) { + if (RET_OK != nResult) + return; + + sc::SheetViewID nID = pDialog->getSelectedSheetViewID(); + if (nID != sc::InvalidSheetViewID) + { + SelectSheetView(nID); + } + }); + rReq.Done(); + } + break; case SID_ATTR_ZOOM: // status row case FID_SCALE: diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx index f1521d0fc25d..3463000eb212 100644 --- a/sc/source/ui/view/tabvwsha.cxx +++ b/sc/source/ui/view/tabvwsha.cxx @@ -399,6 +399,7 @@ void ScTabViewShell::GetState( SfxItemSet& rSet ) case FID_REMOVE_SHEET_VIEW: case FID_SWITCH_TO_NEXT_SHEET_VIEW: case FID_SWITCH_TO_PREVIOUS_SHEET_VIEW: + case FID_SELECT_SHEET_VIEW: case FID_EXIT_SHEET_VIEW: { if (GetViewData().GetDocShell().IsReadOnly() || IsCurrentLokViewReadOnly()) diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx index 4953a9bb3c78..7889ffc6989a 100644 --- a/sc/source/ui/view/viewfun3.cxx +++ b/sc/source/ui/view/viewfun3.cxx @@ -2097,6 +2097,9 @@ void ScViewFunc::RemoveCurrentSheetView() ScDocument& rDocument = GetViewData().GetDocument(); SCTAB nTab = GetViewData().GetTabNumber(); + if (rDocument.IsSheetView(nTab)) + return; + auto pSheetManager = rDocument.GetSheetViewManager(nTab); if (!pSheetManager) return; @@ -2113,35 +2116,34 @@ void ScViewFunc::RemoveCurrentSheetView() void ScViewFunc::SwitchSheetView(sc::SwitchSheetViewDirection eDirection) { - SCTAB nTab = GetViewData().GetTabNumber(); ScDocument& rDocument = GetViewData().GetDocument(); - if (rDocument.IsSheetView(nTab)) - return; - - sc::SheetViewID nSheetViewID = GetViewData().GetSheetViewID(); + SCTAB nTab = GetViewData().GetTabNumber(); auto pSheetManager = rDocument.GetSheetViewManager(nTab); + sc::SheetViewID nSheetViewID = GetViewData().GetSheetViewID(); sc::SheetViewID nSwitchSheetViewID = eDirection == sc::SwitchSheetViewDirection::Next ? pSheetManager->getNextSheetView(nSheetViewID) : pSheetManager->getPreviousSheetView(nSheetViewID); - - GetViewData().SetSheetViewID(nSwitchSheetViewID); - - SheetViewChanged(); + SelectSheetView(nSwitchSheetViewID); } void ScViewFunc::ExitSheetView() +{ + SelectSheetView(sc::DefaultSheetViewID); +} + +void ScViewFunc::SelectSheetView(sc::SheetViewID nSelectSheetViewID) { SCTAB nTab = GetViewData().GetTabNumber(); - ScDocument& rDocument = GetViewData().GetDocument(); - if (rDocument.IsSheetView(nTab)) + + if (GetViewData().GetDocument().IsSheetView(nTab)) return; sc::SheetViewID nSheetViewID = GetViewData().GetSheetViewID(); - if (nSheetViewID == sc::DefaultSheetViewID) + if (nSheetViewID == nSelectSheetViewID) return; - GetViewData().SetSheetViewID(sc::DefaultSheetViewID); + GetViewData().SetSheetViewID(nSelectSheetViewID); SheetViewChanged(); } diff --git a/sc/uiconfig/scalc/ui/selectsheetviewdialog.ui b/sc/uiconfig/scalc/ui/selectsheetviewdialog.ui new file mode 100644 index 000000000000..7541b58debc7 --- /dev/null +++ b/sc/uiconfig/scalc/ui/selectsheetviewdialog.ui @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.40.0 --> +<interface domain="sc"> + <requires lib="gtk+" version="3.20"/> + <object class="GtkTreeStore" id="liststore1"> + <columns> + <!-- column-name text --> + <column type="gchararray"/> + <!-- column-name id --> + <column type="gchararray"/> + </columns> + </object> + <object class="GtkDialog" id="SelectSheetViewDialog"> + <property name="can-focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="border-width">6</property> + <property name="title" translatable="yes" context="selectsheetviewdialog|SelectSheetView">Select Sheet View</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="hexpand">True</property> + <property name="vexpand">True</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> + <child> + <object class="GtkButton" id="ok"> + <property name="label" translatable="yes" context="stock">_OK</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> + <child internal-child="accessible"> + <object class="AtkObject" id="ok-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="selectsheetviewdialog|extended_tip|ok">Saves all changes and closes dialog.</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="cancel"> + <property name="label" translatable="yes" context="stock">_Cancel</property> + <property name="visible">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"> + <property name="AtkObject::accessible-description" translatable="yes" context="selectsheetviewdialog|extended_tip|cancel">Closes dialog and discards all changes.</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <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="use-underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + <property name="secondary">True</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack-type">end</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkBox" id="entry-box"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="orientation">vertical</property> + <property name="spacing">12</property> + <child> + <object class="GtkScrolledWindow"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="shadow-type">in</property> + <child> + <object class="GtkTreeView" id="entry-list"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="model">liststore1</property> + <property name="headers-visible">False</property> + <property name="headers-clickable">False</property> + <property name="search-column">0</property> + <property name="show-expanders">False</property> + <child> + <object class="GtkTreeViewColumn" id="treeviewcolumn3"> + <child> + <object class="GtkCellRendererText" id="cellrenderertext3"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + </child> + <child internal-child="accessible"> + <object class="AtkObject" id="entry-list-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="selectsheetviewdialog|extended_tip|entry-list">Available sheet views.</property> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="-5">ok</action-widget> + <action-widget response="-6">cancel</action-widget> + <action-widget response="-11">help</action-widget> + </action-widgets> + </object> +</interface> diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx index 0eb206119c98..67ca2de7ca56 100644 --- a/vcl/jsdialog/enabled.cxx +++ b/vcl/jsdialog/enabled.cxx @@ -195,7 +195,8 @@ constexpr auto ScalcDialogList { u"modules/scalc/ui/warnautocorrect.ui" }, { u"modules/scalc/ui/ztestdialog.ui" }, { u"modules/scalc/ui/definedatabaserangedialog.ui" }, - { u"modules/scalc/ui/selectrange.ui" } + { u"modules/scalc/ui/selectrange.ui" }, + { u"modules/scalc/ui/selectsheetviewdialog.ui" }, }); constexpr auto SwriterDialogList
