Value Browser 3.3.0 - слабоват и глючен
Qt Solutions --- Property Browser - как ты и писал маловато функционала
=================
По поводу моего.
Основные Минусы:
1) Код пока закрыт. Начальство еще думает стоит ли его открывать.
2) Данный компонент писался врамках проекта MolQuest. Изначально на C++ Builder. Для максимальной переносимости были сделаны свои базовые классы работы со строками, списками итд.
На данный момент компонент перенесен на QT, но использует все те же базовые классы.
3) Пока очень примитивная система сигналов на изменение состояния свойств. Необходимо дорабатывать и перерабатывать!
4) Работа со строками не уникодная
5) Механизм сериализации полностью свой и не будет открыт! => Его необходимо будет делать заново.
=====
Что есть:
- Есть отдельно просмотрщик - TPropertyEditor.
И отдельно дерево свойств- TPETree
Можно сформировать сколько угодно TPETree и менять их в TPropertyEditor.
Собираем деревья TPETree из свойств имеющихся типов и устанавливаем в TPropertyEditor
- Все элементы дерева, в том числе секции, узлы, простые свойства, являются наследниками TPEProperty у которого практически все методы виртуальны. Можем отнаследовать свои классы свойст от TPEProperty или его потомков
- У любого узла/листа может быть CheckBox
- Имеются секции
- Любой уровень вложенности свойств
- Простые свойства с валидаторами (char, string, int, real, file, dir, ...)
- Другие простые свойства (boolean, list, simple, info, header)
- Обычные узлы со списком подузлов
- Радиогруппы
- простое свойство list с выпадающим списком(возможно с картинками)
- Списочные узлы TPEListNode. Узел с выпадающим списком где каждый элемент - нода (TPECustomNode). При выборе ноды ее подузлы становятся подузлами TPEListNode! На анимации показано как это происходит(например, в секции Output, свойство Format - TPEListNode)
- Подсветка некорректного значения в редакторе ввода в процессе ввода.
- Понятие активности свойсва. Свойство активно если оно не имеет состояния "disabled", оно либо не имеет CheckBox либо он включен, все его родительские узлы активны;
- Значение простого неактитивного свойства становится сереньким, что очень наглядно
- Все подузлы неактивного узла становятся серенькими, что очень наглядно
- Выбраный элемент радиогруппы можно редактировать как на нем самом, так и на его родителе!
- подсветка имени некоректно заданного свойства
- специальный флажек(! красный) у имени некоректно заданного свойства
- специальный флажек(! серый) у имени всех родителей некоректно заданного свойства, для быстрого его нахождения если узлы свернуты
- возможность скрывать, делать невидимыми свойства, это не влияет на их состояние активности! Можно например настроить как нужно какие-либо свойства, а затем скрыть их.
- возможность установки разделительныx линии мемежду свойствами(между именами, между значениями, между именами и значениями )
- свойства типа заголовочные
- режим у дерева TPETree "read only". Значения свойств изменить нельзя, но сворачивать/разворачивать узлы и скролировать можно.
- возможность задания состояния "read only" для любого свойства
- возможность задания состояния "disabled" для любого свойства
- возможность внешней блокировки "ExtDisabled" свойства. Связка типа Контролирующее -> Контролируемые свойства. Если Контролирующее свойство становится неактивным, то Контролируемые свойства блокируются и наоборот.
- возможность задать для любого свойства числовой ID
- возможность задать для любого свойства стоки описания
- возможность создания своих редактров ввода и привязки их своим отнаследованным свойствам
ИТД.