diff options
author | Laurent BP <laurent.balland-poirier@laposte.net> | 2022-05-16 22:47:25 +0200 |
---|---|---|
committer | Laurent Balland-Poirier <laurent.balland@mailo.fr> | 2022-06-07 13:43:20 +0200 |
commit | d93e9430bfbf6fa8a679ea2d4d98f955774026f6 (patch) | |
tree | 6d6e6a4f48cd9fb1134989fbf9f3b879e67e8d77 /sc | |
parent | 19a6adddec0f5a6ee771939a17f85bdde4a44ce3 (diff) |
tdf#129674 Add GoTo Sheet command
Insert command in menu Sheet > Navigate
(alongs with To Previous/Next Sheet)
Use .uno:JumpToTable command from Navigator
Use its own Go To Sheet dialog
Add a Search entry to type partial name of sheet
Menu translation missing?
Change-Id: I16b8b56a688c8396159617f04a2a7e034721ce31
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134714
Tested-by: Jenkins
Reviewed-by: Laurent Balland-Poirier <laurent.balland@mailo.fr>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/Library_scui.mk | 1 | ||||
-rw-r--r-- | sc/UIConfig_scalc.mk | 1 | ||||
-rw-r--r-- | sc/inc/helpids.h | 2 | ||||
-rw-r--r-- | sc/inc/pch/precompiled_scui.hxx | 1 | ||||
-rw-r--r-- | sc/inc/scabstdlg.hxx | 13 | ||||
-rw-r--r-- | sc/inc/strings.hrc | 3 | ||||
-rw-r--r-- | sc/sdi/scalc.sdi | 4 | ||||
-rw-r--r-- | sc/source/ui/attrdlg/scdlgfact.cxx | 32 | ||||
-rw-r--r-- | sc/source/ui/attrdlg/scdlgfact.hxx | 18 | ||||
-rw-r--r-- | sc/source/ui/inc/gototabdlg.hxx | 43 | ||||
-rw-r--r-- | sc/source/ui/miscdlgs/gototabdlg.cxx | 81 | ||||
-rw-r--r-- | sc/source/ui/view/tabvwsh3.cxx | 48 | ||||
-rw-r--r-- | sc/uiconfig/scalc/menubar/menubar.xml | 1 | ||||
-rw-r--r-- | sc/uiconfig/scalc/ui/gotosheetdialog.ui | 201 |
14 files changed, 442 insertions, 7 deletions
diff --git a/sc/Library_scui.mk b/sc/Library_scui.mk index 4d4cffa12bd4..02c2bc8244d1 100644 --- a/sc/Library_scui.mk +++ b/sc/Library_scui.mk @@ -95,6 +95,7 @@ $(eval $(call gb_Library_add_exception_objects,scui,\ sc/source/ui/miscdlgs/delcldlg \ sc/source/ui/miscdlgs/delcodlg \ sc/source/ui/miscdlgs/filldlg \ + sc/source/ui/miscdlgs/gototabdlg \ sc/source/ui/miscdlgs/groupdlg \ sc/source/ui/miscdlgs/inscldlg \ sc/source/ui/miscdlgs/inscodlg \ diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk index cf5f7e0951bf..13a4b98a6c7c 100644 --- a/sc/UIConfig_scalc.mk +++ b/sc/UIConfig_scalc.mk @@ -139,6 +139,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\ sc/uiconfig/scalc/ui/floatinglinestyle \ sc/uiconfig/scalc/ui/functionpanel \ sc/uiconfig/scalc/ui/goalseekdlg \ + sc/uiconfig/scalc/ui/gotosheetdialog \ sc/uiconfig/scalc/ui/groupdialog \ sc/uiconfig/scalc/ui/groupbydate \ sc/uiconfig/scalc/ui/groupbynumber \ diff --git a/sc/inc/helpids.h b/sc/inc/helpids.h index bb9ff1c2faed..c320a0f94bd0 100644 --- a/sc/inc/helpids.h +++ b/sc/inc/helpids.h @@ -63,6 +63,8 @@ inline constexpr OStringLiteral HID_PASSWD_DOC_CONFIRM = "SC_HID_PASSWD_DOC_CONF // Other help IDs (max.70) --------------------------------------------------- inline constexpr OStringLiteral HID_SELECTTABLES = "SC_HID_SELECTTABLES"; +inline constexpr OStringLiteral HID_GOTOTABLE = "SC_HID_GOTOTABLE"; +inline constexpr OStringLiteral HID_GOTOTABLEMASK = "SC_HID_GOTOTABLEMASK"; // Analysis Addin Functions (max.120) ---------------------------------------- diff --git a/sc/inc/pch/precompiled_scui.hxx b/sc/inc/pch/precompiled_scui.hxx index bfe19b1ba147..daedbcbd231e 100644 --- a/sc/inc/pch/precompiled_scui.hxx +++ b/sc/inc/pch/precompiled_scui.hxx @@ -141,6 +141,7 @@ #include <formulaopt.hxx> #include <global.hxx> #include <globalnames.hxx> +#include <gototabdlg.hxx> #include <groupdlg.hxx> #include <helpids.h> #include <hfedtdlg.hxx> diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx index 5d9285b5017a..9901d48bd610 100644 --- a/sc/inc/scabstdlg.hxx +++ b/sc/inc/scabstdlg.hxx @@ -396,6 +396,17 @@ public: virtual bool IsKeepAskingSet() const = 0; }; +class AbstractScGoToTabDlg : public VclAbstractDialog +{ +protected: + virtual ~AbstractScGoToTabDlg() override = default; +public: + virtual void Insert( const OUString& rString, bool bSelected ) = 0; + virtual void SetDescription(const OUString& rTitle, const OUString& rEntryLabel, const OUString& rListLabel, + const OString& rDlgHelpId, const OString& rEnHelpId, const OString& rLbHelpId) = 0; + virtual OUString GetSelectedEntry() const = 0; +}; + class ScAbstractDialogFactory { public: @@ -526,6 +537,8 @@ public: bool bOnlyDbtoolsEncodings, bool bImport = true ) = 0; + virtual VclPtr<AbstractScGoToTabDlg> CreateScGoToTabDlg(weld::Window* pParent) = 0; + virtual VclPtr<SfxAbstractTabDialog> CreateScAttrDlg(weld::Window* pParent, const SfxItemSet* pCellAttrs) = 0; diff --git a/sc/inc/strings.hrc b/sc/inc/strings.hrc index 5fad14fbc4c1..5e9c82592e68 100644 --- a/sc/inc/strings.hrc +++ b/sc/inc/strings.hrc @@ -87,8 +87,11 @@ #define STR_CAPTION_DEFAULT_TEXT NC_("STR_CAPTION_DEFAULT_TEXT", "Text") // Select tables dialog title #define STR_DLG_SELECTTABLES_TITLE NC_("STR_DLG_SELECTTABLES_TITLE", "Select Sheets") +#define STR_DLG_SELECTTABLE_TITLE NC_("STR_DLG_SELECTTABLE_TITLE", "Go to Sheet") +#define STR_DLG_SELECTTABLE_MASK NC_("STR_DLG_SELECTTABLE_MASK", "~Type a Sheet Name") // Select tables dialog listbox #define STR_DLG_SELECTTABLES_LBNAME NC_("STR_DLG_SELECTTABLES_LBNAME", "~Selected sheets") +#define STR_DLG_SELECTTABLE_LBNAME NC_("STR_DLG_SELECTTABLE_LBNAME", "~Sheets") #define STR_ACC_CSVRULER_NAME NC_("STR_ACC_CSVRULER_NAME", "Ruler") #define STR_ACC_CSVRULER_DESCR NC_("STR_ACC_CSVRULER_DESCR", "This ruler manages objects at fixed positions.") #define STR_ACC_CSVGRID_NAME NC_("STR_ACC_CSVGRID_NAME", "Preview") diff --git a/sc/sdi/scalc.sdi b/sc/sdi/scalc.sdi index edf0ebb7134d..7295dd3ef978 100644 --- a/sc/sdi/scalc.sdi +++ b/sc/sdi/scalc.sdi @@ -3487,8 +3487,8 @@ SfxVoidItem JumpToTable SID_CURRENTTAB RecordAbsolute = FALSE, RecordPerSet; - AccelConfig = FALSE, - MenuConfig = FALSE, + AccelConfig = TRUE, + MenuConfig = TRUE, ToolBoxConfig = FALSE, GroupId = SfxGroupId::Navigator; ] diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx index 909d9fd85a43..8b59e672ca12 100644 --- a/sc/source/ui/attrdlg/scdlgfact.cxx +++ b/sc/source/ui/attrdlg/scdlgfact.cxx @@ -275,6 +275,16 @@ bool AbstractScShowTabDlg_Impl::StartExecuteAsync(VclAbstractDialog::AsyncContex return weld::DialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); } +short AbstractScGoToTabDlg_Impl::Execute() +{ + return m_xDlg->run(); +} + +bool AbstractScGoToTabDlg_Impl::StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) +{ + return weld::DialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); +} + short AbstractScSortWarningDlg_Impl::Execute() { return m_xDlg->run(); @@ -839,6 +849,23 @@ OUString AbstractScShowTabDlg_Impl::GetEntry(sal_Int32 nPos) const return m_xDlg->GetEntry(nPos); } +void AbstractScGoToTabDlg_Impl::Insert( const OUString& rString, bool bSelected ) +{ + m_xDlg->Insert(rString, bSelected); +} + +void AbstractScGoToTabDlg_Impl::SetDescription( + const OUString& rTitle, const OUString& rEntryLabel, const OUString& rListLabel, + const OString& rDlgHelpId, const OString& rEnHelpId, const OString& rLbHelpId ) +{ + m_xDlg->SetDescription( rTitle, rEntryLabel, rListLabel, rDlgHelpId, rEnHelpId, rLbHelpId ); +} + +OUString AbstractScGoToTabDlg_Impl::GetSelectedEntry() const +{ + return m_xDlg->GetSelectedEntry(); +} + short AbstractScStringInputDlg_Impl::Execute() { return m_xDlg->run(); @@ -1183,6 +1210,11 @@ VclPtr<AbstractScShowTabDlg> ScAbstractDialogFactory_Impl::CreateScShowTabDlg(we return VclPtr<AbstractScShowTabDlg_Impl>::Create(std::make_shared<ScShowTabDlg>(pParent)); } +VclPtr<AbstractScGoToTabDlg> ScAbstractDialogFactory_Impl::CreateScGoToTabDlg(weld::Window* pParent) +{ + return VclPtr<AbstractScGoToTabDlg_Impl>::Create(std::make_shared<ScGoToTabDlg>(pParent)); +} + VclPtr<AbstractScStringInputDlg> ScAbstractDialogFactory_Impl::CreateScStringInputDlg(weld::Window* pParent, const OUString& rTitle, const OUString& rEditTitle, const OUString& rDefault, const OString& rHelpId, const OString& rEditHelpId) diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx index 8eb9dc7a5976..b1703930c584 100644 --- a/sc/source/ui/attrdlg/scdlgfact.hxx +++ b/sc/source/ui/attrdlg/scdlgfact.hxx @@ -30,6 +30,7 @@ #include <delcldlg.hxx> #include <dpgroupdlg.hxx> #include <filldlg.hxx> +#include <gototabdlg.hxx> #include <groupdlg.hxx> #include <linkarea.hxx> #include <lbseldlg.hxx> @@ -517,6 +518,22 @@ public: virtual std::vector<sal_Int32> GetSelectedRows() const override; }; +class AbstractScGoToTabDlg_Impl : public AbstractScGoToTabDlg +{ + std::shared_ptr<ScGoToTabDlg> m_xDlg; +public: + explicit AbstractScGoToTabDlg_Impl(std::shared_ptr<ScGoToTabDlg> p) + : m_xDlg(std::move(p)) + { + } + virtual short Execute() override; + virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override; + virtual void Insert( const OUString& rString, bool bSelected ) override; + virtual void SetDescription(const OUString& rTitle, const OUString& rEntryLabel, const OUString& rListLabel, + const OString& rDlgHelpId, const OString& rEnHelpId, const OString& rLbHelpId) override; + virtual OUString GetSelectedEntry() const override; +}; + class AbstractScSortWarningDlg_Impl : public AbstractScSortWarningDlg { std::unique_ptr<ScSortWarningDlg> m_xDlg; @@ -739,6 +756,7 @@ public: virtual VclPtr<AbstractScNewScenarioDlg> CreateScNewScenarioDlg(weld::Window* pParent, const OUString& rName, bool bEdit, bool bSheetProtected) override; virtual VclPtr<AbstractScShowTabDlg> CreateScShowTabDlg(weld::Window* pParent) override; + virtual VclPtr<AbstractScGoToTabDlg> CreateScGoToTabDlg(weld::Window* pParent) override; virtual VclPtr<AbstractScStringInputDlg> CreateScStringInputDlg(weld::Window* pParent, const OUString& rTitle, diff --git a/sc/source/ui/inc/gototabdlg.hxx b/sc/source/ui/inc/gototabdlg.hxx new file mode 100644 index 000000000000..827f56b17760 --- /dev/null +++ b/sc/source/ui/inc/gototabdlg.hxx @@ -0,0 +1,43 @@ +/* -*- 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/weld.hxx> + +class ScGoToTabDlg : public weld::GenericDialogController +{ +private: + std::vector<OUString> maCacheSheetsNames; + + std::unique_ptr<weld::Frame> m_xFrameMask; + std::unique_ptr<weld::Entry> m_xEnNameMask; + std::unique_ptr<weld::Frame> m_xFrameSheets; + std::unique_ptr<weld::TreeView> m_xLb; + + DECL_LINK(DblClkHdl, weld::TreeView&, bool); + DECL_LINK(FindNameHdl, weld::Entry&, void); + +public: + ScGoToTabDlg(weld::Window* pParent); + virtual ~ScGoToTabDlg() override; + + /** Sets dialog title, label texts and help IDs. */ + void SetDescription(const OUString& rTitle, const OUString& rEntryLabel, + const OUString& rListLabel, const OString& rDlgHelpId, + const OString& rEnHelpId, const OString& rLbHelpId); + + /** Inserts a string into the weld::TreeView. */ + void Insert(const OUString& rString, bool bSelected); + + OUString GetSelectedEntry() const; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/miscdlgs/gototabdlg.cxx b/sc/source/ui/miscdlgs/gototabdlg.cxx new file mode 100644 index 000000000000..e38e671009ee --- /dev/null +++ b/sc/source/ui/miscdlgs/gototabdlg.cxx @@ -0,0 +1,81 @@ +/* -*- 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/. + * + */ + +#undef SC_DLLIMPLEMENTATION + +#include <gototabdlg.hxx> + +ScGoToTabDlg::ScGoToTabDlg(weld::Window* pParent) + : GenericDialogController(pParent, "modules/scalc/ui/gotosheetdialog.ui", "GoToSheetDialog") + , m_xFrameMask(m_xBuilder->weld_frame("frame-mask")) + , m_xEnNameMask(m_xBuilder->weld_entry("entry-mask")) + , m_xFrameSheets(m_xBuilder->weld_frame("frame-sheets")) + , m_xLb(m_xBuilder->weld_tree_view("treeview")) +{ + m_xLb->set_selection_mode(SelectionMode::Single); + m_xLb->set_size_request(-1, m_xLb->get_height_rows(10)); + m_xLb->connect_row_activated(LINK(this, ScGoToTabDlg, DblClkHdl)); + m_xEnNameMask->connect_changed(LINK(this, ScGoToTabDlg, FindNameHdl)); +} + +ScGoToTabDlg::~ScGoToTabDlg() {} + +void ScGoToTabDlg::SetDescription(const OUString& rTitle, const OUString& rEntryLabel, + const OUString& rListLabel, const OString& rDlgHelpId, + const OString& rEnHelpId, const OString& rLbHelpId) +{ + m_xDialog->set_title(rTitle); + m_xFrameMask->set_label(rEntryLabel); + m_xFrameSheets->set_label(rListLabel); + m_xDialog->set_help_id(rDlgHelpId); + m_xEnNameMask->set_help_id(rEnHelpId); + m_xLb->set_help_id(rLbHelpId); +} + +void ScGoToTabDlg::Insert(const OUString& rString, bool bSelected) +{ + maCacheSheetsNames.push_back(rString); + m_xLb->append_text(rString); + if (bSelected) + m_xLb->select(m_xLb->n_children() - 1); +} + +OUString ScGoToTabDlg::GetSelectedEntry() const { return m_xLb->get_selected_text(); } + +IMPL_LINK_NOARG(ScGoToTabDlg, DblClkHdl, weld::TreeView&, bool) +{ + m_xDialog->response(RET_OK); + return true; +} + +IMPL_LINK_NOARG(ScGoToTabDlg, FindNameHdl, weld::Entry&, void) +{ + const OUString aMask = m_xEnNameMask->get_text(); + m_xLb->clear(); + if (aMask.isEmpty()) + { + for (const OUString& s : maCacheSheetsNames) + { + m_xLb->append_text(s); + } + } + else + { + for (const OUString& s : maCacheSheetsNames) + { + if (s.indexOf(aMask) >= 0) + { + m_xLb->append_text(s); + } + } + } +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/view/tabvwsh3.cxx b/sc/source/ui/view/tabvwsh3.cxx index 8a65b1c7b917..766f6c7621d4 100644 --- a/sc/source/ui/view/tabvwsh3.cxx +++ b/sc/source/ui/view/tabvwsh3.cxx @@ -516,12 +516,50 @@ void ScTabViewShell::Execute( SfxRequest& rReq ) break; case SID_CURRENTTAB: - if ( pReqArgs ) { - // sheet for basic is one-based - SCTAB nTab = static_cast<const SfxUInt16Item&>(pReqArgs->Get(nSlot)).GetValue() - 1; - ScDocument& rDoc = GetViewData().GetDocument(); - if ( nTab < rDoc.GetTableCount() ) + SCTAB nTab; + ScViewData& rViewData = GetViewData(); + ScDocument& rDoc = rViewData.GetDocument(); + SCTAB nTabCount = rDoc.GetTableCount(); + if ( pReqArgs ) // command from Navigator with nTab + { + // sheet for basic is one-based + nTab = static_cast<const SfxUInt16Item&>(pReqArgs->Get(nSlot)).GetValue() - 1; + } + else // command from Menu: ask for nTab + { + ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); + + ScopedVclPtr<AbstractScGoToTabDlg> pDlg(pFact->CreateScGoToTabDlg(GetFrameWeld())); + pDlg->SetDescription( + ScResId( STR_DLG_SELECTTABLE_TITLE ), + ScResId( STR_DLG_SELECTTABLE_MASK ), + ScResId( STR_DLG_SELECTTABLE_LBNAME ), + GetStaticInterface()->GetSlot(SID_CURRENTTAB)->GetCommand(), HID_GOTOTABLEMASK, HID_GOTOTABLE ); + + // fill all table names and select current tab + OUString aTabName; + for( nTab = 0; nTab < nTabCount; ++nTab ) + { + if( rDoc.IsVisible( nTab ) ) + { + rDoc.GetName( nTab, aTabName ); + pDlg->Insert( aTabName, rViewData.GetTabNo() == nTab ); + } + } + + if( pDlg->Execute() == RET_OK ) + { + if( !rDoc.GetTable( pDlg->GetSelectedEntry(), nTab ) ) + nTab = nTabCount; + pDlg.disposeAndClear(); + } + else + { + rReq.Ignore(); + } + } + if ( nTab < nTabCount ) { SetTabNo( nTab ); rBindings.Update( nSlot ); diff --git a/sc/uiconfig/scalc/menubar/menubar.xml b/sc/uiconfig/scalc/menubar/menubar.xml index 5388d021e96b..49a978aa4f29 100644 --- a/sc/uiconfig/scalc/menubar/menubar.xml +++ b/sc/uiconfig/scalc/menubar/menubar.xml @@ -591,6 +591,7 @@ <menu:menuitem menu:id=".uno:DuplicateSheet"/> <menu:menu menu:id=".uno:NavigateMenu"> <menu:menupopup> + <menu:menuitem menu:id=".uno:JumpToTable"/> <menu:menuitem menu:id=".uno:JumpToPrevTable"/> <menu:menuitem menu:id=".uno:JumpToNextTable"/> </menu:menupopup> diff --git a/sc/uiconfig/scalc/ui/gotosheetdialog.ui b/sc/uiconfig/scalc/ui/gotosheetdialog.ui new file mode 100644 index 000000000000..93c2e72a0e10 --- /dev/null +++ b/sc/uiconfig/scalc/ui/gotosheetdialog.ui @@ -0,0 +1,201 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.2 --> +<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="GoToSheetDialog"> + <property name="can_focus">False</property> + <property name="border_width">6</property> + <property name="title" translatable="yes" context="gotosheetdialog|GoToSheetDialog">Go to Sheet</property> + <property name="resizable">False</property> + <property name="modal">True</property> + <property name="default_width">0</property> + <property name="default_height">0</property> + <property name="type_hint">dialog</property> + <child type="titlebar"> + <placeholder/> + </child> + <child internal-child="vbox"> + <object class="GtkBox" id="dialog-vbox1"> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">12</property> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area1"> + <property name="can_focus">False</property> + <property name="layout_style">end</property> + <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> + </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> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</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">2</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">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame-mask"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkEntry" id="entry-mask"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="truncate-multiline">True</property> + <property name="activates_default">True</property> + <child internal-child="accessible"> + <object class="AtkObject" id="name-mask-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="gotosheetdialog|extended_tip|entry-mask">Type some letters of sheet name to find it.</property> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label-mask"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="gotosheetdialog|label-mask">_Type a sheet name</property> + <property name="use_underline">True</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame-sheets"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkScrolledWindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="margin_start">12</property> + <property name="margin_top">6</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="treeview"> + <property name="visible">True</property> + <property name="can_focus">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 internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection1"/> + </child> + <child> + <object class="GtkTreeViewColumn" id="treeviewcolumn1"> + <child> + <object class="GtkCellRendererText" id="cellrenderertext1"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label-sheets"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="gotosheetdialog|label-sheets">_Sheets</property> + <property name="use_underline">True</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</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> + <child internal-child="accessible"> + <object class="AtkObject" id="GoToSheetDialog-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="gotosheetdialog|GoToSheetDialog">Displays a list of all visible sheets in your spreadsheet document.</property> + </object> + </child> + </object> +</interface> |