-rw-r--r-- | noncore/apps/opie-console/io_serial.cpp | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/mainwindow.cpp | 10 | ||||
-rw-r--r-- | noncore/apps/opie-console/mainwindow.h | 5 | ||||
-rw-r--r-- | noncore/apps/opie-console/metafactory.h | 9 |
4 files changed, 16 insertions, 12 deletions
diff --git a/noncore/apps/opie-console/io_serial.cpp b/noncore/apps/opie-console/io_serial.cpp index 9a81de9..c9155d1 100644 --- a/noncore/apps/opie-console/io_serial.cpp +++ b/noncore/apps/opie-console/io_serial.cpp @@ -73,91 +73,95 @@ bool IOSerial::open() { tty.c_cflag |= CLOCAL | CREAD; /* Stop bits */ if (m_sbits == 2) { tty.c_cflag |= CSTOPB; } else { tty.c_cflag &= ~CSTOPB; } tty.c_cc[VMIN] = 1; tty.c_cc[VTIME] = 5; /* Flow control */ if (m_flow & FlowSW) tty.c_iflag |= IXON | IXOFF; else tty.c_iflag &= ~(IXON|IXOFF|IXANY); if (m_flow & FlowHW) tty.c_cflag |= CRTSCTS; else tty.c_cflag &= ~CRTSCTS; /* Parity */ tty.c_cflag &= ~(PARENB | PARODD); if (m_parity & ParityEven) tty.c_cflag |= PARENB; else if (m_parity & ParityOdd) tty.c_cflag |= (PARENB | PARODD); /* Set the changes */ tcsetattr(m_fd, TCSANOW, &tty); /* Notifications on read & errors */ m_read = new QSocketNotifier(m_fd, QSocketNotifier::Read, this); m_error = new QSocketNotifier(m_fd, QSocketNotifier::Exception, this); connect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived())); connect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured())); return TRUE; } else { emit error(Refuse, tr("Device is already connected")); return FALSE; } } void IOSerial::reload(const Config &config) { m_device = config.readEntry("Device", SERIAL_DEFAULT_DEVICE); m_baud = config.readNumEntry("Baud", SERIAL_DEFAULT_BAUD); + m_parity = config.readNumEntry("Parity", SERIAL_DEFAULT_PARITY); + m_dbits = config.readNumEntry("DataBits", SERIAL_DEFAULT_DBITS); + m_sbits = config.readNumEntry("StopBits", SERIAL_DEFAULT_SBITS); + m_flow = config.readNumEntry("Flow", SERIAL_DEFAULT_FLOW); } int IOSerial::getBaud(int baud) const { switch (baud) { case 300: return B300; break; case 600: return B600; break; case 1200: return B1200; break; case 2400: return B2400; break; case 4800: return B4800; break; case 9600: return B9600; break; case 19200: return B19200; break; case 38400: return B38400; break; case 57600: return B57600; break; case 115200: return B115200; break; } return -1; } void IOSerial::errorOccured() { emit error(ClosedUnexpected, strerror(errno)); close(); } void IOSerial::dataArrived() { QByteArray array; char buf[4096]; int len = read(m_fd, buf, 4096); if (len == 0) close(); if (len < 0) return; array.setRawData(buf, len); emit received(array); } QString IOSerial::identifier() const { return "serial"; } QString IOSerial::name() const { return "RS232 Serial IO Layer"; } diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp index b6b2a2e..e9b5eda 100644 --- a/noncore/apps/opie-console/mainwindow.cpp +++ b/noncore/apps/opie-console/mainwindow.cpp @@ -1,62 +1,62 @@ #include <qaction.h> #include <qmenubar.h> #include <qlabel.h> #include <qpopupmenu.h> #include <qtoolbar.h> #include "metafactory.h" #include "mainwindow.h" -MainWindow::MainWindow() -{ - qWarning("c'tor"); +MainWindow::MainWindow() { m_factory = new MetaFactory(); m_sessions.setAutoDelete( TRUE ); - m_curSession = 0l; + m_curSession = -1; initUI(); - } void MainWindow::initUI() { setToolBarsMovable( FALSE ); m_tool = new QToolBar( this ); m_tool->setHorizontalStretchable( TRUE ); m_bar = new QMenuBar( m_tool ); m_console = new QPopupMenu( this ); /* * new Action for new sessions */ QAction* a = new QAction(); a->setText( tr("New Connection") ); a->addTo( m_console ); connect(a, SIGNAL(activated() ), this, SLOT(slotNew() ) ); a = new QAction(); a->setText( tr("New from Session") ); m_connect = new QAction(); m_connect->setText( tr("Connect") ); m_connect->addTo( m_console ); connect(m_connect, SIGNAL(activated() ), this, SLOT(slotConnect() ) ); m_bar->insertItem( tr("Connection"), m_console ); } MainWindow::~MainWindow() { delete m_factory; } + MetaFactory* MainWindow::factory() { return m_factory; } + Session* MainWindow::currentSession() { return m_curSession; } + QList<Session> MainWindow::sessions() { return m_sessions; } diff --git a/noncore/apps/opie-console/mainwindow.h b/noncore/apps/opie-console/mainwindow.h index 3d1e1c8..db3a653 100644 --- a/noncore/apps/opie-console/mainwindow.h +++ b/noncore/apps/opie-console/mainwindow.h @@ -1,71 +1,74 @@ #ifndef OPIE_MAIN_WINDOW_H #define OPIE_MAIN_WINDOW_H #include <qmainwindow.h> #include <qlist.h> #include "session.h" /** * this is the MainWindow of the new opie console * it's also the dispatcher between the different * actions supported by the gui */ class QToolBar; class QMenuBar; class QAction; class MetaFactory; + class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow( ); ~MainWindow(); /** * our factory to generate IOLayer and so on * */ MetaFactory* factory(); /** * A session contains a QWidget*, * an IOLayer* and some infos for us */ Session* currentSession(); /** * the session list */ QList<Session> sessions(); - +protected slots: + void slotNew(); + void slotConnect(); private: void initUI(); /** * the current session */ Session* m_curSession; /** * the session list */ QList<Session> m_sessions; /** * the metafactory */ MetaFactory* m_factory; QToolBar* m_tool; QMenuBar* m_bar; QPopupMenu* m_console; QPopupMenu* m_settings; QPopupMenu* m_newsession; QAction* m_connect; QAction* m_disconnect; QAction* m_terminate; QAction* m_set; }; #endif diff --git a/noncore/apps/opie-console/metafactory.h b/noncore/apps/opie-console/metafactory.h index 9c0f0a1..aae9391 100644 --- a/noncore/apps/opie-console/metafactory.h +++ b/noncore/apps/opie-console/metafactory.h @@ -1,46 +1,43 @@ #ifndef OPIE_META_FACTORY_H #define OPIE_META_FACTORY_H /** - * meta factory is our factory servie + * The MetaFactory is used to keep track of all IOLayers, FileTransferLayers and ConfigWidgets + * and to instantiate these implementations on demand */ #include <qwidget.h> #include <qmap.h> #include <qpe/config.h> #include "io_layer.h" #include "file_layer.h" class MetaFactory { public: typedef QWidget* (*configWidget)(QWidget* parent); typedef IOLayer* (*iolayer)(const Config& ); typedef FileTransferLayer* (*filelayer)(IOLayer*); + MetaFactory(); ~MetaFactory(); void addConfigWidgetFactory( const QString&, configWidget ); void addIOLayerFactory(const QString&, iolayer ); void addFileTransferLayer( const QString&, filelayer ); QStringList ioLayers()const; QStringList configWidgets()const; QStringList fileTransferLayers()const; - - private: QMap<QString, configWidget> m_confFact; QMap<QString, iolayer> m_layerFact; QMap<QString, filelayer> m_fileFact; - - - }; #endif |