summaryrefslogtreecommitdiff
path: root/core/apps
Unidiff
Diffstat (limited to 'core/apps') (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/TEWidget.cpp128
-rw-r--r--core/apps/embeddedkonsole/main.cpp1
2 files changed, 63 insertions, 66 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
@@ -844,24 +844,25 @@ void TEWidget::mouseDoubleClickEvent(QMouseEvent* ev)
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)
@@ -965,103 +966,98 @@ void TEWidget::onClearSelection()
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 QApplication::sendEvent(scrollbar, e);
986 { 987 }
987 QApplication::sendEvent(scrollbar, e);
988 }
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;
1015 }
1016 }
1017 if ( alt ) {
1018 e = new QKeyEvent(e->type(), ke->key(),
1019 ke->ascii(), ke->state()|AltButton, ke->text());
1020 dele=TRUE;
1021 }
1016 } 1022 }
1017 } 1023 }
1018 if ( alt ) {
1019 e = new QKeyEvent(e->type(), ke->key(),
1020 ke->ascii(), ke->state()|AltButton, ke->text());
1021 dele=TRUE;
1022 }
1023 }
1024 }
1025#endif 1024#endif
1026 1025
1027 if ( e->type() == QEvent::KeyPress ) 1026 if ( e->type() == QEvent::KeyPress ) {
1028 { 1027 QKeyEvent* ke = (QKeyEvent*)e;
1029 QKeyEvent* ke = (QKeyEvent*)e; 1028 actSel=0; // Key stroke implies a screen update, so TEWidget won't
1030 actSel=0; // Key stroke implies a screen update, so TEWidget won't 1029 // know where the current selection is.
1031 // know where the current selection is. 1030
1032 1031 qDebug("key pressed is 0x%x",ke->key());
1033// qDebug("key pressed is 0x%x",ke->key()); 1032 if( ke->state() == ShiftButton && ke->key() == Key_Tab) { //lets hardcode this sucker
1034 if( ke->state() == ShiftButton && ke->key() == Key_Tab) { //lets hardcode this sucker 1033 qDebug("key pressed 2 is 0x%x",ke->key());
1035// qDebug("key pressed 2 is 0x%x",ke->key()); 1034 emitText("\\"); // expose
1036 emitText("\\"); // expose 1035 } else
1037 } else 1036 emit keyPressedSignal(ke); // expose
1038 emit keyPressedSignal(ke); // expose 1037 ke->accept();
1039 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 { 1044 QObject::disconnect( (QObject*)cb, SIGNAL(dataChanged()),
1047 QObject::disconnect( (QObject*)cb, SIGNAL(dataChanged()), 1045 this, SLOT(onClearSelection()) );
1048 this, SLOT(onClearSelection()) ); 1046 }
1049 } 1047 if ( e->type() == QEvent::Leave ) {
1050 if ( e->type() == QEvent::Leave ) 1048 QObject::connect( (QObject*)cb, SIGNAL(dataChanged()),
1051 { 1049 this, SLOT(onClearSelection()) );
1052 QObject::connect( (QObject*)cb, SIGNAL(dataChanged()), 1050 }
1053 this, SLOT(onClearSelection()) ); 1051 return QFrame::eventFilter( obj, e );
1054 }
1055 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();
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
@@ -29,24 +29,25 @@
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