[Libreoffice-commits] core.git: sw/source
Jim Raykowski (via logerrit)
logerrit at kemper.freedesktop.org
Mon Mar 2 06:57:29 UTC 2020
sw/source/uibase/utlui/content.cxx | 37 +++++++++++++++++++++++++++++++------
1 file changed, 31 insertions(+), 6 deletions(-)
New commits:
commit 479fa3a53bf21302e414e892574ea129f8f2373d
Author: Jim Raykowski <raykowj at gmail..com>
AuthorDate: Tue Feb 25 16:32:21 2020 -0900
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Mar 2 07:56:52 2020 +0100
Add functionality for promote/demote chapter/level shortcut keys
The following arrow key shortcuts for these actions can be used when
focus is on outline content in Writer Navigator:
Ctrl+Up promote chapter
Ctrl+Down demote chapter
Ctrl+Left promote level
Ctrl+Right demote level
Holding the Shift key, in combination with the above, will exclude
children from the action.
Change-Id: I73a320d571791e2e9e1c0e4efb579c9977220494
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89491
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze at documentfoundation.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx
index f8b8fb7bf425..47bb9e560a7a 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -3185,14 +3185,39 @@ void SwContentTree::KeyInput(const KeyEvent& rEvent)
}
}
- else if (m_bIsRoot && m_nRootType == ContentTypeId::OUTLINE && aCode.GetCode() == KEY_LEFT)
+ else
{
- SelectAll(false);
- SvTreeListBox::KeyInput(rEvent);
+ SvTreeListEntry* pEntry = GetCurEntry();
+ if (pEntry)
+ {
+ SwContent* pCnt = dynamic_cast<SwContent*>(static_cast<SwTypeNumber*>(pEntry->GetUserData()));
+ if (pCnt && pCnt->GetParent()->GetType() == ContentTypeId::OUTLINE)
+ {
+ if (m_bIsRoot && aCode.GetCode() == KEY_LEFT && aCode.GetModifier() == 0)
+ {
+ SelectAll(false);
+ SvTreeListBox::KeyInput(rEvent);
+ }
+ else if (aCode.IsMod1())
+ {
+ if (aCode.GetCode() == KEY_LEFT)
+ ExecCommand("promote", !aCode.IsShift());
+ else if (aCode.GetCode() == KEY_RIGHT)
+ ExecCommand("demote", !aCode.IsShift());
+ else if (aCode.GetCode() == KEY_UP)
+ ExecCommand("up", !aCode.IsShift());
+ else if (aCode.GetCode() == KEY_DOWN)
+ ExecCommand("down", !aCode.IsShift());
+ else
+ SvTreeListBox::KeyInput(rEvent);
+ }
+ else
+ SvTreeListBox::KeyInput(rEvent);
+ }
+ else
+ SvTreeListBox::KeyInput(rEvent);
+ }
}
- else
- SvTreeListBox::KeyInput(rEvent);
-
}
void SwContentTree::RequestHelp( const HelpEvent& rHEvt )
More information about the Libreoffice-commits
mailing list