finished navigation including music player and navigate back

functionality
This commit is contained in:
Anika Raemer 2018-10-23 21:26:29 +02:00
parent d6cb29ae7b
commit 6f5c9138a8
12 changed files with 213 additions and 11 deletions

View file

@ -0,0 +1,32 @@
#include "MusicModel.h"
MusicModel::MusicModel(QObject *parent) : QObject(parent)
{
}
void MusicModel::init(NavigationItemModel *item)
{
mCurrentItem = item;
emit currentItemChanged();
}
void MusicModel::navigateBack()
{
emit navigateTo(mCurrentItem);
}
void MusicModel::playPause()
{
mIsPlaying = !mIsPlaying;
}
NavigationItemModel *MusicModel::getCurrentItem()
{
return mCurrentItem;
}
bool MusicModel::isPlaying()
{
return mIsPlaying;
}

View file

@ -0,0 +1,35 @@
#ifndef MUSICMODEL_H
#define MUSICMODEL_H
#include <QObject>
#include <models/NavigationItemModel.h>
class MusicModel : public QObject
{
Q_OBJECT
Q_PROPERTY(QObject* pCurrentItem READ getCurrentItem NOTIFY currentItemChanged)
signals:
void navigateTo(NavigationItemModel *item);
void currentItemChanged();
public:
MusicModel(QObject *parent = Q_NULLPTR);
void init(NavigationItemModel* item);
Q_INVOKABLE void navigateBack();
Q_INVOKABLE void playPause();
NavigationItemModel *getCurrentItem();
bool isPlaying();
private:
bool mIsPlaying = false;
NavigationItemModel* mCurrentItem = Q_NULLPTR;
};
#endif // MUSICMODEL_H

View file

@ -7,6 +7,7 @@ NavigationItemModel::NavigationItemModel(QObject *parent) : QObject(parent),
mImageSource("qrc:/default_image"),
mParentItem(qobject_cast<NavigationItemModel*>(parent))
{
qRegisterMetaType<NavigationItemModel*>("NavigationItemModel*");
}
QString NavigationItemModel::getImageSource() const

View file

@ -0,0 +1,21 @@
#include "UiStateModel.h"
UiStateModel::UiStateModel(QObject *parent) : QObject(parent)
{
showNavigation();
}
QUrl UiStateModel::getSource() const
{
return mSource;
}
void UiStateModel::showMusicPlayer(){
mSource = QUrl("MusicPlayer.qml");
emit sourceChanged();
}
void UiStateModel::showNavigation(){
mSource = QUrl("Navigation.qml");
emit sourceChanged();
}

View file

@ -0,0 +1,28 @@
#ifndef UISTATEMODEL_H
#define UISTATEMODEL_H
#include <QObject>
#include <QUrl>
class UiStateModel : public QObject
{
Q_OBJECT
Q_PROPERTY(QUrl pSource READ getSource NOTIFY sourceChanged)
signals:
void sourceChanged();
public:
UiStateModel(QObject *parent = Q_NULLPTR);
QUrl getSource() const;
void showMusicPlayer();
void showNavigation();
private:
QUrl mSource;
};
#endif // UISTATEMODEL_H