Learn what Felgo offers to help your business succeed. Start your free evaluation today! Felgo for Your Business

YouTube Video Player App

 import Felgo
 import QtQuick
 import QtQuick.Layouts
 import "../common"

 AppPage {
   id: page
   title: "Settings"

   rightBarItem: IconButtonBarItem {
     visible: !isOnline
     iconType: IconType.exclamation
     onClicked: NativeDialog.confirm("Offline", "You are currently offline, please go online to use the app.")
   }

   Column {
     id: settingsCol
     y: spacing
     width: parent.width - 2 * spacing
     spacing: dp(Theme.navigationBar.defaultBarItemPadding)
     anchors.horizontalCenter: parent.horizontalCenter

     Row {
       spacing: parent.spacing

       AppText {
         text: "User Name:"
         anchors.verticalCenter: parent.verticalCenter
       }

       AppTextField {
         id: userNameField
         text: dataModel.userName
         placeholderText: "Enter User Name"
         anchors.verticalCenter: parent.verticalCenter
         backgroundColor: Theme.secondaryBackgroundColor
         onAccepted: {
           logic.clearData()
           logic.setUserName(userNameField.text)
           page.forceActiveFocus()
         }
       }
     }

     // channel info
     AppText {
       id: infoText
       text: "Channel: "+(dataModel.channelInfo ? dataModel.channelInfo.snippet.title : "")
       visible: !!dataModel.channelInfo
       color: Theme.secondaryTextColor
     }

     // divider
     Rectangle {
       width: parent.width
       height: px(1)
       color: Theme.dividerColor
     }

     // spotlight
     Item {
       id: spotlightItem
       width: parent.width
       height: spotlightRow.height
       visible: dataModel.channelPlaylists.length > 0

       RowLayout {
         id: spotlightRow
         width: parent.width
         spacing: settingsCol.spacing

         AppText {
           Layout.minimumWidth: implicitWidth
           text: "Spotlight Playlist:"
         }

         AppText {
           text: (dataModel.mainPlaylist && dataModel.mainPlaylist.snippet && dataModel.mainPlaylist.snippet.title || "none")
           color: Theme.secondaryTextColor
           Layout.fillWidth: true
           wrapMode: AppText.WrapAtWordBoundaryOrAnywhere
         }

         AppIcon {
           Layout.minimumWidth: implicitWidth
           iconType: IconType.edit
           color: Theme.tintColor
         }
       }

       MouseArea {
         anchors.fill: parent
         onClicked: page.navigationStack.push(spotlightChooserComponent)
       }
     }

     // divider
     Rectangle {
       width: parent.width
       height: px(1)
       color: Theme.dividerColor
       visible: spotlightItem.visible
     }
   }

   Component {
     id: spotlightChooserComponent

     ChannelPage {
       id: chooser
       title: "Choose Playlist"
       model: dataModel.channelPlaylists.concat(noPlaylistOption)
       showDisclosure: false
       onSelected: {
         logic.setSpotlightPlaylist(playlist)
         chooser.navigationStack.pop()
       }

       property var noPlaylistOption: [{
           id: "",
           snippet: { title: "No Spotlight Playlist" }
         }]
Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded