summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/fixit.h88
-rw-r--r--noncore/apps/opie-console/main.cpp106
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp19
-rw-r--r--noncore/apps/opie-console/mainwindow.h1
-rw-r--r--noncore/apps/opie-console/opie-console.pro4
5 files changed, 107 insertions, 111 deletions
diff --git a/noncore/apps/opie-console/fixit.h b/noncore/apps/opie-console/fixit.h
new file mode 100644
index 0000000..501914e
--- a/dev/null
+++ b/noncore/apps/opie-console/fixit.h
@@ -0,0 +1,88 @@
1#ifndef FIX_IT_H
2#define FIX_IT_H
3
4
5#include <sys/types.h>
6
7#include <stdio.h>
8#include <stdlib.h>
9#include <signal.h>
10#include <qfile.h>
11
12/*
13 * The Zaurus rom
14 */
15class FixIt {
16public:
17 FixIt();
18 ~FixIt();
19 void fixIt();
20 /* no real interested in implementing it */
21 void breakIt() {
22
23 };
24 char* m_file;
25};
26
27FixIt::FixIt() {
28 /* the new inittab */
29 m_file = "#\n# /etc/inittab"
30"#"
31""
32"# 0 - halt (Do NOT set initdefault to this)"
33"# 1 - Single user mode"
34"# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)"
35"# 3 - Full multiuser mode"
36"# 4 - JavaVM(Intent) developer mode"
37"# 5 - JavaVM(Intent)"
38"# 6 - reboot (Do NOT set initdefault to this)"
39"#"
40"id:5:initdefault:"
41""
42"# Specify things to do when starting"
43"si::sysinit:/etc/rc.d/rc.sysinit"
44""
45"l0:0:wait:/root/etc/rc.d/rc 0"
46"l1:1:wait:/etc/rc.d/rc 1"
47"l2:2:wait:/etc/rc.d/rc 2"
48"l3:3:wait:/etc/rc.d/rc 3"
49"l4:4:wait:/etc/rc.d/rc 4"
50"l5:5:wait:/etc/rc.d/rc 5"
51"l6:6:wait:/root/etc/rc.d/rc 6"
52""
53"# Specify things to do before rebooting"
54"um::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1"
55"sw::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1"
56""
57"# Specify program to run on ttyS0"
58"s0:24:respawn:/sbin/getty 9600 ttyS0"
59"#pd:5:respawn:/etc/sync/serialctl"
60""
61"# Specify program to run on tty1"
62"1:2:respawn:/sbin/getty 9600 tty1"
63"ln:345:respawn:survive -l 6 /sbin/launch"
64"#qt:5:respawn:/sbin/qt"
65""
66"# collie sp."
67"sy::respawn:/sbin/shsync\n";
68
69}
70FixIt::~FixIt() {
71}
72/*
73 * the retail Zaurus is broken in many ways
74 * one is that pppd is listening on our port...
75 * we've to stop it from that and then do kill(SIGHUP,1);
76 */
77void FixIt::fixIt() {
78 ::rename("/etc/inittab", QPEApplication::qpeDir() + "/etc/inittab" );
79 QFile file( "/etc/inittab" );
80 if ( file.open(IO_WriteOnly | IO_Raw ) ) {
81 file.writeBlock(m_file,strlen(m_file) );
82 }
83 file.close();
84 ::kill( SIGHUP, 1 );
85}
86
87
88#endif
diff --git a/noncore/apps/opie-console/main.cpp b/noncore/apps/opie-console/main.cpp
index 92921ab..eafc9b2 100644
--- a/noncore/apps/opie-console/main.cpp
+++ b/noncore/apps/opie-console/main.cpp
@@ -1,110 +1,8 @@
1#include <sys/types.h> 1#include <opie2/oapplicationfactory.h>
2
3#include <stdio.h>
4#include <stdlib.h>
5#include <signal.h>
6#include <qfile.h>
7
8#include <qpe/qpeapplication.h>
9 2
10#include "mainwindow.h" 3#include "mainwindow.h"
11 4
12// #define FSCKED_DISTRIBUTION 1
13#ifdef FSCKED_DISTRIBUTION
14/*
15 * The Zaurus rom
16 */
17class FixIt {
18public:
19 FixIt();
20 ~FixIt();
21 void fixIt();
22 /* no real interested in implementing it */
23 void breakIt() {
24
25 };
26 char* m_file;
27};
28
29FixIt::FixIt() {
30 /* the new inittab */
31 m_file = "#\n# /etc/inittab"
32"#"
33""
34"# 0 - halt (Do NOT set initdefault to this)"
35"# 1 - Single user mode"
36"# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)"
37"# 3 - Full multiuser mode"
38"# 4 - JavaVM(Intent) developer mode"
39"# 5 - JavaVM(Intent)"
40"# 6 - reboot (Do NOT set initdefault to this)"
41"#"
42"id:5:initdefault:"
43""
44"# Specify things to do when starting"
45"si::sysinit:/etc/rc.d/rc.sysinit"
46""
47"l0:0:wait:/root/etc/rc.d/rc 0"
48"l1:1:wait:/etc/rc.d/rc 1"
49"l2:2:wait:/etc/rc.d/rc 2"
50"l3:3:wait:/etc/rc.d/rc 3"
51"l4:4:wait:/etc/rc.d/rc 4"
52"l5:5:wait:/etc/rc.d/rc 5"
53"l6:6:wait:/root/etc/rc.d/rc 6"
54""
55"# Specify things to do before rebooting"
56"um::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1"
57"sw::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1"
58""
59"# Specify program to run on ttyS0"
60"s0:24:respawn:/sbin/getty 9600 ttyS0"
61"#pd:5:respawn:/etc/sync/serialctl"
62""
63"# Specify program to run on tty1"
64"1:2:respawn:/sbin/getty 9600 tty1"
65"ln:345:respawn:survive -l 6 /sbin/launch"
66"#qt:5:respawn:/sbin/qt"
67""
68"# collie sp."
69"sy::respawn:/sbin/shsync\n";
70}
71FixIt::~FixIt() {
72}
73/*
74 * the retail Zaurus is broken in many ways
75 * one is that pppd is listening on our port...
76 * we've to stop it from that and then do kill(SIGHUP,1);
77 */
78void FixIt::fixIt() {
79 ::rename("/etc/inittab", QPEApplication::qpeDir() + "/etc/inittab" );
80 QFile file( "/etc/inittab" );
81 if ( file.open(IO_WriteOnly | IO_Raw ) ) {
82 file.writeBlock(m_file,strlen(m_file) );
83 }
84 file.close();
85 ::kill( SIGHUP, 1 );
86}
87#endif
88
89int main(int argc, char **argv) {
90// too bad this gives us trouble the taskbar... argv[0]="embeddedkonsole";
91 QPEApplication app( argc, argv );
92
93#ifdef FSCKED_DISTRIBUTION
94// owarn << "fscked" << oendl;
95 FixIt it;
96 it.fixIt();
97#endif
98 5
99 MainWindow mw; 6OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<MainWindow> );
100 mw.setCaption(QObject::tr("Opie Console") );
101 app.showMainWidget( &mw );
102 7
103 int ap = app.exec();
104 8
105#ifdef FSCKED_DISTRIBUTION
106 /* should add a signal handler too */
107 it.breakIt();
108#endif
109 return ap;
110}
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index b403b4d..b160604 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -1,79 +1,86 @@
1#include "TEmulation.h" 1#include "TEmulation.h"
2#include "profileeditordialog.h" 2#include "profileeditordialog.h"
3#include "configdialog.h" 3#include "configdialog.h"
4#include "default.h" 4#include "default.h"
5#include "profilemanager.h" 5#include "profilemanager.h"
6#include "mainwindow.h" 6#include "mainwindow.h"
7#include "tabwidget.h" 7#include "tabwidget.h"
8#include "transferdialog.h" 8#include "transferdialog.h"
9#include "function_keyboard.h" 9#include "function_keyboard.h"
10#include "emulation_handler.h" 10#include "emulation_handler.h"
11#include "script.h" 11#include "script.h"
12#include "fixit.h"
12 13
13/* OPIE */ 14/* OPIE */
14#include <opie2/odebug.h> 15#include <opie2/odebug.h>
15#include <opie2/ofiledialog.h> 16#include <opie2/ofiledialog.h>
16#include <qpe/filemanager.h> 17#include <qpe/filemanager.h>
17using namespace Opie::Core; 18using namespace Opie::Core;
18using namespace Opie::Ui; 19using namespace Opie::Ui;
19 20
20/* QT */ 21/* QT */
21#include <qaction.h> 22#include <qaction.h>
22#include <qmenubar.h> 23#include <qmenubar.h>
23#include <qtoolbar.h> 24#include <qtoolbar.h>
24#include <qmessagebox.h> 25#include <qmessagebox.h>
25#include <qwhatsthis.h> 26#include <qwhatsthis.h>
26#include <qfileinfo.h> 27#include <qfileinfo.h>
27 28
28/* STD */ 29/* STD */
29#include <assert.h> 30#include <assert.h>
30 31
31MainWindow::MainWindow(QWidget *parent, const char *name, WFlags) : QMainWindow(parent, name, WStyle_ContextHelp) { 32MainWindow::MainWindow(QWidget *parent, const char *name, WFlags) : QMainWindow(parent, name, WStyle_ContextHelp) {
33#ifdef FSCKED_DISTRI
34 FixIt fix;
35 fix.fixIt();
36#endif
37
38 setCaption(QObject::tr("Opie Console") );
32 KeyTrans::loadAll(); 39 KeyTrans::loadAll();
33 for (int i = 0; i < KeyTrans::count(); i++ ) { 40 for (int i = 0; i < KeyTrans::count(); i++ ) {
34 KeyTrans* s = KeyTrans::find(i ); 41 KeyTrans* s = KeyTrans::find(i );
35 assert( s ); 42 assert( s );
36 } 43 }
37 m_factory = new MetaFactory(); 44 m_factory = new MetaFactory();
38 Default def(m_factory); 45 Default def(m_factory);
39 m_sessions.setAutoDelete( TRUE ); 46 m_sessions.setAutoDelete( TRUE );
40 m_curSession = 0; 47 m_curSession = 0;
41 m_manager = new ProfileManager( m_factory ); 48 m_manager = new ProfileManager( m_factory );
42 m_manager->load(); 49 m_manager->load();
43 m_scriptsData.setAutoDelete(TRUE); 50 m_scriptsData.setAutoDelete(TRUE);
44 51
45 initUI(); 52 initUI();
46 populateProfiles(); 53 populateProfiles();
47 populateScripts(); 54 populateScripts();
48} 55}
49 56
50void MainWindow::initUI() { 57void MainWindow::initUI() {
51 58
52 setToolBarsMovable( FALSE ); 59 setToolBarsMovable( FALSE );
53 60
54 /* tool bar for the menu */ 61 /* tool bar for the menu */
55 m_tool = new QToolBar( this ); 62 m_tool = new QToolBar( this );
56 m_tool->setHorizontalStretchable( TRUE ); 63 m_tool->setHorizontalStretchable( TRUE );
57 64
58 m_bar = new QMenuBar( m_tool ); 65 m_bar = new QMenuBar( m_tool );
59 m_console = new QPopupMenu( this ); 66 m_console = new QPopupMenu( this );
60 m_scripts = new QPopupMenu( this ); 67 m_scripts = new QPopupMenu( this );
61 m_sessionsPop= new QPopupMenu( this ); 68 m_sessionsPop= new QPopupMenu( this );
62 m_scriptsPop = new QPopupMenu( this ); 69 m_scriptsPop = new QPopupMenu( this );
63 70
64 /* add a toolbar for icons */ 71 /* add a toolbar for icons */
65 m_icons = new QToolBar(this); 72 m_icons = new QToolBar(this);
66 73
67 /* 74 /*
68 * the settings action 75 * the settings action
69 */ 76 */
70 m_setProfiles = new QAction(tr("Configure Profiles"), 77 m_setProfiles = new QAction(tr("Configure Profiles"),
71 Resource::loadPixmap( "SettingsIcon" ), 78 Resource::loadPixmap( "SettingsIcon" ),
72 QString::null, 0, this, 0); 79 QString::null, 0, this, 0);
73 m_setProfiles->addTo( m_console ); 80 m_setProfiles->addTo( m_console );
74 connect( m_setProfiles, SIGNAL(activated() ), 81 connect( m_setProfiles, SIGNAL(activated() ),
75 this, SLOT(slotConfigure() ) ); 82 this, SLOT(slotConfigure() ) );
76 83
77 m_console->insertSeparator(); 84 m_console->insertSeparator();
78 /* 85 /*
79 * new Action for new sessions 86 * new Action for new sessions
@@ -253,96 +260,100 @@ void MainWindow::initUI() {
253 * connect to the menu activation 260 * connect to the menu activation
254 */ 261 */
255 connect( m_sessionsPop, SIGNAL(activated(int) ), 262 connect( m_sessionsPop, SIGNAL(activated(int) ),
256 this, SLOT(slotProfile(int) ) ); 263 this, SLOT(slotProfile(int) ) );
257 264
258 m_consoleWindow = new TabWidget( this, "blah"); 265 m_consoleWindow = new TabWidget( this, "blah");
259 connect(m_consoleWindow, SIGNAL(activated(Session*) ), 266 connect(m_consoleWindow, SIGNAL(activated(Session*) ),
260 this, SLOT(slotSessionChanged(Session*) ) ); 267 this, SLOT(slotSessionChanged(Session*) ) );
261 setCentralWidget( m_consoleWindow ); 268 setCentralWidget( m_consoleWindow );
262 269
263 slotQuickLaunch(); 270 slotQuickLaunch();
264} 271}
265 272
266ProfileManager* MainWindow::manager() { 273ProfileManager* MainWindow::manager() {
267 return m_manager; 274 return m_manager;
268} 275}
269TabWidget* MainWindow::tabWidget() { 276TabWidget* MainWindow::tabWidget() {
270 return m_consoleWindow; 277 return m_consoleWindow;
271} 278}
272void MainWindow::populateProfiles() { 279void MainWindow::populateProfiles() {
273 m_sessionsPop->clear(); 280 m_sessionsPop->clear();
274 Profile::ValueList list = manager()->all(); 281 Profile::ValueList list = manager()->all();
275 for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) { 282 for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) {
276 m_sessionsPop->insertItem( (*it).name() ); 283 m_sessionsPop->insertItem( (*it).name() );
277 } 284 }
278 285
279} 286}
280 287
281void MainWindow::populateScripts() { 288void MainWindow::populateScripts() {
282 m_scriptsPop->clear(); 289 m_scriptsPop->clear();
283 m_scriptsData.clear(); 290 m_scriptsData.clear();
284 DocLnkSet files(QPEApplication::documentDir(), "text/plain"); 291 DocLnkSet files(QPEApplication::documentDir(), "text/plain");
285 QListIterator<DocLnk> dit(files.children()); 292 QListIterator<DocLnk> dit(files.children());
286 for (; dit.current(); ++dit) { 293 for (; dit.current(); ++dit) {
287 if (*dit && (*dit)->name().length()>0) { 294 if (*dit && (*dit)->name().length()>0) {
288 QFileInfo info((*dit)->file()); 295 QFileInfo info((*dit)->file());
289 if (info.extension(false) == "script") { 296 if (info.extension(false) == "script") {
290 m_scriptsData.append(new DocLnk(**dit)); 297 m_scriptsData.append(new DocLnk(**dit));
291 m_scriptsPop->insertItem((*dit)->name()); 298 m_scriptsPop->insertItem((*dit)->name());
292 } 299 }
293 } 300 }
294 } 301 }
295 302
296} 303}
297 304
298MainWindow::~MainWindow() { 305MainWindow::~MainWindow() {
299 delete m_factory; 306 delete m_factory;
300 manager()->save(); 307 manager()->save();
308#ifdef FSCKED_DISTRI
309 FixIt fix;
310 fix.breakIt();
311#endif
301} 312}
302 313
303MetaFactory* MainWindow::factory() { 314MetaFactory* MainWindow::factory() {
304 return m_factory; 315 return m_factory;
305} 316}
306 317
307Session* MainWindow::currentSession() { 318Session* MainWindow::currentSession() {
308 return m_curSession; 319 return m_curSession;
309} 320}
310 321
311QList<Session> MainWindow::sessions() { 322QList<Session> MainWindow::sessions() {
312 return m_sessions; 323 return m_sessions;
313} 324}
314 325
315void MainWindow::slotNew() { 326void MainWindow::slotNew() {
316 ProfileEditorDialog dlg(factory() ); 327 ProfileEditorDialog dlg(factory() );
317 dlg.setCaption( tr("New Connection") ); 328 dlg.setCaption( tr("New Connection") );
318 int ret = QPEApplication::execDialog( &dlg ); 329 int ret = QPEApplication::execDialog( &dlg );
319 330
320 if ( ret == QDialog::Accepted ) { 331 if ( ret == QDialog::Accepted ) {
321 create( dlg.profile() ); 332 create( dlg.profile() );
322 } 333 }
323} 334}
324 335
325void MainWindow::slotRecordScript() { 336void MainWindow::slotRecordScript() {
326 if (currentSession()) { 337 if (currentSession()) {
327 currentSession()->emulationHandler()->startRecording(); 338 currentSession()->emulationHandler()->startRecording();
328 m_saveScript->setEnabled(true); 339 m_saveScript->setEnabled(true);
329 m_recordScript->setEnabled(false); 340 m_recordScript->setEnabled(false);
330 } 341 }
331} 342}
332 343
333void MainWindow::slotSaveScript() { 344void MainWindow::slotSaveScript() {
334 if (currentSession() && currentSession()->emulationHandler()->isRecording()) { 345 if (currentSession() && currentSession()->emulationHandler()->isRecording()) {
335 QMap<QString, QStringList> map; 346 QMap<QString, QStringList> map;
336 QStringList text; 347 QStringList text;
337 text << "text/plain"; 348 text << "text/plain";
338 map.insert(tr("Script"), text ); 349 map.insert(tr("Script"), text );
339 QString filename = OFileDialog::getSaveFileName(2, QPEApplication::documentDir(), QString::null, map); 350 QString filename = OFileDialog::getSaveFileName(2, QPEApplication::documentDir(), QString::null, map);
340 if (!filename.isEmpty()) { 351 if (!filename.isEmpty()) {
341 QFileInfo info(filename); 352 QFileInfo info(filename);
342 if (info.extension(FALSE) != "script") 353 if (info.extension(FALSE) != "script")
343 filename += ".script"; 354 filename += ".script";
344 DocLnk nf; 355 DocLnk nf;
345 nf.setType("text/plain"); 356 nf.setType("text/plain");
346 nf.setFile(filename); 357 nf.setFile(filename);
347 nf.setName(info.fileName()); 358 nf.setName(info.fileName());
348 FileManager fm; 359 FileManager fm;
@@ -404,103 +415,103 @@ void MainWindow::slotTerminate() {
404 if ( currentSession() ) 415 if ( currentSession() )
405 currentSession()->layer()->close(); 416 currentSession()->layer()->close();
406 417
407 slotClose(); 418 slotClose();
408 /* FIXME move to the next session */ 419 /* FIXME move to the next session */
409} 420}
410 421
411 422
412 423
413 424
414 425
415 426
416void MainWindow::slotQuickLaunch() { 427void MainWindow::slotQuickLaunch() {
417 Profile prof = manager()->profile( "default" ); 428 Profile prof = manager()->profile( "default" );
418 if ( prof.name() == "default" ) { 429 if ( prof.name() == "default" ) {
419 create( prof ); 430 create( prof );
420 } else { 431 } else {
421 Profile newProf = Profile( "default", "console", "default" , 0, 3, 0 ); 432 Profile newProf = Profile( "default", "console", "default" , 0, 3, 0 );
422 newProf.setAutoConnect( true ); 433 newProf.setAutoConnect( true );
423 create( newProf ); 434 create( newProf );
424 slotSaveSession(); 435 slotSaveSession();
425 } 436 }
426 437
427} 438}
428 439
429void MainWindow::slotConfigure() { 440void MainWindow::slotConfigure() {
430 ConfigDialog conf( manager()->all(), factory() ); 441 ConfigDialog conf( manager()->all(), factory() );
431 442
432 int ret = QPEApplication::execDialog( &conf ); 443 int ret = QPEApplication::execDialog( &conf );
433 444
434 if ( QDialog::Accepted == ret ) { 445 if ( QDialog::Accepted == ret ) {
435 manager()->setProfiles( conf.list() ); 446 manager()->setProfiles( conf.list() );
436 manager()->save(); 447 manager()->save();
437 populateProfiles(); 448 populateProfiles();
438 } 449 }
439} 450}
440/* 451/*
441 * we will remove 452 * we will remove
442 * this window from the tabwidget 453 * this window from the tabwidget
443 * remove it from the list 454 * remove it from the list
444 * delete it 455 * delete it
445 * and set the currentSession() 456 * and set the currentSession()
446 */ 457 */
447void MainWindow::slotClose() { 458void MainWindow::slotClose() {
448 if (!currentSession() ) 459 if (!currentSession() )
449 return; 460 return;
450 461
451 Session* ses = currentSession(); 462 Session* ses = currentSession();
452 owarn << "removing! currentSession " << currentSession()->name().latin1() << "" << oendl; 463 owarn << "removing! currentSession " << currentSession()->name().latin1() << "" << oendl;
453 /* set to NULL to be safe, if its needed slotSessionChanged resets it automatically */ 464 /* set to NULL to be safe, if its needed slotSessionChanged resets it automatically */
454 m_curSession = NULL; 465 m_curSession = NULL;
455 tabWidget()->remove( /*currentSession()*/ses ); 466 tabWidget()->remove( /*currentSession()*/ses );
456 /*it's autodelete */ 467 /*it's autodelete */
457 m_sessions.remove( ses ); 468 m_sessions.remove( ses );
458 owarn << "after remove!!" << oendl; 469 owarn << "after remove!!" << oendl;
459 470
460 if (!currentSession() ) { 471 if (!currentSession() ) {
461 m_connect->setEnabled( false ); 472 m_connect->setEnabled( false );
462 m_disconnect->setEnabled( false ); 473 m_disconnect->setEnabled( false );
463 m_terminate->setEnabled( false ); 474 m_terminate->setEnabled( false );
464 m_transfer->setEnabled( false ); 475 m_transfer->setEnabled( false );
465 m_recordScript->setEnabled( false ); 476 m_recordScript->setEnabled( false );
466 m_saveScript->setEnabled( false ); 477 m_saveScript->setEnabled( false );
467 m_scripts->setItemEnabled(m_runScript_id, false); 478 m_scripts->setItemEnabled(m_runScript_id, false);
468 m_fullscreen->setEnabled( false ); 479 m_fullscreen->setEnabled( false );
469 m_wrap->setEnabled( false ); 480 m_wrap->setEnabled( false );
470 m_closewindow->setEnabled( false ); 481 m_closewindow->setEnabled( false );
471 } 482 }
472 483
473 m_kb->loadDefaults(); 484 m_kb->loadDefaults();
474} 485}
475 486
476/* 487/*
477 * We will get the name 488 * We will get the name
478 * Then the profile 489 * Then the profile
479 * and then we will make a profile 490 * and then we will make a profile
480 */ 491 */
481void MainWindow::slotProfile( int id) { 492void MainWindow::slotProfile( int id) {
482 Profile prof = manager()->profile( m_sessionsPop->text( id) ); 493 Profile prof = manager()->profile( m_sessionsPop->text( id) );
483 create( prof ); 494 create( prof );
484} 495}
485 496
486 497
487 498
488void MainWindow::create( const Profile& prof ) { 499void MainWindow::create( const Profile& prof ) {
489 if(m_curSession) 500 if(m_curSession)
490 if(m_curSession->transferDialog()) m_curSession->transferDialog()->hide(); 501 if(m_curSession->transferDialog()) m_curSession->transferDialog()->hide();
491 502
492 Session *ses = manager()->fromProfile( prof, tabWidget() ); 503 Session *ses = manager()->fromProfile( prof, tabWidget() );
493 504
494 if((!ses) || (!ses->layer()) || (!ses->widgetStack())) 505 if((!ses) || (!ses->layer()) || (!ses->widgetStack()))
495 { 506 {
496 QMessageBox::warning(this, 507 QMessageBox::warning(this,
497 QObject::tr("Session failed"), 508 QObject::tr("Session failed"),
498 QObject::tr("<qt>Cannot open session: Not all components were found.</qt>")); 509 QObject::tr("<qt>Cannot open session: Not all components were found.</qt>"));
499 //if(ses) delete ses; 510 //if(ses) delete ses;
500 return; 511 return;
501 } 512 }
502 513
503 m_sessions.append( ses ); 514 m_sessions.append( ses );
504 tabWidget()->add( ses ); 515 tabWidget()->add( ses );
505 tabWidget()->repaint(); 516 tabWidget()->repaint();
506 m_curSession = ses; 517 m_curSession = ses;
@@ -528,106 +539,106 @@ void MainWindow::create( const Profile& prof ) {
528 if(w) w->setFocus(); 539 if(w) w->setFocus();
529 540
530 if(currentSession()->profile().readNumEntry("Wrap", 80)){ 541 if(currentSession()->profile().readNumEntry("Wrap", 80)){
531 m_isWrapped = true; 542 m_isWrapped = true;
532 } else { 543 } else {
533 m_isWrapped = false; 544 m_isWrapped = false;
534 } 545 }
535 546
536 m_kb->load(currentSession()->profile()); 547 m_kb->load(currentSession()->profile());
537} 548}
538 549
539void MainWindow::slotTransfer() 550void MainWindow::slotTransfer()
540{ 551{
541 if ( currentSession() ) { 552 if ( currentSession() ) {
542 Session *mysession = currentSession(); 553 Session *mysession = currentSession();
543 TransferDialog dlg(/*mysession->widgetStack()*/this, this); 554 TransferDialog dlg(/*mysession->widgetStack()*/this, this);
544 mysession->setTransferDialog(&dlg); 555 mysession->setTransferDialog(&dlg);
545 //dlg.reparent(mysession->widgetStack(), QPoint(0, 0)); 556 //dlg.reparent(mysession->widgetStack(), QPoint(0, 0));
546 //dlg.showMaximized(); 557 //dlg.showMaximized();
547 currentSession()->widgetStack()->addWidget(&dlg, -1); 558 currentSession()->widgetStack()->addWidget(&dlg, -1);
548 dlg.show(); 559 dlg.show();
549 //dlg.exec(); 560 //dlg.exec();
550 while(dlg.isRunning()) qApp->processEvents(); 561 while(dlg.isRunning()) qApp->processEvents();
551 mysession->setTransferDialog(0l); 562 mysession->setTransferDialog(0l);
552 } 563 }
553} 564}
554 565
555 566
556void MainWindow::slotOpenKeb(bool state) { 567void MainWindow::slotOpenKeb(bool state) {
557 568
558 if (state) m_keyBar->show(); 569 if (state) m_keyBar->show();
559 else m_keyBar->hide(); 570 else m_keyBar->hide();
560 571
561} 572}
562 573
563 574
564void MainWindow::slotOpenButtons( bool state ) { 575void MainWindow::slotOpenButtons( bool state ) {
565 576
566 if ( state ) { 577 if ( state ) {
567 m_buttonBar->show(); 578 m_buttonBar->show();
568 } else { 579 } else {
569 m_buttonBar->hide(); 580 m_buttonBar->hide();
570 } 581 }
571} 582}
572 583
573 584
574 585
575void MainWindow::slotSessionChanged( Session* ses ) { 586void MainWindow::slotSessionChanged( Session* ses ) {
576 owarn << "changed!" << oendl; 587 owarn << "changed!" << oendl;
577 588
578 if(m_curSession) 589 if(m_curSession)
579 if(m_curSession->transferDialog()) m_curSession->transferDialog()->hide(); 590 if(m_curSession->transferDialog()) m_curSession->transferDialog()->hide();
580 if(ses) 591 if(ses)
581 if(ses->transferDialog()) ses->transferDialog()->show(); 592 if(ses->transferDialog()) ses->transferDialog()->show();
582 593
583 if ( ses ) { 594 if ( ses ) {
584 m_curSession = ses; 595 m_curSession = ses;
585 odebug << QString("is connected : %1").arg( m_curSession->layer()->isConnected() ) << oendl; 596 odebug << QString("is connected : %1").arg( m_curSession->layer()->isConnected() ) << oendl;
586 if ( m_curSession->layer()->isConnected() ) { 597 if ( m_curSession->layer()->isConnected() ) {
587 m_connect->setEnabled( false ); 598 m_connect->setEnabled( false );
588 m_disconnect->setEnabled( true ); 599 m_disconnect->setEnabled( true );
589 m_recordScript->setEnabled(!m_curSession->emulationHandler()->isRecording()); 600 m_recordScript->setEnabled(!m_curSession->emulationHandler()->isRecording());
590 m_saveScript->setEnabled(m_curSession->emulationHandler()->isRecording()); 601 m_saveScript->setEnabled(m_curSession->emulationHandler()->isRecording());
591 m_scripts->setItemEnabled(m_runScript_id, true); 602 m_scripts->setItemEnabled(m_runScript_id, true);
592 } else { 603 } else {
593 m_connect->setEnabled( true ); 604 m_connect->setEnabled( true );
594 m_disconnect->setEnabled( false ); 605 m_disconnect->setEnabled( false );
595 m_recordScript->setEnabled( false ); 606 m_recordScript->setEnabled( false );
596 m_saveScript->setEnabled( false ); 607 m_saveScript->setEnabled( false );
597 m_scripts->setItemEnabled(m_runScript_id, false); 608 m_scripts->setItemEnabled(m_runScript_id, false);
598 } 609 }
599 610
600 if ( ( m_curSession->layer() )->supports()[1] == 0 ) { 611 if ( ( m_curSession->layer() )->supports()[1] == 0 ) {
601 m_transfer->setEnabled( false ); 612 m_transfer->setEnabled( false );
602 } else { 613 } else {
603 m_transfer->setEnabled( true ); 614 m_transfer->setEnabled( true );
604 } 615 }
605 616
606 QWidget *w = m_curSession->widget(); 617 QWidget *w = m_curSession->widget();
607 if(w) w->setFocus(); 618 if(w) w->setFocus();
608 619
609 if(currentSession()->profile().readNumEntry("Wrap", 80)){ 620 if(currentSession()->profile().readNumEntry("Wrap", 80)){
610 m_isWrapped = true; 621 m_isWrapped = true;
611 } else { 622 } else {
612 m_isWrapped = false; 623 m_isWrapped = false;
613 } 624 }
614 625
615 m_kb->load(currentSession()->profile()); 626 m_kb->load(currentSession()->profile());
616 } 627 }
617} 628}
618 629
619void MainWindow::slotWrap() 630void MainWindow::slotWrap()
620{ 631{
621 if(m_curSession) 632 if(m_curSession)
622 { 633 {
623 EmulationHandler *e = m_curSession->emulationHandler(); 634 EmulationHandler *e = m_curSession->emulationHandler();
624 if(e) 635 if(e)
625 { 636 {
626 if(m_isWrapped) 637 if(m_isWrapped)
627 { 638 {
628 e->setWrap(80); 639 e->setWrap(80);
629 m_isWrapped = false; 640 m_isWrapped = false;
630 } 641 }
631 else 642 else
632 { 643 {
633 e->setWrap(0); 644 e->setWrap(0);
diff --git a/noncore/apps/opie-console/mainwindow.h b/noncore/apps/opie-console/mainwindow.h
index 86939c1..b1f175a 100644
--- a/noncore/apps/opie-console/mainwindow.h
+++ b/noncore/apps/opie-console/mainwindow.h
@@ -1,78 +1,79 @@
1#ifndef OPIE_MAIN_WINDOW_H 1#ifndef OPIE_MAIN_WINDOW_H
2#define OPIE_MAIN_WINDOW_H 2#define OPIE_MAIN_WINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qlist.h> 5#include <qlist.h>
6 6
7#include "session.h" 7#include "session.h"
8 8
9/** 9/**
10 * this is the MainWindow of the new opie console 10 * this is the MainWindow of the new opie console
11 * it's also the dispatcher between the different 11 * it's also the dispatcher between the different
12 * actions supported by the gui 12 * actions supported by the gui
13 */ 13 */
14class QToolBar; 14class QToolBar;
15class QToolButton; 15class QToolButton;
16class QMenuBar; 16class QMenuBar;
17class QAction; 17class QAction;
18class MetaFactory; 18class MetaFactory;
19class TabWidget; 19class TabWidget;
20class ProfileManager; 20class ProfileManager;
21class Profile; 21class Profile;
22class FunctionKeyboard; 22class FunctionKeyboard;
23class FKey; 23class FKey;
24class DocLnk; 24class DocLnk;
25 25
26class MainWindow : public QMainWindow { 26class MainWindow : public QMainWindow {
27 Q_OBJECT 27 Q_OBJECT
28public: 28public:
29 MainWindow( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 ); 29 MainWindow( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 );
30 ~MainWindow(); 30 ~MainWindow();
31 static QString appName() {return QString::fromLatin1("console"); }
31 32
32 /** 33 /**
33 * our factory to generate IOLayer and so on 34 * our factory to generate IOLayer and so on
34 * 35 *
35 */ 36 */
36 MetaFactory* factory(); 37 MetaFactory* factory();
37 38
38 /** 39 /**
39 * A session contains a QWidget*, 40 * A session contains a QWidget*,
40 * an IOLayer* and some infos for us 41 * an IOLayer* and some infos for us
41 */ 42 */
42 Session* currentSession(); 43 Session* currentSession();
43 44
44 /** 45 /**
45 * the session list 46 * the session list
46 */ 47 */
47 QList<Session> sessions(); 48 QList<Session> sessions();
48 49
49 /** 50 /**
50 * 51 *
51 */ 52 */
52 ProfileManager* manager(); 53 ProfileManager* manager();
53 TabWidget* tabWidget(); 54 TabWidget* tabWidget();
54 55
55private slots: 56private slots:
56 void slotNew(); 57 void slotNew();
57 void slotConnect(); 58 void slotConnect();
58 void slotDisconnect(); 59 void slotDisconnect();
59 void slotTerminate(); 60 void slotTerminate();
60 void slotConfigure(); 61 void slotConfigure();
61 void slotClose(); 62 void slotClose();
62 void slotProfile(int); 63 void slotProfile(int);
63 void slotTransfer(); 64 void slotTransfer();
64 void slotOpenKeb(bool); 65 void slotOpenKeb(bool);
65 void slotOpenButtons(bool); 66 void slotOpenButtons(bool);
66 void slotRecordScript(); 67 void slotRecordScript();
67 void slotSaveScript(); 68 void slotSaveScript();
68 void slotRunScript(int); 69 void slotRunScript(int);
69 void slotFullscreen(); 70 void slotFullscreen();
70 void slotQuickLaunch(); 71 void slotQuickLaunch();
71 void slotWrap(); 72 void slotWrap();
72 void slotSessionChanged( Session* ); 73 void slotSessionChanged( Session* );
73 void slotKeyReceived(FKey, ushort, ushort, bool); 74 void slotKeyReceived(FKey, ushort, ushort, bool);
74 void slotSaveHistory(); 75 void slotSaveHistory();
75 76
76 /* what could these both slot do? */ 77 /* what could these both slot do? */
77 void slotCopy(); 78 void slotCopy();
78 void slotPaste(); 79 void slotPaste();
diff --git a/noncore/apps/opie-console/opie-console.pro b/noncore/apps/opie-console/opie-console.pro
index 8268b01..baa5a55 100644
--- a/noncore/apps/opie-console/opie-console.pro
+++ b/noncore/apps/opie-console/opie-console.pro
@@ -1,51 +1,49 @@
1TEMPLATE = app 1CONFIG += qt warn_on quick-app
2CONFIG += qt warn_on
3DESTDIR = $(OPIEDIR)/bin
4HEADERS = io_layer.h io_serial.h io_irda.h io_bt.h io_modem.h \ 2HEADERS = io_layer.h io_serial.h io_irda.h io_bt.h io_modem.h \
5 file_layer.h filetransfer.h \ 3 file_layer.h filetransfer.h \
6 metafactory.h \ 4 metafactory.h \
7 session.h \ 5 session.h \
8 mainwindow.h \ 6 mainwindow.h \
9 profile.h \ 7 profile.h \
10 profileconfig.h \ 8 profileconfig.h \
11 profilemanager.h \ 9 profilemanager.h \
12 tabwidget.h \ 10 tabwidget.h \
13 configdialog.h \ 11 configdialog.h \
14 keytrans.h \ 12 keytrans.h \
15 transferdialog.h \ 13 transferdialog.h \
16 profiledialogwidget.h \ 14 profiledialogwidget.h \
17 profileeditordialog.h \ 15 profileeditordialog.h \
18 default.h \ 16 default.h \
19 iolayerbase.h \ 17 iolayerbase.h \
20 serialconfigwidget.h irdaconfigwidget.h \ 18 serialconfigwidget.h irdaconfigwidget.h \
21 btconfigwidget.h modemconfigwidget.h \ 19 btconfigwidget.h modemconfigwidget.h \
22 atconfigdialog.h dialdialog.h \ 20 atconfigdialog.h dialdialog.h \
23 procctl.h \ 21 procctl.h \
24 function_keyboard.h \ 22 function_keyboard.h \
25 receive_layer.h filereceive.h \ 23 receive_layer.h filereceive.h \
26 script.h \ 24 script.h \
27 dialer.h \ 25 dialer.h \
28 terminalwidget.h \ 26 terminalwidget.h \
29 emulation_handler.h TECommon.h \ 27 emulation_handler.h TECommon.h \
30 TEHistory.h TEScreen.h TEWidget.h \ 28 TEHistory.h TEScreen.h TEWidget.h \
31 TEmuVt102.h TEmulation.h MyPty.h \ 29 TEmuVt102.h TEmulation.h MyPty.h \
32 consoleconfigwidget.h 30 consoleconfigwidget.h
33 31
34SOURCES = io_layer.cpp io_serial.cpp io_irda.cpp io_bt.cpp io_modem.cpp \ 32SOURCES = io_layer.cpp io_serial.cpp io_irda.cpp io_bt.cpp io_modem.cpp \
35 file_layer.cpp filetransfer.cpp \ 33 file_layer.cpp filetransfer.cpp \
36 main.cpp \ 34 main.cpp \
37 metafactory.cpp \ 35 metafactory.cpp \
38 session.cpp \ 36 session.cpp \
39 mainwindow.cpp \ 37 mainwindow.cpp \
40 profile.cpp \ 38 profile.cpp \
41 profileconfig.cpp \ 39 profileconfig.cpp \
42 profilemanager.cpp \ 40 profilemanager.cpp \
43 tabwidget.cpp \ 41 tabwidget.cpp \
44 configdialog.cpp \ 42 configdialog.cpp \
45 keytrans.cpp \ 43 keytrans.cpp \
46 transferdialog.cpp \ 44 transferdialog.cpp \
47 profiledialogwidget.cpp \ 45 profiledialogwidget.cpp \
48 profileeditordialog.cpp \ 46 profileeditordialog.cpp \
49 iolayerbase.cpp \ 47 iolayerbase.cpp \
50 serialconfigwidget.cpp irdaconfigwidget.cpp \ 48 serialconfigwidget.cpp irdaconfigwidget.cpp \
51 btconfigwidget.cpp modemconfigwidget.cpp \ 49 btconfigwidget.cpp modemconfigwidget.cpp \