本文整理汇总了C++中QDBusInterface::call方法的典型用法代码示例。如果您正苦于以下问题:C++ QDBusInterface::call方法的具体用法?C++ QDBusInterface::call怎么用?C++ QDBusInterface::call使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDBusInterface
的用法示例。
在下文中一共展示了QDBusInterface::call方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: importTest
void TestContactsd::importTest()
{
const QString host("com.nokia.contactsd");
QDBusConnection bus = QDBusConnection::sessionBus();
QDBusInterface *interface = new QDBusInterface("com.nokia.contactsd",
"/","com.nokia.contacts.importprogress",bus,this);
QDBusReply<QStringList> result = interface->call("hasActiveImports");
QVERIFY2(result.isValid() == true, result.error().message().toLatin1());
QCOMPARE(result.value().count(), 0);
}
示例2: showProfileDialog
void Profile::showProfileDialog()
{
QDBusInterface launcher ("com.nokia.DuiControlPanel", "/",
"com.nokia.DuiControlPanelIf");
launcher.call ("appletPage", "Profile");
// Hide the status indicator menu
if(MStatusIndicatorMenuInterface *menu = plugin->statusIndicatorMenuInterface()) {
menu->hideStatusIndicatorMenu();
}
}
示例3: onChangeDevices
void SoundPref::onChangeDevices()
{
// Notify AnticoDeluxe WM for changing sound devices
QDBusInterface *iface = new QDBusInterface("org.freedesktop.AnticoDeluxe",
"/", "org.freedesktop.AnticoDeluxe.WMCtrl",
QDBusConnection::sessionBus(), this);
if (!iface->isValid())
qDebug() << "NOT VALID INTERFACE" << qPrintable(QDBusConnection::sessionBus().lastError().message());
else {
iface->call("changeSoundDevices", mixerCard, mixerDevice);
}
}
示例4: onShowHideVolumeCtrl
void SoundPref::onShowHideVolumeCtrl()
{
// Notify AnticoDeluxe WM for show / hide volume control
QDBusInterface *iface = new QDBusInterface("org.freedesktop.AnticoDeluxe",
"/", "org.freedesktop.AnticoDeluxe.WMCtrl",
QDBusConnection::sessionBus(), this);
if (!iface->isValid())
qDebug() << "NOT VALID INTERFACE" << qPrintable(QDBusConnection::sessionBus().lastError().message());
else {
iface->call("showSoundVolumeCtrl", ui.showCtrlChk->isChecked());
}
saveSettings();
}
示例5: onVolumeFeedback
void SoundPref::onVolumeFeedback()
{
// Notify AnticoDeluxe WM for playing volume feedback
QDBusInterface *iface = new QDBusInterface("org.freedesktop.AnticoDeluxe",
"/", "org.freedesktop.AnticoDeluxe.WMCtrl",
QDBusConnection::sessionBus(), this);
if (!iface->isValid())
qDebug() << "NOT VALID INTERFACE" << qPrintable(QDBusConnection::sessionBus().lastError().message());
else {
iface->call("soundVolumeFeedback", ui.sndVolFeedbackChk->isChecked());
}
saveSettings();
}
示例6: editResource
void ResourceView::editResource()
{
bool ok = false;
ResourceItem *item = currentItem();
if ( !item ) {
return;
}
ResourceCalendar *resource = item->resource();
if ( item->isSubresource() ) {
if ( resource->type() == "imap" ) {
QString identifier = item->resourceIdentifier();
const QString newResourceName =
KInputDialog::getText( i18n( "Rename Calendar Folder" ),
i18n( "Please enter a new name for the calendar folder" ),
item->text(0),
&ok, this );
if ( !ok ) {
return;
}
QDBusConnection bus = QDBusConnection::sessionBus();
QDBusInterface *interface =
new QDBusInterface( "org.kde.kmail",
"/Groupware",
"org.kde.kmail.groupware",
bus,
this );
QDBusReply<int> reply =
interface->call( "changeResourceUIName", identifier, newResourceName );
if ( !reply.isValid() ) {
kDebug() << "DBUS Call changeResourceUIName() failed ";
}
} else {
const QString subResourceName = resource->labelForSubresource( item->resourceIdentifier() );
KMessageBox::sorry( this,
i18n ( "<qt>Cannot edit the calendar folder <b>%1</b>.</qt>",
subResourceName ) );
}
} else {
QPointer<KRES::ConfigDialog> dlg =
new KRES::ConfigDialog( this, QString( "calendar" ), resource );
if ( dlg->exec() ) {
item->setText( 0, resource->resourceName() );
mCalendar->resourceManager()->change( resource );
}
delete dlg;
}
emitResourcesChanged();
}
示例7: startDaemon
void DataHandler::startDaemon()
{
QDBusInterface* interface = new QDBusInterface("org.kde.kdenow", "/KDENow");
//Call a method, to start the kdenowd daemon if it hasn't yet started
QDBusReply< QString > reply = interface->call("startDaemon");
if (reply.isValid()) {
qDebug() << "Valid Reply received from org.kde.kdenow /KDENow";
qDebug() << reply.value();
}
else {
qDebug() << "Did not receive a valid reply from org.kde.kdenow /KDENow";
return;
}
}
示例8: dbusaction
ActionReply Helper::dbusaction(const QVariantMap& args)
{
ActionReply reply;
QDBusMessage dbusreply;
// Get arguments to method call
QString service = args["service"].toString();
QString path = args["path"].toString();
QString interface = args["interface"].toString();
QString method = args["method"].toString();
QList<QVariant> argsForCall = args["argsForCall"].toList();
QDBusConnection systembus = QDBusConnection::systemBus();
QDBusInterface *iface = new QDBusInterface (service,
path,
interface,
systembus,
this);
if (iface->isValid())
dbusreply = iface->callWithArgumentList(QDBus::AutoDetect, method, argsForCall);
delete iface;
// Error handling
if (method != "Reexecute")
{
if (dbusreply.type() == QDBusMessage::ErrorMessage)
{
reply.setErrorCode(ActionReply::DBusError);
reply.setErrorDescription(dbusreply.errorMessage());
}
}
// Reload systemd daemon to update the enabled/disabled status
if (method == "EnableUnitFiles" || method == "DisableUnitFiles" || method == "MaskUnitFiles" || method == "UnmaskUnitFiles")
{
// systemd does not update properties when these methods are called so we
// need to reload the systemd daemon.
iface = new QDBusInterface ("org.freedesktop.systemd1",
"/org/freedesktop/systemd1",
"org.freedesktop.systemd1.Manager",
systembus,
this);
dbusreply = iface->call(QDBus::AutoDetect, "Reload");
delete iface;
}
// return a reply
return reply;
}
示例9: enumerateDevices
void DBusConnector::enumerateDevices()
{
QDBusInterface face ("org.freedesktop.UPower",
"/org/freedesktop/UPower",
"org.freedesktop.UPower",
SB_);
auto res = face.call ("EnumerateDevices");
for (const auto& argument : res.arguments ())
{
auto arg = argument.value<QDBusArgument> ();
QList<QDBusObjectPath> paths;
arg >> paths;
for (const auto& path : paths)
requeryDevice (path.path ());
}
}
示例10: mgrIface
QString
BTAdaptor::adapterPath ()
{
// Get the Bluez manager dbus interface
QDBusInterface mgrIface ("org.bluez", "/", "org.bluez.Manager", QDBusConnection::systemBus ());
if (!mgrIface.isValid ())
{
qWarning() << "Unable to get bluez manager iface";
return "";
}
// Fetch the default bluetooth adapter
QDBusReply<QDBusObjectPath> reply = mgrIface.call (QLatin1String ("DefaultAdapter"));
QString adapterPath = reply.value ().path ();
qDebug() << "Bluetooth adapter path:" << adapterPath;
return adapterPath;
}
示例11: QDBusInterface
// Perform initialization, create the unique KSystemTimeZones instance,
// whose only function is to receive D-Bus signals from KTimeZoned,
// and create the unique KSystemTimeZonesPrivate instance.
KSystemTimeZonesPrivate *KSystemTimeZonesPrivate::instance()
{
if (!m_instance)
{
m_instance = new KSystemTimeZonesPrivate;
#if !defined(TIMED_SUPPORT) && !defined(KCALCORE_FOR_MEEGO)
// A KSystemTimeZones instance is required only to catch D-Bus signals.
m_parent = new KSystemTimeZones;
// Ensure that the KDED time zones module has initialized. The call loads the module on demand.
QDBusInterface *ktimezoned = new QDBusInterface("org.kde.kded", "/modules/ktimezoned", KTIMEZONED_DBUS_IFACE);
QDBusReply<void> reply = ktimezoned->call("initialize", false);
if (!reply.isValid())
kError(161) << "KSystemTimeZones: ktimezoned initialize() D-Bus call failed: " << reply.error().message() << endl;
kDebug(161)<<"instance(): ... initialised";
delete ktimezoned;
#endif
// Read the time zone config written by ktimezoned
readConfig(true);
// Go read the database.
#ifdef Q_OS_WIN
// On Windows, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
// is the place to look. The TZI binary value is the TIME_ZONE_INFORMATION structure.
#else
// For Unix, read zone.tab.
if (!m_zonetab.isEmpty())
m_instance->readZoneTab(false);
#endif
setLocalZone();
if (!m_localZone.isValid()) {
kDebug() << "m_localZone invalid";
m_localZone = KTimeZone::utc(); // ensure a time zone is always returned
}
qAddPostRoutine(KSystemTimeZonesPrivate::cleanup);
}
return m_instance;
}
示例12: if
LNetworkConnectionMonitor::LNetworkConnectionMonitor( QObject* parent ) :
NetworkConnectionMonitor( parent )
{
m_nmInterface = new QDBusInterface( QString( "org.freedesktop.NetworkManager" ),
QString( "/org/freedesktop/NetworkManager" ),
QString( "org.freedesktop.NetworkManager" ),
QDBusConnection::systemBus(),
this );
//get current connection state
QDBusInterface* dbusInterface = new QDBusInterface( QString( "org.freedesktop.NetworkManager" ),
QString( "/org/freedesktop/NetworkManager" ),
QString( "org.freedesktop.DBus.Properties" ),
QDBusConnection::systemBus(),
this );
QDBusReply<QVariant> reply = dbusInterface->call( "Get", "org.freedesktop.NetworkManager", "state" );
if ( reply.isValid() )
{
if ( reply.value() == Connected )
{
setConnected( true );
}
else if ( reply.value() == Disconnected )
{
setConnected( false );
}
}
else
{
qDebug() << "Error: " << reply.error();
}
delete dbusInterface;
//connect network manager signals
connect( m_nmInterface, SIGNAL( StateChange( uint ) ), this, SLOT( onStateChange( uint ) ) );
}
示例13: remoteApp
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
//! [0]
QDBusInterface remoteApp( "com.example.Calculator", "/Calculator/Operations",
"org.mathematics.RPNCalculator" );
remoteApp.call( "PushOperand", 2 );
remoteApp.call( "PushOperand", 2 );
remoteApp.call( "ExecuteOperation", "+" );
QDBusReply<int> reply = remoteApp.call( "PopOperand" );
if ( reply.isValid() )
printf( "%d", reply.value() ); // prints 4
//! [0]
示例14: main
int main (int argc, char *argv[]) {
QApplication app (argc, argv);
QStringList args = app.arguments ();
if (!args.isEmpty ()) args.pop_front (); // The command itself
qputenv ("DESKTOP_STARTUP_ID", qgetenv ("STARTUP_ID_COPY")); // for startup notifications (set via rkward.desktop)
qputenv ("STARTUP_ID_COPY", "");
// Parse arguments that need handling in the wrapper
bool usage = false;
QStringList debugger_args;
QStringList file_args;
bool reuse = false;
bool warn_external = true;
QString r_exe_arg;
int debug_level = 2;
for (int i=0; i < args.size (); ++i) {
if (args[i] == "--debugger") {
args.removeAt (i);
while (i < args.size ()) {
QString arg = args.takeAt (i);
if (arg == "--") break;
debugger_args.append (arg);
}
if (debugger_args.isEmpty ()) usage = true;
} else if (args[i] == "--r-executable") {
if ((i+1) < args.size ()) {
r_exe_arg = args.takeAt (i + 1);
} else usage = true;
args.removeAt (i);
--i;
} else if (args[i] == "--debug-level") {
if ((i+1) < args.size ()) {
debug_level = args[i+1].toInt ();
}
} else if (args[i] == "--reuse") {
reuse = true;
} else if (args[i] == "--nowarn-external") {
warn_external = false;
} else if (args[i].startsWith ("--")) {
// all RKWard and KDE options (other than --reuse) are of the for --option <value>. So skip over the <value>
i++;
} else {
QUrl url (args[i]);
if (url.isRelative ()) {
file_args.append (QDir::current ().absoluteFilePath (url.toLocalFile ()));
} else {
file_args.append (args[i]);
}
}
}
if (reuse) {
if (!QDBusConnection::sessionBus ().isConnected ()) {
if (debug_level > 2) qDebug ("Could not connect to session dbus");
} else {
QDBusInterface iface (RKDBUS_SERVICENAME, "/", "", QDBusConnection::sessionBus ());
if (iface.isValid ()) {
QDBusReply<void> reply = iface.call ("openAnyUrl", file_args, warn_external);
if (!reply.isValid ()) {
if (debug_level > 2) qDebug ("Error while placing dbus call: %s", qPrintable (reply.error ().message ()));
return 1;
}
return 0;
}
}
}
// MacOS may need some path adjustments, first
#ifdef Q_WS_MAC
QString oldpath = qgetenv ("PATH");
if (!oldpath.contains (INSTALL_PATH)) {
//ensure that PATH is set to include what we deliver with the bundle
qputenv ("PATH", QString ("%1/bin:%1/sbin:%2").arg (INSTALL_PATH).arg (oldpath).toLocal8Bit ());
if (debug_level > 3) qDebug ("Adjusting system path to %s", qPrintable (qgetenv ("PATH")));
}
// ensure that RKWard finds its own packages
qputenv ("R_LIBS", R_LIBS);
QProcess::execute ("launchctl", QStringList () << "load" << "-w" << INSTALL_PATH "/Library/LaunchAgents/org.freedesktop.dbus-session.plist");
#endif
// Locate KDE and RKWard installations
QString kde4_config_exe = findExeAtPath ("kde4-config", QDir::currentPath ());
if (kde4_config_exe.isNull ()) kde4_config_exe = findExeAtPath ("kde4-config", app.applicationDirPath ());
if (kde4_config_exe.isNull ()) kde4_config_exe = findExeAtPath ("kde4-config", QDir (app.applicationDirPath ()).filePath ("KDE/bin"));
if (kde4_config_exe.isNull ()) {
#ifdef Q_WS_WIN
QStringList syspath = QString (qgetenv ("PATH")).split (';');
#else
QStringList syspath = QString (qgetenv ("PATH")).split (':');
#endif
for (int i = 0; i < syspath.size (); ++i) {
kde4_config_exe = findExeAtPath ("kde4-config", syspath[i]);
if (!kde4_config_exe.isNull ()) break;
}
}
if (kde4_config_exe.isNull ()) {
QMessageBox::critical (0, "Could not find KDE installation", "The KDE installation could not be found (kde4-config). When moving / copying RKWard, make sure to copy the whole application folder, or create a shorcut / link, instead.");
exit (1);
//.........这里部分代码省略.........
示例15: main
int main(int argc, char *argv[])
{
// TODO: Clean this up, update API, etc.
if (argc < 5 || argc > 6)
{
qWarning() << "Error detected! Insufficient number of arguments.";
qWarning() << "";
qWarning() << "Usage: ambdbusaccess <R/W> <Object> <Property> <Zone> [Value]";
qWarning() << "- <R/W>";
qWarning() << " Used for specifying [R]ead or [W]rite.";
qWarning() << "- <Object>";
qWarning() << " The AMB object to access.";
qWarning() << "- <Property>";
qWarning() << " The property within the object to access.";
qWarning() << "- <Zone>";
qWarning() << " The AMB zone to access.";
qWarning() << "- [Value]";
qWarning() << " The value to write, if writing.";
qWarning() << "Example: ambdbusaccess Write ClimateControl FanSpeedLevel 0 7";
qWarning() << "";
qWarning() << "This program returns an int under the following conditions:";
qWarning() << "Successful Read: <Value Read>";
qWarning() << "Unsuccessful Read: -1";
qWarning() << "Successful Write: <Value Written>";
qWarning() << "Unsuccessful Write: -1";
return -1;
}
// TODO: Error check input.
bool read = !strncmp(argv[1], "R", 1);
QString object = argv[2];
QString property = argv[3];
qint32 zone = atoi(argv[4]);
qint32 value = 0;
if (argc == 6)
{
value = atoi(argv[5]);
}
// Necessary to suppress Qt messages about touching the D-Bus before the application was created.
QCoreApplication a(argc, argv);
// Sanity check that the system bus is actually present.
if (!QDBusConnection::systemBus().isConnected())
{
qCritical() << "Could not access system D-Bus!";
return -1;
}
// Get ahold of the manager object.
QDBusInterface *manager = new QDBusInterface("org.automotive.message.broker", "/", "org.automotive.Manager",
QDBusConnection::systemBus());
// Go fetch the path for the AMB object we are concerned with.
qDebug().nospace() << "Looking for property " << property.toStdString().c_str() << " of object " <<
object.toStdString().c_str() << " in zone " << zone << ".";
QDBusReply<QDBusObjectPath> propertyPath = manager->call("FindObjectForZone", object.toStdString().c_str(), zone);
if (!propertyPath.isValid())
{
qDebug() << "Invalid reply!" << propertyPath.error() << "Got the path:" << propertyPath.value().path();
}
// Now that we have the path, open an interface to the object.
QDBusInterface *propertyInterface = new QDBusInterface("org.automotive.message.broker", propertyPath.value().path(),
"org.automotive.ClimateControl", QDBusConnection::systemBus());
// Perform our read or write operation.
if (read)
{
QVariant reply = propertyInterface->property(property.toStdString().c_str());
if (!reply.isValid())
{
qDebug() << "Invalid reply when reading the property!" << propertyInterface->lastError() << "Property:" <<
reply.toString();
value = -1;
}
else
{
qDebug().nospace() << "Got a valid reply for the property of " << reply.toString().toStdString().c_str() << ".";
value = reply.toInt();
}
}
else
{
QVariant reply = propertyInterface->setProperty(property.toStdString().c_str(), value);
if (reply.toBool())
{
qDebug() << "Successfully wrote the property.";
}
else
{
qDebug() << "Failed to write the property.";
value = -1;
}
}
// Clean up.
delete propertyInterface;
//.........这里部分代码省略.........