initial qml stuff
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
parent
05d9c2d864
commit
ac33b150fa
@ -207,7 +207,7 @@ endif()
|
|||||||
include(QtVersionlessBackport)
|
include(QtVersionlessBackport)
|
||||||
if(Launcher_QT_VERSION_MAJOR EQUAL 5)
|
if(Launcher_QT_VERSION_MAJOR EQUAL 5)
|
||||||
set(QT_VERSION_MAJOR 5)
|
set(QT_VERSION_MAJOR 5)
|
||||||
find_package(Qt5 REQUIRED COMPONENTS Core Widgets Concurrent Network Test Xml)
|
find_package(Qt5 REQUIRED COMPONENTS Core Widgets Concurrent Network QuickWidgets Test Xml)
|
||||||
|
|
||||||
if(NOT Launcher_FORCE_BUNDLED_LIBS)
|
if(NOT Launcher_FORCE_BUNDLED_LIBS)
|
||||||
find_package(QuaZip-Qt5 1.3 QUIET)
|
find_package(QuaZip-Qt5 1.3 QUIET)
|
||||||
@ -221,7 +221,7 @@ if(Launcher_QT_VERSION_MAJOR EQUAL 5)
|
|||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUNICODE -D_UNICODE")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUNICODE -D_UNICODE")
|
||||||
elseif(Launcher_QT_VERSION_MAJOR EQUAL 6)
|
elseif(Launcher_QT_VERSION_MAJOR EQUAL 6)
|
||||||
set(QT_VERSION_MAJOR 6)
|
set(QT_VERSION_MAJOR 6)
|
||||||
find_package(Qt6 REQUIRED COMPONENTS Core CoreTools Widgets Concurrent Network Test Xml Core5Compat)
|
find_package(Qt6 REQUIRED COMPONENTS Core CoreTools Widgets Concurrent Network QuickWidgets Test Xml Core5Compat)
|
||||||
list(APPEND Launcher_QT_LIBS Qt6::Core5Compat)
|
list(APPEND Launcher_QT_LIBS Qt6::Core5Compat)
|
||||||
|
|
||||||
if(NOT Launcher_FORCE_BUNDLED_LIBS)
|
if(NOT Launcher_FORCE_BUNDLED_LIBS)
|
||||||
|
@ -611,6 +611,11 @@ SET(LAUNCHER_SOURCES
|
|||||||
icons/MMCIcon.cpp
|
icons/MMCIcon.cpp
|
||||||
icons/IconList.h
|
icons/IconList.h
|
||||||
icons/IconList.cpp
|
icons/IconList.cpp
|
||||||
|
icons/IconImageProvider.h
|
||||||
|
icons/IconImageProvider.cpp
|
||||||
|
|
||||||
|
# GUI
|
||||||
|
ui/resources.qrc
|
||||||
|
|
||||||
# GUI - windows
|
# GUI - windows
|
||||||
ui/GuiUtil.h
|
ui/GuiUtil.h
|
||||||
@ -999,6 +1004,7 @@ target_link_libraries(Launcher_logic
|
|||||||
Qt${QT_VERSION_MAJOR}::Network
|
Qt${QT_VERSION_MAJOR}::Network
|
||||||
Qt${QT_VERSION_MAJOR}::Concurrent
|
Qt${QT_VERSION_MAJOR}::Concurrent
|
||||||
Qt${QT_VERSION_MAJOR}::Gui
|
Qt${QT_VERSION_MAJOR}::Gui
|
||||||
|
Qt${QT_VERSION_MAJOR}::QuickWidgets
|
||||||
Qt${QT_VERSION_MAJOR}::Widgets
|
Qt${QT_VERSION_MAJOR}::Widgets
|
||||||
${Launcher_QT_LIBS}
|
${Launcher_QT_LIBS}
|
||||||
)
|
)
|
||||||
|
@ -137,6 +137,17 @@ int InstanceList::columnCount(const QModelIndex& parent) const
|
|||||||
return ColumnCount;
|
return ColumnCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QHash<int, QByteArray> InstanceList::roleNames() const
|
||||||
|
{
|
||||||
|
QHash<int, QByteArray> roles;
|
||||||
|
roles[SortRole] = "sort";
|
||||||
|
roles[IconRole] = "icon";
|
||||||
|
roles[NameRole] = "name";
|
||||||
|
roles[CategoryRole] = "category";
|
||||||
|
roles[InstanceIDRole] = "instanceId";
|
||||||
|
return roles;
|
||||||
|
}
|
||||||
|
|
||||||
QVariant InstanceList::headerData(int section, Qt::Orientation orientation, int role) const
|
QVariant InstanceList::headerData(int section, Qt::Orientation orientation, int role) const
|
||||||
{
|
{
|
||||||
if (role != Qt::DisplayRole) {
|
if (role != Qt::DisplayRole) {
|
||||||
@ -251,11 +262,19 @@ QVariant InstanceList::data(const QModelIndex& index, int role) const
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case IconRole: {
|
||||||
|
return inst->iconKey();
|
||||||
|
}
|
||||||
|
|
||||||
|
case NameRole: {
|
||||||
|
return inst->name();
|
||||||
|
}
|
||||||
|
|
||||||
case InstanceIDRole: {
|
case InstanceIDRole: {
|
||||||
return inst->id();
|
return inst->id();
|
||||||
}
|
}
|
||||||
|
|
||||||
case GroupRole: {
|
case CategoryRole: {
|
||||||
return instanceGroup;
|
return instanceGroup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -337,7 +356,7 @@ void InstanceList::setInstanceGroup(const InstancePtr inst, const GroupId& name)
|
|||||||
if (changed) {
|
if (changed) {
|
||||||
m_groupNameCache.insert(name);
|
m_groupNameCache.insert(name);
|
||||||
auto idx = getInstIndex(inst.get());
|
auto idx = getInstIndex(inst.get());
|
||||||
emit dataChanged(index(idx, NameColumn), index(idx, NameColumn), { GroupRole });
|
emit dataChanged(index(idx, NameColumn), index(idx, NameColumn), { CategoryRole });
|
||||||
saveGroupList();
|
saveGroupList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -377,7 +396,7 @@ void InstanceList::deleteGroup(const QString& name)
|
|||||||
removed = true;
|
removed = true;
|
||||||
auto idx = getInstIndex(instance.get());
|
auto idx = getInstIndex(instance.get());
|
||||||
if (idx > 0) {
|
if (idx > 0) {
|
||||||
emit dataChanged(index(idx, NameColumn), index(idx, NameColumn), { GroupRole });
|
emit dataChanged(index(idx, NameColumn), index(idx, NameColumn), { CategoryRole });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,9 @@ class InstanceList : public QAbstractTableModel {
|
|||||||
ColumnCount
|
ColumnCount
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AdditionalRoles { SortRole = Qt::UserRole + 1, GroupRole, InstanceIDRole };
|
enum AdditionalRoles { SortRole = Qt::UserRole + 1, IconRole, NameRole, CategoryRole, InstanceIDRole };
|
||||||
|
|
||||||
|
QHash<int, QByteArray> roleNames() const override;
|
||||||
|
|
||||||
InstancePtr at(int i) const { return m_instances.at(i); }
|
InstancePtr at(int i) const { return m_instances.at(i); }
|
||||||
|
|
||||||
|
14
launcher/icons/IconImageProvider.cpp
Normal file
14
launcher/icons/IconImageProvider.cpp
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#include "IconImageProvider.h"
|
||||||
|
|
||||||
|
IconImageProvider::IconImageProvider(std::shared_ptr<IconList> iconList, int iconSize) : QQuickImageProvider(QQuickImageProvider::Pixmap), m_iconList(iconList), m_iconSize(iconSize)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QPixmap IconImageProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
|
||||||
|
{
|
||||||
|
if (size)
|
||||||
|
*size = QSize(m_iconSize, m_iconSize);
|
||||||
|
|
||||||
|
QIcon i = m_iconList->getIcon(id);
|
||||||
|
return i.pixmap(requestedSize.width() > 0 ? requestedSize.width() : m_iconSize, requestedSize.height() > 0 ? requestedSize.height() : m_iconSize);
|
||||||
|
}
|
16
launcher/icons/IconImageProvider.h
Normal file
16
launcher/icons/IconImageProvider.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "IconList.h"
|
||||||
|
|
||||||
|
#include <QQuickImageProvider>
|
||||||
|
|
||||||
|
class IconImageProvider : public QQuickImageProvider
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
IconImageProvider(std::shared_ptr<IconList> iconList, int iconSize = 48);
|
||||||
|
|
||||||
|
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::shared_ptr<IconList> m_iconList;
|
||||||
|
int m_iconSize;
|
||||||
|
};
|
@ -76,6 +76,7 @@ int main(int argc, char *argv[])
|
|||||||
Q_INIT_RESOURCE(backgrounds);
|
Q_INIT_RESOURCE(backgrounds);
|
||||||
Q_INIT_RESOURCE(documents);
|
Q_INIT_RESOURCE(documents);
|
||||||
Q_INIT_RESOURCE(prismlauncher);
|
Q_INIT_RESOURCE(prismlauncher);
|
||||||
|
Q_INIT_RESOURCE(resources);
|
||||||
|
|
||||||
Q_INIT_RESOURCE(pe_dark);
|
Q_INIT_RESOURCE(pe_dark);
|
||||||
Q_INIT_RESOURCE(pe_light);
|
Q_INIT_RESOURCE(pe_light);
|
||||||
|
@ -50,7 +50,7 @@ IconPickerDialog::IconPickerDialog(QWidget *parent, int iconSize)
|
|||||||
contentsWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
contentsWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||||
contentsWidget->setFrameStyle(QFrame::NoFrame);
|
contentsWidget->setFrameStyle(QFrame::NoFrame);
|
||||||
contentsWidget->setGridSize(QSize(m_iconSize * 2, m_iconSize * 2));
|
contentsWidget->setGridSize(QSize(m_iconSize * 2, m_iconSize * 2));
|
||||||
contentsWidget->setItemDelegate(new InstanceDelegate(this, m_iconSize, true));
|
contentsWidget->setItemDelegate(new InstanceDelegate(this, m_iconSize));
|
||||||
contentsWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
contentsWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
|
|
||||||
// contentsWidget->setAcceptDrops(true);
|
// contentsWidget->setAcceptDrops(true);
|
||||||
|
@ -19,8 +19,8 @@
|
|||||||
#include "InstanceDelegate.h"
|
#include "InstanceDelegate.h"
|
||||||
#include "InstanceList.h"
|
#include "InstanceList.h"
|
||||||
|
|
||||||
InstanceDelegate::InstanceDelegate(QObject* parent, int iconSize, bool isGrid)
|
InstanceDelegate::InstanceDelegate(QObject* parent, int iconSize)
|
||||||
: QStyledItemDelegate(parent), m_iconSize(iconSize), m_isGrid(isGrid)
|
: QStyledItemDelegate(parent), m_iconSize(iconSize)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void InstanceDelegate::initStyleOption(QStyleOptionViewItem* option, const QModelIndex& index) const
|
void InstanceDelegate::initStyleOption(QStyleOptionViewItem* option, const QModelIndex& index) const
|
||||||
@ -28,9 +28,5 @@ void InstanceDelegate::initStyleOption(QStyleOptionViewItem* option, const QMode
|
|||||||
QStyledItemDelegate::initStyleOption(option, index);
|
QStyledItemDelegate::initStyleOption(option, index);
|
||||||
if (index.column() == InstanceList::NameColumn) {
|
if (index.column() == InstanceList::NameColumn) {
|
||||||
option->decorationSize = QSize(m_iconSize, m_iconSize);
|
option->decorationSize = QSize(m_iconSize, m_iconSize);
|
||||||
if (m_isGrid) {
|
|
||||||
// FIXME: kinda hacky way to add vertical padding. This assumes that the icon is square in the first place
|
|
||||||
option->decorationSize.rheight() += 8;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,11 +24,10 @@ class InstanceDelegate : public QStyledItemDelegate {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
InstanceDelegate(QObject* parent = 0, int iconSize = 48, bool isGrid = false);
|
InstanceDelegate(QObject* parent = 0, int iconSize = 48);
|
||||||
|
|
||||||
void initStyleOption(QStyleOptionViewItem* option, const QModelIndex& index) const override;
|
void initStyleOption(QStyleOptionViewItem* option, const QModelIndex& index) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_iconSize;
|
int m_iconSize;
|
||||||
bool m_isGrid;
|
|
||||||
};
|
};
|
||||||
|
@ -24,3 +24,21 @@
|
|||||||
|
|
||||||
// Placeholder model, as we might need this in the future
|
// Placeholder model, as we might need this in the future
|
||||||
InstanceGridProxyModel::InstanceGridProxyModel(QObject* parent) : InstanceTableProxyModel(parent) {}
|
InstanceGridProxyModel::InstanceGridProxyModel(QObject* parent) : InstanceTableProxyModel(parent) {}
|
||||||
|
|
||||||
|
QVariant InstanceGridProxyModel::data(const QModelIndex& index, int role) const
|
||||||
|
{
|
||||||
|
QVariant data = InstanceTableProxyModel::data(index, role);
|
||||||
|
QVariant displayData = data;
|
||||||
|
if (role != Qt::DisplayRole)
|
||||||
|
displayData = InstanceTableProxyModel::data(index, Qt::DisplayRole);
|
||||||
|
|
||||||
|
switch (role) {
|
||||||
|
case InstanceList::IconRole: {
|
||||||
|
QString iconKey = data.toString();
|
||||||
|
if (iconKey.isEmpty())
|
||||||
|
break;
|
||||||
|
return "image://instance/" + iconKey;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
@ -25,4 +25,7 @@ class InstanceGridProxyModel : public InstanceTableProxyModel {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
InstanceGridProxyModel(QObject* parent = 0);
|
InstanceGridProxyModel(QObject* parent = 0);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
QVariant data(const QModelIndex& index, int role) const override;
|
||||||
};
|
};
|
||||||
|
49
launcher/ui/instanceview/InstancesGrid.qml
Normal file
49
launcher/ui/instanceview/InstancesGrid.qml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import QtQuick 2.0
|
||||||
|
|
||||||
|
GridView {
|
||||||
|
id: grid
|
||||||
|
model: instances
|
||||||
|
anchors.fill: parent
|
||||||
|
cellWidth: iconSize*2
|
||||||
|
cellHeight: iconSize*2
|
||||||
|
|
||||||
|
highlight: Rectangle {
|
||||||
|
width: grid.cellWidth; height: grid.cellHeight
|
||||||
|
color: "lightsteelblue"; radius: 5
|
||||||
|
x: grid.currentItem.x
|
||||||
|
y: grid.currentItem.y
|
||||||
|
Behavior on x { SmoothedAnimation { duration: 150 } }
|
||||||
|
Behavior on y { SmoothedAnimation { duration: 150 } }
|
||||||
|
}
|
||||||
|
|
||||||
|
interactive: true
|
||||||
|
focus: true
|
||||||
|
|
||||||
|
delegate: Item {
|
||||||
|
required property int index
|
||||||
|
required property string name
|
||||||
|
required property string icon
|
||||||
|
width: iconSize*2
|
||||||
|
height: iconSize*2
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: currentIndex = index;
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: icon
|
||||||
|
width: iconSize
|
||||||
|
height: iconSize
|
||||||
|
anchors.top: parent.top
|
||||||
|
source: parent.icon
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.top: icon.bottom
|
||||||
|
text: parent.name
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -27,11 +27,14 @@
|
|||||||
|
|
||||||
#include "InstanceDelegate.h"
|
#include "InstanceDelegate.h"
|
||||||
#include "InstanceList.h"
|
#include "InstanceList.h"
|
||||||
|
#include "icons/IconImageProvider.h"
|
||||||
#include "ui/instanceview/InstanceGridProxyModel.h"
|
#include "ui/instanceview/InstanceGridProxyModel.h"
|
||||||
#include "ui/instanceview/InstanceTableProxyModel.h"
|
#include "ui/instanceview/InstanceTableProxyModel.h"
|
||||||
|
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
|
#include <QQmlContext>
|
||||||
|
#include <QQmlEngine>
|
||||||
#include <QSize>
|
#include <QSize>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
|
|
||||||
@ -59,8 +62,8 @@ void InstancesView::switchDisplayMode(InstancesView::DisplayMode mode)
|
|||||||
QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||||
setCurrentWidget(m_table);
|
setCurrentWidget(m_table);
|
||||||
} else {
|
} else {
|
||||||
m_grid->selectionModel()->setCurrentIndex(m_gridProxy->mapFromSource(sourceIndex),
|
//m_grid->selectionModel()->setCurrentIndex(m_gridProxy->mapFromSource(sourceIndex),
|
||||||
QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
// QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||||
setCurrentWidget(m_grid);
|
setCurrentWidget(m_grid);
|
||||||
}
|
}
|
||||||
m_displayMode = mode;
|
m_displayMode = mode;
|
||||||
@ -92,7 +95,7 @@ void InstancesView::createTable()
|
|||||||
m_table = new QTableView(this);
|
m_table = new QTableView(this);
|
||||||
m_table->installEventFilter(this);
|
m_table->installEventFilter(this);
|
||||||
m_table->setModel(m_tableProxy);
|
m_table->setModel(m_tableProxy);
|
||||||
m_table->setItemDelegate(new InstanceDelegate(this, m_iconSize, false));
|
m_table->setItemDelegate(new InstanceDelegate(this, m_iconSize));
|
||||||
|
|
||||||
m_table->setTabKeyNavigation(false);
|
m_table->setTabKeyNavigation(false);
|
||||||
m_table->setSelectionMode(QAbstractItemView::SingleSelection);
|
m_table->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
@ -138,27 +141,18 @@ void InstancesView::createTable()
|
|||||||
|
|
||||||
void InstancesView::createGrid()
|
void InstancesView::createGrid()
|
||||||
{
|
{
|
||||||
m_grid = new QListView(this);
|
m_grid = new QQuickWidget(this);
|
||||||
|
m_grid->rootContext()->setContextProperty("instances", m_gridProxy);
|
||||||
|
m_grid->rootContext()->setContextProperty("iconSize", m_iconSize);
|
||||||
|
m_grid->engine()->addImageProvider("instance", new IconImageProvider(APPLICATION->icons(), m_iconSize));
|
||||||
|
m_grid->setResizeMode(QQuickWidget::SizeRootObjectToView);
|
||||||
|
m_grid->setSource(QUrl("qrc:/instanceview/InstancesGrid.qml"));
|
||||||
m_grid->installEventFilter(this);
|
m_grid->installEventFilter(this);
|
||||||
m_grid->setModel(m_gridProxy);
|
|
||||||
m_grid->setModelColumn(InstanceList::NameColumn);
|
|
||||||
m_grid->setItemDelegate(new InstanceDelegate(this, m_iconSize, true));
|
|
||||||
|
|
||||||
m_grid->setSelectionMode(QAbstractItemView::SingleSelection);
|
|
||||||
m_grid->setSelectionBehavior(QAbstractItemView::SelectRows);
|
|
||||||
m_grid->setEditTriggers(QAbstractItemView::EditKeyPressed);
|
|
||||||
m_grid->setCurrentIndex(QModelIndex());
|
|
||||||
m_grid->setContextMenuPolicy(Qt::CustomContextMenu);
|
m_grid->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
m_grid->setWordWrap(true);
|
m_grid->show();
|
||||||
m_grid->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
|
||||||
m_grid->setViewMode(QListView::IconMode);
|
|
||||||
m_grid->setMovement(QListView::Static);
|
|
||||||
m_grid->setResizeMode(QListView::Adjust);
|
|
||||||
m_grid->setFrameStyle(QFrame::NoFrame);
|
|
||||||
m_grid->setGridSize(QSize(m_iconSize * 2, m_iconSize * 2));
|
|
||||||
|
|
||||||
connect(m_grid, &QAbstractItemView::doubleClicked, this, &InstancesView::activateInstance);
|
//connect(m_grid, &QAbstractItemView::doubleClicked, this, &InstancesView::activateInstance);
|
||||||
connect(m_grid->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &InstancesView::currentRowChanged);
|
//connect(m_grid->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &InstancesView::currentRowChanged);
|
||||||
connect(m_grid, &QWidget::customContextMenuRequested, this, &InstancesView::contextMenuRequested);
|
connect(m_grid, &QWidget::customContextMenuRequested, this, &InstancesView::contextMenuRequested);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <QListView>
|
#include <QListView>
|
||||||
#include <QStackedWidget>
|
#include <QStackedWidget>
|
||||||
#include <QTableView>
|
#include <QTableView>
|
||||||
|
#include <QQuickWidget>
|
||||||
|
|
||||||
#include "BaseInstance.h"
|
#include "BaseInstance.h"
|
||||||
#include "InstanceList.h"
|
#include "InstanceList.h"
|
||||||
@ -41,7 +42,7 @@ class InstancesView : public QStackedWidget {
|
|||||||
QAbstractItemView* currentView()
|
QAbstractItemView* currentView()
|
||||||
{
|
{
|
||||||
if (m_displayMode == GridMode)
|
if (m_displayMode == GridMode)
|
||||||
return m_grid;
|
return nullptr; // TODO
|
||||||
return m_table;
|
return m_table;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +83,7 @@ class InstancesView : public QStackedWidget {
|
|||||||
DisplayMode m_displayMode = TableMode;
|
DisplayMode m_displayMode = TableMode;
|
||||||
|
|
||||||
QTableView* m_table;
|
QTableView* m_table;
|
||||||
QListView* m_grid;
|
QQuickWidget* m_grid;
|
||||||
InstanceTableProxyModel* m_tableProxy;
|
InstanceTableProxyModel* m_tableProxy;
|
||||||
InstanceGridProxyModel* m_gridProxy;
|
InstanceGridProxyModel* m_gridProxy;
|
||||||
InstanceList* m_instances;
|
InstanceList* m_instances;
|
||||||
|
5
launcher/ui/resources.qrc
Normal file
5
launcher/ui/resources.qrc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/">
|
||||||
|
<file>instanceview/InstancesGrid.qml</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
Loading…
x
Reference in New Issue
Block a user