sw/inc/bitmaps.hlst | 2 ++ sw/inc/strings.hrc | 6 ++++++ sw/source/core/crsr/crstrvl.cxx | 3 ++- sw/source/uibase/inc/workctrl.hxx | 4 +++- sw/source/uibase/ribbar/workctrl.cxx | 20 +++++++++++++++----- sw/source/uibase/uiview/viewmdi.cxx | 26 ++++++++++++++++++++++++++ 6 files changed, 54 insertions(+), 7 deletions(-)
New commits: commit 4bc0af27204f099f14cb4c97611089643cbe271c Author: Jim Raykowski <rayk...@gmail.com> AuthorDate: Sun Mar 7 07:56:35 2021 -0900 Commit: Jim Raykowski <rayk...@gmail.com> CommitDate: Thu Apr 29 07:27:12 2021 +0200 tdf#137741 Add ability to navigate by fields from Navigate By control Change-Id: I3cc464a3d5097b4e0438ea22ebf6daad5a2f2a86 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112144 Tested-by: Jenkins Reviewed-by: Jim Raykowski <rayk...@gmail.com> diff --git a/sw/inc/bitmaps.hlst b/sw/inc/bitmaps.hlst index 5b7d13195135..a486eb386238 100644 --- a/sw/inc/bitmaps.hlst +++ b/sw/inc/bitmaps.hlst @@ -72,6 +72,8 @@ #define RID_BMP_RIBBAR_FORMULA "sw/res/sr20018.png" #define RID_BMP_RIBBAR_ERROR "sw/res/sr20019.png" #define RID_BMP_RIBBAR_RECENCY "sw/res/sc20244.png" +#define RID_BMP_RIBBAR_FIELD "sw/res/sc20244.png" +#define RID_BMP_RIBBAR_FIELD_BYTYPE "sw/res/sc20244.png" #define RID_BMP_NAVI_OUTLINE "sw/res/nc20000.png" #define RID_BMP_NAVI_TABLE "sw/res/nc20001.png" diff --git a/sw/inc/strings.hrc b/sw/inc/strings.hrc index f67b3ecf9a31..ade17282c17f 100644 --- a/sw/inc/strings.hrc +++ b/sw/inc/strings.hrc @@ -1181,6 +1181,8 @@ #define ST_TABLE_FORMULA NC_("ST_TABLE_FORMULA", "Table formula") #define ST_TABLE_FORMULA_ERROR NC_("ST_TABLE_FORMULA_ERROR", "Wrong table formula") #define ST_RECENCY NC_("ST_RECENCY", "Recency") +#define ST_FIELD NC_("ST_FIELD", "Field") +#define ST_FIELD_BYTYPE NC_("ST_FIELD_BYTYPE", "Field by type") // Strings for the quickhelp of the View-PgUp/Down-Buttons #define STR_IMGBTN_TBL_DOWN NC_("STR_IMGBTN_TBL_DOWN", "Next table") #define STR_IMGBTN_FRM_DOWN NC_("STR_IMGBTN_FRM_DOWN", "Next frame") @@ -1220,6 +1222,10 @@ #define STR_IMGBTN_TBLFML_ERR_DOWN NC_("STR_IMGBTN_TBLFML_ERR_DOWN", "Next faulty table formula") #define STR_IMGBTN_RECENCY_UP NC_("STR_IMGBTN_RECENCY_UP", "Go back") #define STR_IMGBTN_RECENCY_DOWN NC_("STR_IMGBTN_RECENCY_DOWN", "Go forward") +#define STR_IMGBTN_FIELD_UP NC_("STR_IMGBTN_FIELD_UP", "Previous field") +#define STR_IMGBTN_FIELD_DOWN NC_("STR_IMGBTN_FIELD_DOWN", "Next field") +#define STR_IMGBTN_FIELD_BYTYPE_UP NC_("STR_IMGBTN_FIELD_BYTYPE_UP", "Previous field with current field type") +#define STR_IMGBTN_FIELD_BYTYPE_DOWN NC_("STR_IMGBTN_FIELD_BYTYPE_DOWN", "Next field with current field type") #define STR_REDLINE_INSERT NC_("STR_REDLINE_INSERT", "Inserted") #define STR_REDLINE_DELETE NC_("STR_REDLINE_DELETE", "Deleted") diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx index 3b2ad6514a51..58bf0b4f9626 100644 --- a/sw/source/core/crsr/crstrvl.cxx +++ b/sw/source/core/crsr/crstrvl.cxx @@ -729,10 +729,11 @@ bool SwCursorShell::MoveFieldType( { const SwFieldTypes& rFieldTypes = *mxDoc->getIDocumentFieldsAccess().GetFieldTypes(); const size_t nSize = rFieldTypes.size(); + const bool bAllFieldTypes = nResType == SwFieldIds::Unknown; for( size_t i=0; i < nSize; ++i ) { pFieldType = rFieldTypes[ i ].get(); - if( nResType == pFieldType->Which() ) + if (bAllFieldTypes || nResType == pFieldType->Which()) { ::lcl_MakeFieldLst( aSrtLst, *pFieldType, IsReadOnlyAvailable() ); } diff --git a/sw/source/uibase/inc/workctrl.hxx b/sw/source/uibase/inc/workctrl.hxx index de05fe608633..7f4d93a4afae 100644 --- a/sw/source/uibase/inc/workctrl.hxx +++ b/sw/source/uibase/inc/workctrl.hxx @@ -47,7 +47,9 @@ class SwView; #define NID_TABLE_FORMULA 20016 #define NID_TABLE_FORMULA_ERROR 20017 #define NID_RECENCY 20018 -#define NID_COUNT 19 +#define NID_FIELD 20019 +#define NID_FIELD_BYTYPE 20020 +#define NID_COUNT 21 class SwTbxAutoTextCtrl : public SfxToolBoxControl { diff --git a/sw/source/uibase/ribbar/workctrl.cxx b/sw/source/uibase/ribbar/workctrl.cxx index 6a88d7c1a072..fe443c9aa99b 100644 --- a/sw/source/uibase/ribbar/workctrl.cxx +++ b/sw/source/uibase/ribbar/workctrl.cxx @@ -59,7 +59,7 @@ #include <sfx2/viewfrm.hxx> // Size check -#define NAVI_ENTRIES 19 +#define NAVI_ENTRIES 21 using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -179,7 +179,9 @@ static sal_uInt16 aNavigationInsertIds[ NAVI_ENTRIES ] = NID_INDEX_ENTRY, NID_TABLE_FORMULA, NID_TABLE_FORMULA_ERROR, - NID_RECENCY + NID_RECENCY, + NID_FIELD, + NID_FIELD_BYTYPE }; std::u16string_view const aNavigationImgIds[ NAVI_ENTRIES ] = @@ -202,7 +204,9 @@ std::u16string_view const aNavigationImgIds[ NAVI_ENTRIES ] = u"" RID_BMP_RIBBAR_ENTRY, u"" RID_BMP_RIBBAR_FORMULA, u"" RID_BMP_RIBBAR_ERROR, - u"" RID_BMP_RIBBAR_RECENCY + u"" RID_BMP_RIBBAR_RECENCY, + u"" RID_BMP_RIBBAR_FIELD, + u"" RID_BMP_RIBBAR_FIELD_BYTYPE }; static const char* aNavigationStrIds[ NAVI_ENTRIES ] = @@ -225,7 +229,9 @@ static const char* aNavigationStrIds[ NAVI_ENTRIES ] = ST_INDEX_ENTRY, ST_TABLE_FORMULA, ST_TABLE_FORMULA_ERROR, - ST_RECENCY + ST_RECENCY, + ST_FIELD, + ST_FIELD_BYTYPE }; // these are global strings @@ -250,6 +256,8 @@ static const char* STR_IMGBTN_ARY[] = STR_IMGBTN_TBLFML_DOWN, STR_IMGBTN_TBLFML_ERR_DOWN, STR_IMGBTN_RECENCY_DOWN, + STR_IMGBTN_FIELD_DOWN, + STR_IMGBTN_FIELD_BYTYPE_DOWN, STR_IMGBTN_TBL_UP, STR_IMGBTN_FRM_UP, STR_IMGBTN_PGE_UP, @@ -268,7 +276,9 @@ static const char* STR_IMGBTN_ARY[] = STR_IMGBTN_INDEX_ENTRY_UP, STR_IMGBTN_TBLFML_UP, STR_IMGBTN_TBLFML_ERR_UP, - STR_IMGBTN_RECENCY_UP + STR_IMGBTN_RECENCY_UP, + STR_IMGBTN_FIELD_UP, + STR_IMGBTN_FIELD_BYTYPE_UP, }; static OUString lcl_GetScrollToolTip(bool bNext) diff --git a/sw/source/uibase/uiview/viewmdi.cxx b/sw/source/uibase/uiview/viewmdi.cxx index 69bd97623606..f2d3c5747d9e 100644 --- a/sw/source/uibase/uiview/viewmdi.cxx +++ b/sw/source/uibase/uiview/viewmdi.cxx @@ -422,6 +422,32 @@ IMPL_LINK( SwView, MoveNavigationHdl, void*, p, void ) GetViewFrame()->GetDispatcher()->Execute(bNext ? FN_NEXT_BOOKMARK : FN_PREV_BOOKMARK); + break; + case NID_FIELD: + rSh.EnterStdMode(); + rSh.MoveFieldType(nullptr, bNext, SwFieldIds::Unknown); + break; + case NID_FIELD_BYTYPE: + { + // see: SwFieldMgr::GoNextPrev + SwField* pCurField = rSh.GetCurField(true); + if (!pCurField) + break; + rSh.EnterStdMode(); + SwFieldType* pTyp = nullptr; + const SwFieldTypesEnum nTypeId = pCurField->GetTypeId(); + if (SwFieldTypesEnum::SetInput == nTypeId || SwFieldTypesEnum::UserInput == nTypeId) + pTyp = rSh.GetFieldType(0, SwFieldIds::Input); + else + pTyp = pCurField->GetTyp(); + if (pTyp) + { + if (pTyp->Which() == SwFieldIds::Database) + rSh.MoveFieldType(nullptr, bNext, SwFieldIds::Database); + else + rSh.MoveFieldType(pTyp, bNext); + } + } break; case NID_OUTL: rSh.EnterStdMode(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits