[Bug 82662] New: new feature: (global) cursor position history
andreas braendle
abraendle at gmx.de
Fri Jun 4 00:54:32 UTC 2004
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=82662
Summary: new feature: (global) cursor position history
Product: kdevelop
Version: unspecified
Platform: SuSE RPMs
OS/Version: Linux
Status: UNCONFIRMED
Severity: wishlist
Priority: NOR
Component: general
AssignedTo: kdevelop-devel kdevelop org
ReportedBy: abraendle gmx de
Version: (using KDE KDE 3.2.1)
Installed from: SuSE RPMs
OS: Linux
i've written a class (some months ago)
someone must intergrate it into kdevelop
it's a pretty sophisticated feature already.
description&howto is included
-----------------
[...]
// Documentation:
// PURPOSE:
// implements a global CursorPositionHistory for qeditor (?) etc.
// usful when working with large projects/files, and having to do changes in
several files
// makes finding interesting positions again a lot easier (for example while
browsing the code);
// also useful during finding out how the code of a certain program is
working
// also useful when working only with a large single file, as i found out :)
// can be more practical than & is not intended as a substitute for bookmarks
Special features:
- if navigating within a "block" of +/- 7 lines no additional history entry
is inserted
- if navigating back and then changing the cursor position, the "future"
isn't
deleted
- NavigateLeave deletes the current entry out of the history list (=leave
this position),
(it also pushes it onto a small stack -> NavigatePop to get it back)
**************************
I would have proposed to use the 4 keys Ctrl-Alt-Left/Right/Up/Down, but they seem to be already
used for other purposes.
...Ctrl-Alt-Shift-Left/Right are also already used
other proposals:
Ctrl-Alt-Shift-j/k/l/i
Ctrl-Alt-4/5/6/8 (Numpad)
etc.
**************************
("light" version with 2 or 3 keys possible)
QEditorWidget* NavigateBack(int &line, int &column); // Ctrl-Alt-Left
for example
QEditorWidget* NavigateLeave(int &line, int &column); // Ctrl-Alt-Up
for example
QEditorWidget* NavigateForward(int &line, int &column); // Ctrl-Alt-Right
for example
QEditorWidget* NavigatePop(int &line, int &column); // Ctrl-Alt-Down
for example (3key-version: optional)
stack: i
Pos2 |
Pos1 v
|
*---------------------* UP
| DOWN
|
|
history <<<<<-------- current ------------>>>> future
LEFT RIGHT
KEYPRESSED-EVENT: (PSEUDOCODE)
int l,c;
QEditorWidget* p;
if (p=NavigateBack(l,c)) {setviewactive?(p); setcursor(p,l,c); }
**************************
// INTEGRATION: [see source files]
....
// perhaps the Application/mainwindow should catch these events and then
change to the correct
// editor-window+line+column
// SideEffects/NECESSARY CHANGES to rest of the Editor-code:
// uses QEditorWiget* pointers to identify which of the currently open files
is meant
// Editor Codes has to inform this Class and use it, and also inform it when
a file is closed
// Application has to create one object of this class
More information about the KDevelop-devel
mailing list