DYTSrouce/src/ui/PropertyBrowser.h

59 lines
1.8 KiB
C
Raw Normal View History

2025-01-04 04:12:51 +00:00
#pragma once
#include <QWidget>
#include <QMap>
2025-10-12 14:14:16 +00:00
#include "workspace/FileEntry.h"
2025-01-04 04:12:51 +00:00
class QtProperty;
class PropertyBrowser : public QWidget
{
Q_OBJECT
public:
explicit PropertyBrowser(QWidget *parent = nullptr);
~PropertyBrowser() override;
void AttachDock(class DockWidget* dockWidget);
void OnWorkSpaceChange(const QVariant& value);
void OnEntityChange(const QVariant& value);
2025-10-27 14:58:41 +00:00
void OnWorkspaceFilesChanged(enum class FileEntryType type, std::shared_ptr<FileEntry> fileEntry);
2025-01-04 04:12:51 +00:00
void Test();
private:
void InitUI();
void InitPropertyManager();
void InitComponentPropertyManager();
void addProperty(QtProperty* property, const QString& id);
class QtComponentPropertyManager* GetCompononetPropertyManager(const QString& id);
private:
class QtTreePropertyBrowser* browser_{ nullptr };
2025-06-27 16:23:58 +00:00
class QtIntPropertyManager* intManager_{ nullptr };
class QtBoolPropertyManager* boolManager_{ nullptr };
2025-01-04 04:12:51 +00:00
class QtDoublePropertyManager* doubleManager_{ nullptr };
class QtStringPropertyManager* stringManager_{ nullptr };
class QtColorPropertyManager* colorManager_{ nullptr };
class QtFontPropertyManager* fontManager_{ nullptr };
class QtPointPropertyManager* pointManager_{ nullptr };
class QtSizePropertyManager* sizeManager_{ nullptr };
class QtModelBasePropertyManager* modelBaseManager_{ nullptr };
class QtWorkspacePropertyManager* workSpaceManager_{ nullptr };
class QtEntityPropertyManager* entityManager_{ nullptr };
QMap<QtProperty*, QString> propertyToId_;
QMap<QString, QtProperty*> idToProperty_;
QMap<QString, bool> idToExpanded_;
QMap<QString, class QtComponentPropertyManager*> componetManager_;
2025-10-12 14:14:16 +00:00
// Track current workspace for real-time refresh
class WorkSpace* currentWorkspace_{ nullptr };
2025-01-04 04:12:51 +00:00
};