/** * Parses oauth_token and oauth_token_secret from response of the service provider * and sets m_oauthToken and m_oauthTokenSecret accordingly * @param response response from service provider */ void OAuth::parseTokens(const QByteArray& response) { //OAuth spec 5.3, 6.1.2, 6.3.2 //use QUrl for parsing QByteArray parseQuery("https://parse.com?"); QUrl parseUrl = QUrl::fromEncoded(parseQuery + response); m_oauthToken = parseUrl.encodedQueryItemValue("oauth_token"); m_oauthTokenSecret = parseUrl.encodedQueryItemValue("oauth_token_secret"); }
QByteArray QUrlProto::encodedQueryItemValue(const QByteArray &key) const { QUrl *item = qscriptvalue_cast<QUrl*>(thisObject()); if (item) return item->encodedQueryItemValue(key); return QByteArray(); }
void BrowserDialog::linkClicked(const QUrl& url) { do { if (url.host() != DOWNLOAD_HOST_BASE) { break; } if (url.path() != "/dict/download_cell.php") { break; } QString id = url.queryItemValue("id"); QByteArray name = url.encodedQueryItemValue("name"); QString sname = decodeName(name); m_name = sname; if (!id.isEmpty() && !sname.isEmpty()) { download(url); return; } } while(0); if (url.host() != HOST_BASE) { QMessageBox::information(this, _("Wrong Link"), _("No browsing outside pinyin.sogou.com, now redirect to home page.")); m_ui->webView->load(QUrl(URL_BASE)); } else { m_ui->webView->load(url); } }
void QmitkDiffusionImagingAppIntroPart::DelegateMeTo(const QUrl& showMeNext) { QString scheme = showMeNext.scheme(); #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) QByteArray urlHostname = showMeNext.encodedHost(); QByteArray urlPath = showMeNext.encodedPath(); QByteArray dataset = showMeNext.encodedQueryItemValue("dataset"); QByteArray clear = showMeNext.encodedQueryItemValue("clear"); #else QByteArray urlHostname = QUrl::toAce(showMeNext.host()); QByteArray urlPath = showMeNext.path().toLatin1(); QUrlQuery query(showMeNext); QByteArray dataset = query.queryItemValue("dataset").toLatin1(); QByteArray clear = query.queryItemValue("clear").toLatin1();//showMeNext.encodedQueryItemValue("clear"); #endif if (scheme.isEmpty()) MITK_INFO << " empty scheme of the to be delegated link" ; // if the scheme is set to mitk, it is to be tested which action should be applied if (scheme.contains(QString("mitk")) ) { if(urlPath.isEmpty() ) MITK_INFO << " mitk path is empty " ; // searching for the perspective keyword within the host name if(urlHostname.contains(QByteArray("perspectives")) ) { // the simplified method removes every whitespace // ( whitespace means any character for which the standard C++ isspace() method returns true) urlPath = urlPath.simplified(); QString perspectiveId(urlPath.data()); perspectiveId.replace(QString("/"), QString("") ); // is working fine as long as the perspective id is valid, if not the application crashes GetIntroSite()->GetWorkbenchWindow()->GetWorkbench()->ShowPerspective(perspectiveId, GetIntroSite()->GetWorkbenchWindow() ); // search the Workbench for opened StdMultiWidgets to ensure the focus does not stay on the welcome screen and is switched to // an StdMultiWidget if one available ctkPluginContext* context = QmitkDiffusionApplicationPlugin::GetDefault()->GetPluginContext(); ctkServiceReference ref = context->getServiceReference<mitk::IDataStorageService>(); if (ref) { mitk::IDataStorageService* service = context->getService<mitk::IDataStorageService>(ref); berry::IEditorInput::Pointer editorInput( new mitk::DataStorageEditorInput( service->GetActiveDataStorage() )); // the solution is not clean, but the dependency to the StdMultiWidget was removed in order to fix a crash problem // as described in Bug #11715 // This is the correct way : use the static string ID variable // berry::IEditorPart::Pointer editor = GetIntroSite()->GetPage()->FindEditors( editorInput, QmitkStdMultiWidgetEditor::EDITOR_ID ); // QuickFix: we use the same string for an local variable const QString stdEditorID = "org.mitk.editors.stdmultiwidget"; // search for opened StdMultiWidgetEditors QList<berry::IEditorReference::Pointer> editorList = GetIntroSite()->GetPage()->FindEditors( editorInput, stdEditorID, 1 ); // if an StdMultiWidgetEditor open was found, give focus to it if(!editorList.isEmpty()) { GetIntroSite()->GetPage()->Activate( editorList[0]->GetPart(true) ); } } } } // if the scheme is set to http, by default no action is performed, if an external webpage needs to be // shown it should be implemented below else if (scheme.contains(QString("http")) ) { QDesktopServices::openUrl(showMeNext); // m_view->load( ) ; } else if(scheme.contains("qrc")) { m_view->load(showMeNext); } }
void QmitkMitkWorkbenchIntroPart::DelegateMeTo(const QUrl& showMeNext) { QString scheme = showMeNext.scheme(); #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) QByteArray urlHostname = showMeNext.encodedHost(); QByteArray urlPath = showMeNext.encodedPath(); QByteArray dataset = showMeNext.encodedQueryItemValue("dataset"); QByteArray clear = showMeNext.encodedQueryItemValue("clear"); #else QByteArray urlHostname = QUrl::toAce(showMeNext.host()); QByteArray urlPath = showMeNext.path().toLatin1(); QUrlQuery query(showMeNext); QByteArray dataset = query.queryItemValue("dataset").toLatin1(); QByteArray clear = query.queryItemValue("clear").toLatin1();//showMeNext.encodedQueryItemValue("clear"); #endif if (scheme.isEmpty()) MITK_INFO << " empty scheme of the to be delegated link" ; // if the scheme is set to mitk, it is to be tested which action should be applied if (scheme.contains(QString("mitk")) ) { if(urlPath.isEmpty() ) MITK_INFO << " mitk path is empty " ; // searching for the perspective keyword within the host name if(urlHostname.contains(QByteArray("perspectives")) ) { // the simplified method removes every whitespace // ( whitespace means any character for which the standard C++ isspace() method returns true) urlPath = urlPath.simplified(); QString tmpPerspectiveId(urlPath.data()); tmpPerspectiveId.replace(QString("/"), QString("") ); QString perspectiveId = tmpPerspectiveId; // is working fine as long as the perspective id is valid, if not the application crashes GetIntroSite()->GetWorkbenchWindow()->GetWorkbench()->ShowPerspective(perspectiveId, GetIntroSite()->GetWorkbenchWindow() ); // search the Workbench for opened StdMultiWidgets to ensure the focus does not stay on the welcome screen and is switched to // a render window editor if one available ctkPluginContext* context = QmitkExtApplicationPlugin::GetDefault()->GetPluginContext(); mitk::IDataStorageService* service = NULL; ctkServiceReference serviceRef = context->getServiceReference<mitk::IDataStorageService>(); if (serviceRef) service = context->getService<mitk::IDataStorageService>(serviceRef); if (service) { berry::IEditorInput::Pointer editorInput(new mitk::DataStorageEditorInput( service->GetActiveDataStorage() )); // search for opened StdMultiWidgetEditors berry::IEditorPart::Pointer editorPart = GetIntroSite()->GetPage()->FindEditor( editorInput ); // if an StdMultiWidgetEditor open was found, give focus to it if(editorPart) { GetIntroSite()->GetPage()->Activate( editorPart ); } } } } // if the scheme is set to http, by default no action is performed, if an external webpage needs to be // shown it should be implemented below else if (scheme.contains(QString("http")) ) { QDesktopServices::openUrl(showMeNext); // m_view->load( ) ; } else if(scheme.contains("qrc")) { m_view->load(showMeNext); } }