File indexing completed on 2024-05-12 16:27:17
0001 /* 0002 SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "uploadfilewidget.h" 0008 #include "misc/lineeditcatchreturnkey.h" 0009 #include <KLocalizedString> 0010 #include <KUrlRequester> 0011 0012 #include <KLineEdit> 0013 #include <QFormLayout> 0014 #include <QLabel> 0015 0016 UploadFileWidget::UploadFileWidget(QWidget *parent) 0017 : QWidget(parent) 0018 , mDescription(new QLineEdit(this)) 0019 , mSelectFile(new KUrlRequester(this)) 0020 , mImagePreview(new QLabel(this)) 0021 , mFileLabel(new QLabel(i18n("File:"), this)) 0022 { 0023 auto mainLayout = new QVBoxLayout(this); 0024 mainLayout->setObjectName(QStringLiteral("mainLayout")); 0025 mainLayout->setContentsMargins({}); 0026 0027 mImagePreview->setObjectName(QStringLiteral("mImagePreview")); 0028 mainLayout->addWidget(mImagePreview, 0, Qt::AlignCenter); 0029 mImagePreview->hide(); // Hide by default 0030 0031 auto layout = new QFormLayout; 0032 layout->setObjectName(QStringLiteral("layout")); 0033 layout->setContentsMargins({}); 0034 mainLayout->addLayout(layout); 0035 0036 mDescription->setObjectName(QStringLiteral("mDescription")); 0037 mDescription->setClearButtonEnabled(true); 0038 layout->addRow(i18n("Description:"), mDescription); 0039 new LineEditCatchReturnKey(mDescription, this); 0040 0041 mSelectFile->setObjectName(QStringLiteral("mSelectFile")); 0042 mFileLabel->setObjectName(QStringLiteral("mFileLabel")); 0043 layout->addRow(mFileLabel, mSelectFile); 0044 0045 connect(mSelectFile->lineEdit(), &KLineEdit::textChanged, this, [this](const QString &str) { 0046 Q_EMIT updateOkButton(!str.trimmed().isEmpty()); 0047 }); 0048 } 0049 0050 UploadFileWidget::~UploadFileWidget() = default; 0051 0052 QString UploadFileWidget::description() const 0053 { 0054 return mDescription->text(); 0055 } 0056 0057 QUrl UploadFileWidget::fileUrl() const 0058 { 0059 return mSelectFile->url(); 0060 } 0061 0062 void UploadFileWidget::setFileUrl(const QUrl &url) 0063 { 0064 mSelectFile->setUrl(url); 0065 } 0066 0067 void UploadFileWidget::setPixmap(const QPixmap &pix) 0068 { 0069 if (!pix.isNull()) { 0070 mSelectFile->setVisible(false); 0071 mFileLabel->setVisible(false); 0072 mImagePreview->setVisible(true); 0073 mImagePreview->setPixmap(pix); 0074 } 0075 } 0076 0077 void UploadFileWidget::setAuthorizedMediaTypes(const QStringList &mediaTypes) 0078 { 0079 mSelectFile->setMimeTypeFilters(mediaTypes); 0080 } 0081 0082 #include "moc_uploadfilewidget.cpp"