File indexing completed on 2024-04-28 16:43:21

0001 /*
0002  * This file is part of the KDE project
0003  *
0004  * SPDX-FileCopyrightText: 2010-2011 Alejandro Fiestas Olivares <afiestas@kde.org>
0005  * SPDX-FileCopyrightText: 2010-2011 UFO Coders <info@ufocoders.com>
0006  *
0007  * SPDX-License-Identifier: LGPL-2.0-or-later
0008  */
0009 
0010 #include "selectfilespage.h"
0011 #include "../sendfilewizard.h"
0012 
0013 #include <KDirOperator>
0014 #include <KFileItem>
0015 #include <KFileWidget>
0016 #include <KLocalizedString>
0017 
0018 #include <QStandardPaths>
0019 #include <QVBoxLayout>
0020 
0021 #include <BluezQt/Device>
0022 
0023 SelectFilesPage::SelectFilesPage(QWidget *parent)
0024     : QWizardPage(parent)
0025 {
0026     m_files = new KFileWidget(QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)), this);
0027     m_files->setMode(KFile::Files);
0028     m_files->setContentsMargins(0, 0, 0, 0);
0029     setContentsMargins(0, 0, 0, 0);
0030 
0031     connect(m_files, &KFileWidget::selectionChanged, this, &SelectFilesPage::selectionChanged);
0032 
0033     QVBoxLayout *layout = new QVBoxLayout(this);
0034     layout->addWidget(m_files);
0035     layout->setContentsMargins(0, 0, 0, 0);
0036 }
0037 
0038 void SelectFilesPage::initializePage()
0039 {
0040     SendFileWizard *w = static_cast<SendFileWizard *>(wizard());
0041 
0042     const QSize sizeHint = m_files->dialogSizeHint();
0043     if (sizeHint.isValid())
0044         w->resize(sizeHint);
0045 
0046     w->setWindowTitle(i18nc("Send files to a Bluetooth device", "Send to %1", w->device()->name()));
0047 }
0048 
0049 void SelectFilesPage::selectionChanged()
0050 {
0051     QStringList fileList;
0052     const KFileItemList itemList = m_files->dirOperator()->selectedItems();
0053 
0054     for (const KFileItem &file : itemList) {
0055         fileList << file.localPath();
0056     }
0057 
0058     static_cast<SendFileWizard *>(wizard())->setFiles(fileList);
0059     Q_EMIT completeChanged();
0060 }
0061 
0062 bool SelectFilesPage::isComplete() const
0063 {
0064     return !m_files->dirOperator()->selectedItems().isEmpty();
0065 }