Thanks to Thomas Dreibholz <dreibh@iem.uni-due.de> for the patch. I removed
some whitespace changes from his patch on reviewboard.
BUG: 200744
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=1016847
* Reduce amount of memory required for representing characters in scrollback buffer by not storing formatting data for each character. Instead store UTF-16 characters and formatting ranges
* Allocate memory for scrollback buffer use a custom mmap-based memory pool - this allows the memory to be released to the OS sooner when freed.
There is a small performance cost when printing a large number of lines - see bug report for figures.
Patch by Michael Meier
REVIEW: http://reviewboard.kde.org/r/802/
BUG:176974
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=987102
If this information is put anywhere it should be in a single file instead
of duplicated for each file. In fact, it shouldn't be needed at all since
we have the same rules on tabs and tab sizes as most other parts of kdebase
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=946369
Patch from Stefan Becker <stefan.becker@nokia.com>
Thank-you very much Stefan!
CCBUG: 152761
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=867323
Add action collection for current controller to dialog before showing and reload UI
for other controllers after the dialog is accepted.
There is a known bug at the moment where changing a shortcut from a custom value to
the default shortcut only updates the current tab and tabs created after the change.
This is a kdelibs issue being looked into.
BUG: 161021
BACKPORT: 4.1
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=837726
Go to Settings -> Edit Current Profile -> Tabs page and tick "Show 'New tab' button in tab bar"
This was added for the benefit of users with existing habits from KDE 3 and is not
shown by default.
* Add close buttons on tabs using the new style ppenz added to KTabBar
* Add confirmation when closing via middle-click/close button if a program other than a shell or
nested shell is running in the foreground of that session.
BUG: 157015
Squashed commit of the following:
commit 54a5db9c31a5527e44d7358b30587c28bab965bc
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 2 01:48:05 2008 +0100
UI text correction: 'on tab bar' -> 'in tab bar'
commit ed8e70238e2cc4240f8334cd091fa2707785a908
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 2 01:46:42 2008 +0100
Do not show the confirm-on-close prompt if the foreground program is another shell.
commit 010370c12950a532d93c99d0983c74c47e26ad07
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 2 01:40:05 2008 +0100
Add a confirmation which is displayed when closing a tab via middle-click / close button if the program has an active program running in the session (other than the shell itself).
commit 49812e26e5fd8c44dd01f1a6a4c0e7271c6366fd
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 2 01:25:29 2008 +0100
Add confirmClose() method to ViewProperties which is can be re-implemented to prompt whether to close the session. Make the presence of the close button in the ViewContainer dependent on a QuickCloseView feature being enabled.
commit ece191ad5ad550af47cd2ca0bc75a517119e7189
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 2 01:09:17 2008 +0100
Show 'close' button on tabs using the new close button style added to KTabBar by ppenz.
commit f975f04c993effdd2afef588c5f765192b6fab5a
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 2 01:03:54 2008 +0100
Better UI text for 'Show New Tab' option.
commit 642c5b1d07cd2288c78446efe395da050730decb
Author: Robert Knight <robertknight@gmail.com>
Date: Thu May 1 21:04:47 2008 +0100
Sync 'new tab' tab bar menu actions with profile list.
commit c6c556980e43afcb1bb5fdfaaa9dd7e12e524688
Author: Robert Knight <robertknight@gmail.com>
Date: Wed Apr 30 23:01:34 2008 +0100
Hook up actions in new tab popup menu so a new tab is created with the right profile when an action is chosen.
commit dece8a23ff101dda47d495ba38e57e55059c4e63
Author: Robert Knight <robertknight@gmail.com>
Date: Wed Apr 30 22:51:28 2008 +0100
Apply ShowNewTabButton profile property to current view container.
commit e244a95512dc535198fa69c3afe34b597402de15
Author: Robert Knight <robertknight@gmail.com>
Date: Wed Apr 30 22:50:57 2008 +0100
Add support for enabling/disabling a 'quick new view' widget in view containers. Add an implementation of it (quick new tab button) in TabbedViewContainerV2
commit 9fdc2e450aefb9b602f8fb6b66d3508e6750531b
Author: Robert Knight <robertknight@gmail.com>
Date: Wed Apr 30 22:50:22 2008 +0100
Hook up 'Show new tab button' UI option.
commit 7326e6dccbc095f0f784fd6f4da532f250ca5437
Author: Robert Knight <robertknight@gmail.com>
Date: Wed Apr 30 22:50:04 2008 +0100
Add ShowNewTabButton profile property and set a default for it (false)
commit 273f85f0d21d8b755712c67c50a939400f15a169
Author: Robert Knight <robertknight@gmail.com>
Date: Wed Apr 30 21:22:09 2008 +0100
Add checkbox for toggling new tab menu button.
commit 200744ce620cd6bd9a9d1791e62863c618921788
Author: Robert Knight <robertknight@gmail.com>
Date: Wed Apr 30 21:21:33 2008 +0100
Formatting. Remove extra lines.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=803112
arrow and 'torn-off' tab while moving.
(Drag and drop between windows is supported only for windows within the same process,
which will be all windows opened from a GUI)
Some of this functionality could be moved to kdelibs / KTabBar for the benefit of other
applications.
BUG: 75653
Squashed commit of the following:
commit 1e5b628b74f4c7182b1aed159088f0d449bf6f1f
Author: Robert Knight <robertknight@gmail.com>
Date: Tue Apr 15 11:32:04 2008 +0100
Set drop indicator label to same size as pixmap.
commit 59ad9200465cfb76651ce81abd3ba20e2fdd3067
Author: Robert Knight <robertknight@gmail.com>
Date: Tue Apr 15 11:14:41 2008 +0100
Adjust drop indicator for north and south tabs.
commit 01ba5bca9457bc19156f5a87ad6967fac7cc3c1e
Author: Robert Knight <robertknight@gmail.com>
Date: Tue Apr 15 11:06:52 2008 +0100
Display a drop indicator arrow at the position where the tab will be dropped.
commit 137ade01d70d75d26f3c14624ec2c096c8c50eba
Author: Robert Knight <robertknight@gmail.com>
Date: Tue Apr 15 10:01:28 2008 +0100
Update detach view action state when moving tabs between windows.
commit 412c2d16844afda3f0427a5583d653c2214722fb
Author: Robert Knight <robertknight@gmail.com>
Date: Tue Apr 15 09:56:37 2008 +0100
Move mimetype definition to ViewProperties
commit dc31499351ef564cfe75c25124c3549b5dc75e16
Author: Robert Knight <robertknight@gmail.com>
Date: Tue Apr 15 02:26:03 2008 +0100
Hack around crash which can occur after a drag-and-drop tab move causes a view container to be destroyed, taking the QDrag object with it. Fix this by setting the QDrag's parent object to 0 before calling removeView(). This leaks the QDrag however.
commit df057fd06988bcd2b4c0f21e1d746543e7cfe1c5
Author: Robert Knight <robertknight@gmail.com>
Date: Tue Apr 15 02:24:21 2008 +0100
Fix jumps based on uninitialized variables.
commit 864bfcc2e8c63e2c8a9b6e9c96bc4d90d3dacd7e
Author: Robert Knight <robertknight@gmail.com>
Date: Tue Apr 15 00:20:12 2008 +0100
Make the initiator of the tab drag event remove the view. Change newViewRequest() -> moveViewRequest(). Do not delete the view if the tab is dropped onto another application which blindly accepts it.
commit b922858420d4b61ad2727c64bc885042280d65f4
Author: Robert Knight <robertknight@gmail.com>
Date: Mon Apr 14 23:29:18 2008 +0100
Add support for drag-and-drop moving of tabs between any two tab bars in the same process.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=797287
Improvements in the KDE 4 version:
- Input can be copied to all other sessions or only a subset of sessions,
selection is via a filter-able list which appears when 'Copy Input To...' is clicked.
- Input can be sent from a tab in one window to a tab in another window
(all sessions in all windows are displayed in the filter window)
BUG: 152072
BUG: 77682
Squashed commit of the following:
commit 3184e1958d3aa7e7574081df32814dbe44591c9e
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 19:24:22 2008 +0100
Remove debugging messages.
commit 31afd9b2a3a327ca3e43deff47415de41a1ad74e
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 19:16:33 2008 +0100
Copy input dialog. Hide 'Number' column and header. Show the check box in the title column. Focus the search filter before showing the dialog.
commit 8c74e736d322e74d7af812a14500d748e748a224
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 19:03:59 2008 +0100
Remove sessions from the internal checked/fixed sets when they are removed. Fix crashes if sessions exited while SessionController was showing a dialog for that session. Add QPointer<T> guards around the dialog exec() methods.
commit e4085069c2ff8cedb987639f50b73a3c679319f6
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 18:44:40 2008 +0100
Remove sessions from the SessionGroup and SessionListModel when they terminate.
commit 29db3a3dd84f392ee333918e261bd6bcd75fd062
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 18:39:24 2008 +0100
Use an extended rather than single selection in CopyInputDialog
commit 3f93507405053c84e09337225fa6e2a582776264
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 17:54:22 2008 +0100
Copy Input Dialog: Show tab text in the Title column. Show clear button in filter line edit.
commit 0619f7ad72a1a346118a0174e5aee01ce94ddc52
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 17:40:07 2008 +0100
Copy Input Dialog: Add buttons to select and deselect all visible sessions.
commit 126afb3d394894a0325c5772fb32a25380932c44
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 17:23:07 2008 +0100
Show the master session as checked and disabled.
commit c559bd5f5bcc59adecc3f29ee5b16200adb37b09
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 17:20:40 2008 +0100
Create a SessionGroup in the SessionController when copyInputToAll() is called and use the CopyInputDialog to allow the user to choose which sessions the current one copies to.
commit 64c12e58a582a17b5cdeddcc8f9df7a89885f9e5
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 17:19:47 2008 +0100
Display session list with check boxes and filter to select sessions to copy input to. Show master session as a disabled, checked item.
commit 43eb5ccdfc768b42c5e650b6e56d1e1120ab5c5b
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 17:19:06 2008 +0100
Add header data and Session* pointer to items in SessionListModel.
commit a8236a6658e1540a924aa6467dc90aeed346a0be
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 17:18:28 2008 +0100
Remove connection to removed slot.
commit 03990fa244159b50152cc721a0fe4e403551d47c
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 17:17:54 2008 +0100
Make SessionGroup take a QObject* parent argument in the constructor.
commit e2f91001c09a8422fb44ad58cf95f8dcba22c063
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 15:25:26 2008 +0100
Add CopyInputDialog to build.
commit 3b33e1d6abdde56bbafd2bbd64c89c008a41d096
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Apr 13 14:32:36 2008 +0100
Add header and implementation files for 'Copy Input To' dialog.
commit 9ebc36e3f09865f29702768cbb17279054e8cb4c
Author: Robert Knight <robertknight@gmail.com>
Date: Thu Apr 10 07:04:48 2008 +0100
Add a dialog for selecting sessions to copy input to.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=796545
Squashed commit of the following:
commit 17bd4aee3b20b3d36e0891dfd516d986430133c2
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Mar 30 03:39:07 2008 +0100
Use a list of integers rather than a bitmap to record the character positions of new lines. This allows for empty lines in the buffer which means that multiple lines may start at the same character position.
commit d8ee8002f6ee87257f70f94e1a77a44f668617d9
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Mar 30 03:22:24 2008 +0100
Compute the line index of a match found during output search more accurately. Add a method to record the positions of new lines within the output stream to TerminalCharacterDecoder and use that in SearchHistoryTask to count the number of lines offset from the start of the current block. Unlike the previous method this works when there are wrapped lines in the output.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=791703
commit 99d61f9bdfe29347050162a5a675bb0c276bc1bf
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 20:45:45 2008 +0000
Allow a normal frame around the table view in ManageProfilesDialog. Works better with Oxygen style.
commit 7075de00d8cc88568e108e868e08d071d5aa7bcb
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 20:37:38 2008 +0000
Change base class of ProfileItemDelegate from QItemDelegate to QStyledItemDelegate for better rendering. Fix updates of favorite / non-favorite status in ManageProfilesDialog. QVariant equality comparisons are not properly supported for custom types so QAbstractItemModel::match() has to be replaced with manual iteration through the rows.
commit 3baa3307473e037efd500ade7df37d2fd62c60d9
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 20:09:27 2008 +0000
Remove unecessary deleteProfile() call. Explicitly add new profiles to the SessionManager. Mark the temporary profile in the EditProfileDialog as hidden.
commit 53d1e3515d3408c08ba4b019b5faceffae6b0f8a
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 20:02:28 2008 +0000
Do not track deletion of temporary un-named profiles.
commit 55c69e15a4247319b0cff73691f072fef39684c9
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 20:01:25 2008 +0000
Make SessionManager::addProfile() public. Call it automatically in SessionManager::setFavorite() if the profile is not already known to the manager. When a profile is deleted via SessionManager::deleteProfile() mark it as hidden so that it is not recreated on disk if later changed. Add debugging in ~Profile to track deletion of profiles.
commit 7a028bac5846cd3689e3351ab139c6f372ca173e
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 19:41:22 2008 +0000
Fix several signal/slot connections in ManageProfilesDialog after the SessionManager changes.
commit da7c7b4f939c17885cf0fbaa1fb93d2655021b83
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 19:36:57 2008 +0000
Use a helper class to pop elements from recursion guard stack when a call to loadProfile() returns rather than requiring a manual call to recursionGuard.pop()
commit 14a993d15722ec5270de708154408896fd7418b8
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 19:12:20 2008 +0000
Fix profiles not being loaded properly if their parent was a profile which had already been loaded. Profile paths were not being taken off the recursion guard stack at one exit from loadProfile().
commit f946fc0cbde26cd816e3f1d172a5e5327ff3295b
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 19:01:06 2008 +0000
Adapt Part to the SessionManager/Profile changes.
commit d3155ba0f6dc9ec0ca34a45b5787488c055dc4bf
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 18:55:05 2008 +0000
Update MainWindow API documentation to reflect string key -> ref counted pointer change for profiles.
commit 5d546054c031ae6ee6915f2cc6bcf61dd4e03520
Author: Robert Knight <robertknight@gmail.com>
Date: Sat Mar 22 18:53:16 2008 +0000
Update SessionManager API documentation to reflect string key -> ref counted pointer change for profiles.
commit 856fdf37a5bd81711ff0db1b307b8736ef4ae34e
Author: Robert Knight <robertknight@gmail.com>
Date: Thu Mar 20 23:43:53 2008 +0000
Fix assert. Fall back to current locale's codec if a null pointer is passed to Emulation::setCodec()
commit 127e894d076061b991934adf84256b651bf31724
Author: Robert Knight <robertknight@gmail.com>
Date: Thu Mar 20 22:45:11 2008 +0000
Replace string key for profiles with ref-counted profile pointer.
commit 53246e5bd4ffcec56ca0ff94730f9ef3946e3f4c
Author: Robert Knight <robertknight@gmail.com>
Date: Thu Mar 20 20:50:17 2008 +0000
First step towards removing string keys as a means to reference profiles. Change Profile base class from QObject to QSharedData and replace all usage of Profile* with KSharedPtr<Profile>
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=788936
using the Xterm Operating System Controls escape sequences.
See the "Operating System Controls" section on this page:
http://rtfm.etla.org/xterm/ctlseq.html
Other colors and multiple color sequences are not supported.
xtermcontrol --fg=<color> --bg=<color> now work as expected.
In addition to standard color names ("green","blue","red") etc, Qt
also accepts SVG color names:
http://www.w3.org/TR/SVG/types.html#ColorKeywords
BUG: 155801
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=787355
which part of the code the message came from and allows filtering of output
using kdebugdialog
* Remove explicit creation of singleton classes SessionManager,ColorSchemeManager and
KeyboardTranslatorManager and automate it with K_GLOBAL_STATIC.
This ensures that the singleton destructors are called appropriately by KPart clients
when they unload the libkonsolepart library.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=754334
colors was not readable with terminal display transparency enabled.
* Transparency works again, but requires --enable-transparency argument passed to command-line
due to artifacts that appear otherwise.
Re-enable the code which searches for a suitable display, visual and colormap when
starting the application in an environment which supports compositing. Still
need to resolve with other developers exactly how this will be done in KDE 4.0
* Fix problem where flow control warning banner was always displayed when
Ctrl+S, Ctrl+Q were pressed, regardless of whether flow control was
actually enabled.
* Fix artifacts when scrolling whilst the flow control warning banner was
visible. Scrolling optimisations in the terminal display are disabled whilst
the warning banner is being shown.
* Fix links which wrapped over more than one line being cut-off at the end of the line
(eg. when parsing "http://www.kd <END OF LINE> e.org" the link address would be reported
as "http://www.kd" instead of "http://www.kde.org"). The link underlining is not yet
corrected, only the part of the link on the first line is highlighted.
* Implement code to load and use a built-in keyboard translator for fallback purposes
in case no .keytab files exist. The actual translator text (in DefaultTranslatorText.h)
is currently incomplete.
* Replace hard-coded colors for flow control warning label with colors from
KColorScheme
* Replace hard-coded colors in incremental search line edit when a match is not found
with colors from KColorScheme
* Remove un-used variables in TerminalDisplay class, rename enums to match
CamelCase naming style used elsewhere.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=748936