Skycoder42
7 years ago
19 changed files with 262 additions and 14 deletions
@ -0,0 +1,31 @@ |
|||||
|
#include "drawerviewmodel.h" |
||||
|
|
||||
|
#include "sampleviewmodel.h" |
||||
|
|
||||
|
DrawerViewModel::DrawerViewModel(QObject *parent) : |
||||
|
ViewModel(parent), |
||||
|
_navModel(new QStandardItemModel(0, 1, this)) |
||||
|
{ |
||||
|
_navModel->appendRow(new QStandardItem(tr("Main Sample"))); |
||||
|
} |
||||
|
|
||||
|
DrawerViewModel::~DrawerViewModel() |
||||
|
{ |
||||
|
qInfo(Q_FUNC_INFO); |
||||
|
} |
||||
|
|
||||
|
QStandardItemModel *DrawerViewModel::navModel() const |
||||
|
{ |
||||
|
return _navModel; |
||||
|
} |
||||
|
|
||||
|
void DrawerViewModel::open(int index) |
||||
|
{ |
||||
|
switch (index) { |
||||
|
case 0: |
||||
|
show<SampleViewModel>(); |
||||
|
break; |
||||
|
default: |
||||
|
break; |
||||
|
} |
||||
|
} |
@ -0,0 +1,26 @@ |
|||||
|
#ifndef DRAWERVIEWMODEL_H |
||||
|
#define DRAWERVIEWMODEL_H |
||||
|
|
||||
|
#include <QtGui/QStandardItemModel> |
||||
|
#include <QtMvvmCore/ViewModel> |
||||
|
|
||||
|
class DrawerViewModel : public QtMvvm::ViewModel |
||||
|
{ |
||||
|
Q_OBJECT |
||||
|
|
||||
|
Q_PROPERTY(QStandardItemModel* navModel READ navModel CONSTANT) |
||||
|
|
||||
|
public: |
||||
|
Q_INVOKABLE explicit DrawerViewModel(QObject *parent = nullptr); |
||||
|
~DrawerViewModel(); |
||||
|
|
||||
|
QStandardItemModel* navModel() const; |
||||
|
|
||||
|
public Q_SLOTS: |
||||
|
void open(int index); |
||||
|
|
||||
|
private: |
||||
|
QStandardItemModel* _navModel; |
||||
|
}; |
||||
|
|
||||
|
#endif // DRAWERVIEWMODEL_H
|
@ -0,0 +1,10 @@ |
|||||
|
#include "tabviewmodel.h" |
||||
|
|
||||
|
TabViewModel::TabViewModel(QObject *parent) : |
||||
|
ViewModel(parent) |
||||
|
{} |
||||
|
|
||||
|
TabViewModel::~TabViewModel() |
||||
|
{ |
||||
|
qInfo(Q_FUNC_INFO); |
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
#ifndef TABVIEWMODEL_H |
||||
|
#define TABVIEWMODEL_H |
||||
|
|
||||
|
#include <QtMvvmCore/ViewModel> |
||||
|
|
||||
|
class TabViewModel : public QtMvvm::ViewModel |
||||
|
{ |
||||
|
Q_OBJECT |
||||
|
|
||||
|
public: |
||||
|
Q_INVOKABLE explicit TabViewModel(QObject *parent = nullptr); |
||||
|
~TabViewModel(); |
||||
|
}; |
||||
|
|
||||
|
#endif // TABVIEWMODEL_H
|
@ -0,0 +1,26 @@ |
|||||
|
import QtQuick 2.10 |
||||
|
import QtQuick.Controls 2.3 |
||||
|
import de.skycoder42.QtMvvm.Sample 1.0 |
||||
|
|
||||
|
ListView { |
||||
|
id: drawerView |
||||
|
|
||||
|
property DrawerViewModel viewModel: null |
||||
|
property Drawer drawer: null |
||||
|
|
||||
|
model: viewModel.navModel |
||||
|
anchors.fill: parent |
||||
|
clip: true |
||||
|
|
||||
|
ScrollBar.vertical: ScrollBar {} |
||||
|
|
||||
|
delegate: ItemDelegate { |
||||
|
width: parent.width |
||||
|
text: viewModel.navModel.data(viewModel.navModel.index(index, 0)) //because "display" is not accessible |
||||
|
|
||||
|
onClicked: { |
||||
|
viewModel.open(index); |
||||
|
drawer.close(); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,59 @@ |
|||||
|
import QtQuick 2.10 |
||||
|
import QtQuick.Controls 2.3 |
||||
|
import QtQuick.Layouts 1.3 |
||||
|
import de.skycoder42.QtMvvm.Core 1.0 |
||||
|
import de.skycoder42.QtMvvm.Quick 1.0 |
||||
|
import de.skycoder42.quickextras 2.0 |
||||
|
import de.skycoder42.QtMvvm.Sample 1.0 |
||||
|
|
||||
|
Page { |
||||
|
id: tabView |
||||
|
property TabViewModel viewModel: null |
||||
|
|
||||
|
header: ActionBar { |
||||
|
id: bar |
||||
|
showMenuButton: true |
||||
|
//showMenuAsBack: true |
||||
|
title: qsTr("Sample") |
||||
|
|
||||
|
onMenuButtonClicked: QuickPresenter.toggleDrawer() |
||||
|
|
||||
|
tabBar: TabBar { |
||||
|
id: tabBar |
||||
|
currentIndex: swipe.currentIndex |
||||
|
|
||||
|
TabButton { |
||||
|
text: "Test 1" |
||||
|
} |
||||
|
TabButton { |
||||
|
text: "Test 2" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
PresenterProgress {} |
||||
|
|
||||
|
SwipeView { |
||||
|
id: swipe |
||||
|
anchors.fill: parent |
||||
|
currentIndex: bar.tabBarItem.currentIndex |
||||
|
|
||||
|
Pane { |
||||
|
id: firstPage |
||||
|
|
||||
|
Switch { |
||||
|
anchors.centerIn: parent |
||||
|
checked: true |
||||
|
text: qsTr("Click me!") |
||||
|
} |
||||
|
} |
||||
|
Pane { |
||||
|
id: secondPage |
||||
|
|
||||
|
Switch { |
||||
|
anchors.centerIn: parent |
||||
|
text: qsTr("Click me, too!") |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue