import QtQuick 1.0 import Qt 4.7 import "Shared" import "storage.js" as Storage Rectangle { id: root width: 360 height: 640 signal clickPopular() signal loadPromo() signal addPopular() signal searchMovie(string text) signal clickCategory(string id) signal getCategories() signal getGenresOfCurrentCategory() signal clickSortCountry() signal clickSortYear() signal clickGenre(string id) signal sortByCountry(string QString) signal sortByYear(string QString) signal clickMovie(string id) signal clickCompilation(string id, string seasons) signal addContent() signal endADV() signal contentWatched() signal clickPostroll() signal clickPreroll() signal sendUserId(string id) signal alphabet(string al1, string al2) signal setOrientation(string orientation) signal quit() signal timerStart() signal timerStop() property string preroll: "" property string movie:"" property string postroll:"" property string currentContent property int startPosstrollTime: 0 property int seekPosition: 0 property bool hasError: false property int numberPlayer: 0 property int percent_to_mark property string currentSource property bool prerollShowed: false property string movieTitle property string tabBarCurrentState: "home" onNumberPlayerChanged: { if(numberPlayer == 5) numberPlayer = 0 } Image { id: splash source: "./images/splash.png" z: 1 SequentialAnimation { running: true PauseAnimation { duration: 1500 } PropertyAction { target: splash; property: "visible"; value: false } } } FontLoader { id: mainFont; source: "fonts/helveticaneuecyrmedium.ttf" } property variant currentLoader: pageLoader property variant hiddenLoader: pageLoader2 ListModel { id: pageModel function changeLoaders() { var obj = hiddenLoader hiddenLoader = currentLoader currentLoader = obj } function pageRequested(page) { root.state = "" hiddenLoader.source = "" hiddenLoader.x = width hiddenLoader.source = page append({"page": currentLoader.source}) root.state = "new" //pageModel.get(count).page changeLoaders() } function pageLast() { root.state = "" hiddenLoader.x = -width hiddenLoader.source = get(count - 1).page remove(count - 1) root.state = "old" changeLoaders() } } Loader { id: pageLoader width: parent.width height: parent.height source: "MainPage/MainPage.qml" //---Грузится по дефолту onLoaded: { var pathname = pageLoader.source.toString() var filename = pathname.slice(pathname.length-15, pathname.length) if (filename === "MoviePlayer.qml"){ pageLoader.item.startPosstrollTime = startPosstrollTime pageLoader.item.current_video_source = currentContent pageLoader.item.percent_to_mark = percent_to_mark pageLoader2.item.movieTitle = movieTitle if (hasError) pageLoader.item.seekPosition = seekPosition } else if (filename === "dvertPlayer.qml"){ pageLoader.item.typeOfSource = currentSource pageLoader.item.current_video_source = currentContent } else if (filename === "erollPlayer.qml"){ //pageLoader.item.typeOfSource = currentSource pageLoader.item.current_video_source = currentContent } } } Loader { id: pageLoader2 width: parent.width height: parent.height onLoaded: { var pathname = pageLoader2.source.toString() var filename = pathname.slice(pathname.length-15, pathname.length) if (filename === "MoviePlayer.qml"){ pageLoader2.item.startPosstrollTime = startPosstrollTime pageLoader2.item.current_video_source = currentContent pageLoader2.item.percent_to_mark = percent_to_mark pageLoader2.item.movieTitle = movieTitle if (hasError) pageLoader2.item.seekPosition = seekPosition } else if (filename === "dvertPlayer.qml"){ pageLoader2.item.typeOfSource = currentSource pageLoader2.item.current_video_source = currentContent } else if (filename === "erollPlayer.qml"){ //pageLoader.item.typeOfSource = currentSource pageLoader2.item.current_video_source = currentContent } } } states: [ State { name: "new" PropertyChanges { target: currentLoader x: -width } PropertyChanges { target: hiddenLoader x: 0 } }, State { name: "old" PropertyChanges { target: currentLoader x: width } PropertyChanges { target: hiddenLoader x: 0 } } ] transitions: [ Transition { NumberAnimation { properties: "x" duration: 400 easing.type: Easing.InOutQuad } } ] Rectangle { id: publicModel property int n_search_opacity: 0 property int n_search_height: 0 property string search_m property string category_text property string sorting_m property string sorting_title property int select_sort_opacity property int select_sort_height property string txtsort1: "" property string txtsort2: "" property string txtsort3: "" property int sort1_opacity property int sort2_opacity property int sort3_opacity property int sort1_x property int sort2_x property int sort3_x property string title_serial_s: "Сериал" property string serial_stxt_top property string serial_s_top } ListModel{ id: promoLM } ListModel{ id: popularModel} ListModel{ id: searchModel} ListModel{ id: moreModel} ListModel{ id: categoryModel} ListModel{id: filmModel} ListModel{id: serialModel} ListModel{id: countryModel} ListModel{id: yearModel} ListModel{id: genreModel} ListModel{id: serial_s_Model} function sorting_m() { if(publicModel.sorting_m == "gener"){ publicModel.sorting_title = "Жанр" return genreModel } if(publicModel.sorting_m == "country"){ publicModel.sorting_title = "Страна" return countryModel } if(publicModel.sorting_m == "year"){ publicModel.sorting_title = "Год" return yearModel } } function search_m() { if(publicModel.search_m == "popularModel"){return popularModel} return searchModel } Tabbar{ id: tabbar state: "home" onHomeClicked: openPromoSection() onPopularClicked: openPopularSection() onSearchClicked: openSearchSection() onCategoryClicked: openMoreSection() onExitClicked: exitClick() } Spinner{ id: spinner anchors.fill: parent show: true } Item{ id:exitMask anchors.fill: parent opacity: 0 Rectangle{ //id: exitMask anchors.fill: parent color: "#353535" opacity: 0.7 MouseArea{ id: mouse anchors.fill: parent onClicked: {} } } DialogBox{ anchors.centerIn: parent width: 320 height: 190 titleBox: "Сообщение" message: "Вы действительно хотите выйти?" rightButtonText: "ОТМЕНА" leftButtonText: "Выход" onRightClicked: { tabbar.state = tabBarCurrentState exitMask.opacity = 0 } onLeftClicked: { quit() } } } function showSpinner(){ spinner.show = true } function hideSpinner(){ spinner.show = false } function showTabbar(){ tabbar.opacity = 1 } function hideTabbar(){ tabbar.opacity = 0 } function unsetSplash(){ //console.log("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!fffffffff") //setOrientation('portrait') alphabet('абвгдеёжзийклмнопрстуфхцчшщъыьэюя','АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ') } function length(text){ return text.length } function clear_searchbar(){ publicModel.select_sort_opacity = 0 publicModel.select_sort_height = 0 publicModel.txtsort1 = "" publicModel.txtsort2 = "" publicModel.txtsort3 = "" publicModel.sort1_opacity = 0 publicModel.sort2_opacity = 0 publicModel.sort3_opacity = 0 publicModel.sort1_x = 0 publicModel.sort2_x = 0 publicModel.sort3_x = 0 } //------------------Promo Page--------------------------------- function openPromoSection(){ tabBarCurrentState = "home" showSpinner() popularModel.clear() searchModel.clear() moreModel.clear() clear_searchbar() loadPromo() pageModel.pageRequested("MainPage/MainPage.qml") } function getPromo(content_id,name,desc,img_link,weight,link){ promoLM.append({ "name": name, "img":img_link, "description":desc, "content_id":content_id }) } //--------------If Internet Connection unavalible--------------- function showNotConnectedMessage(){ hideSpinner() pageLoader.source = "Offline/OfflinePage.qml" tabbar.opacity = 0 } //---------------Popular Page------------------------------------- function openPopularSection(){ tabBarCurrentState = "popular" spinner.show = true promoLM.clear() searchModel.clear() moreModel.clear() clear_searchbar() clickPopular() pageModel.pageRequested("Popular/Popular.qml") } function getPopular(content_id, title, genre, country, year, ivi_rating, ivi_ratingint, kp_rating, imdb_rating, img_link){ var visibleivi=1 var anchorsimdb=20 if (ivi_rating === undefined){ anchorsimdb=4 visibleivi=0 } var visiblekp=1 if (kp_rating === undefined){ visiblekp=0 } var visibleimdb=1 var anchorskp=20 if (imdb_rating === undefined){ anchorskp=0 visibleimdb=0 } popularModel.append({ "title": title, "img_path":img_link, "desc":genre, "country":country, "year":year, "ivi_rating":ivi_rating, "kp_rating":kp_rating, "imdb_rating":imdb_rating, "id":content_id, "ivi_ratingint":ivi_ratingint, "vsblivi": visibleivi, "vsblkp": visiblekp, "vsblimdb": visibleimdb, "anchorsimdb": anchorsimdb, "anchorskp": anchorskp }) } //---------------Search Page------------------------------------- function openSearchSection(){ tabBarCurrentState = "search" popularModel.clear() promoLM.clear() moreModel.clear() clear_searchbar() publicModel.n_search_opacity = 0 publicModel.n_search_height = 0 pageModel.pageRequested("Search/Search.qml") } function getSearchResult(id, name, country, compilation, year){ //stopSpinner() searchModel.append({ "ids": id, "title":name, "country":country, "desc":compilation, "year":year }) publicModel.search_m = "searchModel" publicModel.n_search_opacity = 0 publicModel.n_search_height = 0 } function searchResultIsEmpty(){ //showSpinner() clickPopular() publicModel.search_m = "popularModel" publicModel.n_search_opacity = 1 publicModel.n_search_height = 95 } function clearSearch(){ searchModel.clear() popularModel.clear() } //---------------Category Page------------------------------------- function openMoreSection(){ tabBarCurrentState = "categories" popularModel.clear() promoLM.clear() searchModel.clear() clear_searchbar() getCategories() pageModel.pageRequested("Category/Category.qml") } function getCategoryList(id, name){ moreModel.append({ "id": id, "name":name }) } function getMovieFromCategory(content_id, title, genre, country, year, ivi_rating, ivi_ratingint, kp_rating, imdb_rating, img_link, id, season){ var visibleivi=1 var anchorsimdb=20 if (ivi_rating === undefined || ivi_rating === ''){ anchorsimdb=4 visibleivi=0 } var visiblekp=1 if (kp_rating === undefined || kp_rating === ''){ visiblekp=0 } var visibleimdb=1 var anchorskp=20 if (imdb_rating === undefined || imdb_rating === ''){ anchorskp=0 visibleimdb=0 } categoryModel.append({ "title": title, "img_path":img_link, "genre":genre, "country":country, "year":year, "ivi_rating":ivi_rating, "kp_rating":kp_rating, "imdb_rating":imdb_rating, "ivi_ratingint":ivi_ratingint, "content_id": content_id, "ivi_star": ivi_rating, "vsblivi": visibleivi, "vsblkp": visiblekp, "vsblimdb": visibleimdb, "anchorsimdb": anchorsimdb, "anchorskp": anchorskp, "season": season }) } function getCompilationList (id,title,genres,description,contents_number,img_url, col_s) { serialModel.append({ "idser": id, "title": title, "genres":genres, "description":description, "contents_number":contents_number, "img_path":img_url, "col_s": col_s }) } function addCompilationList (id,title,genres,description,contents_number,img_url,col_s) { serialModel.append({ "idser": id, "title": title, "genres":genres, "description":description, "contents_number":contents_number, "img_path":img_url, "col_s": col_s }) } function getCountrySortList(country){ countryModel.append({ "name":country }) } function getYearSortList(year){ yearModel.append({ "name":year }) } function getGenreList(id, name){ genreModel.append({ "idg": id, "name":name }) } //---------------------Serials--------------------------------------- function addEpisode (season_name, id,title,img_url) { var season_t var season_h if (season_name != " ") {season_t = "Сезон "; season_h = 25} else {season_t = "" season_h = 0} //film.episode_numb = 3 serial_s_Model.append({ "idser": id, "title": title, "img_path":img_url, "season_name": season_name, "season_t": season_t, "season_h": season_h }) } //---------------------Card of Movie--------------------------------------- function getMovieInfo(adv_preroll, adv_postroll, adv_time, content_id, percent, title, genre, description, country, year, ivi_rating, ivi_ratingint, kp_rating, imdb_rating, actors, img_url, film_url, cat_name) { var visibleivi=1 var anchorsimdb=20 var mir=0 if (ivi_rating === ''){ anchorsimdb=4 visibleivi=0 mir=20 } var visiblekp=1 var anchorsdesc=32 var mkr=0 if (kp_rating === ''){ visiblekp=0 anchorsdesc=12 mkr=20 } var visibleimdb=1 var anchorskp=20 var mmr=0 if (imdb_rating === ''){ anchorskp=0 visibleimdb=0 mmr=20 } var visibleactors=1 var mak=0 if (actors === '' || actors == 'Неизвестно'){ visibleactors=0 mak=50 } filmModel.clear() filmModel.append({ "title": title, "img_path":img_url, "genre":genre, "descr":description, "country":country, "year":year, "ivi_rating":ivi_rating, "kp_rating":kp_rating, "imdb_rating":imdb_rating, "id":content_id, "ivi_ratingint":ivi_ratingint, "actors": actors, "ivi_star": ivi_rating, "vsblivi": visibleivi, "vsblkp": visiblekp, "vsblimdb": visibleimdb, "anchorsimdb": anchorsimdb, "anchorskp": anchorskp, "anchorsdesc": anchorsdesc, "vsblactors": visibleactors, "url": film_url, "mir": mir, "mkr": mkr, "mmr": mmr, "mak": mak }) //filmTxt.text = " "+cat_name preroll = adv_preroll movie = film_url postroll = adv_postroll percent_to_mark = percent movieTitle = title //share.movie_id = content_id } //-----------------VideoPlayer Managment------------------------ function startThePreroll(){ if(preroll!=""){ currentContent = preroll currentSource = "preroll" if(hiddenLoader.source == pageModel.get(pageModel.count-1).page){ // get(pageModel.count).page) currentLoader.source = "VideoPlayer/AdvertPlayer.qml" } else{ hiddenLoader.source = "VideoPlayer/AdvertPlayer.qml" } console.log("Start Preroll") } else startTheMovie() } function startTheMovie(){ if(movie!=""){ currentContent = movie if(hiddenLoader.source == pageModel.get(pageModel.count-1).page){ currentLoader.source = "VideoPlayer/MoviePlayer.qml" } else{ hiddenLoader.source = "VideoPlayer/MoviePlayer.qml" } console.log("Start Movie") } else {} } function startThePrepreroll(){ if(movie!=""){ if(preroll!=""){ currentContent = movie if(hiddenLoader.source == pageModel.get(pageModel.count-1).page){ currentLoader.source = "VideoPlayer/PrerollPlayer.qml" } else{ hiddenLoader.source = "VideoPlayer/PrerollPlayer.qml" console.log("Start Movie") } }else startTheMovie() } else {} } function startThePostroll(){ if(postroll!=""){ currentContent = postroll currentSource = "postroll" if(hiddenLoader.source == pageModel.get(pageModel.count-1).page){ currentLoader.source = "VideoPlayer/AdvertPlayer.qml" } else{ hiddenLoader.source = "VideoPlayer/AdvertPlayer.qml" } } else { if(hiddenLoader.source == pageModel.get(pageModel.count-1).page){ currentLoader.source = "MovieCard/MovieCard.qml" } else{ hiddenLoader.source = "MovieCard/MovieCard.qml" } setOrientation('portrait') } } function videoError(pstn){ seekPosition = pstn hasError = true if( currentSource == "preroll") startThePreroll() if( currentSource == "movie") startTheMovie() if( currentSource == "postroll") startThePostroll() } function exitClick(){ exitMask.opacity = 1 } //-------User iD generate function requestUserId(){ Storage.initialize() var id = Storage.getSetting("id") if(id =="Unknown"){ var new_id = generateId() Storage.setSetting("id",new_id) sendUserId(id) console.log("Id is not storage on device!") } else{ sendUserId(id) console.log("Id was sent!") console.log(id) } } function generateId(){ var id = Math.random()*Math.random() * (879037.011457 - 87989777.011457)+123874456.0123547 console.log("Id was generated!") console.log(id) return id.toString() } function volumeDownPressed(){ var pathname = pageLoader.source.toString() var filename = pathname.slice(pathname.length-15, pathname.length) if (filename === "MoviePlayer.qml"){ pageLoader.item.volumeDown() } pathname = pageLoader2.source.toString() filename = pathname.slice(pathname.length-15, pathname.length) if (filename === "MoviePlayer.qml"){ pageLoader2.item.volumeDown() } } function volumeUpPressed(){ var pathname = pageLoader.source.toString() var filename = pathname.slice(pathname.length-15, pathname.length) if (filename === "MoviePlayer.qml"){ pageLoader.item.volumeUp() } pathname = pageLoader2.source.toString() filename = pathname.slice(pathname.length-15, pathname.length) if (filename === "MoviePlayer.qml"){ pageLoader2.item.volumeUp() } } }