ui: Keyboard controls (#935)

* switch focus between views with Tab
* move focus within views with WASD/HJKL/Arrows
* move focus between graph edges by holding Shift
* move focus between code references by holding Shift
* removed graph panning with WASD and moved zooming to Alt + W/S
* removed graph navigation by pressing starting character in graph view lists
* changed local reference and custom trail shortcuts
* updated Keyboard Shortcuts window
* use common back and forward shortcuts and YZ & Shift + YZ
* fix macOS issue where widgets don't get proper focus after creating a new tab
* don't use shared_ptr in QtMainView

fixes #486, #327, #214, #210
This commit is contained in:
Eberhard Gräther
2020-03-02 14:48:03 +01:00
committed by GitHub
parent f4b37f9763
commit b0616778f3
98 changed files with 4204 additions and 863 deletions
@@ -3,6 +3,7 @@
#include <set>
#include "CodeFocusHandler.h"
#include "CodeScrollParams.h"
#include "CodeSnippetParams.h"
#include "types.h"
@@ -28,14 +29,21 @@ public:
const FilePath& filePath,
size_t lineNumber,
Id locationId,
Id scopeLocationId,
bool animated,
CodeScrollParams::Target target) = 0;
CodeScrollParams::Target target,
bool focusTarget) = 0;
virtual void onWindowFocus() = 0;
virtual void findScreenMatches(
const std::wstring& query, std::vector<std::pair<QtCodeArea*, Id>>* screenMatches) = 0;
virtual void setFocus(Id locationId) = 0;
virtual void setFocusOnTop() = 0;
virtual void moveFocus(
const CodeFocusHandler::Focus& focus, CodeFocusHandler::Direction direction) = 0;
protected:
void ensureWidgetVisibleAnimated(
const QWidget* parentWidget,