| 84 | } |
| 85 | |
| 86 | void TemplatePage::extractTemplate() |
| 87 | { |
| 88 | QModelIndex index = ui->treeView->currentIndex(); |
| 89 | QString archiveName= ui->treeView->model()->data(index, KDevelop::TemplatesModel::ArchiveFileRole).toString(); |
| 90 | |
| 91 | QFileInfo info(archiveName); |
| 92 | if (!info.exists()) |
| 93 | { |
| 94 | ui->extractButton->setEnabled(false); |
| 95 | return; |
| 96 | } |
| 97 | |
| 98 | QScopedPointer<KArchive> archive; |
| 99 | if (info.suffix() == QLatin1String("zip")) |
| 100 | { |
| 101 | archive.reset(new KZip(archiveName)); |
| 102 | } |
| 103 | else |
| 104 | { |
| 105 | archive.reset(new KTar(archiveName)); |
| 106 | } |
| 107 | |
| 108 | archive->open(QIODevice::ReadOnly); |
| 109 | |
| 110 | const QString destination = QFileDialog::getExistingDirectory() + QLatin1Char('/') + info.baseName(); |
| 111 | archive->directory()->copyTo(destination); |
| 112 | } |
| 113 | |
| 114 | #include "moc_templatepage.cpp" |