Commit Graph

63 Commits

Author SHA1 Message Date
Robert Knight
c708aff22c Fix the long standing limitation where multiple views on the same terminal session had to be the same size - the size of the smallest view. This means that it is now possible, for example, to have a large view on a session for browsing and examining output and a smaller view on the same session for input. The underlying terminal does not support the concept of multiple windows, so the size reported to terminal applications is still that of the smallest view. Full-screen applications such as vim and emacs will therefore be the size of the smallest view on all views.
* Add a method in ScreenWindow to set the size of the window (in lines, the number of columns is still ifxed).  
* Call this method in TerminalDisplay to set the window size when the widget is resized or when the screen window of a display is initially set.
* Fix ScreenWindow::getImage() and ScreenWindow::getLineProperties() so that they do not attempt to retrieve information about lines beyond the end of the screen.
* Fix ScreenWindow::getLineProperties() to always return result vector of size windowColumns(), though the number of elements copied from the screen may be less.


svn path=/trunk/KDE/kdebase/apps/konsole/; revision=749874
2007-12-18 04:32:05 +00:00
Robert Knight
ada0d91b82 * Avoid allocating a new buffer to hold character data on every screen update.
Instead a single buffer is created and maintained by ScreenWindow.
* Re-write Screen::getCookedImage() and rename to getImage() to make it possible
  to retrieve an image of a section of the screen which is not the same size as
  the terminal screen.
* Make various non-mutating Screen methods const


svn path=/trunk/KDE/kdebase/apps/konsole/; revision=749864
2007-12-18 03:25:22 +00:00
Robert Knight
684b40c6dd Change default shortcut for decreasing text size to Ctrl+-. This is in line with other applications and fixed the problem of a clash with the Undo action in emacs. Discussed with dfaure back in October but not implemented until now. Remove the code which prevents Ctrl+[Printable character] shortcuts from working.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=748984
2007-12-16 04:41:48 +00:00
Robert Knight
4b29319792 Change default triple click behaviour to select the whole line, rather than just that forwards of the cursor. This is in line with KDE 3. Replaced the API which controls this behaviour in the TerminalDisplay class with a clearer one.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=748979
2007-12-16 03:55:21 +00:00
Robert Knight
e37fe69431 * Fix problem where selection background and other text with non-standard background
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
2007-12-15 23:07:20 +00:00
Robert Knight
ba2b7c6a39 Check to prevent possible out-of-bounds array access.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=746132
2007-12-07 23:40:17 +00:00
Robert Knight
08db4867f2 Show normal context menu actions in addition to content-specific ones (eg. 'Open Link', 'Copy Email Address') when right clicking on links.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=744499
2007-12-03 20:22:46 +00:00
Robert Knight
a7c4135b80 Change base class of TerminalDisplay from QFrame to QWidget, since QFrame's features are no longer used.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=743491
2007-12-01 06:58:16 +00:00
Peter Penz
944bed9354 fixed crash when opening the Terminal embedded inside Dolphin
BUG: 153098

svn path=/trunk/KDE/kdebase/apps/konsole/; revision=743223
2007-11-30 06:29:59 +00:00
Robert Knight
4ee7e302f9 Fix left edge of display being filled with the scrollbar's background color if the scrollbar is hidden.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=742434
2007-11-28 00:38:18 +00:00
Robert Knight
2809fc00c9 Remove tooltips for links which are now incorrect. Avoid un-setting the cursor when moving away from a link now that we no longer set the cursor to a pointing hand when moving over it.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=741931
2007-11-26 19:07:07 +00:00
Robert Knight
17202a040f Remove feature that opened the web browser or email client when left-clicking on appropriate URLs because several users found it annoying. Links are still highlighted on mouse-over and can be opened by right-clicking on the link and selecting 'Open Link' or 'Send Email To...' as appropriate.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=741928
2007-11-26 19:00:18 +00:00
Robert Knight
3bdcbb4496 * Fix bug where last column in a line could not be selected if it
was the last line in the selection.
* Do not attempt to reposition the mouse cursor when it moves outside
  of the terminal display area.  This happens in Konsole/KDE 3 as well,
  I had never noticed it before though.
* Remove debugging code


svn path=/trunk/KDE/kdebase/apps/konsole/; revision=740704
2007-11-23 23:08:39 +00:00
Robert Knight
6b56d35484 Fix bug where new lines were being inserted into the selection and copied text. I misunderstood the meaning of the preserveLineBreaks argument passed from the terminal display to the terminal screen when rewriting the terminal characters -> text conversion code. Also removed dead code.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=740173
2007-11-22 18:36:42 +00:00
Robert Knight
e98a26e1f2 Fill the background of the terminal display area behind the scroll-bar using the background color from the scroll-bar's palette. This gives the illusion of the scroll bar being outside the contents area as per other KDE applications and is required for a better looking scrollbar with the Oxygen widget style. CCMAIL:cbr@boemann.dk
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=740161
2007-11-22 17:48:44 +00:00
Andreas Pakulat
f412e5b5aa Merge the KConfig branch. This are the 3 main modules (+kdeadmin), which are
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
2007-10-05 22:21:25 +00:00
Robert Knight
7870ea1ea3 Use string_width() to calculate the number of columns needed to draw the preedit text, which != the number of characters in the string.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=714942
2007-09-21 00:21:34 +00:00
Robert Knight
bd8e23ca99 Fix crash when changing between profiles that have different scrollbar visibility settings. TerminalDisplay::updateSize() was being re-entered when the scrollbar was shown or hidden causing a double-deletion.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=710351
2007-09-09 18:09:07 +00:00
Robert Knight
f93d2ea70d Fix another possible index-out-of-bounds when inserting characters. Fix terminal display image buffer overflow when rendering double-height lines.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=709594
2007-09-07 21:50:13 +00:00
Robert Knight
546bf76e48 Return the current line as the 'surrounding text' for input method queries and return the column index of the cursor as the cursor position. Fix link underlines not being erased when moving mouse around links which are adjacent to each other.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=709087
2007-09-06 14:40:16 +00:00
Robert Knight
ee11f41719 Remove the last of the printing code given that Konsole no longer has direct printing support. The web page export facility can be used instead.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=708827
2007-09-05 19:25:16 +00:00
Robert Knight
6db288b385 Fix characters in first column not being updated correctly.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=708378
2007-09-04 17:37:44 +00:00
Robert Knight
55c2c6a3c0 Begin implementation of input method event support. Remove key space to the right of the 'Remove' button in the key binding editor dialog.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=708351
2007-09-04 15:53:33 +00:00
Robert Knight
765fbddbf8 Simplify drag-and-drop of URLs. Remove the popup menu as per BUG:66479 . Also correct the quoting logic to apply regardless of the number of urls.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=707519
2007-09-02 03:49:17 +00:00
Robert Knight
a83983e598 Fix jumping to end of output if new output appears while keyboard scrolling keys are being used. BUG:148505
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=696958
2007-08-06 11:51:34 +00:00
Laurent Montel
53fc966203 Adapt to new KWarning/kFatal/kDebug api
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=695870
2007-08-03 06:40:12 +00:00
Robert Knight
bf308e3216 Fix color of cursor when using cursor shapes other than Block.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=692321
2007-07-25 10:49:40 +00:00
Robert Knight
760d863508 Remove a few unused methods and member variables, more Qt-ish API and naming. Prepend 'virtual' to declarations of re-implementations of virtual methods.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=691162
2007-07-23 03:02:58 +00:00
Robert Knight
35a7a587c8 Possibly controversial. Disabled F1 shortcut for handbook in Konsole because it interferes with terminal programs which need this key. Will review following beta feedback. Remove un-used includes and re-enable DBus adaptor for Session.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=690414
2007-07-21 00:11:09 +00:00
Fredrik Höglund
d330d07e64 Fix a palette issue with the scrollbar.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=683973
2007-07-05 19:23:15 +00:00
Robert Knight
37088799cf * Update the regular expression for the Url filter. Anything in the form
letters://any-non-whitespace-characters is treated as a Url

* Correct the test which compares the old and new values and ranges when
  updating the terminal display's scroll bar.  
  This fixes the scroll bar being repainted unnecessarily often.  Found
  with the nifty QT_FLUSH_PAINT debugging tool.

* Select the profile name (set to "New Profile" by default) and focus the 
  profile name edit area when showing the Edit Profile dialog for a new
  profile to allow the user to easily set the name.

* Always use color scheme list animation, not just when the Edit Profile 
  dialog is first displayed as per richmoore's suggestion. 

* Update Edit Profile dialog caption when profile name is changed.

* Update favorite status icon in Manage Profiles dialog when the favorite
  status is changed by another object.

* Add disabled menu item which is shown in the 'Change Profile' list
  when there are no other profiles there

svn path=/trunk/KDE/kdebase/apps/konsole/; revision=683787
2007-07-05 09:51:06 +00:00
Robert Knight
e2ade34327 Re-implement facility to omit line breaks when copying selected text from screen.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=683227
2007-07-04 12:24:35 +00:00
Robert Knight
72241ef4a6 * Comment out many debugging messages
* Experimental optimization, disable kerning since this is not required
  with the mono-spaced fonts which are used in the terminal.

svn path=/trunk/KDE/kdebase/apps/konsole/; revision=682702
2007-07-03 09:14:21 +00:00
Robert Knight
50fb0ef4c6 Support for per-session randomized color schemes. Mainly useful to allow each new session (from a particular profile) to have a different background color to make them easier to identify at a glance. Randomization is specified in the color scheme as the maximum amount of difference in hue, saturation and value which a color is allowed to be randomly changed by. No GUI controls for this yet. Added a 'Black on Random Light' color scheme to make use of this facility out of the box.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=682403
2007-07-02 15:58:19 +00:00
Robert Knight
573f763624 * konsoleprofile now only affects an individual session rather than modifying
all sessions using the same profile as the current tab.

* Re-implement support for underlined text

* Use a sensible size for the Manage Profiles dialog by default

* Tidy up SearchHistoryTask 
    - Remove unnecessary setMatchCase(), matchCase(), setRegExp(), regExp() methods.
    - Implement highlighting the search box to indicate search success correctly.
      (Previously did not work with 'highlight matches' turned off)

* start.cpp -> main.cpp for consistancy

* Remove old startup-notes

* #ifdef out the transparency setup code on startup, relevant code is now in 
  qt-copy instead.

* API documentation improvements in SessionController

svn path=/trunk/KDE/kdebase/apps/konsole/; revision=682279
2007-07-02 10:17:14 +00:00
Robert Knight
d62867d006 Only invert color of character under the cursor if the display has the focus.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=680632
2007-06-26 18:46:11 +00:00
Dirk Mueller
e0cd16dfbd - move libkonq into apps/
- partial fixes to make apps build separately

svn path=/trunk/KDE/kdebase/apps/konsole/; revision=680304
2007-06-25 21:20:52 +00:00
Robert Knight
ec18837033 Allow a press and release of the Alt key on its own to be used to focus the menu bar.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=679105
2007-06-23 02:22:49 +00:00
Dirk Mueller
402412fd46 fix shell quoting
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=678405
2007-06-21 10:01:51 +00:00
Robert Knight
5040376f11 Deprecated KRun::shellQuote() -> KShell::quoteArg()
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=678270
2007-06-21 01:19:29 +00:00
Robert Knight
6a36400ffc Reimplement Vt102Emulation::getErase() with new keyboard translator. Fixes backspace in Vim et. al. Correct API documentation for KeyboardTranslator::findEntry(). Use an explicit KSharedConfigPtr to get the global config when writing default profile setting. Appears to fix strange crash on exit.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=678227
2007-06-20 22:26:32 +00:00
Robert Knight
726c106f58 Move Character class to its own header.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=677276
2007-06-18 20:15:26 +00:00
Robert Knight
ffda8d3ccc Implement saving of key binding changes. Adapt Pty changes to use Konsole's more verbose variable naming style.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=676902
2007-06-17 22:05:45 +00:00
Robert Knight
d3a6171501 Correct capitalization of LineFont file name. Move default.keytab header to /old as it is no longer used. Remove MakeDefaults as it is no longer used. Start of code to escape key binding output for use in key binding editor.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=676647
2007-06-17 10:54:04 +00:00
Robert Knight
d6b2d317ef Fix crash with invalid selections and memory corruptionwhen updating image in terminal display.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=670435
2007-06-01 12:35:47 +00:00
Robert Knight
17d8d12249 Fix a couple of crashes. Sync configuration information in SessionManager's destructor and fix problem with scroll optimisation. Not sure about that first one, it shouldn't do any harm, but I don't think it should be necessary either.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=670398
2007-06-01 11:24:11 +00:00
Robert Knight
82ac07fec2 Change the character -> text decoding API so that Konsole can produce better quality HTML when output is saved. Fix crashing when resizing display introduced in yesterday's scrolling changes and add assertions to catch invalid memory accesses.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=669305
2007-05-28 23:58:31 +00:00
Robert Knight
e7f1b7904a Allow the scrolling optimisation to work on regions of the display instead of the whole screen. This makes it work with split/screen vi/Screen etc. Doesn't work with applications that use vertical splits.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=668839
2007-05-27 21:26:42 +00:00
Robert Knight
76b0f58867 * Add check for compositing on startup now that
KWindowSystem::compositingActive() works without a QApplication instance.
* Make terminal display intercept shortcuts using the Backspace/Home/End keys 
( fixes backspace key triggering the 'Go Back' action in Dolphin when 
terminal part has the focus )
* Add some plumbing that will be used to handle resizing by the terminal 
program.
* Misc. tidy-ups and EBN fixes.
* Update the right part of the terminal display when updating blinking 
cursor.


svn path=/trunk/KDE/kdebase/apps/konsole/; revision=668460
2007-05-26 14:07:24 +00:00
Robert Knight
5331bf720d Various EBN fixes.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=667655
2007-05-23 13:09:23 +00:00