For localhost, the user might have changed the current profile
manually, so before we trigger a profile change for a ssh session
we need to store that, so we can return to it later on.
If the user manually changes the profile inside of a ssh session.
TODO: test with multiple sessions (split screen, tabs)
Using line lengths, moving up in scroll history would require traversing
line lengths adding them until getting the start of the required line.
Using line starts, removing lines as they scroll past history would
require traversing the whole vector and updating the line starts. A
better option is storing biased line starts, which doesn't require any
traversing of the vector for common operations (hopefully reflowing is
not a common operation).
The escape sequence parser in Vt102Emulation is fuzzy in classifying sequences.
The commit move it a bit nearer to parsing according to the widely accepted
terminal sequence structure by restricting CSI (from ecma-48) parsing rules
from rules applicable to non CSI sequences and common parsing rules.
This tightens up parsing of non CSI sequences. Sequences like ESC % = now
no longer are misinterpreted as unfinished but as complete sequence which
matches how other terminals tokenize and also matches the emca-35 syntax.
This is done by moving most of the parsing rules to branches of an
if-statement conditional on the first 2 characters in tokenBuffer.
void KFileItemActions::insertOpenWithActionsTo(QAction*, QMenu*,
const QString) requires KF 5.78 while
void KFileItemActions::insertOpenWithActionsTo (QAction*, QMenu*,
const QStringList) requires KF 5.82. For any KF version earlier, use
void KFileItemActions::addOpenWithActionsTo(QMenu*, const QString)
Fixes build on older systems after
https://invent.kde.org/utilities/konsole/-/merge_requests/527
If Qt detects a plasma session it uses kfmclient anyways (so the current
behavior), but if it detects gnome it uses gnome-open, xdg-portal dbus
call if it detects that, etc.
When closing an inactive tab with splits, focusAnotherTerminal() was not
transferring focus to any TerminalDisplay, resulting in having no active
session on ViewManager, which would then crash when splitting the view.
BUG: 446830
Changes to scrollbar colouring interfered with the visual bell.
TerminalColor::onColorsChanged() not only updates the scrollbar palette
(for Breeze widget style), but also updates the TerminalDisplay palette.
BUG: 445520
9f656939 introduced the possibility of showing a session in multiple
views, something which is no longer supported. In doing so, it started
passing QApplication::activeWindow(), instead of TEWidget (nowadays
TerminalDisplay) to KNotification.
7592e894 split notifications for focused/unfocused terminals.
Unfortunately, QApplication::activeWindow() returns nothing for unmapped
windows, which results in issues when notifications are configured to
mark the task bar entry or run a command with %w/%t substitutions (for
window id and window title).
BUG: 443117
67508680 refactored TerminalBell out from TerminalDisplay, and in the
process stopped passing the TerminalDisplay widget to KNotification,
which resulted in issues when notifications where configured to mark the
task bar entry or run a command with %w/%t substitutions (for window id
and window title).
Many thanks to Nicole Kleinhoff and Jan Palus who identified the commit
that introduced the regression.
CCBUG: 443117
BUG: 443411
BUG: 445520
Regression introduced by 5919c1fd. The selection range is inclusive in
both ends.
Thanks to Chiitoo for reporting and to Yerrey Dev for proposing a
solution.
BUG: 448144
Since commit c3982cfb, bell notifications include the display title, in
addition to the name title, to help identifying which tab the
notification came from. Unfortunately, %w (which can be quite useful in
identifying tabs) and %# weren't working for this case, neither for the
DBUS query:
qdbus $KONSOLE_DBUS_SERVICE $KONSOLE_DBUS_SESSION org.kde.konsole.Session.title 1
BUG: 435644
Commit d37d3ac1 "CompactHistoryScroll: Remove _maxLineCount + 5 lines at
a time" caused a regression: addHistLine queried the number of lines in
history before and after adding a line, and if it had not incremented it
assumed one line entered history and another was dropped at the other
end. Now, lines are dropped from history in batches, so take care of
that.
The code was checking if the path ended with a specific file name, which
meant that if you have two profiles "Root Shell.profile" and
"Shell.profile", the matching is messed up because the former ends with
the latter. Instead since we're using the path, add a '/', this way we're
matching the whole file name which is the last component in the path after
the last '/'.
Thanks to the bug reporter for git bisect'ing the repo to find the culprit
commit.
BUG: 447872
FIXED_IN: 21.12.0