File indexing completed on 2024-04-21 05:51:30
0001 /* 0002 * SPDX-FileCopyrightText: 2002 Waldo Bastian <bastian@kde.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-only 0005 **/ 0006 0007 // Own 0008 #include "ZModemDialog.h" 0009 0010 // KDE 0011 #include <KTextEdit> 0012 #include <QDialogButtonBox> 0013 #include <QPushButton> 0014 #include <QVBoxLayout> 0015 0016 using Konsole::ZModemDialog; 0017 0018 ZModemDialog::ZModemDialog(QWidget *aParent, bool modal, const QString &caption) 0019 : QDialog(aParent) 0020 , _textEdit(nullptr) 0021 , mButtonBox(nullptr) 0022 { 0023 setObjectName(QStringLiteral("zmodem_progress")); 0024 setModal(modal); 0025 setWindowTitle(caption); 0026 0027 mButtonBox = new QDialogButtonBox(QDialogButtonBox::Cancel | QDialogButtonBox::Close); 0028 auto mainWidget = new QWidget(this); 0029 auto mainLayout = new QVBoxLayout; 0030 setLayout(mainLayout); 0031 mainLayout->addWidget(mainWidget); 0032 mainLayout->addWidget(mButtonBox); 0033 0034 // Use Cancel here to stop the transfer 0035 mButtonBox->button(QDialogButtonBox::Cancel)->setEnabled(true); 0036 mButtonBox->button(QDialogButtonBox::Close)->setEnabled(false); 0037 0038 connect(mButtonBox, &QDialogButtonBox::rejected, this, &Konsole::ZModemDialog::slotCancel); 0039 connect(mButtonBox, &QDialogButtonBox::accepted, this, &Konsole::ZModemDialog::slotClose); 0040 0041 _textEdit = new KTextEdit(this); 0042 _textEdit->setMinimumSize(400, 100); 0043 _textEdit->setReadOnly(true); 0044 mainLayout->addWidget(_textEdit); 0045 0046 addText(QStringLiteral("Note: pressing Cancel will almost certainly cause the terminal to be unusable.")); 0047 addText(QStringLiteral("-----------------")); 0048 } 0049 0050 void ZModemDialog::addText(const QString &text) 0051 { 0052 _textEdit->append(text); 0053 } 0054 0055 void ZModemDialog::addProgressText(const QString &text) 0056 { 0057 _textEdit->insertPlainText(text); 0058 } 0059 0060 void ZModemDialog::slotCancel() 0061 { 0062 Q_EMIT zmodemCancel(); 0063 slotClose(); 0064 } 0065 0066 void ZModemDialog::transferDone() 0067 { 0068 mButtonBox->button(QDialogButtonBox::Cancel)->setEnabled(false); 0069 mButtonBox->button(QDialogButtonBox::Close)->setEnabled(true); 0070 } 0071 0072 void ZModemDialog::slotClose() 0073 { 0074 delayedDestruct(); 0075 accept(); 0076 } 0077 0078 void ZModemDialog::delayedDestruct() 0079 { 0080 if (isVisible()) { 0081 hide(); 0082 } 0083 0084 deleteLater(); 0085 } 0086 0087 #include "moc_ZModemDialog.cpp"