--- a/src/partdownloader.cpp Thu Jan 04 19:40:52 2018 +0200 +++ b/src/partdownloader.cpp Thu Jan 04 19:44:26 2018 +0200 @@ -30,31 +30,31 @@ #include "glRenderer.h" #include "documentmanager.h" -ConfigOption (QString DownloadFilePath) -ConfigOption (bool GuessDownloadPaths = true) -ConfigOption (bool AutoCloseDownloadDialog = true) +ConfigOption(QString DownloadFilePath) +ConfigOption(bool GuessDownloadPaths = true) +ConfigOption(bool AutoCloseDownloadDialog = true) const char* g_unofficialLibraryURL = "http://ldraw.org/library/unofficial/"; -PartDownloader::PartDownloader (QWidget* parent) : - QDialog (parent), - HierarchyElement (parent), - ui (*new Ui_PartDownloader), - m_source (SourceType (0)) +PartDownloader::PartDownloader(QWidget* parent) : + QDialog(parent), + HierarchyElement(parent), + ui(*new Ui_PartDownloader), + m_source(SourceType(0)) { - ui.setupUi (this); + ui.setupUi(this); #ifdef USE_QT5 - ui.progressTable->horizontalHeader()->setSectionResizeMode (QHeaderView::Stretch); + ui.progressTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); #else - ui.progressTable->horizontalHeader()->setResizeMode (PartLabelColumn, QHeaderView::Stretch); + ui.progressTable->horizontalHeader()->setResizeMode(PartLabelColumn, QHeaderView::Stretch); #endif - m_downloadButton = new QPushButton (tr ("Download")); - ui.buttonBox->addButton (m_downloadButton, QDialogButtonBox::ActionRole); - button (Abort)->setEnabled (false); - connect (ui.source, SIGNAL (currentIndexChanged (int)), this, SLOT (sourceChanged (int))); - connect (ui.buttonBox, SIGNAL (clicked (QAbstractButton*)), this, SLOT (buttonClicked (QAbstractButton*))); + m_downloadButton = new QPushButton(tr("Download")); + ui.buttonBox->addButton(m_downloadButton, QDialogButtonBox::ActionRole); + button(Abort)->setEnabled(false); + connect(ui.source, SIGNAL(currentIndexChanged(int)), this, SLOT(sourceChanged(int))); + connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*))); } PartDownloader::~PartDownloader() @@ -66,15 +66,15 @@ { QString path = downloadPath(); - if (path.isEmpty() or not QDir (path).exists()) + if (path.isEmpty() or not QDir(path).exists()) { QMessageBox::information(this, "Notice", "Please input a path for files to download."); - path = QFileDialog::getExistingDirectory (this, "Path for downloaded files:"); + path = QFileDialog::getExistingDirectory(this, "Path for downloaded files:"); if (path.isEmpty()) reject(); else - config.setDownloadFilePath (path); + config.setDownloadFilePath(path); } } @@ -82,12 +82,12 @@ { QString destination; - switch (sourceType()) + switch(sourceType()) { case PartsTracker: destination = ui.filename->text(); - modifyDestination (destination); - ui.filename->setText (destination); + modifyDestination(destination); + ui.filename->setText(destination); return g_unofficialLibraryURL + destination; case CustomURL: @@ -98,7 +98,7 @@ return ""; } -void PartDownloader::modifyDestination (QString& dest) const +void PartDownloader::modifyDestination(QString& dest) const { dest = dest.simplified(); @@ -107,29 +107,29 @@ return; // Ensure .dat extension - if (dest.right (4) != ".dat") + if (dest.right(4) != ".dat") { // Remove the existing extension, if any. It may be we're here over a // typo in the .dat extension. - const int dotpos = dest.lastIndexOf ("."); + const int dotpos = dest.lastIndexOf("."); - if ((dotpos != -1) and (dotpos >= dest.length() - 4)) - dest.chop (dest.length() - dotpos); + if ((dotpos != -1) and(dotpos >= dest.length() - 4)) + dest.chop(dest.length() - dotpos); dest += ".dat"; } // If the part starts with s\ or s/, then use parts/s/. Same goes with // 48\ and p/48/. - if (isOneOf (dest.left (2), "s\\", "s/")) + if (isOneOf(dest.left(2), "s\\", "s/")) { - dest.remove (0, 2); - dest.prepend ("parts/s/"); + dest.remove(0, 2); + dest.prepend("parts/s/"); } - else if (isOneOf (dest.left (3), "48\\", "48/")) + else if (isOneOf(dest.left(3), "48\\", "48/")) { - dest.remove (0, 3); - dest.prepend ("p/48/"); + dest.remove(0, 3); + dest.prepend("p/48/"); } /* Try determine where to put this part. We have four directories: @@ -137,12 +137,12 @@ either parts/ or p/, we need to add it automatically. Part files are numbers wit a possible u prefix for parts with unknown number which can be followed by any of: - - c** (composites) - - d** (formed stickers) - - p** (patterns) + - c**(composites) + - d**(formed stickers) + - p**(patterns) - a lowercase alphabetic letter for variants - Subfiles (usually) have an s** prefix, in which case we use parts/s/. + Subfiles(usually) have an s** prefix, in which case we use parts/s/. Note that the regex starts with a '^' so it won't catch already fully given part file names. */ QString partRegex = "^u?[0-9]+(c[0-9][0-9]+)*(d[0-9][0-9]+)*[a-z]?(p[0-9a-z][0-9a-z]+)*"; @@ -151,12 +151,12 @@ partRegex += "\\.dat$"; subpartRegex += "\\.dat$"; - if (QRegExp (subpartRegex).exactMatch (dest)) - dest.prepend ("parts/s/"); - else if (QRegExp (partRegex).exactMatch (dest)) - dest.prepend ("parts/"); - else if (not dest.startsWith ("parts/") and not dest.startsWith ("p/")) - dest.prepend ("p/"); + if (QRegExp(subpartRegex).exactMatch(dest)) + dest.prepend("parts/s/"); + else if (QRegExp(partRegex).exactMatch(dest)) + dest.prepend("parts/"); + else if (not dest.startsWith("parts/") and not dest.startsWith("p/")) + dest.prepend("p/"); } PartDownloader::SourceType PartDownloader::sourceType() const @@ -164,86 +164,86 @@ return m_source; } -void PartDownloader::setSourceType (SourceType src) +void PartDownloader::setSourceType(SourceType src) { m_source = src; - ui.source->setCurrentIndex (int (src)); + ui.source->setCurrentIndex(int(src)); } -void PartDownloader::sourceChanged (int i) +void PartDownloader::sourceChanged(int i) { if (i == CustomURL) - ui.fileNameLabel->setText (tr ("URL:")); + ui.fileNameLabel->setText(tr("URL:")); else - ui.fileNameLabel->setText (tr ("File name:")); + ui.fileNameLabel->setText(tr("File name:")); - m_source = SourceType (i); + m_source = SourceType(i); } -void PartDownloader::buttonClicked (QAbstractButton* btn) +void PartDownloader::buttonClicked(QAbstractButton* btn) { - if (btn == button (Close)) + if (btn == button(Close)) { reject(); } - else if (btn == button (Abort)) + else if (btn == button(Abort)) { m_isAborted = true; for (PartDownloadRequest* req : m_requests) req->abort(); } - else if (btn == button (Download)) + else if (btn == button(Download)) { QString dest = ui.filename->text(); - setPrimaryFile (nullptr); + setPrimaryFile(nullptr); m_isAborted = false; if (sourceType() == CustomURL) - dest = Basename (url()); + dest = Basename(url()); - modifyDestination (dest); + modifyDestination(dest); - if (QFile::exists (downloadPath() + DIRSLASH + dest)) + if (QFile::exists(downloadPath() + DIRSLASH + dest)) { - const QString overwritemsg = format (tr ("%1 already exists in download directory. Overwrite?"), dest); - if (not Confirm (tr ("Overwrite?"), overwritemsg)) + const QString overwritemsg = format(tr("%1 already exists in download directory. Overwrite?"), dest); + if (not Confirm(tr("Overwrite?"), overwritemsg)) return; } - downloadFile (dest, url(), true); + downloadFile(dest, url(), true); } } -void PartDownloader::downloadFile (QString dest, QString url, bool primary) +void PartDownloader::downloadFile(QString dest, QString url, bool primary) { int row = ui.progressTable->rowCount(); // Don't download files repeadetly. - if (m_filesToDownload.indexOf (dest) != -1) + if (m_filesToDownload.indexOf(dest) != -1) return; - print ("Downloading %1 from %2\n", dest, url); - modifyDestination (dest); - PartDownloadRequest* req = new PartDownloadRequest (url, dest, primary, this); + print("Downloading %1 from %2\n", dest, url); + modifyDestination(dest); + PartDownloadRequest* req = new PartDownloadRequest(url, dest, primary, this); m_filesToDownload << dest; m_requests << req; - ui.progressTable->insertRow (row); - req->setTableRow (row); + ui.progressTable->insertRow(row); + req->setTableRow(row); req->updateToTable(); - m_downloadButton->setEnabled (false); - ui.progressTable->setEnabled (true); - ui.filename->setEnabled (false); - ui.source->setEnabled (false); - button (Close)->setEnabled (false); - button (Abort)->setEnabled (true); - button (Download)->setEnabled (false); + m_downloadButton->setEnabled(false); + ui.progressTable->setEnabled(true); + ui.filename->setEnabled(false); + ui.source->setEnabled(false); + button(Close)->setEnabled(false); + button(Abort)->setEnabled(true); + button(Download)->setEnabled(false); } -void PartDownloader::downloadFromPartsTracker (QString file) +void PartDownloader::downloadFromPartsTracker(QString file) { - modifyDestination (file); - downloadFile (file, g_unofficialLibraryURL + file, false); + modifyDestination(file); + downloadFile(file, g_unofficialLibraryURL + file, false); } void PartDownloader::checkIfFinished() @@ -279,29 +279,29 @@ else { // Allow the prompt be closed now. - button (Abort)->setEnabled (false); - button (Close)->setEnabled (true); + button(Abort)->setEnabled(false); + button(Close)->setEnabled(true); } } -QPushButton* PartDownloader::button (PartDownloader::Button i) +QPushButton* PartDownloader::button(PartDownloader::Button i) { - switch (i) + switch(i) { case Download: return m_downloadButton; case Abort: - return qobject_cast<QPushButton*> (ui.buttonBox->button (QDialogButtonBox::Abort)); + return qobject_cast<QPushButton*>(ui.buttonBox->button(QDialogButtonBox::Abort)); case Close: - return qobject_cast<QPushButton*> (ui.buttonBox->button (QDialogButtonBox::Close)); + return qobject_cast<QPushButton*>(ui.buttonBox->button(QDialogButtonBox::Close)); } return nullptr; } -void PartDownloader::addFile (LDDocument* f) +void PartDownloader::addFile(LDDocument* f) { m_files << f; } @@ -316,7 +316,7 @@ return m_primaryFile; } -void PartDownloader::setPrimaryFile (LDDocument* document) +void PartDownloader::setPrimaryFile(LDDocument* document) { m_primaryFile = document; } @@ -326,7 +326,7 @@ QString path = config.downloadFilePath(); if (DIRSLASH[0] != '/') - path.replace (DIRSLASH, "/"); + path.replace(DIRSLASH, "/"); return path; }