author | josef <josef> | 2002-10-26 11:38:42 (UTC) |
---|---|---|
committer | josef <josef> | 2002-10-26 11:38:42 (UTC) |
commit | 2dc92ada34785bbfff8ca1202e4d53eb0606c362 (patch) (side-by-side diff) | |
tree | c92a92b5cbb1d80962821212b9157260a9faa0f6 /noncore | |
parent | 65ada01d36dc25f053a09222e8abdb21f2fc3a2a (diff) | |
download | opie-2dc92ada34785bbfff8ca1202e4d53eb0606c362.zip opie-2dc92ada34785bbfff8ca1202e4d53eb0606c362.tar.gz opie-2dc92ada34785bbfff8ca1202e4d53eb0606c362.tar.bz2 |
- nonmodal file transfer (doesn't work yet!)
-rw-r--r-- | noncore/apps/opie-console/mainwindow.cpp | 24 | ||||
-rw-r--r-- | noncore/apps/opie-console/session.cpp | 10 | ||||
-rw-r--r-- | noncore/apps/opie-console/session.h | 5 | ||||
-rw-r--r-- | noncore/apps/opie-console/transferdialog.cpp | 15 | ||||
-rw-r--r-- | noncore/apps/opie-console/transferdialog.h | 2 |
5 files changed, 46 insertions, 10 deletions
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp index c44b359..5f6dc12 100644 --- a/noncore/apps/opie-console/mainwindow.cpp +++ b/noncore/apps/opie-console/mainwindow.cpp @@ -525,24 +525,27 @@ void MainWindow::slotClose() { } /* * We will get the name * Then the profile * and then we will make a profile */ void MainWindow::slotProfile( int id) { Profile prof = manager()->profile( m_sessionsPop->text( id) ); create( prof ); } void MainWindow::create( const Profile& prof ) { + if(m_curSession) + if(m_curSession->transferDialog()) m_curSession->transferDialog()->hide(); + Session *ses = manager()->fromProfile( prof, tabWidget() ); if((!ses) || (!ses->layer()) || (!ses->widgetStack())) { QMessageBox::warning(this, QObject::tr("Session failed"), QObject::tr("<qt>Cannot open session: Not all components were found.</qt>")); //if(ses) delete ses; return; } m_sessions.append( ses ); @@ -569,28 +572,33 @@ void MainWindow::create( const Profile& prof ) { QWidget *w = currentSession()->widget(); if(w) w->setFocus(); m_kb->load(currentSession()->profile()); } void MainWindow::slotTransfer() { if ( currentSession() ) { - TransferDialog dlg(currentSession()->widgetStack(), this); - dlg.showMaximized(); + Session *mysession = currentSession(); + TransferDialog dlg(mysession->widgetStack(), this); + mysession->setTransferDialog(&dlg); + dlg.show(); + //dlg.showMaximized(); //currentSession()->widgetStack()->add(dlg); - dlg.exec(); + //dlg.exec(); + while(dlg.isRunning()) qApp->processEvents(); + mysession->setTransferDialog(0l); } } void MainWindow::slotOpenKeb(bool state) { if (state) m_keyBar->show(); else m_keyBar->hide(); } @@ -598,51 +606,53 @@ void MainWindow::slotOpenButtons( bool state ) { if ( state ) { m_buttonBar->show(); } else { m_buttonBar->hide(); } } void MainWindow::slotSessionChanged( Session* ses ) { qWarning("changed!"); + + if(m_curSession) + if(m_curSession->transferDialog()) m_curSession->transferDialog()->hide(); + if(ses) + if(ses->transferDialog()) ses->transferDialog()->show(); + if ( ses ) { m_curSession = ses; qDebug(QString("is connected : %1").arg( m_curSession->layer()->isConnected() ) ); if ( m_curSession->layer()->isConnected() ) { m_connect->setEnabled( false ); m_disconnect->setEnabled( true ); m_recordScript->setEnabled(!m_curSession->emulationHandler()->isRecording()); m_saveScript->setEnabled(m_curSession->emulationHandler()->isRecording()); m_scripts->setItemEnabled(m_runScript_id, true); } else { m_connect->setEnabled( true ); m_disconnect->setEnabled( false ); m_recordScript->setEnabled( false ); m_saveScript->setEnabled( false ); m_scripts->setItemEnabled(m_runScript_id, false); } if ( ( m_curSession->layer() )->supports()[1] == 0 ) { m_transfer->setEnabled( false ); } else { m_transfer->setEnabled( true ); } - - - - QWidget *w = m_curSession->widget(); if(w) w->setFocus(); m_kb->load(currentSession()->profile()); } } void MainWindow::slotFullscreen() { if ( m_isFullscreen ) { diff --git a/noncore/apps/opie-console/session.cpp b/noncore/apps/opie-console/session.cpp index c166d95..4f52584 100644 --- a/noncore/apps/opie-console/session.cpp +++ b/noncore/apps/opie-console/session.cpp @@ -2,24 +2,25 @@ #include "profile.h" #include "io_layer.h" #include "file_layer.h" #include "emulation_handler.h" #include "session.h" Session::Session() { m_widget = 0l; m_layer = 0l; m_emu = 0l; + m_transfer = 0l; } Session::Session( const QString& na, QWidgetStack* widget, IOLayer* lay) : m_name( na ), m_widget( widget ), m_layer( lay ) { // m_widLay = 0l; // m_emLay = 0l; m_emu = 0l; } Session::~Session() { delete m_layer; delete m_emu; delete m_widget; @@ -95,13 +96,22 @@ void Session::setEmulationHandler( EmulationHandler* lay ) { delete m_emu; m_emu = lay; } void Session::setProfile( const Profile& prof ) { m_prof = prof; } /* void Session::setEmulationWidget( WidgetLayer* lay ) { delete m_widLay; m_widLay = lay; } */ +void Session::setTransferDialog(QWidget *d) +{ + m_transfer = d; +} + +QWidget *Session::transferDialog() +{ + return m_transfer; +} diff --git a/noncore/apps/opie-console/session.h b/noncore/apps/opie-console/session.h index f60a6c0..d69224a 100644 --- a/noncore/apps/opie-console/session.h +++ b/noncore/apps/opie-console/session.h @@ -55,23 +55,26 @@ public: /* * disconnect the dataflow * this will be done for ft */ void disconnect(); void setWidgetStack( QWidgetStack* widget ); void setEmulationHandler( EmulationHandler* lay ); void setIOLayer( IOLayer* ); void setName( const QString& ); void setProfile( const Profile& ); + void setTransferDialog(QWidget *d); + QWidget *transferDialog(); + private: QString m_name; QWidgetStack* m_widget; IOLayer* m_layer; EmulationHandler* m_emu; bool m_connected : 1; Profile m_prof; - + QWidget *m_transfer; }; #endif diff --git a/noncore/apps/opie-console/transferdialog.cpp b/noncore/apps/opie-console/transferdialog.cpp index 75c4c72..0af1911 100644 --- a/noncore/apps/opie-console/transferdialog.cpp +++ b/noncore/apps/opie-console/transferdialog.cpp @@ -9,35 +9,36 @@ #include <qbuttongroup.h> #include <opie/ofiledialog.h> #include "file_layer.h" #include "receive_layer.h" #include "metafactory.h" #include "mainwindow.h" #include "transferdialog.h" TransferDialog::TransferDialog(QWidget *parent, MainWindow *mainwindow, const char *) -: QDialog(parent, 0l, true), m_win(mainwindow) +: QDialog(parent, 0l, false), m_win(mainwindow) { 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; m_autocleanup = 0; + m_running = true; group = new QButtonGroup(QObject::tr("Transfer mode"), this); mode_send = new QRadioButton(QObject::tr("Send"), group); mode_receive = new QRadioButton(QObject::tr("Receive"), group); group->insert(mode_send, id_send); group->insert(mode_receive, id_receive); vbox2 = new QVBoxLayout(group, 2); vbox2->addSpacing(10); hbox3 = new QHBoxLayout(vbox2, 2); hbox3->add(mode_send); hbox3->add(mode_receive); mode_send->setChecked(true); @@ -158,34 +159,39 @@ void TransferDialog::cleanup() m_recvlay = 0l; } } void TransferDialog::slotCancel() { ok->setEnabled(true); statusbar->setText(QObject::tr("Ready")); if((m_lay) || (m_recvlay)) { cleanup(); - if(m_autocleanup) close(); + if(m_autocleanup) + { + m_running = false; + close(); + } else { QMessageBox::information(this, QObject::tr("Cancelled"), QObject::tr("The file transfer has been cancelled.")); } } else { + m_running = false; close(); } } void TransferDialog::slotProgress(const QString& , int progress, int , int , int, int ) { progressbar->setProgress(progress); } void TransferDialog::slotError(int error, const QString& ) { statusbar->setText(QObject::tr("Ready")); @@ -255,12 +261,17 @@ void TransferDialog::slotMode(int id) { selector->setEnabled(true); filename->setEnabled(true); } else { selector->setEnabled(false); filename->setEnabled(false); } m_transfermode = id; } +bool TransferDialog::isRunning() +{ + return m_running; +} + diff --git a/noncore/apps/opie-console/transferdialog.h b/noncore/apps/opie-console/transferdialog.h index d87be6a..23691e0 100644 --- a/noncore/apps/opie-console/transferdialog.h +++ b/noncore/apps/opie-console/transferdialog.h @@ -9,24 +9,25 @@ class QProgressBar; class QLabel; class QPushButton; class MainWindow; class FileTransferLayer; class ReceiveLayer; class TransferDialog : public QDialog { Q_OBJECT public: TransferDialog(QWidget *parent = 0l, MainWindow *mainwindow = 0l, const char *name = 0l); ~TransferDialog(); + bool isRunning(); public slots: 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: @@ -39,16 +40,17 @@ class TransferDialog : public QDialog void cleanup(); QLineEdit *filename; QComboBox *protocol; QProgressBar *progressbar; QLabel *statusbar; QPushButton *ok, *cancel, *selector; MainWindow* m_win; FileTransferLayer* m_lay; ReceiveLayer *m_recvlay; int m_transfermode; int m_autocleanup; + bool m_running; }; #endif |