diff options
-rw-r--r-- | officecfg/registry/data/org/openoffice/Office/UI/WriterGlobalWindowState.xcu | 2 | ||||
-rw-r--r-- | officecfg/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu | 2 | ||||
-rw-r--r-- | sw/inc/bitmaps.hlst | 1 | ||||
-rw-r--r-- | sw/inc/strings.hrc | 3 | ||||
-rw-r--r-- | sw/sdi/_viewsh.sdi | 2 | ||||
-rw-r--r-- | sw/sdi/swriter.sdi | 4 | ||||
-rw-r--r-- | sw/source/uibase/inc/workctrl.hxx | 3 | ||||
-rw-r--r-- | sw/source/uibase/ribbar/workctrl.cxx | 36 | ||||
-rw-r--r-- | sw/source/uibase/uiview/view2.cxx | 5 | ||||
-rw-r--r-- | sw/source/uibase/uiview/viewmdi.cxx | 5 | ||||
-rw-r--r-- | sw/source/uibase/uiview/viewstat.cxx | 13 | ||||
-rw-r--r-- | sw/source/uibase/wrtsh/navmgr.cxx | 25 |
12 files changed, 63 insertions, 38 deletions
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterGlobalWindowState.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterGlobalWindowState.xcu index ce94fe093942..68f272c16e3e 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/WriterGlobalWindowState.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterGlobalWindowState.xcu @@ -757,7 +757,7 @@ <value>false</value> </prop> <prop oor:name="ContextSensitive" oor:type="xs:boolean"> - <value>true</value> + <value>false</value> </prop> </node> <node oor:name="private:resource/toolbar/changes" oor:op="replace"> diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu index f5d7bdf862d3..76373392b26b 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu @@ -844,7 +844,7 @@ <value>false</value> </prop> <prop oor:name="ContextSensitive" oor:type="xs:boolean"> - <value>true</value> + <value>false</value> </prop> </node> <node oor:name="private:resource/toolbar/addon_LibreLogo.OfficeToolBar" oor:op="replace" install:module="librelogo"> diff --git a/sw/inc/bitmaps.hlst b/sw/inc/bitmaps.hlst index 4f5d5e985bd4..5b7d13195135 100644 --- a/sw/inc/bitmaps.hlst +++ b/sw/inc/bitmaps.hlst @@ -71,6 +71,7 @@ #define RID_BMP_RIBBAR_ENTRY "sw/res/sr20017.png" #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_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 bee9222b4fc8..0d39c2adc9ba 100644 --- a/sw/inc/strings.hrc +++ b/sw/inc/strings.hrc @@ -1163,6 +1163,7 @@ #define ST_INDEX_ENTRY NC_("ST_INDEX_ENTRY", "Index entry") #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") // 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 text frame") @@ -1200,6 +1201,8 @@ #define STR_IMGBTN_TBLFML_DOWN NC_("STR_IMGBTN_TBLFML_DOWN", "Next table formula") #define STR_IMGBTN_TBLFML_ERR_UP NC_("STR_IMGBTN_TBLFML_ERR_UP", "Previous faulty table formula") #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_REDLINE_INSERT NC_("STR_REDLINE_INSERT", "Inserted") #define STR_REDLINE_DELETE NC_("STR_REDLINE_DELETE", "Deleted") diff --git a/sw/sdi/_viewsh.sdi b/sw/sdi/_viewsh.sdi index 61bd43768cf0..06a5a5f6893c 100644 --- a/sw/sdi/_viewsh.sdi +++ b/sw/sdi/_viewsh.sdi @@ -107,10 +107,12 @@ interface BaseTextEditView FN_SCROLL_PREV [ ExecMethod = Execute; + StateMethod = GetState; ] FN_SCROLL_NEXT [ ExecMethod = Execute; + StateMethod = GetState; ] FN_SET_PAGE_STYLE // status(final|play) [ diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi index 9a03663dc19d..7d24e76b9ed2 100644 --- a/sw/sdi/swriter.sdi +++ b/sw/sdi/swriter.sdi @@ -5107,7 +5107,7 @@ SfxVoidItem ScrollToPrevious FN_SCROLL_PREV RecordAbsolute = FALSE, RecordPerSet; - AccelConfig = FALSE, + AccelConfig = TRUE, MenuConfig = FALSE, ToolBoxConfig = TRUE, GroupId = SfxGroupId::Navigator; @@ -5124,7 +5124,7 @@ SfxVoidItem ScrollToNext FN_SCROLL_NEXT RecordAbsolute = FALSE, RecordPerSet; - AccelConfig = FALSE, + AccelConfig = TRUE, MenuConfig = FALSE, ToolBoxConfig = TRUE, GroupId = SfxGroupId::Navigator; diff --git a/sw/source/uibase/inc/workctrl.hxx b/sw/source/uibase/inc/workctrl.hxx index 20949f728ecc..69d5ea4466ab 100644 --- a/sw/source/uibase/inc/workctrl.hxx +++ b/sw/source/uibase/inc/workctrl.hxx @@ -46,7 +46,8 @@ class SwView; #define NID_INDEX_ENTRY 20015 #define NID_TABLE_FORMULA 20016 #define NID_TABLE_FORMULA_ERROR 20017 -#define NID_COUNT 18 +#define NID_RECENCY 20018 +#define NID_COUNT 19 class SwTbxAutoTextCtrl : public SfxToolBoxControl { diff --git a/sw/source/uibase/ribbar/workctrl.cxx b/sw/source/uibase/ribbar/workctrl.cxx index e31483102e53..fb01e8b9ff2f 100644 --- a/sw/source/uibase/ribbar/workctrl.cxx +++ b/sw/source/uibase/ribbar/workctrl.cxx @@ -56,8 +56,10 @@ #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/util/XURLTransformer.hpp> +#include <sfx2/viewfrm.hxx> + // Size check -#define NAVI_ENTRIES 18 +#define NAVI_ENTRIES 19 using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -176,7 +178,8 @@ static sal_uInt16 aNavigationInsertIds[ NAVI_ENTRIES ] = NID_SRCH_REP, NID_INDEX_ENTRY, NID_TABLE_FORMULA, - NID_TABLE_FORMULA_ERROR + NID_TABLE_FORMULA_ERROR, + NID_RECENCY }; std::u16string_view const aNavigationImgIds[ NAVI_ENTRIES ] = @@ -198,7 +201,8 @@ std::u16string_view const aNavigationImgIds[ NAVI_ENTRIES ] = u"" RID_BMP_RIBBAR_REP, u"" RID_BMP_RIBBAR_ENTRY, u"" RID_BMP_RIBBAR_FORMULA, - u"" RID_BMP_RIBBAR_ERROR + u"" RID_BMP_RIBBAR_ERROR, + u"" RID_BMP_RIBBAR_RECENCY }; static const char* aNavigationStrIds[ NAVI_ENTRIES ] = @@ -220,7 +224,8 @@ static const char* aNavigationStrIds[ NAVI_ENTRIES ] = ST_SRCH_REP, ST_INDEX_ENTRY, ST_TABLE_FORMULA, - ST_TABLE_FORMULA_ERROR + ST_TABLE_FORMULA_ERROR, + ST_RECENCY }; // these are global strings @@ -244,6 +249,7 @@ static const char* STR_IMGBTN_ARY[] = STR_IMGBTN_INDEX_ENTRY_DOWN, STR_IMGBTN_TBLFML_DOWN, STR_IMGBTN_TBLFML_ERR_DOWN, + STR_IMGBTN_RECENCY_DOWN, STR_IMGBTN_TBL_UP, STR_IMGBTN_FRM_UP, STR_IMGBTN_PGE_UP, @@ -261,7 +267,8 @@ static const char* STR_IMGBTN_ARY[] = STR_IMGBTN_SRCH_REP_UP, STR_IMGBTN_INDEX_ENTRY_UP, STR_IMGBTN_TBLFML_UP, - STR_IMGBTN_TBLFML_ERR_UP + STR_IMGBTN_TBLFML_ERR_UP, + STR_IMGBTN_RECENCY_UP }; static OUString lcl_GetScrollToolTip(bool bNext) @@ -852,6 +859,13 @@ void SAL_CALL NavElementToolBoxControl::statusChanged( const frame::FeatureState } else m_pBox->set_sensitive(true); + + SwView* pView = GetActiveView(); + if (pView && pView->GetViewFrame()) + { + pView->GetViewFrame()->GetBindings().Invalidate(FN_SCROLL_NEXT); + pView->GetViewFrame()->GetBindings().Invalidate(FN_SCROLL_PREV); + } } } @@ -1032,6 +1046,18 @@ void SAL_CALL PrevNextScrollToolboxController::statusChanged( const css::frame:: pToolBox->SetQuickHelpText(nId, lcl_GetScrollToolTip(meType != PrevNextScrollToolboxController::PREVIOUS)); } } + else if (rEvent.FeatureURL.Path == "ScrollToPrevious" || rEvent.FeatureURL.Path == "ScrollToNext") + { + if (m_pToolbar) + m_pToolbar->set_item_sensitive(m_aCommandURL.toUtf8(), rEvent.IsEnabled); + else + { + ToolBox* pToolBox = nullptr; + sal_uInt16 nId = 0; + if (getToolboxId(nId, &pToolBox)) + pToolBox->EnableItem(nId, rEvent.IsEnabled); + } + } } extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx index adeb5ed16e6a..248a75a3416b 100644 --- a/sw/source/uibase/uiview/view2.cxx +++ b/sw/source/uibase/uiview/view2.cxx @@ -1159,11 +1159,10 @@ void SwView::Execute(SfxRequest &rReq) case FN_SCROLL_PREV: case FN_SCROLL_NEXT: { - bool *pbNext = new bool(true); // FN_SCROLL_NEXT + bool *pbNext = new bool(true); if (nSlot == FN_SCROLL_PREV) *pbNext = false; - // #i75416# move the execution of the search to an asynchronously called static link - Application::PostUserEvent( LINK(this, SwView, MoveNavigationHdl), pbNext ); + MoveNavigationHdl(pbNext); } break; case SID_JUMPTOMARK: diff --git a/sw/source/uibase/uiview/viewmdi.cxx b/sw/source/uibase/uiview/viewmdi.cxx index 30aed9abf826..bfa8ec038f8a 100644 --- a/sw/source/uibase/uiview/viewmdi.cxx +++ b/sw/source/uibase/uiview/viewmdi.cxx @@ -551,6 +551,11 @@ IMPL_LINK( SwView, MoveNavigationHdl, void*, p, void ) case NID_TABLE_FORMULA_ERROR: rSh.GotoNxtPrvTableFormula( bNext, true ); break; + + case NID_RECENCY : + rSh.EnterStdMode(); + bNext ? rSh.GetNavigationMgr().goForward() : rSh.GetNavigationMgr().goBack(); + break; } m_pEditWin->GrabFocus(); delete pbNext; diff --git a/sw/source/uibase/uiview/viewstat.cxx b/sw/source/uibase/uiview/viewstat.cxx index b69effc8542d..8dbcbe650090 100644 --- a/sw/source/uibase/uiview/viewstat.cxx +++ b/sw/source/uibase/uiview/viewstat.cxx @@ -54,6 +54,7 @@ #include <IDocumentRedlineAccess.hxx> #include <doc.hxx> +#include <workctrl.hxx> using namespace ::com::sun::star; @@ -97,6 +98,18 @@ void SwView::GetState(SfxItemSet &rSet) // used to update all instances of this control rSet.InvalidateItem( nWhich ); break; + case FN_SCROLL_PREV: + case FN_SCROLL_NEXT: + { + if (m_nMoveType == NID_RECENCY) + { + if (!m_pWrtShell->GetNavigationMgr().forwardEnabled()) + rSet.DisableItem(FN_SCROLL_NEXT); + if (!m_pWrtShell->GetNavigationMgr().backEnabled()) + rSet.DisableItem(FN_SCROLL_PREV); + } + } + break; case FN_EDIT_LINK_DLG: if( m_pWrtShell->GetLinkManager().GetLinks().empty() ) rSet.DisableItem(nWhich); diff --git a/sw/source/uibase/wrtsh/navmgr.cxx b/sw/source/uibase/wrtsh/navmgr.cxx index b123408b820e..b8c1f32582d1 100644 --- a/sw/source/uibase/wrtsh/navmgr.cxx +++ b/sw/source/uibase/wrtsh/navmgr.cxx @@ -216,31 +216,6 @@ bool SwNavigationMgr::addEntry(const SwPosition& rPos) { if (bForwardWasEnabled) m_rMyShell.GetView().GetViewFrame()->GetBindings().Invalidate(FN_NAVIGATION_FORWARD); - // show the Navigation toolbar - css::uno::Reference< css::frame::XFrame > xFrame = - m_rMyShell.GetView().GetViewFrame()->GetFrame().GetFrameInterface(); - if (xFrame.is()) - { - css::uno::Reference< css::beans::XPropertySet > xPropSet(xFrame, css::uno::UNO_QUERY); - if (xPropSet.is()) - { - css::uno::Reference< css::frame::XLayoutManager > xLayoutManager; - css::uno::Any aValue = xPropSet->getPropertyValue("LayoutManager"); - - aValue >>= xLayoutManager; - if (xLayoutManager.is()) - { - const OUString sResourceURL( "private:resource/toolbar/navigationobjectbar" ); - css::uno::Reference< css::ui::XUIElement > xUIElement = xLayoutManager->getElement(sResourceURL); - if (!xUIElement.is()) - { - xLayoutManager->createElement( sResourceURL ); - xLayoutManager->showElement( sResourceURL ); - } - } - } - } - return bRet; } |