RoomSelector::RoomSelector(AbstractClient *_client, QWidget *parent) : QGroupBox(parent), client(_client) { roomList = new QTreeWidget; roomList->setRootIsDecorated(false); roomList->setColumnCount(5); roomList->header()->setStretchLastSection(false); roomList->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); roomList->header()->setSectionResizeMode(1, QHeaderView::Stretch); roomList->header()->setSectionResizeMode(2, QHeaderView::ResizeToContents); roomList->header()->setSectionResizeMode(3, QHeaderView::ResizeToContents); joinButton = new QPushButton; connect(joinButton, SIGNAL(clicked()), this, SLOT(joinClicked())); QHBoxLayout *buttonLayout = new QHBoxLayout; buttonLayout->addStretch(); buttonLayout->addWidget(joinButton); QVBoxLayout *vbox = new QVBoxLayout; vbox->addWidget(roomList); vbox->addLayout(buttonLayout); retranslateUi(); setLayout(vbox); connect(client, SIGNAL(listRoomsEventReceived(const Event_ListRooms &)), this, SLOT(processListRoomsEvent(const Event_ListRooms &))); connect(roomList, SIGNAL(activated(const QModelIndex &)), this, SLOT(joinClicked())); client->sendCommand(client->prepareSessionCommand(Command_ListRooms())); }
void ChannelsJoinDialog::editReturnPressed() { joinClicked(); }
ChannelsJoinDialog::ChannelsJoinDialog(const char * name) : QDialog(g_pMainWindow) { setObjectName(name); setWindowTitle(__tr2qs("Join Channels")); setWindowIcon(*(g_pIconManager->getSmallIcon(KviIconManager::Channel))); m_pConsole = 0; QGridLayout * g = new QGridLayout(this); m_pTreeWidget = new ChannelsJoinDialogTreeWidget(this); m_pTreeWidget->setHeaderLabel(__tr2qs("Channel")); m_pTreeWidget->setRootIsDecorated(true); m_pTreeWidget->setSelectionMode(QAbstractItemView::SingleSelection); g->addWidget(m_pTreeWidget,0,0,1,2); //connect(m_pTreeWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem *,int)),this,SLOT(itemDoubleClicked(QTreeWidgetItem *,int))); m_pGroupBox = new KviTalGroupBox(Qt::Horizontal,__tr2qs("Channel" ),this); QString szMsg = __tr2qs("Name"); szMsg.append(":"); new QLabel(szMsg,m_pGroupBox); m_pChannelEdit = new QLineEdit(m_pGroupBox); connect(m_pChannelEdit,SIGNAL(returnPressed()), this, SLOT(editReturnPressed())); connect(m_pChannelEdit,SIGNAL(textChanged(const QString &)),this,SLOT(editTextChanged(const QString &))); szMsg = __tr2qs("Password"); szMsg.append(":"); QLabel(szMsg,m_pGroupBox); m_pPass = new QLineEdit(m_pGroupBox); m_pPass->setEchoMode(QLineEdit::Password); g->addWidget(m_pGroupBox,1,0,1,2); KviTalHBox * hb = new KviTalHBox(this); hb->setSpacing(4); g->addWidget(hb,2,0,1,2,Qt::AlignHCenter); m_pJoinButton = new QPushButton(__tr2qs("&Join"),hb); // Join on return pressed m_pJoinButton->setDefault(true); connect(m_pJoinButton,SIGNAL(clicked()),this,SLOT(joinClicked())); m_pRegButton = new QPushButton(__tr2qs("&Register"),hb); // Join on return pressed connect(m_pRegButton,SIGNAL(clicked()),this,SLOT(regClicked())); m_pClearButton = new QPushButton(__tr2qs("Clear Recent"),hb); connect(m_pClearButton,SIGNAL(clicked()),this,SLOT(clearClicked())); m_pShowAtStartupCheck = new QCheckBox(__tr2qs("Show this window after connecting"),this); m_pShowAtStartupCheck->setChecked(KVI_OPTION_BOOL(KviOption_boolShowChannelsJoinOnIrc)); g->addWidget(m_pShowAtStartupCheck,3,0); QPushButton * cancelButton = new QPushButton(__tr2qs("Close"),this); connect(cancelButton,SIGNAL(clicked()),this,SLOT(cancelClicked())); g->addWidget(cancelButton,3,1); /* KviTalHBox * hb = new KviTalHBox(this); hb->setSpacing(4); QPushButton * namesButton = new QPushButton("/names", hb); connect(namesButton,SIGNAL(clicked()),this,SLOT(namesClicked())); QPushButton * whoButton = new QPushButton("/who", hb); connect(whoButton,SIGNAL(clicked()),this,SLOT(whoClicked())); g->addWidget(hb,2,0); */ g->setRowStretch(0,1); g->setColumnStretch(0,1); fillListView(); if(g_rectChannelsJoinGeometry.y() < 5) g_rectChannelsJoinGeometry.setY(5); resize(g_rectChannelsJoinGeometry.width(),g_rectChannelsJoinGeometry.height()); //move(g_rectChannelsJoinGeometry.x(),g_rectChannelsJoinGeometry.y()); QRect rect = g_pApp->desktop()->screenGeometry(g_pMainWindow); move(rect.x() + ((rect.width() - g_rectChannelsJoinGeometry.width())/2),rect.y() + ((rect.height() - g_rectChannelsJoinGeometry.height())/2)); enableJoin(); }
void ChannelsJoinDialogTreeWidget::mousePressEvent(QMouseEvent *e) { e->ignore(); QTreeWidgetItem * it = itemAt(e->pos()); ChannelsJoinDialog *pDialog = (ChannelsJoinDialog*) parentWidget(); if(!it || !pDialog) { QTreeWidget::mousePressEvent(e); return; } setCurrentItem(it); if(it->type() == ChannelsJoinDialog::HeaderItem) { QTreeWidget::mousePressEvent(e); return; } if(e->button() & Qt::RightButton) { pDialog->itemSelected(); if(!m_pJoinPopup) { m_pJoinPopup = new QMenu(this); m_pJoinPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Join)),__tr2qs("Join"),pDialog,SLOT(joinClicked())); m_pJoinPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Discard)),__tr2qs("Delete"),pDialog,SLOT(deleteClicked())); } m_pJoinPopup->popup(QCursor::pos()); } else { pDialog->itemSelected(); } }