Ticket #6159: MVnewmeta.2.diff
File MVnewmeta.2.diff, 38.8 KB (added by , 15 years ago) |
---|
-
mythvideo/theme/default/video-ui.xml
858 858 <window name="edit_metadata"> 859 859 860 860 <textarea name="title" from="basetextarea"> 861 <area>10, 50,760,50</area>861 <area>10,30,760,50</area> 862 862 <value>Edit Video Information</value> 863 863 <align>hcenter,vcenter</align> 864 864 <font>baselarge</font> … … 867 867 <!-- Labels --> 868 868 869 869 <textarea name="title_text" from="basetextarea"> 870 <area>50, 135,250,40</area>870 <area>50,90,250,40</area> 871 871 <value>Name:</value> 872 872 <align>right,top</align> 873 873 </textarea> 874 874 875 875 <textarea name="category_text" from="title_text"> 876 <position>50,1 97</position>876 <position>50,152</position> 877 877 <value>Category:</value> 878 878 </textarea> 879 879 880 880 <textarea name="level_text" from="title_text"> 881 <position>50,2 47</position>881 <position>50,202</position> 882 882 <value>Parental Control:</value> 883 883 </textarea> 884 884 885 885 <textarea name="child_text" from="title_text"> 886 <position>50,2 92</position>886 <position>50,247</position> 887 887 <value>File to Always Play Next:</value> 888 888 </textarea> 889 889 890 890 <textarea name="browse_text" from="title_text"> 891 <position>50, 337</position>891 <position>50,292</position> 892 892 <value>Include while Browsing:</value> 893 893 </textarea> 894 894 895 895 <textarea name="coverart_text_label" from="title_text"> 896 <position>50,3 75</position>896 <position>50,328</position> 897 897 <value>Cover Art:</value> 898 898 </textarea> 899 899 900 <textarea name="screenshot_text_label" from="title_text"> 901 <position>50,357</position> 902 <value>Screenshot:</value> 903 </textarea> 904 905 <textarea name="banner_text_label" from="title_text"> 906 <position>50,386</position> 907 <value>Banner:</value> 908 </textarea> 909 910 <textarea name="fanart_text_label" from="title_text"> 911 <position>50,415</position> 912 <value>Fanart:</value> 913 </textarea> 914 900 915 <textarea name="trailer_text_label" from="title_text"> 901 <position>50,4 05</position>916 <position>50,447</position> 902 917 <value>Trailer:</value> 903 918 </textarea> 904 919 905 920 <textarea name="player_text" from="title_text"> 906 <position>50,4 45</position>921 <position>50,487</position> 907 922 <value>Unique Player Command:</value> 908 923 </textarea> 909 924 910 925 <!-- Widgets --> 911 926 912 927 <textedit name="title_edit" from="basetextedit"> 913 <position>310, 125</position>928 <position>310,80</position> 914 929 </textedit> 915 930 916 931 <buttonlist name="category_select" from="baseselector"> 917 <position>310,1 90</position>932 <position>310,145</position> 918 933 </buttonlist> 919 934 920 935 <buttonlist name="level_select" from="baseselector"> 921 <position>310, 240</position>936 <position>310,195</position> 922 937 </buttonlist> 923 938 924 939 <buttonlist name="child_select" from="baseselector"> 925 <position>310,2 85</position>940 <position>310,240</position> 926 941 </buttonlist> 927 942 928 943 <checkbox name="browse_check" from="basecheckbox"> 929 <position>310, 335</position>944 <position>310,290</position> 930 945 </checkbox> 931 946 932 947 <button name="coverart_button"> 933 <area>310,3 70,32,32</area>948 <area>310,323,32,32</area> 934 949 <statetype name="buttonstate"> 935 950 <state name="active"> 936 951 <imagetype name="background"> … … 952 967 </button> 953 968 954 969 <textarea name="coverart_text" from="basetextarea"> 955 <area>350,3 75,250,40</area>970 <area>350,328,250,40</area> 956 971 <value>/path/to/the/thing.jpg</value> 957 972 </textarea> 958 973 974 <button name="screenshot_button"> 975 <area>310,352,32,32</area> 976 <statetype name="buttonstate"> 977 <state name="active"> 978 <imagetype name="background"> 979 <filename>blankbutton_off.png</filename> 980 </imagetype> 981 </state> 982 <state name="selected" from="active"> 983 <imagetype name="background"> 984 <filename>blankbutton_on.png</filename> 985 </imagetype> 986 </state> 987 <state name="disabled" from="active" /> 988 <state name="pushed" from="active"> 989 <imagetype name="background"> 990 <filename>blankbutton_pushed.png</filename> 991 </imagetype> 992 </state> 993 </statetype> 994 </button> 995 996 <textarea name="screenshot_text" from="basetextarea"> 997 <area>350,357,250,40</area> 998 <value>/path/to/the/thing.jpg</value> 999 </textarea> 1000 1001 <button name="banner_button"> 1002 <area>310,381,32,32</area> 1003 <statetype name="buttonstate"> 1004 <state name="active"> 1005 <imagetype name="background"> 1006 <filename>blankbutton_off.png</filename> 1007 </imagetype> 1008 </state> 1009 <state name="selected" from="active"> 1010 <imagetype name="background"> 1011 <filename>blankbutton_on.png</filename> 1012 </imagetype> 1013 </state> 1014 <state name="disabled" from="active" /> 1015 <state name="pushed" from="active"> 1016 <imagetype name="background"> 1017 <filename>blankbutton_pushed.png</filename> 1018 </imagetype> 1019 </state> 1020 </statetype> 1021 </button> 1022 1023 <textarea name="banner_text" from="basetextarea"> 1024 <area>350,386,250,40</area> 1025 <value>/path/to/the/thing.jpg</value> 1026 </textarea> 1027 1028 <button name="fanart_button"> 1029 <area>310,412,32,32</area> 1030 <statetype name="buttonstate"> 1031 <state name="active"> 1032 <imagetype name="background"> 1033 <filename>blankbutton_off.png</filename> 1034 </imagetype> 1035 </state> 1036 <state name="selected" from="active"> 1037 <imagetype name="background"> 1038 <filename>blankbutton_on.png</filename> 1039 </imagetype> 1040 </state> 1041 <state name="disabled" from="active" /> 1042 <state name="pushed" from="active"> 1043 <imagetype name="background"> 1044 <filename>blankbutton_pushed.png</filename> 1045 </imagetype> 1046 </state> 1047 </statetype> 1048 </button> 1049 1050 <textarea name="fanart_text" from="basetextarea"> 1051 <area>350,415,250,40</area> 1052 <value>/path/to/the/thing.jpg</value> 1053 </textarea> 1054 959 1055 <button name="trailer_button"> 960 <area>310,4 00,32,32</area>1056 <area>310,442,32,32</area> 961 1057 <statetype name="buttonstate"> 962 1058 <state name="active"> 963 1059 <imagetype name="background"> … … 979 1075 </button> 980 1076 981 1077 <textarea name="trailer_text" from="basetextarea"> 982 <area>350,4 05,250,40</area>1078 <area>350,447,250,40</area> 983 1079 <value>/path/to/the/thing.jpg</value> 984 1080 </textarea> 985 1081 986 1082 987 1083 <textedit name="player_edit" from="basetextedit"> 988 <position>310,4 35</position>1084 <position>310,477</position> 989 1085 </textedit> 990 1086 991 1087 <button name="done_button" from="basebutton"> 992 <position>310,5 05</position>1088 <position>310,537</position> 993 1089 </button> 994 1090 995 1091 </window> -
mythvideo/theme/default-wide/video-ui.xml
843 853 <window name="edit_metadata"> 844 854 845 855 <textarea name="title" from="basetextarea"> 846 <area>10,50, 760,50</area>856 <area>10,50,1260,50</area> 847 857 <value>Edit Video Information</value> 848 858 <align>hcenter,vcenter</align> 849 859 <font>baselarge</font> … … 852 862 <!-- Labels --> 853 863 854 864 <textarea name="title_text" from="basetextarea"> 855 <area> 50,135,250,40</area>865 <area>250,110,250,40</area> 856 866 <value>Name:</value> 857 867 <align>right,top</align> 858 868 </textarea> 859 869 860 870 <textarea name="category_text" from="title_text"> 861 <position> 50,197</position>871 <position>250,172</position> 862 872 <value>Category:</value> 863 873 </textarea> 864 874 865 875 <textarea name="level_text" from="title_text"> 866 <position> 50,247</position>876 <position>250,222</position> 867 877 <value>Parental Control:</value> 868 878 </textarea> 869 879 870 880 <textarea name="child_text" from="title_text"> 871 <position> 50,292</position>881 <position>250,267</position> 872 882 <value>File to Always Play Next:</value> 873 883 </textarea> 874 884 875 885 <textarea name="browse_text" from="title_text"> 876 <position> 50,337</position>886 <position>250,312</position> 877 887 <value>Include while Browsing:</value> 878 888 </textarea> 879 889 880 890 <textarea name="coverart_text_label" from="title_text"> 881 <position> 50,375</position>891 <position>250,348</position> 882 892 <value>Cover Art:</value> 883 893 </textarea> 884 894 895 <textarea name="screenshot_text_label" from="title_text"> 896 <position>250,377</position> 897 <value>Screenshot:</value> 898 </textarea> 899 900 <textarea name="banner_text_label" from="title_text"> 901 <position>250,406</position> 902 <value>Banner:</value> 903 </textarea> 904 905 <textarea name="fanart_text_label" from="title_text"> 906 <position>250,435</position> 907 <value>Fanart:</value> 908 </textarea> 909 885 910 <textarea name="trailer_text_label" from="title_text"> 886 <position> 50,405</position>911 <position>250,464</position> 887 912 <value>Trailer:</value> 888 913 </textarea> 889 914 890 915 <textarea name="player_text" from="title_text"> 891 <position> 50,445</position>916 <position>250,510</position> 892 917 <value>Unique Player Command:</value> 893 918 </textarea> 894 919 895 920 <!-- Widgets --> 896 921 897 922 <textedit name="title_edit" from="basetextedit"> 898 <position> 310,125</position>923 <position>510,100</position> 899 924 </textedit> 900 925 901 926 <buttonlist name="category_select" from="baseselector"> 902 <position> 310,190</position>927 <position>510,165</position> 903 928 </buttonlist> 904 929 905 930 <buttonlist name="level_select" from="baseselector"> 906 <position> 310,240</position>931 <position>510,215</position> 907 932 </buttonlist> 908 933 909 934 <buttonlist name="child_select" from="baseselector"> 910 <position> 310,285</position>935 <position>510,260</position> 911 936 </buttonlist> 912 937 913 938 <checkbox name="browse_check" from="basecheckbox"> 914 <position> 310,335</position>939 <position>510,310</position> 915 940 </checkbox> 916 941 917 942 <button name="coverart_button"> 918 <area> 310,370,32,32</area>943 <area>510,343,32,32</area> 919 944 <statetype name="buttonstate"> 920 945 <state name="active"> 921 946 <imagetype name="background"> … … 937 962 </button> 938 963 939 964 <textarea name="coverart_text" from="basetextarea"> 940 <area> 350,375,250,40</area>965 <area>550,348,250,40</area> 941 966 <value>/path/to/the/thing.jpg</value> 942 967 </textarea> 943 968 969 <button name="screenshot_button"> 970 <area>510,372,32,32</area> 971 <statetype name="buttonstate"> 972 <state name="active"> 973 <imagetype name="background"> 974 <filename>blankbutton_off.png</filename> 975 </imagetype> 976 </state> 977 <state name="selected" from="active"> 978 <imagetype name="background"> 979 <filename>blankbutton_on.png</filename> 980 </imagetype> 981 </state> 982 <state name="disabled" from="active" /> 983 <state name="pushed" from="active"> 984 <imagetype name="background"> 985 <filename>blankbutton_pushed.png</filename> 986 </imagetype> 987 </state> 988 </statetype> 989 </button> 990 991 <textarea name="screenshot_text" from="basetextarea"> 992 <area>550,377,250,40</area> 993 <value>/path/to/the/thing.jpg</value> 994 </textarea> 995 996 <button name="banner_button"> 997 <area>510,401,32,32</area> 998 <statetype name="buttonstate"> 999 <state name="active"> 1000 <imagetype name="background"> 1001 <filename>blankbutton_off.png</filename> 1002 </imagetype> 1003 </state> 1004 <state name="selected" from="active"> 1005 <imagetype name="background"> 1006 <filename>blankbutton_on.png</filename> 1007 </imagetype> 1008 </state> 1009 <state name="disabled" from="active" /> 1010 <state name="pushed" from="active"> 1011 <imagetype name="background"> 1012 <filename>blankbutton_pushed.png</filename> 1013 </imagetype> 1014 </state> 1015 </statetype> 1016 </button> 1017 1018 <textarea name="banner_text" from="basetextarea"> 1019 <area>550,406,250,40</area> 1020 <value>/path/to/the/thing.jpg</value> 1021 </textarea> 1022 1023 <button name="fanart_button"> 1024 <area>510,430,32,32</area> 1025 <statetype name="buttonstate"> 1026 <state name="active"> 1027 <imagetype name="background"> 1028 <filename>blankbutton_off.png</filename> 1029 </imagetype> 1030 </state> 1031 <state name="selected" from="active"> 1032 <imagetype name="background"> 1033 <filename>blankbutton_on.png</filename> 1034 </imagetype> 1035 </state> 1036 <state name="disabled" from="active" /> 1037 <state name="pushed" from="active"> 1038 <imagetype name="background"> 1039 <filename>blankbutton_pushed.png</filename> 1040 </imagetype> 1041 </state> 1042 </statetype> 1043 </button> 1044 1045 <textarea name="fanart_text" from="basetextarea"> 1046 <area>550,435,250,40</area> 1047 <value>/path/to/the/thing.jpg</value> 1048 </textarea> 1049 944 1050 <button name="trailer_button"> 945 <area> 310,400,32,32</area>1051 <area>510,460,32,32</area> 946 1052 <statetype name="buttonstate"> 947 1053 <state name="active"> 948 1054 <imagetype name="background"> … … 964 1070 </button> 965 1071 966 1072 <textarea name="trailer_text" from="basetextarea"> 967 <area> 350,405,250,40</area>1073 <area>550,465,250,40</area> 968 1074 <value>/path/to/the/thing.jpg</value> 969 1075 </textarea> 970 1076 971 1077 <textedit name="player_edit" from="basetextedit"> 972 <position> 310,435</position>1078 <position>510,495</position> 973 1079 </textedit> 974 1080 975 1081 <button name="done_button" from="basebutton"> 976 <position> 310,505</position>1082 <position>510,565</position> 977 1083 </button> 978 1084 979 1085 </window> -
mythvideo/mythvideo/videodlg.h
111 111 virtual void loadData(); 112 112 void fetchVideos(); 113 113 QString GetCoverImage(MythGenericTree *node); 114 QString GetScreenshot(MythGenericTree *node); 115 QString GetBanner(MythGenericTree *node); 116 QString GetFanart(MythGenericTree *node); 114 117 115 118 Metadata *GetMetadata(MythUIButtonListItem *item); 116 119 … … 183 186 MythUIText *m_crumbText; 184 187 185 188 MythUIImage *m_coverImage; 189 MythUIImage *m_screenshot; 190 MythUIImage *m_banner; 191 MythUIImage *m_fanart; 186 192 187 193 MythUIStateType *m_parentalLevelState; 188 194 MythUIStateType *m_videoLevelState; -
mythvideo/mythvideo/metadatalistmanager.cpp
113 113 const QString BaseMetadataQuery( 114 114 "SELECT title, director, plot, rating, year, userrating," 115 115 "length, filename, showlevel, coverfile, inetref, childid," 116 "browse, playcommand, category, intid, trailer FROM videometadata"); 116 "browse, playcommand, category, intid, trailer, screenshot," 117 "banner, fanart FROM videometadata"); 117 118 118 119 query.prepare(BaseMetadataQuery); 119 120 -
mythvideo/mythvideo/metadata.cpp
88 88 89 89 public: 90 90 MetadataImp(const QString &filename, const QString &trailer, const QString &coverfile, 91 const QString &screenshot, const QString &banner, const QString &fanart, 91 92 const QString &title, int year, 92 93 const QString &inetref, const QString &director, 93 94 const QString &plot, float userrating, … … 103 104 m_rating(rating), m_playcommand(playcommand), m_category(category), 104 105 m_genres(genres), m_countries(countries), m_cast(cast), 105 106 m_filename(filename), m_trailer(trailer), m_coverfile(coverfile), 106 m_categoryID(categoryID), m_childID(childID), m_year(year), 107 m_length(length), m_showlevel(showlevel), m_browse(browse), m_id(id), 107 m_screenshot(screenshot), m_banner(banner), m_fanart(fanart), 108 m_categoryID(categoryID), m_childID(childID), 109 m_year(year), m_length(length), m_showlevel(showlevel), m_browse(browse), m_id(id), 108 110 m_userrating(userrating) 109 111 { 110 112 VideoCategory::getCategory().get(m_categoryID, m_category); … … 137 139 m_filename = rhs.m_filename; 138 140 m_trailer = rhs.m_trailer; 139 141 m_coverfile = rhs.m_coverfile; 142 m_screenshot = rhs.m_screenshot; 143 m_banner = rhs.m_banner; 144 m_fanart = rhs.m_fanart; 140 145 141 146 m_categoryID = rhs.m_categoryID; 142 147 m_childID = rhs.m_childID; … … 216 221 const QString &getCoverFile() const { return m_coverfile; } 217 222 void setCoverFile(const QString &coverFile) { m_coverfile = coverFile; } 218 223 224 const QString &getScreenshot() const { return m_screenshot; } 225 void setScreenshot(const QString &screenshot) { m_screenshot = screenshot; } 226 227 const QString &getBanner() const { return m_banner; } 228 void setBanner(const QString &banner) { m_banner = banner; } 229 230 const QString &getFanart() const { return m_fanart; } 231 void setFanart(const QString &fanart) { m_fanart = fanart; } 232 219 233 int getCategoryID() const 220 234 { 221 235 return m_categoryID; … … 281 295 QString m_filename; 282 296 QString m_trailer; 283 297 QString m_coverfile; 298 QString m_screenshot; 299 QString m_banner; 300 QString m_fanart; 284 301 285 302 int m_categoryID; 286 303 int m_childID; … … 383 400 void MetadataImp::Reset() 384 401 { 385 402 MetadataImp tmp(m_filename, VIDEO_TRAILER_DEFAULT, VIDEO_COVERFILE_DEFAULT, 386 Metadata::FilenameToTitle(m_filename), VIDEO_YEAR_DEFAULT, 403 VIDEO_SCREENSHOT_DEFAULT, VIDEO_BANNER_DEFAULT, VIDEO_FANART_DEFAULT, 404 Metadata::FilenameToTitle(m_filename), VIDEO_YEAR_DEFAULT, 387 405 VIDEO_INETREF_DEFAULT, VIDEO_DIRECTOR_DEFAULT, 388 406 VIDEO_PLOT_DEFAULT, 0.0, VIDEO_RATING_DEFAULT, 0, m_id, 389 407 ParentalLevel::plLowest, 0, -1, true, "", "", … … 475 493 m_categoryID = query.value(14).toInt(); 476 494 m_id = query.value(15).toInt(); 477 495 m_trailer = query.value(16).toString(); 496 m_screenshot = query.value(17).toString(); 497 m_banner = query.value(18).toString(); 498 m_fanart = query.value(19).toString(); 478 499 479 500 VideoCategory::getCategory().get(m_categoryID, m_category); 480 501 … … 500 521 m_rating = VIDEO_RATING_DEFAULT; 501 522 if (m_coverfile.isEmpty()) 502 523 m_coverfile = VIDEO_COVERFILE_DEFAULT; 524 if (m_screenshot.isEmpty()) 525 m_screenshot = VIDEO_SCREENSHOT_DEFAULT; 526 if (m_banner.isEmpty()) 527 m_banner = VIDEO_BANNER_DEFAULT; 528 if (m_fanart.isEmpty()) 529 m_fanart = VIDEO_FANART_DEFAULT; 503 530 if (m_trailer.isEmpty()) 504 531 m_trailer = VIDEO_TRAILER_DEFAULT; 505 532 if (m_inetref.isEmpty()) … … 519 546 520 547 query.prepare("INSERT INTO videometadata (title,director,plot," 521 548 "rating,year,userrating,length,filename,showlevel," 522 "coverfile,inetref,browse,trailer) VALUES (:TITLE, :DIRECTOR, " 523 ":PLOT, :RATING, :YEAR, :USERRATING, :LENGTH, " 524 ":FILENAME, :SHOWLEVEL, :COVERFILE, :INETREF, :BROWSE, :TRAILER)"); 549 "coverfile,inetref,browse,trailer,screenshot) VALUES (:TITLE, " 550 ":DIRECTOR, :PLOT, :RATING, :YEAR, :USERRATING, :LENGTH, " 551 ":FILENAME, :SHOWLEVEL, :COVERFILE, :INETREF, :BROWSE, " 552 ":TRAILER, :SCREENSHOT, :BANNER, :FANART)"); 525 553 526 554 } 527 555 else … … 531 559 "year = :YEAR, userrating = :USERRATING, " 532 560 "length = :LENGTH, filename = :FILENAME, trailer = :TRAILER, " 533 561 "showlevel = :SHOWLEVEL, coverfile = :COVERFILE, " 562 "screenshot = :SCREENSHOT, banner = :BANNER, fanart = :FANART, " 534 563 "inetref = :INETREF, browse = :BROWSE, " 535 564 "playcommand = :PLAYCOMMAND, childid = :CHILDID, " 536 565 "category = :CATEGORY WHERE intid = :INTID"); … … 552 581 query.bindValue(":TRAILER", m_trailer); 553 582 query.bindValue(":SHOWLEVEL", m_showlevel); 554 583 query.bindValue(":COVERFILE", m_coverfile); 584 query.bindValue(":SCREENSHOT", m_screenshot); 585 query.bindValue(":BANNER", m_banner); 586 query.bindValue(":FANART", m_fanart); 555 587 query.bindValue(":INETREF", m_inetref); 556 588 query.bindValue(":BROWSE", m_browse); 557 589 … … 783 815 return ret; 784 816 } 785 817 786 Metadata::Metadata(const QString &filename, const QString &trailer, const QString &coverfile, 818 Metadata::Metadata(const QString &filename, const QString &trailer, 819 const QString &coverfile, const QString &screenshot, 820 const QString &banner, const QString &fanart, 787 821 const QString &title, int year, 788 822 const QString &inetref, const QString &director, 789 823 const QString &plot, float userrating, … … 795 829 const country_list &countries, 796 830 const cast_list &cast) 797 831 { 798 m_imp = new MetadataImp(filename, trailer, coverfile, title, year, inetref, director, 799 plot, userrating, rating, length, id, showlevel, 800 categoryID, childID, browse, playcommand, category, 832 m_imp = new MetadataImp(filename, trailer, coverfile, screenshot, banner, 833 fanart, title, year, inetref, director, plot, 834 userrating, rating, length, id, showlevel, 835 categoryID, childID, browse, playcommand, category, 801 836 genres, countries, cast); 802 837 } 803 838 … … 1011 1046 m_imp->setCoverFile(coverFile); 1012 1047 } 1013 1048 1049 const QString &Metadata::Screenshot() const 1050 { 1051 return m_imp->getScreenshot(); 1052 } 1053 1054 void Metadata::setScreenshot(const QString &screenshot) 1055 { 1056 m_imp->setScreenshot(screenshot); 1057 } 1058 1059 const QString &Metadata::Banner() const 1060 { 1061 return m_imp->getBanner(); 1062 } 1063 1064 void Metadata::setBanner(const QString &banner) 1065 { 1066 m_imp->setBanner(banner); 1067 } 1068 1069 const QString &Metadata::Fanart() const 1070 { 1071 return m_imp->getFanart(); 1072 } 1073 1074 void Metadata::setFanart(const QString &fanart) 1075 { 1076 m_imp->setFanart(fanart); 1077 } 1078 1014 1079 const QString &Metadata::Category() const 1015 1080 { 1016 1081 return m_imp->getCategory(); -
mythvideo/mythvideo/globalsettings.cpp
247 270 return gc; 248 271 } 249 272 273 HostLineEdit *VideoScreenshotDirectory() 274 { 275 HostLineEdit *gc = new HostLineEdit("VideoScreenshotDir"); 276 gc->setLabel(QObject::tr("Directory that holds movie screenshots")); 277 gc->setValue(GetConfDir() + "/MythVideo/Screenshots"); 278 gc->setHelpText(QObject::tr("This directory must exist, and the user " 279 "running MythVideo needs to have read/write permission " 280 "to the directory.")); 281 return gc; 282 } 283 284 HostLineEdit *VideoBannerDirectory() 285 { 286 HostLineEdit *gc = new HostLineEdit("VideoBannerDir"); 287 gc->setLabel(QObject::tr("Directory that holds movie/TV Banners")); 288 gc->setValue(GetConfDir() + "/MythVideo/Banners"); 289 gc->setHelpText(QObject::tr("This directory must exist, and the user " 290 "running MythVideo needs to have read/write permission " 291 "to the directory.")); 292 return gc; 293 } 294 295 HostLineEdit *VideoFanartDirectory() 296 { 297 HostLineEdit *gc = new HostLineEdit("VideoFanartDir"); 298 gc->setLabel(QObject::tr("Directory that holds movie fanart")); 299 gc->setValue(GetConfDir() + "/MythVideo/Fanart"); 300 gc->setHelpText(QObject::tr("This directory must exist, and the user " 301 "running MythVideo needs to have read/write permission " 302 "to the directory.")); 303 return gc; 304 } 305 250 306 HostLineEdit *TrailerDirectory() 251 307 { 252 308 HostLineEdit *gc = new HostLineEdit("mythvideo.TrailersDir"); … … 682 737 VConfigPage page1(pages, false); 683 738 page1->addChild(VideoStartupDirectory()); 684 739 page1->addChild(VideoArtworkDirectory()); 740 page1->addChild(VideoScreenshotDirectory()); 741 page1->addChild(VideoBannerDirectory()); 742 page1->addChild(VideoFanartDirectory()); 685 743 page1->addChild(VideoDefaultView()); 686 744 687 745 VConfigPage page2(pages, false); -
mythvideo/mythvideo/globals.cpp
16 16 const QString VIDEO_INETREF_DEFAULT = "00000000"; 17 17 const QString VIDEO_COVERFILE_DEFAULT = QObject::tr("No Cover"); 18 18 const QString VIDEO_TRAILER_DEFAULT; 19 const QString VIDEO_SCREENSHOT_DEFAULT; 20 const QString VIDEO_BANNER_DEFAULT; 21 const QString VIDEO_FANART_DEFAULT; 19 22 const QString VIDEO_RATING_DEFAULT = QObject::tr("NR"); 20 23 const QString VIDEO_PLOT_DEFAULT = QObject::tr("None"); 21 24 const QString VIDEO_CAST_DEFAULT = VIDEO_CAST_UNKNOWN; -
mythvideo/mythvideo/dbcheck.cpp
38 38 const QString lastMythDVDDBVersion = "1002"; 39 39 const QString lastMythVideoVersion = "1010"; 40 40 41 const QString currentDatabaseVersion = "102 1";41 const QString currentDatabaseVersion = "1022"; 42 42 43 43 const QString OldMythVideoVersionName = "VideoDBSchemaVer"; 44 44 const QString OldMythDVDVersionName = "DVDDBSchemaVer"; … … 816 816 817 817 UpdateDBVersionNumber(MythVideoVersionName, "1021"); 818 818 } 819 820 if (dbver == "1021") 821 { 822 QStringList updates; 823 updates += "ALTER TABLE videometadata ADD `screenshot` TEXT;"; 824 updates += "ALTER TABLE videometadata ADD `banner` TEXT;"; 825 updates += "ALTER TABLE videometadata ADD `fanart` TEXT;"; 826 performActualUpdate(updates, "1022", dbver, MythVideoVersionName); 827 } 819 828 } 820 829 } 821 830 -
mythvideo/mythvideo/videoutils.cpp
70 70 coverfile == VIDEO_COVERFILE_DEFAULT_OLD; 71 71 } 72 72 73 bool IsDefaultScreenshot(const QString &screenshot) 74 { 75 return screenshot == VIDEO_SCREENSHOT_DEFAULT; 76 } 77 78 bool IsDefaultBanner(const QString &banner) 79 { 80 return banner == VIDEO_SCREENSHOT_DEFAULT; 81 } 82 83 bool IsDefaultFanart(const QString &fanart) 84 { 85 return fanart == VIDEO_FANART_DEFAULT; 86 } 87 73 88 QString GetDisplayUserRating(float userrating) 74 89 { 75 90 return QString::number(userrating, 'f', 1); -
mythvideo/mythvideo/editmetadata.h
60 60 MythUICheckBox *m_browseCheck; 61 61 MythUIButton *m_coverartButton; 62 62 MythUIText *m_coverartText; 63 MythUIButton *m_screenshotButton; 64 MythUIText *m_screenshotText; 65 MythUIButton *m_bannerButton; 66 MythUIText *m_bannerText; 67 MythUIButton *m_fanartButton; 68 MythUIText *m_fanartText; 63 69 MythUIButton *m_trailerButton; 64 70 MythUIText *m_trailerText; 65 71 MythUIButton *m_doneButton; -
mythvideo/mythvideo/videodlg.cpp
783 783 784 784 tmp["coverfile"] = coverfile; 785 785 786 const QString screenshotfile = metadata->Screenshot(); 787 if (!IsDefaultScreenshot(screenshotfile)) 788 tmp["screenshot"] = screenshotfile; 789 790 tmp["screenshotfile"] = screenshotfile; 791 792 const QString bannerfile = metadata->Banner(); 793 if (!IsDefaultBanner(bannerfile)) 794 tmp["banner"] = bannerfile; 795 796 tmp["bannerfile"] = bannerfile; 797 798 const QString fanartfile = metadata->Fanart(); 799 if (!IsDefaultFanart(fanartfile)) 800 tmp["fanart"] = fanartfile; 801 802 tmp["fanartfile"] = fanartfile; 803 786 804 tmp["video_player"] = VideoPlayerCommand::PlayerFor(metadata) 787 805 .GetCommandDisplayName(); 788 806 tmp["player"] = metadata->PlayCommand(); … … 836 854 helper h(tmp, dest); 837 855 838 856 h.handleImage("coverimage"); 857 h.handleImage("screenshot"); 858 h.handleImage("banner"); 859 h.handleImage("fanart"); 839 860 840 861 h.handleText("coverfile"); 862 h.handleText("screenshotfile"); 863 h.handleText("bannerfile"); 864 h.handleText("fanartfile"); 841 865 h.handleText("video_player"); 842 866 h.handleText("player"); 843 867 h.handleText("filename"); … … 1162 1186 MythScreenType(lparent, lname), m_menuPopup(0), m_busyPopup(0), 1163 1187 m_videoButtonList(0), m_videoButtonTree(0), m_titleText(0), 1164 1188 m_novideoText(0), m_positionText(0), m_crumbText(0), m_coverImage(0), 1165 m_ parentalLevelState(0)1189 m_screenshot(0), m_banner(0), m_fanart(0), m_parentalLevelState(0) 1166 1190 { 1167 1191 m_d = new VideoDialogPrivate(video_list, type); 1168 1192 … … 1240 1264 UIUtilW::Assign(this, m_crumbText, "breadcrumbs"); 1241 1265 1242 1266 UIUtilW::Assign(this, m_coverImage, "coverimage"); 1267 UIUtilW::Assign(this, m_screenshot, "screenshot"); 1268 UIUtilW::Assign(this, m_banner, "banner"); 1269 UIUtilW::Assign(this, m_fanart, "fanart"); 1243 1270 1244 1271 UIUtilW::Assign(this, m_parentalLevelState, "parentallevel"); 1245 1272 … … 1484 1511 return icon_file; 1485 1512 } 1486 1513 1514 QString VideoDialog::GetScreenshot(MythGenericTree *node) 1515 { 1516 int nodeInt = node->getInt(); 1517 1518 QString icon_file; 1519 1520 if (nodeInt == kSubFolder || nodeInt == kUpFolder) // subdirectory 1521 { 1522 icon_file = VIDEO_SCREENSHOT_DEFAULT; 1523 } 1524 else 1525 { 1526 const Metadata *metadata = GetMetadataPtrFromNode(node); 1527 1528 if (metadata) 1529 icon_file = metadata->Screenshot(); 1530 } 1531 1532 if (IsDefaultScreenshot(icon_file)) 1533 icon_file.clear(); 1534 1535 return icon_file; 1536 } 1537 1538 QString VideoDialog::GetBanner(MythGenericTree *node) 1539 { 1540 int nodeInt = node->getInt(); 1541 1542 QString icon_file; 1543 1544 if (nodeInt == kSubFolder || nodeInt == kUpFolder) // subdirectory 1545 { 1546 icon_file = VIDEO_BANNER_DEFAULT; 1547 } 1548 else 1549 { 1550 const Metadata *metadata = GetMetadataPtrFromNode(node); 1551 1552 if (metadata) 1553 icon_file = metadata->Banner(); 1554 } 1555 1556 if (IsDefaultBanner(icon_file)) 1557 icon_file.clear(); 1558 1559 return icon_file; 1560 } 1561 1562 QString VideoDialog::GetFanart(MythGenericTree *node) 1563 { 1564 int nodeInt = node->getInt(); 1565 1566 QString icon_file; 1567 1568 if (nodeInt == kSubFolder || nodeInt == kUpFolder) // subdirectory 1569 { 1570 icon_file = VIDEO_FANART_DEFAULT; 1571 } 1572 else 1573 { 1574 const Metadata *metadata = GetMetadataPtrFromNode(node); 1575 1576 if (metadata) 1577 icon_file = metadata->Fanart(); 1578 } 1579 1580 if (IsDefaultFanart(icon_file)) 1581 icon_file.clear(); 1582 1583 return icon_file; 1584 } 1585 1487 1586 bool VideoDialog::keyPressEvent(QKeyEvent *levent) 1488 1587 { 1489 1588 if (GetFocusWidget()->keyPressEvent(levent)) -
mythvideo/mythvideo/videoscan.cpp
216 216 if (!p->second) 217 217 { 218 218 Metadata newFile(p->first, VIDEO_TRAILER_DEFAULT, 219 VIDEO_COVERFILE_DEFAULT, 219 VIDEO_COVERFILE_DEFAULT, 220 VIDEO_SCREENSHOT_DEFAULT, 221 VIDEO_BANNER_DEFAULT, 222 VIDEO_FANART_DEFAULT, 220 223 Metadata::FilenameToTitle(p->first), 221 224 VIDEO_YEAR_DEFAULT, 222 225 VIDEO_INETREF_DEFAULT, VIDEO_DIRECTOR_DEFAULT, -
mythvideo/mythvideo/metadata.h
51 51 Metadata(const QString &filename = QString(), 52 52 const QString &trailer = QString(), 53 53 const QString &coverfile = QString(), 54 const QString &screenshot = QString(), 55 const QString &banner = QString(), 56 const QString &fanart = QString(), 54 57 const QString &title = QString(), 55 58 int year = VIDEO_YEAR_DEFAULT, 56 59 const QString &inetref = QString(), … … 130 133 const QString &CoverFile() const; 131 134 void setCoverFile(const QString &coverFile); 132 135 136 const QString &Screenshot() const; 137 void setScreenshot(const QString &screenshot); 138 139 const QString &Banner() const; 140 void setBanner(const QString &banner); 141 142 const QString &Fanart() const; 143 void setFanart(const QString &fanart); 144 133 145 const QString &Category() const; 134 146 135 147 const genre_list &Genres() const; -
mythvideo/mythvideo/editmetadata.cpp
23 23 m_origMetadata(source_metadata), m_titleEdit(0), m_playerEdit(0), 24 24 m_categoryList(0), m_levelList(0), m_childList(0), m_browseCheck(0), 25 25 m_coverartButton(0), m_coverartText(0), 26 m_screenshotButton(0), m_screenshotText(0), 27 m_bannerButton(0), m_bannerText(0), 28 m_fanartButton(0), m_fanartText(0), 26 29 m_trailerButton(0), m_trailerText(0), 27 30 m_doneButton(0), cachedChildSelection(0), 28 31 m_metaCache(cache) … … 45 48 UIUtilE::Assign(this, m_playerEdit, "player_edit", &err); 46 49 47 50 UIUtilE::Assign(this, m_coverartText, "coverart_text", &err); 51 UIUtilE::Assign(this, m_screenshotText, "screenshot_text", &err); 52 UIUtilE::Assign(this, m_bannerText, "banner_text", &err); 53 UIUtilE::Assign(this, m_fanartText, "fanart_text", &err); 48 54 UIUtilE::Assign(this, m_trailerText, "trailer_text", &err); 49 55 50 56 UIUtilE::Assign(this, m_categoryList, "category_select", &err); … … 216 222 if (m_workingMetadata->Browse()) 217 223 m_browseCheck->SetCheckState(MythUIStateType::Full); 218 224 m_coverartText->SetText(m_workingMetadata->CoverFile()); 225 m_screenshotText->SetText(m_workingMetadata->Screenshot()); 226 m_bannerText->SetText(m_workingMetadata->Banner()); 227 m_fanartText->SetText(m_workingMetadata->Fanart()); 219 228 m_trailerText->SetText(m_workingMetadata->GetTrailer()); 220 229 m_playerEdit->SetText(m_workingMetadata->PlayCommand()); 221 230 } -
mythvideo/mythvideo/globals.h
14 14 extern const QString VIDEO_INETREF_DEFAULT; 15 15 extern const QString VIDEO_COVERFILE_DEFAULT; 16 16 extern const QString VIDEO_TRAILER_DEFAULT; 17 extern const QString VIDEO_SCREENSHOT_DEFAULT; 18 extern const QString VIDEO_BANNER_DEFAULT; 19 extern const QString VIDEO_FANART_DEFAULT; 17 20 extern const QString VIDEO_RATING_DEFAULT; 18 21 extern const QString VIDEO_PLOT_DEFAULT; 19 22 extern const QString VIDEO_CAST_DEFAULT; -
mythvideo/mythvideo/videoutils.h
22 22 QStringList GetVideoDirs(); 23 23 24 24 bool IsDefaultCoverFile(const QString &coverfile); 25 bool IsDefaultScreenshot(const QString &screenshot); 26 bool IsDefaultBanner(const QString &banner); 27 bool IsDefaultFanart(const QString &fanart); 25 28 26 29 class Metadata; 27 30