diff --git a/LenaPi/Navigation.qml b/LenaPi/Navigation.qml new file mode 100644 index 0000000..9fa1c5d --- /dev/null +++ b/LenaPi/Navigation.qml @@ -0,0 +1,45 @@ +import QtQuick 2.0 + +Item { + RoundButton{ + id: back + + anchors.top: parent.top + anchors.left: parent.left + anchors.margins: 20 + + visible: navigationList.pIsBackVisible + + onClicked: navigationList.navigateBack(); + } + + Rectangle{ + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + + height: 210 + + color: "#99ffffff" + + ListView{ + id: circleList + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.margins: 20 + + height: parent.height - 40 + + model: navigationList.pModelItems + spacing: 20 + orientation: ListView.Horizontal + delegate: + NavigationListDelegate{ + id: delegate + height: parent.height + model: navigationList.pModelItems[index] + } + } + } +} diff --git a/LenaPi/controllers/NavigationController.cpp b/LenaPi/controllers/NavigationController.cpp index 556f163..308b9e4 100644 --- a/LenaPi/controllers/NavigationController.cpp +++ b/LenaPi/controllers/NavigationController.cpp @@ -20,7 +20,7 @@ void NavigationController::init(const QString &rootPath) if(!rootDir.exists()) return; mRootPath = rootPath; - add(mRootPath, mRootItem, true); + add(mRootPath, mRootItem); mNavList->setModelItems(mRootItem->getChildren()); } @@ -36,7 +36,7 @@ void NavigationController::setContextProperties() mContext->setContextProperty("navigationList", mNavList); } -void NavigationController::add(const QString &path, NavigationItemModel *parentItem, bool isCircleDelegate) +void NavigationController::add(const QString &path, NavigationItemModel *parentItem) { auto dir = QDir(path); if(!dir.exists()) return; @@ -50,10 +50,9 @@ void NavigationController::add(const QString &path, NavigationItemModel *parentI item->deleteLater(); continue; } - item->setCircleDelegate(isCircleDelegate); connect(item, &NavigationItemModel::clicked, this, &NavigationController::onNavigationRequest); parentItem->appendChild(item); - add(item->getPath(), item, false); + add(item->getPath(), item); } } diff --git a/LenaPi/controllers/NavigationController.h b/LenaPi/controllers/NavigationController.h index 709556d..2576ba1 100644 --- a/LenaPi/controllers/NavigationController.h +++ b/LenaPi/controllers/NavigationController.h @@ -19,7 +19,7 @@ public: private: void setContextProperties(); - void add(const QString & path, NavigationItemModel* parentItem, bool isCircleDelegate); + void add(const QString & path, NavigationItemModel* parentItem); NavigationItemModel* mRootItem; NavigationListModel* mNavList; diff --git a/LenaPi/main.qml b/LenaPi/main.qml index 47011d1..3826654 100644 --- a/LenaPi/main.qml +++ b/LenaPi/main.qml @@ -16,46 +16,9 @@ Window { source: "qrc:/background" } - RoundButton{ - id: back - - anchors.top: parent.top - anchors.left: parent.left - anchors.margins: 20 - - visible: navigationList.pIsBackVisible - - onClicked: navigationList.navigateBack(); - } - - Rectangle{ - anchors.left: parent.left - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - - height: 210 - - color: "#99ffffff" - - ListView{ - id: circleList - anchors.left: parent.left - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - anchors.margins: 20 - - height: parent.height - 40 - - model: navigationList.pModelItems - spacing: 20 - orientation: ListView.Horizontal - delegate: - NavigationListDelegate{ - id: delegate - height: parent.height - model: navigationList.pModelItems[index] - } - } + Loader{ + anchors.fill: parent + source: "Navigation.qml" } } diff --git a/LenaPi/models/NavigationItemModel.cpp b/LenaPi/models/NavigationItemModel.cpp index 1263d19..298c546 100644 --- a/LenaPi/models/NavigationItemModel.cpp +++ b/LenaPi/models/NavigationItemModel.cpp @@ -45,15 +45,7 @@ bool NavigationItemModel::setPath(const QString &path) bool NavigationItemModel::isCircleDelegate() const { - return mIsCircleDelegate; -} - -void NavigationItemModel::setCircleDelegate(bool value) -{ - if(value != mIsCircleDelegate){ - mIsCircleDelegate = value; - emit isCircleDelegateChanged(); - } + return hasChildren(); } bool NavigationItemModel::isRoot() const diff --git a/LenaPi/models/NavigationItemModel.h b/LenaPi/models/NavigationItemModel.h index ce74cda..99df83b 100644 --- a/LenaPi/models/NavigationItemModel.h +++ b/LenaPi/models/NavigationItemModel.h @@ -42,7 +42,6 @@ public: private: QString mPath = QString(""); QString mImageSource; - bool mIsCircleDelegate = false; QList mChildren = QList(); NavigationItemModel* mParentItem; diff --git a/LenaPi/qml.qrc b/LenaPi/qml.qrc index c5bae7c..06ea4f2 100644 --- a/LenaPi/qml.qrc +++ b/LenaPi/qml.qrc @@ -5,5 +5,6 @@ NavigationListDelegate.qml MyScrollView.qml RoundButton.qml + Navigation.qml