[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [elisa] src: remove unmaintained mobile UI: no future for it
From: Matthieu Gallien <matthieu_gallien () yahoo ! fr>
Date: 2016-12-06 22:10:57
Message-ID: E1cENwv-00046P-Vg () code ! kde ! org
[Download RAW message or body]
Git commit 982a77b05c8d6c51cd6e1bf8870d2db0bc449836 by Matthieu Gallien.
Committed on 06/12/2016 at 21:50.
Pushed by mgallien into branch 'master'.
remove unmaintained mobile UI: no future for it
D +0 -79 src/AbstractAudioTrackDelegateMobile.qml
D +0 -37 src/AlbumTrackDelegateMobile.qml
D +0 -37 src/AudioTrackDelegateMobile.qml
M +11 -22 src/CMakeLists.txt
D +0 -181 src/HeaderBarMobile.qml
D +0 -77 src/MediaAlbumViewMobile.qml
D +0 -65 src/MediaContentDirectoryMobile.qml
D +0 -129 src/MediaPlayPageMobile.qml
D +0 -185 src/MediaPlayerControlMobile.qml
D +0 -60 src/MediaServerEntryMobile.qml
D +0 -198 src/MediaServerListingMobile.qml
D +0 -134 src/MediaServerMobile.qml
D +0 -82 src/MediaServerPageMobile.qml
D +0 -24 src/genericDeviceMobile.qml
D +0 -178 src/mediaServerMobile.qml
M +0 -2 src/upnpControl.qrc
D +0 -154 src/upnpControlMobile.qml
https://commits.kde.org/elisa/982a77b05c8d6c51cd6e1bf8870d2db0bc449836
diff --git a/src/AbstractAudioTrackDelegateMobile.qml \
b/src/AbstractAudioTrackDelegateMobile.qml deleted file mode 100644
index dc14d53..0000000
--- a/src/AbstractAudioTrackDelegateMobile.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-import QtQuick.Layouts 1.2
-import QtQuick.Controls 1.2
-import QtQuick.Window 2.2
-import QtQuick.Controls.Styles 1.2
-import org.kde.kirigami 1.0 as MobileComponents
-
-Row {
- id: rowItem
-
- property alias title: mainLabel.text
- property string artist
- property string album
- property alias itemDecoration: mainIcon.source
- property alias duration: durationLabel.text
-
- spacing: Screen.pixelDensity * 0.25
- height: Screen.pixelDensity * 12.
-
- Image {
- id: mainIcon
-
- source: itemDecoration
-
- height: parent.height
- width: parent.height
- sourceSize.width: height
- sourceSize.height: height
- fillMode: Image.PreserveAspectFit
-
- verticalAlignment: Image.AlignVCenter
- horizontalAlignment: Image.AlignHCenter
- }
-
- Column {
- Label {
- id: mainLabel
- text: title
- elide: "ElideRight"
- width: viewAlbumDelegate.width - mainIcon.width - durationLabel.width - \
Screen.pixelDensity * 0.5
- }
-
- Label {
- id: authorLabel
- text: artist + ' - ' + album
- elide: "ElideRight"
- verticalAlignment: Text.AlignTop
- width: viewAlbumDelegate.width - mainIcon.width - durationLabel.width - \
Screen.pixelDensity * 0.5
-
- anchors.verticalCenter: parent.center
- }
- }
-
- Label {
- id: durationLabel
- text: duration
- elide: "ElideRight"
- width: Screen.pixelDensity * 9.
- }
-}
diff --git a/src/AlbumTrackDelegateMobile.qml b/src/AlbumTrackDelegateMobile.qml
deleted file mode 100644
index 0a52458..0000000
--- a/src/AlbumTrackDelegateMobile.qml
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-import org.kde.kirigami 1.0 as MobileComponents
-
-MobileComponents.AbstractListItem {
- id: viewAlbumDelegate
- enabled: true
- supportsMouseEvents: true
-
- property alias title: audioTrackDelegate.title
- property alias artist: audioTrackDelegate.artist
- property alias album: audioTrackDelegate.album
- property alias itemDecoration: audioTrackDelegate.itemDecoration
- property alias duration: audioTrackDelegate.duration
-
- AbstractAudioTrackDelegateMobile {
- id: audioTrackDelegate
- }
-}
diff --git a/src/AudioTrackDelegateMobile.qml b/src/AudioTrackDelegateMobile.qml
deleted file mode 100644
index eb6918a..0000000
--- a/src/AudioTrackDelegateMobile.qml
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-import org.kde.kirigami 1.0 as MobileComponents
-
-MobileComponents.SwipeListItem {
- id: viewAlbumDelegate
- enabled: true
- supportsMouseEvents: true
-
- property alias title: audioTrackDelegate.title
- property alias artist: audioTrackDelegate.artist
- property alias album: audioTrackDelegate.album
- property alias itemDecoration: audioTrackDelegate.itemDecoration
- property alias duration: audioTrackDelegate.duration
-
- AbstractAudioTrackDelegateMobile {
- id: audioTrackDelegate
- }
-}
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d17e07a..fda00f7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -20,37 +20,26 @@ if (Qt5Quick_FOUND AND Qt5Widgets_FOUND)
manageaudioplayer.cpp
MediaServer.qml
- MediaAlbumView.qml
+
RatingStar.qml
AudioTrackDelegate.qml
PlayListEntry.qml
- MediaPlayerControl.qml
- MediaServerEntry.qml
MediaAlbumDelegate.qml
MediaArtistDelegate.qml
- MediaAllAlbumView.qml
- MediaArtistAlbumView.qml
- MediaAllArtistView.qml
MediaBrowser.qml
- MediaPlayListView.qml
- HeaderBar.qml
- MediaServerMobile.qml
- AbstractAudioTrackDelegateMobile.qml
- AudioTrackDelegateMobile.qml
- AlbumTrackDelegateMobile.qml
- MediaServerMobile.qml
- MediaServerListingMobile.qml
- MediaAlbumViewMobile.qml
- MediaPlayerControlMobile.qml
- MediaServerEntryMobile.qml
- MediaContentDirectoryMobile.qml
- MediaServerPageMobile.qml
- MediaPlayPageMobile.qml
- HeaderBarMobile.qml
- ContextView.qml
DraggableItem.qml
PassiveNotification.qml
+
+ HeaderBar.qml
NavigationActionBar.qml
+ MediaPlayerControl.qml
+ ContextView.qml
+
+ MediaArtistAlbumView.qml
+ MediaPlayListView.qml
+ MediaAlbumView.qml
+ MediaAllAlbumView.qml
+ MediaAllArtistView.qml
)
if (KF5Baloo_FOUND)
diff --git a/src/HeaderBarMobile.qml b/src/HeaderBarMobile.qml
deleted file mode 100644
index b5f4ab6..0000000
--- a/src/HeaderBarMobile.qml
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.0
-import QtQuick.Layouts 1.1
-import QtQuick.Controls 1.2
-import QtQuick.Window 2.2
-
-Item {
- id: headerBar
-
- property string title
- property string artist
- property string album
- property string image
- property string tracksCount
- property int trackRating
- property bool ratingVisible
-
- Image {
- source: Qt.resolvedUrl('background.jpg')
-
- anchors.fill: parent
- fillMode: Image.PreserveAspectCrop
-
- sourceSize.width: parent.width
- //sourceSize.height: parent.height
-
- Label {
- anchors.bottom: parent.bottom
- anchors.right: parent.right
-
- text: 'by Edward Betts (Own work) [CC BY-SA 3.0]'
- color: 'white'
- opacity: 0.4
- }
-
- ColumnLayout {
- anchors.fill: parent
- spacing: 0
-
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
-
- RowLayout {
- spacing: 0
-
- Layout.alignment: Qt.AlignVCenter
- Layout.preferredHeight: Screen.pixelDensity * 20.
- Layout.minimumHeight: Screen.pixelDensity * 20.
- Layout.maximumHeight: Screen.pixelDensity * 20.
- Layout.fillWidth: true
-
- Item {
- Layout.preferredWidth: Screen.pixelDensity * 50.
- Layout.minimumWidth: Screen.pixelDensity * 50.
- Layout.maximumWidth: Screen.pixelDensity * 50.
- Layout.fillHeight: true
- }
-
- Image {
- id: mainIcon
- source: image
- fillMode: Image.PreserveAspectFit
-
- Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
- Layout.preferredHeight: Screen.pixelDensity * 20.
- Layout.minimumHeight: Screen.pixelDensity * 20.
- Layout.maximumHeight: Screen.pixelDensity * 20.
- Layout.preferredWidth: Screen.pixelDensity * 20.
- Layout.minimumWidth: Screen.pixelDensity * 20.
- Layout.maximumWidth: Screen.pixelDensity * 20.
- }
-
- Item {
- Layout.preferredWidth: Screen.pixelDensity * 2.
- Layout.minimumWidth: Screen.pixelDensity * 2.
- Layout.maximumWidth: Screen.pixelDensity * 2.
- Layout.fillHeight: true
- }
-
- ColumnLayout {
- spacing: 0
-
- Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
- Layout.preferredWidth: Screen.pixelDensity * 80.
- Layout.minimumWidth: Screen.pixelDensity * 80.
- Layout.maximumWidth: Screen.pixelDensity * 80.
- Layout.fillHeight: true
-
- Item {
- Layout.fillHeight: true
- }
-
- Label {
- id: mainLabel
- text: title
- Layout.fillWidth: true
- Layout.alignment: Qt.AlignLeft
- elide: "ElideRight"
- color: 'white'
- }
-
- Item {
- Layout.fillHeight: true
- }
-
- Label {
- id: authorLabel
- text: artist
- Layout.fillWidth: true
- Layout.alignment: Qt.AlignLeft
- elide: "ElideRight"
- color: 'white'
- }
-
- Item {
- Layout.fillHeight: true
- }
-
- Label {
- id: albumLabel
- text: album
- Layout.fillWidth: true
- Layout.alignment: Qt.AlignLeft
- elide: "ElideRight"
- color: 'white'
- }
-
- Item {
- Layout.fillHeight: true
- }
- }
-
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
-
- Label {
- id: remainingTracksLabel
- text: tracksCount + ' tracks remaining'
- Layout.alignment: Qt.AlignRight | Qt.AlignBottom
- elide: "ElideRight"
- visible: tracksCount > 0
- color: 'white'
- }
-
- Item {
- Layout.preferredWidth: Screen.pixelDensity * 40.
- Layout.minimumWidth: Screen.pixelDensity * 40.
- Layout.maximumWidth: Screen.pixelDensity * 40.
- Layout.fillHeight: true
- }
- }
-
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/MediaAlbumViewMobile.qml b/src/MediaAlbumViewMobile.qml
deleted file mode 100644
index d25d437..0000000
--- a/src/MediaAlbumViewMobile.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-import QtQuick.Window 2.2
-import QtQuick.Controls 1.2
-import QtQuick.Controls.Styles 1.2
-import QtQml.Models 2.1
-import org.mgallien.QmlExtension 1.0
-import org.kde.kirigami 1.0 as MobileComponents
-import QtMultimedia 5.5
-import QtQuick.Layouts 1.2
-
-MobileComponents.Page {
- id: topListing
-
- title: albumName
-
- property var rootIndex
- property var contentModel
- property MediaPlayList playListModel
- property var albumName
- property var artistName
- property var tracksCount
- property var albumArtUrl
-
- ColumnLayout {
- anchors.fill: parent
-
- ScrollView {
- Layout.fillHeight: true
- Layout.fillWidth: true
-
- ListView {
- id: contentDirectoryView
-
- boundsBehavior: Flickable.StopAtBounds
- focus: true
- clip: true
-
- model: DelegateModel {
- model: contentModel
- rootIndex: topListing.rootIndex
-
- delegate: AlbumTrackDelegateMobile {
- title: (model != undefined && model.title !== undefined) ? \
model.title : ''
- artist: (model != undefined && model.artist !== undefined) ? \
model.artist : ''
- album: (model != undefined && model.album !== undefined) ? \
model.album : ''
- itemDecoration: (model != undefined && model.image !== \
undefined) ? model.image : ''
- duration: (model != undefined && model.duration !== \
undefined) ? model.duration : ''
-
- onClicked: \
playListModel.enqueue(contentDirectoryView.model.modelIndex(index))
- }
- }
-
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/MediaContentDirectoryMobile.qml \
b/src/MediaContentDirectoryMobile.qml deleted file mode 100644
index 741a1c4..0000000
--- a/src/MediaContentDirectoryMobile.qml
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-import QtQuick.Controls 1.2
-import QtQuick.Controls.Styles 1.2
-import QtQuick.Layouts 1.1
-import QtQuick.Window 2.2
-import org.mgallien.QmlExtension 1.0
-import org.kde.kirigami 1.0 as MobileComponents
-import QtMultimedia 5.5
-
-MobileComponents.Page {
- property var pagesModel
- property var contentDirectoryModel
- property MediaPlayList playListModel
- property var remoteMediaServer: ({})
-
- id: contentDirectoryRoot
-
- objectName: "ServerContent"
- color: MobileComponents.Theme.viewBackgroundColor
-
- ColumnLayout {
- anchors.fill: parent
- spacing: 0
-
- /*Button {
- id: backButton
-
- height: Screen.pixelDensity * 8.
- Layout.preferredHeight: height
- Layout.minimumHeight: height
- Layout.maximumHeight: height
- Layout.fillWidth: true
-
- onClicked: parentStackView.pop()
- text: 'Back'
- }*/
- }
-
- MediaServerListing {
- contentDirectoryService: contentDirectoryModel.contentDirectory
- rootIndex: '0'
- contentModel: contentDirectoryModel
- playListModel: contentDirectoryRoot.playListModel
- visible: false
- }
-}
diff --git a/src/MediaPlayPageMobile.qml b/src/MediaPlayPageMobile.qml
deleted file mode 100644
index a17868b..0000000
--- a/src/MediaPlayPageMobile.qml
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.2
-import QtQuick.Window 2.2
-import QtQuick.Dialogs 1.2
-import QtQml.Models 2.1
-import QtMultimedia 5.5
-import org.kde.kirigami 1.0 as MobileComponents
-import org.mgallien.QmlExtension 1.0
-
-MobileComponents.Page {
- property var targetPlayListControler
- property var targetAudioPlayer
- property var playListModel
-
- id: rootItem
- title: "Local Playlist"
-
- objectName: "ServerList"
-
- ColumnLayout {
- anchors.fill: parent
-
- HeaderBarMobile {
- id: headerBar
-
- Layout.preferredHeight: Screen.pixelDensity * 28.
- Layout.minimumHeight: Layout.preferredHeight
- Layout.maximumHeight: Layout.preferredHeight
- Layout.fillWidth: true
-
- tracksCount: targetPlayListControler.remainingTracks
- album: targetPlayListControler.album
- title: targetPlayListControler.title
- artist: targetPlayListControler.artist
- image: targetPlayListControler.image
- ratingVisible: false
- }
-
- MediaPlayerControlMobile {
- id: playControlItem
-
- duration: targetAudioPlayer.duration
- seekable: targetAudioPlayer.seekable
-
- volume: 1.0
- position: targetPlayListControler.playControlPosition
- skipBackwardEnabled: targetPlayListControler.skipBackwardControlEnabled
- skipForwardEnabled: targetPlayListControler.skipForwardControlEnabled
- playEnabled: targetPlayListControler.playControlEnabled
- isPlaying: targetPlayListControler.musicPlaying
-
- Layout.preferredHeight: Screen.pixelDensity * 16.
- Layout.minimumHeight: Layout.preferredHeight
- Layout.maximumHeight: Layout.preferredHeight
- Layout.fillWidth: true
-
- onSeek: targetPlayListControler.playerSeek(position)
- onPlay: targetPlayListControler.playPause()
- onPause: targetPlayListControler.playPause()
- onPlayPrevious: targetPlayListControler.skipPreviousTrack()
- onPlayNext: targetPlayListControler.skipNextTrack()
- }
-
- ScrollView {
- Layout.fillHeight: true
- Layout.fillWidth: true
-
- ListView {
- id: playListView
-
- model: DelegateModel {
- model: playListModel
-
- delegate: AudioTrackDelegateMobile {
- height: Screen.pixelDensity * 12.
- width: playListView.width
-
- title: (model != undefined && model.title !== undefined) ? \
model.title : ''
- artist: (model != undefined && model.artist !== undefined) ? \
model.artist : ''
- album: (model != undefined && model.album !== undefined) ? \
model.album : ''
- itemDecoration: (model != undefined && model.image !== \
undefined) ? model.image : ''
- duration: (model != undefined && model.duration !== \
undefined) ? model.duration : ''
-
- onClicked: playNowAction.trigger(self)
-
- actions: [
- MobileComponents.Action {
- text: "Remove"
- iconName: "list-remove"
- onTriggered: playListModel.removeRows(index, 1, \
playListView.model.rootIndex)
- },
- MobileComponents.Action {
- id: playNowAction
- text: "Play Now"
- iconName: "media-playback-start"
- onTriggered: \
targetPlayListControler.skipToTrack(index)
- }
- ]
- }
- }
-
- focus: true
-
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/MediaPlayerControlMobile.qml b/src/MediaPlayerControlMobile.qml
deleted file mode 100644
index 43d36f6..0000000
--- a/src/MediaPlayerControlMobile.qml
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.2
-import QtQuick.Window 2.2
-import QtQuick.Controls 1.2
-import QtQuick.Controls.Styles 1.2
-import QtQuick.Layouts 1.1
-import org.mgallien.QmlExtension 1.0
-import org.kde.kirigami 1.0 as MobileComponents
-
-
-Item {
- property double volume
- property int position
- property int duration
- property bool muted
- property bool isPlaying
- property bool seekable
- property bool playEnabled
- property bool skipForwardEnabled
- property bool skipBackwardEnabled
-
- signal play()
- signal pause()
- signal playPrevious()
- signal playNext()
- signal seek(int position)
-
- id: musicWidget
-
- Rectangle {
- color: '#C5CBD1'
- width: parent.width
- height: parent.height
-
- RowLayout {
- anchors.fill: parent
- spacing: 0
-
- Image {
- id: previousButton
- MouseArea {
- anchors.fill: parent
- onClicked: musicWidget.playPrevious()
- }
- source: Qt.resolvedUrl('media-skip-backward.svg')
- Layout.preferredWidth: width
- Layout.preferredHeight: height
- Layout.alignment: Qt.AlignVCenter
- Layout.maximumWidth: width
- Layout.maximumHeight: height
- Layout.minimumWidth: width
- Layout.minimumHeight: height
- sourceSize.width: width
- sourceSize.height: width
- height: width
- width: Screen.pixelDensity * 6
- fillMode: Image.PreserveAspectFit
- enabled: skipBackwardEnabled
- opacity: enabled ? 1.0 : 0.6
- }
-
- Image {
- id: playPauseButton
- MouseArea {
- anchors.fill: parent
- onClicked: {
- if (musicWidget.isPlaying)
- musicWidget.pause()
- else
- musicWidget.play()
- }
- }
- source: {
- if (musicWidget.isPlaying)
- Qt.resolvedUrl('media-playback-pause.svg')
- else
- Qt.resolvedUrl('media-playback-start.svg')
- }
- Layout.preferredWidth: width
- Layout.preferredHeight: height
- Layout.alignment: Qt.AlignVCenter
- Layout.maximumWidth: width
- Layout.maximumHeight: height
- Layout.minimumWidth: width
- Layout.minimumHeight: height
- sourceSize.width: width
- sourceSize.height: width
- height: width
- width: Screen.pixelDensity * 8
- fillMode: Image.PreserveAspectFit
- enabled: playEnabled
- opacity: enabled ? 1.0 : 0.6
- }
-
- Image {
- id: nextButton
- MouseArea {
- anchors.fill: parent
- onClicked: musicWidget.playNext()
- }
- source: Qt.resolvedUrl('media-skip-forward.svg')
- Layout.preferredWidth: width
- Layout.preferredHeight: height
- Layout.alignment: Qt.AlignVCenter
- Layout.maximumWidth: width
- Layout.maximumHeight: height
- Layout.minimumWidth: width
- Layout.minimumHeight: height
- sourceSize.width: width
- sourceSize.height: width
- height: width
- width: Screen.pixelDensity * 6
- fillMode: Image.PreserveAspectFit
- enabled: skipForwardEnabled
- opacity: enabled ? 1.0 : 0.6
- }
-
- Item {
- Layout.preferredWidth: width
- Layout.maximumWidth: width
- Layout.minimumWidth: width
- width: Screen.pixelDensity * 2
- }
-
- ProgressIndicator {
- id: timeIndicator
- position: musicWidget.position
- }
-
- Label {
- id: positionLabel
- text: timeIndicator.progressDuration
- Layout.alignment: Qt.AlignVCenter
- }
-
- Item {
- Layout.preferredWidth: width
- Layout.maximumWidth: width
- Layout.minimumWidth: width
- width: Screen.pixelDensity * 2
- }
-
- Slider {
- id: musicProgress
- minimumValue: 0
- maximumValue: musicWidget.duration
- value: musicWidget.position
- Layout.alignment: Qt.AlignVCenter
- Layout.fillWidth: true
- enabled: musicWidget.seekable && musicWidget.playEnabled
- onPressedChanged: {
- if (!pressed) {
- musicWidget.seek(value)
- }
- }
- }
-
- Item {
- Layout.preferredWidth: width
- Layout.maximumWidth: width
- Layout.minimumWidth: width
- width: Screen.pixelDensity * 2
- }
- }
- }
-}
-
diff --git a/src/MediaServerEntryMobile.qml b/src/MediaServerEntryMobile.qml
deleted file mode 100644
index 4395147..0000000
--- a/src/MediaServerEntryMobile.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.0
-import QtQuick.Controls 1.2
-import org.kde.kirigami 1.0 as MobileComponents
-
-Item {
- property string imageName
- property string entryTitle
-
- signal clicked()
-
- MouseArea {
- id: clickHandle
-
- width: parent.width
- height: parent.height
-
- onClicked: {
- parent.clicked()
- }
- }
-
- Column {
- Image {
- id: mainIcon
- source: imageName
- sourceSize.width: width
- sourceSize.height: width
- fillMode: Image.PreserveAspectFit
-
- width: parent.width * 0.9
- height: parent.width * 0.9
- }
- Label {
- id: mainLabel
- text: entryTitle
- width: parent.width - 5
- elide: "ElideRight"
- }
- }
-}
-
diff --git a/src/MediaServerListingMobile.qml b/src/MediaServerListingMobile.qml
deleted file mode 100644
index 82597d1..0000000
--- a/src/MediaServerListingMobile.qml
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-import QtQuick.Window 2.2
-import QtQuick.Controls 1.2
-import QtQuick.Controls.Styles 1.2
-import QtQuick.Layouts 1.2
-import QtQml.Models 2.1
-import org.mgallien.QmlExtension 1.0
-import org.kde.kirigami 1.0 as MobileComponents
-import QtGraphicalEffects 1.0
-import QtMultimedia 5.5
-
-MobileComponents.Page {
- property var contentModel
- property MediaPlayList playListModel
- property MusicStatistics musicDatabase
- property string serverName
-
- id: rootElement
- title: serverName
-
- ColumnLayout {
- anchors.fill: parent
-
- AlbumFilterProxyModel {
- id: filterProxyModel
-
- sourceModel: rootElement.contentModel
-
- filterText: filterTextInput.text
- }
-
- RowLayout {
- Layout.fillWidth: true
-
- MobileComponents.Label {
- text: 'Filter: '
- }
-
- TextField {
- id: filterTextInput
-
- placeholderText: 'Filter'
-
- Layout.fillWidth: true
- }
- }
-
- ScrollView {
- Layout.fillWidth: true
- Layout.fillHeight: true
-
- GridView {
- anchors.fill: parent
- id: contentDirectoryView
- snapMode: GridView.SnapToRow
-
- cellWidth: width / 3
- cellHeight: cellWidth * 1.9
-
- model:
- DelegateModel {
- id: delegateContentModel
- model: filterProxyModel
-
- delegate: Item {
- id: mediaServerEntry
-
- width: contentDirectoryView.cellWidth
- height: contentDirectoryView.cellHeight
-
- ColumnLayout {
- id: mainData
-
- anchors.fill: parent
-
- Item {
- Layout.preferredHeight: Screen.pixelDensity * 0.5
- Layout.minimumHeight: Screen.pixelDensity * 0.5
- Layout.maximumHeight: Screen.pixelDensity * 0.5
- }
-
- Image {
- id: playIcon
- source: image
- width: parent.height * 0.7
- height: parent.height * 0.7
- sourceSize.width: width
- sourceSize.height: width
- fillMode: Image.PreserveAspectFit
-
- Layout.preferredWidth: \
contentDirectoryView.cellWidth * 0.9
- Layout.preferredHeight: \
contentDirectoryView.cellWidth * 0.9
-
- Layout.alignment: Qt.AlignHCenter
-
- MouseArea {
- id: clickHandle
-
- anchors.fill: parent
- propagateComposedEvents: true
-
- onClicked: {
- \
stackView.push(Qt.resolvedUrl("MediaAlbumViewMobile.qml"),
- {
- 'rootIndex': \
filterProxyModel.mapToSource(delegateContentModel.modelIndex(mediaServerEntry.DelegateModel.itemsIndex)),
- 'contentModel': \
contentModel,
- 'playListModel': \
playListModel,
- 'albumArtUrl': image,
- 'albumName': title,
- 'artistName': artist,
- 'tracksCount': count
- })
- }
- }
- }
-
- MobileComponents.Label {
- id: titleLabel
- text: if (title != undefined)
- title
- else
- ''
- font.weight: Font.Bold
- horizontalAlignment: Text.AlignLeft
-
- Layout.preferredWidth: \
contentDirectoryView.cellWidth * 0.9
- Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
-
- elide: "ElideRight"
- }
-
- MobileComponents.Label {
- id: artistLabel
- text: if (artist != undefined)
- artist
- else
- ''
- font.weight: Font.Normal
- horizontalAlignment: Text.AlignLeft
-
- Layout.preferredWidth: \
contentDirectoryView.cellWidth * 0.9
- Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
-
- elide: "ElideRight"
- }
-
- MobileComponents.Label {
- id: numberLabel
- text: if (count != undefined)
- if (count == 1)
- count + ' Song'
- else
- count + ' Songs'
- else
- '0 Songs'
-
- font.weight: Font.Light
- horizontalAlignment: Text.AlignLeft
-
- Layout.preferredWidth: \
contentDirectoryView.cellWidth * 0.9
- Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
-
- elide: "ElideRight"
- }
-
- Item {
- Layout.preferredHeight: Screen.pixelDensity * 0.5
- Layout.minimumHeight: Screen.pixelDensity * 0.5
- Layout.maximumHeight: Screen.pixelDensity * 0.5
- }
- }
- }
- }
-
- focus: true
- }
- }
- }
-}
diff --git a/src/MediaServerMobile.qml b/src/MediaServerMobile.qml
deleted file mode 100644
index aa3d503..0000000
--- a/src/MediaServerMobile.qml
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.3
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.2
-import QtMultimedia 5.5
-import org.mgallien.QmlExtension 1.0
-import org.kde.kirigami 1.0 as MobileComponents
-
-MobileComponents.ApplicationWindow {
- visible: true
- title: qsTr("Elisa")
- id: rootItem
-
- property string globalBrowseFlag: 'BrowseDirectChildren'
- property string globalFilter: '*'
- property string globalSortCriteria: ''
-
- globalDrawer: MobileComponents.GlobalDrawer {
- title: "UPnP Player"
- titleIcon: Qt.resolvedUrl("new-audio-alarm.svg")
- bannerImageSource: "background.jpg"
-
- actions: [
- MobileComponents.Action {
- text: "Browse Media Servers"
- onTriggered: {
- stackView.clear()
- stackView.push(listServerPage)
- }
- },
- MobileComponents.Action {
- text: "Play List"
- onTriggered: {
- stackView.push(playListPage)
- }
- }
- ]
- }
-
- property UpnpDeviceDescription aDevice
- property UpnpControlConnectionManager connectionManager
-
- UpnpSsdpEngine {
- id: mySsdpEngine
-
- Component.onCompleted: {
- mySsdpEngine.initialize();
- mySsdpEngine.searchAllUpnpDevice();
- }
- }
-
- DatabaseInterface {
- id: localAlbumDatabase
- }
-
- Audio {
- id: audioPlayer
-
- muted: playControlItem.muted
-
- volume: playControlItem.volume
- source: playListControler.playerSource
-
- onPlaying: playListControler.playerPlaying()
- onPaused: playListControler.playerPaused()
- onStopped: playListControler.playerStopped()
- onPositionChanged: playListControler.audioPlayerPositionChanged(position)
- onStatusChanged: playListControler.audioPlayerFinished(status == \
Audio.EndOfMedia)
- }
-
- MediaPlayList {
- id: playListModelItem
-
- onTrackHasBeenAdded: rootItem.showPassiveNotification('Track ' + title + ' \
has been added', 'short', "", {})
- }
-
- PlayListControler {
- id: playListControler
-
- playListModel: playListModelItem
-
- urlRole: MediaPlayList.ResourceRole
- isPlayingRole: MediaPlayList.IsPlayingRole
- artistRole: MediaPlayList.ArtistRole
- titleRole: MediaPlayList.TitleRole
- albumRole: MediaPlayList.AlbumRole
- imageRole: MediaPlayList.ImageRole
-
- audioDuration: audioPlayer.duration
-
- onPlayMusic: audioPlayer.play()
- onPauseMusic: audioPlayer.pause()
- onStopMusic: audioPlayer.stop()
- onAudioPositionChanged: audioPlayer.seek(audioPosition)
- }
-
- MediaPlayPageMobile {
- id: playListPage
- targetPlayListControler: playListControler
- targetAudioPlayer: audioPlayer
- playListModel: playListModelItem
-
- visible: false
- }
-
- MediaServerPageMobile {
- id: listServerPage
- serverModel: serverListModel
- globalPlayListModel: playListModelItem
-
- visible: false
- }
-
- property Item stackView: pageStack
- pageStack.initialPage: listServerPage
-}
diff --git a/src/MediaServerPageMobile.qml b/src/MediaServerPageMobile.qml
deleted file mode 100644
index f2fa95c..0000000
--- a/src/MediaServerPageMobile.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2016 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.2
-import QtQuick.Window 2.2
-import QtQuick.Dialogs 1.2
-import QtQml.Models 2.1
-import org.kde.kirigami 1.0 as MobileComponents
-import org.mgallien.QmlExtension 1.0
-
-MobileComponents.Page {
- property var serverModel
- property var globalPlayListModel
- property string globalBrowseFlag: 'BrowseDirectChildren'
- property string globalFilter: '*'
- property string globalSortCriteria: ''
-
- id: rootItem
- title: "UPnP Servers"
-
- objectName: "ServerList"
-
- ColumnLayout {
- anchors.fill: parent
-
- ScrollView {
- Layout.fillHeight: true
- Layout.fillWidth: true
-
- ListView {
- id: serverView
- model: DelegateModel {
- model: serverModel
-
- delegate: MobileComponents.AbstractListItem {
- enabled: true
- supportsMouseEvents: true
-
- MobileComponents.Label {
- id: nameLabel
- anchors.fill: parent
- text: model.name
- }
-
-
- onClicked: {
- contentDirectoryItem.contentModel = \
serverModel.remoteAlbumModel(DelegateModel.itemsIndex)
- contentDirectoryItem.serverName = \
serverModel.remoteAlbumModel(DelegateModel.itemsIndex).serverName
- stackView.push(contentDirectoryItem)
- }
- }
- }
- }
- }
-
- MediaServerListingMobile {
- id: contentDirectoryItem
-
- playListModel: globalPlayListModel
-
- visible: false
- }
- }
-}
diff --git a/src/genericDeviceMobile.qml b/src/genericDeviceMobile.qml
deleted file mode 100644
index de18b34..0000000
--- a/src/genericDeviceMobile.qml
+++ /dev/null
@@ -1,24 +0,0 @@
-import QtQuick 2.0
-import QtQuick.Controls 1.2
-import QtQuick.Controls.Styles 1.2
-
-Item {
- property var aDevice
- property StackView stackView
-
- Button {
- id: backButton
- height: 50
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.right: parent.right
- onClicked: stackView.pop()
- text: 'Back'
- }
-
- Label {
- anchors.top: backButton.bottom
- text: 'hello'
- }
-}
-
diff --git a/src/mediaServerMobile.qml b/src/mediaServerMobile.qml
deleted file mode 100644
index 6155448..0000000
--- a/src/mediaServerMobile.qml
+++ /dev/null
@@ -1,178 +0,0 @@
-import QtQuick 2.4
-import QtQuick.Controls 1.3
-import QtQuick.Controls.Styles 1.3
-import QtQuick.Layouts 1.1
-import QtQml.Models 2.1
-import org.mgallien.QmlExtension 1.0
-import QtMultimedia 5.4
-
-Item {
- property UpnpDeviceDescription aDevice
- property StackView parentStackView
- property UpnpControlConnectionManager connectionManager
-
- id: rootElement
-
- width: parent.width
- height: parent.height
-
- UpnpControlMediaServer {
- id: upnpDevice
-
- description: aDevice
- }
-
- Audio {
- id: audioPlayer
-
- muted: playControlItem.muted
- volume: if (muted)
- 0
- else
- playControlItem.volume
- }
-
- MediaPlayList {
- id: playListModelItem
- }
-
- PlayListControler {
- id: playListControler
-
- playListModel: DelegateModel {
- model: playListModelItem
- }
- modelData: playListModelItem
-
- player: audioPlayer
- playControl: playControlItem
- }
-
- ListModel {
- id: viewModeModel
-
- ListElement {
- name: "Content"
- }
-
- ListElement {
- name: "PlayList"
- }
- }
-
- ColumnLayout {
- anchors.fill: parent
- spacing: 0
-
- MediaPlayerControlMobile {
- id: playControlItem
-
- volume: 100
- position: audioPlayer.position
- duration: audioPlayer.duration
- muted: false
- seekable: audioPlayer.seekable
- isPlaying: false
-
- Layout.preferredHeight: 60
- Layout.minimumHeight: Layout.preferredHeight
- Layout.maximumHeight: Layout.preferredHeight
- Layout.fillWidth: true
-
- onSeek: audioPlayer.seek(position)
- }
-
- RowLayout {
- Layout.fillHeight: true
- Layout.fillWidth: true
- spacing: 0
-
- TableView {
- id: viewModeView
-
- Layout.fillHeight: true
- Layout.preferredWidth: 150
-
- headerVisible: false
- frameVisible: false
- focus: true
- backgroundVisible: false
-
- rowDelegate: Rectangle {
- color: '#EFF0F1'
-
- height: 50
- width: viewModeView.width
- }
-
- model: viewModeModel
-
- itemDelegate: Rectangle {
- height: 50
- width: viewModeView.width
- color: if (styleData.selected)
- '#3DAEE9'
- else
- '#EFF0F1'
- Label {
- anchors.fill: parent
- width: viewModeView.width
- text: model.name
- }
- }
-
- TableViewColumn {
- role: 'name'
- width: viewModeView.width
- }
-
- Component.onCompleted: {
- currentRow = 0
- selection.select(0, 0)
- }
- }
-
- TabView {
- id: mainContentView
-
- tabsVisible: false
-
- currentIndex: viewModeView.currentRow
-
- Layout.fillHeight: true
- Layout.fillWidth: true
-
- Tab {
- MediaContentDirectoryMobile {
- id: contentBrowser
-
- mediaServerDevice: upnpDevice
- parentStackView: rootElement.parentStackView
- connectionManager: rootElement.connectionManager
- playListModel: playListModelItem
-
- width: mainContentView.width
- height: mainContentView.height
- }
- }
-
- /*Tab {
- MediaPlayListView {
- id: playList
-
- mediaServerDevice: upnpDevice
- parentStackView: rootElement.parentStackView
- connectionManager: rootElement.connectionManager
- player: audioPlayer
- playControl: playControlItem
- playListModel: playListModelItem
-
- width: mainContentView.width
- height: mainContentView.height
- }
- }*/
- }
- }
- }
-}
-
diff --git a/src/upnpControl.qrc b/src/upnpControl.qrc
index 193a10e..c7e3d6e 100644
--- a/src/upnpControl.qrc
+++ b/src/upnpControl.qrc
@@ -16,8 +16,6 @@
<file>media-skip-forward.svg</file>
<file>player-volume-muted.svg</file>
<file>player-volume.svg</file>
- <file alias="MediaServerPage.qml">MediaServerPageMobile.qml</file>
- <file alias="MediaPlayPage.qml">MediaPlayPageMobile.qml</file>
<file>background.jpg</file>
<file>ContextView.qml</file>
<file>DraggableItem.qml</file>
diff --git a/src/upnpControlMobile.qml b/src/upnpControlMobile.qml
deleted file mode 100644
index fff7be1..0000000
--- a/src/upnpControlMobile.qml
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright 2014 Matthieu Gallien <matthieu_gallien@yahoo.fr>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.2
-import QtQuick.Window 2.2
-import QtQuick.Controls 1.2
-import QtQuick.Controls.Styles 1.2
-import org.mgallien.QmlExtension 1.0
-
-ApplicationWindow {
- visible: true
- title: 'upnp'
- id: mainWindow
-
- UpnpSsdpEngine {
- id: mySsdpEngine
- }
-
- UpnpDeviceModel {
- id: deviceModel
- listenner: mySsdpEngine
-
- Component.onCompleted: {
- mySsdpEngine.initialize();
- mySsdpEngine.searchAllUpnpDevice();
- }
- }
-
- Component {
- id: rowDelegate
- Item {
- height: Screen.pixelDensity * 13
- Rectangle {
- color: styleData.selected ? "#448" : (styleData.alternate ? "#eee" : \
"#fff")
- border.color:"#ccc"
- border.width: 1
- anchors.fill: parent
- }
- }
- }
-
- Component {
- id: deviceDelegate
- Item {
- id: serviceItem
- anchors.rightMargin: 4
- anchors.leftMargin: 4
- anchors.left: parent.left
- anchors.right: parent.right
-
- Label {
- id: nameLabel
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.rightMargin: 2
- anchors.leftMargin: 2
- color: styleData.textColor
- text: {
- if (model != undefined)
- model.name
- else
- ""
- }
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- height: Screen.pixelDensity * 8
- font.italic: true
- font.pointSize: 12
- }
- Label {
- id: deviceTypeLabel
- anchors.top: nameLabel.bottom
- anchors.bottom: parent.bottom
- anchors.right: nameLabel.right
- anchors.rightMargin: 8
- anchors.leftMargin: 2
- color: styleData.textColor
- text: {if (model != undefined) model.upnpType ; if (model == \
undefined) ""}
- horizontalAlignment: Text.AlignRight
- verticalAlignment: Text.AlignVCenter
- height: Screen.pixelDensity * 5
- visible: styleData.selected
- }
- Label {
- id: statusLabel
- anchors.top: nameLabel.bottom
- anchors.bottom: parent.bottom
- anchors.right: deviceTypeLabel.left
- anchors.rightMargin: 8
- anchors.leftMargin: 2
- color: styleData.textColor
- text: ''
- horizontalAlignment: Text.AlignRight
- verticalAlignment: Text.AlignVCenter
- height: Screen.pixelDensity * 5
- }
- }
- }
-
- StackView {
- id: globalStackView
- anchors.fill: parent
-
- initialItem: TableView {
- id: peersView
- model: deviceModel
- itemDelegate: deviceDelegate
- rowDelegate: rowDelegate
- width: parent.width
- height: parent.height
- headerVisible: false
- TableViewColumn
- {
- width: peersView.width - 4
- resizable: false
- movable: false
- }
- onClicked:
- {
- var deviceType = deviceModel.get(row, 'upnpType')
- var viewName = 'genericDeviceMobile.qml'
-
- if (deviceType === 'urn:schemas-upnp-org:device:MediaServer:1') {
- viewName = 'mediaServerMobile.qml';
- }
-
- parent.push({
- item: Qt.resolvedUrl(viewName),
- properties: {
- 'parentStackView' : globalStackView,
- 'aDevice' : \
deviceModel.getDeviceDescription(deviceModel.get(row, 'uuid'))
- }
- })
- }
- }
- }
-}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic