本文整理汇总了C++中DCOPClient::isAttached方法的典型用法代码示例。如果您正苦于以下问题:C++ DCOPClient::isAttached方法的具体用法?C++ DCOPClient::isAttached怎么用?C++ DCOPClient::isAttached使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DCOPClient
的用法示例。
在下文中一共展示了DCOPClient::isAttached方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: isKDesktopLockRunning
// the code was taken from pilotDaemon.cc in KPilot
// static
OSDWidget::KDesktopLockStatus OSDWidget::isKDesktopLockRunning()
{
if (!Preferences::oSDCheckDesktopLock())
return NotLocked;
DCOPClient *dcopptr = KApplication::kApplication()->dcopClient();
// Can't tell, very weird
if (!dcopptr || !dcopptr->isAttached())
{
kdWarning() << k_funcinfo << ": Could not make DCOP connection." << endl;
return DCOPError;
}
QByteArray data,returnValue;
QCString returnType;
if (!dcopptr->call("kdesktop","KScreensaverIface","isBlanked()",
data,returnType,returnValue,true))
{
// KDesktop is not running. Maybe we are in a KDE4 desktop...
kdDebug() << k_funcinfo << ": Check for screensaver failed." << endl;
return DCOPError;
}
if (returnType == "bool")
{
bool b;
QDataStream reply(returnValue,IO_ReadOnly);
reply >> b;
return (b ? Locked : NotLocked);
}
示例2: sendInternal
bool DCOPRef::sendInternal(const QCString &fun, const QCString &args, const QByteArray &data)
{
if(isNull())
{
qWarning("DCOPRef: send '%s' on null reference error", STR(fun));
return false;
}
Q_UNUSED(data);
QCString sig = fun;
if(fun.find('(') == -1)
{
sig += args;
if(args.find("<unknown") != -1)
qWarning(
"DCOPRef: unknown type error "
"<\"%s\",\"%s\">::send(\"%s\",%s",
STR(m_app), STR(m_obj), STR(fun), args.data() + 1);
}
DCOPClient *dc = dcopClient();
if(!dc || !dc->isAttached())
{
qWarning("DCOPRef::send(): no DCOP client or client not attached error");
return false;
}
return dc->send(m_app, m_obj, sig, data);
}
示例3: dcopPrint
int KPrinterImpl::dcopPrint(const TQString& cmd, const TQStringList& files, bool removeflag)
{
kdDebug(500) << "tdeprint: print command: " << cmd << endl;
int result = 0;
DCOPClient *dclient = kapp->dcopClient();
if (!dclient || (!dclient->isAttached() && !dclient->attach()))
{
return result;
}
TQByteArray data, replyData;
TQCString replyType;
TQDataStream arg( data, IO_WriteOnly );
arg << cmd;
arg << files;
arg << removeflag;
if (dclient->call( "kded", "tdeprintd", "print(TQString,TQStringList,bool)", data, replyType, replyData ))
{
if (replyType == "int")
{
TQDataStream _reply_stream( replyData, IO_ReadOnly );
_reply_stream >> result;
}
}
示例4: callInternal
DCOPReply DCOPRef::callInternal(const QCString &fun, const QCString &args, const QByteArray &data, EventLoopFlag useEventLoop, int timeout)
{
DCOPReply reply;
if(isNull())
{
qWarning("DCOPRef: call '%s' on null reference error", STR(fun));
return reply;
}
QCString sig = fun;
if(fun.find('(') == -1)
{
sig += args;
if(args.find("<unknown") != -1)
qWarning(
"DCOPRef: unknown type error "
"<\"%s\",\"%s\">::call(\"%s\",%s",
STR(m_app), STR(m_obj), STR(fun), args.data() + 1);
}
DCOPClient *dc = dcopClient();
if(!dc || !dc->isAttached())
{
qWarning("DCOPRef::call(): no DCOP client or client not attached error");
return reply;
}
dc->call(m_app, m_obj, sig, data, reply.type, reply.data, useEventLoop == UseEventLoop, timeout);
return reply;
}
示例5: testStyle
void Style::testStyle()
{
// Read entire XML into DOM Tree
QFile file(selectedStyle);
file.open(IO_ReadOnly);
dom.setContent(file.readAll());
file.close();
// attach to dcop
DCOPClient *client = kapp->dcopClient();
if (!client->isAttached())
client->attach();
// kicker settings
KConfig *kickerConf = new KConfig("kickerrc");
kickerConf->setGroup("General");
QDomElement Kicker = dom.elementsByTagName("kicker").item(0).toElement();
kickerConf->writeEntry("LegacyKMenu", !checkKickoff->isChecked());
kickerConf->writeEntry("Transparent", getProperty(Kicker, "Transparent", "value"));
kickerConf->writeEntry("SizePercentage", getProperty(Kicker, "SizePercentage", "value"));
kickerConf->writeEntry("CustomSize", getProperty(Kicker, "CustomSize", "value"));
kickerConf->writeEntry("Position", getProperty(Kicker, "Position", "value"));
kickerConf->writeEntry("Alignment", getProperty(Kicker, "Alignment", "value"));
kickerConf->sync();
delete kickerConf;
// restart kicker
client->send("kicker", "kicker", "restart()", "");
// kwin settings
KConfig *kwinConf = new KConfig("kwinrc");
kwinConf->setGroup("Style");
QDomElement KWin = dom.elementsByTagName("kwin").item(0).toElement();
kwinConf->writeEntry("PluginLib", getProperty(KWin, "PluginLib", "value"));
kwinConf->sync();
delete kwinConf;
// restart kwin
client->send("kwin", "KWinInterface", "reconfigure()", "");
// widget settings
KConfig *globalConf = new KConfig("kdeglobals");
globalConf->setGroup("General");
QDomElement Widget = dom.elementsByTagName("widget").item(0).toElement();
globalConf->writeEntry("widgetStyle", getProperty(Widget, "widgetStyle", "value"));
globalConf->sync();
delete globalConf;
KIPC::sendMessageAll(KIPC::StyleChanged);
}
示例6: holdSlave
Slave* Slave::holdSlave( const QString &protocol, const KURL& url )
{
//kdDebug(7002) << "holdSlave '" << protocol << "' for " << url.prettyURL() << endl;
// Firstly take into account all special slaves
if (protocol == "data")
return 0;
DCOPClient *client = kapp->dcopClient();
if (!client->isAttached())
client->attach();
QString prefix = locateLocal("socket", KGlobal::instance()->instanceName());
KTempFile socketfile(prefix, QString::fromLatin1(".slave-socket"));
if ( socketfile.status() != 0 )
return 0;
#ifdef __CYGWIN__
socketfile.close();
socketfile.unlink();
#endif
#ifndef Q_WS_WIN
KServerSocket *kss = new KServerSocket(QFile::encodeName(socketfile.name()));
Slave *slave = new Slave(kss, protocol, socketfile.name());
#else
Slave *slave = 0;
#endif
QByteArray params, reply;
QCString replyType;
QDataStream stream(params, IO_WriteOnly);
stream << url << socketfile.name();
QCString launcher = KApplication::launcher();
if (!client->call(launcher, launcher, "requestHoldSlave(KURL,QString)",
params, replyType, reply)) {
delete slave;
return 0;
}
QDataStream stream2(reply, IO_ReadOnly);
pid_t pid;
stream2 >> pid;
if (!pid)
{
delete slave;
return 0;
}
#ifndef Q_WS_WIN
slave->setPID(pid);
QTimer::singleShot(1000*SLAVE_CONNECTION_TIMEOUT_MIN, slave, SLOT(timeout()));
#endif
return slave;
}
示例7: arg
KDE_EXPORT void
wake_laptop_daemon()
{
DCOPClient *dclient = kapp->dcopClient();
if (!dclient || (!dclient->isAttached() && !dclient->attach()))
return;
TQByteArray data;
TQDataStream arg( data, IO_WriteOnly );
(void) dclient->send( "kded", "klaptopdaemon", "restart()", data );
}
示例8: loadBgPixmap
void Desktop::loadBgPixmap(void)
{
// if (!m_bgDirty) return;
DCOPClient *client = kapp->dcopClient();
if (!client->isAttached())
client->attach();
QByteArray data, data2, replyData;
QCString replyType;
if (client->call("kdesktop", "KBackgroundIface", "isCommon()",
data, replyType, replyData))
{
QDataStream reply(replyData, IO_ReadOnly);
if (replyType == "bool") {
reply >> m_isCommon;
}
示例9: enableExports
void KRootPixmap::enableExports()
{
#ifdef Q_WS_X11
kdDebug(270) << k_lineinfo << "activating background exports.\n";
DCOPClient *client = kapp->dcopClient();
if(!client->isAttached())
client->attach();
QByteArray data;
QDataStream args(data, IO_WriteOnly);
args << 1;
QCString appname("kdesktop");
int screen_number = DefaultScreen(qt_xdisplay());
if(screen_number)
appname.sprintf("kdesktop-screen-%d", screen_number);
client->send(appname, "KBackgroundIface", "setExport(int)", data);
#endif
}
示例10: hold
void Slave::hold(const KURL &url)
{
if(d->derived)
{ // TODO: clean up before KDE 4
HoldParams params;
params.url = &url;
virtual_hook(VIRTUAL_HOLD, ¶ms);
return;
} /*end if*/
ref();
{
QByteArray data;
QDataStream stream(data, IO_WriteOnly);
stream << url;
slaveconn.send(CMD_SLAVE_HOLD, data);
slaveconn.close();
dead = true;
emit slaveDied(this);
}
deref();
// Call KLauncher::waitForSlave(pid);
{
DCOPClient *client = kapp->dcopClient();
if(!client->isAttached())
client->attach();
QByteArray params, reply;
QCString replyType;
QDataStream stream(params, IO_WriteOnly);
pid_t pid = m_pid;
stream << pid;
QCString launcher = KApplication::launcher();
client->call(launcher, launcher, "waitForSlave(pid_t)", params, replyType, reply);
}
}
示例11: apply
void KTheme::apply()
{
kdDebug() << "Going to apply theme: " << m_name << endl;
QString themeDir = m_kgd->findResourceDir( "themes", m_name + "/" + m_name + ".xml") + m_name + "/";
kdDebug() << "Theme dir: " << themeDir << endl;
// 2. Background theme
QDomNodeList desktopList = m_dom.elementsByTagName( "desktop" );
KConfig desktopConf( "kdesktoprc" );
desktopConf.setGroup( "Background Common" );
for ( uint i = 0; i <= desktopList.count(); i++ )
{
QDomElement desktopElem = desktopList.item( i ).toElement();
if ( !desktopElem.isNull() )
{
// TODO optimize, don't write several times the common section
bool common = static_cast<bool>( desktopElem.attribute( "common", "true" ).toUInt() );
desktopConf.writeEntry( "CommonDesktop", common );
desktopConf.writeEntry( "DeskNum", desktopElem.attribute( "number", "0" ).toUInt() );
desktopConf.setGroup( QString( "Desktop%1" ).arg( i ) );
desktopConf.writeEntry( "BackgroundMode", getProperty( desktopElem, "mode", "id" ) );
desktopConf.writeEntry( "Color1", QColor( getProperty( desktopElem, "color1", "rgb" ) ) );
desktopConf.writeEntry( "Color2", QColor( getProperty( desktopElem, "color2", "rgb" ) ) );
desktopConf.writeEntry( "BlendMode", getProperty( desktopElem, "blending", "mode" ) );
desktopConf.writeEntry( "BlendBalance", getProperty( desktopElem, "blending", "balance" ) );
desktopConf.writeEntry( "ReverseBlending",
static_cast<bool>( getProperty( desktopElem, "blending", "reverse" ).toUInt() ) );
desktopConf.writeEntry( "Pattern", getProperty( desktopElem, "pattern", "name" ) );
desktopConf.writeEntry( "Wallpaper",
unprocessFilePath( "desktop", getProperty( desktopElem, "wallpaper", "url" ) ) );
desktopConf.writeEntry( "WallpaperMode", getProperty( desktopElem, "wallpaper", "mode" ) );
if ( common )
break; // stop here
}
}
// 11. Screensaver
QDomElement saverElem = m_dom.elementsByTagName( "screensaver" ).item( 0 ).toElement();
if ( !saverElem.isNull() )
{
desktopConf.setGroup( "ScreenSaver" );
desktopConf.writeEntry( "Saver", saverElem.attribute( "name" ) );
}
desktopConf.sync(); // TODO sync and signal only if <desktop> elem present
// reconfigure kdesktop. kdesktop will notify all clients
DCOPClient *client = kapp->dcopClient();
if ( !client->isAttached() )
client->attach();
client->send("kdesktop", "KBackgroundIface", "configure()", "");
// FIXME Xinerama
// 3. Icons
QDomElement iconElem = m_dom.elementsByTagName( "icons" ).item( 0 ).toElement();
if ( !iconElem.isNull() )
{
KConfig * iconConf = KGlobal::config();
iconConf->setGroup( "Icons" );
iconConf->writeEntry( "Theme", iconElem.attribute( "name", "crystalsvg" ), true, true );
QDomNodeList iconList = iconElem.childNodes();
for ( uint i = 0; i < iconList.count(); i++ )
{
QDomElement iconSubElem = iconList.item( i ).toElement();
QString object = iconSubElem.attribute( "object" );
if ( object == "desktop" )
iconConf->setGroup( "DesktopIcons" );
else if ( object == "mainToolbar" )
iconConf->setGroup( "MainToolbarIcons" );
else if ( object == "panel" )
iconConf->setGroup( "PanelIcons" );
else if ( object == "small" )
iconConf->setGroup( "SmallIcons" );
else if ( object == "toolbar" )
iconConf->setGroup( "ToolbarIcons" );
QString iconName = iconSubElem.tagName();
if ( iconName.contains( "Color" ) )
{
QColor iconColor = QColor( iconSubElem.attribute( "rgb" ) );
iconConf->writeEntry( iconName, iconColor, true, true );
}
else if ( iconName.contains( "Value" ) || iconName == "Size" )
iconConf->writeEntry( iconName, iconSubElem.attribute( "value" ).toUInt(), true, true );
else if ( iconName.contains( "Effect" ) )
iconConf->writeEntry( iconName, iconSubElem.attribute( "name" ), true, true );
else
iconConf->writeEntry( iconName, static_cast<bool>( iconSubElem.attribute( "value" ).toUInt() ), true, true );
}
iconConf->sync();
for ( int i = 0; i < KIcon::LastGroup; i++ )
KIPC::sendMessageAll( KIPC::IconChanged, i );
KService::rebuildKSycoca( m_parent );
//.........这里部分代码省略.........
示例12: DataProtocol
Slave *Slave::createSlave(const QString &protocol, const KURL &url, int &error, QString &error_text)
{
// kdDebug(7002) << "createSlave '" << protocol << "' for " << url.prettyURL() << endl;
// Firstly take into account all special slaves
if(protocol == "data")
return new DataProtocol();
DCOPClient *client = kapp->dcopClient();
if(!client->isAttached())
client->attach();
QString prefix = locateLocal("socket", KGlobal::instance()->instanceName());
KTempFile socketfile(prefix, QString::fromLatin1(".slave-socket"));
if(socketfile.status() != 0)
{
error_text = i18n("Unable to create io-slave: %1").arg(strerror(errno));
error = KIO::ERR_CANNOT_LAUNCH_PROCESS;
return 0;
}
#ifdef __CYGWIN__
socketfile.close();
#endif
KServerSocket *kss = new KServerSocket(QFile::encodeName(socketfile.name()));
Slave *slave = new Slave(kss, protocol, socketfile.name());
// WABA: if the dcopserver is running under another uid we don't ask
// klauncher for a slave, because the slave might have that other uid
// as well, which might either be a) undesired or b) make it impossible
// for the slave to connect to the application.
// In such case we start the slave via KProcess.
// It's possible to force this by setting the env. variable
// KDE_FORK_SLAVES, Clearcase seems to require this.
static bool bForkSlaves = !QCString(getenv("KDE_FORK_SLAVES")).isEmpty();
if(bForkSlaves || !client->isAttached() || client->isAttachedToForeignServer())
{
QString _name = KProtocolInfo::exec(protocol);
if(_name.isEmpty())
{
error_text = i18n("Unknown protocol '%1'.").arg(protocol);
error = KIO::ERR_CANNOT_LAUNCH_PROCESS;
delete slave;
return 0;
}
QString lib_path = KLibLoader::findLibrary(_name.latin1());
if(lib_path.isEmpty())
{
error_text = i18n("Can not find io-slave for protocol '%1'.").arg(protocol);
error = KIO::ERR_CANNOT_LAUNCH_PROCESS;
return 0;
}
KProcess proc;
proc << locate("exe", "kioslave") << lib_path << protocol << "" << socketfile.name();
kdDebug(7002) << "kioslave"
<< ", " << lib_path << ", " << protocol << ", " << QString::null << ", " << socketfile.name() << endl;
proc.start(KProcess::DontCare);
slave->setPID(proc.pid());
QTimer::singleShot(1000 * SLAVE_CONNECTION_TIMEOUT_MIN, slave, SLOT(timeout()));
return slave;
}
QByteArray params, reply;
QCString replyType;
QDataStream stream(params, IO_WriteOnly);
stream << protocol << url.host() << socketfile.name();
QCString launcher = KApplication::launcher();
if(!client->call(launcher, launcher, "requestSlave(QString,QString,QString)", params, replyType, reply))
{
error_text = i18n("Cannot talk to klauncher");
error = KIO::ERR_SLAVE_DEFINED;
delete slave;
return 0;
}
QDataStream stream2(reply, IO_ReadOnly);
QString errorStr;
pid_t pid;
stream2 >> pid >> errorStr;
if(!pid)
{
error_text = i18n("Unable to create io-slave:\nklauncher said: %1").arg(errorStr);
error = KIO::ERR_CANNOT_LAUNCH_PROCESS;
delete slave;
return 0;
}
slave->setPID(pid);
QTimer::singleShot(1000 * SLAVE_CONNECTION_TIMEOUT_MIN, slave, SLOT(timeout()));
return slave;
}