Ticket #6159: MVnewmeta.6.diff

File MVnewmeta.6.diff, 44.4 KB (added by robert.mcnamara@…, 15 years ago)

removes one inadvertantly added hunk

  • mythplugins/mythvideo/theme/default/video-ui.xml

     
    858858    <window name="edit_metadata">
    859859
    860860        <textarea name="title" from="basetextarea">
    861             <area>10,50,760,50</area>
     861            <area>10,30,760,50</area>
    862862            <value>Edit Video Information</value>
    863863            <align>hcenter,vcenter</align>
    864864            <font>baselarge</font>
     
    867867        <!-- Labels  -->
    868868
    869869        <textarea name="title_text" from="basetextarea">
    870             <area>50,135,250,40</area>
     870            <area>50,90,250,40</area>
    871871            <value>Name:</value>
    872872            <align>right,top</align>
    873873        </textarea>
    874874
    875875        <textarea name="category_text" from="title_text">
    876             <position>50,197</position>
     876            <position>50,152</position>
    877877            <value>Category:</value>
    878878        </textarea>
    879879
    880880        <textarea name="level_text" from="title_text">
    881             <position>50,247</position>
     881            <position>50,202</position>
    882882            <value>Parental Control:</value>
    883883        </textarea>
    884884
    885885        <textarea name="child_text" from="title_text">
    886             <position>50,292</position>
     886            <position>50,247</position>
    887887            <value>File to Always Play Next:</value>
    888888        </textarea>
    889889
    890890        <textarea name="browse_text" from="title_text">
    891             <position>50,337</position>
     891            <position>50,292</position>
    892892            <value>Include while Browsing:</value>
    893893        </textarea>
    894894
    895895        <textarea name="coverart_text_label" from="title_text">
    896             <position>50,375</position>
     896            <position>50,328</position>
    897897            <value>Cover Art:</value>
    898898        </textarea>
    899899
     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
    900915        <textarea name="trailer_text_label" from="title_text">
    901             <position>50,405</position>
     916            <position>50,447</position>
    902917            <value>Trailer:</value>
    903918        </textarea>
    904919
    905920        <textarea name="player_text" from="title_text">
    906             <position>50,445</position>
     921            <position>50,487</position>
    907922            <value>Unique Player Command:</value>
    908923        </textarea>
    909924
    910925        <!-- Widgets -->
    911926
    912927        <textedit name="title_edit" from="basetextedit">
    913             <position>310,125</position>
     928            <position>310,80</position>
    914929        </textedit>
    915930
    916931        <buttonlist name="category_select" from="baseselector">
    917             <position>310,190</position>
     932            <position>310,145</position>
    918933        </buttonlist>
    919934
    920935        <buttonlist name="level_select" from="baseselector">
    921             <position>310,240</position>
     936            <position>310,195</position>
    922937        </buttonlist>
    923938
    924939        <buttonlist name="child_select" from="baseselector">
    925             <position>310,285</position>
     940            <position>310,240</position>
    926941        </buttonlist>
    927942
    928943        <checkbox name="browse_check" from="basecheckbox">
    929             <position>310,335</position>
     944            <position>310,290</position>
    930945        </checkbox>
    931946
    932947        <button name="coverart_button">
    933             <area>310,370,32,32</area>
     948            <area>310,323,32,32</area>
    934949            <statetype name="buttonstate">
    935950                <state name="active">
    936951                    <imagetype name="background">
     
    952967        </button>
    953968
    954969        <textarea name="coverart_text" from="basetextarea">
    955             <area>350,375,250,40</area>
     970            <area>350,328,250,40</area>
    956971            <value>/path/to/the/thing.jpg</value>
    957972        </textarea>
    958973
     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
    9591055        <button name="trailer_button">
    960             <area>310,400,32,32</area>
     1056            <area>310,442,32,32</area>
    9611057            <statetype name="buttonstate">
    9621058                <state name="active">
    9631059                    <imagetype name="background">
     
    9791075        </button>
    9801076
    9811077        <textarea name="trailer_text" from="basetextarea">
    982             <area>350,405,250,40</area>
     1078            <area>350,447,250,40</area>
    9831079            <value>/path/to/the/thing.jpg</value>
    9841080        </textarea>
    9851081
    9861082
    9871083        <textedit name="player_edit" from="basetextedit">
    988             <position>310,435</position>
     1084            <position>310,477</position>
    9891085        </textedit>
    9901086
    9911087        <button name="done_button" from="basebutton">
    992             <position>310,505</position>
     1088            <position>310,537</position>
    9931089            <value>Done</value>
    9941090        </button>
    9951091
  • mythplugins/mythvideo/theme/default-wide/video-ui.xml

     
    843853    <window name="edit_metadata">
    844854
    845855        <textarea name="title" from="basetextarea">
    846             <area>10,50,760,50</area>
     856            <area>10,50,1260,50</area>
    847857            <value>Edit Video Information</value>
    848858            <align>hcenter,vcenter</align>
    849859            <font>baselarge</font>
     
    852862        <!-- Labels  -->
    853863
    854864        <textarea name="title_text" from="basetextarea">
    855             <area>50,135,250,40</area>
     865            <area>250,110,250,40</area>
    856866            <value>Name:</value>
    857867            <align>right,top</align>
    858868        </textarea>
    859869
    860870        <textarea name="category_text" from="title_text">
    861             <position>50,197</position>
     871            <position>250,172</position>
    862872            <value>Category:</value>
    863873        </textarea>
    864874
    865875        <textarea name="level_text" from="title_text">
    866             <position>50,247</position>
     876            <position>250,222</position>
    867877            <value>Parental Control:</value>
    868878        </textarea>
    869879
    870880        <textarea name="child_text" from="title_text">
    871             <position>50,292</position>
     881            <position>250,267</position>
    872882            <value>File to Always Play Next:</value>
    873883        </textarea>
    874884
    875885        <textarea name="browse_text" from="title_text">
    876             <position>50,337</position>
     886            <position>250,312</position>
    877887            <value>Include while Browsing:</value>
    878888        </textarea>
    879889
    880890        <textarea name="coverart_text_label" from="title_text">
    881             <position>50,375</position>
     891            <position>250,348</position>
    882892            <value>Cover Art:</value>
    883893        </textarea>
    884894
     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
    885910        <textarea name="trailer_text_label" from="title_text">
    886             <position>50,405</position>
     911            <position>250,464</position>
    887912            <value>Trailer:</value>
    888913        </textarea>
    889914
    890915        <textarea name="player_text" from="title_text">
    891             <position>50,445</position>
     916            <position>250,510</position>
    892917            <value>Unique Player Command:</value>
    893918        </textarea>
    894919
    895920        <!-- Widgets -->
    896921
    897922        <textedit name="title_edit" from="basetextedit">
    898             <position>310,125</position>
     923            <position>510,100</position>
    899924        </textedit>
    900925
    901926        <buttonlist name="category_select" from="baseselector">
    902             <position>310,190</position>
     927            <position>510,165</position>
    903928        </buttonlist>
    904929
    905930        <buttonlist name="level_select" from="baseselector">
    906             <position>310,240</position>
     931            <position>510,215</position>
    907932        </buttonlist>
    908933
    909934        <buttonlist name="child_select" from="baseselector">
    910             <position>310,285</position>
     935            <position>510,260</position>
    911936        </buttonlist>
    912937
    913938        <checkbox name="browse_check" from="basecheckbox">
    914             <position>310,335</position>
     939            <position>510,310</position>
    915940        </checkbox>
    916941
    917942        <button name="coverart_button">
    918             <area>310,370,32,32</area>
     943            <area>510,343,32,32</area>
    919944            <statetype name="buttonstate">
    920945                <state name="active">
    921946                    <imagetype name="background">
     
    937962        </button>
    938963
    939964        <textarea name="coverart_text" from="basetextarea">
    940             <area>350,375,250,40</area>
     965            <area>550,348,250,40</area>
    941966            <value>/path/to/the/thing.jpg</value>
    942967        </textarea>
    943968
     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
    9441050        <button name="trailer_button">
    945             <area>310,400,32,32</area>
     1051            <area>510,460,32,32</area>
    9461052            <statetype name="buttonstate">
    9471053                <state name="active">
    9481054                    <imagetype name="background">
     
    9641070        </button>
    9651071
    9661072        <textarea name="trailer_text" from="basetextarea">
    967             <area>350,405,250,40</area>
     1073            <area>550,465,250,40</area>
    9681074            <value>/path/to/the/thing.jpg</value>
    9691075        </textarea>
    9701076
    9711077        <textedit name="player_edit" from="basetextedit">
    972             <position>310,435</position>
     1078            <position>510,495</position>
    9731079        </textedit>
    9741080
    9751081        <button name="done_button" from="basebutton">
    976             <position>310,505</position>
     1082            <position>510,565</position>
    9771083            <value>Done</value>
    9781084        </button>
    9791085
  • mythplugins/mythvideo/mythvideo/videodlg.h

     
    111112    virtual void loadData();
    112113    void fetchVideos();
    113114    QString GetCoverImage(MythGenericTree *node);
     115    QString GetScreenshot(MythGenericTree *node);
     116    QString GetBanner(MythGenericTree *node);
     117    QString GetFanart(MythGenericTree *node);
    114118
    115119    Metadata *GetMetadata(MythUIButtonListItem *item);
    116120
     
    183192    MythUIText       *m_crumbText;
    184193
    185194    MythUIImage      *m_coverImage;
     195    MythUIImage      *m_screenshot;
     196    MythUIImage      *m_banner;
     197    MythUIImage      *m_fanart;
    186198
    187199    MythUIStateType  *m_parentalLevelState;
    188200    MythUIStateType  *m_videoLevelState;
  • mythplugins/mythvideo/mythvideo/metadatalistmanager.cpp

     
    113113    const QString BaseMetadataQuery(
    114114        "SELECT title, director, plot, rating, year, userrating,"
    115115        "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");
    117118
    118119    query.prepare(BaseMetadataQuery);
    119120
  • mythplugins/mythvideo/mythvideo/metadata.cpp

     
    8888
    8989  public:
    9090    MetadataImp(const QString &filename, const QString &trailer, const QString &coverfile,
     91             const QString &screenshot, const QString &banner, const QString &fanart,
    9192             const QString &title, int year,
    9293             const QString &inetref, const QString &director,
    9394             const QString &plot, float userrating,
     
    103104        m_rating(rating), m_playcommand(playcommand), m_category(category),
    104105        m_genres(genres), m_countries(countries), m_cast(cast),
    105106        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),
    108110        m_userrating(userrating)
    109111    {
    110112        VideoCategory::getCategory().get(m_categoryID, m_category);
     
    137139            m_filename = rhs.m_filename;
    138140            m_trailer = rhs.m_trailer;
    139141            m_coverfile = rhs.m_coverfile;
     142            m_screenshot = rhs.m_screenshot;
     143            m_banner = rhs.m_banner;
     144            m_fanart = rhs.m_fanart;
    140145
    141146            m_categoryID = rhs.m_categoryID;
    142147            m_childID = rhs.m_childID;
     
    216221    const QString &getCoverFile() const { return m_coverfile; }
    217222    void setCoverFile(const QString &coverFile) { m_coverfile = coverFile; }
    218223
     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
    219233    int getCategoryID() const
    220234    {
    221235        return m_categoryID;
     
    281295    QString m_filename;
    282296    QString m_trailer;
    283297    QString m_coverfile;
     298    QString m_screenshot;
     299    QString m_banner;
     300    QString m_fanart;
    284301
    285302    int m_categoryID;
    286303    int m_childID;
     
    383400void MetadataImp::Reset()
    384401{
    385402    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,
    387405                    VIDEO_INETREF_DEFAULT, VIDEO_DIRECTOR_DEFAULT,
    388406                    VIDEO_PLOT_DEFAULT, 0.0, VIDEO_RATING_DEFAULT, 0, m_id,
    389407                    ParentalLevel::plLowest, 0, -1, true, "", "",
     
    475493    m_categoryID = query.value(14).toInt();
    476494    m_id = query.value(15).toInt();
    477495    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();
    478499
    479500    VideoCategory::getCategory().get(m_categoryID, m_category);
    480501
     
    500521        m_rating = VIDEO_RATING_DEFAULT;
    501522    if (m_coverfile.isEmpty())
    502523        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;
    503530    if (m_trailer.isEmpty())
    504531        m_trailer = VIDEO_TRAILER_DEFAULT;
    505532    if (m_inetref.isEmpty())
     
    519546
    520547        query.prepare("INSERT INTO videometadata (title,director,plot,"
    521548                      "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)");
    525554
    526555    }
    527556    else
     
    531560                      "year = :YEAR, userrating = :USERRATING, "
    532561                      "length = :LENGTH, filename = :FILENAME, trailer = :TRAILER, "
    533562                      "showlevel = :SHOWLEVEL, coverfile = :COVERFILE, "
     563                      "screenshot = :SCREENSHOT, banner = :BANNER, fanart = :FANART, "
    534564                      "inetref = :INETREF, browse = :BROWSE, "
    535565                      "playcommand = :PLAYCOMMAND, childid = :CHILDID, "
    536566                      "category = :CATEGORY WHERE intid = :INTID");
     
    552582    query.bindValue(":TRAILER", m_trailer);
    553583    query.bindValue(":SHOWLEVEL", m_showlevel);
    554584    query.bindValue(":COVERFILE", m_coverfile);
     585    query.bindValue(":SCREENSHOT", m_screenshot);
     586    query.bindValue(":BANNER", m_banner);
     587    query.bindValue(":FANART", m_fanart);
    555588    query.bindValue(":INETREF", m_inetref);
    556589    query.bindValue(":BROWSE", m_browse);
    557590
     
    783816    return ret;
    784817}
    785818
    786 Metadata::Metadata(const QString &filename, const QString &trailer, const QString &coverfile,
     819Metadata::Metadata(const QString &filename, const QString &trailer,
     820             const QString &coverfile, const QString &screenshot,
     821             const QString &banner, const QString &fanart,
    787822             const QString &title, int year,
    788823             const QString &inetref, const QString &director,
    789824             const QString &plot, float userrating,
     
    795830             const country_list &countries,
    796831             const cast_list &cast)
    797832{
    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,
    801837                            genres, countries, cast);
    802838}
    803839
     
    10111047    m_imp->setCoverFile(coverFile);
    10121048}
    10131049
     1050const QString &Metadata::Screenshot() const
     1051{
     1052    return m_imp->getScreenshot();
     1053}
     1054                           
     1055void Metadata::setScreenshot(const QString &screenshot)
     1056{
     1057    m_imp->setScreenshot(screenshot);
     1058}
     1059
     1060const QString &Metadata::Banner() const
     1061{
     1062    return m_imp->getBanner();
     1063}
     1064
     1065void Metadata::setBanner(const QString &banner)
     1066{
     1067    m_imp->setBanner(banner);
     1068}   
     1069
     1070const QString &Metadata::Fanart() const
     1071{
     1072    return m_imp->getFanart();
     1073}
     1074
     1075void Metadata::setFanart(const QString &fanart)
     1076{
     1077    m_imp->setFanart(fanart);
     1078}   
     1079
    10141080const QString &Metadata::Category() const
    10151081{
    10161082    return m_imp->getCategory();
  • mythplugins/mythvideo/mythvideo/globalsettings.cpp

     
    247280    return gc;
    248281}
    249282
     283HostLineEdit *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
     294HostLineEdit *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
     305HostLineEdit *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
    250316HostLineEdit *TrailerDirectory()
    251317{
    252318    HostLineEdit *gc = new HostLineEdit("mythvideo.TrailersDir");
     
    682747    VConfigPage page1(pages, false);
    683748    page1->addChild(VideoStartupDirectory());
    684749    page1->addChild(VideoArtworkDirectory());
     750    page1->addChild(VideoScreenshotDirectory());
     751    page1->addChild(VideoBannerDirectory());
     752    page1->addChild(VideoFanartDirectory());
    685753    page1->addChild(VideoDefaultView());
    686754
    687755    VConfigPage page2(pages, false);
  • mythplugins/mythvideo/mythvideo/globals.cpp

     
    1616const QString VIDEO_INETREF_DEFAULT = "00000000";
    1717const QString VIDEO_COVERFILE_DEFAULT = QObject::tr("No Cover");
    1818const QString VIDEO_TRAILER_DEFAULT;
     19const QString VIDEO_SCREENSHOT_DEFAULT;
     20const QString VIDEO_BANNER_DEFAULT;
     21const QString VIDEO_FANART_DEFAULT;
    1922const QString VIDEO_RATING_DEFAULT = QObject::tr("NR");
    2023const QString VIDEO_PLOT_DEFAULT = QObject::tr("None");
    2124const QString VIDEO_CAST_DEFAULT = VIDEO_CAST_UNKNOWN;
  • mythplugins/mythvideo/mythvideo/dbcheck.cpp

     
    3838    const QString lastMythDVDDBVersion = "1002";
    3939    const QString lastMythVideoVersion = "1010";
    4040
    41     const QString currentDatabaseVersion = "1021";
     41    const QString currentDatabaseVersion = "1022";
    4242
    4343    const QString OldMythVideoVersionName = "VideoDBSchemaVer";
    4444    const QString OldMythDVDVersionName = "DVDDBSchemaVer";
     
    816816
    817817            UpdateDBVersionNumber(MythVideoVersionName, "1021");
    818818        }
     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        }
    819828    }
    820829}
    821830
  • mythplugins/mythvideo/mythvideo/videoutils.cpp

     
    7070            coverfile == VIDEO_COVERFILE_DEFAULT_OLD;
    7171}
    7272
     73bool IsDefaultScreenshot(const QString &screenshot)
     74{
     75    return screenshot == VIDEO_SCREENSHOT_DEFAULT;
     76}
     77
     78bool IsDefaultBanner(const QString &banner)
     79{
     80    return banner == VIDEO_BANNER_DEFAULT;
     81}
     82
     83bool IsDefaultFanart(const QString &fanart)
     84{
     85    return fanart == VIDEO_FANART_DEFAULT;
     86}
     87
    7388QString GetDisplayUserRating(float userrating)
    7489{
    7590    return QString::number(userrating, 'f', 1);
  • mythplugins/mythvideo/mythvideo/editmetadata.h

     
    4141    void setChild(MythUIButtonListItem*);
    4242    void toggleBrowse();
    4343    void findCoverArt();
     44    void findBanner();
     45    void findFanart();
     46    void findScreenshot();
    4447    void NewCategoryPopup();
    4548    void AddCategory(QString category);
    4649    void SetCoverArt(QString file);
     50    void SetBanner(QString file);
     51    void SetFanart(QString file);
     52    void SetScreenshot(QString file);
    4753
    4854  private:
    4955
     
    6268    MythUICheckBox      *m_browseCheck;
    6369    MythUIButton        *m_coverartButton;
    6470    MythUIText          *m_coverartText;
     71    MythUIButton        *m_screenshotButton;
     72    MythUIText          *m_screenshotText;
     73    MythUIButton        *m_bannerButton;
     74    MythUIText          *m_bannerText;
     75    MythUIButton        *m_fanartButton;
     76    MythUIText          *m_fanartText;
    6577    MythUIButton        *m_trailerButton;
    6678    MythUIText          *m_trailerText;
    6779    MythUIButton        *m_doneButton;
  • mythplugins/mythvideo/mythvideo/videodlg.cpp

     
    784949
    785950            tmp["coverfile"] = coverfile;
    786951
     952            const QString screenshotfile = metadata->Screenshot();
     953            if (!IsDefaultScreenshot(screenshotfile))
     954                tmp["screenshot"] = screenshotfile;
     955
     956            tmp["screenshotfile"] = screenshotfile;
     957
     958            const QString bannerfile = metadata->Banner();
     959            if (!IsDefaultBanner(bannerfile))
     960                tmp["banner"] = bannerfile;
     961
     962            tmp["bannerfile"] = bannerfile;
     963
     964            const QString fanartfile = metadata->Fanart();
     965            if (!IsDefaultFanart(fanartfile))
     966                tmp["fanart"] = fanartfile;
     967
     968            tmp["fanartfile"] = fanartfile;
     969
    787970            tmp["video_player"] = VideoPlayerCommand::PlayerFor(metadata)
    788971                    .GetCommandDisplayName();
    789972            tmp["player"] = metadata->PlayCommand();
     
    8371020        helper h(tmp, dest);
    8381021
    8391022        h.handleImage("coverimage");
     1023        h.handleImage("screenshot");
     1024        h.handleImage("banner");
     1025        h.handleImage("fanart");
    8401026
    8411027        h.handleText("coverfile");
     1028        h.handleText("screenshotfile");
     1029        h.handleText("bannerfile");
     1030        h.handleText("fanartfile");
    8421031        h.handleText("video_player");
    8431032        h.handleText("player");
    8441033        h.handleText("filename");
     
    11631380    MythScreenType(lparent, lname), m_menuPopup(0), m_busyPopup(0),
    11641381    m_videoButtonList(0), m_videoButtonTree(0), m_titleText(0),
    11651382    m_novideoText(0), m_positionText(0), m_crumbText(0), m_coverImage(0),
    1166     m_parentalLevelState(0)
     1383    m_screenshot(0), m_banner(0), m_fanart(0), m_parentalLevelState(0)
    11671384{
    11681385    m_d = new VideoDialogPrivate(video_list, type);
    11691386
     
    12411458    UIUtilW::Assign(this, m_crumbText, "breadcrumbs");
    12421459
    12431460    UIUtilW::Assign(this, m_coverImage, "coverimage");
     1461    UIUtilW::Assign(this, m_screenshot, "screenshot");   
     1462    UIUtilW::Assign(this, m_banner, "banner");
     1463    UIUtilW::Assign(this, m_fanart, "fanart");
    12441464
    12451465    UIUtilW::Assign(this, m_parentalLevelState, "parentallevel");
    12461466
     
    14851705    return icon_file;
    14861706}
    14871707
     1708QString VideoDialog::GetScreenshot(MythGenericTree *node)
     1709{
     1710    int nodeInt = node->getInt();
     1711
     1712    QString icon_file;
     1713
     1714    if (nodeInt  == kSubFolder || nodeInt == kUpFolder)  // subdirectory
     1715    {
     1716        icon_file = VIDEO_SCREENSHOT_DEFAULT;
     1717    }
     1718    else
     1719    {
     1720        const Metadata *metadata = GetMetadataPtrFromNode(node);
     1721
     1722        if (metadata)
     1723            icon_file = metadata->Screenshot();
     1724    }
     1725
     1726    if (IsDefaultScreenshot(icon_file))
     1727        icon_file.clear();
     1728
     1729    return icon_file;
     1730}
     1731
     1732QString VideoDialog::GetBanner(MythGenericTree *node)
     1733{
     1734    int nodeInt = node->getInt();
     1735
     1736    QString icon_file;
     1737
     1738    if (nodeInt  == kSubFolder || nodeInt == kUpFolder)  // subdirectory
     1739    {
     1740        icon_file = VIDEO_BANNER_DEFAULT;
     1741    }
     1742    else
     1743    {
     1744        const Metadata *metadata = GetMetadataPtrFromNode(node);
     1745
     1746        if (metadata)
     1747            icon_file = metadata->Banner();
     1748    }
     1749
     1750    if (IsDefaultBanner(icon_file))
     1751        icon_file.clear();
     1752
     1753    return icon_file;
     1754}
     1755
     1756QString VideoDialog::GetFanart(MythGenericTree *node)
     1757{
     1758    int nodeInt = node->getInt();
     1759
     1760    QString icon_file;
     1761
     1762    if (nodeInt  == kSubFolder || nodeInt == kUpFolder)  // subdirectory
     1763    {
     1764        icon_file = VIDEO_FANART_DEFAULT;
     1765    }
     1766    else
     1767    {
     1768        const Metadata *metadata = GetMetadataPtrFromNode(node);
     1769
     1770        if (metadata)
     1771            icon_file = metadata->Fanart();
     1772    }
     1773
     1774    if (IsDefaultFanart(icon_file))
     1775        icon_file.clear();
     1776
     1777    return icon_file;
     1778}
     1779
    14881780bool VideoDialog::keyPressEvent(QKeyEvent *levent)
    14891781{
    14901782    if (GetFocusWidget()->keyPressEvent(levent))
  • mythplugins/mythvideo/mythvideo/videoscan.cpp

     
    216216            if (!p->second)
    217217            {
    218218                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,
    220223                                 Metadata::FilenameToTitle(p->first),
    221224                                 VIDEO_YEAR_DEFAULT,
    222225                                 VIDEO_INETREF_DEFAULT, VIDEO_DIRECTOR_DEFAULT,
  • mythplugins/mythvideo/mythvideo/metadata.h

     
    5151    Metadata(const QString &filename = QString(),
    5252             const QString &trailer = QString(),
    5353             const QString &coverfile = QString(),
     54             const QString &screenshot = QString(),
     55             const QString &banner = QString(),
     56             const QString &fanart = QString(),
    5457             const QString &title = QString(),
    5558             int year = VIDEO_YEAR_DEFAULT,
    5659             const QString &inetref = QString(),
     
    130133    const QString &CoverFile() const;
    131134    void setCoverFile(const QString &coverFile);
    132135
     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
    133145    const QString &Category() const;
    134146
    135147    const genre_list &Genres() const;
  • mythplugins/mythvideo/mythvideo/editmetadata.cpp

     
    2525    m_origMetadata(source_metadata), m_titleEdit(0), m_playerEdit(0),
    2626    m_categoryList(0), m_levelList(0), m_childList(0), m_browseCheck(0),
    2727    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),
    2831    m_trailerButton(0), m_trailerText(0),
    2932    m_doneButton(0), cachedChildSelection(0),
    3033    m_metaCache(cache)
     
    4750    UIUtilE::Assign(this, m_playerEdit, "player_edit", &err);
    4851
    4952    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);
    5056    UIUtilE::Assign(this, m_trailerText, "trailer_text", &err);
    5157
    5258    UIUtilE::Assign(this, m_categoryList, "category_select", &err);
     
    5662    UIUtilE::Assign(this, m_browseCheck, "browse_check", &err);
    5763
    5864    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);
    5968    UIUtilE::Assign(this, m_doneButton, "done_button", &err);
    6069
    6170    if (err)
     
    7483
    7584    connect(m_doneButton, SIGNAL(Clicked()), SLOT(saveAndExit()));
    7685    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()));
    7789
    7890    connect(m_browseCheck, SIGNAL(valueChanged()), SLOT(toggleBrowse()));
    7991
     
    216228    if (m_workingMetadata->Browse())
    217229        m_browseCheck->SetCheckState(MythUIStateType::Full);
    218230    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());
    219234    m_trailerText->SetText(m_workingMetadata->GetTrailer());
    220235    m_playerEdit->SetText(m_workingMetadata->PlayCommand());
    221236}
     
    329344    CheckedSet(m_coverartText, file);
    330345}
    331346
     347void 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, this, 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
     381void EditMetadataDialog::SetBanner(QString file)
     382{
     383    if (file.isEmpty())
     384        return;
     385
     386    m_workingMetadata->setBanner(file);
     387    CheckedSet(m_bannerText, file);
     388}
     389
     390void 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, this, 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
     424void EditMetadataDialog::SetFanart(QString file)
     425{
     426    if (file.isEmpty())
     427        return;
     428
     429    m_workingMetadata->setFanart(file);
     430    CheckedSet(m_fanartText, file);
     431}
     432
     433void 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, this, 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
     467void EditMetadataDialog::SetScreenshot(QString file)
     468{
     469    if (file.isEmpty())
     470        return;
     471
     472    m_workingMetadata->setScreenshot(file);
     473    CheckedSet(m_screenshotText, file);
     474}
     475
    332476void EditMetadataDialog::customEvent(QEvent *event)
    333477{
    334478    if (event->type() == kMythDialogBoxCompletionEventType)
  • mythplugins/mythvideo/mythvideo/globals.h

     
    1414extern const QString VIDEO_INETREF_DEFAULT;
    1515extern const QString VIDEO_COVERFILE_DEFAULT;
    1616extern const QString VIDEO_TRAILER_DEFAULT;
     17extern const QString VIDEO_SCREENSHOT_DEFAULT;
     18extern const QString VIDEO_BANNER_DEFAULT;
     19extern const QString VIDEO_FANART_DEFAULT;
    1720extern const QString VIDEO_RATING_DEFAULT;
    1821extern const QString VIDEO_PLOT_DEFAULT;
    1922extern const QString VIDEO_CAST_DEFAULT;
  • mythplugins/mythvideo/mythvideo/videoutils.h

     
    2222QStringList GetVideoDirs();
    2323
    2424bool IsDefaultCoverFile(const QString &coverfile);
     25bool IsDefaultScreenshot(const QString &screenshot);
     26bool IsDefaultBanner(const QString &banner);
     27bool IsDefaultFanart(const QString &fanart);
    2528
    2629class Metadata;
    2730