Ticket #6159: MVnewmeta.4.diff
File MVnewmeta.4.diff, 44.5 KB (added by , 16 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 <value>Done</value> 994 1090 </button> 995 1091 -
mythvideo/theme/default-wide/video-ui.xml
133 133 <!-- assumes buttons are 153x43 --> 134 134 <button name="done_button" from="basebutton"> 135 135 <value>Done</value> 136 <position>629,592</position> 137 </button> 138 139 <button name="play_with_trailers_button" from="basebutton"> 140 <value>Play With Trailers</value> 136 141 <position>329,592</position> 137 142 </button> 138 143 144 <button name="play_trailer_button" from="basebutton"> 145 <value>Play Trailer</value> 146 <position>529,592</position> 147 </button> 148 139 149 <button name="play_button" from="basebutton"> 140 150 <value>Play</value> 141 <position> 682,592</position>151 <position>182,592</position> 142 152 </button> 143 153 </window> 144 154 … … 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 <value>Done</value> 978 1084 </button> 979 1085 -
mythvideo/mythvideo/videodlg.h
111 112 virtual void loadData(); 112 113 void fetchVideos(); 113 114 QString GetCoverImage(MythGenericTree *node); 115 QString GetScreenshot(MythGenericTree *node); 116 QString GetBanner(MythGenericTree *node); 117 QString GetFanart(MythGenericTree *node); 114 118 115 119 Metadata *GetMetadata(MythUIButtonListItem *item); 116 120 … … 183 192 MythUIText *m_crumbText; 184 193 185 194 MythUIImage *m_coverImage; 195 MythUIImage *m_screenshot; 196 MythUIImage *m_banner; 197 MythUIImage *m_fanart; 186 198 187 199 MythUIStateType *m_parentalLevelState; 188 200 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,banner," 550 "fanart) VALUES (:TITLE, :DIRECTOR, :PLOT, :RATING, " 551 ":YEAR, :USERRATING, :LENGTH, :FILENAME, :SHOWLEVEL, " 552 ":COVERFILE, :INETREF, :BROWSE, :TRAILER, :SCREENSHOT, " 553 ":BANNER, :FANART)"); 525 554 526 555 } 527 556 else … … 531 560 "year = :YEAR, userrating = :USERRATING, " 532 561 "length = :LENGTH, filename = :FILENAME, trailer = :TRAILER, " 533 562 "showlevel = :SHOWLEVEL, coverfile = :COVERFILE, " 563 "screenshot = :SCREENSHOT, banner = :BANNER, fanart = :FANART, " 534 564 "inetref = :INETREF, browse = :BROWSE, " 535 565 "playcommand = :PLAYCOMMAND, childid = :CHILDID, " 536 566 "category = :CATEGORY WHERE intid = :INTID"); … … 552 582 query.bindValue(":TRAILER", m_trailer); 553 583 query.bindValue(":SHOWLEVEL", m_showlevel); 554 584 query.bindValue(":COVERFILE", m_coverfile); 585 query.bindValue(":SCREENSHOT", m_screenshot); 586 query.bindValue(":BANNER", m_banner); 587 query.bindValue(":FANART", m_fanart); 555 588 query.bindValue(":INETREF", m_inetref); 556 589 query.bindValue(":BROWSE", m_browse); 557 590 … … 783 816 return ret; 784 817 } 785 818 786 Metadata::Metadata(const QString &filename, const QString &trailer, const QString &coverfile, 819 Metadata::Metadata(const QString &filename, const QString &trailer, 820 const QString &coverfile, const QString &screenshot, 821 const QString &banner, const QString &fanart, 787 822 const QString &title, int year, 788 823 const QString &inetref, const QString &director, 789 824 const QString &plot, float userrating, … … 795 830 const country_list &countries, 796 831 const cast_list &cast) 797 832 { 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, 833 m_imp = new MetadataImp(filename, trailer, coverfile, screenshot, banner, 834 fanart, title, year, inetref, director, plot, 835 userrating, rating, length, id, showlevel, 836 categoryID, childID, browse, playcommand, category, 801 837 genres, countries, cast); 802 838 } 803 839 … … 1011 1047 m_imp->setCoverFile(coverFile); 1012 1048 } 1013 1049 1050 const QString &Metadata::Screenshot() const 1051 { 1052 return m_imp->getScreenshot(); 1053 } 1054 1055 void Metadata::setScreenshot(const QString &screenshot) 1056 { 1057 m_imp->setScreenshot(screenshot); 1058 } 1059 1060 const QString &Metadata::Banner() const 1061 { 1062 return m_imp->getBanner(); 1063 } 1064 1065 void Metadata::setBanner(const QString &banner) 1066 { 1067 m_imp->setBanner(banner); 1068 } 1069 1070 const QString &Metadata::Fanart() const 1071 { 1072 return m_imp->getFanart(); 1073 } 1074 1075 void Metadata::setFanart(const QString &fanart) 1076 { 1077 m_imp->setFanart(fanart); 1078 } 1079 1014 1080 const QString &Metadata::Category() const 1015 1081 { 1016 1082 return m_imp->getCategory(); -
mythvideo/mythvideo/globalsettings.cpp
247 280 return gc; 248 281 } 249 282 283 HostLineEdit *VideoScreenshotDirectory() 284 { 285 HostLineEdit *gc = new HostLineEdit("VideoScreenshotDir"); 286 gc->setLabel(QObject::tr("Directory that holds movie screenshots")); 287 gc->setValue(GetConfDir() + "/MythVideo/Screenshots"); 288 gc->setHelpText(QObject::tr("This directory must exist, and the user " 289 "running MythVideo needs to have read/write permission " 290 "to the directory.")); 291 return gc; 292 } 293 294 HostLineEdit *VideoBannerDirectory() 295 { 296 HostLineEdit *gc = new HostLineEdit("VideoBannerDir"); 297 gc->setLabel(QObject::tr("Directory that holds movie/TV Banners")); 298 gc->setValue(GetConfDir() + "/MythVideo/Banners"); 299 gc->setHelpText(QObject::tr("This directory must exist, and the user " 300 "running MythVideo needs to have read/write permission " 301 "to the directory.")); 302 return gc; 303 } 304 305 HostLineEdit *VideoFanartDirectory() 306 { 307 HostLineEdit *gc = new HostLineEdit("VideoFanartDir"); 308 gc->setLabel(QObject::tr("Directory that holds movie fanart")); 309 gc->setValue(GetConfDir() + "/MythVideo/Fanart"); 310 gc->setHelpText(QObject::tr("This directory must exist, and the user " 311 "running MythVideo needs to have read/write permission " 312 "to the directory.")); 313 return gc; 314 } 315 250 316 HostLineEdit *TrailerDirectory() 251 317 { 252 318 HostLineEdit *gc = new HostLineEdit("mythvideo.TrailersDir"); … … 682 747 VConfigPage page1(pages, false); 683 748 page1->addChild(VideoStartupDirectory()); 684 749 page1->addChild(VideoArtworkDirectory()); 750 page1->addChild(VideoScreenshotDirectory()); 751 page1->addChild(VideoBannerDirectory()); 752 page1->addChild(VideoFanartDirectory()); 685 753 page1->addChild(VideoDefaultView()); 686 754 687 755 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
40 40 void setChild(MythUIButtonListItem*); 41 41 void toggleBrowse(); 42 42 void findCoverArt(); 43 void findBanner(); 44 void findFanart(); 45 void findScreenshot(); 43 46 void NewCategoryPopup(); 44 47 void AddCategory(QString category); 45 48 void SetCoverArt(QString file); 49 void SetBanner(QString file); 50 void SetFanart(QString file); 51 void SetScreenshot(QString file); 46 52 47 53 private: 48 54 … … 61 67 MythUICheckBox *m_browseCheck; 62 68 MythUIButton *m_coverartButton; 63 69 MythUIText *m_coverartText; 70 MythUIButton *m_screenshotButton; 71 MythUIText *m_screenshotText; 72 MythUIButton *m_bannerButton; 73 MythUIText *m_bannerText; 74 MythUIButton *m_fanartButton; 75 MythUIText *m_fanartText; 64 76 MythUIButton *m_trailerButton; 65 77 MythUIText *m_trailerText; 66 78 MythUIButton *m_doneButton; -
mythvideo/mythvideo/videodlg.cpp
783 948 784 949 tmp["coverfile"] = coverfile; 785 950 951 const QString screenshotfile = metadata->Screenshot(); 952 if (!IsDefaultScreenshot(screenshotfile)) 953 tmp["screenshot"] = screenshotfile; 954 955 tmp["screenshotfile"] = screenshotfile; 956 957 const QString bannerfile = metadata->Banner(); 958 if (!IsDefaultBanner(bannerfile)) 959 tmp["banner"] = bannerfile; 960 961 tmp["bannerfile"] = bannerfile; 962 963 const QString fanartfile = metadata->Fanart(); 964 if (!IsDefaultFanart(fanartfile)) 965 tmp["fanart"] = fanartfile; 966 967 tmp["fanartfile"] = fanartfile; 968 786 969 tmp["video_player"] = VideoPlayerCommand::PlayerFor(metadata) 787 970 .GetCommandDisplayName(); 788 971 tmp["player"] = metadata->PlayCommand(); … … 836 1019 helper h(tmp, dest); 837 1020 838 1021 h.handleImage("coverimage"); 1022 h.handleImage("screenshot"); 1023 h.handleImage("banner"); 1024 h.handleImage("fanart"); 839 1025 840 1026 h.handleText("coverfile"); 1027 h.handleText("screenshotfile"); 1028 h.handleText("bannerfile"); 1029 h.handleText("fanartfile"); 841 1030 h.handleText("video_player"); 842 1031 h.handleText("player"); 843 1032 h.handleText("filename"); … … 1162 1379 MythScreenType(lparent, lname), m_menuPopup(0), m_busyPopup(0), 1163 1380 m_videoButtonList(0), m_videoButtonTree(0), m_titleText(0), 1164 1381 m_novideoText(0), m_positionText(0), m_crumbText(0), m_coverImage(0), 1165 m_ parentalLevelState(0)1382 m_screenshot(0), m_banner(0), m_fanart(0), m_parentalLevelState(0) 1166 1383 { 1167 1384 m_d = new VideoDialogPrivate(video_list, type); 1168 1385 … … 1240 1457 UIUtilW::Assign(this, m_crumbText, "breadcrumbs"); 1241 1458 1242 1459 UIUtilW::Assign(this, m_coverImage, "coverimage"); 1460 UIUtilW::Assign(this, m_screenshot, "screenshot"); 1461 UIUtilW::Assign(this, m_banner, "banner"); 1462 UIUtilW::Assign(this, m_fanart, "fanart"); 1243 1463 1244 1464 UIUtilW::Assign(this, m_parentalLevelState, "parentallevel"); 1245 1465 … … 1484 1704 return icon_file; 1485 1705 } 1486 1706 1707 QString VideoDialog::GetScreenshot(MythGenericTree *node) 1708 { 1709 int nodeInt = node->getInt(); 1710 1711 QString icon_file; 1712 1713 if (nodeInt == kSubFolder || nodeInt == kUpFolder) // subdirectory 1714 { 1715 icon_file = VIDEO_SCREENSHOT_DEFAULT; 1716 } 1717 else 1718 { 1719 const Metadata *metadata = GetMetadataPtrFromNode(node); 1720 1721 if (metadata) 1722 icon_file = metadata->Screenshot(); 1723 } 1724 1725 if (IsDefaultScreenshot(icon_file)) 1726 icon_file.clear(); 1727 1728 return icon_file; 1729 } 1730 1731 QString VideoDialog::GetBanner(MythGenericTree *node) 1732 { 1733 int nodeInt = node->getInt(); 1734 1735 QString icon_file; 1736 1737 if (nodeInt == kSubFolder || nodeInt == kUpFolder) // subdirectory 1738 { 1739 icon_file = VIDEO_BANNER_DEFAULT; 1740 } 1741 else 1742 { 1743 const Metadata *metadata = GetMetadataPtrFromNode(node); 1744 1745 if (metadata) 1746 icon_file = metadata->Banner(); 1747 } 1748 1749 if (IsDefaultBanner(icon_file)) 1750 icon_file.clear(); 1751 1752 return icon_file; 1753 } 1754 1755 QString VideoDialog::GetFanart(MythGenericTree *node) 1756 { 1757 int nodeInt = node->getInt(); 1758 1759 QString icon_file; 1760 1761 if (nodeInt == kSubFolder || nodeInt == kUpFolder) // subdirectory 1762 { 1763 icon_file = VIDEO_FANART_DEFAULT; 1764 } 1765 else 1766 { 1767 const Metadata *metadata = GetMetadataPtrFromNode(node); 1768 1769 if (metadata) 1770 icon_file = metadata->Fanart(); 1771 } 1772 1773 if (IsDefaultFanart(icon_file)) 1774 icon_file.clear(); 1775 1776 return icon_file; 1777 } 1778 1487 1779 bool VideoDialog::keyPressEvent(QKeyEvent *levent) 1488 1780 { 1489 1781 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
25 25 m_origMetadata(source_metadata), m_titleEdit(0), m_playerEdit(0), 26 26 m_categoryList(0), m_levelList(0), m_childList(0), m_browseCheck(0), 27 27 m_coverartButton(0), m_coverartText(0), 28 m_screenshotButton(0), m_screenshotText(0), 29 m_bannerButton(0), m_bannerText(0), 30 m_fanartButton(0), m_fanartText(0), 28 31 m_trailerButton(0), m_trailerText(0), 29 32 m_doneButton(0), cachedChildSelection(0), 30 33 m_metaCache(cache) … … 47 50 UIUtilE::Assign(this, m_playerEdit, "player_edit", &err); 48 51 49 52 UIUtilE::Assign(this, m_coverartText, "coverart_text", &err); 53 UIUtilE::Assign(this, m_screenshotText, "screenshot_text", &err); 54 UIUtilE::Assign(this, m_bannerText, "banner_text", &err); 55 UIUtilE::Assign(this, m_fanartText, "fanart_text", &err); 50 56 UIUtilE::Assign(this, m_trailerText, "trailer_text", &err); 51 57 52 58 UIUtilE::Assign(this, m_categoryList, "category_select", &err); … … 56 62 UIUtilE::Assign(this, m_browseCheck, "browse_check", &err); 57 63 58 64 UIUtilE::Assign(this, m_coverartButton, "coverart_button", &err); 65 UIUtilE::Assign(this, m_bannerButton, "banner_button", &err); 66 UIUtilE::Assign(this, m_fanartButton, "fanart_button", &err); 67 UIUtilE::Assign(this, m_screenshotButton, "screenshot_button", &err); 59 68 UIUtilE::Assign(this, m_doneButton, "done_button", &err); 60 69 61 70 if (err) … … 74 83 75 84 connect(m_doneButton, SIGNAL(Clicked()), SLOT(saveAndExit())); 76 85 connect(m_coverartButton, SIGNAL(Clicked()), SLOT(findCoverArt())); 86 connect(m_bannerButton, SIGNAL(Clicked()), SLOT(findBanner())); 87 connect(m_fanartButton, SIGNAL(Clicked()), SLOT(findFanart())); 88 connect(m_screenshotButton, SIGNAL(Clicked()), SLOT(findScreenshot())); 77 89 78 90 connect(m_browseCheck, SIGNAL(valueChanged()), SLOT(toggleBrowse())); 79 91 … … 216 228 if (m_workingMetadata->Browse()) 217 229 m_browseCheck->SetCheckState(MythUIStateType::Full); 218 230 m_coverartText->SetText(m_workingMetadata->CoverFile()); 231 m_screenshotText->SetText(m_workingMetadata->Screenshot()); 232 m_bannerText->SetText(m_workingMetadata->Banner()); 233 m_fanartText->SetText(m_workingMetadata->Fanart()); 219 234 m_trailerText->SetText(m_workingMetadata->GetTrailer()); 220 235 m_playerEdit->SetText(m_workingMetadata->PlayCommand()); 221 236 } … … 328 343 m_workingMetadata->setCoverFile(file); 329 344 CheckedSet(m_coverartText, file); 330 345 } 346 347 void EditMetadataDialog::findBanner() 348 { 349 QString fileprefix = gContext->GetSetting("VideoBannerDir"); 350 // If the video artwork setting hasn't been set default to 351 // using ~/.mythtv/MythVideo/Banners 352 if (fileprefix.isEmpty()) 353 { 354 fileprefix = GetConfDir() + "/MythVideo/Banners"; 355 } 356 357 QStringList imageExtensions; 358 359 QList< QByteArray > exts = QImageReader::supportedImageFormats(); 360 QList< QByteArray >::Iterator it = exts.begin(); 361 for (;it != exts.end();++it) 362 { 363 imageExtensions.append( QString("*.").append(*it) ); 364 } 365 366 MythScreenStack *popupStack = 367 GetMythMainWindow()->GetStack("popup stack"); 368 369 MythUIFileBrowser *nca = new MythUIFileBrowser(popupStack, fileprefix); 370 nca->SetNameFilter(imageExtensions); 371 372 if (nca->Create()) 373 { 374 popupStack->AddScreen(nca); 375 connect(nca, SIGNAL(haveResult(QString)), SLOT(SetBanner(QString))); 376 } 377 else 378 delete nca; 379 } 380 381 void EditMetadataDialog::SetBanner(QString file) 382 { 383 if (file.isEmpty()) 384 return; 385 386 m_workingMetadata->setBanner(file); 387 CheckedSet(m_bannerText, file); 388 } 389 390 void EditMetadataDialog::findFanart() 391 { 392 QString fileprefix = gContext->GetSetting("VideoFanartDir"); 393 // If the video artwork setting hasn't been set default to 394 // using ~/.mythtv/MythVideo/Fanart 395 if (fileprefix.isEmpty()) 396 { 397 fileprefix = GetConfDir() + "/MythVideo/Fanart"; 398 } 399 400 QStringList imageExtensions; 401 402 QList< QByteArray > exts = QImageReader::supportedImageFormats(); 403 QList< QByteArray >::Iterator it = exts.begin(); 404 for (;it != exts.end();++it) 405 { 406 imageExtensions.append( QString("*.").append(*it) ); 407 } 408 409 MythScreenStack *popupStack = 410 GetMythMainWindow()->GetStack("popup stack"); 411 412 MythUIFileBrowser *nca = new MythUIFileBrowser(popupStack, fileprefix); 413 nca->SetNameFilter(imageExtensions); 414 415 if (nca->Create()) 416 { 417 popupStack->AddScreen(nca); 418 connect(nca, SIGNAL(haveResult(QString)), SLOT(SetFanart(QString))); 419 } 420 else 421 delete nca; 422 } 423 424 void EditMetadataDialog::SetFanart(QString file) 425 { 426 if (file.isEmpty()) 427 return; 428 429 m_workingMetadata->setFanart(file); 430 CheckedSet(m_fanartText, file); 431 } 432 433 void EditMetadataDialog::findScreenshot() 434 { 435 QString fileprefix = gContext->GetSetting("VideoScreenshotDir"); 436 // If the video artwork setting hasn't been set default to 437 // using ~/.mythtv/MythVideo/Screenshots 438 if (fileprefix.isEmpty()) 439 { 440 fileprefix = GetConfDir() + "/MythVideo/Screenshots"; 441 } 442 443 QStringList imageExtensions; 444 445 QList< QByteArray > exts = QImageReader::supportedImageFormats(); 446 QList< QByteArray >::Iterator it = exts.begin(); 447 for (;it != exts.end();++it) 448 { 449 imageExtensions.append( QString("*.").append(*it) ); 450 } 451 452 MythScreenStack *popupStack = 453 GetMythMainWindow()->GetStack("popup stack"); 454 455 MythUIFileBrowser *nca = new MythUIFileBrowser(popupStack, fileprefix); 456 nca->SetNameFilter(imageExtensions); 457 458 if (nca->Create()) 459 { 460 popupStack->AddScreen(nca); 461 connect(nca, SIGNAL(haveResult(QString)), SLOT(SetScreenshot(QString))); 462 } 463 else 464 delete nca; 465 } 466 467 void EditMetadataDialog::SetScreenshot(QString file) 468 { 469 if (file.isEmpty()) 470 return; 471 472 m_workingMetadata->setScreenshot(file); 473 CheckedSet(m_screenshotText, file); 474 } 475 -
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