started implementing evidence functionality

This commit is contained in:
OmniTroid 2017-04-24 15:10:07 +02:00
parent ae60825b29
commit 3f97df6174
8 changed files with 87 additions and 11 deletions

View File

@ -44,7 +44,8 @@ SOURCES += main.cpp\
evidence.cpp \ evidence.cpp \
aoevidencebutton.cpp \ aoevidencebutton.cpp \
charselect.cpp \ charselect.cpp \
aotextarea.cpp aotextarea.cpp \
aolineedit.cpp
HEADERS += lobby.h \ HEADERS += lobby.h \
aoimage.h \ aoimage.h \
@ -70,7 +71,8 @@ HEADERS += lobby.h \
aomusicplayer.h \ aomusicplayer.h \
aoblipplayer.h \ aoblipplayer.h \
aoevidencebutton.h \ aoevidencebutton.h \
aotextarea.h aotextarea.h \
aolineedit.h
unix:LIBS += -L$$PWD -lbass unix:LIBS += -L$$PWD -lbass
win32:LIBS += "$$PWD/bass.dll" win32:LIBS += "$$PWD/bass.dll"

View File

@ -2,10 +2,23 @@
#include "file_functions.h" #include "file_functions.h"
#include <QDebug>
AOEvidenceButton::AOEvidenceButton(QWidget *p_parent, AOApplication *p_ao_app, int p_x, int p_y) : QPushButton(p_parent) AOEvidenceButton::AOEvidenceButton(QWidget *p_parent, AOApplication *p_ao_app, int p_x, int p_y) : QPushButton(p_parent)
{ {
ao_app = p_ao_app; ao_app = p_ao_app;
qDebug() << "constructing ui_selected";
ui_selected = new AOImage(p_parent, ao_app);
ui_selected->resize(70, 70);
ui_selected->move(p_x, p_y);
ui_selected->set_image("evidence_selected.png");
ui_selected->setAttribute(Qt::WA_TransparentForMouseEvents);
ui_selected->hide();
qDebug() << "ui_selected constructed";
ui_selector = new AOImage(p_parent, ao_app); ui_selector = new AOImage(p_parent, ao_app);
ui_selector->resize(71, 71); ui_selector->resize(71, 71);
ui_selector->move(p_x - 1, p_y - 1); ui_selector->move(p_x - 1, p_y - 1);
@ -40,9 +53,9 @@ void AOEvidenceButton::set_selected(bool p_selected)
m_selected = p_selected; m_selected = p_selected;
if (!m_selected) if (!m_selected)
ui_selector->hide(); ui_selected->hide();
else else
ui_selector->show(); ui_selected->show();
} }
void AOEvidenceButton::on_clicked() void AOEvidenceButton::on_clicked()
@ -50,6 +63,11 @@ void AOEvidenceButton::on_clicked()
evidence_clicked(m_id); evidence_clicked(m_id);
} }
void AOEvidenceButton::mouseDoubleClickEvent(QMouseEvent *e) {
QPushButton::mouseDoubleClickEvent(e);
evidence_double_clicked(m_id);
}
void AOEvidenceButton::enterEvent(QEvent * e) void AOEvidenceButton::enterEvent(QEvent * e)
{ {
ui_selector->show(); ui_selector->show();
@ -62,8 +80,7 @@ void AOEvidenceButton::enterEvent(QEvent * e)
void AOEvidenceButton::leaveEvent(QEvent * e) void AOEvidenceButton::leaveEvent(QEvent * e)
{ {
if (!m_selected) ui_selector->hide();
ui_selector->hide();
on_hover(m_id, false); on_hover(m_id, false);
QPushButton::leaveEvent(e); QPushButton::leaveEvent(e);

View File

@ -22,6 +22,7 @@ public:
private: private:
AOApplication *ao_app; AOApplication *ao_app;
AOImage *ui_selected;
AOImage *ui_selector; AOImage *ui_selector;
bool m_selected = false; bool m_selected = false;
@ -31,9 +32,11 @@ private:
protected: protected:
void enterEvent(QEvent *e); void enterEvent(QEvent *e);
void leaveEvent(QEvent *e); void leaveEvent(QEvent *e);
void mouseDoubleClickEvent(QMouseEvent *e);
signals: signals:
void evidence_clicked(int p_id); void evidence_clicked(int p_id);
void evidence_double_clicked(int p_id);
void on_hover(int p_id, bool p_state); void on_hover(int p_id, bool p_state);
private slots: private slots:

21
aolineedit.cpp Normal file
View File

@ -0,0 +1,21 @@
#include "aolineedit.h"
AOLineEdit::AOLineEdit(QWidget *parent) : QLineEdit(parent)
{
this->setReadOnly(true);
this->setFrame(false);
connect(this, SIGNAL(returnPressed()), this, SLOT(on_enter_pressed()));
}
void AOLineEdit::mouseDoubleClickEvent(QMouseEvent *e)
{
QLineEdit::mouseDoubleClickEvent(e);
this->setReadOnly(false);
}
void AOLineEdit::on_enter_pressed()
{
this->setReadOnly(true);
}

26
aolineedit.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef AOLINEEDIT_H
#define AOLINEEDIT_H
#include <QLineEdit>
#include <QMouseEvent>
class AOLineEdit : public QLineEdit
{
Q_OBJECT
public:
AOLineEdit(QWidget *parent);
protected:
void mouseDoubleClickEvent(QMouseEvent *e);
signals:
void double_clicked();
private slots:
void on_enter_pressed();
};
#endif // AOLINEEDIT_H

View File

@ -14,6 +14,7 @@
#include "aoblipplayer.h" #include "aoblipplayer.h"
#include "aoevidencebutton.h" #include "aoevidencebutton.h"
#include "aotextarea.h" #include "aotextarea.h"
#include "aolineedit.h"
#include "datatypes.h" #include "datatypes.h"
#include <QMainWindow> #include <QMainWindow>
@ -294,7 +295,8 @@ private:
AOButton *ui_evidence_button; AOButton *ui_evidence_button;
AOImage *ui_evidence; AOImage *ui_evidence;
QLabel *ui_evidence_name; //QLabel *ui_evidence_name;
AOLineEdit *ui_evidence_name;
QWidget *ui_evidence_buttons; QWidget *ui_evidence_buttons;
QVector<AOEvidenceButton*> ui_evidence_list; QVector<AOEvidenceButton*> ui_evidence_list;
AOButton *ui_evidence_left; AOButton *ui_evidence_left;
@ -369,6 +371,7 @@ private slots:
void on_emote_dropdown_changed(int p_index); void on_emote_dropdown_changed(int p_index);
void on_evidence_clicked(int p_id); void on_evidence_clicked(int p_id);
void on_evidence_double_clicked(int p_id);
void on_evidence_hover(int p_id, bool p_state); void on_evidence_hover(int p_id, bool p_state);

View File

@ -6,7 +6,8 @@ void Courtroom::construct_evidence()
{ {
ui_evidence = new AOImage(this, ao_app); ui_evidence = new AOImage(this, ao_app);
ui_evidence_name = new QLabel(ui_evidence); //ui_evidence_name = new QLabel(ui_evidence);
ui_evidence_name = new AOLineEdit(ui_evidence);
ui_evidence_name->setAlignment(Qt::AlignCenter); ui_evidence_name->setAlignment(Qt::AlignCenter);
ui_evidence_name->setFont(QFont("Arial", 14, QFont::Bold)); ui_evidence_name->setFont(QFont("Arial", 14, QFont::Bold));
ui_evidence_name->setStyleSheet("background-color: rgba(0, 0, 0, 0);" ui_evidence_name->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
@ -57,6 +58,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(evidence_double_clicked(int)), this, SLOT(on_evidence_double_clicked(int)));
connect(f_evidence, SIGNAL(on_hover(int, bool)), this, SLOT(on_evidence_hover(int, bool))); connect(f_evidence, SIGNAL(on_hover(int, bool)), this, SLOT(on_evidence_hover(int, bool)));
++x_mod_count; ++x_mod_count;
@ -163,9 +165,12 @@ void Courtroom::on_evidence_clicked(int p_id)
ui_evidence_list.at(p_id)->set_selected(true); ui_evidence_list.at(p_id)->set_selected(true);
current_evidence = p_id + max_evidence_on_page * current_evidence_page; current_evidence = p_id + max_evidence_on_page * current_evidence_page;
}
void Courtroom::on_evidence_double_clicked(int p_id)
{
ui_evidence_description->clear(); ui_evidence_description->clear();
ui_evidence_description->appendPlainText(local_evidence_list.at(current_evidence).description); ui_evidence_description->appendPlainText(local_evidence_list.at(p_id).description);
ui_evidence_overlay->show(); ui_evidence_overlay->show();
} }
@ -179,7 +184,7 @@ void Courtroom::on_evidence_hover(int p_id, bool p_state)
ui_evidence_name->setText(local_evidence_list.at(final_id).name); ui_evidence_name->setText(local_evidence_list.at(final_id).name);
} }
else else
ui_evidence_name->setText(""); ui_evidence_name->setText(local_evidence_list.at(current_evidence).name);
} }
void Courtroom::on_evidence_left_clicked() void Courtroom::on_evidence_left_clicked()

View File

@ -153,7 +153,6 @@ QString AOApplication::read_design_ini(QString p_identifier, QString p_design_pa
if (!design_ini.open(QIODevice::ReadOnly)) if (!design_ini.open(QIODevice::ReadOnly))
{ {
qDebug() << "Could not find design ini " + p_design_path;
return ""; return "";
} }
QTextStream in(&design_ini); QTextStream in(&design_ini);