summaryrefslogtreecommitdiff
authorjosef <josef>2002-10-15 22:36:10 (UTC)
committer josef <josef>2002-10-15 22:36:10 (UTC)
commit65ef0e86a879332cbf8b1575886d3c36c7d2d9bd (patch) (unidiff)
treeb0b3f192c52dc15d639977e1d592412531d826eb
parent626b45872e1774b694727792f7306a39277e413e (diff)
downloadopie-65ef0e86a879332cbf8b1575886d3c36c7d2d9bd.zip
opie-65ef0e86a879332cbf8b1575886d3c36c7d2d9bd.tar.gz
opie-65ef0e86a879332cbf8b1575886d3c36c7d2d9bd.tar.bz2
- 3 small fixes, please review:
- disable all relevant menu items when last session has been closed (but this might not be the correct bugfix, so consider it temporary) - don't set menu status to connected when connection fails - modem sessions: when user cancels connection, close serial connection first again, so we can reconnect (re-dial) later without problems
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/io_modem.cpp6
-rw-r--r--noncore/apps/opie-console/io_serial.cpp1
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp10
3 files changed, 13 insertions, 4 deletions
diff --git a/noncore/apps/opie-console/io_modem.cpp b/noncore/apps/opie-console/io_modem.cpp
index 22a3673..41f553b 100644
--- a/noncore/apps/opie-console/io_modem.cpp
+++ b/noncore/apps/opie-console/io_modem.cpp
@@ -10,49 +10,53 @@ IOModem::IOModem( const Profile &profile )
10 10
11 11
12IOModem::~IOModem() { 12IOModem::~IOModem() {
13 13
14} 14}
15 15
16 16
17void IOModem::close() { 17void IOModem::close() {
18 // maybe do a hangup here just in case...? 18 // maybe do a hangup here just in case...?
19 19
20 IOSerial::close(); 20 IOSerial::close();
21} 21}
22 22
23bool IOModem::open() { 23bool IOModem::open() {
24 bool ret = IOSerial::open(); 24 bool ret = IOSerial::open();
25 if(!ret) return false; 25 if(!ret) return false;
26 26
27 Dialer d(m_profile); 27 Dialer d(m_profile);
28 28
29 int result = d.exec(); 29 int result = d.exec();
30 if(result == QDialog::Accepted) 30 if(result == QDialog::Accepted)
31 { 31 {
32 return true; 32 return true;
33 } 33 }
34 else return false; 34 else
35 {
36 close();
37 return false;
38 }
35} 39}
36 40
37void IOModem::reload( const Profile &config ) { 41void IOModem::reload( const Profile &config ) {
38 42
39 m_device = config.readEntry("Device", MODEM_DEFAULT_DEVICE); 43 m_device = config.readEntry("Device", MODEM_DEFAULT_DEVICE);
40 m_baud = config.readNumEntry("Baud", MODEM_DEFAULT_BAUD); 44 m_baud = config.readNumEntry("Baud", MODEM_DEFAULT_BAUD);
41 m_parity = config.readNumEntry("Parity", MODEM_DEFAULT_PARITY); 45 m_parity = config.readNumEntry("Parity", MODEM_DEFAULT_PARITY);
42 m_dbits = config.readNumEntry("DataBits", MODEM_DEFAULT_DBITS); 46 m_dbits = config.readNumEntry("DataBits", MODEM_DEFAULT_DBITS);
43 m_sbits = config.readNumEntry("StopBits", MODEM_DEFAULT_SBITS); 47 m_sbits = config.readNumEntry("StopBits", MODEM_DEFAULT_SBITS);
44 m_flow = config.readNumEntry("Flow", MODEM_DEFAULT_FLOW); 48 m_flow = config.readNumEntry("Flow", MODEM_DEFAULT_FLOW);
45 49
46 m_initString = config.readEntry("InitString", MODEM_DEFAULT_INIT_STRING ); 50 m_initString = config.readEntry("InitString", MODEM_DEFAULT_INIT_STRING );
47 m_resetString = config.readEntry("ResetString", MODEM_DEFAULT_RESET_STRING ); 51 m_resetString = config.readEntry("ResetString", MODEM_DEFAULT_RESET_STRING );
48 m_dialPref1 = config.readEntry("DialPrefix1", MODEM_DEFAULT_DIAL_PREFIX1 ); 52 m_dialPref1 = config.readEntry("DialPrefix1", MODEM_DEFAULT_DIAL_PREFIX1 );
49 m_dialSuf1 = config.readEntry("DialSuffix1", MODEM_DEFAULT_DIAL_SUFFIX1 ); 53 m_dialSuf1 = config.readEntry("DialSuffix1", MODEM_DEFAULT_DIAL_SUFFIX1 );
50 m_dialPref2 = config.readEntry("DialPrefix2", MODEM_DEFAULT_DIAL_PREFIX1 ); 54 m_dialPref2 = config.readEntry("DialPrefix2", MODEM_DEFAULT_DIAL_PREFIX1 );
51 m_dialSuf2 = config.readEntry("DialSuffix2", MODEM_DEFAULT_DIAL_SUFFIX1 ); 55 m_dialSuf2 = config.readEntry("DialSuffix2", MODEM_DEFAULT_DIAL_SUFFIX1 );
52 m_dialPref3 = config.readEntry("DialPrefix3", MODEM_DEFAULT_DIAL_PREFIX1 ); 56 m_dialPref3 = config.readEntry("DialPrefix3", MODEM_DEFAULT_DIAL_PREFIX1 );
53 m_dialSuf3 = config.readEntry("DialSuffix3", MODEM_DEFAULT_DIAL_SUFFIX1 ); 57 m_dialSuf3 = config.readEntry("DialSuffix3", MODEM_DEFAULT_DIAL_SUFFIX1 );
54 m_connect = config.readEntry("DefaultConnect" MODEM_DEFAULT_CONNECT_STRING ); 58 m_connect = config.readEntry("DefaultConnect" MODEM_DEFAULT_CONNECT_STRING );
55 m_hangup = config.readEntry("HangupString", MODEM_DEFAULT_HANGUP_STRING ); 59 m_hangup = config.readEntry("HangupString", MODEM_DEFAULT_HANGUP_STRING );
56 m_cancel = config.readEntry("CancelString", MODEM_DEFAULT_CANCEL_STRING ); 60 m_cancel = config.readEntry("CancelString", MODEM_DEFAULT_CANCEL_STRING );
57 m_dialTime = config.readNumEntry("DialTime", MODEM_DEFAULT_DIAL_TIME ); 61 m_dialTime = config.readNumEntry("DialTime", MODEM_DEFAULT_DIAL_TIME );
58 m_delayRedial = config.readNumEntry("DelayRedial", MODEM_DEFAULT_DELAY_REDIAL ); 62 m_delayRedial = config.readNumEntry("DelayRedial", MODEM_DEFAULT_DELAY_REDIAL );
diff --git a/noncore/apps/opie-console/io_serial.cpp b/noncore/apps/opie-console/io_serial.cpp
index b89a53b..cc63c58 100644
--- a/noncore/apps/opie-console/io_serial.cpp
+++ b/noncore/apps/opie-console/io_serial.cpp
@@ -25,48 +25,49 @@ void IOSerial::send(const QByteArray &data) {
25 } else { 25 } else {
26 emit error(Refuse, tr("Not connected")); 26 emit error(Refuse, tr("Not connected"));
27 } 27 }
28} 28}
29 29
30void IOSerial::close() { 30void IOSerial::close() {
31 if (m_fd) { 31 if (m_fd) {
32 delete m_read; 32 delete m_read;
33 delete m_error; 33 delete m_error;
34 ::close(m_fd); 34 ::close(m_fd);
35 m_fd = 0; 35 m_fd = 0;
36 m_connected = false; 36 m_connected = false;
37 } else { 37 } else {
38 m_connected = false; 38 m_connected = false;
39 emit error(Refuse, tr("Not connected")); 39 emit error(Refuse, tr("Not connected"));
40 } 40 }
41} 41}
42 42
43bool IOSerial::open() { 43bool IOSerial::open() {
44 if (!m_fd) { 44 if (!m_fd) {
45 struct termios tty; 45 struct termios tty;
46 m_fd = ::open(m_device, O_RDWR | O_NOCTTY | O_NONBLOCK); 46 m_fd = ::open(m_device, O_RDWR | O_NOCTTY | O_NONBLOCK);
47 if (m_fd < 0) { 47 if (m_fd < 0) {
48 emit error(CouldNotOpen, strerror(errno)); 48 emit error(CouldNotOpen, strerror(errno));
49 m_fd = 0;
49 return FALSE; 50 return FALSE;
50 } 51 }
51 tcgetattr(m_fd, &tty); 52 tcgetattr(m_fd, &tty);
52 53
53 /* Baud rate */ 54 /* Baud rate */
54 int speed = baud(m_baud); 55 int speed = baud(m_baud);
55 if (speed == -1) { 56 if (speed == -1) {
56 emit error(Refuse, tr("Invalid baud rate")); 57 emit error(Refuse, tr("Invalid baud rate"));
57 } 58 }
58 cfsetospeed(&tty, speed); 59 cfsetospeed(&tty, speed);
59 cfsetispeed(&tty, speed); 60 cfsetispeed(&tty, speed);
60 61
61 /* Take care of Space / Mark parity */ 62 /* Take care of Space / Mark parity */
62 if (m_dbits == 7 && (m_parity == ParitySpace || m_parity == ParityMark)) { 63 if (m_dbits == 7 && (m_parity == ParitySpace || m_parity == ParityMark)) {
63 m_dbits = 8; 64 m_dbits = 8;
64 } 65 }
65 66
66 /* Data bits */ 67 /* Data bits */
67 switch (m_dbits) { 68 switch (m_dbits) {
68 case 5: tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS5; break; 69 case 5: tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS5; break;
69 case 6: tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS6; break; 70 case 6: tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS6; break;
70 case 7: tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS7; break; 71 case 7: tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS7; break;
71 case 8: tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8; break; 72 case 8: tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8; break;
72 default: break; 73 default: break;
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index 4326609..9ccefa0 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -297,95 +297,99 @@ void MainWindow::slotSaveScript() {
297} 297}
298 298
299void MainWindow::slotRunScript() { 299void MainWindow::slotRunScript() {
300/* 300/*
301 if (currentSession()) { 301 if (currentSession()) {
302 MimeTypes types; 302 MimeTypes types;
303 QStringList script; 303 QStringList script;
304 script << "text/plain"; 304 script << "text/plain";
305 types.insert("Script", script); 305 types.insert("Script", script);
306 QString filename = OFileDialog::getOpenFileName(2, "/", QString::null, types); 306 QString filename = OFileDialog::getOpenFileName(2, "/", QString::null, types);
307 if (!filename.isEmpty()) { 307 if (!filename.isEmpty()) {
308 Script script(DocLnk(filename).file()); 308 Script script(DocLnk(filename).file());
309 currentSession()->emulationLayer()->runScript(&script); 309 currentSession()->emulationLayer()->runScript(&script);
310 } 310 }
311 } 311 }
312 */ 312 */
313} 313}
314 314
315void MainWindow::slotConnect() { 315void MainWindow::slotConnect() {
316 if ( currentSession() ) { 316 if ( currentSession() ) {
317 bool ret = currentSession()->layer()->open(); 317 bool ret = currentSession()->layer()->open();
318 if(!ret) QMessageBox::warning(currentSession()->widgetStack(), 318 if(!ret) QMessageBox::warning(currentSession()->widgetStack(),
319 QObject::tr("Failed"), 319 QObject::tr("Failed"),
320 QObject::tr("Connecting failed for this session.")); 320 QObject::tr("Connecting failed for this session."));
321 m_connect->setEnabled( false ); 321 else {
322 m_disconnect->setEnabled( true ); 322 m_connect->setEnabled( false );
323 m_disconnect->setEnabled( true );
324 }
323 } 325 }
324} 326}
325 327
326void MainWindow::slotDisconnect() { 328void MainWindow::slotDisconnect() {
327 if ( currentSession() ) { 329 if ( currentSession() ) {
328 currentSession()->layer()->close(); 330 currentSession()->layer()->close();
329 m_connect->setEnabled( true ); 331 m_connect->setEnabled( true );
330 m_disconnect->setEnabled( false ); 332 m_disconnect->setEnabled( false );
331 } 333 }
332} 334}
333 335
334void MainWindow::slotTerminate() { 336void MainWindow::slotTerminate() {
335 if ( currentSession() ) 337 if ( currentSession() )
336 currentSession()->layer()->close(); 338 currentSession()->layer()->close();
337 339
338 slotClose(); 340 slotClose();
339 /* FIXME move to the next session */ 341 /* FIXME move to the next session */
340} 342}
341 343
342void MainWindow::slotConfigure() { 344void MainWindow::slotConfigure() {
343 ConfigDialog conf( manager()->all(), factory() ); 345 ConfigDialog conf( manager()->all(), factory() );
344 conf.showMaximized(); 346 conf.showMaximized();
345 347
346 int ret = conf.exec(); 348 int ret = conf.exec();
347 349
348 if ( QDialog::Accepted == ret ) { 350 if ( QDialog::Accepted == ret ) {
349 manager()->setProfiles( conf.list() ); 351 manager()->setProfiles( conf.list() );
350 manager()->save(); 352 manager()->save();
351 populateProfiles(); 353 populateProfiles();
352 } 354 }
353} 355}
354/* 356/*
355 * we will remove 357 * we will remove
356 * this window from the tabwidget 358 * this window from the tabwidget
357 * remove it from the list 359 * remove it from the list
358 * delete it 360 * delete it
359 * and set the currentSession() 361 * and set the currentSession()
360 */ 362 */
361void MainWindow::slotClose() { 363void MainWindow::slotClose() {
362 if (!currentSession() ) 364 if (!currentSession() )
363 return; 365 return;
364 366
365 Session* ses = currentSession(); 367 Session* ses = currentSession();
366 qWarning("removing! currentSession %s", currentSession()->name().latin1() ); 368 qWarning("removing! currentSession %s", currentSession()->name().latin1() );
367 tabWidget()->remove( currentSession() ); 369 /* set to NULL to be safe, if its needed slotSessionChanged resets it automatically */
370 m_curSession = NULL;
371 tabWidget()->remove( /*currentSession()*/ses );
368 /*it's autodelete */ 372 /*it's autodelete */
369 m_sessions.remove( ses ); 373 m_sessions.remove( ses );
370 qWarning("after remove!!"); 374 qWarning("after remove!!");
371 375
372 if (!currentSession() ) { 376 if (!currentSession() ) {
373 m_connect->setEnabled( false ); 377 m_connect->setEnabled( false );
374 m_disconnect->setEnabled( false ); 378 m_disconnect->setEnabled( false );
375 m_terminate->setEnabled( false ); 379 m_terminate->setEnabled( false );
376 m_transfer->setEnabled( false ); 380 m_transfer->setEnabled( false );
377 m_recordScript->setEnabled( false ); 381 m_recordScript->setEnabled( false );
378 m_saveScript->setEnabled( false ); 382 m_saveScript->setEnabled( false );
379 m_runScript->setEnabled( false ); 383 m_runScript->setEnabled( false );
380 m_fullscreen->setEnabled( false ); 384 m_fullscreen->setEnabled( false );
381 m_closewindow->setEnabled( false ); 385 m_closewindow->setEnabled( false );
382 } 386 }
383} 387}
384 388
385/* 389/*
386 * We will get the name 390 * We will get the name
387 * Then the profile 391 * Then the profile
388 * and then we will make a profile 392 * and then we will make a profile
389 */ 393 */
390void MainWindow::slotProfile( int id) { 394void MainWindow::slotProfile( int id) {
391 Profile prof = manager()->profile( m_sessionsPop->text( id) ); 395 Profile prof = manager()->profile( m_sessionsPop->text( id) );