aboutsummaryrefslogtreecommitdiff
path: root/src/aoevidencedisplay.cpp
diff options
context:
space:
mode:
authorDavid Skoland <davidskoland@gmail.com>2018-12-26 16:43:08 +0100
committerDavid Skoland <davidskoland@gmail.com>2018-12-26 16:43:08 +0100
commit00cfd2750d39795e4c205aee2a33b92b1da2524d (patch)
tree839c1129418ca8fefe41e6814917f9dabb6efa4b /src/aoevidencedisplay.cpp
parent6f1bce5882676ea7affe717a2f5a00b8c3b7fe12 (diff)
moved headers into include and cpp files into src + logo into resource
Diffstat (limited to 'src/aoevidencedisplay.cpp')
-rw-r--r--src/aoevidencedisplay.cpp96
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;
+}
+
+