⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 login2serverdlg.cpp

📁 用qt4 编写的局域网聊天工具
💻 CPP
字号:
/*************************************************************************** *   Copyright (C) 2007 by Anistratov Oleg                                 * *   ower86@gmail.com                                                      * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License version 2        * *   as published by the Free Software Foundation;                         * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * ***************************************************************************/#include "login2serverdlg.h"#include <QGridLayout>Login2ServerDlg::Login2ServerDlg(QStringList* ls, QStringList* ll, QWidget *parent, const QString& addr, const QString& nick) : QDialog(parent),  m_lastServers(ls),  m_lastLogins(ll),  m_finished(false){  QGridLayout* grid = new QGridLayout(this);//   m_ipEdit    = new QLineEdit(addr, this);//   m_loginEdit = new QLineEdit(nick, this);  m_ipCmbx    = new QComboBox(this);  m_loginCmbx = new QComboBox(this);  m_loginBtn  = new QPushButton(this);  m_abortBtn  = new QPushButton(this);  m_ipLab     = new QLabel(this);  m_loginLab  = new QLabel(this);  m_descriptionLab = new QLabel(this);  grid->addWidget(m_ipLab    , 0, 0);  grid->addWidget(m_ipCmbx   , 0, 1);  grid->addWidget(m_loginLab , 1, 0);  grid->addWidget(m_loginCmbx, 1, 1);  grid->addWidget(m_loginBtn , 2, 0, 1, 2);  grid->addWidget(m_abortBtn , 2, 0, 1, 2);  grid->addWidget(m_descriptionLab, 3, 0);  grid->setColumnStretch(1, 1);  grid->setColumnMinimumWidth(1, 150);  m_ipCmbx   ->setEditable(true);  m_loginCmbx->setEditable(true);  m_ipCmbx   ->setDuplicatesEnabled(false);  m_loginCmbx->setDuplicatesEnabled(false);  foreach(QString s, (*m_lastServers))//     m_ipCmbx->insertItem(0, s);    m_ipCmbx->addItem(s);  int idx;  if((idx = m_ipCmbx->findText(addr)) >= 0)    m_ipCmbx->removeItem(idx);  m_ipCmbx->insertItem(0, addr);  foreach(QString l, (*m_lastLogins))//     m_loginCmbx->insertItem(0, l);    m_loginCmbx->addItem(l);  if((idx = m_loginCmbx->findText(nick)) >= 0)    m_loginCmbx->removeItem(idx);  m_loginCmbx->insertItem(0, nick);  m_loginCmbx->setCurrentIndex(0);  m_ipCmbx   ->setCurrentIndex(0);  m_abortBtn->hide();  m_descriptionLab->hide();  retranslate();  connect(m_loginBtn, SIGNAL(clicked()), this, SLOT(slot_login()));  connect(m_abortBtn, SIGNAL(clicked()), this, SLOT(abort()));}Login2ServerDlg::~Login2ServerDlg(){  qDebug("[~Login2ServerDlg]");}void Login2ServerDlg::retranslate(){  m_ipLab   ->setText(tr("Server IP :"));  m_loginLab->setText(tr("Nickname :"));  m_loginBtn->setText(tr("Login"));  m_abortBtn->setText(tr("Abort"));  m_descriptionLab->setText("");}void Login2ServerDlg::slot_login(){  QString server = m_ipCmbx->lineEdit()->text();  QString login  = m_loginCmbx->lineEdit()->text();  m_descriptionLab->show();  if(m_finished)  {    accept();  }  else  {    m_loginBtn->hide();    m_abortBtn->show();    m_descriptionLab->setText(tr("Connecting to server..."));    emit wantLogin(QHostAddress(server), login);    if(m_lastServers->contains(server))      m_lastServers->removeAll(server);    m_lastServers->prepend(server);    if(m_lastLogins->contains(login))      m_lastLogins->removeAll(login);    m_lastLogins->prepend(login);    QString last;    int num;    num = QChatSettings::settings()->intOption("LastServersNum");    foreach(QString s, *m_lastServers)    {      num--;      last += s;      if(num < 0)        break;      last += "\n";    }    QChatSettings::settings()->setOption("LastServers", last);    last.clear();    num = QChatSettings::settings()->intOption("LastLoginsNum");    foreach(QString s, *m_lastLogins)    {      num--;      last += s;      if(num < 0)        break;      last += "\n";    }    QChatSettings::settings()->setOption("LastLogins", last);  }}void Login2ServerDlg::abort(){  m_loginBtn->show();  m_abortBtn->hide();  emit wantAbort();}void Login2ServerDlg::loginRejected(const QString& /*reason*/){}void Login2ServerDlg::loginAccepted(const QString &){}void Login2ServerDlg::loginFinished(int err, const QString & descr){  if(!err)  {    if(!descr.isEmpty())      m_descriptionLab->setText(descr);    else      m_descriptionLab->setText(tr("Login Accepted"));    m_finished = true;    m_loginBtn->setText(tr("Ok"));    m_ipCmbx   ->setEnabled(false);    m_loginCmbx->setEnabled(false);    emit loginSuccessful();  }  else    m_descriptionLab->setText(descr);  m_loginBtn->show();  m_abortBtn->hide();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -