本文整理汇总了C++中kservice::Ptr::library方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::library方法的具体用法?C++ Ptr::library怎么用?C++ Ptr::library使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kservice::Ptr
的用法示例。
在下文中一共展示了Ptr::library方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadPlugins
void PluginManager::loadPlugins()
{
KService::List offers = KServiceTypeTrader::self()->query(QLatin1String("KTpAccountsKCM/AccountUiPlugin"));
KService::List::const_iterator iter;
for (iter = offers.constBegin(); iter < offers.constEnd(); ++iter) {
QString error;
KService::Ptr service = *iter;
KPluginFactory *factory = KPluginLoader(service->library()).factory();
if (!factory) {
qWarning() << "KPluginFactory could not load the plugin:" << service->library();
continue;
}
AbstractAccountUiPlugin *plugin = factory->create<AbstractAccountUiPlugin>(this);
if (plugin) {
qDebug() << "Loaded plugin:" << service->name();
m_plugins.append(plugin);
} else {
qDebug() << error;
}
}
}
示例2: clickedMenu
void SyncTaskListItem::clickedMenu(int item)
{
KTrader::OfferList::Iterator it;
if (offers.begin() != offers.end()) {
for (it = offers.begin(); it != offers.end(); ++it) {
KService::Ptr service = *it;
kdDebug(2120) << i18n("Select Name:") << " "
<< service->name() + "; " << i18n("Library:") << " " <<
service->library() << endl;
if (service->name() == itemMenu.text(item)) {
if (preferedOffer != service->name() ||
preferedLibrary != service->library()) {
preferedOfferTemp = service->name();
preferedLibraryTemp = service->library();
itemMenu.setItemChecked(item, true);
}
} else {
itemMenu.setItemChecked(item, false);
}
}
}
createSyncPlugin(QCheckListItem::isOn());
emit serviceChanged();
}
示例3: instantiatePluginForDevice
PluginData PluginLoader::instantiatePluginForDevice(const QString& name, Device* device) const
{
PluginData ret;
KService::Ptr service = plugins[name];
if (!service) {
kDebug(kdeconnect_kded()) << "Plugin unknown" << name;
return ret;
}
KPluginFactory *factory = KPluginLoader(service->library()).factory();
if (!factory) {
kDebug(kdeconnect_kded()) << "KPluginFactory could not load the plugin:" << service->library();
return ret;
}
ret.interfaces = service->property("X-KdeConnect-SupportedPackageType", QVariant::StringList).toStringList();
QVariant deviceVariant = QVariant::fromValue<Device*>(device);
//FIXME any reason to use QObject in template param instead KdeConnectPlugin?
ret.plugin = factory->create<KdeConnectPlugin>(device, QVariantList() << deviceVariant);
if (!ret.plugin) {
kDebug(kdeconnect_kded()) << "Error loading plugin";
return ret;
}
kDebug(kdeconnect_kded()) << "Loaded plugin:" << service->name();
return ret;
}
示例4: driver
KexiMigrate* MigrateManagerInternal::driver(const QString& name)
{
if (!lookupDrivers())
return 0;
clearError();
KexiDBDbg << "loading" << name;
KexiMigrate *drv = name.isEmpty() ? 0 : m_drivers.value(name.toLatin1().toLower());
if (drv)
return drv; //cached
if (!m_services_lcase.contains(name.toLower())) {
setError(ERR_DRIVERMANAGER,
i18n("Could not find import/export database driver \"%1\".", name));
return 0;
}
KService::Ptr ptr = *(m_services_lcase.find(name.toLower()));
QString srv_name = ptr->property("X-Kexi-MigrationDriverName").toString();
KexiDBDbg << "library:" << ptr->library();
KPluginLoader loader(ptr->library());
const uint foundMajor = (loader.pluginVersion() >> 16) & 0xff;
const uint foundMinor = (loader.pluginVersion() >> 8) & 0xff;
if (!KexiMigration::version().matches(foundMajor, foundMinor)) {
setError(ERR_INCOMPAT_DRIVER_VERSION,
i18n(
"Incompatible migration driver's \"%1\" version: found version %2, expected version %3.",
name,
QString("%1.%2").arg(foundMajor).arg(foundMinor),
QString("%1.%2").arg(KexiMigration::version().major).arg(KexiMigration::version().minor))
);
return 0;
}
KPluginFactory *factory = loader.factory();
if (factory)
drv = factory->create<KexiMigrate>(this);
if (!drv) {
setError(ERR_DRIVERMANAGER,
i18n("Could not load import/export database driver \"%1\".", name));
return 0;
}
KexiDBDbg << "loading succeeded:" << name;
KexiDBDbg << "drv=" << (long)drv;
drv->setObjectName(srv_name);
m_drivers.insert(name.toLatin1().toLower(), drv); //cache it
return drv;
}
示例5: createEditor
KTextEditor::Editor *EditorChooser::createEditor(QWidget *parentWidget, QObject *parent, const char *widgetName, const char *name,
const QString &postfix, bool fallBackToKatePart)
{
KTextEditor::Editor *tmpEd = 0;
KConfig *cfg = kapp->config();
QString previousGroup = cfg->group();
cfg->setGroup("KTEXTEDITOR:" + postfix);
QString editor = cfg->readPathEntry("editor");
cfg->setGroup(previousGroup);
if(editor.isEmpty())
{
KConfig *config = new KConfig("default_components");
config->setGroup("KTextEditor");
editor = config->readPathEntry("embeddedEditor", "katepart");
delete config;
}
KService::Ptr serv = KService::serviceByDesktopName(editor);
if(serv)
{
tmpEd = KTextEditor::createEditor(serv->library().latin1(), parentWidget, widgetName, parent, name);
if(tmpEd)
return tmpEd;
}
if(fallBackToKatePart)
return KTextEditor::createEditor("libkatepart", parentWidget, widgetName, parent, name);
return 0;
}
示例6: findPartFactory
KParts::Factory* IPartController::findPartFactory ( const QString& mimetype, const QString& parttype, const QString& preferredName )
{
// parttype may be a interface type not derived from KParts/ReadOnlyPart
const KService::List offers = KMimeTypeTrader::self()->query( mimetype,
QString::fromLatin1( "KParts/ReadOnlyPart" ),
QString::fromLatin1( "'%1' in ServiceTypes" ).arg( parttype ) );
if ( ! offers.isEmpty() )
{
KService::Ptr ptr;
// if there is a preferred plugin we'll take it
if ( !preferredName.isEmpty() )
{
KService::List::ConstIterator it;
for ( it = offers.constBegin(); it != offers.constEnd(); ++it )
{
if ( ( *it ) ->desktopEntryName() == preferredName )
{
ptr = ( *it );
break;
}
}
}
// else we just take the first in the list
if ( !ptr )
{
ptr = offers.first();
}
KPluginLoader loader( QFile::encodeName( ptr->library() ) );
return static_cast<KParts::Factory*>( loader.factory() );
}
return 0;
}
示例7: initApplication
void SettingsBase::initApplication()
{
// Prepare the menu of all modules
categories = KServiceTypeTrader::self()->query("SystemSettingsCategory");
modules = KServiceTypeTrader::self()->query("KCModule", "[X-KDE-System-Settings-Parent-Category] != ''");
modules += KServiceTypeTrader::self()->query("SystemSettingsExternalApp");
rootModule = new MenuItem( true, 0 );
initMenuList(rootModule);
// Handle lost+found modules...
if (lostFound) {
for (int i = 0; i < modules.size(); ++i) {
const KService::Ptr entry = modules.at(i);
MenuItem * infoItem = new MenuItem(false, lostFound);
infoItem->setService( entry );
qDebug() << "Added " << entry->name();
}
}
// Prepare the Base Data
BaseData::instance()->setMenuItem( rootModule );
// Load all possible views
const KService::List pluginObjects = KServiceTypeTrader::self()->query( "SystemSettingsView" );
const int nbPlugins = pluginObjects.count();
for( int pluginsDone = 0; pluginsDone < nbPlugins ; ++pluginsDone ) {
KService::Ptr activeService = pluginObjects.at( pluginsDone );
QString error;
BaseMode * controller = activeService->createInstance<BaseMode>(this, QVariantList(), &error);
if( error.isEmpty() ) {
possibleViews.insert( activeService->library(), controller );
controller->init( activeService );
connect(controller, SIGNAL(changeToolBarItems(BaseMode::ToolBarItems)), this, SLOT(changeToolBar(BaseMode::ToolBarItems)));
connect(controller, SIGNAL(actionsChanged()), this, SLOT(updateViewActions()));
connect(searchText, SIGNAL(textChanged(QString)), controller, SLOT(searchChanged(QString)));
connect(controller, SIGNAL(viewChanged(bool)), this, SLOT(viewChange(bool)));
} else {
示例8: queryButtonClicked
void AdminDatabase::queryButtonClicked()
{
if ( ! m_listView->currentItem() )
return;
QVBox *widget = new QVBox(this);
KTrader::OfferList offers = KTrader::self()->query("text/plain", "'KParts/ReadOnlyPart' in ServiceTypes");
KLibFactory *factory = 0;
KTrader::OfferList::Iterator it(offers.begin());
for( ; it != offers.end(); ++it)
{
KService::Ptr ptr = (*it);
factory = KLibLoader::self()->factory( ptr->library() );
if (factory)
{
m_part = static_cast<KParts::ReadOnlyPart *>(factory->create(widget, ptr->name(), "KParts::ReadOnlyPart"));
m_part->openURL("file://"+m_dumpDir->absPath()+"/"+m_listView->getText(0)+".sql");
break;
}
}
if (!factory)
{
KMessageBox::error(this, i18n("Could not find a suitable component"));
return;
}
emit sendWidget(widget,i18n("View dump"));
}
示例9: query
void
PluginManager::showAbout( const QString &constraint )
{
KTrader::OfferList offers = query( constraint );
if ( offers.isEmpty() )
return;
KService::Ptr s = offers.front();
const QString body = "<tr><td>%1</td><td>%2</td></tr>";
QString str = "<html><body><table width=\"100%\" border=\"1\">";
str += body.arg( i18n( "Name" ), s->name() );
str += body.arg( i18n( "Library" ), s->library() );
str += body.arg( i18n( "Authors" ), s->property( "X-KDE-amaroK-authors" ).toStringList().join( "\n" ) );
str += body.arg( i18n( "Email" ), s->property( "X-KDE-amaroK-email" ).toStringList().join( "\n" ) );
str += body.arg( i18n( "Version" ), s->property( "X-KDE-amaroK-version" ).toString() );
str += body.arg( i18n( "Framework Version" ), s->property( "X-KDE-amaroK-framework-version" ).toString() );
str += "</table></body></html>";
KMessageBox::information( 0, str, i18n( "Plugin Information" ) );
}
示例10: document
MainWindow::MainWindow(KTextEditor::Document* doc)
: document(0),
view(0)
{
if(!doc) {
KTextEditor::Editor* editor = NULL;
KService::Ptr serv = KService::serviceByDesktopName("yzispart");
if(!serv) {
KMessageBox::error(this, "Could not find yzispart!");
kapp->exit(-1);
} else {
editor = KTextEditor::editor(serv->library().toLatin1());
if(!editor) {
KMessageBox::error(this, "Could not create yziskpart editor component");
kapp->exit(-1);
}
}
document = editor->createDocument(0);
} else {
document = doc;
}
view = qobject_cast< KTextEditor::View* >(document->createView(this));
setCentralWidget(view);
guiFactory()->addClient(view);
show();
}
示例11:
PluginLoader::PluginLoader()
{
KService::List offers = KServiceTypeTrader::self()->query("KdeConnect/Plugin");
for(KService::List::const_iterator iter = offers.constBegin(); iter != offers.constEnd(); ++iter) {
KService::Ptr service = *iter;
plugins[service->library()] = service;
}
}
示例12: QWidget
ksimoptsView::ksimoptsView(QWidget *parent)
: QWidget(parent),
DCOPObject("ksimoptsIface")
{
// setup our layout manager to automatically add our widgets
QHBoxLayout *top_layout = new QHBoxLayout(this);
top_layout->setAutoAdd(true);
// we want to look for all components that satisfy our needs. the
// trader will actually search through *all* registered KDE
// applications and components -- not just KParts. So we have to
// specify two things: a service type and a constraint
//
// the service type is like a mime type. we say that we want all
// applications and components that can handle HTML -- 'text/html'
//
// however, by itself, this will return such things as Netscape..
// not what we wanted. so we constrain it by saying that the
// string 'KParts/ReadOnlyPart' must be found in the ServiceTypes
// field. with this, only components of the type we want will be
// returned.
KTrader::OfferList offers = KTrader::self()->query("text/html", "'KParts/ReadWritePart' in ServiceTypes");
KLibFactory *factory = 0;
// in theory, we only care about the first one.. but let's try all
// offers just in case the first can't be loaded for some reason
KTrader::OfferList::Iterator it(offers.begin());
for( ; it != offers.end(); ++it)
{
KService::Ptr ptr = (*it);
// we now know that our offer can handle HTML and is a part.
// since it is a part, it must also have a library... let's try to
// load that now
factory = KLibLoader::self()->factory( ptr->library() );
if (factory)
{
m_html = static_cast<KParts::ReadWritePart *>(factory->create(this, ptr->name(), "KParts::ReadWritePart"));
break;
}
}
// if our factory is invalid, then we never found our component
// and we might as well just exit now
if (!factory)
{
KMessageBox::error(this, i18n("Could not find a suitable HTML component"));
return;
}
connect(m_html, SIGNAL(setWindowCaption(const QString&)),
this, SLOT(slotSetTitle(const QString&)));
connect(m_html, SIGNAL(setStatusBarText(const QString&)),
this, SLOT(slotOnURL(const QString&)));
}
示例13: loader
RecordItNowPlugin *RecordItNowPluginManager::loadPlugin(const QString &name)
{
QHashIterator<KPluginInfo, RecordItNowPlugin*> it(m_plugins);
KPluginInfo info;
while (it.hasNext()) {
it.next();
if (it.key().name().toLower() == name.toLower()) {
if (it.value()) { // already loaded?
return it.value();
} else { // get info and load
info = it.key();
break;
}
}
}
if (!info.isValid()) {
return 0;
}
kDebug() << "load plugin:" << name;
KService::Ptr service = info.service();
KPluginLoader loader(service->library());
KPluginFactory *factory = loader.factory();
if (!factory) {
kWarning() << "KPluginFactory could not load the plugin:" << service->library() <<
"Reason:" << loader.errorString();
return 0;
}
RecordItNowPlugin *plugin = factory->create<RecordItNowPlugin>(this);
delete factory;
if (!plugin) {
kWarning() << "factory::create<>() failed " << service->library();
return 0;
}
return (m_plugins[info] = plugin);
}
示例14: KPluginLoader
void MessageProcessor::Private::loadFilter(const KPluginInfo &pluginInfo)
{
KService::Ptr service = pluginInfo.service();
KPluginFactory *factory = KPluginLoader(service->library()).factory();
if (factory) {
qCDebug(KTP_COMMONINTERNALS) << "loaded factory :" << factory;
AbstractMessageFilter *filter = factory->create<AbstractMessageFilter>(q);
if (filter) {
qCDebug(KTP_COMMONINTERNALS) << "loaded message filter : " << filter;
filters << FilterPlugin(pluginInfo, filter);
}
} else {
qCWarning(KTP_COMMONINTERNALS) << "error loading plugin :" << service->library();
}
// Re-sort filters by weight
qSort(filters);
}
开发者ID:netrunner-debian-kde-extras,项目名称:kde-telepathy-ktp-common-internals,代码行数:20,代码来源:message-processor.cpp
示例15: loadPlugins
void PluginManager::loadPlugins()
{
DEBUG_FUNC_NAME
KConfigGroup group = KGlobal::config()->group( "Plugins" );
KService::List offers = KServiceTypeTrader::self()->query(
QString::fromLatin1( "GluonCreator/Plugin" ),
QString( "[X-KDE-GluonCreatorPluginVersion] == %1" ).arg( GLUONCREATOR_PLUGIN_VERSION ) );
KService::List::const_iterator iter;
for( iter = offers.begin(); iter < offers.end(); ++iter )
{
QString error;
KService::Ptr service = *iter;
QString serviceName = service->desktopEntryName();
bool loadPlugin = group.readEntry<bool>( QString( "%1Enabled" ).arg( serviceName ), true );
if( !d->loadedPlugins.contains( serviceName ) && loadPlugin )
{
KPluginFactory* factory = KPluginLoader( service->library() ).factory();
if( !factory )
{
DEBUG_TEXT( QString( "KPluginFactory could not load the plugin: %1" ).arg( service->library() ) );
continue;
}
Plugin* plugin = factory->create<Plugin>( this );
if( plugin )
{
DEBUG_TEXT( QString( "Load plugin: %1" ).arg( service->name() ) );
plugin->load( d->mainWindow );
d->loadedPlugins.insert( serviceName, plugin );
}
else
{
DEBUG_TEXT( error );
}
}
else if( !loadPlugin && d->loadedPlugins.contains( serviceName ) )
{
Plugin* plugin = d->loadedPlugins.value( serviceName );
plugin->unload( d->mainWindow );
delete plugin;
d->loadedPlugins.remove( serviceName );
}
}
}