1. 05 May, 2021 3 commits
  2. 03 May, 2021 1 commit
    • Carlos Alves's avatar
      Change CompactHistory data storage · 2aa61bb9
      Carlos Alves authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      It is removing the vector of lines storage. Now it is using a similar
      idea used in history file.
      
      All chars are stored in a linear way, only the line indexes are
      changed when reflowing.
      
      No speed problem found when removing lines.
      2aa61bb9
  3. 17 Apr, 2021 8 commits
    • Luis Javier Merino's avatar
      Do not reflow double-height lines · 05d81656
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      Double height lines are actually two lines, the first with the top part
      of the characters, the second with the bottom part. Reflowing could lead
      to situations where we render a top part, a double height line with its
      top and bottom parts, and a bottom part, which looks weird.
      05d81656
    • Luis Javier Merino's avatar
      Prevent selecting beyond last column on double-width lines · 3cd160f5
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      There is a difference with xterm behavior: when the screen width is an
      odd number of columns, xterm allows selecting up to columns/2+1, we just
      allow selecting up to columns/2.
      3cd160f5
    • Luis Javier Merino's avatar
      Make reflow aware of line rendition attributes · 9771b1d9
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      While DECDHL/DECDWL lines are not wrapped at the correct column, now at
      least reflowing doesn't clear line rendition attributes, so resizing
      Konsole and going back to the original size always recovers the original
      content, including double-height/double-width status of each line.
      
      Reflowing double-height lines doesn't make much sense, since a
      double-height line actually consists of a top (T) and a bottom (B)
      line. Shrinking them could lead to TTBB lines, which look weird. At
      least now going back to the original size brings back the original
      content in all its glory.
      9771b1d9
    • Luis Javier Merino's avatar
      Support scrolling double-height/width lines · 57ce654d
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      The scrollback buffer has support for a wrapped property for every line.
      Extend it to support the line rendition attributes.
      57ce654d
    • Luis Javier Merino's avatar
      Allow writing only half of a double-height line · c61e4cac
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      While DECHDL sequences should be used in pairs on adjacent lines, the
      first line drawing the top half, and the second line drawing the bottom
      half, apparently real VTxxx (or at least the VT220) terminals did draw
      only the top or bottom of characters when confronted with an isolated
      DECDHL line (https://retrocomputing.stackexchange.com/questions/18023/).
      xterm has that same behavior. So behave likewise.
      c61e4cac
    • Luis Javier Merino's avatar
      Don't clear line rendition on EL and partial ED · e1e832f5
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      EL (Erase Line) should not reset the line rendition attribute to
      single-width. ED (Erase Display) should only reset it for completely
      cleared lines. ECH (Erase CHaracters) should obviously not reset it.
      DECSED and DECSEL (Selective Erase, not supported by Konsole) should not
      reset it.
      
      This fixes a vttest test where a line is set to double-height-top and
      then EL before writing its text and the double-height-bottom line below.
      
      Can also be tested with:
      
      echo -e "\e[2J\e[4;1HNormal\n\e#6DOUBLE\n\e#6DOUBLE\nNormal" &&
      sleep 2; echo -e "\e[5;3H\e[1J\e[8;1H"
      e1e832f5
    • Luis Javier Merino's avatar
      Use the correct last column for double-width lines · 4352df00
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      Some control functions special case the last column. When a line has
      been set to double-width via DECDWL or DECDHL (double-height and
      double-width), the correcr last column for that line should be used.
      Control functions which special case the last column include TAB, CUF,
      ICH and DECRC.
      
      Can be tested with:
      
      perl -E '$r=join "", map{$_%10}1..80; say "\e<\e[?40h\e[?3l\e[?7l$r";
               $s="L"."\tx"x4 ."\t\tR"; say "\e#3$s\n\e#4$s"'
      
      The above tests that tabs don't travel beyond the last column in
      double-width lines.  The last column (below columns 79 and 80 of
      the previous line) should have an "R".
      
      perl -E '$r=join "", map{$_%10}1..80; say "\e<\e[?40h\e[?3l\e[?7h$r";
               $s="L"."X"x36 ."\e[6C"."R"; say "\e#3$s\n\e#4$s"'
      
      The above tests that CUF (Cursor Forward) doesn't travel beyond the last
      column in double-width lines.  The last column (below columns 79 and 80
      of the previous line) should have an "R".
      
      perl -E '$r=join "", map{$_%10}1..80; say "\e<\e[?40h\e[?3l\e[?7h$r";
               $s="L"."X"x22 ."R"."x"x8 ."r"."\e[17D\e[16@";
               say "\e#3$s\n\e#4$s"'
      
      The above tests that ICH (Insert CHaracters; VT200+) doesn't write past
      the last column, visible on repaints (switch to another window and
      back).
      
      perl -E '$r=join "", map{$_%10}1..80; say "\e<\e[?40h\e[?3l\e[?7h$r";
               $s="L"."X"x38 ."r\e7\e[H\e8R"; say "\e#3$s\n\e#4$s"'
      
      The above tests that DECRC (Restore Cursor) doesn't restore the cursor
      to a position beyond the last column on double-width lines.  The last
      column should have an "R", "r" should not be visible.
      
      perl -E '$r=join "", map{$_%10}1..80; say "\e<\e[?40h\e[?3l\e[?7l$r";
               $s="L"."X"x38 ."R"; print "\e#6$s"'; sleep 5; echo
      
      The above tests that the cursor stays at the rightmost column. The
      cursor should stay over the "R" for 5 seconds.
      4352df00
    • Luis Javier Merino's avatar
      Fix appending characters at end of line in double width lines · 9ffe33a2
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      Since double-width/double-height lines have room for just half the
      characters, take that into account.
      
      Can be tested with:
      
      perl -E '$r=join "", map{$_%10}1..80; say "\e<\e[?40h\e[?3l\e[?7h$r";
               $s="L"."X"x38 ."RL"; say "\e#6$s"'
      
      The above tests that appending characters to double-width lines in
      DECAWM (Auto Wrap Mode) wraps at the correct last column. There should
      appear a second line (single-width) with a single "L".
      
      perl -E '$r=join "", map{$_%10}1..80; say "\e<\e[?40h\e[?3l\e[?7l$r";
               $s="L"."X"x42 ." TEST FAILED OUTOFBOUNDS R"; say "\e#6$s"'
      
      The above tests that appending characters to double-width lines in
      non-DECAWM (Auto Wrap Mode) doesn't write past the last column (visible
      on repaints - switch to another window and back). The last column (below
      columns 79 and 80 of prev line) should have an "R".
      9ffe33a2
  4. 04 Apr, 2021 1 commit
    • Ahmad Samir's avatar
      Less delete calls in destructors · acd265ef
      Ahmad Samir authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      - If the QObject has a parent, the parent will take care of deleting it
      - Use std::unique_ptr to manage pointer member variable
      - Use '= default' with empty destructors
      - Fix initialization of QTimer in constructor initialization list
      acd265ef
  5. 26 Mar, 2021 1 commit
    • Carlos Alves's avatar
      Screen and HistoryScroll pointers to smart pointer · 3b0a81fe
      Carlos Alves authored
      Those Classes are not QObject, so most of it's pointers could be changed
       to smart pointers with no problems.
      Problem found when using QList<std::unique_ptr>: it wasn't possible to
      use it. I'm using std containers instead.
      3b0a81fe
  6. 10 Mar, 2021 1 commit
  7. 20 Feb, 2021 2 commits
    • Carlos Alves's avatar
      Fix zsh reflow · 25a24bf3
      Carlos Alves authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      This will fix most of the zsh themes reflow, still working on other
      themes.
      zsh command line position is different from other shells, it is not
      where the cursor line is. Konsole is correcting this position.
      25a24bf3
    • Carlos Alves's avatar
      Fix ReFlow bug while Splitting View · 9d041222
      Carlos Alves authored
      History content was changing when splitting the view.
      9d041222
  8. 19 Feb, 2021 1 commit
  9. 10 Feb, 2021 1 commit
  10. 08 Feb, 2021 1 commit
  11. 26 Jan, 2021 1 commit
    • Carlos Alves's avatar
      Fix moveImage error · 986aed09
      Carlos Alves authored
      While changing some functions with STL, I though it was possible to move
      the line from source to destination, but it is causing a problem with
      console programs status line (ex: htop).
      
      BUG: 432005
      986aed09
  12. 22 Jan, 2021 1 commit
    • Carlos Alves's avatar
      Move fixed size reflow · e4a0c208
      Carlos Alves authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      Moving the fixed size history reflow code to compactHistoryScroll file.
      Screen file will not handle history reflow, unlimited scroll is
      completely different from fixed size scroll reflow.
      e4a0c208
  13. 15 Jan, 2021 1 commit
    • Carlos Alves's avatar
      Fix unlimited history reflow bug · 0f8d4e0c
      Carlos Alves authored
      It was joinning the reflowed lines in history but in compact history it
      does reflow again. It will now just ignore it and add to history.
      
      BUG: 431624
      0f8d4e0c
  14. 07 Jan, 2021 1 commit
  15. 06 Jan, 2021 5 commits
  16. 31 Dec, 2020 11 commits