The old code will cause problem if the loaded profile does not specify
its parent explicitly. That loaded profile will have current default
profile as its parent, which means its behavior changes if another
profile is set as the default profile . A good example is the 'Shell'
profile.
The new code initially sets fallback profile as parent, which guarantees
the behavior of 'Shell' profile is stable.
BUG: 279863
After this hostname.local.profile will work with --profile and
--list-profiles. Also, the profile path file is checked if it is a
directory.
BUG: 250399
FIXED-IN: 4.6.3
* 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
(or default) profile rather than creating a new profile which inherits from it.
Profiles created previously should not be affected. This should remove the
possible confusion arising from the previously used inheritance behavior
* Support editing and deleting of multiple profiles at once by selecting them in
the Manage Profiles dialog and clicking 'Edit Profile'/'Delete Profile'. String
changes deferred to KDE 4.2
* Fix memory leak and selection loss in Manage Profiles dialog when profiles
are added/removed/changed
BUG: 162461
Squashed commit of the following:
commit c6c482f76c840dfa34c36c2eee32f5e2aed499e7
Author: Robert Knight <robertknight@gmail.com>
Date: Thu Jun 26 00:45:20 2008 +0100
Avoid the selection being cleared when profiles are added/removed/changed in ManageProfilesDialog. Finish addition/update/removal of items when profileAdded()/profileRemoved()/profileChanged() signals are emitted by the SessionManager.
commit 0125653d41738768d074bcd3c6445dd98eefa619
Author: Robert Knight <robertknight@gmail.com>
Date: Wed Jun 25 11:21:44 2008 +0100
Set model in ManageProfilesDialog setup rather than ManageProfilesDialog::updateTableModel()
commit 32704ba0bf076ec3c305515e350c016a7bdaf2f3
Author: Robert Knight <robertknight@gmail.com>
Date: Sun Jun 22 19:42:33 2008 +0100
Avoid creating a new QStandardItemModel on every profile table update. Refactor creation/update of items for profiles.
commit dcd9eb9e91d64525359561cca2f8f6f54a35a2de
Author: Robert Knight <robertknight@gmail.com>
Date: Fri Jun 13 19:52:33 2008 +0100
* Disable previewing of a property when editing multiple profiles
where the profiles have conflicting original values for the property
* Change EditProfileDialog::_profileKey to EditProfileDialog::_profile
commit 020ef2d5f090a1cc2b1814c4d429051cb3cf98bc
Author: Robert Knight <robertknight@gmail.com>
Date: Fri Jun 13 19:28:31 2008 +0100
Add stub functions for SessionManagerTest
commit 655b0e6fa8e8891874ca5aa7bee6f81f3d76d065
Author: Robert Knight <robertknight@gmail.com>
Date: Fri Jun 13 19:27:03 2008 +0100
Include KDE 3 profiles when displaying available profiles
via "konsole --list-profiles"
Re-use SessionManager::availableProfilePaths() to get the list
of all profiles to load in SessionManager::loadAllProfiles()
commit 93c02e6312c8a38d89a137c7260183dcf86946fa
Author: Robert Knight <robertknight@gmail.com>
Date: Wed Jun 11 04:02:26 2008 +0100
Export SessionManager class for testing.
commit a35eaba16cad3a3301a4636d032d789df669df9e
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 22:34:33 2008 +0100
Add SessionManager test stub
commit 347dadcd1c50157eb264bbb17423003a658bd8f5
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 22:17:43 2008 +0100
Display profile names in 'Name' field when editing multiple profiles.
commit 4d8e895fd9c95dbd954e224edcbcd68c24429bad
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 22:06:49 2008 +0100
Add test for Profile::asGroup()
commit 527535f7786d5c7744436012dbbd889348cec6a1
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 21:58:15 2008 +0100
Limit length of dialog caption when editing many profiles.
commit eb6e199e6e130b7b33ff97f124162dbb2107bba1
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 21:50:53 2008 +0100
Re-insert accidentally removed if() condition to check that deleted profile is not the default.
commit e11d4d7dac1ae1df4c401a04e8497521f240d8f0
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 20:32:01 2008 +0100
ManageProfilesDialog formatting tidy-up.
commit 69dd69a9aa8df9dfa4f1473e53b99e17898c8549
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 18:57:40 2008 +0100
When updating a profile group via SessionManager::changeProfile(), update the group's properties before calling changeProfile() on the group's members. Otherwise the profile group's property values will be out of sync with those of the member profiles.
commit d74de728f0c19ca9786f2429fbd819938eaabe3e
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 18:56:04 2008 +0100
Add updated Profile.h missing from previous commit.
commit 67f6ec24f6871a931d3b80cc11313a1c0c8fd240
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 18:54:06 2008 +0100
Make profile groups hidden by default.
commit f4653c6953b356107ab347f173e8d04296abcbac
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 18:41:49 2008 +0100
When modifying a profile group with SessionManager::changeProfile(), iterate through the group's profiles and call changeProfile() on each of them. Otherwise the profiles in the group are not saved to disk when they are updated.
commit cc3c14e3c2d43f75591396b154e6b6f4b430d9a9
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 18:35:24 2008 +0100
Add Profile::asGroup() convenience methods which return the profile dynamically cast to a Profile group.
commit e2db97ee0bcb4bb3f4a8d7356846c37a04708c88
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 03:43:20 2008 +0100
Make profile group hidden, prevents creation of nameless '.profile' file on disk.
commit 872113584bce97ae739a7ba46d02ee2d63f2990d
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 03:22:45 2008 +0100
Clear corresponding shortcuts when deleting a profile.
commit 0c9353ffde887ac408d87c258587d84cfa2a4d6f
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 03:08:47 2008 +0100
KDE4ProfileReader - Check that profile exists before trying to load it with KConfig
commit af7caa25931684da0d8f0f495d5acab8e6de1b41
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 02:57:50 2008 +0100
Fix enabling/disabling of buttons in ManageProfilesDialog when number of selected rows changes.
commit d98184d6684cd9a58a702ab2b23bfa0105f25a0f
Author: Robert Knight <robertknight@gmail.com>
Date: Sat May 31 02:44:51 2008 +0100
Add a test for Profile::clone()
commit b536355cde13523f12ed927b9a5e64b63954f21c
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 30 02:58:03 2008 +0100
Implement testProfile(), testProfileGroup(). Export Profile class for use in tests.
commit 8458de3fffe3755cd5ba9ebdda5795a422cfcb5f
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 30 02:01:42 2008 +0100
Tidy up Profile docs.
commit 6ed40ae0adc6128057b7d1c71c4bbb1259768102
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 30 01:53:02 2008 +0100
Push ProfileGroup::isPropertyValueUnique() up to Profile::canInheritProperty()
commit b992e0268c1708814a5843b13e321b9b4a86c05a
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 30 00:30:45 2008 +0100
Add Profile test stub.
commit 7c7b63e50a2bb7bcd7a26d895e77860b6a5effde
Author: Robert Knight <robertknight@gmail.com>
Date: Thu May 29 06:12:52 2008 +0100
Document ProfileGroup
commit 838a628dd395bdaf6ae04fb027b1efcccbbe9f32
Author: Robert Knight <robertknight@gmail.com>
Date: Thu May 29 01:26:48 2008 +0100
Remove unused and incorrect Profile::terminal()
commit 87e1ad1174ffa8fd1bafe37b4d52c9782708c9ea
Author: Robert Knight <robertknight@gmail.com>
Date: Thu May 29 01:23:52 2008 +0100
Remove unused kDebug() statements.
commit 56c78128f083ef846308a09038251786677dd087
Author: Robert Knight <robertknight@gmail.com>
Date: Thu May 29 01:22:41 2008 +0100
Profile documentation corrections.
commit 965803c401692720c57a65bf1534f774e1b99365
Author: Robert Knight <robertknight@gmail.com>
Date: Thu May 29 01:10:23 2008 +0100
Document SessionManager::fallbackProfile()
commit a222673b15f6e8c8bb53e95046ee786369deb127
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 20:49:12 2008 +0100
Disable 'New Profile' and 'Set as Default' buttons when multiple profiles are selected. Remove incorrect comment about QAbstractItemView signals. selectionChanged() is a slot not a signal.
commit e5e9db39487595d92fe2e7d3fa16cca731c417ec
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 20:19:18 2008 +0100
Change the way new profiles are created. Instead of creating an almost-empty profile which inherits from the selected profile, create a new profile which inherits from the fallback profile and then clone the properties of the currently selected profile into the new profile.
commit f56cc534b2ebd691c6b3449e982c74c7e564a35a
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 20:18:14 2008 +0100
Expose the hard-coded fallback profile in the SessionManager
commit b00327479d222be60484bd781a131598f2c2482f
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 20:17:35 2008 +0100
Add method Profile::clone() to copy an existing profile, optionally copying all properties or just those differing from the current values.
commit 951620449c3a621d38f6607c0ea44e2a1a0ac087
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 19:24:49 2008 +0100
Treat a ProfileGroup with only one profile the same as a standard Profile in EditProfileDialog.
commit ecdf120b67a6b14a871cd808654fe6653bb56aeb
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 19:24:08 2008 +0100
Make ProfileGroup instances with only one profile behave the same as a standard Profile with respect to 'unique' properties such as Name and Path.
commit f72040f310946f92eff318c52da706fce00fa17e
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 19:14:27 2008 +0100
Fix double-deletion of profile group.
commit 1523239e9cbde518eb89fc70e6711463a7f7bb2a
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 18:57:17 2008 +0100
Only look at indexes in column 0 when retrieving the selected profiles.
commit 5706a8ee16bc1b87777563023e4ddf5253815c48
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 18:52:47 2008 +0100
Move to next property when skipping a 'unique' property.
commit 803eef6767620dd7a6e9b87cc97f1c110dfa66a6
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 18:49:20 2008 +0100
Modify Edit/Delete actions in ManageProfilesDialog to allow editing/deleting of multiple profiles.
commit eec6947620d51b2a41ed74a03e1a7b695d0ee811
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 18:48:36 2008 +0100
Modify EditProfileDialog to show a different caption depending on whether the passed in profile is a single profile or a group of profiles. Disable the profile name edit and label when editing a group of profiles.
commit 13ee83b2bb888da4009bee0cb25926fc02f34701
Author: Robert Knight <robertknight@gmail.com>
Date: Mon May 26 18:47:22 2008 +0100
Add ProfileGroup class which provides a composite allowing multiple profiles to be treated as one.
commit 1310a4ee66e6ba9eb91f1a0dfd79c5415c3a9f4f
Author: Robert Knight <robertknight@gmail.com>
Date: Sun May 25 00:07:47 2008 +0100
Undo string changes in Manage Profiles dialog so that this branch can be merged before 4.1
commit edc46b4085d61d1cc14a47c429aac5fc9f52a59f
Author: Robert Knight <robertknight@gmail.com>
Date: Fri May 23 18:34:09 2008 +0100
Change 'New Profile' button to 'Copy Profile' to clarify how it works. Change 'Edit Profile' to 'Edit' and 'Delete Profile' to 'Delete' to clarify that they can work on more than one profile.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=824515
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
I'm not sure if SessionManager is public API; if not, reverting
this and adding the const in SessionManager.h is probably preferable.
CCMAIL: robertknight@gmail.com
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=790168
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
call to delete the file fails.
* Make deletion of color schemes, key bindings and profiles
atomic operations from the point of view of outside classes.
* Fix various warning produced by the -Woverloaded-virtual flag.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=746168
needed now because friday is the last BC day. The rest of the modules will
follow as fast as my laptop allows.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=721704