Similar to screen copy/scrollback mode it allows browsing the scrollback
and selecting text.
Selection is done either by standard GUI shift+arrows, or `vi` style with
`v` starting/ending selection.
BUG: 100317
Before 3d6c839b, sessions were snapshotted every 2 seconds, and also
half a second after the associated view received focus or a key press.
This second timer could theoretically be postponed indefinitely.
Commit 3d6c839b tries to save energy by not taking a snapshot every 2
seconds, and instead has a timer that fires half a second after any
event received by the application.
This commit goes back to the old behavior, but still without the 2
second timer, and also sets the half second timer after receiving the
Emulation::outputChanged signal, which is sent at a maximum 40ms after
the emulation receives data. It also copies the idea from commit
3d6c839b of not restarting the timer if it's already started, since
otherwise, continuous output could postpone the timer indefinitely.
There is no reason for a tab title to change if there is no QT event.
So, instead of snapshoting session regularly, we do it only if there is
some QT events. To catch all QT events an event handler is installed on the
QCoreApplication instance.
Every time the selection is changed, the selection text is retrieved to
check whether to enable or disable the copy actions. Besides that, the
selection text is also used for the web search context menu entries.
Better just check if the selection is empty and make a note that the
selection changed, so the next time the context menu is invoked it can
retrieve the current selection text, which should happen much less often
than selection changes.
Adds a missing signal/slot connection for when a split-view is drag-and-
dropped to a new window. Use an existing method to handle it the same
way as drag-and-dropping or detaching a tab.
BUG: 442238
There is an inconsistence in "Find Next/Previous" icons in Edit menu and
the search bar. Make sure they are consistent whenever "Search backwards"
is checked or not.
BUG: 443244
This should prevent opening two instance of the EditProfileDialog in the
same process, i.e. if "run all konsole windows in a single process" option is:
- Enabled, then opening the dialog will block user interaction with all
other konsole windows (including tabs).
- Disabled, then open the dialog will block user interactin with all
other tabs in the same window
This simplifies the code since it checked if such a dialog was open
somewhere else to prevent crashes.
Traditionally konsole only was able to parse OSC sequences terminated with
non-standard BEL. In 324d78c07f konsole was extended to parse sequences
terminated by 7-bit ST (ESC \) as well. But the OSC responses were still
hardcoded to reply only with sequences with BEL. But replying to 7-bit ST
terminated sequences with a reply terminated by a non-standard terminator
is wrong.
This commit passes the terminator along and changes the response to match
the original request.
printf "\033]10;?\a" replies with "^[]10;rgb:fcfc/fcfc/fcfc^G"
printf "\033]10;?\033\\" replies with "^[]10;rgb:fcfc/fcfc/fcfc^[\"
This path adds a new feature for konsole, in the form of URL Escaped
Sequences. It allows programs to embbed URL's on texts much like
the anchor tag in html does
There's a allowed list of possible schemas for links, by default
it only accepts http://, https:// and file:// but the user can
add more if he wants.
The maximum amount of URL's accepted is 200, to prevent OOM
History is taken into account while scrooling
This also allowed me to remove a few includes of Profile.h
around the codebase, that used Profile::Ptr. now the compilation
is a bit faster and also does not recompile things as often.