-rw-r--r-- | core/apps/embeddedkonsole/TEWidget.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/core/apps/embeddedkonsole/TEWidget.cpp b/core/apps/embeddedkonsole/TEWidget.cpp index 8206e4b..cc88555 100644 --- a/core/apps/embeddedkonsole/TEWidget.cpp +++ b/core/apps/embeddedkonsole/TEWidget.cpp | |||
@@ -1,317 +1,322 @@ | |||
1 | /* ------------------------------------------------------------------------ */ | 1 | /* ------------------------------------------------------------------------ */ |
2 | /* */ | 2 | /* */ |
3 | /* [TEWidget.C] Terminal Emulation Widget */ | 3 | /* [TEWidget.C] Terminal Emulation Widget */ |
4 | /* */ | 4 | /* */ |
5 | /* ------------------------------------------------------------------------ */ | 5 | /* ------------------------------------------------------------------------ */ |
6 | /* */ | 6 | /* */ |
7 | /* Copyright (c) 1997,1998 by Lars Doelle <lars.doelle@on-line.de> */ | 7 | /* Copyright (c) 1997,1998 by Lars Doelle <lars.doelle@on-line.de> */ |
8 | /* */ | 8 | /* */ |
9 | /* This file is part of Konsole - an X terminal for KDE */ | 9 | /* This file is part of Konsole - an X terminal for KDE */ |
10 | /* */ | 10 | /* */ |
11 | /* ------------------------------------------------------------------------ */ | 11 | /* ------------------------------------------------------------------------ */ |
12 | /* */ | 12 | /* */ |
13 | /* Ported Konsole to Qt/Embedded */ | 13 | /* Ported Konsole to Qt/Embedded */ |
14 | /* */ | 14 | /* */ |
15 | /* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ | 15 | /* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ |
16 | /* */ | 16 | /* */ |
17 | /* -------------------------------------------------------------------------- */ | 17 | /* -------------------------------------------------------------------------- */ |
18 | /*! \class TEWidget | 18 | /*! \class TEWidget |
19 | 19 | ||
20 | \brief Visible screen contents | 20 | \brief Visible screen contents |
21 | 21 | ||
22 | This class is responsible to map the `image' of a terminal emulation to the | 22 | This class is responsible to map the `image' of a terminal emulation to the |
23 | display. All the dependency of the emulation to a specific GUI or toolkit is | 23 | display. All the dependency of the emulation to a specific GUI or toolkit is |
24 | localized here. Further, this widget has no knowledge about being part of an | 24 | localized here. Further, this widget has no knowledge about being part of an |
25 | emulation, it simply work within the terminal emulation framework by exposing | 25 | emulation, it simply work within the terminal emulation framework by exposing |
26 | size and key events and by being ordered to show a new image. | 26 | size and key events and by being ordered to show a new image. |
27 | 27 | ||
28 | <ul> | 28 | <ul> |
29 | <li> The internal image has the size of the widget (evtl. rounded up) | 29 | <li> The internal image has the size of the widget (evtl. rounded up) |
30 | <li> The external image used in setImage can have any size. | 30 | <li> The external image used in setImage can have any size. |
31 | <li> (internally) the external image is simply copied to the internal | 31 | <li> (internally) the external image is simply copied to the internal |
32 | when a setImage happens. During a resizeEvent no painting is done | 32 | when a setImage happens. During a resizeEvent no painting is done |
33 | a paintEvent is expected to follow anyway. | 33 | a paintEvent is expected to follow anyway. |
34 | </ul> | 34 | </ul> |
35 | 35 | ||
36 | \sa TEScreen \sa Emulation | 36 | \sa TEScreen \sa Emulation |
37 | */ | 37 | */ |
38 | 38 | ||
39 | /* FIXME: | 39 | /* FIXME: |
40 | - 'image' may also be used uninitialized (it isn't in fact) in resizeEvent | 40 | - 'image' may also be used uninitialized (it isn't in fact) in resizeEvent |
41 | - 'font_a' not used in mouse events | 41 | - 'font_a' not used in mouse events |
42 | - add destructor | 42 | - add destructor |
43 | */ | 43 | */ |
44 | 44 | ||
45 | /* TODO | 45 | /* TODO |
46 | - evtl. be sensitive to `paletteChange' while using default colors. | 46 | - evtl. be sensitive to `paletteChange' while using default colors. |
47 | - set different 'rounding' styles? I.e. have a mode to show clipped chars? | 47 | - set different 'rounding' styles? I.e. have a mode to show clipped chars? |
48 | */ | 48 | */ |
49 | 49 | ||
50 | // #include "config.h" | 50 | // #include "config.h" |
51 | #include "TEWidget.h" | 51 | #include "TEWidget.h" |
52 | #include "session.h" | 52 | #include "session.h" |
53 | #include <qpe/config.h> | 53 | #include <qpe/config.h> |
54 | 54 | ||
55 | 55 | ||
56 | #if !(QT_NO_COP) | 56 | #if !(QT_NO_COP) |
57 | #include <qpe/qcopenvelope_qws.h> | 57 | #include <qpe/qcopenvelope_qws.h> |
58 | #endif | 58 | #endif |
59 | 59 | ||
60 | #include <qclipboard.h> | 60 | #include <qclipboard.h> |
61 | 61 | ||
62 | #ifndef QT_NO_DRAGANDDROP | ||
63 | #include <qdragobject.h> | ||
64 | #include <qfile.h> | ||
65 | #endif | ||
66 | |||
62 | #include <stdio.h> | 67 | #include <stdio.h> |
63 | #include <stdlib.h> | 68 | #include <stdlib.h> |
64 | #include <unistd.h> | 69 | #include <unistd.h> |
65 | #include <ctype.h> | 70 | #include <ctype.h> |
66 | #include <sys/stat.h> | 71 | #include <sys/stat.h> |
67 | #include <sys/types.h> | 72 | #include <sys/types.h> |
68 | #include <signal.h> | 73 | #include <signal.h> |
69 | 74 | ||
70 | #include <assert.h> | 75 | #include <assert.h> |
71 | 76 | ||
72 | // #include "TEWidget.moc" | 77 | // #include "TEWidget.moc" |
73 | //#include <kapp.h> | 78 | //#include <kapp.h> |
74 | //#include <kcursor.h> | 79 | //#include <kcursor.h> |
75 | //#include <kurl.h> | 80 | //#include <kurl.h> |
76 | //#include <kdebug.h> | 81 | //#include <kdebug.h> |
77 | //#include <klocale.h> | 82 | //#include <klocale.h> |
78 | 83 | ||
79 | #define HERE printf("%s(%d): %s\n",__FILE__,__LINE__,__FUNCTION__) | 84 | #define HERE printf("%s(%d): %s\n",__FILE__,__LINE__,__FUNCTION__) |
80 | #define HCNT(Name) // { static int cnt = 1; printf("%s(%d): %s %d\n",__FILE__,__LINE__,Name,cnt++); } | 85 | #define HCNT(Name) // { static int cnt = 1; printf("%s(%d): %s %d\n",__FILE__,__LINE__,Name,cnt++); } |
81 | 86 | ||
82 | #define loc(X,Y) ((Y)*columns+(X)) | 87 | #define loc(X,Y) ((Y)*columns+(X)) |
83 | 88 | ||
84 | //FIXME: the rim should normally be 1, 0 only when running in full screen mode. | 89 | //FIXME: the rim should normally be 1, 0 only when running in full screen mode. |
85 | #define rimX 0 // left/right rim width | 90 | #define rimX 0 // left/right rim width |
86 | #define rimY 0 // top/bottom rim high | 91 | #define rimY 0 // top/bottom rim high |
87 | 92 | ||
88 | #define SCRWIDTH 16 // width of the scrollbar | 93 | #define SCRWIDTH 16 // width of the scrollbar |
89 | 94 | ||
90 | #define yMouseScroll 1 | 95 | #define yMouseScroll 1 |
91 | // scroll increment used when dragging selection at top/bottom of window. | 96 | // scroll increment used when dragging selection at top/bottom of window. |
92 | 97 | ||
93 | /* ------------------------------------------------------------------------- */ | 98 | /* ------------------------------------------------------------------------- */ |
94 | /* */ | 99 | /* */ |
95 | /* Colors */ | 100 | /* Colors */ |
96 | /* */ | 101 | /* */ |
97 | /* ------------------------------------------------------------------------- */ | 102 | /* ------------------------------------------------------------------------- */ |
98 | 103 | ||
99 | //FIXME: the default color table is in session.C now. | 104 | //FIXME: the default color table is in session.C now. |
100 | // We need a way to get rid of this one, here. | 105 | // We need a way to get rid of this one, here. |
101 | static const ColorEntry base_color_table[TABLE_COLORS] = | 106 | static const ColorEntry base_color_table[TABLE_COLORS] = |
102 | // The following are almost IBM standard color codes, with some slight | 107 | // The following are almost IBM standard color codes, with some slight |
103 | // gamma correction for the dim colors to compensate for bright X screens. | 108 | // gamma correction for the dim colors to compensate for bright X screens. |
104 | // It contains the 8 ansiterm/xterm colors in 2 intensities. | 109 | // It contains the 8 ansiterm/xterm colors in 2 intensities. |
105 | { | 110 | { |
106 | // Fixme: could add faint colors here, also. | 111 | // Fixme: could add faint colors here, also. |
107 | // normal | 112 | // normal |
108 | ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 1, 0 ), // Dfore, Dback | 113 | ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 1, 0 ), // Dfore, Dback |
109 | ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0x18), 0, 0 ), // Black, Red | 114 | ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0x18), 0, 0 ), // Black, Red |
110 | ColorEntry(QColor(0x18,0xB2,0x18), 0, 0 ), ColorEntry( QColor(0xB2,0x68,0x18), 0, 0 ), // Green, Yellow | 115 | ColorEntry(QColor(0x18,0xB2,0x18), 0, 0 ), ColorEntry( QColor(0xB2,0x68,0x18), 0, 0 ), // Green, Yellow |
111 | ColorEntry(QColor(0x18,0x18,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), // Blue, Magenta | 116 | ColorEntry(QColor(0x18,0x18,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), // Blue, Magenta |
112 | ColorEntry(QColor(0x18,0xB2,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 0, 0 ), // Cyan, White | 117 | ColorEntry(QColor(0x18,0xB2,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 0, 0 ), // Cyan, White |
113 | // intensiv | 118 | // intensiv |
114 | ColorEntry(QColor(0x00,0x00,0x00), 0, 1 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 1, 0 ), | 119 | ColorEntry(QColor(0x00,0x00,0x00), 0, 1 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 1, 0 ), |
115 | ColorEntry(QColor(0x68,0x68,0x68), 0, 0 ), ColorEntry( QColor(0xFF,0x54,0x54), 0, 0 ), | 120 | ColorEntry(QColor(0x68,0x68,0x68), 0, 0 ), ColorEntry( QColor(0xFF,0x54,0x54), 0, 0 ), |
116 | ColorEntry(QColor(0x54,0xFF,0x54), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0x54), 0, 0 ), | 121 | ColorEntry(QColor(0x54,0xFF,0x54), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0x54), 0, 0 ), |
117 | ColorEntry(QColor(0x54,0x54,0xFF), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), | 122 | ColorEntry(QColor(0x54,0x54,0xFF), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), |
118 | ColorEntry(QColor(0x54,0xFF,0xFF), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 0, 0 ) | 123 | ColorEntry(QColor(0x54,0xFF,0xFF), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 0, 0 ) |
119 | }; | 124 | }; |
120 | 125 | ||
121 | /* Note that we use ANSI color order (bgr), while IBMPC color order is (rgb) | 126 | /* Note that we use ANSI color order (bgr), while IBMPC color order is (rgb) |
122 | 127 | ||
123 | Code 0 1 2 3 4 5 6 7 | 128 | Code 0 1 2 3 4 5 6 7 |
124 | ----------- ------- ------- ------- ------- ------- ------- ------- ------- | 129 | ----------- ------- ------- ------- ------- ------- ------- ------- ------- |
125 | ANSI (bgr) Black Red Green Yellow Blue Magenta Cyan White | 130 | ANSI (bgr) Black Red Green Yellow Blue Magenta Cyan White |
126 | IBMPC (rgb) Black Blue Green Cyan Red Magenta Yellow White | 131 | IBMPC (rgb) Black Blue Green Cyan Red Magenta Yellow White |
127 | */ | 132 | */ |
128 | 133 | ||
129 | QColor TEWidget::getDefaultBackColor() | 134 | QColor TEWidget::getDefaultBackColor() |
130 | { | 135 | { |
131 | return color_table[DEFAULT_BACK_COLOR].color; | 136 | return color_table[DEFAULT_BACK_COLOR].color; |
132 | } | 137 | } |
133 | 138 | ||
134 | const ColorEntry* TEWidget::getColorTable() const | 139 | const ColorEntry* TEWidget::getColorTable() const |
135 | { | 140 | { |
136 | return color_table; | 141 | return color_table; |
137 | } | 142 | } |
138 | 143 | ||
139 | const ColorEntry* TEWidget::getdefaultColorTable() const | 144 | const ColorEntry* TEWidget::getdefaultColorTable() const |
140 | { | 145 | { |
141 | return base_color_table; | 146 | return base_color_table; |
142 | } | 147 | } |
143 | 148 | ||
144 | 149 | ||
145 | const QPixmap *TEWidget::backgroundPixmap() | 150 | const QPixmap *TEWidget::backgroundPixmap() |
146 | { | 151 | { |
147 | static QPixmap *bg = new QPixmap("~/qpim/main/pics/faded_bg.xpm"); | 152 | static QPixmap *bg = new QPixmap("~/qpim/main/pics/faded_bg.xpm"); |
148 | const QPixmap *pm = bg; | 153 | const QPixmap *pm = bg; |
149 | return pm; | 154 | return pm; |
150 | } | 155 | } |
151 | 156 | ||
152 | void TEWidget::setColorTable(const ColorEntry table[]) | 157 | void TEWidget::setColorTable(const ColorEntry table[]) |
153 | { | 158 | { |
154 | for (int i = 0; i < TABLE_COLORS; i++) color_table[i] = table[i]; | 159 | for (int i = 0; i < TABLE_COLORS; i++) color_table[i] = table[i]; |
155 | 160 | ||
156 | const QPixmap* pm = backgroundPixmap(); | 161 | const QPixmap* pm = backgroundPixmap(); |
157 | if (!pm) setBackgroundColor(color_table[DEFAULT_BACK_COLOR].color); | 162 | if (!pm) setBackgroundColor(color_table[DEFAULT_BACK_COLOR].color); |
158 | update(); | 163 | update(); |
159 | } | 164 | } |
160 | 165 | ||
161 | //FIXME: add backgroundPixmapChanged. | 166 | //FIXME: add backgroundPixmapChanged. |
162 | 167 | ||
163 | /* ------------------------------------------------------------------------- */ | 168 | /* ------------------------------------------------------------------------- */ |
164 | /* */ | 169 | /* */ |
165 | /* Font */ | 170 | /* Font */ |
166 | /* */ | 171 | /* */ |
167 | /* ------------------------------------------------------------------------- */ | 172 | /* ------------------------------------------------------------------------- */ |
168 | 173 | ||
169 | /* | 174 | /* |
170 | The VT100 has 32 special graphical characters. The usual vt100 extended | 175 | The VT100 has 32 special graphical characters. The usual vt100 extended |
171 | xterm fonts have these at 0x00..0x1f. | 176 | xterm fonts have these at 0x00..0x1f. |
172 | 177 | ||
173 | QT's iso mapping leaves 0x00..0x7f without any changes. But the graphicals | 178 | QT's iso mapping leaves 0x00..0x7f without any changes. But the graphicals |
174 | come in here as proper unicode characters. | 179 | come in here as proper unicode characters. |
175 | 180 | ||
176 | We treat non-iso10646 fonts as VT100 extended and do the requiered mapping | 181 | We treat non-iso10646 fonts as VT100 extended and do the requiered mapping |
177 | from unicode to 0x00..0x1f. The remaining translation is then left to the | 182 | from unicode to 0x00..0x1f. The remaining translation is then left to the |
178 | QCodec. | 183 | QCodec. |
179 | */ | 184 | */ |
180 | 185 | ||
181 | // assert for i in [0..31] : vt100extended(vt100_graphics[i]) == i. | 186 | // assert for i in [0..31] : vt100extended(vt100_graphics[i]) == i. |
182 | 187 | ||
183 | unsigned short vt100_graphics[32] = | 188 | unsigned short vt100_graphics[32] = |
184 | { // 0/8 1/9 2/10 3/11 4/12 5/13 6/14 7/15 | 189 | { // 0/8 1/9 2/10 3/11 4/12 5/13 6/14 7/15 |
185 | 0x0020, 0x25C6, 0x2592, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, | 190 | 0x0020, 0x25C6, 0x2592, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, |
186 | 0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, | 191 | 0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, |
187 | 0xF800, 0xF801, 0x2500, 0xF803, 0xF804, 0x251c, 0x2524, 0x2534, | 192 | 0xF800, 0xF801, 0x2500, 0xF803, 0xF804, 0x251c, 0x2524, 0x2534, |
188 | 0x252c, 0x2502, 0x2264, 0x2265, 0x03C0, 0x2260, 0x00A3, 0x00b7 | 193 | 0x252c, 0x2502, 0x2264, 0x2265, 0x03C0, 0x2260, 0x00A3, 0x00b7 |
189 | }; | 194 | }; |
190 | 195 | ||
191 | static QChar vt100extended(QChar c) | 196 | static QChar vt100extended(QChar c) |
192 | { | 197 | { |
193 | switch (c.unicode()) | 198 | switch (c.unicode()) |
194 | { | 199 | { |
195 | case 0x25c6 : return 1; | 200 | case 0x25c6 : return 1; |
196 | case 0x2592 : return 2; | 201 | case 0x2592 : return 2; |
197 | case 0x2409 : return 3; | 202 | case 0x2409 : return 3; |
198 | case 0x240c : return 4; | 203 | case 0x240c : return 4; |
199 | case 0x240d : return 5; | 204 | case 0x240d : return 5; |
200 | case 0x240a : return 6; | 205 | case 0x240a : return 6; |
201 | case 0x00b0 : return 7; | 206 | case 0x00b0 : return 7; |
202 | case 0x00b1 : return 8; | 207 | case 0x00b1 : return 8; |
203 | case 0x2424 : return 9; | 208 | case 0x2424 : return 9; |
204 | case 0x240b : return 10; | 209 | case 0x240b : return 10; |
205 | case 0x2518 : return 11; | 210 | case 0x2518 : return 11; |
206 | case 0x2510 : return 12; | 211 | case 0x2510 : return 12; |
207 | case 0x250c : return 13; | 212 | case 0x250c : return 13; |
208 | case 0x2514 : return 14; | 213 | case 0x2514 : return 14; |
209 | case 0x253c : return 15; | 214 | case 0x253c : return 15; |
210 | case 0xf800 : return 16; | 215 | case 0xf800 : return 16; |
211 | case 0xf801 : return 17; | 216 | case 0xf801 : return 17; |
212 | case 0x2500 : return 18; | 217 | case 0x2500 : return 18; |
213 | case 0xf803 : return 19; | 218 | case 0xf803 : return 19; |
214 | case 0xf804 : return 20; | 219 | case 0xf804 : return 20; |
215 | case 0x251c : return 21; | 220 | case 0x251c : return 21; |
216 | case 0x2524 : return 22; | 221 | case 0x2524 : return 22; |
217 | case 0x2534 : return 23; | 222 | case 0x2534 : return 23; |
218 | case 0x252c : return 24; | 223 | case 0x252c : return 24; |
219 | case 0x2502 : return 25; | 224 | case 0x2502 : return 25; |
220 | case 0x2264 : return 26; | 225 | case 0x2264 : return 26; |
221 | case 0x2265 : return 27; | 226 | case 0x2265 : return 27; |
222 | case 0x03c0 : return 28; | 227 | case 0x03c0 : return 28; |
223 | case 0x2260 : return 29; | 228 | case 0x2260 : return 29; |
224 | case 0x00a3 : return 30; | 229 | case 0x00a3 : return 30; |
225 | case 0x00b7 : return 31; | 230 | case 0x00b7 : return 31; |
226 | } | 231 | } |
227 | return c; | 232 | return c; |
228 | } | 233 | } |
229 | 234 | ||
230 | static QChar identicalMap(QChar c) | 235 | static QChar identicalMap(QChar c) |
231 | { | 236 | { |
232 | return c; | 237 | return c; |
233 | } | 238 | } |
234 | 239 | ||
235 | void TEWidget::fontChange(const QFont &) | 240 | void TEWidget::fontChange(const QFont &) |
236 | { | 241 | { |
237 | QFontMetrics fm(font()); | 242 | QFontMetrics fm(font()); |
238 | font_h = fm.height(); | 243 | font_h = fm.height(); |
239 | // font_w = fm.maxWidth(); | 244 | // font_w = fm.maxWidth(); |
240 | font_w = fm.width("m"); | 245 | font_w = fm.width("m"); |
241 | font_a = fm.ascent(); | 246 | font_a = fm.ascent(); |
242 | printf("font h=%d max_width=%d width_m=%d assent=%d\n", font_h, | 247 | printf("font h=%d max_width=%d width_m=%d assent=%d\n", font_h, |
243 | fm.maxWidth(), font_w, font_a); | 248 | fm.maxWidth(), font_w, font_a); |
244 | 249 | ||
245 | //printf("font_h: %d\n",font_h); | 250 | //printf("font_h: %d\n",font_h); |
246 | //printf("font_w: %d\n",font_w); | 251 | //printf("font_w: %d\n",font_w); |
247 | //printf("font_a: %d\n",font_a); | 252 | //printf("font_a: %d\n",font_a); |
248 | //printf("charset: %s\n",QFont::encodingName(font().charSet()).ascii()); | 253 | //printf("charset: %s\n",QFont::encodingName(font().charSet()).ascii()); |
249 | //printf("rawname: %s\n",font().rawName().ascii()); | 254 | //printf("rawname: %s\n",font().rawName().ascii()); |
250 | fontMap = | 255 | fontMap = |
251 | #if QT_VERSION < 300 | 256 | #if QT_VERSION < 300 |
252 | strcmp(QFont::encodingName(font().charSet()).ascii(),"iso10646") | 257 | strcmp(QFont::encodingName(font().charSet()).ascii(),"iso10646") |
253 | ? vt100extended | 258 | ? vt100extended |
254 | : | 259 | : |
255 | #endif | 260 | #endif |
256 | identicalMap; | 261 | identicalMap; |
257 | propagateSize(); | 262 | propagateSize(); |
258 | update(); | 263 | update(); |
259 | } | 264 | } |
260 | 265 | ||
261 | void TEWidget::setVTFont(const QFont& f) | 266 | void TEWidget::setVTFont(const QFont& f) |
262 | { | 267 | { |
263 | QFrame::setFont(f); | 268 | QFrame::setFont(f); |
264 | } | 269 | } |
265 | 270 | ||
266 | QFont TEWidget::getVTFont() { | 271 | QFont TEWidget::getVTFont() { |
267 | return font(); | 272 | return font(); |
268 | } | 273 | } |
269 | 274 | ||
270 | void TEWidget::setFont(const QFont &) | 275 | void TEWidget::setFont(const QFont &) |
271 | { | 276 | { |
272 | // ignore font change request if not coming from konsole itself | 277 | // ignore font change request if not coming from konsole itself |
273 | } | 278 | } |
274 | 279 | ||
275 | /* ------------------------------------------------------------------------- */ | 280 | /* ------------------------------------------------------------------------- */ |
276 | /* */ | 281 | /* */ |
277 | /* Constructor / Destructor */ | 282 | /* Constructor / Destructor */ |
278 | /* */ | 283 | /* */ |
279 | /* ------------------------------------------------------------------------- */ | 284 | /* ------------------------------------------------------------------------- */ |
280 | 285 | ||
281 | TEWidget::TEWidget(QWidget *parent, const char *name) : QFrame(parent,name) | 286 | TEWidget::TEWidget(QWidget *parent, const char *name) : QFrame(parent,name) |
282 | { | 287 | { |
283 | #ifndef QT_NO_CLIPBOARD | 288 | #ifndef QT_NO_CLIPBOARD |
284 | cb = QApplication::clipboard(); | 289 | cb = QApplication::clipboard(); |
285 | QObject::connect( (QObject*)cb, SIGNAL(dataChanged()), | 290 | QObject::connect( (QObject*)cb, SIGNAL(dataChanged()), |
286 | this, SLOT(onClearSelection()) ); | 291 | this, SLOT(onClearSelection()) ); |
287 | #endif | 292 | #endif |
288 | 293 | ||
289 | scrollbar = new QScrollBar(this); | 294 | scrollbar = new QScrollBar(this); |
290 | scrollbar->setCursor( arrowCursor ); | 295 | scrollbar->setCursor( arrowCursor ); |
291 | connect(scrollbar, SIGNAL(valueChanged(int)), this, SLOT(scrollChanged(int))); | 296 | connect(scrollbar, SIGNAL(valueChanged(int)), this, SLOT(scrollChanged(int))); |
292 | 297 | ||
293 | hScrollbar = new QScrollBar(this); | 298 | hScrollbar = new QScrollBar(this); |
294 | hScrollbar->setCursor( arrowCursor ); | 299 | hScrollbar->setCursor( arrowCursor ); |
295 | hScrollbar->setOrientation(QScrollBar::Horizontal); | 300 | hScrollbar->setOrientation(QScrollBar::Horizontal); |
296 | // hScrollbar->setMaximumHeight(16); | 301 | // hScrollbar->setMaximumHeight(16); |
297 | 302 | ||
298 | connect( hScrollbar, SIGNAL(valueChanged(int)), this, SLOT( hScrollChanged(int))); | 303 | connect( hScrollbar, SIGNAL(valueChanged(int)), this, SLOT( hScrollChanged(int))); |
299 | 304 | ||
300 | Config cfg( "Konsole" ); | 305 | Config cfg( "Konsole" ); |
301 | cfg.setGroup("ScrollBar"); | 306 | cfg.setGroup("ScrollBar"); |
302 | switch( cfg.readNumEntry("Position",2)){ | 307 | switch( cfg.readNumEntry("Position",2)){ |
303 | case 0: | 308 | case 0: |
304 | scrollLoc = SCRNONE; | 309 | scrollLoc = SCRNONE; |
305 | break; | 310 | break; |
306 | case 1: | 311 | case 1: |
307 | scrollLoc = SCRLEFT; | 312 | scrollLoc = SCRLEFT; |
308 | break; | 313 | break; |
309 | case 2: | 314 | case 2: |
310 | scrollLoc = SCRRIGHT; | 315 | scrollLoc = SCRRIGHT; |
311 | break; | 316 | break; |
312 | }; | 317 | }; |
313 | 318 | ||
314 | useHorzScroll=cfg.readBoolEntry("HorzScroll",0); | 319 | useHorzScroll=cfg.readBoolEntry("HorzScroll",0); |
315 | 320 | ||
316 | blinkT = new QTimer(this); | 321 | blinkT = new QTimer(this); |
317 | connect(blinkT, SIGNAL(timeout()), this, SLOT(blinkEvent())); | 322 | connect(blinkT, SIGNAL(timeout()), this, SLOT(blinkEvent())); |