-rw-r--r-- | noncore/apps/opie-console/default.cpp | 16 | ||||
-rw-r--r-- | noncore/apps/opie-console/default.h | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/metafactory.cpp | 23 | ||||
-rw-r--r-- | noncore/apps/opie-console/metafactory.h | 8 | ||||
-rw-r--r-- | noncore/apps/opie-console/transferdialog.cpp | 39 | ||||
-rw-r--r-- | noncore/apps/opie-console/transferdialog.h | 3 |
6 files changed, 86 insertions, 7 deletions
diff --git a/noncore/apps/opie-console/default.cpp b/noncore/apps/opie-console/default.cpp index 4853785..dd9681d 100644 --- a/noncore/apps/opie-console/default.cpp +++ b/noncore/apps/opie-console/default.cpp @@ -1,10 +1,11 @@ #include "io_serial.h" #include "io_irda.h" #include "io_bt.h" #include "filetransfer.h" +#include "filereceive.h" #include "serialconfigwidget.h" #include "irdaconfigwidget.h" #include "btconfigwidget.h" #include "modemconfigwidget.h" #include "terminalwidget.h" #include "vt102emulation.h" @@ -20,12 +21,23 @@ extern "C" { return new FileTransfer( FileTransfer::SY, lay ); } FileTransferLayer* newSXTransfer(IOLayer* lay) { return new FileTransfer(FileTransfer ::SX, lay ); } + // FILE Transfer Receive Stuff + ReceiveLayer* newSZReceive(IOLayer* lay) { + return new FileReceive( FileReceive::SZ, lay ); + } + ReceiveLayer* newSYReceive(IOLayer* lay) { + return new FileReceive( FileReceive::SY, lay ); + } + ReceiveLayer* newSXReceive(IOLayer* lay) { + return new FileReceive(FileReceive::SX, lay ); + } + // Layer stuff IOLayer* newSerialLayer( const Profile& prof) { return new IOSerial( prof ); } IOLayer* newBTLayer( const Profile& prof ) { return new IOBt( prof ); @@ -63,12 +75,16 @@ extern "C" { Default::Default( MetaFactory* fact ) { fact->addFileTransferLayer( "SZ", QObject::tr("Z-Modem"), newSZTransfer ); fact->addFileTransferLayer( "SY", QObject::tr("Y-Modem"), newSYTransfer ); fact->addFileTransferLayer( "SX", QObject::tr("X-Modem"), newSXTransfer ); + fact->addReceiveLayer( "SZ", QObject::tr("Z-Modem"), newSZReceive ); + fact->addReceiveLayer( "SY", QObject::tr("Y-Modem"), newSYReceive ); + fact->addReceiveLayer( "SX", QObject::tr("X-Modem"), newSXReceive ); + fact->addIOLayerFactory( "serial", QObject::tr("Serial"), newSerialLayer ); fact->addIOLayerFactory( "irda", QObject::tr("Infrared"), newIrDaLayer ); fact->addIOLayerFactory( "bt", QObject::tr("Bluetooth"), newBTLayer ); fact->addConnectionWidgetFactory( "serial", QObject::tr("Serial"), newSerialWidget ); fact->addConnectionWidgetFactory( "irda", QObject::tr("Infrared"), newIrDaWidget ); diff --git a/noncore/apps/opie-console/default.h b/noncore/apps/opie-console/default.h index 4d51db8..03616f3 100644 --- a/noncore/apps/opie-console/default.h +++ b/noncore/apps/opie-console/default.h @@ -7,12 +7,16 @@ class Widget; extern "C" { FileTransferLayer* newSZTransfer(IOLayer*); FileTransferLayer* newSYTransfer(IOLayer*); FileTransferLayer* newSXTransfer(IOLayer*); + ReceiveLayer* newSZReceive(IOLayer*); + ReceiveLayer* newSYReceive(IOLayer*); + ReceiveLayer* newSXReceive(IOLayer*); + IOLayer* newSerialLayer(const Profile&); IOLayer* newBTLayer(const Profile& ); IOLayer* newIrDaLayer(const Profile& ); ProfileDialogWidget* newSerialWidget(const QString&, QWidget* ); ProfileDialogWidget* newIrDaWidget (const QString&, QWidget* ); diff --git a/noncore/apps/opie-console/metafactory.cpp b/noncore/apps/opie-console/metafactory.cpp index 901f29f..09ba586 100644 --- a/noncore/apps/opie-console/metafactory.cpp +++ b/noncore/apps/opie-console/metafactory.cpp @@ -27,12 +27,18 @@ void MetaFactory::addIOLayerFactory( const QCString& name, void MetaFactory::addFileTransferLayer( const QCString& name, const QString& str, filelayer lay) { m_strings.insert(str, name ); m_fileFact.insert( str, lay ); } +void MetaFactory::addReceiveLayer( const QCString& name, + const QString& str, + receivelayer lay) { + m_strings.insert(str, name ); + m_receiveFact.insert( str, lay ); +} void MetaFactory::addEmulationLayer( const QCString& name, const QString& str, emulationLayer em) { m_strings.insert(str, name ); m_emu.insert( str, em ); } @@ -65,12 +71,20 @@ QStringList MetaFactory::fileTransferLayers()const { QMap<QString, filelayer>::ConstIterator it; for ( it = m_fileFact.begin(); it != m_fileFact.end(); ++it ) { list << it.key(); } return list; } +QStringList MetaFactory::receiveLayers()const { + QStringList list; + QMap<QString, receivelayer>::ConstIterator it; + for ( it = m_receiveFact.begin(); it != m_receiveFact.end(); ++it ) { + list << it.key(); + } + return list; +} QStringList MetaFactory::emulationLayers()const { QStringList list; QMap<QString, emulationLayer>::ConstIterator it; for ( it = m_emu.begin(); it != m_emu.end(); ++it ) { list << it.key(); } @@ -132,12 +146,21 @@ FileTransferLayer* MetaFactory::newFileTransfer(const QString& str, IOLayer* lay it = m_fileFact.find( str ); if ( it != m_fileFact.end() ) { file = (*(it.data() ) )(lay); } return file; } +ReceiveLayer* MetaFactory::newReceive(const QString& str, IOLayer* lay ) { + ReceiveLayer* file = 0l; + QMap<QString, receivelayer>::Iterator it; + it = m_receiveFact.find( str ); + if ( it != m_receiveFact.end() ) { + file = (*(it.data() ) )(lay); + } + return file; +} QCString MetaFactory::internal( const QString& str )const { return m_strings[str]; } QString MetaFactory::external( const QCString& str )const { QMap<QString, QCString>::ConstIterator it; for ( it = m_strings.begin(); it != m_strings.end(); ++it ) { diff --git a/noncore/apps/opie-console/metafactory.h b/noncore/apps/opie-console/metafactory.h index 7f0699b..d6aa5e2 100644 --- a/noncore/apps/opie-console/metafactory.h +++ b/noncore/apps/opie-console/metafactory.h @@ -10,22 +10,24 @@ #include <qmap.h> #include <qpe/config.h> #include "io_layer.h" #include "file_layer.h" +#include "receive_layer.h" #include "profile.h" #include "profiledialogwidget.h" #include "emulation_layer.h" class WidgetLayer; class MetaFactory { public: typedef ProfileDialogWidget* (*configWidget)(const QString&, QWidget* parent); typedef IOLayer* (*iolayer)(const Profile& ); typedef FileTransferLayer* (*filelayer)(IOLayer*); + typedef ReceiveLayer* (*receivelayer)(IOLayer*); typedef EmulationLayer* (*emulationLayer)(WidgetLayer* ); MetaFactory(); ~MetaFactory(); /** @@ -49,12 +51,15 @@ public: /** * adds a FileTransfer Layer */ void addFileTransferLayer( const QCString& name, const QString&, filelayer ); + void addReceiveLayer( const QCString& name, + const QString&, + receivelayer); /** * adds a Factory for Emulation to the Layer.. */ void addEmulationLayer ( const QCString& name, const QString& uiString, @@ -66,22 +71,24 @@ public: /** * Terminal Configuration widgets */ QStringList terminalWidgets()const; QStringList fileTransferLayers()const; + QStringList receiveLayers()const; QStringList emulationLayers()const; /** * the generation... */ IOLayer* newIOLayer( const QString&,const Profile& ); ProfileDialogWidget *newConnectionPlugin ( const QString&, QWidget* ); ProfileDialogWidget* newTerminalPlugin( const QString&, QWidget* ); EmulationLayer* newEmulationLayer(const QString&, WidgetLayer* ); FileTransferLayer* newFileTransfer(const QString&, IOLayer* ); + ReceiveLayer* newReceive(const QString&, IOLayer* ); /* * internal takes the maybe translated * public QString and maps it to the internal * not translatable QCString */ @@ -97,11 +104,12 @@ public: private: QMap<QString, QCString> m_strings; QMap<QString, configWidget> m_conFact; QMap<QString, configWidget> m_termFact; QMap<QString, iolayer> m_layerFact; QMap<QString, filelayer> m_fileFact; + QMap<QString, receivelayer> m_receiveFact; QMap<QString, emulationLayer> m_emu; }; #endif diff --git a/noncore/apps/opie-console/transferdialog.cpp b/noncore/apps/opie-console/transferdialog.cpp index d3b9c0a..0083cc1 100644 --- a/noncore/apps/opie-console/transferdialog.cpp +++ b/noncore/apps/opie-console/transferdialog.cpp @@ -7,23 +7,24 @@ #include <qprogressbar.h> #include <qradiobutton.h> #include <qbuttongroup.h> #include <opie/ofiledialog.h> -#include "filetransfer.h" -#include "io_serial.h" +#include "file_layer.h" +#include "receive_layer.h" #include "metafactory.h" #include "mainwindow.h" #include "transferdialog.h" TransferDialog::TransferDialog(MainWindow *parent, const char *name) : QDialog(0l, 0l, true), m_win(parent) { m_lay = 0l; + m_recvlay = 0l; QVBoxLayout *vbox, *vbox2; QHBoxLayout *hbox, *hbox2, *hbox3; QLabel *file, *mode, *progress, *status; QButtonGroup *group; QRadioButton *mode_send, *mode_receive; @@ -112,36 +113,53 @@ void TransferDialog::slotTransfer() ok->setEnabled(false); if(m_transfermode == id_send) statusbar->setText(QObject::tr("Sending...")); else statusbar->setText(QObject::tr("Receiving...")); - m_lay = m_win->factory()->newFileTransfer(protocol->currentText(), m_win->currentSession()->layer()); if(m_transfermode == id_send) { + m_lay = m_win->factory()->newFileTransfer(protocol->currentText(), m_win->currentSession()->layer()); m_lay->sendFile(filename->text()); + + connect(m_lay, SIGNAL(progress(const QString&, int, int, int, int, int)), + SLOT(slotProgress(const QString&, int, int, int, int, int))); + connect(m_lay, SIGNAL(error(int, const QString&)), SLOT(slotError(int, const QString&))); + connect(m_lay, SIGNAL(sent()), SLOT(slotSent())); } else { - } + m_recvlay = m_win->factory()->newReceive(protocol->currentText(), m_win->currentSession()->layer()); + m_recvlay->receive(); - connect(m_lay, SIGNAL(progress(const QString&, int, int, int, int, int)), SLOT(slotProgress(const QString&, int, int, int, int, int))); - connect(m_lay, SIGNAL(error(int, const QString&)), SLOT(slotError(int, const QString&))); - connect(m_lay, SIGNAL(sent()), SLOT(slotSent())); + connect(m_recvlay, SIGNAL(progress(const QString&, int, int, int, int, int)), + SLOT(slotProgress(const QString&, int, int, int, int, int))); + connect(m_recvlay, SIGNAL(error(int, const QString&)), SLOT(slotError(int, const QString&))); + connect(m_recvlay, SIGNAL(received(const QString&)), SLOT(slotReceived(const QString&))); + } } void TransferDialog::slotCancel() { ok->setEnabled(true); statusbar->setText(QObject::tr("Ready")); + if((m_lay) || (m_recvlay)) + { if(m_lay) { m_lay->cancel(); delete m_lay; m_lay = 0l; + } + if(m_recvlay) + { + m_recvlay->cancel(); + delete m_recvlay; + m_recvlay = 0l; + } QMessageBox::information(this, QObject::tr("Cancelled"), QObject::tr("The file transfer has been cancelled.")); } else { @@ -198,12 +216,19 @@ void TransferDialog::slotSent() { QMessageBox::information(this, QObject::tr("Sent"), QObject::tr("File has been sent.")); ok->setEnabled(true); statusbar->setText(QObject::tr("Ready")); } +void TransferDialog::slotReceived(const QString& file) +{ + QMessageBox::information(this, QObject::tr("Sent"), QObject::tr("File has been received as %1.").arg(file)); + ok->setEnabled(true); + statusbar->setText(QObject::tr("Ready")); +} + void TransferDialog::slotMode(int id) { if(id == id_send) { selector->setEnabled(true); filename->setEnabled(true); diff --git a/noncore/apps/opie-console/transferdialog.h b/noncore/apps/opie-console/transferdialog.h index a567161..de3a5cf 100644 --- a/noncore/apps/opie-console/transferdialog.h +++ b/noncore/apps/opie-console/transferdialog.h @@ -7,12 +7,13 @@ class QLineEdit; class QComboBox; class QProgressBar; class QLabel; class QPushButton; class MainWindow; class FileTransferLayer; +class ReceiveLayer; class TransferDialog : public QDialog { Q_OBJECT public: TransferDialog(MainWindow *parent = 0l, const char *name = 0l); @@ -22,12 +23,13 @@ class TransferDialog : public QDialog void slotFilename(); void slotTransfer(); void slotCancel(); void slotProgress(const QString&, int, int, int, int, int); void slotError(int error, const QString& message); void slotSent(); + void slotReceived(const QString& file); void slotMode(int id); private: enum Modes { id_send, @@ -38,11 +40,12 @@ class TransferDialog : public QDialog QComboBox *protocol; QProgressBar *progressbar; QLabel *statusbar; QPushButton *ok, *cancel, *selector; MainWindow* m_win; FileTransferLayer* m_lay; + ReceiveLayer *m_recvlay; int m_transfermode; }; #endif |