establishing child-parent relation with the ao app

This commit is contained in:
David Skoland 2017-01-03 15:01:54 +01:00
parent a699b6eb9c
commit 455d6106e3
8 changed files with 122 additions and 9 deletions

View File

@ -34,4 +34,5 @@ HEADERS += lobby.h \
global_variables.h \ global_variables.h \
debug_functions.h \ debug_functions.h \
networkmanager.h \ networkmanager.h \
aoapplication.h aoapplication.h \
datatypes.h

View File

@ -1,5 +1,7 @@
#include <QDebug> #include <QDebug>
#include "lobby.h"
#include "aoapplication.h" #include "aoapplication.h"
AOApplication::AOApplication(int &argc, char **argv) : QApplication(argc, argv) AOApplication::AOApplication(int &argc, char **argv) : QApplication(argc, argv)
@ -20,7 +22,7 @@ void AOApplication::construct_lobby()
return; return;
} }
w_lobby = new Lobby(); w_lobby = new Lobby(this);
lobby_constructed = true; lobby_constructed = true;
} }
@ -44,7 +46,8 @@ void AOApplication::construct_courtroom()
return; return;
} }
w_courtroom = new QMainWindow(); //T0D0, make custom Courtroom class and uncomment
//w_courtroom = new QMainWindow(this);
courtroom_constructed = true; courtroom_constructed = true;
} }

View File

@ -4,7 +4,8 @@
#include <QApplication> #include <QApplication>
#include <QMainWindow> #include <QMainWindow>
#include "lobby.h" class NetworkManager;
class Lobby;
class AOApplication : public QApplication class AOApplication : public QApplication
{ {
@ -12,7 +13,9 @@ public:
AOApplication(int &argc, char **argv); AOApplication(int &argc, char **argv);
~AOApplication(); ~AOApplication();
NetworkManager *net_manager;
Lobby *w_lobby; Lobby *w_lobby;
//T0D0: change to custom class "Courtroom"
QMainWindow *w_courtroom; QMainWindow *w_courtroom;
bool lobby_constructed = false; bool lobby_constructed = false;

68
datatypes.h Normal file
View File

@ -0,0 +1,68 @@
#ifndef DATATYPES_H
#define DATATYPES_H
#include <QString>
struct server_type
{
QString name;
QString desc;
QString ip;
int port;
};
struct emote_type
{
QString comment;
QString preanim;
QString anim;
int mod;
QString sfx_name;
int sfx_delay;
int sfx_duration;
};
struct char_type
{
QString name;
QString description;
};
struct evi_type
{
QString name;
QString description;
};
struct chatmessage_type
{
QString message;
QString character;
QString side;
QString sfx_name;
QString pre_emote;
QString emote;
int emote_modifier;
int objection_modifier;
int realization;
int text_color;
int evidence;
int cid;
int sfx_delay;
int flip;
};
struct area_type
{
QString name;
QString background;
bool passworded;
};
struct pos_type
{
int x;
int y;
};
#endif // DATATYPES_H

View File

@ -3,11 +3,14 @@
#include "path_functions.h" #include "path_functions.h"
#include "text_file_functions.h" #include "text_file_functions.h"
#include "global_variables.h" #include "global_variables.h"
#include "debug_functions.h"
#include "lobby.h" #include "lobby.h"
Lobby::Lobby(QWidget *parent) : QMainWindow(parent) Lobby::Lobby(AOApplication *parent) : QMainWindow()
{ {
m_parent = parent;
this->setWindowTitle("Attorney Online 2"); this->setWindowTitle("Attorney Online 2");
this->resize(m_lobby_width, m_lobby_height); this->resize(m_lobby_width, m_lobby_height);
@ -17,6 +20,7 @@ Lobby::Lobby(QWidget *parent) : QMainWindow(parent)
ui_refresh = new AOButton(this); ui_refresh = new AOButton(this);
ui_add_to_fav = new AOButton(this); ui_add_to_fav = new AOButton(this);
ui_connect = new AOButton(this); ui_connect = new AOButton(this);
ui_about = new AOButton(this);
connect(ui_public_servers, SIGNAL(clicked()), this, SLOT(on_public_servers_clicked())); connect(ui_public_servers, SIGNAL(clicked()), this, SLOT(on_public_servers_clicked()));
connect(ui_favorites, SIGNAL(clicked()), this, SLOT(on_favorites_clicked())); connect(ui_favorites, SIGNAL(clicked()), this, SLOT(on_favorites_clicked()));
@ -28,6 +32,8 @@ Lobby::Lobby(QWidget *parent) : QMainWindow(parent)
connect(ui_connect, SIGNAL(pressed()), this, SLOT(on_connect_pressed())); connect(ui_connect, SIGNAL(pressed()), this, SLOT(on_connect_pressed()));
connect(ui_connect, SIGNAL(released()), this, SLOT(on_connect_released())); connect(ui_connect, SIGNAL(released()), this, SLOT(on_connect_released()));
connect(ui_about, SIGNAL(clicked()), this, SLOT(on_about_clicked()));
set_widgets(); set_widgets();
} }
@ -65,6 +71,10 @@ void Lobby::set_widgets()
ui_connect->set_image("connect.png"); ui_connect->set_image("connect.png");
ui_connect->move(332, 381); ui_connect->move(332, 381);
ui_connect->resize(132, 28); ui_connect->resize(132, 28);
ui_about->set_image("about.png");
ui_about->move(428, 1);
ui_about->resize(88, 21);
} }
void Lobby::on_public_servers_clicked() void Lobby::on_public_servers_clicked()
@ -119,3 +129,9 @@ void Lobby::on_connect_released()
//T0D0: connect to selected server(show loading overlay?) //T0D0: connect to selected server(show loading overlay?)
} }
void Lobby::on_about_clicked()
{
//T0D0: add something real here
call_error("YEBOIIII");
}

15
lobby.h
View File

@ -2,15 +2,19 @@
#define LOBBY_H #define LOBBY_H
#include <QMainWindow> #include <QMainWindow>
#include <QListWidget>
#include "aoimage.h" #include "aoimage.h"
#include "aobutton.h" #include "aobutton.h"
class AOApplication;
class Lobby : public QMainWindow class Lobby : public QMainWindow
{ {
Q_OBJECT Q_OBJECT
public: public:
Lobby(QWidget *parent = nullptr); Lobby(AOApplication *parent);
~Lobby(); ~Lobby();
void set_widgets(); void set_widgets();
@ -19,6 +23,8 @@ private:
const int m_lobby_width = 517; const int m_lobby_width = 517;
const int m_lobby_height = 666; const int m_lobby_height = 666;
AOApplication *m_parent;
AOImage *ui_background; AOImage *ui_background;
AOButton *ui_public_servers; AOButton *ui_public_servers;
@ -28,6 +34,11 @@ private:
AOButton *ui_add_to_fav; AOButton *ui_add_to_fav;
AOButton *ui_connect; AOButton *ui_connect;
AOButton *ui_about;
QListWidget *ui_server_list;
// QListWidget
public slots: public slots:
void on_public_servers_clicked(); void on_public_servers_clicked();
void on_favorites_clicked(); void on_favorites_clicked();
@ -38,6 +49,8 @@ public slots:
void on_add_to_fav_released(); void on_add_to_fav_released();
void on_connect_pressed(); void on_connect_pressed();
void on_connect_released(); void on_connect_released();
void on_about_clicked();
}; };
#endif // LOBBY_H #endif // LOBBY_H

View File

@ -1,13 +1,19 @@
#include "aoapplication.h"
#include "networkmanager.h" #include "networkmanager.h"
NetworkManager::NetworkManager()
NetworkManager::NetworkManager(AOApplication *parent)
{ {
ao_app = parent;
ms_socket = new QTcpSocket(); ms_socket = new QTcpSocket();
server_socket = new QTcpSocket(); server_socket = new QTcpSocket();
} }
NetworkManager::~NetworkManager() NetworkManager::~NetworkManager()
{ {
delete ms_socket;
delete server_socket;
} }

View File

@ -3,12 +3,15 @@
#include <QTcpSocket> #include <QTcpSocket>
class AOApplication;
class NetworkManager class NetworkManager
{ {
public: public:
NetworkManager(); NetworkManager(AOApplication *parent);
~NetworkManager(); ~NetworkManager();
AOApplication *ao_app;
QTcpSocket *ms_socket; QTcpSocket *ms_socket;
QTcpSocket *server_socket; QTcpSocket *server_socket;
}; };