QVariantMap FileTransferChannelCreationProperties::createRequest() const { if (!isValid()) { warning() << "Invalid file transfer creation properties"; return QVariantMap(); } QVariantMap request; request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"), TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER); request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"), (uint) Tp::HandleTypeContact); request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Filename"), suggestedFileName()); request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentType"), contentType()); request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Size"), size()); if (hasContentHash()) { request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHashType"), (uint) contentHashType()); request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHash"), contentHash()); } if (hasDescription()) { request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Description"), description()); } if (hasLastModificationTime()) { request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Date"), (qulonglong) lastModificationTime().toTime_t()); } if (hasUri()) { request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".URI"), uri()); } return request; }
void KonqRun::foundMimeType(const QString & _type) { //kDebug() << "KonqRun::foundMimeType " << _type << " m_req=" << m_req.debug(); QString mimeType = _type; // this ref comes from the job, we lose it when using KIO again m_bFoundMimeType = true; if (m_pView) m_pView->setLoading(false); // first phase finished, don't confuse KonqView // Check if the main window wasn't deleted meanwhile if (!m_pMainWindow) { setError(true); setFinished(true); return; } // Grab the args back from BrowserRun m_req.args = arguments(); m_req.browserArgs = browserArguments(); bool tryEmbed = true; // One case where we shouldn't try to embed, is when the server asks us to save if (serverSuggestsSave()) tryEmbed = false; const bool associatedAppIsKonqueror = KonqMainWindow::isMimeTypeAssociatedWithSelf(mimeType); if (tryEmbed && tryOpenView(mimeType, associatedAppIsKonqueror)) { return; } // If we were following another view, do nothing if opening didn't work. if (m_req.followMode) { setFinished(true); } if (!hasFinished()) { // If we couldn't embed the mimetype, call BrowserRun::handleNonEmbeddable() KService::Ptr selectedService; KParts::BrowserRun::NonEmbeddableResult res = handleNonEmbeddable(mimeType, &selectedService); if (res == KParts::BrowserRun::Delayed) return; setFinished(res == KParts::BrowserRun::Handled); if (hasFinished()) { // save or cancel -> nothing else will happen in m_pView, so clear statusbar (#163628) m_pView->frame()->statusbar()->slotClear(); } else { if (!tryEmbed) { // "Open" selected for a serverSuggestsSave() file - let's open. #171869 if (tryOpenView(mimeType, associatedAppIsKonqueror)) return; } // "Open" selected, possible with a specific application if (selectedService) KRun::setPreferredService(selectedService->desktopEntryName()); else { KRun::displayOpenWithDialog(url(), m_pMainWindow, false /*tempfile*/, suggestedFileName()); setFinished(true); } } } // make Konqueror think there was an error, in order to stop the spinning wheel // (we saved, canceled, or we're starting another app... in any case the current view should stop loading). setError(true); if (!hasFinished()) { // only if we're going to open if (associatedAppIsKonqueror && m_pMainWindow->refuseExecutingKonqueror(mimeType)) { setFinished(true); } } if (!hasFinished()) { kDebug() << "Nothing special to do in KonqRun, falling back to KRun"; KRun::foundMimeType(mimeType); } }