demos/dbus-viewer/qdbusmodel.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** Copyright (C) 2004-2006 Trolltech ASA. All rights reserved.
00004 **
00005 ** This file is part of the demonstration applications of the Qt Toolkit.
00006 **
00007 ** This file may be used under the terms of the GNU General Public
00008 ** License version 2.0 as published by the Free Software Foundation
00009 ** and appearing in the file LICENSE.GPL included in the packaging of
00010 ** this file.  Please review the following information to ensure GNU
00011 ** General Public Licensing requirements will be met:
00012 ** http://www.trolltech.com/products/qt/opensource.html
00013 **
00014 ** If you are unsure which license is appropriate for your use, please
00015 ** review the following information:
00016 ** http://www.trolltech.com/products/qt/licensing.html or contact the
00017 ** sales department at sales@trolltech.com.
00018 **
00019 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00020 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00021 **
00022 ****************************************************************************/
00023 
00024 #ifndef QDBUSMODEL_H
00025 #define QDBUSMODEL_H
00026 
00027 #include <QtCore/qabstractitemmodel.h>
00028 #include <QtDBus/QtDBus>
00029 
00030 struct QDBusItem;
00031 class QDomDocument;
00032 class QDomElement;
00033 
00034 class QDBusModel: public QAbstractItemModel
00035 {
00036     Q_OBJECT
00037 
00038 public:
00039     enum Type { InterfaceItem, PathItem, MethodItem, SignalItem, PropertyItem };
00040 
00041     QDBusModel(const QString &service, const QDBusConnection &connection);
00042     ~QDBusModel();
00043 
00044     QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
00045     QModelIndex parent(const QModelIndex &child) const;
00046     int rowCount(const QModelIndex &parent = QModelIndex()) const;
00047     int columnCount(const QModelIndex &parent = QModelIndex()) const;
00048     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
00049     QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
00050 
00051     Type itemType(const QModelIndex &index) const;
00052     QString dBusPath(const QModelIndex &index) const;
00053     QString dBusInterface(const QModelIndex &index) const;
00054     QString dBusMethodName(const QModelIndex &index) const;
00055 
00056     void refresh(const QModelIndex &index = QModelIndex());
00057 
00058 Q_SIGNALS:
00059     void busError(const QString &text);
00060 
00061 private:
00062     QDomDocument introspect(const QString &path);
00063     void addMethods(QDBusItem *parent, const QDomElement &iface);
00064     void addPath(QDBusItem *parent);
00065 
00066     QString service;
00067     QDBusConnection c;
00068     QDBusItem *root;
00069 };
00070 
00071 #endif
00072 

Generated on Thu Mar 15 11:52:30 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1