aboutsummaryrefslogtreecommitdiff
path: root/src/aoevidencedisplay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/aoevidencedisplay.cpp')
-rw-r--r--src/aoevidencedisplay.cpp64
1 files changed, 21 insertions, 43 deletions
diff --git a/src/aoevidencedisplay.cpp b/src/aoevidencedisplay.cpp
index 9dd062b7..2ffea2c9 100644
--- a/src/aoevidencedisplay.cpp
+++ b/src/aoevidencedisplay.cpp
@@ -8,13 +8,12 @@ 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)));
+ evidence_movie = new AOMovie(this, ao_app);
+
+ connect(evidence_movie, SIGNAL(done()), this, SLOT(show_done()));
}
void AOEvidenceDisplay::show_evidence(QString p_evidence_image,
@@ -24,64 +23,34 @@ void AOEvidenceDisplay::show_evidence(QString p_evidence_image,
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";
+ gif_name = "evidence_appear_left";
}
else {
icon_identifier = "right_evidence_icon";
- gif_name = "evidence_appear_right.gif";
+ gif_name = "evidence_appear_right";
}
+ QString f_evidence_path = ao_app->get_evidence_path(p_evidence_image);
+ QPixmap f_pixmap(f_evidence_path);
+
pos_size_type icon_dimensions =
ao_app->get_element_dimensions(icon_identifier, "courtroom_design.ini");
+ f_pixmap = f_pixmap.scaled(icon_dimensions.width, icon_dimensions.height);
+ evidence_icon->setPixmap(f_pixmap);
+ evidence_icon->resize(f_pixmap.size());
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();
+ evidence_movie->play(gif_name);
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();
@@ -90,4 +59,13 @@ void AOEvidenceDisplay::reset()
this->clear();
}
+void AOEvidenceDisplay::show_done() { evidence_icon->show(); }
+
QLabel *AOEvidenceDisplay::get_evidence_icon() { return evidence_icon; }
+
+void AOEvidenceDisplay::combo_resize(int w, int h)
+{
+ QSize f_size(w, h);
+ this->resize(f_size);
+ evidence_movie->combo_resize(w, h);
+}