diff options
| author | David Skoland <davidskoland@gmail.com> | 2018-12-26 16:43:08 +0100 |
|---|---|---|
| committer | David Skoland <davidskoland@gmail.com> | 2018-12-26 16:43:08 +0100 |
| commit | 00cfd2750d39795e4c205aee2a33b92b1da2524d (patch) | |
| tree | 839c1129418ca8fefe41e6814917f9dabb6efa4b /src/aoevidencedisplay.cpp | |
| parent | 6f1bce5882676ea7affe717a2f5a00b8c3b7fe12 (diff) | |
moved headers into include and cpp files into src + logo into resource
Diffstat (limited to 'src/aoevidencedisplay.cpp')
| -rw-r--r-- | src/aoevidencedisplay.cpp | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/src/aoevidencedisplay.cpp b/src/aoevidencedisplay.cpp new file mode 100644 index 00000000..9ec105dd --- /dev/null +++ b/src/aoevidencedisplay.cpp @@ -0,0 +1,96 @@ +#include "aoevidencedisplay.h" + +#include "file_functions.h" +#include "datatypes.h" +#include "misc_functions.h" + +AOEvidenceDisplay::AOEvidenceDisplay(QWidget *p_parent, AOApplication *p_ao_app) : QLabel(p_parent) +{ + ao_app = p_ao_app; + + evidence_movie = new QMovie(this); + evidence_icon = new QLabel(this); + sfx_player = new AOSfxPlayer(this, ao_app); + + connect(evidence_movie, SIGNAL(frameChanged(int)), this, SLOT(frame_change(int))); +} + +void AOEvidenceDisplay::show_evidence(QString p_evidence_image, bool is_left_side, int p_volume) +{ + this->reset(); + + sfx_player->set_volume(p_volume); + + QString f_evidence_path = ao_app->get_evidence_path(p_evidence_image); + + QPixmap f_pixmap(f_evidence_path); + + QString final_gif_path; + QString gif_name; + QString icon_identifier; + + if (is_left_side) + { + icon_identifier = "left_evidence_icon"; + gif_name = "evidence_appear_left.gif"; + } + else + { + icon_identifier = "right_evidence_icon"; + gif_name = "evidence_appear_right.gif"; + } + + pos_size_type icon_dimensions = ao_app->get_element_dimensions(icon_identifier, "courtroom_design.ini"); + + evidence_icon->move(icon_dimensions.x, icon_dimensions.y); + evidence_icon->resize(icon_dimensions.width, icon_dimensions.height); + + evidence_icon->setPixmap(f_pixmap.scaled(evidence_icon->width(), evidence_icon->height(), Qt::IgnoreAspectRatio)); + + QString f_default_gif_path = ao_app->get_default_theme_path(gif_name); + QString f_gif_path = ao_app->get_theme_path(gif_name); + + if (file_exists(f_gif_path)) + final_gif_path = f_gif_path; + else + final_gif_path = f_default_gif_path; + + evidence_movie->setFileName(final_gif_path); + + if(evidence_movie->frameCount() < 1) + return; + + this->setMovie(evidence_movie); + + evidence_movie->start(); + sfx_player->play(ao_app->get_sfx("evidence_present")); +} + +void AOEvidenceDisplay::frame_change(int p_frame) +{ + if (p_frame == (evidence_movie->frameCount() - 1)) + { + //we need this or else the last frame wont show + delay(evidence_movie->nextFrameDelay()); + + evidence_movie->stop(); + this->clear(); + + evidence_icon->show(); + } +} + +void AOEvidenceDisplay::reset() +{ + sfx_player->stop(); + evidence_movie->stop(); + evidence_icon->hide(); + this->clear(); +} + +QLabel* AOEvidenceDisplay::get_evidence_icon() +{ + return evidence_icon; +} + + |
