summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-console/transferdialog.cpp30
-rw-r--r--noncore/apps/opie-console/transferdialog.h3
2 files changed, 27 insertions, 6 deletions
diff --git a/noncore/apps/opie-console/transferdialog.cpp b/noncore/apps/opie-console/transferdialog.cpp
index 0083cc1..f9a0b87 100644
--- a/noncore/apps/opie-console/transferdialog.cpp
+++ b/noncore/apps/opie-console/transferdialog.cpp
@@ -25,12 +25,14 @@ TransferDialog::TransferDialog(MainWindow *parent, const char *name)
QVBoxLayout *vbox, *vbox2;
QHBoxLayout *hbox, *hbox2, *hbox3;
QLabel *file, *mode, *progress, *status;
QButtonGroup *group;
QRadioButton *mode_send, *mode_receive;
+ m_autocleanup = 0;
+
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);
@@ -110,12 +112,15 @@ void TransferDialog::slotTransfer()
QObject::tr("No file has been specified."));
return;
}
ok->setEnabled(false);
+ cleanup();
+ m_autocleanup = 0;
+
if(m_transfermode == id_send) statusbar->setText(QObject::tr("Sending..."));
else statusbar->setText(QObject::tr("Receiving..."));
if(m_transfermode == id_send)
{
m_lay = m_win->factory()->newFileTransfer(protocol->currentText(), m_win->currentSession()->layer());
@@ -135,18 +140,13 @@ void TransferDialog::slotTransfer()
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))
+void TransferDialog::cleanup()
{
if(m_lay)
{
m_lay->cancel();
delete m_lay;
m_lay = 0l;
@@ -154,16 +154,30 @@ void TransferDialog::slotCancel()
if(m_recvlay)
{
m_recvlay->cancel();
delete m_recvlay;
m_recvlay = 0l;
}
+}
+
+void TransferDialog::slotCancel()
+{
+ ok->setEnabled(true);
+ statusbar->setText(QObject::tr("Ready"));
+
+ if((m_lay) || (m_recvlay))
+ {
+ cleanup();
+ if(m_autocleanup) close();
+ else
+ {
QMessageBox::information(this,
QObject::tr("Cancelled"),
QObject::tr("The file transfer has been cancelled."));
}
+ }
else
{
close();
}
}
@@ -207,26 +221,30 @@ void TransferDialog::slotError(int error, const QString& message)
default:
QMessageBox::critical(this,
QObject::tr("Error"),
QObject::tr("Unknown error occured."));
break;
}
+
+ m_autocleanup = 1;
}
void TransferDialog::slotSent()
{
QMessageBox::information(this, QObject::tr("Sent"), QObject::tr("File has been sent."));
ok->setEnabled(true);
statusbar->setText(QObject::tr("Ready"));
+ m_autocleanup = 1;
}
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"));
+ m_autocleanup = 1;
}
void TransferDialog::slotMode(int id)
{
if(id == id_send)
{
diff --git a/noncore/apps/opie-console/transferdialog.h b/noncore/apps/opie-console/transferdialog.h
index de3a5cf..1b27f16 100644
--- a/noncore/apps/opie-console/transferdialog.h
+++ b/noncore/apps/opie-console/transferdialog.h
@@ -33,19 +33,22 @@ class TransferDialog : public QDialog
enum Modes
{
id_send,
id_receive
};
+ 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;
};
#endif