26 #ifndef LIBQUTIM_CHATSESSION_H
27 #define LIBQUTIM_CHATSESSION_H
34 namespace qutim_sdk_0_3
39 class ChatSessionPrivate;
40 class ChatLayerPrivate;
46 Q_PROPERTY(
bool active READ isActive WRITE setActive NOTIFY activated)
47 Q_PROPERTY(qutim_sdk_0_3::
MessageList unread READ unread NOTIFY unreadChanged)
48 Q_PROPERTY(QDateTime dateOpened READ dateOpened WRITE setDateOpened NOTIFY dateOpenedChanged)
52 virtual
ChatUnit *getUnit() const = 0;
53 Q_INVOKABLE inline qutim_sdk_0_3::
ChatUnit *unit()
const {
return getUnit(); }
56 virtual QTextDocument *getInputField() = 0;
57 virtual void markRead(quint64
id) = 0;
60 QDateTime dateOpened()
const;
61 void setDateOpened(
const QDateTime &date);
66 void setActive(
bool active);
69 {
Message msg(text);
return appendMessage(msg); }
71 virtual void doSetActive(
bool active) = 0;
74 void dateOpenedChanged(
const QDateTime &date);
79 void activated(
bool active);
83 virtual void virtual_hook(
int id,
void *data);
84 friend class MessageHandlerHook;
86 QScopedPointer<ChatSessionPrivate> d_ptr;
93 Q_CLASSINFO(
"Service",
"ChatLayer")
94 Q_PROPERTY(
bool alertStatus READ isAlerted WRITE alert NOTIFY alertStatusChanged)
99 ChatSession *getSession(QObject *obj,
bool create = true);
102 Q_INVOKABLE inline qutim_sdk_0_3::
ChatSession *session(QObject *obj,
bool create = true);
104 Q_INVOKABLE virtual QList<qutim_sdk_0_3::
ChatSession*> sessions() = 0;
105 bool isAlerted() const;
107 void alert(
int msecs);
108 bool event(QEvent *);
111 void sessionCreated(qutim_sdk_0_3::
ChatSession *session);
112 void alertStatusChanged(
bool);
117 virtual
void virtual_hook(
int id,
void *data);
118 QScopedPointer<ChatLayerPrivate> d_ptr;
123 return getSession(obj, create);
131 #endif // LIBQUTIM_CHATSESSION_H