diff --git a/ChangeLog b/ChangeLog index 1a1be8129..55522ac4e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -77,6 +77,8 @@ folder. (Only if 'save downloaded covers in music folder' is enabled) 45. Work-around issues with some styles (e.g. QGtkStyle) and a large number of items in the genre combos. +46. Remove 'Auto' cover size setting. Now cover sizes are based upon setting + and font size. 0.9.2 ----- diff --git a/gui/interfacesettings.cpp b/gui/interfacesettings.cpp index 30fd0d12a..b7db913a9 100644 --- a/gui/interfacesettings.cpp +++ b/gui/interfacesettings.cpp @@ -37,7 +37,6 @@ static void addImageSizes(QComboBox *box) box->addItem(i18n("Medium"), MusicLibraryItemAlbum::CoverMedium); box->addItem(i18n("Large"), MusicLibraryItemAlbum::CoverLarge); box->addItem(i18n("Extra Large"), MusicLibraryItemAlbum::CoverExtraLarge); - box->addItem(i18n("Automatic"), MusicLibraryItemAlbum::CoverAuto); } static void addViewTypes(QComboBox *box, bool iconMode=false, bool groupedTree=false) diff --git a/gui/settings.cpp b/gui/settings.cpp index 27c400ac7..30e24353c 100644 --- a/gui/settings.cpp +++ b/gui/settings.cpp @@ -387,12 +387,14 @@ bool Settings::libraryArtistImage() int Settings::libraryCoverSize() { - return GET_INT("libraryCoverSize", (int)(MusicLibraryItemAlbum::CoverMedium)); + int size=GET_INT("libraryCoverSize", (int)(MusicLibraryItemAlbum::CoverMedium)); + return size>MusicLibraryItemAlbum::CoverExtraLarge || size<0 ? MusicLibraryItemAlbum::CoverMedium : size; } int Settings::albumsCoverSize() { - return GET_INT("albumsCoverSize", (int)(MusicLibraryItemAlbum::CoverMedium)); + int size=GET_INT("albumsCoverSize", (int)(MusicLibraryItemAlbum::CoverMedium)); + return size>MusicLibraryItemAlbum::CoverExtraLarge || size<0 ? MusicLibraryItemAlbum::CoverMedium : size; } int Settings::albumSort() diff --git a/models/musiclibraryitemalbum.cpp b/models/musiclibraryitemalbum.cpp index 3a4dcdefc..79e2d0065 100644 --- a/models/musiclibraryitemalbum.cpp +++ b/models/musiclibraryitemalbum.cpp @@ -47,48 +47,32 @@ static QPixmap *theDefaultLargeIcon=0; static bool useDate=false; static QSize iconItemSize; -static inline int adjust(int v, int step) +static inline int adjust(int v) { - return (((int)(v/step))*step)+((v%step) ? step : 0); + if (v>48) { + static const int constStep=4; + return (((int)(v/constStep))*constStep)+((v%constStep) ? constStep : 0); + } else { + return Icon::stdSize(v); + } } -static int autoListSize=32; -static int autoIconSize=128; - -static int setSize(int size, bool iconMode) -{ - for (int i=MusicLibraryItemAlbum::CoverSmall; i<=MusicLibraryItemAlbum::CoverAuto; ++i) { - int icnSize=MusicLibraryItemAlbum::iconSize((MusicLibraryItemAlbum::CoverSize)i, iconMode); - if (size<=icnSize) { - size=icnSize; - break; - } - } - - if (autoIconSize>MusicLibraryItemAlbum::iconSize(MusicLibraryItemAlbum::CoverExtraLarge, iconMode)) { - size=adjust(size, 4); - } - return size; -} +static int fontHeight=16; void MusicLibraryItemAlbum::setup() { - int height=QApplication::fontMetrics().height(); - - autoListSize=setSize(height*2, false); - autoIconSize=setSize(height*6, true); + fontHeight=QApplication::fontMetrics().height(); } int MusicLibraryItemAlbum::iconSize(MusicLibraryItemAlbum::CoverSize sz, bool iconMode) { switch (sz) { - default: case CoverNone: return 0; - case CoverSmall: return iconMode ? 76 : 22; - case CoverMedium: return iconMode ? 100 : 32; - case CoverLarge: return iconMode ? 128 : 48; - case CoverExtraLarge: return iconMode ? 160 : 64; - case CoverAuto: return iconMode ? autoIconSize : autoListSize; + case CoverSmall: return adjust((iconMode ? 4.75 : 1.375)*fontHeight); + default: + case CoverMedium: return adjust((iconMode ? 6.25 : 2)*fontHeight); + case CoverLarge: return adjust((iconMode ? 8 : 3)*fontHeight); + case CoverExtraLarge: return adjust((iconMode ? 10 : 4)*fontHeight); } } diff --git a/models/musiclibraryitemalbum.h b/models/musiclibraryitemalbum.h index 639afcba9..eb2a11dc9 100644 --- a/models/musiclibraryitemalbum.h +++ b/models/musiclibraryitemalbum.h @@ -45,8 +45,7 @@ public: CoverSmall = 1, CoverMedium = 2, CoverLarge = 3, - CoverExtraLarge = 4, - CoverAuto = 5 + CoverExtraLarge = 4 }; static void setup();