Date:2010-09-11 09:36:56 (13 years 6 months ago)
Author:nielsk
Commit:bfd639fd99e6e77cb58b9649a7ddb1c03068ef2d
Message:add option to skip existing tiles while downloading; based on patch by Mikhail Peselnik

Files: downloadwidget.cpp (3 diffs)
downloadwidget.h (2 diffs)

Change Details

downloadwidget.cpp
4040    m_right(new QLabel("E 0", this)),
4141    m_bottom(new QLabel("N 0", this)),
4242    m_levelSpinBox(new QSpinBox(this)),
43    m_dlProgress(new QProgressBar(this))
43    m_dlProgress(new QProgressBar(this)),
44    m_skipExisting(new QCheckBox("S&kip already downloaded tiles", this))
4445{
4546    QGridLayout *layout = new QGridLayout(this);
4647    layout->setContentsMargins(0, 0, 0, 0);
...... 
6566    m_levelSpinBox->setRange(0, 18);
6667    layout->addWidget(m_levelSpinBox, 3, 2, 1, 2);
6768
69    m_skipExisting->setChecked(false);
70    layout->addWidget(m_skipExisting, 4, 0, 1, 0);
71
6872    m_dlProgress->setFormat("%v / %m");
69    layout->addWidget(m_dlProgress, 4, 0, 1, 4);
73    layout->addWidget(m_dlProgress, 5, 0, 1, 4);
7074
7175    QPushButton *start = new QPushButton("&Start", this);
7276    connect(start, SIGNAL(clicked()), this, SLOT(startDownload()));
73    layout->addWidget(start, 5, 0, 1, 2);
77    layout->addWidget(start, 6, 0, 1, 2);
7478
7579    QPushButton *back = new QPushButton("&Back", this);
7680    connect(back, SIGNAL(clicked()), this, SIGNAL(back()));
77    layout->addWidget(back, 5, 2, 1, 2);
81    layout->addWidget(back, 6, 2, 1, 2);
7882
7983    connect(m_manager, SIGNAL(finished(QNetworkReply*)),
8084            this, SLOT(replyFinished(QNetworkReply*)));
...... 
144148                file.write(data);
145149            }
146150        }
147        if (!m_dlList.isEmpty()) {
151        while (!m_dlList.isEmpty()) {
148152            QUrl url(m_dlList.takeFirst());
149            m_manager->get(QNetworkRequest(url));
153            if (QFile::exists(QDir::homePath()+"/Maps/OSM"+url.path()) &&
154                m_skipExisting->isChecked()) {
155                int n = m_dlProgress->value();
156                m_dlProgress->setValue(n+1);
157            } else {
158                m_manager->get(QNetworkRequest(url));
159                break;
160            }
150161        }
151162        int n = m_dlProgress->value();
152163        m_dlProgress->setValue(n+1);
downloadwidget.h
2020#ifndef DOWNLOADWIDGET_H
2121#define DOWNLOADWIDGET_H
2222
23#include <QtGui/QCheckBox>
2324#include <QtGui/QLabel>
2425#include <QtGui/QProgressBar>
2526#include <QtGui/QSpinBox>
...... 
5657    QLabel *m_up, *m_left, *m_right, *m_bottom;
5758    QSpinBox *m_levelSpinBox;
5859    QProgressBar *m_dlProgress;
60    QCheckBox *m_skipExisting;
5961
6062};
6163

Archive Download the corresponding diff file

Branches:
master



interactive