blob: 0f818bba81573c672cb56530d4e6abed18668d55 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#ifndef ALISTBOX_H
#define ALISTBOX_H
#include <qlistbox.h>
#include "ksopts.h"
class nickListItem : public QListBoxItem
{
public:
nickListItem();
nickListItem(const nickListItem &old);
virtual ~nickListItem();
virtual int height ( const QListBox * ) const;
virtual int width ( const QListBox * ) const;
QString text () const { return string; }
const QPixmap* pixmap () const;
bool op() const { return is_op; }
bool voice() const { return is_voice; }
bool away() const { return is_away; }
bool ircOp() const { return is_ircop; }
void setOp(bool _op = FALSE);
void setVoice(bool _voice = FALSE);
void setAway(bool _away = FALSE);
void setIrcOp(bool _ircop = FALSE);
void setText(const QString &str) { string = str; }
QString nickPrefix() const;
void forceColour(const QColor *col);
nickListItem &operator= ( const nickListItem & nli );
protected:
virtual void paint ( QPainter * );
private:
bool is_op:1;
bool is_voice:1;
bool is_away:1;
bool is_ircop:1;
QString string;
const QColor *forcedCol;
};
class aListBox : public QListBox
{
Q_OBJECT
public:
aListBox(QWidget *parent = 0, const char *name = 0);
virtual ~aListBox();
void clear();
void inSort ( nickListItem *);
void inSort ( QString text, bool top=FALSE);
nickListItem *item(int index);
bool isTop(int index);
int findNick(const QString &str);
void clearAdvOps();
bool needNickPrefix() const;
void setNickListDirty()
{ m_nickListDirty = true; }
unsigned short int nickPrefixWidth() const
{ return m_nickPrefixWidth; }
virtual void fontChange( const QFont &f );
static QString nickPrefixOp() { return QString::fromLatin1( "o" ); }
static QString nickPrefixVoice() { return QString::fromLatin1( "v" ); }
static QString nickPrefixAway() { return QString::fromLatin1( "a" ); }
static QString nickPrefixIrcOp() { return QString::fromLatin1( "O" ); }
signals:
void contextMenuRequested(int index);
void selectedNick(const QString&);
void urlsDropped( const QStringList& urls, const QString& nick );
void textDropped( const QListBoxItem *item, const QString& text );
protected:
virtual int findSep();
virtual int searchFor(const QString &nick, bool &found, bool top);
virtual void dragMoveEvent( QDragMoveEvent * );
virtual void dropEvent( QDropEvent * );
private slots:
void reEmitContextMenuRequest( QListBoxItem *item );
private:
void updateNeedNickPrefixFlag() const;
void updateNickPrefixWidth();
QPalette p_scroll;
mutable bool m_nickListDirty;
mutable bool m_needNickPrefix;
int m_nickPrefixWidth;
};
#endif
|