aboutsummaryrefslogtreecommitdiff
path: root/src/aoevidencedisplay.cpp
diff options
context:
space:
mode:
authoroldmud0 <oldmud0@users.noreply.github.com>2020-07-31 16:17:05 -0500
committerGitHub <noreply@github.com>2020-07-31 16:17:05 -0500
commitec1c95bdb33dd063880c4cb6c3c9c3cf5d0ed454 (patch)
tree19e9217126837cac1ae3ab025b050bb3cfbda64b /src/aoevidencedisplay.cpp
parent8ea01d4c3139e27e84091c0b24266d9fb50ddf38 (diff)
parent36b5af3cb9ce8e5530c5bd9353a4e2f10da506b6 (diff)
Merge pull request #217 from AttorneyOnline/kfo-ao2
Final mega-merge with the Killing Fever Online client, along with other associated bugfixes and feature additions. This commit is release-ready.
Diffstat (limited to 'src/aoevidencedisplay.cpp')
-rw-r--r--src/aoevidencedisplay.cpp59
1 files changed, 19 insertions, 40 deletions
diff --git a/src/aoevidencedisplay.cpp b/src/aoevidencedisplay.cpp
index 64e4e24d..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,10 +23,6 @@ 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;
@@ -41,46 +36,21 @@ void AOEvidenceDisplay::show_evidence(QString p_evidence_image,
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_image_suffix(ao_app->get_default_theme_path(gif_name));
- QString f_gif_path = ao_app->get_image_suffix(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();
@@ -89,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);
+}