Commit d9d4bb6b authored by Camilo Higuita's avatar Camilo Higuita

initial move to mauikit, use a single model for mainplaylist releated...

initial move to mauikit, use a single model for mainplaylist releated delegates and babetable swipe fixes
parent ed2e334c
<?xml version="1.0"?> <?xml version="1.0"?>
<manifest package="org.kde.vvave" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto"> <manifest package="org.kde.vvave" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:icon="@drawable/icon"> <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="vvave" android:icon="@drawable/icon">
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop"> <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="vvave" android:screenOrientation="unspecified" android:launchMode="singleTop">
android:name="com.example.android.tools.NotificationClient" android:name=&quot;com.example.android.tools.NotificationClient&quot;
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER"/>
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
#if (defined (Q_OS_LINUX) && !defined (Q_OS_ANDROID)) #if (defined (Q_OS_LINUX) && !defined (Q_OS_ANDROID))
#include <QWidget> #include <QWidget>
#include "kde/notify.h" #include "kde/notify.h"
#include "kde/kdeconnect.h"
#endif #endif
#if defined(Q_OS_ANDROID) #if defined(Q_OS_ANDROID)
...@@ -291,11 +290,11 @@ void Babe::linkDecoder(QString json) ...@@ -291,11 +290,11 @@ void Babe::linkDecoder(QString json)
} }
case LINK::CODE::COLLECT : case LINK::CODE::COLLECT :
{ {
auto devices = getDevices(); // auto devices = getDevices();
qDebug()<<"DEVICES:"<< devices; // qDebug()<<"DEVICES:"<< devices;
if(!devices.isEmpty()) // if(!devices.isEmpty())
sendToDevice(devices.first().toMap().value("name").toString(), // sendToDevice(devices.first().toMap().value("name").toString(),
devices.first().toMap().value("id").toString(), msg); // devices.first().toMap().value("id").toString(), msg);
break; break;
} }
...@@ -733,24 +732,6 @@ QVariantList Babe::searchFor(const QStringList &queries) ...@@ -733,24 +732,6 @@ QVariantList Babe::searchFor(const QStringList &queries)
return mapList; return mapList;
} }
QVariantList Babe::getDevices()
{
#if (defined (Q_OS_LINUX) && !defined (Q_OS_ANDROID))
return KdeConnect::getDevices();
#else
return {};
#endif
}
bool Babe::sendToDevice(const QString &name, const QString &id, const QString &url)
{
#if (defined (Q_OS_LINUX) && !defined (Q_OS_ANDROID))
return KdeConnect::sendToDevice(name, id, url) ? true : false;
#else
return {};
#endif
}
void Babe::debug(const QString &msg) void Babe::debug(const QString &msg)
{ {
emit this->message(msg); emit this->message(msg);
......
...@@ -24,127 +24,124 @@ using namespace BAE; ...@@ -24,127 +24,124 @@ using namespace BAE;
class Babe : public CollectionDB class Babe : public CollectionDB
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit Babe(QObject *parent = nullptr); explicit Babe(QObject *parent = nullptr);
~Babe(); ~Babe();
BabeSettings *settings; BabeSettings *settings;
Linking link; Linking link;
Player player; Player player;
// Q_INVOKABLE void runPy(); // Q_INVOKABLE void runPy();
/* DATABASE INTERFACES */ /* DATABASE INTERFACES */
Q_INVOKABLE QVariantList get(const QString &queryTxt); Q_INVOKABLE QVariantList get(const QString &queryTxt);
Q_INVOKABLE QVariantList getList(const QStringList &urls); Q_INVOKABLE QVariantList getList(const QStringList &urls);
Q_INVOKABLE void set(const QString &table, const QVariantList &wheres); Q_INVOKABLE void set(const QString &table, const QVariantList &wheres);
Q_INVOKABLE void trackPlaylist(const QStringList &urls, const QString &playlist); Q_INVOKABLE void trackPlaylist(const QStringList &urls, const QString &playlist);
Q_INVOKABLE void trackLyrics(const QString &url); Q_INVOKABLE void trackLyrics(const QString &url);
Q_INVOKABLE bool trackBabe(const QString &path); Q_INVOKABLE bool trackBabe(const QString &path);
Q_INVOKABLE QString artistArt(const QString &artist); Q_INVOKABLE QString artistArt(const QString &artist);
Q_INVOKABLE QString albumArt(const QString &album, const QString &artist); Q_INVOKABLE QString albumArt(const QString &album, const QString &artist);
Q_INVOKABLE QString artistWiki(const QString &artist); Q_INVOKABLE QString artistWiki(const QString &artist);
Q_INVOKABLE QString albumWiki(const QString &album, const QString &artist); Q_INVOKABLE QString albumWiki(const QString &album, const QString &artist);
Q_INVOKABLE bool babeTrack(const QString &path, const bool &value); Q_INVOKABLE bool babeTrack(const QString &path, const bool &value);
/* SETTINGS */ /* SETTINGS */
Q_INVOKABLE void scanDir(const QString &url); Q_INVOKABLE void scanDir(const QString &url);
Q_INVOKABLE void brainz(const bool &on); Q_INVOKABLE void brainz(const bool &on);
Q_INVOKABLE bool brainzState(); Q_INVOKABLE bool brainzState();
Q_INVOKABLE void refreshCollection(); Q_INVOKABLE void refreshCollection();
Q_INVOKABLE void getYoutubeTrack(const QString &message); Q_INVOKABLE void getYoutubeTrack(const QString &message);
/* STATIC METHODS */ /* STATIC METHODS */
Q_INVOKABLE static void saveSetting(const QString &key, const QVariant &value, const QString &group); Q_INVOKABLE static void saveSetting(const QString &key, const QVariant &value, const QString &group);
Q_INVOKABLE static QVariant loadSetting(const QString &key, const QString &group, const QVariant &defaultValue); Q_INVOKABLE static QVariant loadSetting(const QString &key, const QString &group, const QVariant &defaultValue);
Q_INVOKABLE static void savePlaylist(const QStringList &list); Q_INVOKABLE static void savePlaylist(const QStringList &list);
Q_INVOKABLE static QStringList lastPlaylist(); Q_INVOKABLE static QStringList lastPlaylist();
Q_INVOKABLE static void savePlaylistPos(const int &pos); Q_INVOKABLE static void savePlaylistPos(const int &pos);
Q_INVOKABLE static int lastPlaylistPos(); Q_INVOKABLE static int lastPlaylistPos();
Q_INVOKABLE static bool fileExists(const QString &url); Q_INVOKABLE static bool fileExists(const QString &url);
Q_INVOKABLE static void showFolder(const QString &url); Q_INVOKABLE static void showFolder(const QString &url);
/*COLORS*/ /*COLORS*/
Q_INVOKABLE static QString babeColor(); Q_INVOKABLE static QString babeColor();
/*UTILS*/ /*UTILS*/
Q_INVOKABLE static bool isMobile(); Q_INVOKABLE static bool isMobile();
Q_INVOKABLE static bool isAndroid(); Q_INVOKABLE static bool isAndroid();
Q_INVOKABLE static QString moodColor(const int &pos); Q_INVOKABLE static QString moodColor(const int &pos);
Q_INVOKABLE static QString homeDir(); Q_INVOKABLE static QString homeDir();
Q_INVOKABLE static QString musicDir(); Q_INVOKABLE static QString musicDir();
Q_INVOKABLE static QString sdDir(); Q_INVOKABLE static QString sdDir();
Q_INVOKABLE static QVariantList getDirs(const QString &pathUrl); Q_INVOKABLE static QVariantList getDirs(const QString &pathUrl);
Q_INVOKABLE static QVariantMap getParentDir(const QString &path); Q_INVOKABLE static QVariantMap getParentDir(const QString &path);
Q_INVOKABLE static QStringList defaultSources(); Q_INVOKABLE static QStringList defaultSources();
static void registerTypes(); static void registerTypes();
/*USEFUL*/ /*USEFUL*/
Q_INVOKABLE QString loadCover(const QString &url); Q_INVOKABLE QString loadCover(const QString &url);
Q_INVOKABLE QVariantList searchFor(const QStringList &queries); Q_INVOKABLE QVariantList searchFor(const QStringList &queries);
/*KDE*/ /*KDE*/
Q_INVOKABLE static QVariantList getDevices(); Q_INVOKABLE void notify(const QString &title, const QString &body);
Q_INVOKABLE static bool sendToDevice(const QString &name, const QString &id, const QString &url); Q_INVOKABLE void notifySong(const QString &url);
Q_INVOKABLE void notify(const QString &title, const QString &body); /*ANDROID*/
Q_INVOKABLE void notifySong(const QString &url); Q_INVOKABLE static void sendText(const QString &text);
Q_INVOKABLE static void sendTrack(const QString &url);
Q_INVOKABLE static void openFile(const QString &url);
Q_INVOKABLE void fileChooser();
Q_INVOKABLE static void androidStatusBarColor(const QString &color, const bool &contrast);
/*ANDROID*/
Q_INVOKABLE static void sendText(const QString &text);
Q_INVOKABLE static void sendTrack(const QString &url);
Q_INVOKABLE static void openFile(const QString &url);
Q_INVOKABLE void fileChooser();
Q_INVOKABLE static void androidStatusBarColor(const QString &color, const bool &contrast);
public slots:
void debug(const QString &msg);
public slots: private:
void debug(const QString &msg);
private: ConThread *thread;
ConThread *thread;
#if (defined (Q_OS_LINUX) && !defined (Q_OS_ANDROID)) #if (defined (Q_OS_LINUX) && !defined (Q_OS_ANDROID))
Notify *nof; Notify *nof;
#elif defined (Q_OS_ANDROID) #elif defined (Q_OS_ANDROID)
NotificationClient *nof; NotificationClient *nof;
Android *android; Android *android;
#endif #endif
QString fetchCoverArt(DB &song); QString fetchCoverArt(DB &song);
static QVariantList transformData(const DB_LIST &dbList); static QVariantList transformData(const DB_LIST &dbList);
void fetchTrackLyrics(DB &song); void fetchTrackLyrics(DB &song);
void linkDecoder(QString json); void linkDecoder(QString json);
signals: signals:
void refreshTables(int size); void refreshTables(int size);
void refreshTracks(); void refreshTracks();
void refreshAlbums(); void refreshAlbums();
void refreshArtists(); void refreshArtists();
void trackLyricsReady(QString lyrics, QString url); void trackLyricsReady(QString lyrics, QString url);
void skipTrack(); void skipTrack();
void babeIt(); void babeIt();
void message(QString msg); void message(QString msg);
}; };
......
...@@ -7,12 +7,10 @@ QT += webengine ...@@ -7,12 +7,10 @@ QT += webengine
HEADERS += \ HEADERS += \
$$PWD/notify.h \ $$PWD/notify.h \
$$PWD/mpris2.h \ $$PWD/mpris2.h \
$$PWD/kdeconnect.h
SOURCES += \ SOURCES += \
$$PWD/notify.cpp \ $$PWD/notify.cpp \
$$PWD/mpris2.cpp \ $$PWD/mpris2.cpp \
$$PWD/kdeconnect.cpp
LIBS += -ltag LIBS += -ltag
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
#include <QStyleHints> #include <QStyleHints>
#include <QCommandLineParser> #include <QCommandLineParser>
#include "services/local/linking.h"
#ifdef STATIC_KIRIGAMI #ifdef STATIC_KIRIGAMI
#include "./3rdparty/kirigami/src/kirigamiplugin.h" #include "./3rdparty/kirigami/src/kirigamiplugin.h"
...@@ -28,6 +27,8 @@ ...@@ -28,6 +27,8 @@
#include "utils/bae.h" #include "utils/bae.h"
#include "services/web/youtube.h" #include "services/web/youtube.h"
#include "services/web/Spotify/spotify.h" #include "services/web/Spotify/spotify.h"
#include "services/local/linking.h"
#include "mauikit/src/mauikit.h"
#ifdef Q_OS_ANDROID #ifdef Q_OS_ANDROID
Q_DECL_EXPORT Q_DECL_EXPORT
...@@ -100,6 +101,7 @@ int main(int argc, char *argv[]) ...@@ -100,6 +101,7 @@ int main(int argc, char *argv[])
"LINK", // name in QML (does not have to match C++ name) "LINK", // name in QML (does not have to match C++ name)
"Error: only enums" // error in case someone tries to create a MyNamespace object "Error: only enums" // error in case someone tries to create a MyNamespace object
); );
#ifdef STATIC_KIRIGAMI #ifdef STATIC_KIRIGAMI
KirigamiPlugin::getInstance().registerTypes(); KirigamiPlugin::getInstance().registerTypes();
#endif #endif
...@@ -115,6 +117,10 @@ int main(int argc, char *argv[]) ...@@ -115,6 +117,10 @@ int main(int argc, char *argv[])
QtWebEngine::initialize(); QtWebEngine::initialize();
#endif #endif
#ifdef MAUI_APP
MauiKit::getInstance().registerTypes();
#endif
engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty()) if (engine.rootObjects().isEmpty())
return -1; return -1;
......
This diff is collapsed.
/home/camilo/Coding/qml/buho/mauikit
\ No newline at end of file
...@@ -29,7 +29,7 @@ function playTrack(track) ...@@ -29,7 +29,7 @@ function playTrack(track)
bae.notifySong(currentTrack.url) bae.notifySong(currentTrack.url)
} }
// bae.trackLyrics(currentTrack.url) // bae.trackLyrics(currentTrack.url)
// root.mainPlaylist.infoView.wikiAlbum = bae.albumWiki(root.mainPlaylist.currentTrack.album,root.mainPlaylist.currentTrack.artist) // root.mainPlaylist.infoView.wikiAlbum = bae.albumWiki(root.mainPlaylist.currentTrack.album,root.mainPlaylist.currentTrack.artist)
// root.mainPlaylist.infoView.wikiArtist = bae.artistWiki(root.mainPlaylist.currentTrack.artist) // root.mainPlaylist.infoView.wikiArtist = bae.artistWiki(root.mainPlaylist.currentTrack.artist)
...@@ -139,10 +139,7 @@ function appendTracksAt(tracks, at) ...@@ -139,10 +139,7 @@ function appendTracksAt(tracks, at)
{ {
if(tracks) if(tracks)
for(var i in tracks) for(var i in tracks)
{
mainPlaylist.albumsRoll.model.insert(parseInt(at)+parseInt(i), tracks[i])
mainPlaylist.list.model.insert(parseInt(at)+parseInt(i), tracks[i]) mainPlaylist.list.model.insert(parseInt(at)+parseInt(i), tracks[i])
}
} }
function appendTrack(track) function appendTrack(track)
...@@ -150,7 +147,6 @@ function appendTrack(track) ...@@ -150,7 +147,6 @@ function appendTrack(track)
if(track) if(track)
{ {
mainPlaylist.list.model.append(track) mainPlaylist.list.model.append(track)
mainPlaylist.albumsRoll.append(track)
animFooter.running = true animFooter.running = true
if(sync === true) if(sync === true)
{ {
...@@ -235,7 +231,6 @@ function playAll(tracks) ...@@ -235,7 +231,6 @@ function playAll(tracks)
infoMsg = "" infoMsg = ""
mainPlaylist.table.clearTable() mainPlaylist.table.clearTable()
mainPlaylist.albumsRoll.model.clear()
pageStack.currentIndex = 0 pageStack.currentIndex = 0
for(var i in tracks) for(var i in tracks)
......
...@@ -9,13 +9,12 @@ ToolButton ...@@ -9,13 +9,12 @@ ToolButton
id: babeButton id: babeButton
property string iconName property string iconName
property int iconSize : toolBarIconSize property int iconSize : 22
property color iconColor: textColor property color iconColor: textColor
readonly property string defaultColor : textColor readonly property string defaultColor : textColor
property bool anim : false property bool anim : false
spacing: space.small spacing: space.small
display: pageStack.wideMode ? AbstractButton.TextBesideIcon : AbstractButton.IconOnly
icon.name: babeButton.iconName icon.name: babeButton.iconName
icon.width: babeButton.iconSize icon.width: babeButton.iconSize
......
...@@ -4,6 +4,7 @@ import QtQuick.Controls 2.3 ...@@ -4,6 +4,7 @@ import QtQuick.Controls 2.3
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
import org.kde.kirigami 2.2 as Kirigami import org.kde.kirigami 2.2 as Kirigami
import org.kde.maui 1.0 as Maui
import "../../view_models" import "../../view_models"
import "../../utils/Help.js" as H import "../../utils/Help.js" as H
...@@ -41,7 +42,7 @@ SwipeDelegate ...@@ -41,7 +42,7 @@ SwipeDelegate
property bool remoteArtwork: false property bool remoteArtwork: false
width: parent.width width: parent.width
height: sameAlbum ? rowHeight * 0.7 : altHeight height: sameAlbum ? rowHeight : altHeight
padding: 0 padding: 0
clip: true clip: true
autoExclusive: true autoExclusive: true
...@@ -73,18 +74,18 @@ SwipeDelegate ...@@ -73,18 +74,18 @@ SwipeDelegate
anchors.right: parent.right anchors.right: parent.right
spacing: space.big spacing: space.big
BabeButton Maui.ToolButton
{ {
iconName: "documentinfo" iconName: "documentinfo"
onClicked: anchors.verticalCenter: parent.verticalCenter
{ onClicked: swipe.close()
swipe.close()
}
} }
BabeButton Maui.ToolButton
{ {
iconName: "love" iconName: "love"
anchors.verticalCenter: parent.verticalCenter
iconColor: babe === "1" ? babeColor : textColor iconColor: babe === "1" ? babeColor : textColor
onClicked: onClicked:
{ {
...@@ -95,9 +96,11 @@ SwipeDelegate ...@@ -95,9 +96,11 @@ SwipeDelegate
} }
} }
BabeButton Maui.ToolButton
{ {
iconName: "view-media-recent" iconName: "view-media-recent"
anchors.verticalCenter: parent.verticalCenter
onClicked: onClicked:
{ {
swipe.close() swipe.close()
...@@ -105,9 +108,11 @@ SwipeDelegate ...@@ -105,9 +108,11 @@ SwipeDelegate
} }
} }
BabeButton Maui.ToolButton
{ {
iconName: "media-playback-start" iconName: "media-playback-start"
anchors.verticalCenter: parent.verticalCenter
onClicked: onClicked:
{ {
swipe.close() swipe.close()
......
...@@ -32,7 +32,7 @@ linux:unix:!android { ...@@ -32,7 +32,7 @@ linux:unix:!android {
message("Unknown configuration") message("Unknown configuration")
} }
include(mauikit/mauikit.pri)
# The following define makes your compiler emit warnings if you use # The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked deprecated (the exact warnings # any feature of Qt which as been marked deprecated (the exact warnings
......
...@@ -14,7 +14,6 @@ ToolBar ...@@ -14,7 +14,6 @@ ToolBar
property alias babeBar : babeBar property alias babeBar : babeBar
property string accentColor : babeColor property string accentColor : babeColor
property int currentIndex : 0 property int currentIndex : 0
property bool accent : pageStack.wideMode || (!pageStack.wideMode && pageStack.currentIndex === 1)
signal tracksViewClicked() signal tracksViewClicked()
signal albumsViewClicked() signal albumsViewClicked()
...@@ -91,21 +90,7 @@ ToolBar ...@@ -91,21 +90,7 @@ ToolBar
Layout.maximumWidth: tracksView.implicitWidth * 1.3 Layout.maximumWidth: tracksView.implicitWidth * 1.3
Layout.maximumHeight: toolBarIconSize Layout.maximumHeight: toolBarIconSize
BabeButton
{
id: tracksView
anchors.centerIn: parent
iconName: "view-media-track"
iconColor: accent && currentIndex === viewsIndex.tracks ? accentColor : textColor
onClicked: tracksViewClicked()
text: qsTr("Tracks")
hoverEnabled: true
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hovered && !isMobile
ToolTip.text: qsTr("Tracks")
}
} }
Item Item
...@@ -119,10 +104,6 @@ ToolBar ...@@ -119,10 +104,6 @@ ToolBar
{ {
id: albumsView id: albumsView
anchors.centerIn: parent anchors.centerIn: parent
text: qsTr("Albums")
iconName: /*"album"*/ "view-media-album-cover"
iconColor: accent && currentIndex === viewsIndex.albums ? accentColor : textColor
onClicked: albumsViewClicked()
hoverEnabled: true hoverEnabled: true
ToolTip.delay: 1000 ToolTip.delay: 1000
...@@ -143,9 +124,6 @@ ToolBar ...@@ -143,9 +124,6 @@ ToolBar
{ {
id: artistsView id: artistsView
anchors.centerIn: parent anchors.centerIn: parent
text: qsTr("Artists")
iconName: "view-media-artist"
iconColor: accent && currentIndex === viewsIndex.artists ? accentColor : textColor
onClicked: artistsViewClicked() onClicked: artistsViewClicked()
hoverEnabled: true hoverEnabled: true
......
...@@ -9,9 +9,7 @@ Item ...@@ -9,9 +9,7 @@ Item
width: height width: height
x: contentMargins x: contentMargins
y: parent.height - (playbackControls.height*0.5) y: parent.height - (root.footBar.height*0.5)
z: progressBar.z + 1
property bool isHovered : false property bool isHovered : false
...@@ -90,7 +88,8 @@ Item ...@@ -90,7 +88,8 @@ Item
{ {
width: miniArtwork.width width: miniArtwork.width
height: miniArtwork.height height: miniArtwork.height
Rectangle { Rectangle
{
anchors.centerIn: parent anchors.centerIn: parent
width: miniArtwork.adapt ? miniArtwork.width : Math.min( width: miniArtwork.adapt ? miniArtwork.width : Math.min(
miniArtwork.width, miniArtwork.width,
...@@ -100,6 +99,8 @@ Item ...@@ -100,6 +99,8 @@ Item
} }
} }
} }
} }
MouseArea MouseArea
...@@ -108,10 +109,10 @@ Item ...@@ -108,10 +109,10 @@ Item
drag.target: parent drag.target: parent
drag.axis: Drag.XAndYAxis drag.axis: Drag.XAndYAxis
drag.minimumX: 0 drag.minimumX: 0
drag.maximumX: playbackControls.width - parent.width drag.maximumX: root.footBar.width - parent.width
drag.minimumY: 0 drag.minimumY: 0
drag.maximumY: playbackControls.y drag.maximumY: pageStack.height
onClicked: onClicked:
{ {
if (!isMobile && pageStack.wideMode) if (!isMobile && pageStack.wideMode)
......
...@@ -15,7 +15,7 @@ ListView ...@@ -15,7 +15,7 @@ ListView
highlightFollowsCurrentItem: true highlightFollowsCurrentItem: true
highlightMoveDuration: 0 highlightMoveDuration: 0
snapMode: ListView.SnapOneItem snapMode: ListView.SnapOneItem
model : ListModel{} model: mainPlaylist.list.model
onMovementEnded: onMovementEnded:
{ {
...@@ -48,11 +48,6 @@ ListView ...@@ -48,11 +48,6 @@ ListView
} }
} }
function append(album)
{
model.insert(count, album)
}
function positionAlbum(index) function positionAlbum(index)
{ {
albumsRollRoot.currentIndex = index albumsRollRoot.currentIndex = index
......
...@@ -3,6 +3,7 @@ import QtQuick.Controls 2.2 ...@@ -3,6 +3,7 @@ import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
import org.kde.kirigami 2.2 as Kirigami import org.kde.kirigami 2.2 as Kirigami
import org.kde.maui 1.0 as Maui
import "../InfoView" import "../InfoView"</