Summary:
The idea is that a SplitterHeaderBar will be added in the
near future so the checks for the parent widget could be
wrong.
If instead of checking for a specific widget we check for
anything and walk to the parent list untill we find
a TerminalWidget seems sane, and safer.
Phabricator messed with this review and send the wrong diff together (because of the same parent)
so I'm rephrasing it.
Reviewers: #konsole, hindenburg, ngraham, #vdg
Subscribers: aaronhoneycutt, kvermette, thsurrel, rizzitello, mart, hindenburg, gennad, fabianr, ndavis, shubham, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D21301
Historically Konsole is a complex software. there are many ways
to close a session, and one of the least used ones is to delete
the View where the session is, and deleting the session later.
Because the session will also try to delete the view when it's
being deleted, this led to a crash in yakuake.
Summary:
Fix the regression about the placement of a new tab:
it is now added either at the end, or next to the
current tab depending on the setting.
BUG: 406409
Test Plan:
In Konsole settings, select 'Put new tab after the
current tab' for the New tab behavior setting.
Open some new tabs and check they are opened at the
proper position.
Reviewers: #konsole, hindenburg, tcanabrava
Reviewed By: tcanabrava
Subscribers: konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D20836
Summary:
The Ctrl-Tab and Ctrl-Shift-Tab were working only when multiple
tabs were opened, but it should work as well when only one tab
is opened but multiple splits are created within that tab.
Test Plan:
Open konsole with a single tab, then create several splits.
Use Ctrl-Tab and Ctrl-Shift-Tab to navigate between the splits
in chronological order.
Reviewers: #konsole, hindenburg, tcanabrava
Reviewed By: #konsole, hindenburg
Subscribers: gennad, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D20395
Summary:
Session Save / Restore.
The old session code saved the sessions in random order, the restore
order was wrong and it ignored the splits (even the old style splits
where ignored, I'm not talking about the new style). This new session
/ restore code ignores nothing: It will save and restore your whole
Terminal Hierarchy, with splits, splits-in-splits, recursing everything
where needed.
bug: unfocused terminal tabs lacks title untill focused. should be
easy to fix and not a blocker.
Test Plan: - Too many Logouts / Logins to test this.
Reviewers: #konsole, hindenburg, ngraham
Reviewed By: ngraham
Subscribers: konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D20224
Summary:
Fixes a few minor memory leaks found with address sanitizer.
The newTabButton and closeTabButton was not passed a parent and is not
deleted in the destructor of TabbedViewContainer which will cause them
to be leaked when closing a tab. Instead pass the TabbedViewContainer as
the parent.
The same goes for the profileMenu, it was not passed a parent pointer at
contruction and the setMenu function doesn't take ownership of it, so
therefore it was also leaked.
Test Plan:
Compile konsole with address sanitizer.
Open and close konsole.
Reviewers: #konsole, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: hindenburg, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D19634
Summary:
This is what I envision for the Konsole Tab / Splits
management. One tab contain a QSPlitter that can contain
multiple TerminalDisplays / Splits.
You can test this behavior by hitting ctrl + shift + 9
and ctrl + shift + 0 to activate the splits, and ctrl +
shift + t to activate a new tab.
Old:
{F6484123}
New:
{F6484124}
What works:
- Tab Creation
- Split Creation (Even Recursive splitting)
- Terminal Close will close the Split on last split
- Last last split to close will close the tab
- Last tab to close will close konsole
- Detaching
- Tab Renaming
- Closing splits after detach
- Closing windows after detach
- Detach / Reattach works!
This patch series has the commits of Thomas Surrel, Maciej Niedbdalski and Myself.
Reviewers: #konsole, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: luc4, hallas, anthonyfieroni, gennad, ngraham, thsurrel, maciejn, mglb, hindenburg, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D17643
Summary:
A lot of methods that no one called, a lot of methods that the
only calee could be removed to a direct call.
Reviewers: #konsole, hindenburg, ngraham
Reviewed By: #konsole, hindenburg
Subscribers: sandsmark, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D18520
With this action, two tabs can be jumped back and forth. This
somewhat abuses the stucture used for the "Last Used Tabs" action.
When the "Last Used Tabs" actions are used, the next "Toggle between
two tabs" will be incorrect for the first time.
Idea from https://phabricator.kde.org/D7068
Summary:
This parameter is internal from the TerminalDisplay, no need
to extract it to send to another parameter.
Reviewers: #konsole, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D17625
Summary:
This is needed to clean up a bit of the code later.
being really explicit here removes the need to handle
QWidget pointers, as that could in theory be anything
Handling only TerminalDisplays* we can remove the
SessionController map from the ViewContainer and
add it to the TerminalDisplay class in the future
Reviewers: #konsole, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D17492
Summary:
Instead of iterating over the sessions to fetch the view and
duplicate the current screen once for each split, ignore all
of them and just create a new terminal view. The only thing
this terminal view shares with the previous current widget
is the profile.
use createView instead of manually trying to create the view
Fixes bug while closing the split
Don't duplicate tabs in the splits
BUG: 385697
BUG: 380455
FIXED-IN: 19.04
Reviewers: thsurrel, hindenburg, gennad, ngraham, #konsole
Reviewed By: thsurrel, hindenburg, ngraham, #konsole
Subscribers: ngraham, hindenburg, gennad, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D17267
Summary:
This patch adds the possibility to navigate between the last
accessed tabs with a keyboard shortcut.
Test Plan: Open several tabs, use Ctrl-Tab to switch to the previous used one.
Reviewers: #konsole, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: hindenburg, ngraham, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D16884
Summary:
pretty vital (at least for me) if one doesn't have compositing.
we can't use the normal QPalette::Inactive because of color schemes,
but I made the new scrollbar color code follow the same dimming colors.
Test Plan:
tested with and without compositing, with and without scrollbar,
and dark and light color schemes.
Reviewers: hindenburg, #konsole
Reviewed By: hindenburg, #konsole
Subscribers: anthonyfieroni, konsole-devel, #konsole
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D16198
Summary:
As part of the QTabBar refactoring, honouring of the new tab behaviour
setting was lost. Restore using a simpler implementation that simply
asks QTabWidget for the current index.
BUG: 396701
Reviewers: #konsole, hindenburg, tcanabrava
Subscribers: konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D15828
This commit breaks sessionProfileCommandReceived
causing crashes in programs such as nvim.
I'm reverting it for now while I can't dig deeper.
This reverts commit 99f233b9a1.
Summary:
There's no point in returning null if we have a default
and we would check for null and query for the default
in all cases that we used it.
Export the private header ColorScheme
It's going to be used from Parts and App
Add ColorScheme() to the Profile
The profile used to hold the ColorScheme name, but if you
want to query for the ColorScheme you had to call ViewManager
but there's a class ColorSchemeManager that ViewManager used to call
Just make things simple:
- Profile has a colorScheme that it queries from the ColorSchemeManager
- Use profile->colorScheme() when you wanna something from the
colorScheme at the profile.
Reviewers: #konsole, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D13854
Summary:
Adds option to reverse the order of URL hints such that the last URL
(the bottom-most one) has the number 1 and the numbers increase from
bottom to top.
This becomes particularly useful when watching a log or buffer, or in terminal
chat applications. Very often, the most useful URL is the most recent one and
if there are many (> 10) URLs on the screen, the desired one will not get a
hint. Reversing the numbering makes the most recent URL hint take the number 1,
while the oldest will have the highest number or no number at all.{F6244152}
{F6244154}
{F6244155}
Reviewers: #konsole, #vdg, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: hindenburg, ngraham, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D15362
Summary:
If you moved the tabs to splits in a way that you have a different
number of tabs in each split, and started closing it, the count()
of the tabs would be different and we would hit an assert.
The fix is simple: don't separate the logic between tabEmpty and
tabDestroyed, if the tab is empty it will be destroyed but we can
treat everything in the tabEmpty signal, this way we will never hit
a dangling pointer.
Because of that it was possible that a splitView had a invalid
activeWidget for a microsecond, when it's deleting itself, so
instead of asserting if we have no active view, I choose to return
a empty list of properties.
Reviewers: hindenburg, ngraham, sandsmark
Reviewed By: hindenburg
Subscribers: konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D15379
Summary:
This continues the patch series of the rewrite
of the Tab handling code to a more modern approach
using QTabWidget.
This fixes the attach and reattach bug on multiple
konsole windows and reworks the drag & drop code
to a more simplified version of it.
Reviewers: hindenburg, ngraham, sandsmark
Reviewed By: hindenburg
Subscribers: lbergdoll, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D15377
Summary:
Show tabbar and hide tabbar got lost in the transition to a modern
QTabBar, this re-enables them. These options will override the
current settings if you use --hide-tabbar or --show-tabbar.
Changing these options in the settings will change these settings.
To use the current preferences just start konsole without --hide-tabbar
or --show-tabbar
Reviewers: #konsole, sandsmark, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: ngraham, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D14294
Builds have been failing since this new QTabBar code was committed
since QOperatingSystemVersion::currentType() is Qt5.9+. We currently
only require Qt5.6 and I don't want to change that just for this.
ENABLE_DETACHING is only set to false for MacOSX/Darwin.
(Detaching is still broken atm)
Move out of the CMake the check for crashes in detaching
It's better to check that in the code - I was quite lost
for a while on why there was a DETACHING_ENABLED definition
as it did not made sense
Summary:
this is a WIP, I don't plan to merge this yet, there are many thigns to solve.
Drop the handmade TabWidget used inside of konsole in favor of Qt's QTabWidget
This drops tons of code we manually did, but it also drops a bit of functionality.
Missing features:
- Close Button
- New Tab on double click
- Drag'n Drop
- Detach
and lots of testing.
Subscribers: konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D13882
Summary:
StackedViewContainer is a plain view container with no navigiations.
It can be replaced using TabbedViewContainer and hiding the tabbar.
This will minimize duplicate code and allow easier control of code
in Konsole and KonsolePart.
Test Plan:
Run konsole and konsole part test, and then
use the shortcuts to create tab.
Reviewers: #konsole, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: pedroarthurp, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D12964
Summary:
This is not userfully, only adds more code and
the code is happy without it.
Reviewers: #konsole, hindenburg
Reviewed By: #konsole, hindenburg
Subscribers: hindenburg, konsole-devel
Tags: #konsole
Differential Revision: https://phabricator.kde.org/D12965