void ClientApplication::start() {
	if (!parseCommandLine()) {
		QMessageBox::critical(NULL, applicationName(), trUtf8("Error in the command line arguments. Arguments:\n--host <h>\tConnect to the server on host <h>.\n--local\tRun client locally.\n--port <p>\tUse port <p> to connect to the server."));
		quit();
		return;
	}
	if (mode == mUnspecified) {
		ConnectDialog connectDialog;
		int code = connectDialog.exec();
		if (code == QDialog::Rejected) {
			quit();
			return;
		}
		if (connectDialog.local()) {
			mode = mLocal;
		}
		else {
			mode = mRemote;
			host = connectDialog.host();
			port = connectDialog.port();
		}
	}
	if (mode == mLocal) {
		theTrainer.reset(new Trainer());
		showMainWindow();
	}
	else {
		ProxyTrainer *trainer = new ProxyTrainer();
		theTrainer.reset(trainer);
		connect(trainer, SIGNAL(socketConnected()), SLOT(showMainWindow()));
		connect(trainer, SIGNAL(socketDisconnected()), SLOT(socketDisconnected()));
		connect(trainer, SIGNAL(socketError(QString)), SLOT(socketError(QString)));
		trainer->socketConnectToHost(host, port);
	}
}
Esempio n. 2
0
int runGm(int argc,  char *argv[])
{
    QApplication a(argc, argv);
	//use utf8 
	ndstr_set_code(APO_QT_SRC_TEXT_ENCODE);
	initWorkingPath();

	ConnectDialog dlg;

	_LOAD_XML(editorSetting, CONFIG_FILE_PATH, "utf8", 0);
	_LOAD_XML(xmlSend, "../cfg/gm_msg.xml", "utf8", 0);
	
	//LogicEngineRoot::setSettingFile(CONFIG_FILE_PATH);
	if (!LogicCompiler::get_Instant()->setConfigFile(CONFIG_FILE_PATH, ND_ENCODE_UTF8)) {
		QMessageBox::critical(NULL, "Error", "open config file error");
		exit(1);
	}

	dlg.m_editor_setting = LogicCompiler::get_Instant()->getConfig();
	dlg.m_gmCfg = &xmlSend;

	dlg.LoadClientScript("../data/client_script.bin","../data/cehua_data.dat");


	dlg.exec();

	ndxml_save_encode(&xmlSend, "../cfg/gm_msg.xml", E_SRC_CODE_UTF_8, E_SRC_CODE_UTF_8);
	ndxml_destroy(&xmlSend);

	//WriteLog("...\n connect server end!");

	dlg.show();
	return a.exec();
}
Esempio n. 3
0
void Gomoku::on_connectButton_clicked() {
    ConnectDialog dialog;

    if (dialog.exec() == QDialog::Accepted) {
        socket = new QTcpSocket(this);
        socket->connectToHost(QHostAddress(dialog.getHostIp()), 8888);

        if (socket->waitForConnected(3000)) {
//            ui->undoButton->setEnabled(true);
            ui->quitButton->setEnabled(true);
            ui->gameboard->playerColor = Qt::white;
            ui->gameboard->enemyColor = Qt::black;
            ui->createButton->setEnabled(false);
            ui->connectButton->setEnabled(false);
            connect(socket, &QTcpSocket::readyRead, this, &Gomoku::readData);
            connect(ui->gameboard, &GameBoard::addChess, this, &Gomoku::sendChessInfo);
            connect(ui->gameboard, &GameBoard::win, this, &Gomoku::sendWin);
            connect(ui->quitButton, &QPushButton::clicked, this, &Gomoku::requestQuit);
            connect(ui->undoButton, &QPushButton::clicked, this, &Gomoku::requestUndo);
            connect(ui->saveButton, &QPushButton::clicked, this, &Gomoku::sendSave);
            connect(ui->loadButton, &QPushButton::clicked, this, &Gomoku::requestLoad);
        } else {
            QMessageBox::warning(this, tr("Error"), tr("Connection failed."));
        }
    }
}
Esempio n. 4
0
QString MainWindow::runConnectionDialog() {
    QSettings settings;
    ConnectDialog d;
    d.url(settings.value("url").toString());
    int r = d.exec();
    if (r == 0) {
        return "";
    }

    return d.url();
}
Esempio n. 5
0
int main(int argc, char *argv[])
{
    QApplication app(argc,argv);

    QTranslator qponTranslator;
    qponTranslator.load("qpon_" + QLocale::system().name());
    app.installTranslator(&qponTranslator);

    ConnectDialog d;
    d.setWindowIcon(QIcon(":/phone.png"));
    d.show();

    return app.exec();
}
Esempio n. 6
0
void MainWindow::connectToNetwork()
{
	// Se invoca cuando se presiona el boton Connect. Solicitar los datos de conexion al
	// usuario usando un dialogo para tal fin
	ConnectDialog* dialog = new ConnectDialog(this);

	// Muestra al dialogo en forma modal con el metodo exec(). Es decir, el dialogo reacciona
	// a eventos, mientras que el mainWindow se mantiene bloqueado. Esto ocurre por invocar al
	// metodo exec(), el cual impone otro ciclo de eventos que oculta el ciclo de eventos de la
	// aplicacion. Si se quiere que tanto el dialog como el MainWindow reaccionen a eventos
	// se invocaria al metodo dialog->show()
	if ( dialog->exec() )
	{
		// El dialogo fue aceptado. Obtener los datos escritos del usuario y establecer la conexion
		quint16 port = dialog->getPort().toUInt();

		// El establecimiento de la conexion depende de si el usuario marco "Servidor" o "Cliente"
		if ( dialog->shouldConnectAsServer() )
			connectAsServer(port);
		else
			connectAsClient(dialog->getHost(), port);
	}
}
Esempio n. 7
0
void MainWindow::ShowConnectDialog()
{
  const QUrl url("http://autosong.ninjam.com/serverlist.php");
  ConnectDialog connectDialog;
  QSettings settings;
  QStringList hosts = settings.value("connect/hosts").toStringList();

  connectDialog.resize(600, 500);
  connectDialog.loadServerList(url);
  connectDialog.setRecentHostsList(hosts);
  connectDialog.setUser(settings.value("connect/user").toString());
  connectDialog.setIsPublicServer(settings.value("connect/public", true).toBool());

  if (connectDialog.exec() != QDialog::Accepted) {
    return;
  }

  hosts.prepend(connectDialog.host());
  hosts.removeDuplicates();
  hosts = hosts.mid(0, 16); /* limit maximum number of elements */

  settings.setValue("connect/hosts", hosts);
  settings.setValue("connect/user", connectDialog.user());
  settings.setValue("connect/public", connectDialog.isPublicServer());

  QString user = connectDialog.user();
  if (connectDialog.isPublicServer()) {
    user.prepend("anonymous:");
  }

  Connect(connectDialog.host(), user, connectDialog.pass());
}
Esempio n. 8
0
void Home::openConnectDialog()
{
	ConnectDialog* connectDialog = new ConnectDialog();
	this->close();
	connectDialog->show();
}