本文整理汇总了C++中kparts::ReadOnlyPart::openUrl方法的典型用法代码示例。如果您正苦于以下问题:C++ ReadOnlyPart::openUrl方法的具体用法?C++ ReadOnlyPart::openUrl怎么用?C++ ReadOnlyPart::openUrl使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kparts::ReadOnlyPart
的用法示例。
在下文中一共展示了ReadOnlyPart::openUrl方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setData
void BinaryWidget::setData( const QByteArray &data )
{
delete mMainWidget;
QString mimetype;
KMimeType::Ptr mime = KMimeType::findByContent( data );
if ( mime && !mime->isDefault() )
mimetype = mime->name();
if ( !mimetype.isEmpty() ) {
KParts::ReadOnlyPart *part = KParts::ComponentFactory::createPartInstanceFromQuery<KParts::ReadOnlyPart>( mimetype, QString(), this, this );
if ( part ) {
KTemporaryFile file;
file.setAutoRemove(false);
file.open();
file.write( data );
file.flush();
part->openUrl( KUrl( file.fileName() ) );
mMainWidget = part->widget();
} else {
mMainWidget = new QLabel( i18n( "No part found for visualization of mimetype %1", mimetype ), this );
}
mData = data;
mSaveButton->setEnabled( true );
} else {
mMainWidget = new QLabel( i18n( "Got data of unknown mimetype" ), this );
}
mLayout->addWidget( mMainWidget, 0, 0, 3, 1);
mMainWidget->show();
}
示例2: openFile
void FileManager::openFile( const QString& fileName, const QString& name, const QString& title, const QString& partName, const QVariantList& partParams )
{
if( fileName.isEmpty() )
return;
QString fullName = name.isEmpty() ? KUrl( fileName ).fileName() : name;
QString fullTitle = title.isEmpty() ? fullName : title;
if( d->parts.contains( fullName ) )
{
emit newPart( fullName, fullTitle );
return;
}
KMimeType::Ptr mime = KMimeType::findByPath( fileName );
KParts::ReadOnlyPart* part = 0;
KService::List parts;
if( !partName.isEmpty() )
{
KService::Ptr service = KService::serviceByDesktopName( partName );
if( !service.isNull() )
parts.append( service );
}
if( parts.count() == 0 )
{
parts.append( KMimeTypeTrader::self()->query( mime->name(), "KParts/ReadWritePart" ) );
parts.append( KMimeTypeTrader::self()->query( mime->name(), "KParts/ReadOnlyPart" ) );
if( mime->name().contains( "audio" ) && parts.count() == 0 )
parts.append( KService::serviceByStorageId( "dragonplayer_part.desktop" ) );
}
if( parts.count() > 0 )
{
part = parts.first()->createInstance<KParts::ReadWritePart>( 0, partParams );
if( !part )
part = parts.first()->createInstance<KParts::ReadOnlyPart>( 0, partParams );
}
if( part )
{
// Add the part if it is found
KUrl url( fileName );
part->openUrl( url );
d->parts.insert( fullName, part );
d->partManager->addPart( part, true );
emit newPart( fullName, fullTitle );
return;
}
// There really is no part that can be used.
// Instead, just open it in an external application.
// KRun* runner = new KRun( KUrl( fileName ), qApp->activeWindow() );
}
示例3: slotRefresh
void AutoRefresh::slotRefresh()
{
KParts::ReadOnlyPart *part = qobject_cast< KParts::ReadOnlyPart * >( parent() );
if ( !part ) {
QString title = i18nc( "@title:window", "Cannot Refresh Source" );
QString text = i18n( "<qt>This plugin cannot auto-refresh the current part.</qt>" );
KMessageBox::error( 0, text, title );
}
else
{
// Get URL
KUrl url = part->url();
part->openUrl( url );
}
}
示例4: openUrl
void KGraphEditor::openUrl(const KUrl& url)
{
kDebug() << url;
KParts::ReadOnlyPart *part = slotNewGraph();
// (KGraphEditorSettings::parsingMode() == "external")
// ?kgv->setLayoutMethod(KGraphViewerInterface::ExternalProgram)
// :kgv->setLayoutMethod(KGraphViewerInterface::InternalLibrary);
QString label = url.path().section('/',-1,-1);
// @TODO set label
m_widget->setTabText(m_widget->currentIndex(), label);
m_tabsFilesMap[m_widget->currentWidget()] = url.path();
part->openUrl(url);
m_openedFiles.push_back(url.path());
}
示例5: slotOpenFile
void Shell::slotOpenFile()
{
//FIXME this is getting far to deeply indented... maybe some of it should be pulled out?
//check if there is an open tab...
if (mainView->currentIndex() == -1) {
//no tabs open so we can just use the openFileNewTab slot :D
slotOpenFileNewTab();
} else {
//check to see if the collection manager is open, and if thats our current tab
//since we can't open files with the collection manager...
if (mainView->indexOf(m_collection->widget()) == mainView->currentIndex()) {
//we're trying to open things in the collection... which is bad, so use a new tab :D
slotOpenFileNewTab();
} else {
//we have an open reader tab so...
//first get the filename from the user
QString filename = KFileDialog::getOpenFileName();
//check if the filename is null, open the file if its NOT null
if (!filename.isNull()) {
KUrl tempUrl = filename;
//might be a better way to get the part, but it works elsewhere so...
ReaderPage *curPage = qobject_cast<ReaderPage *>(mainView->widget(mainView->currentIndex()));
//this is kind of naive as most kparts support multiple mimetypes
//but i couldn't find an easy way to get a list of supported types
//from a kpart... FIXME
QString newMimeType = KMimeType::findByUrl(tempUrl)->name();
KParts::ReadOnlyPart *curpart = curPage->getPart();
if (curPage->getMimeType() == newMimeType) {
curpart->openUrl(tempUrl);
} else {
//if the mimetype has changed we need to delete the currentpage and open a replacement
ReaderPage *newPage = new ReaderPage(&tempUrl, this);
if (newPage) {
int index = mainView->currentIndex();
mainView->removeTab(index);
mainView->insertTab(index, newPage, tempUrl.fileName());
m_manager->replacePart(curpart, newPage->getPart());
// remove the old reader page from the open list and add the new page
openPagesList.replace(openPagesList.indexOf(curPage), newPage);
delete(curPage);
}
}
}
}
}
}
示例6: create
QObject* KWebPluginFactory::create(const QString& _mimeType, const QUrl& url, const QStringList& argumentNames, const QStringList& argumentValues) const
{
// Only attempt to find a KPart for the supported mime types...
QVariantList arguments;
const int count = argumentNames.count();
for (int i = 0; i < count; ++i) {
arguments << QString(argumentNames.at(i) + QL1S("=\"") + argumentValues.at(i) + QL1C('\"'));
}
QString mimeType (_mimeType.trimmed());
// If no mimetype is provided, we do our best to correctly determine it here...
if (mimeType.isEmpty()) {
kDebug(800) << "Looking up missing mimetype for plugin resource:" << url;
const KUrl reqUrl (url);
KMimeType::Ptr ptr = KMimeType::findByUrl(reqUrl, 0, reqUrl.isLocalFile());
if (ptr->isDefault())
mimeType = ptr->name();
// Disregard inode/* mime-types...
if (mimeType.startsWith(QLatin1String("inode/"), Qt::CaseInsensitive))
mimeType.clear();
kDebug(800) << "Updated mimetype to" << mimeType;
}
KParts::ReadOnlyPart* part = 0;
// Defer handling of flash content to QtWebKit's builtin viewer.
// If you want to use/test KDE's nspluginviewer, comment out the
// if statement below.
if (!mimeType.isEmpty() && !excludedMimeType(mimeType))
part = KMimeTypeTrader::createPartInstanceFromQuery<KParts::ReadOnlyPart>(mimeType, 0, parent(), QString(), arguments);
kDebug(800) << "Asked for" << mimeType << "plugin, got" << part;
if (part) {
QMap<QString, QString> metaData = part->arguments().metaData();
QString urlStr = url.toString(QUrl::RemovePath | QUrl::RemoveQuery | QUrl::RemoveFragment);
metaData.insert("PropagateHttpHeader", "true");
metaData.insert("referrer", urlStr);
metaData.insert("cross-domain", urlStr);
metaData.insert("main_frame_request", "TRUE");
metaData.insert("ssl_activate_warnings", "TRUE");
KWebPage *page = qobject_cast<KWebPage *>(parent());
if (page) {
const QString scheme = page->mainFrame()->url().scheme();
if (page && (QString::compare(scheme, QL1S("https"), Qt::CaseInsensitive) == 0 ||
QString::compare(scheme, QL1S("webdavs"), Qt::CaseInsensitive) == 0))
metaData.insert("ssl_was_in_use", "TRUE");
else
metaData.insert("ssl_was_in_use", "FALSE");
}
KParts::OpenUrlArguments openUrlArgs = part->arguments();
openUrlArgs.metaData() = metaData;
openUrlArgs.setMimeType(mimeType);
part->setArguments(openUrlArgs);
part->openUrl(url);
return part->widget();
}
return 0;
}