1. 13 Aug, 2021 1 commit
  2. 12 Aug, 2021 1 commit
    • Ahmad Samir's avatar
      Prevent window "flashing" when closing the last session · bbec7225
      Ahmad Samir authored
      There are two scenarios when closing a window:
      A) clicking the close button on the title bar (or Ctrl+Shift+Q):
      ~MainWindow()
      ~ViewManager()
      ~TabbedViewContainer()
      ~TerminalDisplay()
      ~Session()
      
      B) closing the last session/tab in a window:
      SessionController::sessionFinished()
      ~Session()
      ~TerminalDisplay()
      ~TabbedViewContainer()
      ~MainWindow()
      ~ViewManager()
      
      the issue with the second case is that the TerminalDisplay is torn down
      first, which exposes the TabbedViewContainer widget, the latter has the same
      Qt::Window colour as the system colour scheme window background colour, if
      you're using a dark terminal colour scheme and a light-coloured system colour
      scheme, you could see some "flashing" when you close the last session with
      e.g. Ctrl+D.
      
      To fix this, in sessionFinished() check if TabbedViewContainer::count() is
      1 (i.e. closing last tab/session), and emit the empty() signal in that case,
      which is connected to MainwWindow::close(), then the order of tear down
      becomes:
      SessionController::sessionFinished()
      ~Session()
      ~MainWindow()
      ~ViewManager()
      ~TabbedViewContainer()
      ~TerminalDisplay()
      
      BUG: 432077
      FIXED-IN: 21.12
      bbec7225
  3. 06 Aug, 2021 2 commits
  4. 05 Aug, 2021 2 commits
    • Ahmad Samir's avatar
      Add an option to disable thumbnails generation · aba8bb03
      Ahmad Samir authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      aba8bb03
    • Ahmad Samir's avatar
      Fix crash when closing a tab using the close button · 39d3437d
      Ahmad Samir authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      Looking at the crash backtraces from the bug reports, it seems this is what
      happens, when you have two tabs open, then click the close button on the
      non-current tab:
        - QTabBar::currentChanged() is emitted, the TerminalDisplay pointer is
          still not null at this point (the code checks for that)
        - TabbedViewContainer::currentTabChanged()
        - TabbedViewContainer::activeViewChanged()
        - ViewManager::activateView(), at this point the TerminalDisplay pointer
          could be null, which then crashes when we call Widget::setFocus()
      
      BUG: 411962
      FIXED-IN: 21.12
      39d3437d
  5. 04 Aug, 2021 1 commit
  6. 03 Aug, 2021 1 commit
  7. 02 Aug, 2021 6 commits
    • Kurt Hindenburg's avatar
      set option ENABLE_PLUGIN_SSHMANAGER before we add the directory · 2f532dfa
      Kurt Hindenburg authored
      Otherwise the default ON is not used if the option is not given on the
      command line when building
      2f532dfa
    • Ahmad Samir's avatar
      Don't connect more slots to EditProfileDialog::accepted() signal · 4cab54d2
      Ahmad Samir authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      This is similar to commit c413d543, EditProfileDialog's base class
      (KPageDialog) already connects OK button clicked signal to accepted() signal;
      creating another connection to accepted() in SessionController (which
      creates the EditProfileDialog object), means the code will be run twice, not
      ideal. Instead put the logic in EditProfileDialog::save() which is called by
      the EditProfileDialog::accept() slot.
      
      The same goes when ProfileSettings creates an EditProfileDialog.
      4cab54d2
    • Ahmad Samir's avatar
      Remove statusbar related code · 414f933f
      Ahmad Samir authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      It shouldn't be created any more since we don't pass the
      KXmlGuiWindow::StatusBar flag when using KXmlGuiWindow::setupGUI().
      
      GIT_SILENT
      414f933f
    • Ahmad Samir's avatar
      Fix MainWindow size when there is no saved size · bb7dd804
      Ahmad Samir authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      The very first time a user runs Konsole, where is no konsolerc file in $HOME,
      there is no saved size to restore, instead use the sizeHint(), which ideally
      will be the size set in the default profile (based on lines/columns setting).
      
      CCBUG: 437791
      bb7dd804
    • Ahmad Samir's avatar
      Fix KXmlGUI toolbars; and Konsole MainWindow size · 09035666
      Ahmad Samir authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      Call setupGUI(), which will call createGUI (since we set the
      KXmlGuiWindow::Create flag), omit the StatusBar flag since we don't have a
      statusbar and don't want the "Show StatusBar" menu action.
      
      TabbedViewContainer::sizeHint() calculates an optimum size for itself,
      including the sizes of its child widgets; added in efb621d0 by
      Mariusz Glebocki; following the code:
      MainWindow creates a ViewManager
      ViewManager creates a TabbedViewContainer and then a TerminalDisplay
      
      which means that the first time TabbedViewContainer::sizeHint() is called
      the TerminalDisplay widget size is 0, then TabbedViewContainer::sizeHint()
      would return 0.
      
      Which is why calling resize() in MainWindow was delayed to the showEvent(),
      (and even delayed more by a QTimer::singleShot() call in Application),
      at which point all the child widgets have been created and
      MainWindow::sizeHint() (which logically takes into account the sizeHint()
      of its child widgets) would return a sensible size.
      
      CCBUG: 430036
      CCBUG: 439339
      BUG: 436471
      09035666
    • Ahmad Samir's avatar
      Remove a redundant #inlcude · 0b93ddf3
      Ahmad Samir authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      GIT_SILENT
      0b93ddf3
  8. 30 Jul, 2021 5 commits
  9. 27 Jul, 2021 1 commit
  10. 26 Jul, 2021 2 commits
  11. 23 Jul, 2021 2 commits
  12. 22 Jul, 2021 1 commit
  13. 21 Jul, 2021 1 commit
  14. 19 Jul, 2021 1 commit
  15. 16 Jul, 2021 7 commits
  16. 13 Jul, 2021 2 commits
  17. 10 Jul, 2021 1 commit
  18. 09 Jul, 2021 3 commits