1 /***************************************************************************
2 Copyright 2006 David Nolden <david.nolden.kdevelop@art-master.de>
3 ***************************************************************************/
5 /***************************************************************************
7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. *
12 ***************************************************************************/
13 #ifndef MESSAGEHISTORY_H
14 #define MESSAGEHISTORY_H
16 #include "ui_kdevteamwork_messagehistory.h"
20 #include "kdevteamwork_user.h"
21 #include "safelogger.h"
25 typedef SafeSharedPtr
<Logger
> LoggerPointer
;
30 class KDevTeamworkTextMessage
;
32 typedef SafeSharedPtr
<KDevTeamworkTextMessage
, MessageSerialization
> HistoryMessagePointer
;
34 class QStandardItemModel
;
36 class GuiMessageHistory
: public QObject
, public SafeLogger
{
39 typedef QList
<KDevTeamworkUserPointer
> UserList
;
40 typedef QMap
<KDevTeamworkUserPointer
, bool> UserSet
;
41 ///Empty list means All Users
42 explicit GuiMessageHistory( MessageManager
* manager
, UserList users
= UserList(), const QString
& context
= "" );
46 void slotAllMessages();
47 void slotAllDevelopers();
48 void slotNewMessage( const HistoryMessagePointer
& );
49 void slotUserStateChanged( const KDevTeamworkUserPointer
& user
);
50 void slotSelectionChanged();
51 void slotUpdateMessages();
53 void messageItemClicked( const QModelIndex
& index
);
54 void updateMessageUserIcons();
57 void typeFilterChanged( int index
);
58 void contextFilterChanged( int index
);
61 bool fitMessageDate( const HistoryMessagePointer
& msg
);
62 void showMessage( const HistoryMessagePointer
& msg
);
63 void fillDeveloperList();
64 void updateUserIcon( const KDevTeamworkUserPointer
& user
);
65 UserSet
selectedUsers();
69 void applyFilters( int firstN
= 0 );
71 virtual std::string
logPrefix() {
72 return "GuiMessageHistory: ";
76 void addUser( const KDevTeamworkUserPointer
& user
);
80 MessageManager
* m_manager
;
81 Ui_MessageHistory m_widgetData
;
82 QStandardItemModel
* m_developersModel
;
83 QStandardItemModel
* m_messagesModel
;
84 QTimer
* m_updateTimer
;
85 QTimer
* m_userIconUpdateTimer
;
87 QString m_defaultContext
;
97 QList
<KDevTeamworkUserPointer
> m_changedUsers
;