qnetdice

diff src/mainwin.cc @ 3:2e57c80653af

more stuff
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 23 Dec 2013 06:09:25 +0200
parents 92377189a5c6
children
line diff
     1.1 --- a/src/mainwin.cc	Sun Dec 22 04:09:23 2013 +0200
     1.2 +++ b/src/mainwin.cc	Mon Dec 23 06:09:25 2013 +0200
     1.3 @@ -1,8 +1,10 @@
     1.4 +#include <QDialog>
     1.5  #include "mainwin.h"
     1.6  #include "ui_mainwin.h"
     1.7  #include "ui_server.h"
     1.8  #include "rollwidget.h"
     1.9  #include "main.h"
    1.10 +#include "logger.h"
    1.11  
    1.12  MainWindow::MainWindow(QWidget *parent)
    1.13  	: QMainWindow(parent),
    1.14 @@ -17,8 +19,10 @@
    1.15  	connect(ui->bn_clear, SIGNAL(clicked()), this, SLOT(clear_dice()));
    1.16  	connect(ui->bn_roll_all, SIGNAL(clicked()), this, SLOT(roll_all()));
    1.17  
    1.18 -	//connect(ui->action_connect, SIGNAL(triggered()), this, SLOT(start_client()));
    1.19 -	//connect(ui->action_start_server, SIGNAL(triggered()), this, SLOT(start_server()));
    1.20 +	connect(ui->action_connect, SIGNAL(triggered()), this, SLOT(start_client()));
    1.21 +	connect(ui->action_start_server, SIGNAL(triggered()), this, SLOT(start_server()));
    1.22 +
    1.23 +	connect(ui->action_quit, SIGNAL(triggered()), this, SLOT(close()));
    1.24  }
    1.25  
    1.26  MainWindow::~MainWindow()
    1.27 @@ -64,10 +68,29 @@
    1.28  
    1.29  void MainWindow::start_client()
    1.30  {
    1.31 -	Ui::ServerDialog *dlg = new Ui::ServerDialog;
    1.32 -	dlg->setupUi(0);
    1.33  }
    1.34  
    1.35  void MainWindow::start_server()
    1.36  {
    1.37 +	QDialog *dlg_server = new QDialog(0, 0);
    1.38 +	Ui_ServerDialog ui;
    1.39 +	ui.setupUi(dlg_server);
    1.40 +
    1.41 +	if(dlg_server->exec()) {
    1.42 +		bool valid;
    1.43 +		int port = ui.tx_port->text().toInt(&valid);
    1.44 +
    1.45 +		if(!valid) {
    1.46 +			log_message("invalid port: %s\n", ui.tx_port->text().toUtf8().data());
    1.47 +			return;
    1.48 +		}
    1.49 +
    1.50 +		std::string passwd = ui.tx_passwd->text().toUtf8().data();
    1.51 +		if(passwd.empty()) {
    1.52 +			log_message("failed to start server: empty password field\n");
    1.53 +			return;
    1.54 +		}
    1.55 +
    1.56 +		::start_server(port, passwd.c_str());
    1.57 +	}
    1.58  }