本文整理汇总了C++中kservice::List::at方法的典型用法代码示例。如果您正苦于以下问题:C++ List::at方法的具体用法?C++ List::at怎么用?C++ List::at使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kservice::List
的用法示例。
在下文中一共展示了List::at方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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 {
示例2: handleReveal
bool Helper::handleReveal()
{
if( !readArguments( 1 ))
return false;
QString path = getArgument();
if( !allArgumentsUsed())
return false;
//KApplication::updateUserTimestamp( 0 ); // TODO
const KService::List apps = KMimeTypeTrader::self()->query("inode/directory", "Application");
if (apps.size() != 0)
{
QString command = apps.at(0)->exec().split( " " ).first(); // only the actual command
if (command == "dolphin" || command == "konqueror")
{
command = QStandardPaths::findExecutable(command);
if( command.isEmpty())
return false;
return KProcess::startDetached(command, QStringList() << "--select" << path);
}
}
QFileInfo info(path);
QString dir = info.dir().path();
(void) new KRun( QUrl::fromLocalFile(dir), NULL ); // TODO parent
return true; // TODO check for errors?
}
示例3: InvokeCommand
STDMETHODIMP CShellExt::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi)
{
TCHAR szFileUserClickedOn[MAX_PATH];
TCHAR dllPath[MAX_PATH];
QString command;
FORMATETC fmte = {
CF_HDROP,
(DVTARGETDEVICE FAR *)NULL,
DVASPECT_CONTENT,
-1,
TYMED_HGLOBAL
};
GetModuleFileName(_hModule, dllPath, MAX_PATH);
QString module = lptstr2QString(dllPath);
command += module.left(module.lastIndexOf('\\'));
command += '\\';
for (unsigned i = 0; i < m_cbFiles; i++) {
DragQueryFile((HDROP)m_stgMedium.hGlobal, i, szFileUserClickedOn, MAX_PATH);
QString path = lptstr2QString(szFileUserClickedOn);
if(0 == i)
{
KMimeType::Ptr ptr = KMimeType::findByPath(path);
KService::List lst = KMimeTypeTrader::self()->query(ptr->name(), "Application");
if(lst.size() > 0)
{
QString exec = lst.at(0)->exec();
if( -1 != exec.indexOf("%u", 0, Qt::CaseInsensitive) )
{
exec = exec.left(exec.indexOf("%u", 0, Qt::CaseInsensitive));
}
command += exec;
}
};
command += "\"" + path + "\"";
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_RESTORE;
if (!CreateProcess(NULL, (LPTSTR)command.utf16(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {
MessageBox(lpcmi->hwnd,
TEXT("Error creating process: kdecm.dll needs to be in the same directory as the executable"),
TEXT("KDE Extension"),
MB_OK);
}
return NOERROR;
}
示例4: activityLinkingEnabled
bool PlacesModel::activityLinkingEnabled()
{
const KService::List services = KServiceTypeTrader::self()->query(QStringLiteral("KFileItemAction/Plugin"),
QStringLiteral("Library == 'kactivitymanagerd_fileitem_linking_plugin'"));
if (services.isEmpty()) {
return false;
}
return !services.at(0).data()->noDisplay();
}
示例5: createItemDelegate
/**
* @todo enable delegates again
*/
QAbstractItemDelegate* payeeIdentifierLoader::createItemDelegate(const QString& payeeIdentifierId, QObject* parent)
{
/** @todo escape ' in payeeIdentifierId */
KService::List offers = KServiceTypeTrader::self()->query(QLatin1String("KMyMoney/PayeeIdentifierDelegate"), QString("'%1' ~in [X-KMyMoney-payeeIdentifierIds]").arg(payeeIdentifierId));
if (!offers.isEmpty()) {
QString error;
QAbstractItemDelegate* ptr = offers.at(0)->createInstance<QAbstractItemDelegate>(parent, QVariantList(), &error);
if (ptr == nullptr) {
qWarning() << "could not load delegate" << error << payeeIdentifierId;
}
return ptr;
}
return nullptr;
}
示例6: QueryContextMenu
STDMETHODIMP CShellExt::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
{
UINT idCmd = idCmdFirst;
BOOL bAppendItems=TRUE;
TCHAR szFileUserClickedOn[MAX_PATH];
FORMATETC fmte = {
CF_HDROP,
(DVTARGETDEVICE FAR *)NULL,
DVASPECT_CONTENT,
-1,
TYMED_HGLOBAL
};
HRESULT hres = m_pDataObj->GetData(&fmte, &m_stgMedium);
if (SUCCEEDED(hres)) {
if (m_stgMedium.hGlobal)
m_cbFiles = DragQueryFile((HDROP)m_stgMedium.hGlobal, (UINT)-1, 0, 0);
qDebug() << "number of files:" << m_cbFiles;
for (unsigned i = 0; i < m_cbFiles; i++) {
DragQueryFile((HDROP)m_stgMedium.hGlobal, i, szFileUserClickedOn, MAX_PATH);
qDebug() << "file to open:" << lptstr2QString(szFileUserClickedOn);
}
}
QString path = lptstr2QString(szFileUserClickedOn);
UINT nIndex = indexMenu++;
KMimeType::Ptr ptr = KMimeType::findByPath(path);
KService::List lst = KMimeTypeTrader::self()->query(ptr->name(), "Application");
if(lst.size() > 0)
{
TCHAR str[256];
wsprintf(str, TEXT("Open with %s"), (LPTSTR)lst.at(0)->name().utf16());
InsertMenu(hMenu, nIndex, MF_STRING|MF_BYPOSITION, idCmd++, str );
if (m_hKdeLogoBmp) {
SetMenuItemBitmaps(hMenu, nIndex, MF_BYPOSITION, m_hKdeLogoBmp, m_hKdeLogoBmp);
}
}
return ResultFromShort(idCmd-idCmdFirst);
}
示例7: main
int main(int argc, char *argv[])
{
KCmdLineArgs::init(argc, argv, appName, "kscreensaver", ki18n("Random screen saver"),
KDE_VERSION_STRING, ki18n(description));
KCmdLineOptions options;
options.add("setup", ki18n("Setup screen saver"));
options.add("window-id wid", ki18n("Run in the specified XWindow"));
options.add("root", ki18n("Run in the root XWindow"));
KCmdLineArgs::addCmdLineOptions(options);
KApplication app;
WId windowId = 0;
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
if (args->isSet("setup"))
{
KRandomSetup setup;
setup.exec();
exit(0);
}
if (args->isSet("window-id"))
{
windowId = args->getOption("window-id").toInt();
}
#ifdef Q_WS_X11
if (args->isSet("root"))
{
QX11Info info;
windowId = RootWindow(QX11Info::display(), info.screen());
}
#endif
args->clear();
const KService::List lst = KServiceTypeTrader::self()->query( "ScreenSaver");
KService::List availableSavers;
KConfig type("krandom.kssrc", KConfig::NoGlobals);
const KConfigGroup configGroup = type.group("Settings");
const bool opengl = configGroup.readEntry("OpenGL", false);
const bool manipulatescreen = configGroup.readEntry("ManipulateScreen", false);
// TODO replace this with TryExec=fortune in the desktop files
const bool fortune = !KStandardDirs::findExe("fortune").isEmpty();
foreach( const KService::Ptr& service, lst ) {
//QString file = KStandardDirs::locate("services", service->entryPath());
//kDebug() << "Looking at " << file;
const QString saverType = service->property("X-KDE-Type").toString();
foreach (const QString &type, saverType.split(QLatin1Char(';'))) {
//kDebug() << "saverTypes is "<< type;
if (type == QLatin1String("ManipulateScreen")) {
if (!manipulatescreen)
goto fail;
} else if (type == QLatin1String("OpenGL")) {
if (!opengl)
goto fail;
} else if (type == QLatin1String("Fortune")) {
if (!fortune)
goto fail;
}
}
availableSavers.append(service);
fail: ;
}
KRandomSequence rnd;
const int indx = rnd.getLong(availableSavers.count());
const KService::Ptr service = availableSavers.at(indx);
const QList<KServiceAction> actions = service->actions();
QString cmd;
if (windowId)
cmd = exeFromActionGroup(actions, "InWindow");
if (cmd.isEmpty() && windowId == 0)
cmd = exeFromActionGroup(actions, "Root");
if (cmd.isEmpty())
cmd = service->exec();
QHash<QChar, QString> keyMap;
keyMap.insert('w', QString::number(windowId));
const QStringList words = KShell::splitArgs(KMacroExpander::expandMacrosShellQuote(cmd, keyMap));
if (!words.isEmpty()) {
QString exeFile = KStandardDirs::findExe(words.first());
if (!exeFile.isEmpty()) {
char **sargs = new char *[words.size() + 1];
int i = 0;
for (; i < words.size(); i++)
sargs[i] = qstrdup(words[i].toLocal8Bit().constData());
sargs[i] = 0;
execv(exeFile.toLocal8Bit(), sargs);
}
}
//.........这里部分代码省略.........
示例8: populateUAMenuForTabUrl
void UserAgentManager::populateUAMenuForTabUrl(KMenu *uaMenu, WebTab *uaTab)
{
if (!m_uaTab.isNull())
{
disconnect(this, SIGNAL(reloadTab()), m_uaTab.data()->view(), SLOT(reload()));
m_uaTab.clear();
}
m_uaTab = uaTab;
connect(this, SIGNAL(reloadTab()), m_uaTab.data()->view(), SLOT(reload()));
bool defaultUA = true;
QAction *a, *defaultAction;
// just to be sure...
uaMenu->clear();
defaultAction = new QAction(i18nc("Default rekonq user agent", "Default"), uaMenu);
defaultAction->setData(-1);
defaultAction->setCheckable(true);
connect(defaultAction, SIGNAL(triggered(bool)), this, SLOT(setUserAgent()));
uaMenu->addAction(defaultAction);
uaMenu->addSeparator();
// Main Browsers Menus
KMenu *ffMenu = new KMenu(i18n("Firefox"), uaMenu);
uaMenu->addMenu(ffMenu);
KMenu *ieMenu = new KMenu(i18n("Internet Explorer"), uaMenu);
uaMenu->addMenu(ieMenu);
KMenu *nsMenu = new KMenu(i18n("Netscape"), uaMenu);
uaMenu->addMenu(nsMenu);
KMenu *opMenu = new KMenu(i18n("Opera"), uaMenu);
uaMenu->addMenu(opMenu);
KMenu *sfMenu = new KMenu(i18n("Safari"), uaMenu);
uaMenu->addMenu(sfMenu);
KMenu *otMenu = new KMenu(i18n("Other"), uaMenu);
uaMenu->addMenu(otMenu);
UserAgentInfo uaInfo;
QStringList UAlist = uaInfo.availableUserAgents();
const KService::List providers = uaInfo.availableProviders();
int uaIndex = uaInfo.uaIndexForHost(m_uaTab.data()->url().host());
for (int i = 0; i < UAlist.count(); ++i)
{
QString uaDesc = UAlist.at(i);
a = new QAction(uaDesc, uaMenu);
a->setData(i);
a->setCheckable(true);
connect(a, SIGNAL(triggered(bool)), this, SLOT(setUserAgent()));
if (i == uaIndex)
{
a->setChecked(true);
defaultUA = false;
}
QString tag = providers.at(i)->property("X-KDE-UA-TAG").toString();
if (tag == QL1S("FF"))
{
ffMenu->addAction(a);
}
else if (tag == QL1S("IE"))
{
ieMenu->addAction(a);
}
else if (tag == QL1S("NN"))
{
nsMenu->addAction(a);
}
else if (tag == QL1S("OPR"))
{
opMenu->addAction(a);
}
else if (tag == QL1S("SAF"))
{
sfMenu->addAction(a);
}
else // OTHERs
{
otMenu->addAction(a);
}
}
defaultAction->setChecked(defaultUA);
uaMenu->addSeparator();
uaMenu->addAction(m_uaSettingsAction);
}