本文整理汇总了C++中QUrl类的典型用法代码示例。如果您正苦于以下问题:C++ QUrl类的具体用法?C++ QUrl怎么用?C++ QUrl使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QUrl类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Q_UNUSED
//.........这里部分代码省略.........
connect( o2, &QgsO2::linkingSucceeded, this, &QgsAuthOAuth2Method::onLinkingSucceeded, Qt::UniqueConnection );
connect( o2, &QgsO2::openBrowser, this, &QgsAuthOAuth2Method::onOpenBrowser, Qt::UniqueConnection );
connect( o2, &QgsO2::closeBrowser, this, &QgsAuthOAuth2Method::onCloseBrowser, Qt::UniqueConnection );
connect( o2, &QgsO2::getAuthCode, this, &QgsAuthOAuth2Method::onAuthCode, Qt::UniqueConnection );
connect( this, &QgsAuthOAuth2Method::setAuthCode, o2, &QgsO2::onSetAuthCode, Qt::UniqueConnection );
//qRegisterMetaType<QNetworkReply::NetworkError>( QStringLiteral( "QNetworkReply::NetworkError" )) // for Qt::QueuedConnection, if needed;
connect( o2, &QgsO2::refreshFinished, this, &QgsAuthOAuth2Method::onRefreshFinished, Qt::UniqueConnection );
QgsSettings settings;
QString timeoutkey = QStringLiteral( "qgis/networkAndProxy/networkTimeout" );
int prevtimeout = settings.value( timeoutkey, QStringLiteral( "-1" ) ).toInt();
int reqtimeout = o2->oauth2config()->requestTimeout() * 1000;
settings.setValue( timeoutkey, reqtimeout );
// go into local event loop and wait for a fired linking-related slot
QEventLoop loop( nullptr );
connect( o2, &QgsO2::linkingFailed, &loop, &QEventLoop::quit );
connect( o2, &QgsO2::linkingSucceeded, &loop, &QEventLoop::quit );
// add singlshot timer to quit linking after an alloted timeout
// this should keep the local event loop from blocking forever
QTimer timer( nullptr );
timer.setInterval( reqtimeout * 5 );
timer.setSingleShot( true );
connect( &timer, &QTimer::timeout, o2, &QgsO2::linkingFailed );
timer.start();
// asynchronously attempt the linking
o2->link();
// block request update until asynchronous linking loop is quit
loop.exec();
if ( timer.isActive() )
{
timer.stop();
}
// don't re-apply a setting that wasn't already set
if ( prevtimeout == -1 )
{
settings.remove( timeoutkey );
}
else
{
settings.setValue( timeoutkey, prevtimeout );
}
if ( !o2->linked() )
{
msg = QStringLiteral( "Update request FAILED for authcfg %1: requestor could not link app" ).arg( authcfg );
QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Warning );
return false;
}
}
if ( o2->token().isEmpty() )
{
msg = QStringLiteral( "Update request FAILED for authcfg %1: access token is empty" ).arg( authcfg );
QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Warning );
return false;
}
// update the request
QgsAuthOAuth2Config::AccessMethod accessmethod = o2->oauth2config()->accessMethod();
QUrl url = request.url();
QUrlQuery query( url );
switch ( accessmethod )
{
case QgsAuthOAuth2Config::Header:
request.setRawHeader( O2_HTTP_AUTHORIZATION_HEADER, QStringLiteral( "Bearer %1" ).arg( o2->token() ).toAscii() );
msg = QStringLiteral( "Updated request HEADER with access token for authcfg: %1" ).arg( authcfg );
QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
break;
case QgsAuthOAuth2Config::Form:
// FIXME: what to do here if the parent request is not POST?
// probably have to skip this until auth system support is moved into QgsNetworkAccessManager
msg = QStringLiteral( "Update request FAILED for authcfg %1: form POST token update is unsupported" ).arg( authcfg );
QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Warning );
break;
case QgsAuthOAuth2Config::Query:
if ( !query.hasQueryItem( O2_OAUTH2_ACCESS_TOKEN ) )
{
query.addQueryItem( O2_OAUTH2_ACCESS_TOKEN, o2->token() );
url.setQuery( query );
request.setUrl( url );
msg = QStringLiteral( "Updated request QUERY with access token for authcfg: %1" ).arg( authcfg );
}
else
{
msg = QStringLiteral( "Updated request QUERY with access token SKIPPED (existing token) for authcfg: %1" ).arg( authcfg );
}
QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
break;
}
return true;
}
示例2: setQueryItems
void QUrlProto::setQueryItems(const QList<QPair<QString, QString> > &query)
{
QUrl *item = qscriptvalue_cast<QUrl*>(thisObject());
if (item)
item->setQueryItems(query);
}
示例3: setUrl
void QUrlProto::setUrl(const QString &url)
{
QUrl *item = qscriptvalue_cast<QUrl*>(thisObject());
if (item)
item->setUrl(url);
}
示例4: setHost
void QUrlProto::setHost(const QString &host)
{
QUrl *item = qscriptvalue_cast<QUrl*>(thisObject());
if (item)
item->setHost(host);
}
示例5: setPort
void QUrlProto::setPort(int port)
{
QUrl *item = qscriptvalue_cast<QUrl*>(thisObject());
if (item)
item->setPort(port);
}
示例6: setEncodedQueryItems
void QUrlProto::setEncodedQueryItems(const QList<QPair<QByteArray, QByteArray> > &query)
{
QUrl *item = qscriptvalue_cast<QUrl*>(thisObject());
if (item)
item->setEncodedQueryItems(query);
}
示例7: setEncodedUserName
void QUrlProto::setEncodedUserName(const QByteArray &userName)
{
QUrl *item = qscriptvalue_cast<QUrl*>(thisObject());
if (item)
item->setEncodedUserName(userName);
}
示例8: downloadFinished
void PacificaServices::downloadFinished(QNetworkReply *reply)
{
const char *prefix = "";
QDomElement root;
QDomNode services;
QDomNode n;
QDomElement e;
int i;
int res;
QUrl url;
QVariant possible_redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
url = possible_redirect.toUrl();
if(!url.isEmpty() && current_url != url && redirect_count < 5)
{
redirect_count++;
current_url = url;
std::cout << "Redirecting to " << url.toString().toStdString() << "\n";
QNetworkRequest request(current_url);
QNetworkReply *reply = manager.get(request);
return;
}
//FIXME handle error.
_services = new QHash<QString, QString>();
//FIXME rename root element once server is updated.
QDomDocument doc("myemsl");
std::cout << doc.setContent(reply) << "\n";
root = doc.documentElement();
QDomNodeList list = root.elementsByTagName("prefix");
for(i = 0; i < list.count(); i++)
{
e = list.at(i).toElement();
prefix = strdup(e.text().toStdString().c_str());
}
QSettings settings;
if(settings.contains("url/prefix"))
{
prefix = strdup(settings.value("url/prefix").toString().toStdString().c_str());
}
list = root.elementsByTagName("services");
for(i = 0; i < list.count(); i++)
{
services = list.at(i);
}
list = services.childNodes();
for(i = 0; i < list.count(); i++)
{
e = list.at(i).toElement();
if(e.nodeName() == "service")
{
if(e.attribute("location", "").toStdString().c_str()[0] == '/')
{
_services->insert(e.attribute("name", NULL), prefix + e.attribute("location", ""));
}
else
{
_services->insert(e.attribute("name", NULL), e.attribute("location", ""));
}
}
}
ready(_services);
}
示例9: tLog
bool
GlobalActionManager::parseTomahawkLink( const QString& urlIn )
{
QString url = urlIn;
if ( urlIn.startsWith( "http://toma.hk" ) )
url.replace( "http://toma.hk/", "tomahawk://" );
if ( url.contains( "tomahawk://" ) )
{
QString cmd = url.mid( 11 );
cmd.replace( "%2B", "%20" );
tLog() << "Parsing tomahawk link command" << cmd;
QString cmdType = cmd.split( "/" ).first();
QUrl u = QUrl::fromEncoded( cmd.toUtf8() );
// for backwards compatibility
if ( cmdType == "load" )
{
if ( u.hasQueryItem( "xspf" ) )
{
QUrl xspf = QUrl::fromUserInput( u.queryItemValue( "xspf" ) );
XSPFLoader* l = new XSPFLoader( true, this );
tDebug() << "Loading spiff:" << xspf.toString();
l->load( xspf );
connect( l, SIGNAL( ok( Tomahawk::playlist_ptr ) ), ViewManager::instance(), SLOT( show( Tomahawk::playlist_ptr ) ) );
return true;
}
else if ( u.hasQueryItem( "jspf" ) )
{
QUrl jspf = QUrl::fromUserInput( u.queryItemValue( "jspf" ) );
JSPFLoader* l = new JSPFLoader( true, this );
tDebug() << "Loading jspiff:" << jspf.toString();
l->load( jspf );
connect( l, SIGNAL( ok( Tomahawk::playlist_ptr ) ), ViewManager::instance(), SLOT( show( Tomahawk::playlist_ptr ) ) );
return true;
}
}
if ( cmdType == "playlist" )
{
return handlePlaylistCommand( u );
}
else if ( cmdType == "collection" )
{
return handleCollectionCommand( u );
}
else if ( cmdType == "queue" )
{
return handleQueueCommand( u );
}
else if ( cmdType == "station" )
{
return handleStationCommand( u );
}
else if ( cmdType == "autoplaylist" )
{
return handleAutoPlaylistCommand( u );
}
else if ( cmdType == "search" )
{
return handleSearchCommand( u );
}
else if ( cmdType == "play" )
{
return handlePlayCommand( u );
}
else if ( cmdType == "bookmark" )
{
return handlePlayCommand( u );
}
else if ( cmdType == "open" )
{
return handleOpenCommand( u );
}
else if ( cmdType == "view" )
{
return handleViewCommand( u );
}
else if ( cmdType == "import" )
{
return handleImportCommand( u );
}
else
{
tLog() << "Tomahawk link not supported, command not known!" << cmdType << u.path();
return false;
}
}
else
{
tLog() << "Not a tomahawk:// link!";
return false;
}
}
示例10: AddJob
int TorrentPlugin::AddJob (Entity e)
{
QString suggestedFname;
if (e.Entity_.canConvert<QUrl> ())
{
QUrl resource = e.Entity_.toUrl ();
if (resource.scheme () == "magnet")
{
QString at = XmlSettingsManager::Instance ()->
property ("AutomaticTags").toString ();
QStringList tags = e.Additional_ [" Tags"].toStringList ();
Q_FOREACH (QString tag, Core::Instance ()->GetProxy ()->
GetTagsManager ()->Split (at))
tags << Core::Instance ()->GetProxy ()->
GetTagsManager ()->GetID (tag);
QList<QPair<QString, QString> > queryItems = resource.queryItems ();
for (QList<QPair<QString, QString> >::const_iterator i = queryItems.begin (),
end = queryItems.end (); i != end; ++i)
if (i->first == "kt")
{
QStringList humanReadable = i->second
.split ('+', QString::SkipEmptyParts);
Q_FOREACH (QString hr, humanReadable)
tags += Core::Instance ()->GetProxy ()->
GetTagsManager ()->GetID (hr);
}
return Core::Instance ()->AddMagnet (resource.toString (),
e.Location_,
tags,
e.Parameters_);
}
else if (resource.scheme () == "file")
suggestedFname = resource.toLocalFile ();
}
QByteArray entity = e.Entity_.toByteArray ();
QFile file (suggestedFname);
if ((!file.exists () ||
!file.open (QIODevice::ReadOnly)) &&
Core::Instance ()->IsValidTorrent (entity))
{
QTemporaryFile file ("lctemporarybittorrentfile.XXXXXX");
if (!file.open ())
return -1;
file.write (entity);
suggestedFname = file.fileName ().toUtf8 ();
file.setAutoRemove (false);
}
AddTorrentDialog_->Reinit ();
AddTorrentDialog_->SetFilename (suggestedFname);
if (!e.Location_.isEmpty ())
AddTorrentDialog_->SetSavePath (e.Location_);
QString path;
QStringList tags = e.Additional_ [" Tags"].toStringList ();
QVector<bool> files;
QString fname;
bool tryLive = e.Additional_ ["TryToStreamLive"].toBool ();
if (e.Parameters_ & FromUserInitiated)
{
if (!tags.isEmpty ())
AddTorrentDialog_->SetTags (tags);
if (AddTorrentDialog_->exec () == QDialog::Rejected)
return -1;
fname = AddTorrentDialog_->GetFilename (),
path = AddTorrentDialog_->GetSavePath ();
tryLive = AddTorrentDialog_->GetTryLive ();
files = AddTorrentDialog_->GetSelectedFiles ();
tags = AddTorrentDialog_->GetTags ();
if (AddTorrentDialog_->GetAddType () == Core::Started)
e.Parameters_ &= ~NoAutostart;
else
e.Parameters_ |= NoAutostart;
}
else
{
fname = suggestedFname;
path = e.Location_;
QString at = XmlSettingsManager::Instance ()->
property ("AutomaticTags").toString ();
Q_FOREACH (QString tag, Core::Instance ()->GetProxy ()->
GetTagsManager ()->Split (at))
tags << Core::Instance ()->GetProxy ()->
GetTagsManager ()->GetID (tag);
}
int result = Core::Instance ()->AddFile (fname,
path,
tags,
tryLive,
files,
e.Parameters_);
setActionsEnabled ();
file.remove ();
//.........这里部分代码省略.........
示例11: setUrl
void QOpenGLWebPage::setUrl(const QUrl& url)
{
load(url.toString());
}
示例12: getSelectedQueue
//.........这里部分代码省略.........
eng = Transfer::bestEngine(uris[i], Transfer::Download);
else
eng = Transfer::bestEngine(m_dlgNewTransfer->m_strDestination, Transfer::Upload);
if(eng.nClass < 0)
throw RuntimeException(tr("Couldn't autodetect transfer type for \"%1\"").arg(uris[i]));
else
classID = eng.nClass;
if(detectedClass == -1)
detectedClass = classID;
else if(detectedClass >= 0 && detectedClass != classID)
detectedClass = -2;
}
else
classID = m_dlgNewTransfer->m_nClass;
d = Transfer::createInstance(m_dlgNewTransfer->m_mode, classID);
if(d == 0)
throw RuntimeException(tr("Failed to create a class instance."));
listTransfers << d;
QString source, destination;
source = uris[i].trimmed();
destination = m_dlgNewTransfer->m_strDestination;
if(!m_dlgNewTransfer->m_auth.strUser.isEmpty())
{
QString& obj = (m_dlgNewTransfer->m_mode == Transfer::Download) ? source : destination;
QUrl url = obj;
if(url.userInfo().isEmpty())
{
url.setUserName(m_dlgNewTransfer->m_auth.strUser);
url.setPassword(m_dlgNewTransfer->m_auth.strPassword);
}
obj = url.toString();
}
d->init(source, destination);
d->setUserSpeedLimits(m_dlgNewTransfer->m_nDownLimit,m_dlgNewTransfer->m_nUpLimit);
}
// show the transfer details dialog
if(m_dlgNewTransfer->m_bDetails)
{
// show a typical transfer propeties dialog
if(listTransfers.size() == 1)
{
WidgetHostDlg dlg(this);
m_dlgNewTransfer->setWindowTitle(tr("Transfer details"));
if(WidgetHostChild* q = listTransfers[0]->createOptionsWidget(dlg.getChildHost()))
{
dlg.addChild(q);
if(dlg.exec() != QDialog::Accepted)
throw RuntimeException();
}
}
else if(detectedClass >= 0) // show a dialog designed for multiple
{
if(!Transfer::runProperties(this, m_dlgNewTransfer->m_mode, detectedClass, listTransfers))
示例13: moveToMese
void BrowserCopertine::moveToMese( const QString &mese )
{
QUrl url = ui->MostraRiviste->source() ;
url.setFragment( mese ) ;
ui->MostraRiviste->setSource( url );
}
示例14: openUrl
void BrowserApplication::openUrl(const QUrl &url)
{
mainWindow()->loadPage(url.toString());
}
示例15: setEncodedPath
void QUrlProto::setEncodedPath(const QByteArray &path)
{
QUrl *item = qscriptvalue_cast<QUrl*>(thisObject());
if (item)
item->setEncodedPath(path);
}