diff --git a/res/images/skin_preview_placeholder.png b/res/images/skin_preview_placeholder.png new file mode 100644 index 000000000000..047986ab1a15 Binary files /dev/null and b/res/images/skin_preview_placeholder.png differ diff --git a/res/mixxx.qrc b/res/mixxx.qrc index 87ce97ea5de1..191001acb965 100644 --- a/res/mixxx.qrc +++ b/res/mixxx.qrc @@ -26,6 +26,7 @@ images/library/ic_library_unchecked.png images/mixxx-icon.png images/mixxx-icon-logo-symbolic.svg + images/skin_preview_placeholder.png images/preferences/ic_preferences_autodj.png images/preferences/ic_preferences_bpmdetect.png images/preferences/ic_preferences_broadcast.png diff --git a/res/skins/Deere (64 Samplers)/preferences_preview_screenshot.png b/res/skins/Deere (64 Samplers)/preferences_preview_screenshot.png new file mode 100644 index 000000000000..136c5fb1e83b Binary files /dev/null and b/res/skins/Deere (64 Samplers)/preferences_preview_screenshot.png differ diff --git a/res/skins/Deere/preferences_preview_screenshot.png b/res/skins/Deere/preferences_preview_screenshot.png new file mode 100644 index 000000000000..b5abde0605fe Binary files /dev/null and b/res/skins/Deere/preferences_preview_screenshot.png differ diff --git a/res/skins/LateNight/preferences_preview_screenshot.png b/res/skins/LateNight/preferences_preview_screenshot.png new file mode 100644 index 000000000000..325fabb43f2e Binary files /dev/null and b/res/skins/LateNight/preferences_preview_screenshot.png differ diff --git a/res/skins/Shade/preferences_preview_screenshot.png b/res/skins/Shade/preferences_preview_screenshot.png new file mode 100644 index 000000000000..1c39f14db2c3 Binary files /dev/null and b/res/skins/Shade/preferences_preview_screenshot.png differ diff --git a/res/skins/Tango (64 Samplers)/preferences_preview_screenshot.png b/res/skins/Tango (64 Samplers)/preferences_preview_screenshot.png new file mode 100644 index 000000000000..a68261acbb5a Binary files /dev/null and b/res/skins/Tango (64 Samplers)/preferences_preview_screenshot.png differ diff --git a/res/skins/Tango/preferences_preview_screenshot.png b/res/skins/Tango/preferences_preview_screenshot.png new file mode 100644 index 000000000000..a68a9f12af92 Binary files /dev/null and b/res/skins/Tango/preferences_preview_screenshot.png differ diff --git a/src/preferences/dialog/dlgprefinterface.cpp b/src/preferences/dialog/dlgprefinterface.cpp index 1bc50d4e655e..02dc8b5b0164 100644 --- a/src/preferences/dialog/dlgprefinterface.cpp +++ b/src/preferences/dialog/dlgprefinterface.cpp @@ -82,6 +82,7 @@ DlgPrefInterface::DlgPrefInterface(QWidget * parent, MixxxMainWindow * mixxx, warningLabel->setText(warningString); ComboBoxSkinconf->clear(); + skinPreviewLabel->setText(""); QList skinSearchPaths = m_pSkinLoader->getSkinSearchPaths(); QList skins; @@ -104,6 +105,7 @@ DlgPrefInterface::DlgPrefInterface(QWidget * parent, MixxxMainWindow * mixxx, if (skinInfo.absoluteFilePath() == configuredSkinPath) { m_skin = skinInfo.fileName(); ComboBoxSkinconf->setCurrentIndex(index); + skinPreviewLabel->setPixmap(m_pSkinLoader->getSkinPreview(m_skin)); if (size_ok) { warningLabel->hide(); } else { @@ -329,6 +331,7 @@ void DlgPrefInterface::slotSetScheme(int) { void DlgPrefInterface::slotSetSkin(int) { QString newSkin = ComboBoxSkinconf->currentText(); + skinPreviewLabel->setPixmap(m_pSkinLoader->getSkinPreview(newSkin)); if (newSkin != m_skin) { m_skin = newSkin; m_bRebootMixxxView = newSkin != m_skinOnUpdate; diff --git a/src/preferences/dialog/dlgprefinterfacedlg.ui b/src/preferences/dialog/dlgprefinterfacedlg.ui index f65372ef7e0b..f07de235da2f 100644 --- a/src/preferences/dialog/dlgprefinterfacedlg.ui +++ b/src/preferences/dialog/dlgprefinterfacedlg.ui @@ -6,7 +6,7 @@ 0 0 - 562 + 594 723 @@ -52,7 +52,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -97,7 +97,7 @@ - + Locale @@ -107,14 +107,14 @@ - + Locales determine country and language specific settings. - + Full-screen mode @@ -124,14 +124,14 @@ - + Start in full-screen mode - + true @@ -150,7 +150,7 @@ - + @@ -184,7 +184,7 @@ - + HiDPI / Retina scaling @@ -194,7 +194,7 @@ - + Change the size of text, buttons, and other items. @@ -216,7 +216,7 @@ - + Adopt scale factor from the operating system @@ -226,16 +226,23 @@ - + Screen saver - + + + + + skin preview screenshot goes here + + + diff --git a/src/skin/skinloader.cpp b/src/skin/skinloader.cpp index 7c2f4baa4c04..f03e3e3064e7 100644 --- a/src/skin/skinloader.cpp +++ b/src/skin/skinloader.cpp @@ -56,6 +56,14 @@ QString SkinLoader::getSkinPath(const QString& skinName) const { return QString(); } +QPixmap SkinLoader::getSkinPreview(const QString& skinName) const { + QPixmap preview(getSkinPath(skinName) + "/preferences_preview_screenshot.png"); + if (!preview.isNull()){ + return preview; + } + return QPixmap(":/images/skin_preview_placeholder.png"); +} + QString SkinLoader::getConfiguredSkinPath() const { QString configSkin = m_pConfig->getValueString(ConfigKey("[Config]", "ResizableSkin")); diff --git a/src/skin/skinloader.h b/src/skin/skinloader.h index aa2aac4eeb19..e31741823e10 100644 --- a/src/skin/skinloader.h +++ b/src/skin/skinloader.h @@ -33,6 +33,7 @@ class SkinLoader { LaunchImage* loadLaunchImage(QWidget* pParent); QString getSkinPath(const QString& skinName) const; + QPixmap getSkinPreview(const QString& skinName) const; QString getConfiguredSkinPath() const; QString getDefaultSkinName() const; QList getSkinSearchPaths() const;