diff --git a/data/ui/options_dialog.ui b/data/ui/options_dialog.ui index 3dd3389ef..4039d0cfa 100644 --- a/data/ui/options_dialog.ui +++ b/data/ui/options_dialog.ui @@ -41,7 +41,7 @@ 0 0 422 - 902 + 924 @@ -557,7 +557,7 @@ <html><head/><body><p>The scaling algorithm to be used when upscaling or downscaling images.</p><p>Automatic: The image will be scaled based on the image's predetermined scaling algorithm.<br/>Pixelated: The image will be scaled using a nearest neighbor algorithm.<br/>Smooth: The image will be scaled using a bilinear algorithm.</p></body></html> - Image Scaling + Image Scaling: @@ -589,7 +589,7 @@ If ticked, some windows restore their last known position where they were closed. - Restore Window Position + Restore Window Position: @@ -600,7 +600,7 @@ - + <html><head/><body>Set the format for the player list to use.<br><br>Valid fields are:<br>{id} - Client ID<br>{displayname} - Character display name<br>{character} - Character folder name<br>{username} - Out-of-character name<br>(Note: Some servers may hide out-of-character names.)</body></html> @@ -610,9 +610,23 @@ - + + + + + Offset affects Preview: + + + + + + + + + + diff --git a/src/aoemotepreview.cpp b/src/aoemotepreview.cpp index a5a6a2717..6b9a4c996 100644 --- a/src/aoemotepreview.cpp +++ b/src/aoemotepreview.cpp @@ -1,4 +1,5 @@ #include "aoemotepreview.h" +#include "options.h" AOEmotePreview::AOEmotePreview(AOApplication *ao_app, QWidget *parent) : QWidget(parent) @@ -29,7 +30,10 @@ void AOEmotePreview::display(QString character, QString emote, kal::CharacterAni m_character = character; m_emote = emote; ui_vp_player_char->stopPlayback(); - ui_vp_player_char->move(ui_viewport->width() * xOffset / 100, ui_viewport->height() * yOffset / 100); + if (Options::getInstance().offsetPreview()) + { + ui_vp_player_char->move(ui_viewport->width() * xOffset / 100, ui_viewport->height() * yOffset / 100); + } ui_vp_player_char->loadCharacterEmote(character, emote, emoteType); ui_vp_player_char->setPlayOnce(false); ui_vp_player_char->setFlipped(flipped); diff --git a/src/options.cpp b/src/options.cpp index e87ba5a9a..d0206269c 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -616,6 +616,16 @@ void Options::setResizeMode(RESIZE_MODE value) config.setValue("resize_mode", value); } +bool Options::offsetPreview() const +{ + return config.value("offset_preview", true).toBool(); +} + +void Options::setOffsetPreview(bool value) +{ + config.setValue("offset_preview", value); +} + QStringList Options::callwords() const { QStringList l_callwords = config.value("callwords", QStringList{}).toStringList(); diff --git a/src/options.h b/src/options.h index 9b259edc4..983b1637c 100644 --- a/src/options.h +++ b/src/options.h @@ -284,6 +284,9 @@ class Options bool restoreWindowPositionEnabled() const; void setRestoreWindowPositionEnabled(bool state); + bool offsetPreview() const; + void setOffsetPreview(bool value); + private: /** * @brief QSettings object for config.ini diff --git a/src/widgets/aooptionsdialog.cpp b/src/widgets/aooptionsdialog.cpp index d580caaf8..c04acc755 100644 --- a/src/widgets/aooptionsdialog.cpp +++ b/src/widgets/aooptionsdialog.cpp @@ -385,6 +385,7 @@ void AOOptionsDialog::setupUI() FROM_UI(QCheckBox, evidence_double_click_cb); FROM_UI(QCheckBox, slides_cb); FROM_UI(QCheckBox, restoreposition_cb); + FROM_UI(QCheckBox, offsetpreview_cb); FROM_UI(QLineEdit, playerlist_format_edit); registerOption("theme_scaling_factor_sb", &Options::themeScalingFactor, &Options::setThemeScalingFactor); @@ -424,6 +425,7 @@ void AOOptionsDialog::setupUI() registerOption("evidence_double_click_cb", &Options::evidenceDoubleClickEdit, &Options::setEvidenceDoubleClickEdit); registerOption("slides_cb", &Options::slidesEnabled, &Options::setSlidesEnabled); registerOption("restoreposition_cb", &Options::restoreWindowPositionEnabled, &Options::setRestoreWindowPositionEnabled); + registerOption("offset_preview_cb", &Options::offsetPreview, &Options::setOffsetPreview); registerOption("playerlist_format_edit", &Options::playerlistFormatString, &Options::setPlayerlistFormatString); // Callwords tab. This could just be a QLineEdit, but no, we decided to allow diff --git a/src/widgets/aooptionsdialog.h b/src/widgets/aooptionsdialog.h index b82829e5d..5ad706f9d 100644 --- a/src/widgets/aooptionsdialog.h +++ b/src/widgets/aooptionsdialog.h @@ -76,6 +76,7 @@ class AOOptionsDialog : public QDialog QCheckBox *ui_category_stop_cb; QCheckBox *ui_sfx_on_idle_cb; QCheckBox *ui_restoreposition_cb; + QCheckBox *ui_offsetpreview_cb; QLineEdit *ui_playerlist_format_edit; // The callwords tab