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 }