-rw-r--r-- | core/apps/embeddedkonsole/TEWidget.cpp | 20 | ||||
-rw-r--r-- | core/apps/embeddedkonsole/konsole.cpp | 31 | ||||
-rw-r--r-- | core/apps/embeddedkonsole/konsole.h | 4 |
3 files changed, 49 insertions, 6 deletions
diff --git a/core/apps/embeddedkonsole/TEWidget.cpp b/core/apps/embeddedkonsole/TEWidget.cpp index f10bfb2..a56dc50 100644 --- a/core/apps/embeddedkonsole/TEWidget.cpp +++ b/core/apps/embeddedkonsole/TEWidget.cpp | |||
@@ -29,48 +29,49 @@ | |||
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 | 54 | ||
54 | #include <qcursor.h> | 55 | #include <qcursor.h> |
55 | #include <qregexp.h> | 56 | #include <qregexp.h> |
56 | #include <qpainter.h> | 57 | #include <qpainter.h> |
57 | #include <qclipboard.h> | 58 | #include <qclipboard.h> |
58 | #include <qstyle.h> | 59 | #include <qstyle.h> |
59 | #include <qfile.h> | 60 | #include <qfile.h> |
60 | #include <qdragobject.h> | 61 | #include <qdragobject.h> |
61 | 62 | ||
62 | #include <stdio.h> | 63 | #include <stdio.h> |
63 | #include <stdlib.h> | 64 | #include <stdlib.h> |
64 | #include <unistd.h> | 65 | #include <unistd.h> |
65 | #include <ctype.h> | 66 | #include <ctype.h> |
66 | #include <sys/stat.h> | 67 | #include <sys/stat.h> |
67 | #include <sys/types.h> | 68 | #include <sys/types.h> |
68 | #include <signal.h> | 69 | #include <signal.h> |
69 | 70 | ||
70 | #include <assert.h> | 71 | #include <assert.h> |
71 | 72 | ||
72 | // #include "TEWidget.moc" | 73 | // #include "TEWidget.moc" |
73 | //#include <kapp.h> | 74 | //#include <kapp.h> |
74 | //#include <kcursor.h> | 75 | //#include <kcursor.h> |
75 | //#include <kurl.h> | 76 | //#include <kurl.h> |
76 | //#include <kdebug.h> | 77 | //#include <kdebug.h> |
@@ -131,49 +132,49 @@ QColor TEWidget::getDefaultBackColor() | |||
131 | return color_table[DEFAULT_BACK_COLOR].color; | 132 | return color_table[DEFAULT_BACK_COLOR].color; |
132 | } | 133 | } |
133 | 134 | ||
134 | const ColorEntry* TEWidget::getColorTable() const | 135 | const ColorEntry* TEWidget::getColorTable() const |
135 | { | 136 | { |
136 | return color_table; | 137 | return color_table; |
137 | } | 138 | } |
138 | 139 | ||
139 | const ColorEntry* TEWidget::getdefaultColorTable() const | 140 | const ColorEntry* TEWidget::getdefaultColorTable() const |
140 | { | 141 | { |
141 | return base_color_table; | 142 | return base_color_table; |
142 | } | 143 | } |
143 | 144 | ||
144 | 145 | ||
145 | const QPixmap *TEWidget::backgroundPixmap() | 146 | const QPixmap *TEWidget::backgroundPixmap() |
146 | { | 147 | { |
147 | static QPixmap *bg = new QPixmap("~/qpim/main/pics/faded_bg.xpm"); | 148 | static QPixmap *bg = new QPixmap("~/qpim/main/pics/faded_bg.xpm"); |
148 | const QPixmap *pm = bg; | 149 | const QPixmap *pm = bg; |
149 | return pm; | 150 | return pm; |
150 | } | 151 | } |
151 | 152 | ||
152 | void TEWidget::setColorTable(const ColorEntry table[]) | 153 | void TEWidget::setColorTable(const ColorEntry table[]) |
153 | { | 154 | { |
154 | for (int i = 0; i < TABLE_COLORS; i++) color_table[i] = table[i]; | 155 | for (int i = 0; i < TABLE_COLORS; i++) color_table[i] = table[i]; |
155 | 156 | ||
156 | const QPixmap* pm = backgroundPixmap(); | 157 | const QPixmap* pm = backgroundPixmap(); |
157 | if (!pm) setBackgroundColor(color_table[DEFAULT_BACK_COLOR].color); | 158 | if (!pm) setBackgroundColor(color_table[DEFAULT_BACK_COLOR].color); |
158 | update(); | 159 | update(); |
159 | } | 160 | } |
160 | 161 | ||
161 | //FIXME: add backgroundPixmapChanged. | 162 | //FIXME: add backgroundPixmapChanged. |
162 | 163 | ||
163 | /* ------------------------------------------------------------------------- */ | 164 | /* ------------------------------------------------------------------------- */ |
164 | /* */ | 165 | /* */ |
165 | /* Font */ | 166 | /* Font */ |
166 | /* */ | 167 | /* */ |
167 | /* ------------------------------------------------------------------------- */ | 168 | /* ------------------------------------------------------------------------- */ |
168 | 169 | ||
169 | /* | 170 | /* |
170 | The VT100 has 32 special graphical characters. The usual vt100 extended | 171 | The VT100 has 32 special graphical characters. The usual vt100 extended |
171 | xterm fonts have these at 0x00..0x1f. | 172 | xterm fonts have these at 0x00..0x1f. |
172 | 173 | ||
173 | QT's iso mapping leaves 0x00..0x7f without any changes. But the graphicals | 174 | QT's iso mapping leaves 0x00..0x7f without any changes. But the graphicals |
174 | come in here as proper unicode characters. | 175 | come in here as proper unicode characters. |
175 | 176 | ||
176 | We treat non-iso10646 fonts as VT100 extended and do the requiered mapping | 177 | 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 | 178 | from unicode to 0x00..0x1f. The remaining translation is then left to the |
178 | QCodec. | 179 | QCodec. |
179 | */ | 180 | */ |
@@ -264,49 +265,62 @@ QFont TEWidget::getVTFont() { | |||
264 | } | 265 | } |
265 | 266 | ||
266 | void TEWidget::setFont(const QFont &) | 267 | void TEWidget::setFont(const QFont &) |
267 | { | 268 | { |
268 | // ignore font change request if not coming from konsole itself | 269 | // ignore font change request if not coming from konsole itself |
269 | } | 270 | } |
270 | 271 | ||
271 | /* ------------------------------------------------------------------------- */ | 272 | /* ------------------------------------------------------------------------- */ |
272 | /* */ | 273 | /* */ |
273 | /* Constructor / Destructor */ | 274 | /* Constructor / Destructor */ |
274 | /* */ | 275 | /* */ |
275 | /* ------------------------------------------------------------------------- */ | 276 | /* ------------------------------------------------------------------------- */ |
276 | 277 | ||
277 | TEWidget::TEWidget(QWidget *parent, const char *name) : QFrame(parent,name) | 278 | TEWidget::TEWidget(QWidget *parent, const char *name) : QFrame(parent,name) |
278 | { | 279 | { |
279 | #ifndef QT_NO_CLIPBOARD | 280 | #ifndef QT_NO_CLIPBOARD |
280 | cb = QApplication::clipboard(); | 281 | cb = QApplication::clipboard(); |
281 | QObject::connect( (QObject*)cb, SIGNAL(dataChanged()), | 282 | QObject::connect( (QObject*)cb, SIGNAL(dataChanged()), |
282 | this, SLOT(onClearSelection()) ); | 283 | this, SLOT(onClearSelection()) ); |
283 | #endif | 284 | #endif |
284 | 285 | ||
285 | scrollbar = new QScrollBar(this); | 286 | scrollbar = new QScrollBar(this); |
286 | scrollbar->setCursor( arrowCursor ); | 287 | scrollbar->setCursor( arrowCursor ); |
287 | connect(scrollbar, SIGNAL(valueChanged(int)), this, SLOT(scrollChanged(int))); | 288 | connect(scrollbar, SIGNAL(valueChanged(int)), this, SLOT(scrollChanged(int))); |
288 | scrollLoc = SCRNONE; | 289 | |
290 | Config cfg("Konsole"); | ||
291 | cfg.setGroup("ScrollBar"); | ||
292 | switch( cfg.readNumEntry("Position",2)){ | ||
293 | case 0: | ||
294 | scrollLoc = SCRNONE; | ||
295 | break; | ||
296 | case 1: | ||
297 | scrollLoc = SCRLEFT; | ||
298 | break; | ||
299 | case 2: | ||
300 | scrollLoc = SCRRIGHT; | ||
301 | break; | ||
302 | }; | ||
289 | 303 | ||
290 | blinkT = new QTimer(this); | 304 | blinkT = new QTimer(this); |
291 | connect(blinkT, SIGNAL(timeout()), this, SLOT(blinkEvent())); | 305 | connect(blinkT, SIGNAL(timeout()), this, SLOT(blinkEvent())); |
292 | // blinking = FALSE; | 306 | // blinking = FALSE; |
293 | blinking = TRUE; | 307 | blinking = TRUE; |
294 | 308 | ||
295 | resizing = FALSE; | 309 | resizing = FALSE; |
296 | actSel = 0; | 310 | actSel = 0; |
297 | image = 0; | 311 | image = 0; |
298 | lines = 1; | 312 | lines = 1; |
299 | columns = 1; | 313 | columns = 1; |
300 | font_w = 1; | 314 | font_w = 1; |
301 | font_h = 1; | 315 | font_h = 1; |
302 | font_a = 1; | 316 | font_a = 1; |
303 | word_selection_mode = FALSE; | 317 | word_selection_mode = FALSE; |
304 | 318 | ||
305 | setMouseMarks(TRUE); | 319 | setMouseMarks(TRUE); |
306 | setVTFont( QFont("fixed") ); | 320 | setVTFont( QFont("fixed") ); |
307 | setColorTable(base_color_table); // init color table | 321 | setColorTable(base_color_table); // init color table |
308 | 322 | ||
309 | qApp->installEventFilter( this ); //FIXME: see below | 323 | qApp->installEventFilter( this ); //FIXME: see below |
310 | // KCursor::setAutoHideCursor( this, true ); | 324 | // KCursor::setAutoHideCursor( this, true ); |
311 | 325 | ||
312 | // Init DnD //////////////////////////////////////////////////////////////// | 326 | // Init DnD //////////////////////////////////////////////////////////////// |
@@ -630,49 +644,49 @@ void TEWidget::setScrollbarLocation(int loc) | |||
630 | */ | 644 | */ |
631 | 645 | ||
632 | void TEWidget::mousePressEvent(QMouseEvent* ev) | 646 | void TEWidget::mousePressEvent(QMouseEvent* ev) |
633 | { | 647 | { |
634 | //printf("press [%d,%d] %d\n",ev->x()/font_w,ev->y()/font_h,ev->button()); | 648 | //printf("press [%d,%d] %d\n",ev->x()/font_w,ev->y()/font_h,ev->button()); |
635 | if ( !contentsRect().contains(ev->pos()) ) return; | 649 | if ( !contentsRect().contains(ev->pos()) ) return; |
636 | QPoint tL = contentsRect().topLeft(); | 650 | QPoint tL = contentsRect().topLeft(); |
637 | int tLx = tL.x(); | 651 | int tLx = tL.x(); |
638 | int tLy = tL.y(); | 652 | int tLy = tL.y(); |
639 | 653 | ||
640 | word_selection_mode = FALSE; | 654 | word_selection_mode = FALSE; |
641 | 655 | ||
642 | //printf("press top left [%d,%d] by=%d\n",tLx,tLy, bY); | 656 | //printf("press top left [%d,%d] by=%d\n",tLx,tLy, bY); |
643 | if ( ev->button() == LeftButton) | 657 | if ( ev->button() == LeftButton) |
644 | { | 658 | { |
645 | QPoint pos = QPoint((ev->x()-tLx-blX)/font_w,(ev->y()-tLy-bY)/font_h); | 659 | QPoint pos = QPoint((ev->x()-tLx-blX)/font_w,(ev->y()-tLy-bY)/font_h); |
646 | 660 | ||
647 | if ( ev->state() & ControlButton ) preserve_line_breaks = FALSE ; | 661 | if ( ev->state() & ControlButton ) preserve_line_breaks = FALSE ; |
648 | 662 | ||
649 | if (mouse_marks || (ev->state() & ShiftButton)) | 663 | if (mouse_marks || (ev->state() & ShiftButton)) |
650 | { | 664 | { |
651 | emit clearSelectionSignal(); | 665 | emit clearSelectionSignal(); |
652 | iPntSel = pntSel = pos; | 666 | iPntSel = pntSel = pos; |
653 | actSel = 1; // left mouse button pressed but nothing selected yet. | 667 | actSel = 1; // left mouse button pressed but nothing selected yet. |
654 | grabMouse( /*crossCursor*/ ); // handle with care! | 668 | grabMouse( /*crossCursor*/ ); // handle with care! |
655 | } | 669 | } |
656 | else | 670 | else |
657 | { | 671 | { |
658 | emit mouseSignal( 0, pos.x() + 1, pos.y() + 1 ); // left button | 672 | emit mouseSignal( 0, pos.x() + 1, pos.y() + 1 ); // left button |
659 | } | 673 | } |
660 | } | 674 | } |
661 | if ( ev->button() == MidButton ) | 675 | if ( ev->button() == MidButton ) |
662 | { | 676 | { |
663 | emitSelection(); | 677 | emitSelection(); |
664 | } | 678 | } |
665 | if ( ev->button() == RightButton ) // Configure | 679 | if ( ev->button() == RightButton ) // Configure |
666 | { | 680 | { |
667 | emit configureRequest( this, ev->state()&(ShiftButton|ControlButton), ev->x(), ev->y() ); | 681 | emit configureRequest( this, ev->state()&(ShiftButton|ControlButton), ev->x(), ev->y() ); |
668 | } | 682 | } |
669 | } | 683 | } |
670 | 684 | ||
671 | void TEWidget::mouseMoveEvent(QMouseEvent* ev) | 685 | void TEWidget::mouseMoveEvent(QMouseEvent* ev) |
672 | { | 686 | { |
673 | // for auto-hiding the cursor, we need mouseTracking | 687 | // for auto-hiding the cursor, we need mouseTracking |
674 | if (ev->state() == NoButton ) return; | 688 | if (ev->state() == NoButton ) return; |
675 | 689 | ||
676 | if (actSel == 0) return; | 690 | if (actSel == 0) return; |
677 | 691 | ||
678 | // don't extend selection while pasting | 692 | // don't extend selection while pasting |
diff --git a/core/apps/embeddedkonsole/konsole.cpp b/core/apps/embeddedkonsole/konsole.cpp index d54fa1f..e2d4886 100644 --- a/core/apps/embeddedkonsole/konsole.cpp +++ b/core/apps/embeddedkonsole/konsole.cpp | |||
@@ -203,87 +203,89 @@ void Konsole::init(const char* _pgm, QStrList & _args) | |||
203 | 203 | ||
204 | // create terminal emulation framework //////////////////////////////////// | 204 | // create terminal emulation framework //////////////////////////////////// |
205 | nsessions = 0; | 205 | nsessions = 0; |
206 | 206 | ||
207 | tab = new EKNumTabWidget(this); | 207 | tab = new EKNumTabWidget(this); |
208 | 208 | ||
209 | connect(tab, SIGNAL(currentChanged(QWidget*)), this, SLOT(switchSession(QWidget*))); | 209 | connect(tab, SIGNAL(currentChanged(QWidget*)), this, SLOT(switchSession(QWidget*))); |
210 | 210 | ||
211 | // create terminal toolbar //////////////////////////////////////////////// | 211 | // create terminal toolbar //////////////////////////////////////////////// |
212 | setToolBarsMovable( FALSE ); | 212 | setToolBarsMovable( FALSE ); |
213 | QPEToolBar *menuToolBar = new QPEToolBar( this ); | 213 | QPEToolBar *menuToolBar = new QPEToolBar( this ); |
214 | menuToolBar->setHorizontalStretchable( TRUE ); | 214 | menuToolBar->setHorizontalStretchable( TRUE ); |
215 | 215 | ||
216 | QPEMenuBar *menuBar = new QPEMenuBar( menuToolBar ); | 216 | QPEMenuBar *menuBar = new QPEMenuBar( menuToolBar ); |
217 | 217 | ||
218 | fontList = new QPopupMenu( this ); | 218 | fontList = new QPopupMenu( this ); |
219 | for(uint i = 0; i < fonts.count(); i++) { | 219 | for(uint i = 0; i < fonts.count(); i++) { |
220 | VTFont *fnt = fonts.at(i); | 220 | VTFont *fnt = fonts.at(i); |
221 | fontList->insertItem(fnt->getName(), i); | 221 | fontList->insertItem(fnt->getName(), i); |
222 | } | 222 | } |
223 | fontChanged(cfont); | 223 | fontChanged(cfont); |
224 | 224 | ||
225 | configMenu = new QPopupMenu( this); | 225 | configMenu = new QPopupMenu( this); |
226 | colorMenu = new QPopupMenu( this); | 226 | colorMenu = new QPopupMenu( this); |
227 | 227 | scrollMenu = new QPopupMenu( this); | |
228 | |||
228 | bool listHidden; | 229 | bool listHidden; |
229 | cfg.setGroup("Menubar"); | 230 | cfg.setGroup("Menubar"); |
230 | if( cfg.readEntry("Hidden","FALSE") == "TRUE") { | 231 | if( cfg.readEntry("Hidden","FALSE") == "TRUE") { |
231 | configMenu->insertItem("Show command list"); | 232 | configMenu->insertItem("Show command list"); |
232 | listHidden=TRUE; | 233 | listHidden=TRUE; |
233 | } else { | 234 | } else { |
234 | configMenu->insertItem("Hide command list"); | 235 | configMenu->insertItem("Hide command list"); |
235 | listHidden=FALSE; | 236 | listHidden=FALSE; |
236 | } | 237 | } |
237 | 238 | ||
238 | cfg.setGroup("Tabs"); | 239 | cfg.setGroup("Tabs"); |
239 | tmp=cfg.readEntry("Position","Bottom"); | 240 | tmp=cfg.readEntry("Position","Bottom"); |
240 | if(tmp=="Top") { | 241 | if(tmp=="Top") { |
241 | tab->setTabPosition(QTabWidget::Top); | 242 | tab->setTabPosition(QTabWidget::Top); |
242 | configMenu->insertItem("Tabs on Bottom"); | 243 | configMenu->insertItem("Tabs on Bottom"); |
243 | } else { | 244 | } else { |
244 | tab->setTabPosition(QTabWidget::Bottom); | 245 | tab->setTabPosition(QTabWidget::Bottom); |
245 | configMenu->insertItem("Tabs on Top"); | 246 | configMenu->insertItem("Tabs on Top"); |
246 | } | 247 | } |
247 | configMenu->insertSeparator(2); | 248 | configMenu->insertSeparator(2); |
248 | 249 | ||
249 | colorMenu->insertItem("Green on Black"); | 250 | colorMenu->insertItem("Green on Black"); |
250 | colorMenu->insertItem("Black on White"); | 251 | colorMenu->insertItem("Black on White"); |
251 | colorMenu->insertItem("White on Black"); | 252 | colorMenu->insertItem("White on Black"); |
252 | colorMenu->insertItem("Black on Transparent"); | 253 | colorMenu->insertItem("Black on Transparent"); |
253 | colorMenu->insertItem("Black on Red"); | 254 | colorMenu->insertItem("Black on Red"); |
254 | colorMenu->insertItem("Red on Black"); | 255 | colorMenu->insertItem("Red on Black"); |
255 | colorMenu->insertItem("Green on Yellow"); | 256 | colorMenu->insertItem("Green on Yellow"); |
256 | colorMenu->insertItem("Blue on Magenta"); | 257 | colorMenu->insertItem("Blue on Magenta"); |
257 | colorMenu->insertItem("Magenta on Blue"); | 258 | colorMenu->insertItem("Magenta on Blue"); |
258 | colorMenu->insertItem("Cyan on White"); | 259 | colorMenu->insertItem("Cyan on White"); |
259 | colorMenu->insertItem("White on Cyan"); | 260 | colorMenu->insertItem("White on Cyan"); |
260 | colorMenu->insertItem("Blue on Black"); | 261 | colorMenu->insertItem("Blue on Black"); |
261 | configMenu->insertItem("Colors",colorMenu); | 262 | configMenu->insertItem("Colors",colorMenu); |
262 | 263 | ||
263 | connect( fontList, SIGNAL( activated(int) ), this, SLOT( fontChanged(int) )); | 264 | connect( fontList, SIGNAL( activated(int) ), this, SLOT( fontChanged(int) )); |
264 | connect( configMenu, SIGNAL( activated(int) ), this, SLOT( configMenuSelected(int) )); | 265 | connect( configMenu, SIGNAL( activated(int) ), this, SLOT( configMenuSelected(int) )); |
265 | connect( colorMenu, SIGNAL( activated(int) ), this, SLOT( colorMenuSelected(int) )); | 266 | connect( colorMenu, SIGNAL( activated(int) ), this, SLOT( colorMenuSelected(int) )); |
267 | connect( scrollMenu, SIGNAL(activated(int)),this,SLOT(scrollMenuSelected(int))); | ||
266 | 268 | ||
267 | menuBar->insertItem( tr("Font"), fontList ); | 269 | menuBar->insertItem( tr("Font"), fontList ); |
268 | menuBar->insertItem( tr("Options"), configMenu ); | 270 | menuBar->insertItem( tr("Options"), configMenu ); |
269 | 271 | ||
270 | QPEToolBar *toolbar = new QPEToolBar( this ); | 272 | QPEToolBar *toolbar = new QPEToolBar( this ); |
271 | 273 | ||
272 | QAction *a; | 274 | QAction *a; |
273 | 275 | ||
274 | // Button Commands | 276 | // Button Commands |
275 | a = new QAction( tr("New"), Resource::loadPixmap( "konsole" ), QString::null, 0, this, 0 ); | 277 | a = new QAction( tr("New"), Resource::loadPixmap( "konsole" ), QString::null, 0, this, 0 ); |
276 | connect( a, SIGNAL( activated() ), this, SLOT( newSession() ) ); a->addTo( toolbar ); | 278 | connect( a, SIGNAL( activated() ), this, SLOT( newSession() ) ); a->addTo( toolbar ); |
277 | a = new QAction( tr("Enter"), Resource::loadPixmap( "konsole/enter" ), QString::null, 0, this, 0 ); | 279 | a = new QAction( tr("Enter"), Resource::loadPixmap( "konsole/enter" ), QString::null, 0, this, 0 ); |
278 | connect( a, SIGNAL( activated() ), this, SLOT( hitEnter() ) ); a->addTo( toolbar ); | 280 | connect( a, SIGNAL( activated() ), this, SLOT( hitEnter() ) ); a->addTo( toolbar ); |
279 | a = new QAction( tr("Space"), Resource::loadPixmap( "konsole/space" ), QString::null, 0, this, 0 ); | 281 | a = new QAction( tr("Space"), Resource::loadPixmap( "konsole/space" ), QString::null, 0, this, 0 ); |
280 | connect( a, SIGNAL( activated() ), this, SLOT( hitSpace() ) ); a->addTo( toolbar ); | 282 | connect( a, SIGNAL( activated() ), this, SLOT( hitSpace() ) ); a->addTo( toolbar ); |
281 | a = new QAction( tr("Tab"), Resource::loadPixmap( "konsole/tab" ), QString::null, 0, this, 0 ); | 283 | a = new QAction( tr("Tab"), Resource::loadPixmap( "konsole/tab" ), QString::null, 0, this, 0 ); |
282 | connect( a, SIGNAL( activated() ), this, SLOT( hitTab() ) ); a->addTo( toolbar ); | 284 | connect( a, SIGNAL( activated() ), this, SLOT( hitTab() ) ); a->addTo( toolbar ); |
283 | a = new QAction( tr("Up"), Resource::loadPixmap( "konsole/up" ), QString::null, 0, this, 0 ); | 285 | a = new QAction( tr("Up"), Resource::loadPixmap( "konsole/up" ), QString::null, 0, this, 0 ); |
284 | connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar ); | 286 | connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar ); |
285 | a = new QAction( tr("Down"), Resource::loadPixmap( "konsole/down" ), QString::null, 0, this, 0 ); | 287 | a = new QAction( tr("Down"), Resource::loadPixmap( "konsole/down" ), QString::null, 0, this, 0 ); |
286 | connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar ); | 288 | connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar ); |
287 | a = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 ); | 289 | a = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 ); |
288 | connect( a, SIGNAL( activated() ), this, SLOT( hitPaste() ) ); a->addTo( toolbar ); | 290 | connect( a, SIGNAL( activated() ), this, SLOT( hitPaste() ) ); a->addTo( toolbar ); |
289 | /* | 291 | /* |
@@ -295,48 +297,53 @@ void Konsole::init(const char* _pgm, QStrList & _args) | |||
295 | 297 | ||
296 | secondToolBar = new QPEToolBar( this ); | 298 | secondToolBar = new QPEToolBar( this ); |
297 | secondToolBar->setHorizontalStretchable( TRUE ); | 299 | secondToolBar->setHorizontalStretchable( TRUE ); |
298 | 300 | ||
299 | commonCombo = new QComboBox( secondToolBar ); | 301 | commonCombo = new QComboBox( secondToolBar ); |
300 | commonCombo->setMaximumWidth(236); | 302 | commonCombo->setMaximumWidth(236); |
301 | configMenu->insertItem( "Edit Command List"); | 303 | configMenu->insertItem( "Edit Command List"); |
302 | if( listHidden) { | 304 | if( listHidden) { |
303 | secondToolBar->hide(); | 305 | secondToolBar->hide(); |
304 | configMenu->setItemEnabled(-20 ,FALSE); | 306 | configMenu->setItemEnabled(-20 ,FALSE); |
305 | } | 307 | } |
306 | 308 | ||
307 | cfg.setGroup("Commands"); | 309 | cfg.setGroup("Commands"); |
308 | commonCombo->setInsertionPolicy(QComboBox::AtCurrent); | 310 | commonCombo->setInsertionPolicy(QComboBox::AtCurrent); |
309 | 311 | ||
310 | for (int i = 0; commonCmds[i] != NULL; i++) { | 312 | for (int i = 0; commonCmds[i] != NULL; i++) { |
311 | commonCombo->insertItem( commonCmds[i], i ); | 313 | commonCombo->insertItem( commonCmds[i], i ); |
312 | tmp = cfg.readEntry( QString::number(i),""); | 314 | tmp = cfg.readEntry( QString::number(i),""); |
313 | if(tmp != "") | 315 | if(tmp != "") |
314 | commonCombo->changeItem( tmp,i ); | 316 | commonCombo->changeItem( tmp,i ); |
315 | } | 317 | } |
316 | 318 | ||
317 | connect( commonCombo, SIGNAL( activated(int) ), this, SLOT( enterCommand(int) )); | 319 | connect( commonCombo, SIGNAL( activated(int) ), this, SLOT( enterCommand(int) )); |
318 | 320 | ||
321 | scrollMenu->insertItem("None"); | ||
322 | scrollMenu->insertItem("Left"); | ||
323 | scrollMenu->insertItem("Right"); | ||
324 | configMenu->insertItem("ScrollBar",scrollMenu); | ||
325 | |||
319 | // create applications ///////////////////////////////////////////////////// | 326 | // create applications ///////////////////////////////////////////////////// |
320 | setCentralWidget(tab); | 327 | setCentralWidget(tab); |
321 | 328 | ||
322 | // load keymaps //////////////////////////////////////////////////////////// | 329 | // load keymaps //////////////////////////////////////////////////////////// |
323 | KeyTrans::loadAll(); | 330 | KeyTrans::loadAll(); |
324 | for (int i = 0; i < KeyTrans::count(); i++) | 331 | for (int i = 0; i < KeyTrans::count(); i++) |
325 | { KeyTrans* s = KeyTrans::find(i); | 332 | { KeyTrans* s = KeyTrans::find(i); |
326 | assert( s ); | 333 | assert( s ); |
327 | } | 334 | } |
328 | 335 | ||
329 | se_pgm = _pgm; | 336 | se_pgm = _pgm; |
330 | se_args = _args; | 337 | se_args = _args; |
331 | 338 | ||
332 | // read and apply default values /////////////////////////////////////////// | 339 | // read and apply default values /////////////////////////////////////////// |
333 | resize(321, 321); // Dummy. | 340 | resize(321, 321); // Dummy. |
334 | QSize currentSize = size(); | 341 | QSize currentSize = size(); |
335 | if (currentSize != size()) | 342 | if (currentSize != size()) |
336 | defaultSize = size(); | 343 | defaultSize = size(); |
337 | 344 | ||
338 | } | 345 | } |
339 | 346 | ||
340 | void Konsole::show() | 347 | void Konsole::show() |
341 | { | 348 | { |
342 | if ( !nsessions ) { | 349 | if ( !nsessions ) { |
@@ -742,24 +749,46 @@ void Konsole::configMenuSelected(int iD) | |||
742 | te->setFocus(); | 749 | te->setFocus(); |
743 | } | 750 | } |
744 | } | 751 | } |
745 | } | 752 | } |
746 | 753 | ||
747 | void Konsole::changeCommand(const QString &text, int c) | 754 | void Konsole::changeCommand(const QString &text, int c) |
748 | { | 755 | { |
749 | Config cfg("Konsole"); | 756 | Config cfg("Konsole"); |
750 | cfg.setGroup("Commands"); | 757 | cfg.setGroup("Commands"); |
751 | if(commonCmds[c] != text) { | 758 | if(commonCmds[c] != text) { |
752 | cfg.writeEntry(QString::number(c),text); | 759 | cfg.writeEntry(QString::number(c),text); |
753 | commonCombo->clearEdit(); | 760 | commonCombo->clearEdit(); |
754 | commonCombo->setCurrentItem(c); | 761 | commonCombo->setCurrentItem(c); |
755 | } | 762 | } |
756 | } | 763 | } |
757 | 764 | ||
758 | void Konsole::setColor() | 765 | void Konsole::setColor() |
759 | { | 766 | { |
760 | Config cfg("Konsole"); | 767 | Config cfg("Konsole"); |
761 | cfg.setGroup("Colors"); | 768 | cfg.setGroup("Colors"); |
762 | int scheme = cfg.readNumEntry("Schema",1); | 769 | int scheme = cfg.readNumEntry("Schema",1); |
763 | if(scheme != 1) colorMenuSelected( -scheme); | 770 | if(scheme != 1) colorMenuSelected( -scheme); |
764 | 771 | ||
765 | } | 772 | } |
773 | |||
774 | void Konsole::scrollMenuSelected(int index) | ||
775 | { | ||
776 | TEWidget* te = getTe(); | ||
777 | Config cfg("Konsole"); | ||
778 | cfg.setGroup("Scrollbar"); | ||
779 | switch( index){ | ||
780 | case -21: | ||
781 | te->setScrollbarLocation(0); | ||
782 | cfg.writeEntry("Position",0); | ||
783 | break; | ||
784 | case -22: | ||
785 | te->setScrollbarLocation(1); | ||
786 | cfg.writeEntry("Position",1); | ||
787 | break; | ||
788 | case -23: | ||
789 | te->setScrollbarLocation(2); | ||
790 | cfg.writeEntry("Position",2); | ||
791 | break; | ||
792 | }; | ||
793 | |||
794 | } | ||
diff --git a/core/apps/embeddedkonsole/konsole.h b/core/apps/embeddedkonsole/konsole.h index 40003d4..b4e5d87 100644 --- a/core/apps/embeddedkonsole/konsole.h +++ b/core/apps/embeddedkonsole/konsole.h | |||
@@ -49,83 +49,83 @@ public: | |||
49 | Konsole(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); | 49 | Konsole(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); |
50 | Konsole(const char * name, const char* pgm, QStrList & _args, int histon); | 50 | Konsole(const char * name, const char* pgm, QStrList & _args, int histon); |
51 | ~Konsole(); | 51 | ~Konsole(); |
52 | void setColLin(int columns, int lines); | 52 | void setColLin(int columns, int lines); |
53 | QPEToolBar *secondToolBar; | 53 | QPEToolBar *secondToolBar; |
54 | void show(); | 54 | void show(); |
55 | void setColor(); | 55 | void setColor(); |
56 | int lastSelectedMenu; | 56 | int lastSelectedMenu; |
57 | private slots: | 57 | private slots: |
58 | void doneSession(TESession*,int); | 58 | void doneSession(TESession*,int); |
59 | void changeColumns(int); | 59 | void changeColumns(int); |
60 | void fontChanged(int); | 60 | void fontChanged(int); |
61 | void configMenuSelected(int ); | 61 | void configMenuSelected(int ); |
62 | void colorMenuSelected(int); | 62 | void colorMenuSelected(int); |
63 | void enterCommand(int); | 63 | void enterCommand(int); |
64 | void hitEnter(); | 64 | void hitEnter(); |
65 | void hitSpace(); | 65 | void hitSpace(); |
66 | void hitTab(); | 66 | void hitTab(); |
67 | void hitPaste(); | 67 | void hitPaste(); |
68 | void hitUp(); | 68 | void hitUp(); |
69 | void hitDown(); | 69 | void hitDown(); |
70 | void switchSession(QWidget *); | 70 | void switchSession(QWidget *); |
71 | void newSession(); | 71 | void newSession(); |
72 | void changeCommand(const QString &, int); | 72 | void changeCommand(const QString &, int); |
73 | 73 | void scrollMenuSelected(int); | |
74 | private: | 74 | private: |
75 | void init(const char* _pgm, QStrList & _args); | 75 | void init(const char* _pgm, QStrList & _args); |
76 | void initSession(const char* _pgm, QStrList & _args); | 76 | void initSession(const char* _pgm, QStrList & _args); |
77 | void runSession(TESession* s); | 77 | void runSession(TESession* s); |
78 | void setColorPixmaps(); | 78 | void setColorPixmaps(); |
79 | void setHistory(bool); | 79 | void setHistory(bool); |
80 | QSize calcSize(int columns, int lines); | 80 | QSize calcSize(int columns, int lines); |
81 | TEWidget* getTe(); | 81 | TEWidget* getTe(); |
82 | 82 | ||
83 | private: | 83 | private: |
84 | class VTFont | 84 | class VTFont |
85 | { | 85 | { |
86 | public: | 86 | public: |
87 | VTFont(QString name, QFont& font) | 87 | VTFont(QString name, QFont& font) |
88 | { | 88 | { |
89 | this->name = name; | 89 | this->name = name; |
90 | this->font = font; | 90 | this->font = font; |
91 | } | 91 | } |
92 | 92 | ||
93 | QFont& getFont() | 93 | QFont& getFont() |
94 | { | 94 | { |
95 | return font; | 95 | return font; |
96 | } | 96 | } |
97 | 97 | ||
98 | QString getName() | 98 | QString getName() |
99 | { | 99 | { |
100 | return name; | 100 | return name; |
101 | } | 101 | } |
102 | 102 | ||
103 | private: | 103 | private: |
104 | QString name; | 104 | QString name; |
105 | QFont font; | 105 | QFont font; |
106 | }; | 106 | }; |
107 | 107 | ||
108 | EKNumTabWidget* tab; | 108 | EKNumTabWidget* tab; |
109 | int nsessions; | 109 | int nsessions; |
110 | QList<VTFont> fonts; | 110 | QList<VTFont> fonts; |
111 | int cfont; | 111 | int cfont; |
112 | QCString se_pgm; | 112 | QCString se_pgm; |
113 | QStrList se_args; | 113 | QStrList se_args; |
114 | 114 | ||
115 | QPopupMenu* fontList,*configMenu,*colorMenu; | 115 | QPopupMenu* fontList,*configMenu,*colorMenu,*scrollMenu; |
116 | QComboBox *commonCombo; | 116 | QComboBox *commonCombo; |
117 | // history scrolling I think | 117 | // history scrolling I think |
118 | bool b_scroll; | 118 | bool b_scroll; |
119 | 119 | ||
120 | int n_keytab; | 120 | int n_keytab; |
121 | int n_scroll; | 121 | int n_scroll; |
122 | int n_render; | 122 | int n_render; |
123 | QString pmPath; // pixmap path | 123 | QString pmPath; // pixmap path |
124 | QString dropText; | 124 | QString dropText; |
125 | QFont defaultFont; | 125 | QFont defaultFont; |
126 | QSize defaultSize; | 126 | QSize defaultSize; |
127 | 127 | ||
128 | }; | 128 | }; |
129 | 129 | ||
130 | #endif | 130 | #endif |
131 | 131 | ||