Warning, file /education/kstars/kstars/ekos/capture/exposurecalculator/fileutilitycameradatadialog.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2023 Joseph McGee <joseph.mcgee@sbcglobal.net> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include <QLoggingCategory> 0008 #include <QDir> 0009 #include <QFile> 0010 #include "fileutilitycameradata.h" 0011 #include "./ui_fileutilitycameradatadialog.h" 0012 #include <ekos_capture_debug.h> 0013 0014 FileUtilityCameraDataDialog::FileUtilityCameraDataDialog( 0015 QWidget *parent, 0016 const QString &aPreferredCameraId) : 0017 QDialog(parent), 0018 aPreferredCameraId(aPreferredCameraId), 0019 ui(new Ui::FileUtilityCameraDataDialog) 0020 { 0021 ui->setupUi(this); 0022 0023 OptimalExposure::FileUtilityCameraData::downloadRepositoryCameraDataFileList(this); 0024 0025 connect(ui->downloadB, &QPushButton::clicked, this, &FileUtilityCameraDataDialog::startCameraDownload); 0026 0027 // ui->buttonBox-> 0028 // ui->buttonBox->Cancel 0029 0030 ui->availableRemoteCameraList->clear(); 0031 ui->availableRemoteCameraList->setSelectionMode(QAbstractItemView::ExtendedSelection); 0032 0033 } 0034 0035 FileUtilityCameraDataDialog::~FileUtilityCameraDataDialog() 0036 { 0037 delete ui; 0038 } 0039 0040 void FileUtilityCameraDataDialog::refreshCameraList() 0041 { 0042 // ui needs a list of remote files that can be selected 0043 // This setup depends upon the downloadRepositoryCameraDataFileList 0044 0045 ui->availableRemoteCameraList->clear(); 0046 ui->availableRemoteCameraList->setSelectionMode(QAbstractItemView::ExtendedSelection); 0047 0048 // This probably needs to move to a method called when downloadRepositoryCameraDataFileList has completed 0049 QVector<QString> availableCameraDataFiles = getAvailableCameraDataFiles(); 0050 foreach(QString availableCameraFile, availableCameraDataFiles) 0051 { 0052 // Make the camera list user friendly... to match the camera device id 0053 QString availableCameraId = OptimalExposure::FileUtilityCameraData::cameraDataFileNameToCameraId(availableCameraFile); 0054 0055 ui->availableRemoteCameraList->addItem(availableCameraId); 0056 } 0057 0058 // Pre-select the value for aPreferredCameraId, (which should be the active camera device id) 0059 QList<QListWidgetItem *> items = ui->availableRemoteCameraList->findItems(aPreferredCameraId, Qt::MatchExactly); 0060 if (items.size() > 0) 0061 { 0062 items[0]->setSelected(true); 0063 } 0064 } 0065 0066 0067 void FileUtilityCameraDataDialog::startCameraDownload() 0068 { 0069 0070 0071 QList<QListWidgetItem *> selectedItems = ui->availableRemoteCameraList->selectedItems(); 0072 if (selectedItems.size() > 0) 0073 { 0074 this->setDownloadFileCounter(selectedItems.size()); 0075 // qCInfo(KSTARS_EKOS_CAPTURE) << "Selected Cameras " << selectedItems.size(); 0076 foreach(QListWidgetItem *aSelectedCameraItem, selectedItems) 0077 { 0078 QString aSelectedCameraId = aSelectedCameraItem->text(); 0079 // qCInfo(KSTARS_EKOS_CAPTURE) << "attempt Download of " << aSelectedCameraId; 0080 OptimalExposure::FileUtilityCameraData::downloadCameraDataFile(aSelectedCameraId, this); 0081 } 0082 } 0083 } 0084 0085 int FileUtilityCameraDataDialog::getDownloadFileCounter() const 0086 { 0087 return downloadFileCounter; 0088 } 0089 0090 void FileUtilityCameraDataDialog::setDownloadFileCounter(int newDownloadFileCounter) 0091 { 0092 downloadFileCounter = newDownloadFileCounter; 0093 ui->counter->text() = QString::number(downloadFileCounter); 0094 qCInfo(KSTARS_EKOS_CAPTURE) << "Camera Data download file counter set " 0095 << QString::number(downloadFileCounter); 0096 } 0097 0098 void FileUtilityCameraDataDialog::decrementDownloadFileCounter() 0099 { 0100 downloadFileCounter--; 0101 ui->counter->text() = QString::number(downloadFileCounter); 0102 qCInfo(KSTARS_EKOS_CAPTURE) << "Camera Data download file counter decremented " 0103 << QString::number(downloadFileCounter); 0104 if(downloadFileCounter == 0) 0105 { 0106 // downloads should have completed, dialog can close 0107 // FileUtilityCameraDataDialog::delay(1); 0108 qCInfo(KSTARS_EKOS_CAPTURE) << "Camera Data download file counter reach 0. Forcing dialog to close."; 0109 QMetaObject::invokeMethod(this, "close", Qt::QueuedConnection); 0110 } 0111 } 0112 0113 void FileUtilityCameraDataDialog::setAvailableCameraDataFiles(QVector<QString> newAvailableCameraDataFiles) 0114 { 0115 availableCameraDataFiles = newAvailableCameraDataFiles; 0116 } 0117 0118 0119 QVector<QString> FileUtilityCameraDataDialog::getAvailableCameraDataFiles() 0120 { 0121 return availableCameraDataFiles; 0122 } 0123 0124 QNetworkRequest *FileUtilityCameraDataDialog::getRequest() const 0125 { 0126 return request; 0127 } 0128 0129 void FileUtilityCameraDataDialog::setRequest(QNetworkRequest *newRequest) 0130 { 0131 request = newRequest; 0132 } 0133 0134 QNetworkReply *FileUtilityCameraDataDialog::getReply() const 0135 { 0136 return reply; 0137 } 0138 0139 void FileUtilityCameraDataDialog::setReply(QNetworkReply *newResponse) 0140 { 0141 reply = newResponse; 0142 } 0143 0144 QNetworkAccessManager *FileUtilityCameraDataDialog::getANetworkAccessManager() const 0145 { 0146 return aNetworkAccessManager; 0147 } 0148 0149 void FileUtilityCameraDataDialog::setANetworkAccessManager(QNetworkAccessManager *newANetworkAccessManager) 0150 { 0151 aNetworkAccessManager = newANetworkAccessManager; 0152 } 0153