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 "selectdeviceandfilespage.h" 0011 #include "../discoverwidget.h" 0012 #include "../sendfilewizard.h" 0013 0014 #include <QFileDialog> 0015 #include <QIcon> 0016 #include <QLabel> 0017 #include <QStandardPaths> 0018 #include <QUrl> 0019 #include <QVBoxLayout> 0020 0021 #include <KLocalizedString> 0022 0023 #include <BluezQt/Device> 0024 0025 SelectDeviceAndFilesPage::SelectDeviceAndFilesPage(SendFileWizard *wizard) 0026 : QWizardPage(wizard) 0027 , m_wizard(wizard) 0028 { 0029 setupUi(this); 0030 0031 DiscoverWidget *widget = new DiscoverWidget(m_wizard->manager(), this); 0032 widget->setContentsMargins(0, 0, 0, 0); 0033 discoverLayout->addWidget(widget); 0034 0035 int buttonSize = selectBtn->sizeHint().height(); 0036 selectBtn->setFixedSize(buttonSize, buttonSize); 0037 selectBtn->setIcon(QIcon::fromTheme(QStringLiteral("document-open"))); 0038 0039 connect(widget, &DiscoverWidget::deviceSelected, this, &SelectDeviceAndFilesPage::deviceSelected); 0040 connect(selectBtn, &QPushButton::clicked, this, &SelectDeviceAndFilesPage::openFileDialog); 0041 } 0042 0043 void SelectDeviceAndFilesPage::deviceSelected(BluezQt::DevicePtr device) 0044 { 0045 static_cast<SendFileWizard *>(wizard())->setDevice(device); 0046 0047 Q_EMIT completeChanged(); 0048 } 0049 0050 void SelectDeviceAndFilesPage::openFileDialog() 0051 { 0052 const QStringList &files = QFileDialog::getOpenFileNames(this, // 0053 i18n("Open fileā¦"), 0054 QStandardPaths::writableLocation(QStandardPaths::HomeLocation), 0055 QStringLiteral("*")); 0056 0057 if (files.isEmpty()) { 0058 selectLbl->setText(i18n("Select one or more files:")); 0059 } else { 0060 QStringList fileNames; 0061 for (const QString &file : files) { 0062 QFileInfo info(file); 0063 fileNames.append(info.fileName()); 0064 } 0065 selectLbl->setText(i18n("Selected files: <b>%1</b>", fileNames.join(QStringLiteral(", ")))); 0066 } 0067 0068 m_wizard->setFiles(files); 0069 0070 Q_EMIT completeChanged(); 0071 } 0072 0073 bool SelectDeviceAndFilesPage::isComplete() const 0074 { 0075 if (!m_wizard->device()) { 0076 return false; 0077 } 0078 0079 if (m_wizard->files().isEmpty()) { 0080 return false; 0081 } 0082 0083 return true; 0084 }