File indexing completed on 2024-05-19 11:30:14
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2013 Utku Aydın <utkuaydin34@gmail.com> 0004 // 0005 0006 #include "CloudRoutesDialog.h" 0007 #include "ui_CloudRoutesDialog.h" 0008 0009 #include "CloudRouteModel.h" 0010 #include "RouteItemDelegate.h" 0011 0012 #include <QTimer> 0013 0014 namespace Marble { 0015 0016 class Q_DECL_HIDDEN CloudRoutesDialog::Private : public Ui::CloudRoutesDialog { 0017 public: 0018 explicit Private( CloudRouteModel *model ); 0019 CloudRouteModel *m_model; 0020 }; 0021 0022 CloudRoutesDialog::Private::Private( CloudRouteModel *model ) : Ui::CloudRoutesDialog(), 0023 m_model( model ) 0024 { 0025 } 0026 0027 CloudRoutesDialog::CloudRoutesDialog( CloudRouteModel *model, QWidget *parent ) : QDialog( parent ), 0028 d( new Private( model ) ) 0029 { 0030 d->setupUi( this ); 0031 0032 RouteItemDelegate *delegate = new RouteItemDelegate( d->listView, d->m_model ); 0033 connect( delegate, SIGNAL(downloadButtonClicked(QString)), this, SIGNAL(downloadButtonClicked(QString)) ); 0034 connect( delegate, SIGNAL(openButtonClicked(QString)), this, SIGNAL(openButtonClicked(QString)) ); 0035 connect( delegate, SIGNAL(deleteButtonClicked(QString)), this, SIGNAL(deleteButtonClicked(QString)) ); 0036 connect( delegate, SIGNAL(removeFromCacheButtonClicked(QString)), this, SIGNAL(removeFromCacheButtonClicked(QString)) ); 0037 connect( delegate, SIGNAL(uploadToCloudButtonClicked(QString)), this, SIGNAL(uploadToCloudButtonClicked(QString)) ); 0038 connect( d->m_model, SIGNAL(modelReset()), this, SLOT(updateNoRouteLabel()) ); 0039 0040 d->progressBar->setHidden( true ); 0041 d->labelNoRoute->setHidden( true ); 0042 0043 d->listView->setItemDelegate( delegate ); 0044 d->listView->setModel( d->m_model ); 0045 } 0046 0047 CloudRoutesDialog::~CloudRoutesDialog() 0048 { 0049 delete d; 0050 } 0051 0052 CloudRouteModel* CloudRoutesDialog::model() 0053 { 0054 return d->m_model; 0055 } 0056 0057 void CloudRoutesDialog::updateListDownloadProgressbar( qint64 received, qint64 total ) 0058 { 0059 d->progressBar->setHidden( false ); 0060 d->progressBar->setValue( qRound( 100.0 * qreal( received ) / total ) ); 0061 if( received == total ) { 0062 QTimer::singleShot( 1000, d->progressBar, SLOT(hide()) ); 0063 } 0064 } 0065 0066 void CloudRoutesDialog::updateNoRouteLabel() { 0067 bool const isEmpty = d->listView->model()->rowCount() == 0; 0068 d->listView->setHidden( isEmpty ); 0069 d->labelNoRoute->setVisible( isEmpty ); 0070 } 0071 0072 } 0073 0074 #include "moc_CloudRoutesDialog.cpp"