From da5480343846481d26d7441be6891f8cc0fdec28 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Mon, 28 May 2007 20:29:13 +0000 Subject: [PATCH] Scroll view to newest output on keystroke. Disallow letter shortcuts. Update TODO. svn path=/trunk/KDE/kdebase/apps/konsole/; revision=669235 --- TODO | 11 +++++++++++ src/MainWindow.cpp | 3 ++- src/SessionController.cpp | 10 ++++++++++ src/SessionController.h | 2 ++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index c50124033..626eb3660 100644 --- a/TODO +++ b/TODO @@ -78,6 +78,17 @@ The KDE 4.0 TODO List: == BUGS == +- Allow the user to over-ride the "no Ctrl+[Key] shortcuts" limitation with shortcuts +set in the configuration dialog, but warn the user if they try to do so. This is the +behaviour in KDE 3. + + +== NON-ESSENTIAL TWEAKS == + +- Currently splitting the view creates a new terminal widget for each session + in the new view. This will have a perceptible performance impact for + users who have ten, twenty or more tabs open. Add facilities to + delay creating the views until they are needed. == NON-ESSENTIAL FEATURES == diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 2c7c11641..af86c0e72 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -246,7 +246,8 @@ void MainWindow::newWindow() void MainWindow::showShortcutsDialog() { - KShortcutsDialog::configure( actionCollection() ); + KShortcutsDialog::configure( actionCollection() , + KShortcutsEditor::LetterShortcutsDisallowed ); } void MainWindow::newFromProfile(const QString& key) diff --git a/src/SessionController.cpp b/src/SessionController.cpp index 2c3405480..2fdfa15b8 100644 --- a/src/SessionController.cpp +++ b/src/SessionController.cpp @@ -100,6 +100,10 @@ SessionController::SessionController(Session* session , TerminalDisplay* view, Q connect( _view , SIGNAL(configureRequest(TerminalDisplay*,int,int,int)) , this, SLOT(showDisplayContextMenu(TerminalDisplay*,int,int,int)) ); + // move view to newest output when keystrokes occur + connect( _view , SIGNAL(keyPressedSignal(QKeyEvent*)) , this , + SLOT(trackOutput()) ); + // listen to activity / silence notifications from session connect( _session , SIGNAL(stateChanged(int)) , this , SLOT(sessionStateChanged(int) )); @@ -124,6 +128,12 @@ SessionController::~SessionController() if ( _view ) _view->setScreenWindow(0); } +void SessionController::trackOutput() +{ + Q_ASSERT( _view->screenWindow() ); + + _view->screenWindow()->setTrackOutput(true); +} void SessionController::requireUrlFilterUpdate() { // this method is called every time the screen window's output changes, so do not diff --git a/src/SessionController.h b/src/SessionController.h index 880d3dcb0..e6316c1a0 100644 --- a/src/SessionController.h +++ b/src/SessionController.h @@ -186,6 +186,8 @@ private slots: void sessionResizeRequest(const QSize& size); + void trackOutput(); // move view to end of current output + // debugging slots void debugProcess();