| 905 | |
| 906 | // Initialize the button list item's properties if it has become |
| 907 | // visible for the first time. |
| 908 | if (item->GetText("is_item_initialized").isNull()) |
| 909 | { |
| 910 | QString groupname = sel_item->GetData().toString(); |
| 911 | QString grouplabel = sel_item->GetText(); |
| 912 | QMap<AudioProps, QString> audioFlags; |
| 913 | audioFlags[AUD_DOLBY] = "dolby"; |
| 914 | audioFlags[AUD_SURROUND] = "surround"; |
| 915 | audioFlags[AUD_STEREO] = "stereo"; |
| 916 | audioFlags[AUD_MONO] = "mono"; |
| 917 | |
| 918 | QMap<VideoProps, QString> videoFlags; |
| 919 | videoFlags[VID_1080] = "hd1080"; |
| 920 | videoFlags[VID_720] = "hd720"; |
| 921 | videoFlags[VID_HDTV] = "hdtv"; |
| 922 | videoFlags[VID_WIDESCREEN] = "widescreen"; |
| 923 | |
| 924 | QMap<SubtitleTypes, QString> subtitleFlags; |
| 925 | subtitleFlags[SUB_SIGNED] = "deafsigned"; |
| 926 | subtitleFlags[SUB_ONSCREEN] = "onscreensub"; |
| 927 | subtitleFlags[SUB_NORMAL] = "subtitles"; |
| 928 | subtitleFlags[SUB_HARDHEAR] = "cc"; |
| 929 | |
| 930 | QString state = extract_main_state(*pginfo, m_player); |
| 931 | |
| 932 | item->SetFontState(state); |
| 933 | |
| 934 | InfoMap infoMap; |
| 935 | pginfo->ToMap(infoMap); |
| 936 | item->SetTextFromMap(infoMap); |
| 937 | |
| 938 | QString tempSubTitle = extract_subtitle(*pginfo, groupname); |
| 939 | |
| 940 | if (groupname == pginfo->GetTitle().toLower()) |
| 941 | item->SetText(tempSubTitle, "titlesubtitle"); |
| 942 | |
| 943 | item->DisplayState(state, "status"); |
| 944 | |
| 945 | item->DisplayState(QString::number(pginfo->GetStars(10)), "ratingstate"); |
| 946 | |
| 947 | SetItemIcons(item, pginfo); |
| 948 | |
| 949 | QMap<AudioProps, QString>::iterator ait; |
| 950 | for (ait = audioFlags.begin(); ait != audioFlags.end(); ++ait) |
| 951 | { |
| 952 | if (pginfo->GetAudioProperties() & ait.key()) |
| 953 | item->DisplayState(ait.value(), "audioprops"); |
| 954 | } |
| 955 | |
| 956 | QMap<VideoProps, QString>::iterator vit; |
| 957 | for (vit = videoFlags.begin(); vit != videoFlags.end(); ++vit) |
| 958 | { |
| 959 | if (pginfo->GetVideoProperties() & vit.key()) |
| 960 | item->DisplayState(vit.value(), "videoprops"); |
| 961 | } |
| 962 | |
| 963 | QMap<SubtitleTypes, QString>::iterator sit; |
| 964 | for (sit = subtitleFlags.begin(); sit != subtitleFlags.end(); ++sit) |
| 965 | { |
| 966 | if (pginfo->GetSubtitleType() & sit.key()) |
| 967 | item->DisplayState(sit.value(), "subtitletypes"); |
| 968 | } |
| 969 | |
| 970 | item->DisplayState(pginfo->GetCategoryType(), "categorytype"); |
| 971 | |
| 972 | // Mark this button list item as initialized. |
| 973 | item->SetText("yes", "is_item_initialized"); |
| 974 | } |
| 975 | |
1319 | | QMap<AudioProps, QString> audioFlags; |
1320 | | audioFlags[AUD_DOLBY] = "dolby"; |
1321 | | audioFlags[AUD_SURROUND] = "surround"; |
1322 | | audioFlags[AUD_STEREO] = "stereo"; |
1323 | | audioFlags[AUD_MONO] = "mono"; |
1324 | | |
1325 | | QMap<VideoProps, QString> videoFlags; |
1326 | | videoFlags[VID_1080] = "hd1080"; |
1327 | | videoFlags[VID_720] = "hd720"; |
1328 | | videoFlags[VID_HDTV] = "hdtv"; |
1329 | | videoFlags[VID_WIDESCREEN] = "widescreen"; |
1330 | | |
1331 | | QMap<SubtitleTypes, QString> subtitleFlags; |
1332 | | subtitleFlags[SUB_SIGNED] = "deafsigned"; |
1333 | | subtitleFlags[SUB_ONSCREEN] = "onscreensub"; |
1334 | | subtitleFlags[SUB_NORMAL] = "subtitles"; |
1335 | | subtitleFlags[SUB_HARDHEAR] = "cc"; |
1336 | | |
1346 | | |
1347 | | QString state = extract_main_state(**it, m_player); |
1348 | | |
1349 | | item->SetFontState(state); |
1350 | | |
1351 | | InfoMap infoMap; |
1352 | | (*it)->ToMap(infoMap); |
1353 | | item->SetTextFromMap(infoMap); |
1354 | | |
1355 | | QString tempSubTitle = extract_subtitle(**it, groupname); |
1356 | | |
1357 | | if (groupname == (*it)->GetTitle().toLower()) |
1358 | | item->SetText(tempSubTitle, "titlesubtitle"); |
1359 | | |
1360 | | item->DisplayState(state, "status"); |
1361 | | |
1362 | | item->DisplayState(QString::number((*it)->GetStars(10)), "ratingstate"); |
1363 | | |
1364 | | SetItemIcons(item, (*it)); |
1365 | | |
1366 | | QMap<AudioProps, QString>::iterator ait; |
1367 | | for (ait = audioFlags.begin(); ait != audioFlags.end(); ++ait) |
1368 | | { |
1369 | | if ((*it)->GetAudioProperties() & ait.key()) |
1370 | | item->DisplayState(ait.value(), "audioprops"); |
1371 | | } |
1372 | | |
1373 | | QMap<VideoProps, QString>::iterator vit; |
1374 | | for (vit = videoFlags.begin(); vit != videoFlags.end(); ++vit) |
1375 | | { |
1376 | | if ((*it)->GetVideoProperties() & vit.key()) |
1377 | | item->DisplayState(vit.value(), "videoprops"); |
1378 | | } |
1379 | | |
1380 | | QMap<SubtitleTypes, QString>::iterator sit; |
1381 | | for (sit = subtitleFlags.begin(); sit != subtitleFlags.end(); ++sit) |
1382 | | { |
1383 | | if ((*it)->GetSubtitleType() & sit.key()) |
1384 | | item->DisplayState(sit.value(), "subtitletypes"); |
1385 | | } |
1386 | | |
1387 | | item->DisplayState((*it)->GetCategoryType(), "categorytype"); |
| 1399 | // Defer initialization of the item's properties until it |
| 1400 | // first becomes visible. |