void setFanartPreviewBackground(DBFanart fanart) { string fanartInfo = fanart.isAvailableLocally ? Translation.FanArtLocal : Translation.FanArtOnline; fanartInfo += Environment.NewLine; foreach (KeyValuePair<string, DBField> kv in fanart.m_fields) { switch (kv.Key) { case DBFanart.cResolution: TVSeriesPlugin.setGUIProperty("FanArt.SelectedFanartResolution", kv.Value.Value); break; case DBFanart.cColors: TVSeriesPlugin.setGUIProperty("FanArt.SelectedFanartColors", kv.Value.Value); break; case DBFanart.cChosen: TVSeriesPlugin.setGUIProperty("FanArt.SelectedFanartIsChosen", kv.Value.Value?Translation.Yes:Translation.No); break; case DBFanart.cDisabled: TVSeriesPlugin.setGUIProperty("FanArt.SelectedFanartIsDisabled", kv.Value.Value ? Translation.Yes : Translation.No); break; } fanartInfo += kv.Key + ": " + kv.Value.Value + Environment.NewLine; } TVSeriesPlugin.setGUIProperty("FanArt.SelectedFanartInfo", fanartInfo); string preview = string.Empty; lock (locker) { if (fanart.isAvailableLocally) { // Ensure Fanart on Disk is valid as well if (ImageAllocator.LoadImageFastFromFile(fanart.FullLocalPath) == null) { MPTVSeriesLog.Write("Fanart is invalid, deleting..."); fanart.Delete(); fanart.Chosen = false; m_Facade.SelectedListItem.Label = Translation.FanArtOnline; } // Should be safe to assign fullsize fanart if available preview = fanart.isAvailableLocally ? ImageAllocator.GetOtherImage(fanart.FullLocalPath, default(System.Drawing.Size), false) : m_Facade.SelectedListItem.IconImageBig; } else preview = m_Facade.SelectedListItem.IconImageBig; TVSeriesPlugin.setGUIProperty("FanArt.SelectedPreview", preview); } }
void downloadFanart(DBFanart fanart) { // we need to get it, let's queue them up and download in the background lock (toDownload) { toDownload.Enqueue(fanart); } setDownloadStatus(); // don't return, user can queue up multiple fanart to download // the last he selects to download will be the chosen one by default // finally lets check if the downloader is already running, and if not start it if (!downloadingWorker.IsBusy) downloadingWorker.RunWorkerAsync(); }