summaryrefslogtreecommitdiff
path: root/core/apps
Unidiff
Diffstat (limited to 'core/apps') (more/less context) (show whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/TEWidget.cpp20
-rw-r--r--core/apps/embeddedkonsole/main.cpp1
2 files changed, 9 insertions, 12 deletions
diff --git a/core/apps/embeddedkonsole/TEWidget.cpp b/core/apps/embeddedkonsole/TEWidget.cpp
index 350ab3a..0cd7ed1 100644
--- a/core/apps/embeddedkonsole/TEWidget.cpp
+++ b/core/apps/embeddedkonsole/TEWidget.cpp
@@ -832,48 +832,49 @@ void TEWidget::mouseDoubleClickEvent(QMouseEvent* ev)
832 int selClass = charClass(image[i].c); 832 int selClass = charClass(image[i].c);
833 { 833 {
834 // set the start... 834 // set the start...
835 int x = bgnSel.x(); 835 int x = bgnSel.x();
836 while ( x > 0 && charClass(image[i-1].c) == selClass ) 836 while ( x > 0 && charClass(image[i-1].c) == selClass )
837 { i--; x--; } 837 { i--; x--; }
838 bgnSel.setX(x); 838 bgnSel.setX(x);
839 emit beginSelectionSignal( bgnSel.x(), bgnSel.y() ); 839 emit beginSelectionSignal( bgnSel.x(), bgnSel.y() );
840 840
841 // set the end... 841 // set the end...
842 i = loc( endSel.x(), endSel.y() ); 842 i = loc( endSel.x(), endSel.y() );
843 x = endSel.x(); 843 x = endSel.x();
844 while( x < columns-1 && charClass(image[i+1].c) == selClass ) 844 while( x < columns-1 && charClass(image[i+1].c) == selClass )
845 { i++; x++ ; } 845 { i++; x++ ; }
846 endSel.setX(x); 846 endSel.setX(x);
847 actSel = 2; // within selection 847 actSel = 2; // within selection
848 emit extendSelectionSignal( endSel.x(), endSel.y() ); 848 emit extendSelectionSignal( endSel.x(), endSel.y() );
849 emit endSelectionSignal(preserve_line_breaks); 849 emit endSelectionSignal(preserve_line_breaks);
850 preserve_line_breaks = TRUE; 850 preserve_line_breaks = TRUE;
851 } 851 }
852} 852}
853 853
854void TEWidget::focusInEvent( QFocusEvent * ) 854void TEWidget::focusInEvent( QFocusEvent * )
855{ 855{
856
856 // do nothing, to prevent repainting 857 // do nothing, to prevent repainting
857} 858}
858 859
859 860
860void TEWidget::focusOutEvent( QFocusEvent * ) 861void TEWidget::focusOutEvent( QFocusEvent * )
861{ 862{
862 // do nothing, to prevent repainting 863 // do nothing, to prevent repainting
863} 864}
864 865
865bool TEWidget::focusNextPrevChild( bool next ) 866bool TEWidget::focusNextPrevChild( bool next )
866{ 867{
867 if (next) 868 if (next)
868 return false; // This disables changing the active part in konqueror 869 return false; // This disables changing the active part in konqueror
869 // when pressing Tab 870 // when pressing Tab
870 return QFrame::focusNextPrevChild( next ); 871 return QFrame::focusNextPrevChild( next );
871} 872}
872 873
873 874
874int TEWidget::charClass(char ch) const 875int TEWidget::charClass(char ch) const
875{ 876{
876 // This might seem like overkill, but imagine if ch was a Unicode 877 // This might seem like overkill, but imagine if ch was a Unicode
877 // character (Qt 2.0 QChar) - it might then be sensible to separate 878 // character (Qt 2.0 QChar) - it might then be sensible to separate
878 // the different language ranges, etc. 879 // the different language ranges, etc.
879 880
@@ -954,122 +955,117 @@ void TEWidget::onClearSelection()
954/* ------------------------------------------------------------------------- */ 955/* ------------------------------------------------------------------------- */
955 956
956//FIXME: an `eventFilter' has been installed instead of a `keyPressEvent' 957//FIXME: an `eventFilter' has been installed instead of a `keyPressEvent'
957// due to a bug in `QT' or the ignorance of the author to prevent 958// due to a bug in `QT' or the ignorance of the author to prevent
958// repaint events being emitted to the screen whenever one leaves 959// repaint events being emitted to the screen whenever one leaves
959// or reenters the screen to/from another application. 960// or reenters the screen to/from another application.
960// 961//
961// Troll says one needs to change focusInEvent() and focusOutEvent(), 962// Troll says one needs to change focusInEvent() and focusOutEvent(),
962// which would also let you have an in-focus cursor and an out-focus 963// which would also let you have an in-focus cursor and an out-focus
963// cursor like xterm does. 964// cursor like xterm does.
964 965
965// for the auto-hide cursor feature, I added empty focusInEvent() and 966// for the auto-hide cursor feature, I added empty focusInEvent() and
966// focusOutEvent() so that update() isn't called. 967// focusOutEvent() so that update() isn't called.
967// For auto-hide, we need to get keypress-events, but we only get them when 968// For auto-hide, we need to get keypress-events, but we only get them when
968// we have focus. 969// we have focus.
969 970
970void TEWidget::doScroll(int lines) 971void TEWidget::doScroll(int lines)
971{ 972{
972 scrollbar->setValue(scrollbar->value()+lines); 973 scrollbar->setValue(scrollbar->value()+lines);
973} 974}
974 975
975bool TEWidget::eventFilter( QObject *obj, QEvent *e ) 976bool TEWidget::eventFilter( QObject *obj, QEvent *e )
976{ 977{
977 if ( (e->type() == QEvent::Accel || 978 if ( (e->type() == QEvent::Accel ||
978 e->type() == QEvent::AccelAvailable ) && qApp->focusWidget() == this ) 979 e->type() == QEvent::AccelAvailable ) && qApp->focusWidget() == this ) {
979 {
980 static_cast<QKeyEvent *>( e )->ignore(); 980 static_cast<QKeyEvent *>( e )->ignore();
981 return true; 981 return true;
982 } 982 }
983 if ( obj != this /* when embedded */ && obj != parent() /* when standalone */ ) 983 if ( obj != this /* when embedded */ && obj != parent() /* when standalone */ )
984 return FALSE; // not us 984 return FALSE; // not us
985 if ( e->type() == QEvent::Wheel) 985 if ( e->type() == QEvent::Wheel) {
986 {
987 QApplication::sendEvent(scrollbar, e); 986 QApplication::sendEvent(scrollbar, e);
988 } 987 }
989 988
990#ifdef FAKE_CTRL_AND_ALT 989#ifdef FAKE_CTRL_AND_ALT
991 static bool control = FALSE; 990 static bool control = FALSE;
992 static bool alt = FALSE; 991 static bool alt = FALSE;
993 qDebug(" Has a keyboard with no CTRL and ALT keys, but we fake it:"); 992 qDebug(" Has a keyboard with no CTRL and ALT keys, but we fake it:");
994 bool dele=FALSE; 993 bool dele=FALSE;
995 if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) { 994 if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) {
996 QKeyEvent* ke = (QKeyEvent*)e; 995 QKeyEvent* ke = (QKeyEvent*)e;
997 bool keydown = e->type() == QEvent::KeyPress || ke->isAutoRepeat(); 996 bool keydown = e->type() == QEvent::KeyPress || ke->isAutoRepeat();
998 switch (ke->key()) { 997 switch (ke->key()) {
999 case Key_F9: // let this be "Control" 998 case Key_F9: // let this be "Control"
1000 control = keydown; 999 control = keydown;
1001 e = new QKeyEvent(QEvent::KeyPress, Key_Control, 0, ke->state()); 1000 e = new QKeyEvent(QEvent::KeyPress, Key_Control, 0, ke->state());
1002 dele=TRUE; 1001 dele=TRUE;
1003 break; 1002 break;
1004 case Key_F13: // let this be "Alt" 1003 case Key_F13: // let this be "Alt"
1005 alt = keydown; 1004 alt = keydown;
1006 e = new QKeyEvent(QEvent::KeyPress, Key_Alt, 0, ke->state()); 1005 e = new QKeyEvent(QEvent::KeyPress, Key_Alt, 0, ke->state());
1007 dele=TRUE; 1006 dele=TRUE;
1008 break; 1007 break;
1009 default: 1008 default:
1010 if ( control ) { 1009 if ( control ) {
1011 int a = toupper(ke->ascii())-64; 1010 int a = toupper(ke->ascii())-64;
1012 if ( a >= 0 && a < ' ' ) { 1011 if ( a >= 0 && a < ' ' ) {
1013 e = new QKeyEvent(e->type(), ke->key(), 1012 e = new QKeyEvent(e->type(), ke->key(),
1014 a, ke->state()|ControlButton, QChar(a,0)); 1013 a, ke->state()|ControlButton, QChar(a,0));
1015 dele=TRUE; 1014 dele=TRUE;
1016 } 1015 }
1017 } 1016 }
1018 if ( alt ) { 1017 if ( alt ) {
1019 e = new QKeyEvent(e->type(), ke->key(), 1018 e = new QKeyEvent(e->type(), ke->key(),
1020 ke->ascii(), ke->state()|AltButton, ke->text()); 1019 ke->ascii(), ke->state()|AltButton, ke->text());
1021 dele=TRUE; 1020 dele=TRUE;
1022 } 1021 }
1023 } 1022 }
1024 } 1023 }
1025#endif 1024#endif
1026 1025
1027 if ( e->type() == QEvent::KeyPress ) 1026 if ( e->type() == QEvent::KeyPress ) {
1028 {
1029 QKeyEvent* ke = (QKeyEvent*)e; 1027 QKeyEvent* ke = (QKeyEvent*)e;
1030 actSel=0; // Key stroke implies a screen update, so TEWidget won't 1028 actSel=0; // Key stroke implies a screen update, so TEWidget won't
1031 // know where the current selection is. 1029 // know where the current selection is.
1032 1030
1033// qDebug("key pressed is 0x%x",ke->key()); 1031 qDebug("key pressed is 0x%x",ke->key());
1034 if( ke->state() == ShiftButton && ke->key() == Key_Tab) { //lets hardcode this sucker 1032 if( ke->state() == ShiftButton && ke->key() == Key_Tab) { //lets hardcode this sucker
1035// qDebug("key pressed 2 is 0x%x",ke->key()); 1033 qDebug("key pressed 2 is 0x%x",ke->key());
1036 emitText("\\"); // expose 1034 emitText("\\"); // expose
1037 } else 1035 } else
1038 emit keyPressedSignal(ke); // expose 1036 emit keyPressedSignal(ke); // expose
1039 ke->accept(); 1037 ke->accept();
1040#ifdef FAKE_CTRL_AND_ALT 1038#ifdef FAKE_CTRL_AND_ALT
1041 if ( dele ) delete e; 1039 if ( dele ) delete e;
1042#endif 1040#endif
1043 return true; // stop the event 1041 return true; // stop the event
1044 } 1042 }
1045 if ( e->type() == QEvent::Enter ) 1043 if ( e->type() == QEvent::Enter ) {
1046 {
1047 QObject::disconnect( (QObject*)cb, SIGNAL(dataChanged()), 1044 QObject::disconnect( (QObject*)cb, SIGNAL(dataChanged()),
1048 this, SLOT(onClearSelection()) ); 1045 this, SLOT(onClearSelection()) );
1049 } 1046 }
1050 if ( e->type() == QEvent::Leave ) 1047 if ( e->type() == QEvent::Leave ) {
1051 {
1052 QObject::connect( (QObject*)cb, SIGNAL(dataChanged()), 1048 QObject::connect( (QObject*)cb, SIGNAL(dataChanged()),
1053 this, SLOT(onClearSelection()) ); 1049 this, SLOT(onClearSelection()) );
1054 } 1050 }
1055 return QFrame::eventFilter( obj, e ); 1051 return QFrame::eventFilter( obj, e );
1056} 1052}
1057 1053
1058/* ------------------------------------------------------------------------- */ 1054/* ------------------------------------------------------------------------- */
1059/* */ 1055/* */
1060/* Frame */ 1056/* Frame */
1061/* */ 1057/* */
1062/* ------------------------------------------------------------------------- */ 1058/* ------------------------------------------------------------------------- */
1063 1059
1064void TEWidget::frameChanged() 1060void TEWidget::frameChanged()
1065{ 1061{
1066 propagateSize(); 1062 propagateSize();
1067 update(); 1063 update();
1068} 1064}
1069 1065
1070/* ------------------------------------------------------------------------- */ 1066/* ------------------------------------------------------------------------- */
1071/* */ 1067/* */
1072/* Sound */ 1068/* Sound */
1073/* */ 1069/* */
1074/* ------------------------------------------------------------------------- */ 1070/* ------------------------------------------------------------------------- */
1075 1071
diff --git a/core/apps/embeddedkonsole/main.cpp b/core/apps/embeddedkonsole/main.cpp
index e3ba346..b3c0453 100644
--- a/core/apps/embeddedkonsole/main.cpp
+++ b/core/apps/embeddedkonsole/main.cpp
@@ -17,44 +17,45 @@
17 /* */ 17 /* */
18/* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ 18/* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */
19 /* */ 19 /* */
20/* -------------------------------------------------------------------------- */ 20/* -------------------------------------------------------------------------- */
21 21
22#include "konsole.h" 22#include "konsole.h"
23 23
24#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
25 25
26#include <qfile.h> 26#include <qfile.h>
27 27
28#include <unistd.h> 28#include <unistd.h>
29#include <stdio.h> 29#include <stdio.h>
30#include <stdlib.h> 30#include <stdlib.h>
31 31
32 32
33/* --| main |------------------------------------------------------ */ 33/* --| main |------------------------------------------------------ */
34int main(int argc, char* argv[]) 34int main(int argc, char* argv[])
35{ 35{
36 setuid(getuid()); setgid(getgid()); // drop privileges 36 setuid(getuid()); setgid(getgid()); // drop privileges
37 37
38 QPEApplication a( argc, argv ); 38 QPEApplication a( argc, argv );
39 39
40#ifdef FAKE_CTRL_AND_ALT 40#ifdef FAKE_CTRL_AND_ALT
41 qDebug("Fake Ctrl and Alt defined");
41 QPEApplication::grabKeyboard(); // for CTRL and ALT 42 QPEApplication::grabKeyboard(); // for CTRL and ALT
42#endif 43#endif
43 44
44 QStrList tmp; 45 QStrList tmp;
45 const char* shell = getenv("SHELL"); 46 const char* shell = getenv("SHELL");
46 if (shell == NULL || *shell == '\0') 47 if (shell == NULL || *shell == '\0')
47 shell = "/bin/sh"; 48 shell = "/bin/sh";
48 49
49 // sh is completely broken on familiar. Let's try to get something better 50 // sh is completely broken on familiar. Let's try to get something better
50 if ( qstrcmp( shell, "/bin/shell" ) == 0 && QFile::exists( "/bin/bash" ) ) 51 if ( qstrcmp( shell, "/bin/shell" ) == 0 && QFile::exists( "/bin/bash" ) )
51 shell = "/bin/bash"; 52 shell = "/bin/bash";
52 53
53 putenv((char*)"COLORTERM="); // to trigger mc's color detection 54 putenv((char*)"COLORTERM="); // to trigger mc's color detection
54 55
55 Konsole m( "test", shell, tmp, TRUE ); 56 Konsole m( "test", shell, tmp, TRUE );
56 m.setCaption( Konsole::tr("Terminal") ); 57 m.setCaption( Konsole::tr("Terminal") );
57 a.showMainWidget( &m ); 58 a.showMainWidget( &m );
58 59
59 return a.exec(); 60 return a.exec();
60} 61}