mirror of https://github.com/YosysHQ/nextpnr.git
Use QtPropertyBrowser for Qt5/6
This commit is contained in:
parent
c7836625b9
commit
f8bf8c1807
|
|
@ -1,11 +1,3 @@
|
||||||
CMAKE_MINIMUM_REQUIRED(VERSION 3.13)
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.13)
|
||||||
|
|
||||||
PROJECT(QtPropertyBrowser)
|
PROJECT(QtPropertyBrowser)
|
||||||
|
|
||||||
##################### Look for required libraries ######################
|
|
||||||
|
|
||||||
# Add QT dependencies
|
|
||||||
FIND_PACKAGE(Qt5Widgets REQUIRED)
|
|
||||||
|
|
||||||
######################### Add Primary Targets ##########################
|
|
||||||
ADD_SUBDIRECTORY(src)
|
ADD_SUBDIRECTORY(src)
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,13 @@ set(_RESOURCES
|
||||||
qtpropertybrowser.qrc
|
qtpropertybrowser.qrc
|
||||||
)
|
)
|
||||||
|
|
||||||
QT5_WRAP_UI(_UI_SRCS ${_UI_FORMS})
|
if (Qt6_FOUND)
|
||||||
QT5_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES})
|
QT6_WRAP_UI(_UI_SRCS ${_UI_FORMS})
|
||||||
|
QT6_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES})
|
||||||
|
else()
|
||||||
|
QT5_WRAP_UI(_UI_SRCS ${_UI_FORMS})
|
||||||
|
QT5_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES})
|
||||||
|
endif()
|
||||||
|
|
||||||
set(TARGET_NAME ${PROJECT_NAME})
|
set(TARGET_NAME ${PROJECT_NAME})
|
||||||
|
|
||||||
|
|
@ -38,4 +43,8 @@ if (MSVC)
|
||||||
target_compile_options(${TARGET_NAME} PRIVATE /wd4457 /wd4718)
|
target_compile_options(${TARGET_NAME} PRIVATE /wd4457 /wd4718)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(${TARGET_NAME} Qt5::Widgets)
|
if (Qt6_FOUND)
|
||||||
|
target_link_libraries(${TARGET_NAME} Qt6::Widgets)
|
||||||
|
else()
|
||||||
|
target_link_libraries(${TARGET_NAME} Qt5::Widgets)
|
||||||
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
#pragma once
|
||||||
|
#include <QtGlobal>
|
||||||
|
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
#include <QRegularExpression>
|
||||||
|
#include <QRegularExpressionValidator>
|
||||||
|
|
||||||
|
// QRegExp / QRegExpValidator aliases
|
||||||
|
using QRegExp = QRegularExpression;
|
||||||
|
using QRegExpValidator = QRegularExpressionValidator;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -1545,7 +1545,11 @@ QtCharEdit::QtCharEdit(QWidget *parent)
|
||||||
{
|
{
|
||||||
QHBoxLayout *layout = new QHBoxLayout(this);
|
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||||
layout->addWidget(m_lineEdit);
|
layout->addWidget(m_lineEdit);
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
layout->setContentsMargins(0,0,0,0);
|
||||||
|
#else
|
||||||
layout->setMargin(0);
|
layout->setMargin(0);
|
||||||
|
#endif
|
||||||
m_lineEdit->installEventFilter(this);
|
m_lineEdit->installEventFilter(this);
|
||||||
m_lineEdit->setReadOnly(true);
|
m_lineEdit->setReadOnly(true);
|
||||||
m_lineEdit->setFocusProxy(this);
|
m_lineEdit->setFocusProxy(this);
|
||||||
|
|
@ -1669,7 +1673,13 @@ void QtCharEdit::keyReleaseEvent(QKeyEvent *e)
|
||||||
void QtCharEdit::paintEvent(QPaintEvent *)
|
void QtCharEdit::paintEvent(QPaintEvent *)
|
||||||
{
|
{
|
||||||
QStyleOption opt;
|
QStyleOption opt;
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
opt.rect = this->rect();
|
||||||
|
opt.state = isEnabled() ? QStyle::State_Enabled : QStyle::State_None;
|
||||||
|
opt.palette = this->palette();
|
||||||
|
#else
|
||||||
opt.init(this);
|
opt.init(this);
|
||||||
|
#endif
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||||
}
|
}
|
||||||
|
|
@ -2240,7 +2250,13 @@ bool QtColorEditWidget::eventFilter(QObject *obj, QEvent *ev)
|
||||||
void QtColorEditWidget::paintEvent(QPaintEvent *)
|
void QtColorEditWidget::paintEvent(QPaintEvent *)
|
||||||
{
|
{
|
||||||
QStyleOption opt;
|
QStyleOption opt;
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
opt.rect = this->rect();
|
||||||
|
opt.state = isEnabled() ? QStyle::State_Enabled : QStyle::State_None;
|
||||||
|
opt.palette = this->palette();
|
||||||
|
#else
|
||||||
opt.init(this);
|
opt.init(this);
|
||||||
|
#endif
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||||
}
|
}
|
||||||
|
|
@ -2462,7 +2478,13 @@ bool QtFontEditWidget::eventFilter(QObject *obj, QEvent *ev)
|
||||||
void QtFontEditWidget::paintEvent(QPaintEvent *)
|
void QtFontEditWidget::paintEvent(QPaintEvent *)
|
||||||
{
|
{
|
||||||
QStyleOption opt;
|
QStyleOption opt;
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
opt.rect = this->rect();
|
||||||
|
opt.state = isEnabled() ? QStyle::State_Enabled : QStyle::State_None;
|
||||||
|
opt.palette = this->palette();
|
||||||
|
#else
|
||||||
opt.init(this);
|
opt.init(this);
|
||||||
|
#endif
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,8 @@
|
||||||
#ifndef QTPROPERTYBROWSER_H
|
#ifndef QTPROPERTYBROWSER_H
|
||||||
#define QTPROPERTYBROWSER_H
|
#define QTPROPERTYBROWSER_H
|
||||||
|
|
||||||
|
#include "qt5compat.h"
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QtCore/QSet>
|
#include <QtCore/QSet>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -262,7 +262,13 @@ void QtBoolEdit::mousePressEvent(QMouseEvent *event)
|
||||||
void QtBoolEdit::paintEvent(QPaintEvent *)
|
void QtBoolEdit::paintEvent(QPaintEvent *)
|
||||||
{
|
{
|
||||||
QStyleOption opt;
|
QStyleOption opt;
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
opt.rect = this->rect();
|
||||||
|
opt.state = isEnabled() ? QStyle::State_Enabled : QStyle::State_None;
|
||||||
|
opt.palette = this->palette();
|
||||||
|
#else
|
||||||
opt.init(this);
|
opt.init(this);
|
||||||
|
#endif
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||||
}
|
}
|
||||||
|
|
@ -274,7 +280,11 @@ QtKeySequenceEdit::QtKeySequenceEdit(QWidget *parent)
|
||||||
{
|
{
|
||||||
QHBoxLayout *layout = new QHBoxLayout(this);
|
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||||
layout->addWidget(m_lineEdit);
|
layout->addWidget(m_lineEdit);
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
layout->setContentsMargins(0,0,0,0);
|
||||||
|
#else
|
||||||
layout->setMargin(0);
|
layout->setMargin(0);
|
||||||
|
#endif
|
||||||
m_lineEdit->installEventFilter(this);
|
m_lineEdit->installEventFilter(this);
|
||||||
m_lineEdit->setReadOnly(true);
|
m_lineEdit->setReadOnly(true);
|
||||||
m_lineEdit->setFocusProxy(this);
|
m_lineEdit->setFocusProxy(this);
|
||||||
|
|
@ -408,7 +418,13 @@ void QtKeySequenceEdit::keyReleaseEvent(QKeyEvent *e)
|
||||||
void QtKeySequenceEdit::paintEvent(QPaintEvent *)
|
void QtKeySequenceEdit::paintEvent(QPaintEvent *)
|
||||||
{
|
{
|
||||||
QStyleOption opt;
|
QStyleOption opt;
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
opt.rect = this->rect();
|
||||||
|
opt.state = isEnabled() ? QStyle::State_Enabled : QStyle::State_None;
|
||||||
|
opt.palette = this->palette();
|
||||||
|
#else
|
||||||
opt.init(this);
|
opt.init(this);
|
||||||
|
#endif
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1229,7 +1229,11 @@ public:
|
||||||
|
|
||||||
struct Data
|
struct Data
|
||||||
{
|
{
|
||||||
Data() : regExp(QString(QLatin1Char('*')), Qt::CaseSensitive, QRegExp::Wildcard)
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
Data() : regExp(QRegularExpression(QStringLiteral(".*")))
|
||||||
|
#else
|
||||||
|
Data() : regExp(QString(QLatin1Char('*')), Qt::CaseSensitive, QRegExp::Wildcard)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
QString val;
|
QString val;
|
||||||
|
|
@ -1357,7 +1361,11 @@ void QtStringPropertyManager::setValue(QtProperty *property, const QString &val)
|
||||||
if (data.val == val)
|
if (data.val == val)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
if (data.regExp.isValid() && !data.regExp.match(val).hasMatch())
|
||||||
|
#else
|
||||||
if (data.regExp.isValid() && !data.regExp.exactMatch(val))
|
if (data.regExp.isValid() && !data.regExp.exactMatch(val))
|
||||||
|
#endif
|
||||||
return;
|
return;
|
||||||
|
|
||||||
data.val = val;
|
data.val = val;
|
||||||
|
|
@ -5854,8 +5862,13 @@ void QtFontPropertyManager::setValue(QtProperty *property, const QFont &val)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const QFont oldVal = it.value();
|
const QFont oldVal = it.value();
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
if (oldVal == val && oldVal.resolve(val) == val)
|
||||||
|
return;
|
||||||
|
#else
|
||||||
if (oldVal == val && oldVal.resolve() == val.resolve())
|
if (oldVal == val && oldVal.resolve() == val.resolve())
|
||||||
return;
|
return;
|
||||||
|
#endif
|
||||||
|
|
||||||
it.value() = val;
|
it.value() = val;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -132,9 +132,9 @@ public:
|
||||||
protected:
|
protected:
|
||||||
void mouseMoveEvent(QMouseEvent *event) override;
|
void mouseMoveEvent(QMouseEvent *event) override;
|
||||||
void leaveEvent(QEvent *event) override;
|
void leaveEvent(QEvent *event) override;
|
||||||
void keyPressEvent(QKeyEvent *event) override;
|
void keyPressEvent(QKeyEvent *event);
|
||||||
void mousePressEvent(QMouseEvent *event) override;
|
void mousePressEvent(QMouseEvent *event);
|
||||||
void drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
void drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void hoverPropertyChanged(QtBrowserItem *item);
|
void hoverPropertyChanged(QtBrowserItem *item);
|
||||||
|
|
@ -160,7 +160,8 @@ void QtPropertyEditorView::drawRow(QPainter *painter, const QStyleOptionViewItem
|
||||||
hasValue = property->hasValue();
|
hasValue = property->hasValue();
|
||||||
}
|
}
|
||||||
if (!hasValue && m_editorPrivate->markPropertiesWithoutValue()) {
|
if (!hasValue && m_editorPrivate->markPropertiesWithoutValue()) {
|
||||||
const QColor c = option.palette.color(QPalette::Dark);
|
QColor c = m_editorPrivate->calculatedBackgroundColor(m_editorPrivate->indexToBrowserItem(index));
|
||||||
|
if (!c.isValid()) c = option.palette.color(QPalette::Dark);
|
||||||
painter->fillRect(option.rect, c);
|
painter->fillRect(option.rect, c);
|
||||||
opt.palette.setColor(QPalette::AlternateBase, c);
|
opt.palette.setColor(QPalette::AlternateBase, c);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -379,7 +380,8 @@ void QtPropertyEditorDelegate::paint(QPainter *painter, const QStyleOptionViewIt
|
||||||
}
|
}
|
||||||
QColor c;
|
QColor c;
|
||||||
if (!hasValue && m_editorPrivate->markPropertiesWithoutValue()) {
|
if (!hasValue && m_editorPrivate->markPropertiesWithoutValue()) {
|
||||||
c = opt.palette.color(QPalette::Dark);
|
c = m_editorPrivate->calculatedBackgroundColor(m_editorPrivate->indexToBrowserItem(index));
|
||||||
|
if (!c.isValid()) c = opt.palette.color(QPalette::Dark);
|
||||||
opt.palette.setColor(QPalette::Text, opt.palette.color(QPalette::BrightText));
|
opt.palette.setColor(QPalette::Text, opt.palette.color(QPalette::BrightText));
|
||||||
} else {
|
} else {
|
||||||
c = m_editorPrivate->calculatedBackgroundColor(m_editorPrivate->indexToBrowserItem(index));
|
c = m_editorPrivate->calculatedBackgroundColor(m_editorPrivate->indexToBrowserItem(index));
|
||||||
|
|
@ -486,7 +488,11 @@ static QIcon drawIndicatorIcon(const QPalette &palette, QStyle *style)
|
||||||
void QtTreePropertyBrowserPrivate::init(QWidget *parent)
|
void QtTreePropertyBrowserPrivate::init(QWidget *parent)
|
||||||
{
|
{
|
||||||
QHBoxLayout *layout = new QHBoxLayout(parent);
|
QHBoxLayout *layout = new QHBoxLayout(parent);
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
layout->setContentsMargins(0,0,0,0);
|
||||||
|
#else
|
||||||
layout->setMargin(0);
|
layout->setMargin(0);
|
||||||
|
#endif
|
||||||
m_treeWidget = new QtPropertyEditorView(parent);
|
m_treeWidget = new QtPropertyEditorView(parent);
|
||||||
m_treeWidget->setEditorPrivate(this);
|
m_treeWidget->setEditorPrivate(this);
|
||||||
m_treeWidget->setIconSize(QSize(18, 18));
|
m_treeWidget->setIconSize(QSize(18, 18));
|
||||||
|
|
|
||||||
|
|
@ -986,8 +986,13 @@ QtVariantPropertyManager::QtVariantPropertyManager(QObject *parent)
|
||||||
QtStringPropertyManager *stringPropertyManager = new QtStringPropertyManager(this);
|
QtStringPropertyManager *stringPropertyManager = new QtStringPropertyManager(this);
|
||||||
d_ptr->m_typeToPropertyManager[QVariant::String] = stringPropertyManager;
|
d_ptr->m_typeToPropertyManager[QVariant::String] = stringPropertyManager;
|
||||||
d_ptr->m_typeToValueType[QVariant::String] = QVariant::String;
|
d_ptr->m_typeToValueType[QVariant::String] = QVariant::String;
|
||||||
|
#if QT_VERSION_MAJOR >= 6
|
||||||
|
d_ptr->m_typeToAttributeToAttributeType[QVariant::String][d_ptr->m_regExpAttribute] =
|
||||||
|
QMetaType::QRegularExpression; // int value for the type
|
||||||
|
#else
|
||||||
d_ptr->m_typeToAttributeToAttributeType[QVariant::String][d_ptr->m_regExpAttribute] =
|
d_ptr->m_typeToAttributeToAttributeType[QVariant::String][d_ptr->m_regExpAttribute] =
|
||||||
QVariant::RegExp;
|
QVariant::RegExp;
|
||||||
|
#endif
|
||||||
connect(stringPropertyManager, SIGNAL(valueChanged(QtProperty *, const QString &)),
|
connect(stringPropertyManager, SIGNAL(valueChanged(QtProperty *, const QString &)),
|
||||||
this, SLOT(slotValueChanged(QtProperty *, const QString &)));
|
this, SLOT(slotValueChanged(QtProperty *, const QString &)));
|
||||||
connect(stringPropertyManager, SIGNAL(regExpChanged(QtProperty *, const QRegExp &)),
|
connect(stringPropertyManager, SIGNAL(regExpChanged(QtProperty *, const QRegExp &)),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue