-rw-r--r-- | core/apps/embeddedkonsole/TEWidget.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/core/apps/embeddedkonsole/TEWidget.cpp b/core/apps/embeddedkonsole/TEWidget.cpp index d0850e3..ec1b30c 100644 --- a/core/apps/embeddedkonsole/TEWidget.cpp +++ b/core/apps/embeddedkonsole/TEWidget.cpp | |||
@@ -239,18 +239,28 @@ static QChar identicalMap(QChar c) | |||
239 | { | 239 | { |
240 | return c; | 240 | return c; |
241 | } | 241 | } |
242 | 242 | ||
243 | void TEWidget::fontChange(const QFont &) | 243 | void TEWidget::fontChange(const QFont &) |
244 | { | 244 | { |
245 | QFontMetrics fm(font()); | 245 | QFontMetrics fm(font()); |
246 | font_h = fm.height(); | 246 | font_h = fm.height(); |
247 | font_w = fm.maxWidth(); | 247 | |
248 | font_a = fm.ascent(); | 248 | // font_w = max width of ASCII chars (U.B.) |
249 | font_w = 0; | ||
250 | int fw; | ||
251 | for (int i = 0x20; i < 0x80; i++) { | ||
252 | if (isprint(i) && font_w < (fw = fm.width(i))) { | ||
253 | font_w = fw; | ||
254 | } | ||
255 | } | ||
256 | //font_w = fm.maxWidth(); | ||
257 | |||
258 | font_a = fm.ascent(); | ||
249 | //printf("font_h: %d\n",font_h); | 259 | //printf("font_h: %d\n",font_h); |
250 | //printf("font_w: %d\n",font_w); | 260 | //printf("font_w: %d\n",font_w); |
251 | //printf("font_a: %d\n",font_a); | 261 | //printf("font_a: %d\n",font_a); |
252 | //printf("charset: %s\n",QFont::encodingName(font().charSet()).ascii()); | 262 | //printf("charset: %s\n",QFont::encodingName(font().charSet()).ascii()); |
253 | //printf("rawname: %s\n",font().rawName().ascii()); | 263 | //printf("rawname: %s\n",font().rawName().ascii()); |
254 | fontMap = | 264 | fontMap = |
255 | #if QT_VERSION < 300 | 265 | #if QT_VERSION < 300 |
256 | strcmp(QFont::encodingName(font().charSet()).ascii(),"iso10646") | 266 | strcmp(QFont::encodingName(font().charSet()).ascii(),"iso10646") |
@@ -1015,16 +1025,17 @@ bool TEWidget::eventFilter( QObject *obj, QEvent *e ) | |||
1015 | QApplication::sendEvent(scrollbar, e); | 1025 | QApplication::sendEvent(scrollbar, e); |
1016 | } | 1026 | } |
1017 | 1027 | ||
1018 | #ifdef FAKE_CTRL_AND_ALT | 1028 | #ifdef FAKE_CTRL_AND_ALT |
1019 | static bool control = FALSE; | 1029 | static bool control = FALSE; |
1020 | static bool alt = FALSE; | 1030 | static bool alt = FALSE; |
1021 | // qDebug(" Has a keyboard with no CTRL and ALT keys, but we fake it:"); | 1031 | // qDebug(" Has a keyboard with no CTRL and ALT keys, but we fake it:"); |
1022 | bool dele=FALSE; | 1032 | bool dele=FALSE; |
1033 | |||
1023 | if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) { | 1034 | if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) { |
1024 | QKeyEvent* ke = (QKeyEvent*)e; | 1035 | QKeyEvent* ke = (QKeyEvent*)e; |
1025 | bool keydown = e->type() == QEvent::KeyPress || ke->isAutoRepeat(); | 1036 | bool keydown = e->type() == QEvent::KeyPress || ke->isAutoRepeat(); |
1026 | switch (ke->key()) { | 1037 | switch (ke->key()) { |
1027 | case Key_F9: // let this be "Control" | 1038 | case Key_F9: // let this be "Control" |
1028 | control = keydown; | 1039 | control = keydown; |
1029 | e = new QKeyEvent(QEvent::KeyPress, Key_Control, 0, ke->state()); | 1040 | e = new QKeyEvent(QEvent::KeyPress, Key_Control, 0, ke->state()); |
1030 | dele=TRUE; | 1041 | dele=TRUE; |
@@ -1053,17 +1064,21 @@ bool TEWidget::eventFilter( QObject *obj, QEvent *e ) | |||
1053 | #endif | 1064 | #endif |
1054 | 1065 | ||
1055 | if ( e->type() == QEvent::KeyPress ) { | 1066 | if ( e->type() == QEvent::KeyPress ) { |
1056 | QKeyEvent* ke = (QKeyEvent*)e; | 1067 | QKeyEvent* ke = (QKeyEvent*)e; |
1057 | actSel=0; // Key stroke implies a screen update, so TEWidget won't | 1068 | actSel=0; // Key stroke implies a screen update, so TEWidget won't |
1058 | // know where the current selection is. | 1069 | // know where the current selection is. |
1059 | 1070 | ||
1060 | // qDebug("key pressed is 0x%x, ascii is 0x%x, state %d", ke->key(), ke->ascii(), ke->state()); | 1071 | // qDebug("key pressed is 0x%x, ascii is 0x%x, state %d", ke->key(), ke->ascii(), ke->state()); |
1061 | 1072 | if(ke->key() == Key_Escape) { | |
1073 | qDebug("key pressed is 0x%x, ascii is 0x%x, state %d", ke->key(), ke->ascii(), ke->state()); | ||
1074 | |||
1075 | } | ||
1076 | |||
1062 | if( ke->state() == ShiftButton && ke->key() == Key_Tab) { | 1077 | if( ke->state() == ShiftButton && ke->key() == Key_Tab) { |
1063 | //lets hardcode this sucker | 1078 | //lets hardcode this sucker |
1064 | 1079 | ||
1065 | // qDebug("key pressed 2 is 0x%x", ke->key()); | 1080 | // qDebug("key pressed 2 is 0x%x", ke->key()); |
1066 | emitText("\\"); // expose | 1081 | emitText("\\"); // expose |
1067 | } | 1082 | } |
1068 | else if( ke->state() == ControlButton && ke->key() == Key_V) { | 1083 | else if( ke->state() == ControlButton && ke->key() == Key_V) { |
1069 | pasteClipboard(); | 1084 | pasteClipboard(); |