summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp101
-rw-r--r--noncore/apps/opie-console/mainwindow.h7
2 files changed, 88 insertions, 20 deletions
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index 89cdf51..6dc9e6e 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -1,52 +1,76 @@
1#include <assert.h> 1#include <assert.h>
2 2
3 3
4 4
5#include <qaction.h> 5#include <qaction.h>
6#include <qmenubar.h> 6#include <qmenubar.h>
7#include <qlabel.h> 7#include <qlabel.h>
8#include <qpopupmenu.h> 8#include <qpopupmenu.h>
9#include <qtoolbar.h> 9#include <qtoolbar.h>
10#include <qmessagebox.h> 10#include <qmessagebox.h>
11#include <qpushbutton.h>
11 12
12#include <qpe/resource.h> 13#include <qpe/resource.h>
13#include <opie/ofiledialog.h> 14#include <opie/ofiledialog.h>
14 15
15 16
16#include "keytrans.h" 17#include "keytrans.h"
17#include "profileeditordialog.h" 18#include "profileeditordialog.h"
18#include "configdialog.h" 19#include "configdialog.h"
19#include "default.h" 20#include "default.h"
20#include "metafactory.h" 21#include "metafactory.h"
21#include "profile.h" 22#include "profile.h"
22#include "profilemanager.h" 23#include "profilemanager.h"
23#include "mainwindow.h" 24#include "mainwindow.h"
24#include "tabwidget.h" 25#include "tabwidget.h"
25#include "transferdialog.h" 26#include "transferdialog.h"
26#include "function_keyboard.h" 27#include "function_keyboard.h"
27#include "script.h" 28#include "script.h"
28 29
30
31
32static char * menu_xpm[] = {
33"12 12 5 1",
34 " c None",
35 ".c #000000",
36 "+c #FFFDAD",
37 "@c #FFFF00",
38 "#c #E5E100",
39" ",
40" ",
41" ......... ",
42" .+++++++. ",
43" .+@@@@#. ",
44" .+@@@#. ",
45" .+@@#. ",
46" .+@#. ",
47" .+#. ",
48" .+. ",
49" .. ",
50" "};
51
52
29MainWindow::MainWindow() { 53MainWindow::MainWindow() {
30 KeyTrans::loadAll(); 54 KeyTrans::loadAll();
31 for (int i = 0; i < KeyTrans::count(); i++ ) { 55 for (int i = 0; i < KeyTrans::count(); i++ ) {
32 KeyTrans* s = KeyTrans::find(i ); 56 KeyTrans* s = KeyTrans::find(i );
33 assert( s ); 57 assert( s );
34 } 58 }
35 m_factory = new MetaFactory(); 59 m_factory = new MetaFactory();
36 Default def(m_factory); 60 Default def(m_factory);
37 m_sessions.setAutoDelete( TRUE ); 61 m_sessions.setAutoDelete( TRUE );
38 m_curSession = 0; 62 m_curSession = 0;
39 m_manager = new ProfileManager( m_factory ); 63 m_manager = new ProfileManager( m_factory );
40 m_manager->load(); 64 m_manager->load();
41 65
42 initUI(); 66 initUI();
43 populateProfiles(); 67 populateProfiles();
44} 68}
45void MainWindow::initUI() { 69void MainWindow::initUI() {
46 setToolBarsMovable( FALSE ); 70 setToolBarsMovable( FALSE );
47 71
48 /* tool bar for the menu */ 72 /* tool bar for the menu */
49 m_tool = new QToolBar( this ); 73 m_tool = new QToolBar( this );
50 m_tool->setHorizontalStretchable( TRUE ); 74 m_tool->setHorizontalStretchable( TRUE );
51 75
52 m_bar = new QMenuBar( m_tool ); 76 m_bar = new QMenuBar( m_tool );
@@ -72,61 +96,74 @@ void MainWindow::initUI() {
72 /* 96 /*
73 * connect action 97 * connect action
74 */ 98 */
75 m_connect = new QAction(); 99 m_connect = new QAction();
76 m_connect->setText( tr("Connect") ); 100 m_connect->setText( tr("Connect") );
77 m_connect->addTo( m_console ); 101 m_connect->addTo( m_console );
78 connect(m_connect, SIGNAL(activated() ), 102 connect(m_connect, SIGNAL(activated() ),
79 this, SLOT(slotConnect() ) ); 103 this, SLOT(slotConnect() ) );
80 104
81 /* 105 /*
82 * disconnect action 106 * disconnect action
83 */ 107 */
84 m_disconnect = new QAction(); 108 m_disconnect = new QAction();
85 m_disconnect->setText( tr("Disconnect") ); 109 m_disconnect->setText( tr("Disconnect") );
86 m_disconnect->addTo( m_console ); 110 m_disconnect->addTo( m_console );
87 connect(m_disconnect, SIGNAL(activated() ), 111 connect(m_disconnect, SIGNAL(activated() ),
88 this, SLOT(slotDisconnect() ) ); 112 this, SLOT(slotDisconnect() ) );
89 113
90 m_transfer = new QAction(); 114 m_transfer = new QAction();
91 m_transfer->setText( tr("Transfer file...") ); 115 m_transfer->setText( tr("Transfer file...") );
92 m_transfer->addTo( m_console ); 116 m_transfer->addTo( m_console );
93 connect(m_transfer, SIGNAL(activated() ), 117 connect(m_transfer, SIGNAL(activated() ),
94 this, SLOT(slotTransfer() ) ); 118 this, SLOT(slotTransfer() ) );
95 119
120
121 /*
122 * fullscreen
123 */
124 m_isFullscreen = false;
125
126 m_fullscreen = new QAction( tr("Full screen"), Resource::loadPixmap( "fullscreen" )
127 , QString::null, 0, this, 0);
128 m_fullscreen->addTo( m_console );
129 m_fullscreen->addTo( m_icons );
130 connect( m_fullscreen, SIGNAL( activated() ),
131 this, SLOT( slotFullscreen() ) );
132
96 /* 133 /*
97 * terminate action 134 * terminate action
98 */ 135 */
99 m_terminate = new QAction(); 136 m_terminate = new QAction();
100 m_terminate->setText( tr("Terminate") ); 137 m_terminate->setText( tr("Terminate") );
101 m_terminate->addTo( m_console ); 138 m_terminate->addTo( m_console );
102 connect(m_terminate, SIGNAL(activated() ), 139 connect(m_terminate, SIGNAL(activated() ),
103 this, SLOT(slotTerminate() ) ); 140 this, SLOT(slotTerminate() ) );
104 141
105 a = new QAction(); 142 m_closewindow = new QAction();
106 a->setText( tr("Close Window") ); 143 m_closewindow->setText( tr("Close Window") );
107 a->addTo( m_console ); 144 m_closewindow->addTo( m_console );
108 connect(a, SIGNAL(activated() ), 145 connect( m_closewindow, SIGNAL(activated() ),
109 this, SLOT(slotClose() ) ); 146 this, SLOT(slotClose() ) );
110 147
111 /* 148 /*
112 * the settings action 149 * the settings action
113 */ 150 */
114 m_setProfiles = new QAction(tr("Configure Profiles"), 151 m_setProfiles = new QAction(tr("Configure Profiles"),
115 Resource::loadPixmap( "SettingsIcon" ), 152 Resource::loadPixmap( "SettingsIcon" ),
116 QString::null, 0, this, 0); 153 QString::null, 0, this, 0);
117 m_setProfiles->addTo( m_settings ); 154 m_setProfiles->addTo( m_settings );
118 m_setProfiles->addTo( m_icons ); 155 m_setProfiles->addTo( m_icons );
119 connect( m_setProfiles, SIGNAL(activated() ), 156 connect( m_setProfiles, SIGNAL(activated() ),
120 this, SLOT(slotConfigure() ) ); 157 this, SLOT(slotConfigure() ) );
121 158
122 /* 159 /*
123 * script actions 160 * script actions
124 */ 161 */
125 m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0); 162 m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0);
126 m_recordScript->addTo(m_scripts); 163 m_recordScript->addTo(m_scripts);
127 connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript())); 164 connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript()));
128 165
129 m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0); 166 m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0);
130 m_saveScript->addTo(m_scripts); 167 m_saveScript->addTo(m_scripts);
131 connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript())); 168 connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript()));
132 169
@@ -157,48 +194,50 @@ void MainWindow::initUI() {
157 194
158 /* the scripts menu */ 195 /* the scripts menu */
159 m_bar->insertItem( tr("Scripts"), m_scripts ); 196 m_bar->insertItem( tr("Scripts"), m_scripts );
160 197
161 /* the settings menu */ 198 /* the settings menu */
162 m_bar->insertItem( tr("Settings"), m_settings ); 199 m_bar->insertItem( tr("Settings"), m_settings );
163 200
164 /* and the keyboard */ 201 /* and the keyboard */
165 m_keyBar = new QToolBar(this); 202 m_keyBar = new QToolBar(this);
166 addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE ); 203 addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE );
167 m_keyBar->setHorizontalStretchable( TRUE ); 204 m_keyBar->setHorizontalStretchable( TRUE );
168 m_keyBar->hide(); 205 m_keyBar->hide();
169 206
170 m_kb = new FunctionKeyboard(m_keyBar); 207 m_kb = new FunctionKeyboard(m_keyBar);
171 208
172 209
173 210
174 m_connect->setEnabled( false ); 211 m_connect->setEnabled( false );
175 m_disconnect->setEnabled( false ); 212 m_disconnect->setEnabled( false );
176 m_terminate->setEnabled( false ); 213 m_terminate->setEnabled( false );
177 m_transfer->setEnabled( false ); 214 m_transfer->setEnabled( false );
178 m_recordScript->setEnabled( false ); 215 m_recordScript->setEnabled( false );
179 m_saveScript->setEnabled( false ); 216 m_saveScript->setEnabled( false );
180 m_runScript->setEnabled( false ); 217 m_runScript->setEnabled( false );
218 m_fullscreen->setEnabled( false );
219 m_closewindow->setEnabled( false );
181 220
182 /* 221 /*
183 * connect to the menu activation 222 * connect to the menu activation
184 */ 223 */
185 connect( m_sessionsPop, SIGNAL(activated( int ) ), 224 connect( m_sessionsPop, SIGNAL(activated( int ) ),
186 this, SLOT(slotProfile( int ) ) ); 225 this, SLOT(slotProfile( int ) ) );
187 226
188 m_consoleWindow = new TabWidget( this, "blah"); 227 m_consoleWindow = new TabWidget( this, "blah");
189 connect(m_consoleWindow, SIGNAL(activated(Session*) ), 228 connect(m_consoleWindow, SIGNAL(activated(Session*) ),
190 this, SLOT(slotSessionChanged(Session*) ) ); 229 this, SLOT(slotSessionChanged(Session*) ) );
191 setCentralWidget( m_consoleWindow ); 230 setCentralWidget( m_consoleWindow );
192 231
193} 232}
194 233
195ProfileManager* MainWindow::manager() { 234ProfileManager* MainWindow::manager() {
196 return m_manager; 235 return m_manager;
197} 236}
198TabWidget* MainWindow::tabWidget() { 237TabWidget* MainWindow::tabWidget() {
199 return m_consoleWindow; 238 return m_consoleWindow;
200} 239}
201void MainWindow::populateProfiles() { 240void MainWindow::populateProfiles() {
202 m_sessionsPop->clear(); 241 m_sessionsPop->clear();
203 Profile::ValueList list = manager()->all(); 242 Profile::ValueList list = manager()->all();
204 for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) { 243 for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) {
@@ -304,100 +343,126 @@ void MainWindow::slotConfigure() {
304 if ( QDialog::Accepted == ret ) { 343 if ( QDialog::Accepted == ret ) {
305 qWarning("conf %d", conf.list().count() ); 344 qWarning("conf %d", conf.list().count() );
306 manager()->setProfiles( conf.list() ); 345 manager()->setProfiles( conf.list() );
307 manager()->save(); 346 manager()->save();
308 populateProfiles(); 347 populateProfiles();
309 } 348 }
310} 349}
311/* 350/*
312 * we will remove 351 * we will remove
313 * this window from the tabwidget 352 * this window from the tabwidget
314 * remove it from the list 353 * remove it from the list
315 * delete it 354 * delete it
316 * and set the currentSession() 355 * and set the currentSession()
317 */ 356 */
318void MainWindow::slotClose() { 357void MainWindow::slotClose() {
319 qWarning("close"); 358 qWarning("close");
320 if (!currentSession() ) 359 if (!currentSession() )
321 return; 360 return;
322 361
323 tabWidget()->remove( currentSession() ); 362 tabWidget()->remove( currentSession() );
324 /*it's autodelete */ 363 /*it's autodelete */
325 m_sessions.remove( m_curSession ); 364 m_sessions.remove( m_curSession );
326 m_curSession = m_sessions.first(); 365 m_curSession = m_sessions.first();
327 tabWidget()->setCurrent( m_curSession ); 366 tabWidget()->setCurrent( m_curSession );
367
368 if (!currentSession() ) {
369 m_connect->setEnabled( false );
370 m_disconnect->setEnabled( false );
371 m_terminate->setEnabled( false );
372 m_transfer->setEnabled( false );
373 m_recordScript->setEnabled( false );
374 m_saveScript->setEnabled( false );
375 m_runScript->setEnabled( false );
376 m_fullscreen->setEnabled( false );
377 m_closewindow->setEnabled( false );
378 }
328} 379}
329 380
330/* 381/*
331 * We will get the name 382 * We will get the name
332 * Then the profile 383 * Then the profile
333 * and then we will make a profile 384 * and then we will make a profile
334 */ 385 */
335void MainWindow::slotProfile( int id) { 386void MainWindow::slotProfile( int id) {
336 Profile prof = manager()->profile( m_sessionsPop->text( id) ); 387 Profile prof = manager()->profile( m_sessionsPop->text( id) );
337 create( prof ); 388 create( prof );
338} 389}
339void MainWindow::create( const Profile& prof ) { 390void MainWindow::create( const Profile& prof ) {
340 Session *ses = manager()->fromProfile( prof, tabWidget() ); 391 Session *ses = manager()->fromProfile( prof, tabWidget() );
341 392
342 if((!ses) || (!ses->layer()) || (!ses->widgetStack())) 393 if((!ses) || (!ses->layer()) || (!ses->widgetStack()))
343 { 394 {
344 QMessageBox::warning(this, 395 QMessageBox::warning(this,
345 QObject::tr("Session failed"), 396 QObject::tr("Session failed"),
346 QObject::tr("Cannot open session: Not all components were found.")); 397 QObject::tr("Cannot open session: Not all components were found."));
347 //if(ses) delete ses; 398 //if(ses) delete ses;
348 return; 399 return;
349 } 400 }
350 401
351 m_sessions.append( ses ); 402 m_sessions.append( ses );
352 tabWidget()->add( ses ); 403 tabWidget()->add( ses );
353 m_curSession = ses; 404 m_curSession = ses;
354 405
355 // dicide if its a local term ( then no connction and no tranfer) 406 // dicide if its a local term ( then no connction and no tranfer), maybe make a wrapper method out of it
356 m_connect->setEnabled( true ); 407 m_connect->setEnabled( true );
357 m_disconnect->setEnabled( true ); 408 m_disconnect->setEnabled( true );
358 m_terminate->setEnabled( true ); 409 m_terminate->setEnabled( true );
359 m_transfer->setEnabled( true ); 410 m_transfer->setEnabled( true );
360 m_recordScript->setEnabled( true ); 411 m_recordScript->setEnabled( true );
361 m_saveScript->setEnabled( true ); 412 m_saveScript->setEnabled( true );
362 m_runScript->setEnabled( true ); 413 m_runScript->setEnabled( true );
363 414 m_fullscreen->setEnabled( true );
364 415 m_closewindow->setEnabled( true );
365} 416}
366 417
367void MainWindow::slotTransfer() 418void MainWindow::slotTransfer()
368{ 419{
369 // if ( currentSession() ) { 420 // if ( currentSession() ) {
370 TransferDialog dlg(this); 421 TransferDialog dlg(this);
371 dlg.showMaximized(); 422 dlg.showMaximized();
372 dlg.exec(); 423 dlg.exec();
373 // } 424 // }
374} 425}
375 426
376 427
377void MainWindow::slotOpenKeb(bool state) { 428void MainWindow::slotOpenKeb(bool state) {
378 429
379 if (state) m_keyBar->show(); 430 if (state) m_keyBar->show();
380 else m_keyBar->hide(); 431 else m_keyBar->hide();
381 432
382} 433}
383void MainWindow::slotSessionChanged( Session* ses ) { 434void MainWindow::slotSessionChanged( Session* ses ) {
384 if ( ses ) { 435 if ( ses ) {
385 qWarning("changing %s", ses->name().latin1() ); 436 qWarning("changing %s", ses->name().latin1() );
386 m_curSession = ses; 437 m_curSession = ses;
387 } 438 }
388} 439}
389 440
390void MainWindow::setOn() { 441void MainWindow::slotFullscreen() {
391 442
392/* 443 if ( m_isFullscreen ) {
393 m_connect 444 ( m_curSession->widgetStack() )->reparent( m_consoleWindow, 0, QPoint(0,0), false );
394 m_disconnect 445 ( m_curSession->widgetStack() )->setFrameStyle( QFrame::Panel | QFrame::Sunken );
395 m_terminate 446 setCentralWidget( m_consoleWindow );
396 m_transfer 447 ( m_curSession->widgetStack() )->show();
397 m_recordScript 448 m_fullscreen->setText( tr("Full screen") );
398 m_saveScript 449
399 m_runScript 450 } else {
400*/ 451 ( m_curSession->widgetStack() )->setFrameStyle( QFrame::NoFrame );
452 ( m_curSession->widgetStack() )->reparent( 0,WStyle_Tool | WStyle_Customize | WStyle_StaysOnTop,
453 QPoint(0,0), false);
454 ( m_curSession->widgetStack() )->resize(qApp->desktop()->width(), qApp->desktop()->height());
455 ( m_curSession->widgetStack() )->setFocus();
456 ( m_curSession->widgetStack() )->show();
457
458 // QPushButton *cornerButton = new QPushButton( this );
459 //cornerButton->setPixmap( QPixmap( (const char**)menu_xpm ) );
460 //connect( cornerButton, SIGNAL( pressed() ), this, SLOT( slotFullscreen() ) );
461 // need teh scrollbar
462 // ( m_curSession->widgetStack() )->setCornerWidget( cornerButton );
463 m_fullscreen->setText( tr("Stop full screen") );
464 }
401 465
466 m_isFullscreen = !m_isFullscreen;
402 467
403} 468}
diff --git a/noncore/apps/opie-console/mainwindow.h b/noncore/apps/opie-console/mainwindow.h
index 378870a..e63078a 100644
--- a/noncore/apps/opie-console/mainwindow.h
+++ b/noncore/apps/opie-console/mainwindow.h
@@ -36,75 +36,78 @@ public:
36 * A session contains a QWidget*, 36 * A session contains a QWidget*,
37 * an IOLayer* and some infos for us 37 * an IOLayer* and some infos for us
38 */ 38 */
39 Session* currentSession(); 39 Session* currentSession();
40 40
41 /** 41 /**
42 * the session list 42 * the session list
43 */ 43 */
44 QList<Session> sessions(); 44 QList<Session> sessions();
45 45
46 /** 46 /**
47 * 47 *
48 */ 48 */
49 ProfileManager* manager(); 49 ProfileManager* manager();
50 TabWidget* tabWidget(); 50 TabWidget* tabWidget();
51 51
52private slots: 52private slots:
53 void slotNew(); 53 void slotNew();
54 void slotConnect(); 54 void slotConnect();
55 void slotDisconnect(); 55 void slotDisconnect();
56 void slotTerminate(); 56 void slotTerminate();
57 void slotConfigure(); 57 void slotConfigure();
58 void slotClose(); 58 void slotClose();
59 void slotProfile(int); 59 void slotProfile(int);
60 void slotTransfer(); 60 void slotTransfer();
61 void slotOpenKeb(bool); 61 void slotOpenKeb(bool);
62 void slotRecordScript(); 62 void slotRecordScript();
63 void slotSaveScript(); 63 void slotSaveScript();
64 void slotRunScript(); 64 void slotRunScript();
65 void setOn(); 65 void slotFullscreen();
66 void slotSessionChanged( Session* ); 66 void slotSessionChanged( Session* );
67private: 67private:
68 void initUI(); 68 void initUI();
69 void populateProfiles(); 69 void populateProfiles();
70 void create( const Profile& ); 70 void create( const Profile& );
71 /** 71 /**
72 * the current session 72 * the current session
73 */ 73 */
74 Session* m_curSession; 74 Session* m_curSession;
75 75
76 /** 76 /**
77 * the session list 77 * the session list
78 */ 78 */
79 QList<Session> m_sessions; 79 QList<Session> m_sessions;
80 80
81 /** 81 /**
82 * the metafactory 82 * the metafactory
83 */ 83 */
84 MetaFactory* m_factory; 84 MetaFactory* m_factory;
85 ProfileManager* m_manager; 85 ProfileManager* m_manager;
86 86
87 TabWidget* m_consoleWindow; 87 TabWidget* m_consoleWindow;
88 QToolBar* m_tool; 88 QToolBar* m_tool;
89 QToolBar* m_icons; 89 QToolBar* m_icons;
90 QToolBar* m_keyBar; 90 QToolBar* m_keyBar;
91 QMenuBar* m_bar; 91 QMenuBar* m_bar;
92 QPopupMenu* m_console; 92 QPopupMenu* m_console;
93 QPopupMenu* m_settings; 93 QPopupMenu* m_settings;
94 QPopupMenu* m_sessionsPop; 94 QPopupMenu* m_sessionsPop;
95 QPopupMenu* m_scripts; 95 QPopupMenu* m_scripts;
96 QAction* m_connect; 96 QAction* m_connect;
97 QAction* m_disconnect; 97 QAction* m_disconnect;
98 QAction* m_terminate; 98 QAction* m_terminate;
99 QAction* m_transfer; 99 QAction* m_transfer;
100 QAction* m_setProfiles; 100 QAction* m_setProfiles;
101 QAction* m_openKeys; 101 QAction* m_openKeys;
102 QAction* m_recordScript; 102 QAction* m_recordScript;
103 QAction* m_saveScript; 103 QAction* m_saveScript;
104 QAction* m_runScript; 104 QAction* m_runScript;
105 QAction* m_fullscreen;
106 QAction* m_closewindow;
105 107
106 FunctionKeyboard *m_kb; 108 FunctionKeyboard *m_kb;
109 bool m_isFullscreen;
107}; 110};
108 111
109 112
110#endif 113#endif