Don't keep compiling/run if something failed.
[kdevelopdvcssupport.git] / plugins / teamwork / guimessagehistory.h
blobf972586fd84d744d43f7d80ddd2e3aae4fe01c36
1 /***************************************************************************
2 Copyright 2006 David Nolden <david.nolden.kdevelop@art-master.de>
3 ***************************************************************************/
5 /***************************************************************************
6 * *
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. *
11 * *
12 ***************************************************************************/
13 #ifndef MESSAGEHISTORY_H
14 #define MESSAGEHISTORY_H
16 #include "ui_kdevteamwork_messagehistory.h"
17 #include <QList>
18 #include <QObject>
19 #include <QWidget>
20 #include "kdevteamwork_user.h"
21 #include "safelogger.h"
23 namespace Teamwork {
24 class Logger;
25 typedef SafeSharedPtr<Logger> LoggerPointer;
28 class KDialog;
29 class MessageManager;
30 class KDevTeamworkTextMessage;
32 typedef SafeSharedPtr<KDevTeamworkTextMessage, MessageSerialization> HistoryMessagePointer;
34 class QStandardItemModel;
36 class GuiMessageHistory : public QObject, public SafeLogger {
37 Q_OBJECT
38 public:
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 = "" );
43 ~GuiMessageHistory();
45 public slots:
46 void slotAllMessages();
47 void slotAllDevelopers();
48 void slotNewMessage( const HistoryMessagePointer& );
49 void slotUserStateChanged( const KDevTeamworkUserPointer& user );
50 void slotSelectionChanged();
51 void slotUpdateMessages();
52 void slotExit();
53 void messageItemClicked( const QModelIndex& index );
54 void updateMessageUserIcons();
56 ///Filters:
57 void typeFilterChanged( int index );
58 void contextFilterChanged( int index );
60 private:
61 bool fitMessageDate( const HistoryMessagePointer& msg );
62 void showMessage( const HistoryMessagePointer& msg );
63 void fillDeveloperList();
64 void updateUserIcon( const KDevTeamworkUserPointer& user );
65 UserSet selectedUsers();
66 void fillMessages();
68 void clearFilters();
69 void applyFilters( int firstN = 0 );
71 virtual std::string logPrefix() {
72 return "GuiMessageHistory: ";
75 void clearUsers();
76 void addUser( const KDevTeamworkUserPointer& user );
78 bool m_allUsers;
79 UserSet m_users;
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;
86 KDialog* m_dialog;
87 QString m_defaultContext;
89 enum TableColumns {
90 TimeColumn = 0,
91 TypeColumn,
92 UserColumn,
93 TextColumn,
94 ColumnCount
97 QList<KDevTeamworkUserPointer> m_changedUsers;
100 #endif