| 40 | }; |
| 41 | |
| 42 | URLInfo urlInfo(const QUrl& url) |
| 43 | { |
| 44 | URLInfo ret; |
| 45 | ret.isValid = false; |
| 46 | |
| 47 | if (url.isLocalFile()) { |
| 48 | QFileInfo info(url.toLocalFile()); |
| 49 | ret.isValid = info.exists(); |
| 50 | if (ret.isValid) { |
| 51 | ret.isDir = info.isDir(); |
| 52 | ret.extension = info.suffix(); |
| 53 | } |
| 54 | } else if (url.isValid()) { |
| 55 | KIO::StatJob* statJob = KIO::stat(url, KIO::HideProgressInfo); |
| 56 | KJobWidgets::setWindow(statJob, KDevelop::Core::self()->uiControllerInternal()->defaultMainWindow()); |
| 57 | ret.isValid = statJob->exec(); // TODO: do this asynchronously so that the user isn't blocked while typing every letter of the hostname in sftp://hostname |
| 58 | if (ret.isValid) { |
| 59 | KIO::UDSEntry entry = statJob->statResult(); |
| 60 | ret.isDir = entry.isDir(); |
| 61 | ret.extension = QFileInfo(entry.stringValue(KIO::UDSEntry::UDS_NAME)).suffix(); |
| 62 | } |
| 63 | } |
| 64 | return ret; |
| 65 | } |
| 66 | |
| 67 | QString configGroupName() |
| 68 | { |
no test coverage detected