QTfrontend/chatwidget.cpp
changeset 1391 735f6d43780b
parent 1360 d3e285281c26
child 1405 ee4b28a1861d
equal deleted inserted replaced
1390:914fa66aec05 1391:735f6d43780b
    16  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
    16  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
    17  */
    17  */
    18 
    18 
    19 #include <QListWidget>
    19 #include <QListWidget>
    20 #include <QLineEdit>
    20 #include <QLineEdit>
       
    21 #include <QAction>
    21 
    22 
    22 #include "chatwidget.h"
    23 #include "chatwidget.h"
    23 
    24 
    24 HWChatWidget::HWChatWidget(QWidget* parent) :
    25 HWChatWidget::HWChatWidget(QWidget* parent) :
    25   QWidget(parent),
    26   QWidget(parent),
    44 
    45 
    45   chatNicks = new QListWidget(this);
    46   chatNicks = new QListWidget(this);
    46   chatNicks->setMinimumHeight(10);
    47   chatNicks->setMinimumHeight(10);
    47   chatNicks->setMinimumWidth(10);
    48   chatNicks->setMinimumWidth(10);
    48   chatNicks->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    49   chatNicks->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
       
    50   chatNicks->setContextMenuPolicy(Qt::ActionsContextMenu);
    49   mainLayout.addWidget(chatNicks, 0, 1);
    51   mainLayout.addWidget(chatNicks, 0, 1);
       
    52 
       
    53   QAction * acBan = new QAction(QAction::tr("Kick"), chatNicks);
       
    54   connect(acBan, SIGNAL(triggered(bool)), this, SLOT(onKick()));
       
    55   chatNicks->insertAction(0, acBan);
    50 }
    56 }
    51 
    57 
    52 void HWChatWidget::returnPressed()
    58 void HWChatWidget::returnPressed()
    53 {
    59 {
    54   emit chatLine(chatEditLine->text());
    60   emit chatLine(chatEditLine->text());
    63   w->setSelectionMode(QAbstractItemView::NoSelection);
    69   w->setSelectionMode(QAbstractItemView::NoSelection);
    64 }
    70 }
    65 
    71 
    66 void HWChatWidget::nickAdded(const QString& nick)
    72 void HWChatWidget::nickAdded(const QString& nick)
    67 {
    73 {
    68   chatNicks->addItem(nick);
    74 	QListWidgetItem * item = new QListWidgetItem(nick);
       
    75 	chatNicks->addItem(item);
    69 }
    76 }
    70 
    77 
    71 void HWChatWidget::nickRemoved(const QString& nick)
    78 void HWChatWidget::nickRemoved(const QString& nick)
    72 {
    79 {
    73   QList<QListWidgetItem *> items=chatNicks->findItems(nick, Qt::MatchExactly);
    80   QList<QListWidgetItem *> items = chatNicks->findItems(nick, Qt::MatchExactly);
    74   for(QList<QListWidgetItem *>::iterator it=items.begin(); it!=items.end();) {
    81   for(QList<QListWidgetItem *>::iterator it=items.begin(); it!=items.end();) {
    75     chatNicks->takeItem(chatNicks->row(*it));
    82     chatNicks->takeItem(chatNicks->row(*it));
    76     ++it;
    83     ++it;
    77   }
    84   }
    78 }
    85 }
    80 void HWChatWidget::clear()
    87 void HWChatWidget::clear()
    81 {
    88 {
    82 	chatText->clear();
    89 	chatText->clear();
    83 	chatNicks->clear();
    90 	chatNicks->clear();
    84 }
    91 }
       
    92 
       
    93 void HWChatWidget::onKick()
       
    94 {
       
    95 	QListWidgetItem * curritem = chatNicks->currentItem();
       
    96 	if (curritem)
       
    97 		emit kick(curritem->text());
       
    98 }