Changeset 846 for trunk/tools/qdbus
- Timestamp:
- May 5, 2011, 5:36:53 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.7.2 (added) merged: 845 /branches/vendor/nokia/qt/current merged: 844 /branches/vendor/nokia/qt/4.6.3 removed
- Property svn:mergeinfo changed
-
trunk/tools/qdbus/qdbus.pro
r2 r846 1 1 TEMPLATE = subdirs 2 SUBDIRS = qdbus qdbusxml2cpp qdbuscpp2xml qdbusviewer 2 SUBDIRS = qdbus qdbusxml2cpp qdbuscpp2xml 3 !contains(QT_CONFIG, no-gui): SUBDIRS += qdbusviewer -
trunk/tools/qdbus/qdbus/qdbus.cpp
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 249 249 } 250 250 251 static voidplaceCall(const QString &service, const QString &path, const QString &interface,252 const QString &member, QStringList args)251 static int placeCall(const QString &service, const QString &path, const QString &interface, 252 const QString &member, const QStringList& arguments, bool try_prop=true) 253 253 { 254 254 QDBusInterface iface(service, path, interface, connection); … … 257 257 // activate the service if possible. 258 258 259 QList<int> knownIds; 260 bool matchFound = false; 261 QStringList args = arguments; 259 262 QVariantList params; 260 263 if (!args.isEmpty()) { … … 263 266 match += '('; 264 267 265 int midx = -1;266 268 for (int i = mo->methodOffset(); i < mo->methodCount(); ++i) { 267 269 QMetaMethod mm = mo->method(i); 268 270 QByteArray signature = mm.signature(); 269 if (signature.startsWith(match)) { 270 midx = i; 271 break; 271 if (signature.startsWith(match)) 272 knownIds += i; 273 } 274 275 276 while (!matchFound) { 277 args = arguments; // reset 278 params.clear(); 279 if (knownIds.isEmpty()) { 280 // Failed to set property after falling back? 281 // Bail out without displaying an error 282 if (!try_prop) 283 return 1; 284 if (try_prop && args.size() == 1) { 285 QStringList proparg; 286 proparg += interface; 287 proparg += member; 288 proparg += args.first(); 289 if (!placeCall(service, path, "org.freedesktop.DBus.Properties", "Set", proparg, false)) 290 return 0; 291 } 292 fprintf(stderr, "Cannot find '%s.%s' in object %s at %s\n", 293 qPrintable(interface), qPrintable(member), qPrintable(path), 294 qPrintable(service)); 295 return 1; 272 296 } 273 } 274 275 if (midx == -1) { 276 fprintf(stderr, "Cannot find '%s.%s' in object %s at %s\n", 277 qPrintable(interface), qPrintable(member), qPrintable(path), 278 qPrintable(service)); 279 exit(1); 280 } 281 282 QMetaMethod mm = mo->method(midx); 283 QList<QByteArray> types = mm.parameterTypes(); 284 for (int i = 0; i < types.count(); ++i) { 285 if (types.at(i).endsWith('&')) { 286 // reference (and not a reference to const): output argument 287 // we're done with the inputs 288 while (types.count() > i) 289 types.removeLast(); 290 break; 297 298 QMetaMethod mm = mo->method(knownIds.takeFirst()); 299 QList<QByteArray> types = mm.parameterTypes(); 300 for (int i = 0; i < types.count(); ++i) { 301 if (types.at(i).endsWith('&')) { 302 // reference (and not a reference to const): output argument 303 // we're done with the inputs 304 while (types.count() > i) 305 types.removeLast(); 306 break; 307 } 291 308 } 292 } 293 294 for (int i = 0; !args.isEmpty() && i < types.count(); ++i) { 295 int id = QVariant::nameToType(types.at(i)); 296 if (id == QVariant::UserType) 297 id = QMetaType::type(types.at(i)); 298 Q_ASSERT(id); 299 300 QVariant p; 301 QString argument; 302 if ((id == QVariant::List || id == QVariant::StringList) 303 && args.at(0) == QLatin1String("(")) 304 p = readList(args); 305 else 306 p = argument = args.takeFirst(); 307 308 if (id == int(QMetaType::UChar)) { 309 // special case: QVariant::convert doesn't convert to/from 310 // UChar because it can't decide if it's a character or a number 311 p = qVariantFromValue<uchar>(p.toUInt()); 312 } else if (id < int(QMetaType::User) && id != int(QVariant::Map)) { 313 p.convert(QVariant::Type(id)); 314 if (p.type() == QVariant::Invalid) { 315 fprintf(stderr, "Could not convert '%s' to type '%s'.\n", 316 qPrintable(argument), types.at(i).constData()); 317 exit(1); 309 310 for (int i = 0; !args.isEmpty() && i < types.count(); ++i) { 311 int id = QVariant::nameToType(types.at(i)); 312 if (id == QVariant::UserType) 313 id = QMetaType::type(types.at(i)); 314 Q_ASSERT(id); 315 316 QVariant p; 317 QString argument; 318 if ((id == QVariant::List || id == QVariant::StringList) 319 && args.at(0) == QLatin1String("(")) 320 p = readList(args); 321 else 322 p = argument = args.takeFirst(); 323 324 if (id == int(QMetaType::UChar)) { 325 // special case: QVariant::convert doesn't convert to/from 326 // UChar because it can't decide if it's a character or a number 327 p = qVariantFromValue<uchar>(p.toUInt()); 328 } else if (id < int(QMetaType::User) && id != int(QVariant::Map)) { 329 p.convert(QVariant::Type(id)); 330 if (p.type() == QVariant::Invalid) { 331 fprintf(stderr, "Could not convert '%s' to type '%s'.\n", 332 qPrintable(argument), types.at(i).constData()); 333 return 1 ; 334 } 335 } else if (id == qMetaTypeId<QDBusVariant>()) { 336 QDBusVariant tmp(p); 337 p = qVariantFromValue(tmp); 338 } else if (id == qMetaTypeId<QDBusObjectPath>()) { 339 QDBusObjectPath path(argument); 340 if (path.path().isNull()) { 341 fprintf(stderr, "Cannot pass argument '%s' because it is not a valid object path.\n", 342 qPrintable(argument)); 343 return 1; 344 } 345 p = qVariantFromValue(path); 346 } else if (id == qMetaTypeId<QDBusSignature>()) { 347 QDBusSignature sig(argument); 348 if (sig.signature().isNull()) { 349 fprintf(stderr, "Cannot pass argument '%s' because it is not a valid signature.\n", 350 qPrintable(argument)); 351 return 1; 352 } 353 p = qVariantFromValue(sig); 354 } else { 355 fprintf(stderr, "Sorry, can't pass arg of type '%s'.\n", 356 types.at(i).constData()); 357 return 1; 318 358 } 319 } else if (id == qMetaTypeId<QDBusVariant>()) { 320 QDBusVariant tmp(p); 321 p = qVariantFromValue(tmp); 322 } else if (id == qMetaTypeId<QDBusObjectPath>()) { 323 QDBusObjectPath path(argument); 324 if (path.path().isNull()) { 325 fprintf(stderr, "Cannot pass argument '%s' because it is not a valid object path.\n", 326 qPrintable(argument)); 327 exit(1); 328 } 329 p = qVariantFromValue(path); 330 } else if (id == qMetaTypeId<QDBusSignature>()) { 331 QDBusSignature sig(argument); 332 if (sig.signature().isNull()) { 333 fprintf(stderr, "Cannot pass argument '%s' because it is not a valid signature.\n", 334 qPrintable(argument)); 335 exit(1); 336 } 337 p = qVariantFromValue(sig); 338 } else { 339 fprintf(stderr, "Sorry, can't pass arg of type '%s'.\n", 340 types.at(i).constData()); 341 exit(1); 359 params += p; 342 360 } 343 params += p; 344 } 345 if (params.count() != types.count() || !args.isEmpty()) { 346 fprintf(stderr, "Invalid number of parameters\n"); 347 exit(1); 348 } 349 } 361 if (params.count() == types.count() && args.isEmpty()) 362 matchFound = true; 363 else if (knownIds.isEmpty()) { 364 fprintf(stderr, "Invalid number of parameters\n"); 365 return 1; 366 } 367 } // while (!matchFound) 368 } // if (!args.isEmpty() 350 369 351 370 QDBusMessage reply = iface.callWithArgumentList(QDBus::Block, member, params); 352 371 if (reply.type() == QDBusMessage::ErrorMessage) { 353 372 QDBusError err = reply; 373 // Failed to retrieve property after falling back? 374 // Bail out without displaying an error 375 if (!try_prop) 376 return 1; 377 if (err.type() == QDBusError::UnknownMethod && try_prop) { 378 QStringList proparg; 379 proparg += interface; 380 proparg += member; 381 if (!placeCall(service, path, "org.freedesktop.DBus.Properties", "Get", proparg, false)) 382 return 0; 383 } 354 384 if (err.type() == QDBusError::ServiceUnknown) 355 385 fprintf(stderr, "Service '%s' does not exist.\n", qPrintable(service)); 356 386 else 357 387 printf("Error: %s\n%s\n", qPrintable(err.name()), qPrintable(err.message())); 358 exit(2);388 return 2; 359 389 } else if (reply.type() != QDBusMessage::ReplyMessage) { 360 390 fprintf(stderr, "Invalid reply type %d\n", int(reply.type())); 361 exit(1);391 return 1; 362 392 } 363 393 … … 365 395 printArg(v); 366 396 367 exit(0);397 return 0; 368 398 } 369 399 … … 484 514 } 485 515 486 placeCall(service, path, interface, member, args); 487 } 488 516 int ret = placeCall(service, path, interface, member, args); 517 exit(ret); 518 } 519 -
trunk/tools/qdbus/qdbuscpp2xml/qdbuscpp2xml.cpp
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 65 65 // in qdbusxmlgenerator.cpp 66 66 QT_BEGIN_NAMESPACE 67 extern Q DBUS_EXPORT QString qDBusGenerateMetaObjectXml(QString interface, const QMetaObject *mo,67 extern Q_DBUS_EXPORT QString qDBusGenerateMetaObjectXml(QString interface, const QMetaObject *mo, 68 68 const QMetaObject *base, int flags); 69 69 QT_END_NAMESPACE … … 71 71 #define PROGRAMNAME "qdbuscpp2xml" 72 72 #define PROGRAMVERSION "0.1" 73 #define PROGRAMCOPYRIGHT "Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies)."73 #define PROGRAMCOPYRIGHT "Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)." 74 74 75 75 static QString outputFile; -
trunk/tools/qdbus/qdbusviewer/main.cpp
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) -
trunk/tools/qdbus/qdbusviewer/propertydialog.cpp
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) -
trunk/tools/qdbus/qdbusviewer/propertydialog.h
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) -
trunk/tools/qdbus/qdbusviewer/qdbusmodel.cpp
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 76 76 QString name; 77 77 QString caption; 78 QString typeSignature; 78 79 }; 79 80 … … 119 120 child.attribute(QLatin1String("name")), parent); 120 121 item->caption = QLatin1String("Method: ") + item->name; 122 //get "type" from <arg> where "direction" is "in" 123 QDomElement n = child.firstChildElement(); 124 while (!n.isNull()) { 125 if (n.attribute(QLatin1String("direction")) == QLatin1String("in")) 126 item->typeSignature += n.attribute(QLatin1String("type")); 127 n = n.nextSiblingElement(); 128 } 121 129 } else if (child.tagName() == QLatin1String("signal")) { 122 130 item = new QDBusItem(QDBusModel::SignalItem, … … 299 307 } 300 308 309 QString QDBusModel::dBusTypeSignature(const QModelIndex &index) const 310 { 311 QDBusItem *item = static_cast<QDBusItem *>(index.internalPointer()); 312 return item ? item->typeSignature : QString(); 313 } 314 301 315 QModelIndex QDBusModel::findObject(const QDBusObjectPath &objectPath) 302 316 { -
trunk/tools/qdbus/qdbusviewer/qdbusmodel.h
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 73 73 QString dBusInterface(const QModelIndex &index) const; 74 74 QString dBusMethodName(const QModelIndex &index) const; 75 QString dBusTypeSignature(const QModelIndex &index) const; 75 76 76 77 void refresh(const QModelIndex &index = QModelIndex()); -
trunk/tools/qdbus/qdbusviewer/qdbusviewer.cpp
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 70 70 objectPathRegExp(QLatin1String("\\[ObjectPath: (.*)\\]")) 71 71 { 72 services = new QTreeWidget; 73 services->setRootIsDecorated(false); 74 services->setHeaderLabels(QStringList(QLatin1String("Services"))); 72 servicesModel = new QStringListModel(this); 73 servicesFilterModel = new QSortFilterProxyModel(this); 74 servicesFilterModel->setSourceModel(servicesModel); 75 servicesFilterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); 76 serviceFilterLine = new QLineEdit(this); 77 serviceFilterLine->setPlaceholderText(tr("Search...")); 78 servicesView = new QListView(this); 79 servicesView->setModel(servicesFilterModel); 80 81 connect(serviceFilterLine, SIGNAL(textChanged(QString)), servicesFilterModel, SLOT(setFilterFixedString(QString))); 75 82 76 83 tree = new QTreeView; … … 87 94 connect(refreshShortcut, SIGNAL(activated()), this, SLOT(refreshChildren())); 88 95 89 QVBoxLayout *topLayout = new QVBoxLayout(this); 96 QVBoxLayout *layout = new QVBoxLayout(this); 97 QSplitter *topSplitter = new QSplitter(Qt::Vertical, this); 98 layout->addWidget(topSplitter); 99 90 100 log = new QTextBrowser; 91 101 connect(log, SIGNAL(anchorClicked(QUrl)), this, SLOT(anchorClicked(QUrl))); 92 102 93 QHBoxLayout *layout = new QHBoxLayout; 94 layout->addWidget(services, 1); 95 layout->addWidget(tree, 2); 96 97 topLayout->addLayout(layout); 98 topLayout->addWidget(log); 99 100 connect(services, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), 101 this, SLOT(serviceChanged(QTreeWidgetItem*))); 103 QSplitter *splitter = new QSplitter(topSplitter); 104 splitter->addWidget(servicesView); 105 106 QWidget *servicesWidget = new QWidget; 107 QVBoxLayout *servicesLayout = new QVBoxLayout(servicesWidget); 108 servicesLayout->addWidget(serviceFilterLine); 109 servicesLayout->addWidget(servicesView); 110 splitter->addWidget(servicesWidget); 111 splitter->addWidget(tree); 112 113 topSplitter->addWidget(splitter); 114 topSplitter->addWidget(log); 115 116 connect(servicesView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), 117 this, SLOT(serviceChanged(QModelIndex))); 102 118 connect(tree, SIGNAL(customContextMenuRequested(QPoint)), 103 119 this, SLOT(showContextMenu(QPoint))); … … 134 150 void QDBusViewer::refresh() 135 151 { 136 services ->clear();152 servicesModel->removeRows(0, servicesModel->rowCount()); 137 153 138 154 if (c.isConnected()) { 139 155 const QStringList serviceNames = c.interface()->registeredServiceNames(); 140 foreach (QString service, serviceNames) 141 new QTreeWidgetItem(services, QStringList(service)); 156 servicesModel->setStringList(serviceNames); 142 157 } 143 158 } … … 155 170 sig.mInterface = model->dBusInterface(item); 156 171 sig.mName = model->dBusMethodName(item); 172 sig.mTypeSig = model->dBusTypeSignature(item); 157 173 158 174 switch (model->itemType(item)) { … … 208 224 } 209 225 226 static QString getDbusSignature(const QMetaMethod& method) 227 { 228 // create a D-Bus type signature from QMetaMethod's parameters 229 QString sig; 230 for (int i = 0; i < method.parameterTypes().count(); ++i) { 231 QVariant::Type type = QVariant::nameToType(method.parameterTypes().at(i)); 232 sig.append(QString::fromLatin1(QDBusMetaType::typeToSignature(type))); 233 } 234 return sig; 235 } 236 210 237 void QDBusViewer::callMethod(const BusSignature &sig) 211 238 { … … 218 245 const QString signature = QString::fromLatin1(mo->method(i).signature()); 219 246 if (signature.startsWith(sig.mName) && signature.at(sig.mName.length()) == QLatin1Char('(')) 220 method = mo->method(i); 247 if (getDbusSignature(mo->method(i)) == sig.mTypeSig) 248 method = mo->method(i); 221 249 } 222 250 if (!method.signature()) { … … 278 306 sig.mInterface = model->dBusInterface(item); 279 307 sig.mName = model->dBusMethodName(item); 308 sig.mTypeSig = model->dBusTypeSignature(item); 280 309 281 310 QMenu menu; … … 380 409 } 381 410 382 void QDBusViewer::serviceChanged( QTreeWidgetItem *item)411 void QDBusViewer::serviceChanged(const QModelIndex &index) 383 412 { 384 413 delete tree->model(); 385 414 386 415 currentService.clear(); 387 if (!i tem)388 return; 389 currentService = i tem->text(0);416 if (!index.isValid()) 417 return; 418 currentService = index.data().toString(); 390 419 391 420 tree->setModel(new QDBusViewModel(currentService, c)); … … 398 427 return; 399 428 400 new QTreeWidgetItem(services, QStringList(service)); 401 } 402 403 static QTreeWidgetItem *findItem(const QTreeWidget *services, const QString &name) 404 { 405 for (int i = 0; i < services->topLevelItemCount(); ++i) { 406 if (services->topLevelItem(i)->text(0) == name) 407 return services->topLevelItem(i); 408 } 409 return 0; 429 servicesModel->insertRows(0, 1); 430 servicesModel->setData(servicesModel->index(0, 0), service); 431 } 432 433 static QModelIndex findItem(QStringListModel *servicesModel, const QString &name) 434 { 435 QModelIndexList hits = servicesModel->match(servicesModel->index(0, 0), Qt::DisplayRole, name); 436 if (hits.isEmpty()) 437 return QModelIndex(); 438 439 return hits.first(); 410 440 } 411 441 412 442 void QDBusViewer::serviceUnregistered(const QString &name) 413 443 { 414 delete findItem(services, name); 444 QModelIndex hit = findItem(servicesModel, name); 445 if (!hit.isValid()) 446 return; 447 servicesModel->removeRows(hit.row(), 1); 415 448 } 416 449 … … 418 451 const QString &newOwner) 419 452 { 420 Q TreeWidgetItem *item = findItem(services, name);421 422 if (! item&& oldOwner.isEmpty() && !newOwner.isEmpty())453 QModelIndex hit = findItem(servicesModel, name); 454 455 if (!hit.isValid() && oldOwner.isEmpty() && !newOwner.isEmpty()) 423 456 serviceRegistered(name); 424 else if ( item&& !oldOwner.isEmpty() && newOwner.isEmpty())425 delete item;426 else if ( item&& !oldOwner.isEmpty() && !newOwner.isEmpty()) {427 delete item;457 else if (hit.isValid() && !oldOwner.isEmpty() && newOwner.isEmpty()) 458 servicesModel->removeRows(hit.row(), 1); 459 else if (hit.isValid() && !oldOwner.isEmpty() && !newOwner.isEmpty()) { 460 servicesModel->removeRows(hit.row(), 1); 428 461 serviceRegistered(name); 429 462 } … … 445 478 "<h3>%1</h3>" 446 479 "<p>Version %2</p></center>" 447 "<p>Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).</p>")480 "<p>Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).</p>") 448 481 .arg(tr("D-Bus Viewer")).arg(QLatin1String(QT_VERSION_STR))); 449 482 box.setWindowTitle(tr("D-Bus Viewer")); -
trunk/tools/qdbus/qdbusviewer/qdbusviewer.h
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 53 53 { 54 54 QString mService, mPath, mInterface, mName; 55 QString mTypeSig; 55 56 }; 56 57 … … 66 67 67 68 private slots: 68 void serviceChanged( QTreeWidgetItem *item);69 void serviceChanged(const QModelIndex &index); 69 70 void showContextMenu(const QPoint &); 70 71 void connectionRequested(const BusSignature &sig); … … 92 93 QAction *refreshAction; 93 94 QTreeWidget *services; 95 QStringListModel *servicesModel; 96 QSortFilterProxyModel *servicesFilterModel; 97 QLineEdit *serviceFilterLine; 98 QListView *servicesView; 94 99 QTextBrowser *log; 95 100 QRegExp objectPathRegExp; -
trunk/tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 54 54 #include "private/qdbusintrospection_p.h" 55 55 56 #include <sys/types.h>57 56 #include <stdio.h> 58 57 #include <stdlib.h> 59 58 60 #ifdef Q_WS_WIN61 #include <process.h>62 #endif63 64 59 #define PROGRAMNAME "qdbusxml2cpp" 65 60 #define PROGRAMVERSION "0.7" 66 #define PROGRAMCOPYRIGHT "Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies)."61 #define PROGRAMCOPYRIGHT "Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)." 67 62 68 63 #define ANNOTATION_NO_WAIT "org.freedesktop.DBus.Method.NoReply" … … 1136 1131 objects or implement said interfaces. 1137 1132 1138 \c qdbusxml2 dcpp has two modes of operation, that correspond to the two possible outputs it can1133 \c qdbusxml2cpp has two modes of operation, that correspond to the two possible outputs it can 1139 1134 produce: the interface (proxy) class or the adaptor class. The latter consists of both a C++ 1140 1135 header and a source file, which are meant to be edited and adapted to your needs. 1141 1136 1142 The \c qdbusxml2 dcpp tool is not meant to be run every time you compile your1137 The \c qdbusxml2cpp tool is not meant to be run every time you compile your 1143 1138 application. Instead, it's meant to be used when developing the code or when the interface 1144 1139 changes.
Note:
See TracChangeset
for help on using the changeset viewer.