void Client::registerWithServer(){ RegisterDialog rd(this); if(rd.exec()){ QString name = rd.name(); QString pass = rd.pass(); userLineEdit->setText(name); passLineEdit->setText(pass); disconnect(tcpSocket, SIGNAL(connected()), this, SLOT(sendLoginInfo())); requestNewConnection(); connect(tcpSocket, SIGNAL(connected()), this, SLOT(sendRegistration())); } }
void ItemSignalHandler::newConnectionRequested(QPointF p, QGraphicsItem *it) { emit requestNewConnection(p,it); }
Client::Client(QWidget *parent) : QDialog(parent), networkSession(0) { // find out which IP to connect to QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); // use the first non-localhost IPv4 address for (int i = 0; i < ipAddressesList.size(); ++i) { if (ipAddressesList.at(i) != QHostAddress::LocalHost && ipAddressesList.at(i).toIPv4Address()) { ipAddress = ipAddressesList.at(i).toString(); break; } } // if we did not find one, use IPv4 localhost if (ipAddress.isEmpty()) ipAddress = QHostAddress(QHostAddress::LocalHost).toString(); userLabel = new QLabel("Username: "******"Password: "******"Register"); loginButton = new QPushButton("Login"); cancelButton = new QPushButton("Cancel"); buttonBox = new QDialogButtonBox(); buttonBox->addButton(registerButton, QDialogButtonBox::ActionRole); buttonBox->addButton(loginButton, QDialogButtonBox::ActionRole); buttonBox->addButton(cancelButton, QDialogButtonBox::RejectRole); mainLayout = new QGridLayout; mainLayout->addWidget(userLabel, 0, 0, 1, 2); mainLayout->addWidget(userLineEdit, 1, 0, 1, 5); mainLayout->addWidget(passLabel, 2, 0, 1, 2); mainLayout->addWidget(passLineEdit, 3, 0, 1, 5); mainLayout->addWidget(statusLabel, 4, 0, 3, 4); mainLayout->addWidget(buttonBox, 7, 1, 1, 2); setLayout(mainLayout); tcpSocket = new QTcpSocket(this); connect(registerButton, SIGNAL(clicked()), this, SLOT(registerWithServer())); connect(cancelButton, SIGNAL(clicked()), this, SLOT(close())); connect(loginButton, SIGNAL(clicked()), this, SLOT(requestNewConnection())); connect(tcpSocket, SIGNAL(connected()), this, SLOT(sendLoginInfo())); connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(updateLabels())); //connect(tcpSocket, SIGNAL(disconnected()), this, SLOT(connectionClosedByServer())); QNetworkConfigurationManager manager; if (manager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired) { // Get saved network configuration QSettings settings(QSettings::UserScope, QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("QtNetwork")); const QString id = settings.value(QLatin1String("DefaultNetworkConfiguration")).toString(); settings.endGroup(); // If the saved network configuration is not currently discovered use the system default QNetworkConfiguration config = manager.configurationFromIdentifier(id); if ((config.state() & QNetworkConfiguration::Discovered) != QNetworkConfiguration::Discovered) { config = manager.defaultConfiguration(); } networkSession = new QNetworkSession(config, this); connect(networkSession, SIGNAL(opened()), this, SLOT(sessionOpened())); statusLabel->setText(tr("Opening network session.")); networkSession->open(); } }