finished evidence. ready for release.
This commit is contained in:
parent
7c20ad7292
commit
3f926341c8
@ -6,8 +6,17 @@ AOEvidenceButton::AOEvidenceButton(QWidget *p_parent, AOApplication *p_ao_app, i
|
|||||||
{
|
{
|
||||||
ao_app = p_ao_app;
|
ao_app = p_ao_app;
|
||||||
|
|
||||||
|
ui_selector = new AOImage(p_parent, ao_app);
|
||||||
|
ui_selector->resize(71, 71);
|
||||||
|
ui_selector->move(p_x - 1, p_y - 1);
|
||||||
|
ui_selector->set_scaled_image("evidence_selector.png");
|
||||||
|
ui_selector->setAttribute(Qt::WA_TransparentForMouseEvents);
|
||||||
|
ui_selector->hide();
|
||||||
|
|
||||||
this->move(p_x, p_y);
|
this->move(p_x, p_y);
|
||||||
this->resize(70, 70);
|
this->resize(70, 70);
|
||||||
|
|
||||||
|
connect(this, SIGNAL(clicked()), this, SLOT(on_clicked()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AOEvidenceButton::set_image(QString p_image)
|
void AOEvidenceButton::set_image(QString p_image)
|
||||||
@ -21,12 +30,39 @@ void AOEvidenceButton::set_image(QString p_image)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this->setText("evi");
|
this->setText(p_image);
|
||||||
this->setStyleSheet("");
|
this->setStyleSheet("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AOEvidenceButton::set_selected(bool p_selected)
|
||||||
|
{
|
||||||
|
m_selected = p_selected;
|
||||||
|
|
||||||
|
if (!m_selected)
|
||||||
|
ui_selector->hide();
|
||||||
|
}
|
||||||
|
|
||||||
void AOEvidenceButton::on_clicked()
|
void AOEvidenceButton::on_clicked()
|
||||||
{
|
{
|
||||||
evidence_clicked(m_id);
|
evidence_clicked(m_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AOEvidenceButton::enterEvent(QEvent * e)
|
||||||
|
{
|
||||||
|
ui_selector->show();
|
||||||
|
|
||||||
|
on_hover(m_id, true);
|
||||||
|
|
||||||
|
setFlat(false);
|
||||||
|
QPushButton::enterEvent(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AOEvidenceButton::leaveEvent(QEvent * e)
|
||||||
|
{
|
||||||
|
if (!m_selected)
|
||||||
|
ui_selector->hide();
|
||||||
|
|
||||||
|
on_hover(m_id, false);
|
||||||
|
QPushButton::leaveEvent(e);
|
||||||
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define AOEVIDENCEBUTTON_H
|
#define AOEVIDENCEBUTTON_H
|
||||||
|
|
||||||
#include "aoapplication.h"
|
#include "aoapplication.h"
|
||||||
|
#include "aoimage.h"
|
||||||
|
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
@ -16,13 +17,24 @@ public:
|
|||||||
void set_image(QString p_image);
|
void set_image(QString p_image);
|
||||||
void set_id(int p_id) {m_id = p_id;}
|
void set_id(int p_id) {m_id = p_id;}
|
||||||
|
|
||||||
|
void set_selected(bool p_selected);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AOApplication *ao_app;
|
AOApplication *ao_app;
|
||||||
|
|
||||||
int m_id;
|
AOImage *ui_selector;
|
||||||
|
|
||||||
|
bool m_selected = false;
|
||||||
|
|
||||||
|
int m_id = 0;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void enterEvent(QEvent *e);
|
||||||
|
void leaveEvent(QEvent *e);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void evidence_clicked(int p_id);
|
void evidence_clicked(int p_id);
|
||||||
|
void on_hover(int p_id, bool p_state);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_clicked();
|
void on_clicked();
|
||||||
|
@ -63,6 +63,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
|
|||||||
ui_vp_message->setFrameStyle(QFrame::NoFrame);
|
ui_vp_message->setFrameStyle(QFrame::NoFrame);
|
||||||
ui_vp_message->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
ui_vp_message->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
ui_vp_message->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
ui_vp_message->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
|
ui_vp_message->setReadOnly(true);
|
||||||
ui_vp_testimony = new AOImage(ui_viewport, ao_app);
|
ui_vp_testimony = new AOImage(ui_viewport, ao_app);
|
||||||
ui_vp_realization = new AOImage(this, ao_app);
|
ui_vp_realization = new AOImage(this, ao_app);
|
||||||
ui_vp_wtce = new AOMovie(ui_viewport, ao_app);
|
ui_vp_wtce = new AOMovie(ui_viewport, ao_app);
|
||||||
@ -168,7 +169,6 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
|
|||||||
ui_evidence_button = new AOButton(this, ao_app);
|
ui_evidence_button = new AOButton(this, ao_app);
|
||||||
|
|
||||||
ui_evidence = new AOImage(this, ao_app);
|
ui_evidence = new AOImage(this, ao_app);
|
||||||
ui_evidence->hide();
|
|
||||||
|
|
||||||
/////////////char select widgets under here///////////////
|
/////////////char select widgets under here///////////////
|
||||||
|
|
||||||
@ -289,7 +289,6 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
|
|||||||
|
|
||||||
set_widgets();
|
set_widgets();
|
||||||
|
|
||||||
//in evidence.cpp
|
|
||||||
construct_evidence();
|
construct_evidence();
|
||||||
|
|
||||||
//implementation in emotes.cpp
|
//implementation in emotes.cpp
|
||||||
@ -379,7 +378,6 @@ void Courtroom::set_widgets()
|
|||||||
"color: white;");
|
"color: white;");
|
||||||
|
|
||||||
set_size_and_pos(ui_vp_message, "message");
|
set_size_and_pos(ui_vp_message, "message");
|
||||||
ui_vp_message->setReadOnly(true);
|
|
||||||
#if (defined (_WIN32) || defined (_WIN64))
|
#if (defined (_WIN32) || defined (_WIN64))
|
||||||
ui_vp_message->setFont(pt_10);
|
ui_vp_message->setFont(pt_10);
|
||||||
#else
|
#else
|
||||||
@ -520,6 +518,7 @@ void Courtroom::set_widgets()
|
|||||||
|
|
||||||
set_size_and_pos(ui_evidence_button, "evidence_button");
|
set_size_and_pos(ui_evidence_button, "evidence_button");
|
||||||
//ui_evidence_button->set_image("evidencebutton.png");
|
//ui_evidence_button->set_image("evidencebutton.png");
|
||||||
|
ui_evidence_button->setText("Evidence");
|
||||||
|
|
||||||
set_size_and_pos(ui_evidence, "evidence_background");
|
set_size_and_pos(ui_evidence, "evidence_background");
|
||||||
ui_evidence->set_image("evidencebackground.png");
|
ui_evidence->set_image("evidencebackground.png");
|
||||||
@ -591,6 +590,7 @@ void Courtroom::set_taken(int n_char, bool p_taken)
|
|||||||
f_char.name = char_list.at(n_char).name;
|
f_char.name = char_list.at(n_char).name;
|
||||||
f_char.description = char_list.at(n_char).description;
|
f_char.description = char_list.at(n_char).description;
|
||||||
f_char.taken = p_taken;
|
f_char.taken = p_taken;
|
||||||
|
f_char.evidence_string = char_list.at(n_char).evidence_string;
|
||||||
|
|
||||||
char_list.replace(n_char, f_char);
|
char_list.replace(n_char, f_char);
|
||||||
}
|
}
|
||||||
@ -691,6 +691,13 @@ void Courtroom::enter_courtroom(int p_cid)
|
|||||||
|
|
||||||
set_emote_page();
|
set_emote_page();
|
||||||
|
|
||||||
|
current_evidence_page = 0;
|
||||||
|
current_evidence = 0;
|
||||||
|
|
||||||
|
qDebug() << "setting evidence page";
|
||||||
|
set_evidence_page();
|
||||||
|
qDebug() << "evidence page set";
|
||||||
|
|
||||||
QString side = ao_app->get_char_side(f_char);
|
QString side = ao_app->get_char_side(f_char);
|
||||||
|
|
||||||
if (side == "jud")
|
if (side == "jud")
|
||||||
@ -1805,6 +1812,7 @@ void Courtroom::on_evidence_button_clicked()
|
|||||||
if (ui_evidence->isHidden())
|
if (ui_evidence->isHidden())
|
||||||
{
|
{
|
||||||
ui_evidence->show();
|
ui_evidence->show();
|
||||||
|
ui_evidence_overlay->hide();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
19
courtroom.h
19
courtroom.h
@ -172,6 +172,8 @@ private:
|
|||||||
int emote_rows = 2;
|
int emote_rows = 2;
|
||||||
int max_emotes_on_page = 10;
|
int max_emotes_on_page = 10;
|
||||||
|
|
||||||
|
QVector<evi_type> local_evidence_list;
|
||||||
|
|
||||||
int current_evidence_page = 0;
|
int current_evidence_page = 0;
|
||||||
int current_evidence = 0;
|
int current_evidence = 0;
|
||||||
int evidence_columns = 6;
|
int evidence_columns = 6;
|
||||||
@ -273,11 +275,14 @@ private:
|
|||||||
AOImage *ui_muted;
|
AOImage *ui_muted;
|
||||||
|
|
||||||
AOButton *ui_evidence_button;
|
AOButton *ui_evidence_button;
|
||||||
|
AOImage *ui_evidence;
|
||||||
|
QLabel *ui_evidence_name;
|
||||||
QVector<AOEvidenceButton*> ui_evidence_list;
|
QVector<AOEvidenceButton*> ui_evidence_list;
|
||||||
AOImage *ui_evidence_left;
|
AOImage *ui_evidence_left;
|
||||||
AOImage *ui_evidence_right;
|
AOImage *ui_evidence_right;
|
||||||
|
AOImage *ui_evidence_overlay;
|
||||||
AOImage *ui_evidence;
|
AOButton *ui_evidence_x;
|
||||||
|
QPlainTextEdit *ui_evidence_description;
|
||||||
|
|
||||||
AOImage *ui_char_select_background;
|
AOImage *ui_char_select_background;
|
||||||
|
|
||||||
@ -326,11 +331,17 @@ private slots:
|
|||||||
void on_music_list_double_clicked(QModelIndex p_model);
|
void on_music_list_double_clicked(QModelIndex p_model);
|
||||||
|
|
||||||
void on_emote_clicked(int p_id);
|
void on_emote_clicked(int p_id);
|
||||||
void on_evidence_clicked(int p_id);
|
|
||||||
|
|
||||||
void on_emote_left_clicked();
|
void on_emote_left_clicked();
|
||||||
void on_emote_right_clicked();
|
void on_emote_right_clicked();
|
||||||
|
|
||||||
|
void on_evidence_clicked(int p_id);
|
||||||
|
|
||||||
|
void on_evidence_hover(int p_id, bool p_state);
|
||||||
|
|
||||||
|
void on_evidence_left_clicked();
|
||||||
|
void on_evidence_right_clicked();
|
||||||
|
|
||||||
void on_hold_it_clicked();
|
void on_hold_it_clicked();
|
||||||
void on_objection_clicked();
|
void on_objection_clicked();
|
||||||
void on_take_that_clicked();
|
void on_take_that_clicked();
|
||||||
@ -366,6 +377,8 @@ private slots:
|
|||||||
|
|
||||||
void on_evidence_button_clicked();
|
void on_evidence_button_clicked();
|
||||||
|
|
||||||
|
void on_evidence_x_clicked();
|
||||||
|
|
||||||
void on_back_to_lobby_clicked();
|
void on_back_to_lobby_clicked();
|
||||||
|
|
||||||
void on_char_select_left_clicked();
|
void on_char_select_left_clicked();
|
||||||
|
@ -26,6 +26,7 @@ struct char_type
|
|||||||
{
|
{
|
||||||
QString name;
|
QString name;
|
||||||
QString description;
|
QString description;
|
||||||
|
QString evidence_string;
|
||||||
bool taken;
|
bool taken;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
157
evidence.cpp
157
evidence.cpp
@ -15,14 +15,10 @@ void Courtroom::construct_evidence()
|
|||||||
int y_mod_count{0};
|
int y_mod_count{0};
|
||||||
|
|
||||||
evidence_columns = ui_evidence->width() / x_modifier;
|
evidence_columns = ui_evidence->width() / x_modifier;
|
||||||
qDebug() << "columns: " << evidence_columns;
|
|
||||||
evidence_rows = ui_evidence->height() / y_modifier;
|
evidence_rows = ui_evidence->height() / y_modifier;
|
||||||
qDebug() << "rows: " << evidence_rows;
|
|
||||||
|
|
||||||
max_evidence_on_page = evidence_columns * evidence_rows;
|
max_evidence_on_page = evidence_columns * evidence_rows;
|
||||||
|
|
||||||
qDebug() << "max_evidence_on_page: " << max_evidence_on_page;
|
|
||||||
|
|
||||||
for (int n = 0 ; n < max_evidence_on_page ; ++n)
|
for (int n = 0 ; n < max_evidence_on_page ; ++n)
|
||||||
{
|
{
|
||||||
int x_pos = base_x_pos + (x_modifier * x_mod_count);
|
int x_pos = base_x_pos + (x_modifier * x_mod_count);
|
||||||
@ -35,6 +31,7 @@ void Courtroom::construct_evidence()
|
|||||||
f_evidence->set_id(n);
|
f_evidence->set_id(n);
|
||||||
|
|
||||||
connect(f_evidence, SIGNAL(evidence_clicked(int)), this, SLOT(on_evidence_clicked(int)));
|
connect(f_evidence, SIGNAL(evidence_clicked(int)), this, SLOT(on_evidence_clicked(int)));
|
||||||
|
connect(f_evidence, SIGNAL(on_hover(int, bool)), this, SLOT(on_evidence_hover(int, bool)));
|
||||||
|
|
||||||
++x_mod_count;
|
++x_mod_count;
|
||||||
|
|
||||||
@ -44,11 +41,163 @@ void Courtroom::construct_evidence()
|
|||||||
x_mod_count = 0;
|
x_mod_count = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui_evidence_name = new QLabel(ui_evidence);
|
||||||
|
|
||||||
|
ui_evidence_left = new AOImage(ui_evidence, ao_app);
|
||||||
|
ui_evidence_right = new AOImage(ui_evidence, ao_app);
|
||||||
|
|
||||||
|
ui_evidence_overlay = new AOImage(ui_evidence, ao_app);
|
||||||
|
|
||||||
|
ui_evidence_x = new AOButton(ui_evidence_overlay, ao_app);
|
||||||
|
|
||||||
|
ui_evidence_description = new QPlainTextEdit(ui_evidence_overlay);
|
||||||
|
|
||||||
|
set_size_and_pos(ui_evidence_name, "evidence_name");
|
||||||
|
ui_evidence_name->setAlignment(Qt::AlignCenter);
|
||||||
|
ui_evidence_name->setFont(QFont("Arial", 14, QFont::Bold));
|
||||||
|
ui_evidence_name->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
|
||||||
|
"color: rgba(255, 128, 0, 255);");
|
||||||
|
|
||||||
|
set_size_and_pos(ui_evidence_left, "evidence_left");
|
||||||
|
ui_evidence_left->set_image("arrow_left.png");
|
||||||
|
|
||||||
|
set_size_and_pos(ui_evidence_right, "evidence_right");
|
||||||
|
ui_evidence_right->set_image("arrow_right.png");
|
||||||
|
|
||||||
|
set_size_and_pos(ui_evidence_overlay, "evidence_overlay");
|
||||||
|
ui_evidence_overlay->set_image("evidenceoverlay.png");
|
||||||
|
|
||||||
|
set_size_and_pos(ui_evidence_x, "evidence_x");
|
||||||
|
ui_evidence_x->setText("X");
|
||||||
|
|
||||||
|
set_size_and_pos(ui_evidence_description, "evidence_description");
|
||||||
|
ui_evidence_description->setReadOnly(true);
|
||||||
|
ui_evidence_description->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
|
||||||
|
"color: white;");
|
||||||
|
|
||||||
|
connect(ui_evidence_x, SIGNAL(clicked()), this, SLOT(on_evidence_x_clicked()));
|
||||||
|
|
||||||
|
ui_evidence->hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Courtroom::set_evidence_page()
|
||||||
|
{
|
||||||
|
local_evidence_list.clear();
|
||||||
|
|
||||||
|
QString evi_string = char_list.at(m_cid).evidence_string;
|
||||||
|
|
||||||
|
QStringList evi_numbers = evi_string.split(",");
|
||||||
|
|
||||||
|
for (QString i_evi : evi_numbers)
|
||||||
|
{
|
||||||
|
int n_evi = i_evi.toInt() - 1;
|
||||||
|
|
||||||
|
if (n_evi < 0 || n_evi >= evidence_list.size())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
local_evidence_list.append(evidence_list.at(n_evi));
|
||||||
|
}
|
||||||
|
|
||||||
|
int total_evidence = local_evidence_list.size();
|
||||||
|
|
||||||
|
qDebug() << "total_evidence: " << total_evidence;
|
||||||
|
|
||||||
|
ui_evidence_left->hide();
|
||||||
|
ui_evidence_right->hide();
|
||||||
|
|
||||||
|
qDebug() << "hid evidence left and right";
|
||||||
|
|
||||||
|
for (AOEvidenceButton *i_button : ui_evidence_list)
|
||||||
|
{
|
||||||
|
i_button->hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug() << "hid all evidence buttons";
|
||||||
|
|
||||||
|
if (total_evidence == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
qDebug() << "max_evi_on_page =" << max_evidence_on_page;
|
||||||
|
|
||||||
|
int total_pages = total_evidence / max_evidence_on_page;
|
||||||
|
|
||||||
|
qDebug() << "total_pages: " << total_pages;
|
||||||
|
|
||||||
|
int evidence_on_page = 0;
|
||||||
|
|
||||||
|
if (total_evidence % max_evidence_on_page != 0)
|
||||||
|
{
|
||||||
|
++total_pages;
|
||||||
|
evidence_on_page = total_evidence % max_evidence_on_page;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
evidence_on_page = max_evidence_on_page;
|
||||||
|
|
||||||
|
qDebug() << "evidence_on_page: " << evidence_on_page;
|
||||||
|
|
||||||
|
if (total_pages > current_evidence_page + 1)
|
||||||
|
ui_evidence_right->show();
|
||||||
|
|
||||||
|
if (current_evidence_page > 0)
|
||||||
|
ui_evidence_left->show();
|
||||||
|
|
||||||
|
for (int n_evidence = 0 ; n_evidence < evidence_on_page ; ++n_evidence)
|
||||||
|
{
|
||||||
|
int n_real_evidence = n_evidence + current_evidence_page * max_evidence_on_page;
|
||||||
|
AOEvidenceButton *f_evidence = ui_evidence_list.at(n_evidence);
|
||||||
|
|
||||||
|
f_evidence->set_image(evidence_list.at(n_real_evidence).image);
|
||||||
|
|
||||||
|
f_evidence->show();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Courtroom::on_evidence_clicked(int p_id)
|
void Courtroom::on_evidence_clicked(int p_id)
|
||||||
{
|
{
|
||||||
|
ui_evidence_name->setText(local_evidence_list.at(p_id + max_evidence_on_page * current_evidence_page).name);
|
||||||
|
|
||||||
|
for (AOEvidenceButton *i_button : ui_evidence_list)
|
||||||
|
{
|
||||||
|
i_button->set_selected(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui_evidence_list.at(p_id)->set_selected(true);
|
||||||
|
|
||||||
|
current_evidence = p_id + max_evidence_on_page * current_evidence_page;
|
||||||
|
|
||||||
|
ui_evidence_description->clear();
|
||||||
|
ui_evidence_description->appendPlainText(local_evidence_list.at(current_evidence).description);
|
||||||
|
|
||||||
|
ui_evidence_overlay->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Courtroom::on_evidence_hover(int p_id, bool p_state)
|
||||||
|
{
|
||||||
|
if (p_state)
|
||||||
|
ui_evidence_name->setText(local_evidence_list.at(p_id + max_evidence_on_page * current_evidence_page).name);
|
||||||
|
else
|
||||||
|
ui_evidence_name->setText("");
|
||||||
|
}
|
||||||
|
|
||||||
|
void Courtroom::on_evidence_left_clicked()
|
||||||
|
{
|
||||||
|
--current_evidence_page;
|
||||||
|
|
||||||
|
set_evidence_page();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Courtroom::on_evidence_right_clicked()
|
||||||
|
{
|
||||||
|
++current_evidence_page;
|
||||||
|
|
||||||
|
set_evidence_page();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Courtroom::on_evidence_x_clicked()
|
||||||
|
{
|
||||||
|
ui_evidence_overlay->hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -251,6 +251,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
|
|||||||
char_type f_char;
|
char_type f_char;
|
||||||
f_char.name = sub_elements.at(0);
|
f_char.name = sub_elements.at(0);
|
||||||
f_char.description = sub_elements.at(1);
|
f_char.description = sub_elements.at(1);
|
||||||
|
f_char.evidence_string = sub_elements.at(3);
|
||||||
//temporary. the CharsCheck packet sets this properly
|
//temporary. the CharsCheck packet sets this properly
|
||||||
f_char.taken = false;
|
f_char.taken = false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user