QTfrontend/ui/widget/chatwidget.h
author nemo
Sat, 01 Mar 2014 14:52:36 -0500
changeset 10171 00f41ff0bf2d
parent 10108 c68cf030eded
child 10536 1010df878643
permissions -rw-r--r--
Script might well override a static map, but can't risk it not doing it, and preview completely failing. Better to just not try it for static maps. Some script cfg might help. Could also avoid unnnecessary preview regenerations even if the script was doing nothing at all.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
480
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
     1
/*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 486
diff changeset
     2
 * Hedgewars, a free turn based strategy game
486
7ea71cd3acd5 - Change proto version to 4
unc0rr
parents: 480
diff changeset
     3
 * Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
9998
736015b847e3 update copyright to 2014
sheepluva
parents: 9493
diff changeset
     4
 * Copyright (c) 2004-2014 Andrey Korotaev <unC0Rr@gmail.com>
480
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
     5
 *
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
     7
 * it under the terms of the GNU General Public License as published by
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
     8
 * the Free Software Foundation; version 2 of the License
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
     9
 *
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
    13
 * GNU General Public License for more details.
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
    14
 *
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
    15
 * You should have received a copy of the GNU General Public License
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
    16
 * along with this program; if not, write to the Free Software
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 9998
diff changeset
    17
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
480
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
    18
 */
09434d6c3865 GPL headers added
displacer
parents: 465
diff changeset
    19
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    20
#ifndef _CHAT_WIDGET_INCLUDED
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    21
#define _CHAT_WIDGET_INCLUDED
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    22
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    23
#include <QWidget>
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    24
#include <QString>
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    25
#include <QGridLayout>
6214
c06b7e2eb7a4 custom highlighting
sheepluva
parents: 6205
diff changeset
    26
#include <QList>
6229
4c834af76c3b * fix highlighting (i just broke it by not negating a boolean expression)
sheepluva
parents: 6227
diff changeset
    27
#include <QPair>
4899
8163c9aaad0c automatically convert hedgewars.org urls to actual links (in order to make support in the lobby/rooms easier
sheepluva
parents: 4897
diff changeset
    28
#include <QRegExp>
7720
8e6b79a020f8 Show more statuses in icons.
unc0rr
parents: 6952
diff changeset
    29
#include <QHash>
7723
ca05b576ec74 Start moving to players list model.
unc0rr
parents: 7720
diff changeset
    30
#include <QListWidgetItem>
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    31
6165
6fe3e922246e moving and renaming SDLs.*, making it a singleton; cleaning up class responsibilties wrt SDLInteraction; some comments
sheepluva
parents: 6147
diff changeset
    32
#include "SDLInteraction.h"
2775
3445ce5e9c79 Only beep in room, load sound in constructor
nemo
parents: 2773
diff changeset
    33
6147
b4d7d8d62feb feature-pimpin'-up the chat input line in frontend:
sheepluva
parents: 6060
diff changeset
    34
#include "SmartLineEdit.h"
b4d7d8d62feb feature-pimpin'-up the chat input line in frontend:
sheepluva
parents: 6060
diff changeset
    35
1520
f72f538eba05 Refactor chat widget to use QTextBrower instead of QListWidget:
unc0rr
parents: 1405
diff changeset
    36
class QTextBrowser;
f72f538eba05 Refactor chat widget to use QTextBrower instead of QListWidget:
unc0rr
parents: 1405
diff changeset
    37
class QLineEdit;
7723
ca05b576ec74 Start moving to players list model.
unc0rr
parents: 7720
diff changeset
    38
class QListView;
2773
e94f240a8a41 Have game beep when someone joins lobby/room. Controlled by Sound option
nemo
parents: 2706
diff changeset
    39
class QSettings;
7725
4ad05a478c6c Further work on moving to players list model
unc0rr
parents: 7723
diff changeset
    40
class QAbstractItemModel;
7740
076f57836ee3 Restore old context menu behavior
unc0rr
parents: 7725
diff changeset
    41
class QMenu;
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    42
6185
a6aa2d44f390 document css files better
sheepluva
parents: 6182
diff changeset
    43
/**
6200
6a4ace88d85a tweak and document abstract page
sheepluva
parents: 6197
diff changeset
    44
 * @brief Chat widget.
6185
a6aa2d44f390 document css files better
sheepluva
parents: 6182
diff changeset
    45
 *
a6aa2d44f390 document css files better
sheepluva
parents: 6182
diff changeset
    46
 * By default uses :res/css/chat.css as style sheet for chat.
a6aa2d44f390 document css files better
sheepluva
parents: 6182
diff changeset
    47
 * See \repo{res/css/chat.css} for a more detailed description.
a6aa2d44f390 document css files better
sheepluva
parents: 6182
diff changeset
    48
 *
a6aa2d44f390 document css files better
sheepluva
parents: 6182
diff changeset
    49
 * @see http://doc.qt.nokia.com/4.5/richtext-html-subset.html#css-properties
a6aa2d44f390 document css files better
sheepluva
parents: 6182
diff changeset
    50
 */
a6aa2d44f390 document css files better
sheepluva
parents: 6182
diff changeset
    51
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    52
class HWChatWidget : public QWidget
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    53
{
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    54
        Q_OBJECT
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    55
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    56
    public:
8179
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7742
diff changeset
    57
        HWChatWidget(QWidget* parent, bool notify);
6929
c305d31642ac reimplement auto-kick for ignored players (it was temporarily removed during refactoring)
sheepluva
parents: 6928
diff changeset
    58
        void setIgnoreListKick(bool enabled); ///< automatically kick people on ignore list (if possible)
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    59
        void setShowFollow(bool enabled);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    60
        static const QString & styleSheet();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    61
        void displayError(const QString & message);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    62
        void displayNotice(const QString & message);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    63
        void displayWarning(const QString & message);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    64
        void setUser(const QString & nickname);
7725
4ad05a478c6c Further work on moving to players list model
unc0rr
parents: 7723
diff changeset
    65
        void setUsersModel(QAbstractItemModel * model);
8179
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7742
diff changeset
    66
        void setSettings(QSettings * settings);
2845
19db164dd20d Frontend:
smxx
parents: 2779
diff changeset
    67
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    68
    protected:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    69
        virtual void dragEnterEvent(QDragEnterEvent * event);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    70
        virtual void dropEvent(QDropEvent * event);
9493
23c674bfa2e2 Scroll chat widget to bottom on show and resize events
unc0rr
parents: 9080
diff changeset
    71
        virtual void resizeEvent(QResizeEvent * event);
23c674bfa2e2 Scroll chat widget to bottom on show and resize events
unc0rr
parents: 9080
diff changeset
    72
        virtual void showEvent(QShowEvent * event);
6197
sheepluva
parents: 6194
diff changeset
    73
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    74
    private:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    75
        static QString * s_styleSheet;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    76
        static QStringList * s_displayNone;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    77
        static bool s_isTimeStamped;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    78
        static QString s_tsFormat;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    79
        static const QRegExp URLREGEXP;
6197
sheepluva
parents: 6194
diff changeset
    80
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    81
        static void setStyleSheet(const QString & styleSheet = "");
6180
0992fc5a4ad9 some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents: 6165
diff changeset
    82
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    83
        void addLine(const QString & cssClass, QString line, bool isHighlight = false);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    84
        bool parseCommand(const QString & line);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    85
        void discardStyleSheet();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    86
        void saveStyleSheet();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
    87
        QString linkedNick(const QString & nickname);
8451
8c7da08df048 Allow navigating backwards chat widget log while new lines are being added
unc0rr
parents: 8430
diff changeset
    88
        void beforeContentAdd();
8c7da08df048 Allow navigating backwards chat widget log while new lines are being added
unc0rr
parents: 8430
diff changeset
    89
        void afterContentAdd();
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
    90
8759
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
    91
        /**
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
    92
         * @brief Checks whether the message contains a highlight.
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
    93
         * @param sender the sender of the message
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
    94
         * @param message the message
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
    95
         * @return true if the sender is somebody else and the message contains a highlight, otherwise false
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
    96
         */
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
    97
        bool containsHighlight(const QString & sender, const QString & message);
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
    98
        /**
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
    99
         * @brief Escapes HTML chars in the message and converts URls to HTML links.
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   100
         * @param message the message to be converted to HTML
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   101
         * @return the HTML message
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   102
         */
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   103
        QString messageToHTML(const QString & message);
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   104
        void printChatString(
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   105
            const QString & nick,
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   106
            const QString & str,
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   107
            const QString & cssClassPart,
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   108
            bool highlight);
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   109
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   110
    public slots:
8759
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   111
        void onChatAction(const QString & nick, const QString & str);
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   112
        void onChatMessage(const QString & nick, const QString & str);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   113
        void onServerMessage(const QString& str);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   114
        void nickAdded(const QString& nick, bool notifyNick);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   115
        void nickRemoved(const QString& nick);
8759
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8451
diff changeset
   116
        void nickRemoved(const QString& nick, const QString& message);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   117
        void clear();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   118
        void adminAccess(bool);
8762
388d2bf73ff9 fix player info
sheepluva
parents: 8759
diff changeset
   119
        void onPlayerInfo(
388d2bf73ff9 fix player info
sheepluva
parents: 8759
diff changeset
   120
            const QString & nick,
388d2bf73ff9 fix player info
sheepluva
parents: 8759
diff changeset
   121
            const QString & ip,
388d2bf73ff9 fix player info
sheepluva
parents: 8759
diff changeset
   122
            const QString & version,
388d2bf73ff9 fix player info
sheepluva
parents: 8759
diff changeset
   123
            const QString & roomInfo);
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
   124
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   125
    signals:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   126
        void chatLine(const QString& str);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   127
        void kick(const QString & str);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   128
        void ban(const QString & str);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   129
        void info(const QString & str);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   130
        void follow(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   131
        void nickCountUpdate(int cnt);
8396
5123eac2f9d6 - Pass unknown chat commands to server
unc0rr
parents: 8179
diff changeset
   132
        void consoleCommand(const QString & command);
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
   133
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   134
    private:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   135
        bool m_isAdmin;
8430
5a5c34a75e1a Aesthetic improvements to chat widget. Also fixed the ghosting issue in a few areas by using repaint().
dag10
parents: 8396
diff changeset
   136
        QHBoxLayout mainLayout;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   137
        QTextBrowser* chatText;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   138
        QStringList chatStrings;
7723
ca05b576ec74 Start moving to players list model.
unc0rr
parents: 7720
diff changeset
   139
        QListView* chatNicks;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   140
        SmartLineEdit* chatEditLine;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   141
        QAction * acInfo;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   142
        QAction * acKick;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   143
        QAction * acBan;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   144
        QAction * acFollow;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   145
        QAction * acIgnore;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   146
        QAction * acFriend;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   147
        QSettings * gameSettings;
7740
076f57836ee3 Restore old context menu behavior
unc0rr
parents: 7725
diff changeset
   148
        QMenu * m_nicksMenu;
6928
9562ace15141 nemo said I was boring for removing the "hello" randomizer on room join.
sheepluva
parents: 6700
diff changeset
   149
        QStringList m_helloSounds;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   150
        QString m_hilightSound;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   151
        QString m_userNick;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   152
        QString m_clickedNick;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   153
        QList<QRegExp> m_highlights; ///< regular expressions used for highlighting
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   154
        bool notify;
6929
c305d31642ac reimplement auto-kick for ignored players (it was temporarily removed during refactoring)
sheepluva
parents: 6928
diff changeset
   155
        bool m_autoKickEnabled;
8451
8c7da08df048 Allow navigating backwards chat widget log while new lines are being added
unc0rr
parents: 8430
diff changeset
   156
        bool m_scrollToBottom;
8c7da08df048 Allow navigating backwards chat widget log while new lines are being added
unc0rr
parents: 8430
diff changeset
   157
        int m_scrollBarPos;
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
   158
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   159
    private slots:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   160
        void returnPressed();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   161
        void onBan();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   162
        void onKick();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   163
        void onInfo();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   164
        void onFollow();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   165
        void onIgnore();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   166
        void onFriend();
7742
e5e529dcc9bb - Finish conversion to nicks model
unc0rr
parents: 7741
diff changeset
   167
        void chatNickDoubleClicked(const QModelIndex & index);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6418
diff changeset
   168
        void linkClicked(const QUrl & link);
7740
076f57836ee3 Restore old context menu behavior
unc0rr
parents: 7725
diff changeset
   169
        void nicksContextMenuRequested(const QPoint & pos);
461
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
   170
};
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
   171
105af110b0e6 chatWidget with layout
displacer
parents:
diff changeset
   172
#endif // _CHAT_WIDGET_INCLUDED