Home · All Classes · All Namespaces · Modules · Functions · Files
profile.h
00001 
00023 #ifndef _TelepathyQt_profile_h_HEADER_GUARD_
00024 #define _TelepathyQt_profile_h_HEADER_GUARD_
00025 
00026 #ifndef IN_TP_QT_HEADER
00027 #error IN_TP_QT_HEADER
00028 #endif
00029 
00030 #include <TelepathyQt/RequestableChannelClassSpec>
00031 #include <TelepathyQt/Types>
00032 
00033 #include <QDBusSignature>
00034 #include <QObject>
00035 #include <QString>
00036 #include <QVariant>
00037 
00038 namespace Tp
00039 {
00040 
00041 class ProtocolInfo;
00042 
00043 class TP_QT_EXPORT Profile : public RefCounted
00044 {
00045     Q_DISABLE_COPY(Profile);
00046 
00047 public:
00048     static ProfilePtr createForServiceName(const QString &serviceName);
00049     static ProfilePtr createForFileName(const QString &fileName);
00050 
00051     ~Profile();
00052 
00053     QString serviceName() const;
00054 
00055     bool isValid() const;
00056 
00057     bool isFake() const;
00058 
00059     QString type() const;
00060     QString provider() const;
00061     QString name() const;
00062     QString iconName() const;
00063     QString cmName() const;
00064     QString protocolName() const;
00065 
00066     class Parameter
00067     {
00068     public:
00069         Parameter();
00070         Parameter(const Parameter &other);
00071         Parameter(const QString &name,
00072                   const QDBusSignature &dbusSignature,
00073                   const QVariant &value,
00074                   const QString &label,
00075                   bool mandatory);
00076         ~Parameter();
00077 
00078         QString name() const;
00079         QDBusSignature dbusSignature() const;
00080         QVariant::Type type() const;
00081         QVariant value() const;
00082         QString label() const;
00083 
00084         bool isMandatory() const;
00085 
00086         // TODO Add matches(Tp::Presence) method
00087 
00088         Parameter &operator=(const Parameter &other);
00089 
00090     private:
00091         friend class Profile;
00092 
00093         TP_QT_NO_EXPORT void setName(const QString &name);
00094         TP_QT_NO_EXPORT void setDBusSignature(const QDBusSignature &dbusSignature);
00095         TP_QT_NO_EXPORT void setValue(const QVariant &value);
00096         TP_QT_NO_EXPORT void setLabel(const QString &label);
00097         TP_QT_NO_EXPORT void setMandatory(bool mandatory);
00098 
00099         struct Private;
00100         friend struct Private;
00101         Private *mPriv;
00102     };
00103     typedef QList<Parameter> ParameterList;
00104 
00105     ParameterList parameters() const;
00106     bool hasParameter(const QString &name) const;
00107     Parameter parameter(const QString &name) const;
00108 
00109     class Presence
00110     {
00111     public:
00112         Presence();
00113         Presence(const Presence &other);
00114         Presence(const QString &id,
00115                  const QString &label,
00116                  const QString &iconName,
00117                  const QString &message,
00118                  bool disabled);
00119         ~Presence();
00120 
00121         QString id() const;
00122         QString label() const;
00123         QString iconName() const;
00124         bool canHaveStatusMessage() const;
00125 
00126         bool isDisabled() const;
00127 
00128         Presence &operator=(const Presence &other);
00129 
00130     private:
00131         friend class Profile;
00132 
00133         TP_QT_NO_EXPORT void setId(const QString &id);
00134         TP_QT_NO_EXPORT void setLabel(const QString &label);
00135         TP_QT_NO_EXPORT void setIconName(const QString &iconName);
00136         TP_QT_NO_EXPORT void setMessage(const QString &message);
00137         TP_QT_NO_EXPORT void setDisabled(bool disabled);
00138 
00139         struct Private;
00140         friend struct Private;
00141         Private *mPriv;
00142     };
00143     typedef QList<Presence> PresenceList;
00144 
00145     bool allowOtherPresences() const;
00146     PresenceList presences() const;
00147     bool hasPresence(const QString &id) const;
00148     Presence presence(const QString &id) const;
00149 
00150     RequestableChannelClassSpecList unsupportedChannelClassSpecs() const;
00151 
00152 private:
00153     friend class Account;
00154     friend class ProfileManager;
00155 
00156     TP_QT_NO_EXPORT Profile();
00157     TP_QT_NO_EXPORT Profile(const QString &serviceName, const QString &cmName,
00158             const QString &protocolName, const ProtocolInfo &protocolInfo);
00159 
00160     TP_QT_NO_EXPORT void setServiceName(const QString &serviceName);
00161     TP_QT_NO_EXPORT void setFileName(const QString &fileName);
00162 
00163     TP_QT_NO_EXPORT static QStringList searchDirs();
00164 
00165     struct Private;
00166     friend struct Private;
00167     Private *mPriv;
00168 };
00169 
00170 } // Tp
00171 
00172 Q_DECLARE_METATYPE(Tp::Profile::Parameter);
00173 Q_DECLARE_METATYPE(Tp::Profile::Presence);
00174 
00175 #endif


Copyright © 2008-2011 Collabora Ltd. and Nokia Corporation
Telepathy-Qt 0.9.3