mirror of
https://github.com/Lurkki14/tuxclocker.git
synced 2025-02-25 18:55:24 -06:00
qt: update ReadableWidget
This commit is contained in:
parent
6c969835c3
commit
d29249e0cf
@ -8,6 +8,7 @@ moc_files = qt5.preprocess(moc_headers : [ 'MainWindow.h',
|
||||
'widgets/EnumEditor.h',
|
||||
'widgets/ReadableWidget.h',
|
||||
'widgets/ReadableBrowser.h',
|
||||
'widgets/ReadableDisplay.h',
|
||||
'data/AssignableManager.h',
|
||||
'data/AssignableEditorDelegate.h'],
|
||||
dependencies : qt5_dep)
|
||||
@ -19,6 +20,7 @@ sources = ['main.cpp',
|
||||
'widgets/EnumEditor.cpp',
|
||||
'widgets/ReadableWidget.cpp',
|
||||
'widgets/ReadableBrowser.cpp',
|
||||
'widgets/ReadableDisplay.cpp',
|
||||
'data/AssignableData.cpp',
|
||||
'data/AssignableEditorDelegate.cpp',
|
||||
'data/AssignableManager.cpp',
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "ReadableBrowser.h"
|
||||
|
||||
#include <QMouseEvent>
|
||||
#include <QDebug>
|
||||
|
||||
ReadableBrowser::ReadableBrowser(ReadableManager *readableManager, QWidget *parent) : QWidget(parent) {
|
||||
@ -30,32 +31,54 @@ void ReadableBrowser::genBrowserTree(QTreeView *treeView, QStandardItemModel *it
|
||||
if (node->name) {
|
||||
qDebug() << node->name;
|
||||
}
|
||||
addBrowserItem(node, item);
|
||||
QStandardItem *newItem = addBrowserItem(node, item);
|
||||
|
||||
if (!node->constant && node->value_callback) {
|
||||
tc_readable_result_t res = node->value_callback(node);
|
||||
qDebug() << res.valid << res.data.uint_value;
|
||||
}
|
||||
|
||||
for (uint16_t i = 0; i < node->children_count; i++) {
|
||||
traverse(node->children_nodes[i], item);
|
||||
traverse(node->children_nodes[i], newItem);
|
||||
}
|
||||
};
|
||||
//tc_readable_node_t *root = m_readableManager->root();
|
||||
QVector <tc_readable_node_t*> rootNodes = m_readableManager->rootNodes();
|
||||
|
||||
for (tc_readable_node_t *node : m_readableManager->rootNodes()) {
|
||||
traverse(node, parentItem);
|
||||
// Start traversal from the first subitems of the root item
|
||||
for (uint16_t i = 0; i < node->children_count; i++) {
|
||||
traverse(node->children_nodes[i], parentItem);
|
||||
}
|
||||
}
|
||||
|
||||
treeView->setModel(itemModel);
|
||||
|
||||
treeView->setDragEnabled(true);
|
||||
}
|
||||
|
||||
void ReadableBrowser::addBrowserItem(tc_readable_node_t* node, QStandardItem *parent) {
|
||||
QStandardItem *ReadableBrowser::addBrowserItem(tc_readable_node_t* node, QStandardItem *parent) {
|
||||
// Don't add item for constants
|
||||
if (node->constant) {
|
||||
return;
|
||||
return nullptr;
|
||||
}
|
||||
if (!node->name) {
|
||||
return;
|
||||
return nullptr;
|
||||
}
|
||||
QStandardItem *item = new QStandardItem;
|
||||
item->setText(node->name);
|
||||
|
||||
item->setDragEnabled(true);
|
||||
|
||||
parent->appendRow(item);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
void ReadableBrowser::mousePressEvent(QMouseEvent *event) {
|
||||
/*if (event->button() == Qt::LeftButton) {
|
||||
QDrag *drag = new QDrag(this);
|
||||
Qt::DropAction dropAction = drag->exec(Qt::MoveAction);
|
||||
qDebug() << drag->mimeData();
|
||||
}*/
|
||||
}
|
||||
|
@ -3,14 +3,19 @@
|
||||
#include <ReadableManager.h>
|
||||
|
||||
#include <QWidget>
|
||||
#include <QDrag>
|
||||
#include <QDropEvent>
|
||||
#include <QVBoxLayout>
|
||||
#include <QTreeView>
|
||||
#include <QStandardItemModel>
|
||||
|
||||
class ReadableBrowser : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ReadableBrowser(ReadableManager *readableManager, QWidget *parent = nullptr);
|
||||
~ReadableBrowser();
|
||||
signals:
|
||||
void itemDragStarted(QString &text);
|
||||
private:
|
||||
ReadableManager *m_readableManager; // ReadableManager instance that the browser is generated from
|
||||
|
||||
@ -19,5 +24,7 @@ private:
|
||||
QStandardItemModel *m_browserModel;
|
||||
|
||||
void genBrowserTree(QTreeView *treeView, QStandardItemModel *itemModel);
|
||||
void addBrowserItem(tc_readable_node_t* node, QStandardItem *parent); // Create a new item from 'node'
|
||||
QStandardItem *addBrowserItem(tc_readable_node_t* node, QStandardItem *parent); // Return a newly created item that is a child of 'parent'
|
||||
|
||||
void mousePressEvent(QMouseEvent *event); // Start the drag event for an item
|
||||
};
|
||||
|
@ -13,7 +13,10 @@ ReadableWidget::ReadableWidget(QWidget *parent) : QWidget(parent) {
|
||||
|
||||
m_readableBrowser = new ReadableBrowser(m_readableManager);
|
||||
|
||||
m_readableDisplay = new ReadableDisplay;
|
||||
|
||||
m_tabWidget->addTab(m_readableBrowser, "Browser");
|
||||
m_tabWidget->addTab(m_readableDisplay, "Display");
|
||||
|
||||
m_mainLayout->addWidget(m_tabWidget);
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <QVBoxLayout>
|
||||
|
||||
#include "ReadableBrowser.h"
|
||||
#include "ReadableDisplay.h"
|
||||
#include <ReadableManager.h>
|
||||
|
||||
class ReadableWidget : public QWidget {
|
||||
@ -20,4 +21,5 @@ private:
|
||||
QVBoxLayout *m_mainLayout;
|
||||
|
||||
ReadableManager *m_readableManager;
|
||||
ReadableDisplay *m_readableDisplay;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user