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)
|
||||
|
||||
PROJECT(QtPropertyBrowser)
|
||||
|
||||
##################### Look for required libraries ######################
|
||||
|
||||
# Add QT dependencies
|
||||
FIND_PACKAGE(Qt5Widgets REQUIRED)
|
||||
|
||||
######################### Add Primary Targets ##########################
|
||||
ADD_SUBDIRECTORY(src)
|
||||
|
|
|
|||
|
|
@ -23,8 +23,13 @@ set(_RESOURCES
|
|||
qtpropertybrowser.qrc
|
||||
)
|
||||
|
||||
QT5_WRAP_UI(_UI_SRCS ${_UI_FORMS})
|
||||
QT5_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES})
|
||||
if (Qt6_FOUND)
|
||||
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})
|
||||
|
||||
|
|
@ -38,4 +43,8 @@ if (MSVC)
|
|||
target_compile_options(${TARGET_NAME} PRIVATE /wd4457 /wd4718)
|
||||
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);
|
||||
layout->addWidget(m_lineEdit);
|
||||
#if QT_VERSION_MAJOR >= 6
|
||||
layout->setContentsMargins(0,0,0,0);
|
||||
#else
|
||||
layout->setMargin(0);
|
||||
#endif
|
||||
m_lineEdit->installEventFilter(this);
|
||||
m_lineEdit->setReadOnly(true);
|
||||
m_lineEdit->setFocusProxy(this);
|
||||
|
|
@ -1669,7 +1673,13 @@ void QtCharEdit::keyReleaseEvent(QKeyEvent *e)
|
|||
void QtCharEdit::paintEvent(QPaintEvent *)
|
||||
{
|
||||
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);
|
||||
#endif
|
||||
QPainter 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 *)
|
||||
{
|
||||
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);
|
||||
#endif
|
||||
QPainter 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 *)
|
||||
{
|
||||
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);
|
||||
#endif
|
||||
QPainter p(this);
|
||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@
|
|||
#ifndef QTPROPERTYBROWSER_H
|
||||
#define QTPROPERTYBROWSER_H
|
||||
|
||||
#include "qt5compat.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <QtCore/QSet>
|
||||
|
||||
|
|
|
|||
|
|
@ -262,7 +262,13 @@ void QtBoolEdit::mousePressEvent(QMouseEvent *event)
|
|||
void QtBoolEdit::paintEvent(QPaintEvent *)
|
||||
{
|
||||
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);
|
||||
#endif
|
||||
QPainter p(this);
|
||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||
}
|
||||
|
|
@ -274,7 +280,11 @@ QtKeySequenceEdit::QtKeySequenceEdit(QWidget *parent)
|
|||
{
|
||||
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||
layout->addWidget(m_lineEdit);
|
||||
#if QT_VERSION_MAJOR >= 6
|
||||
layout->setContentsMargins(0,0,0,0);
|
||||
#else
|
||||
layout->setMargin(0);
|
||||
#endif
|
||||
m_lineEdit->installEventFilter(this);
|
||||
m_lineEdit->setReadOnly(true);
|
||||
m_lineEdit->setFocusProxy(this);
|
||||
|
|
@ -408,7 +418,13 @@ void QtKeySequenceEdit::keyReleaseEvent(QKeyEvent *e)
|
|||
void QtKeySequenceEdit::paintEvent(QPaintEvent *)
|
||||
{
|
||||
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);
|
||||
#endif
|
||||
QPainter p(this);
|
||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1229,7 +1229,11 @@ public:
|
|||
|
||||
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;
|
||||
|
|
@ -1357,7 +1361,11 @@ void QtStringPropertyManager::setValue(QtProperty *property, const QString &val)
|
|||
if (data.val == val)
|
||||
return;
|
||||
|
||||
#if QT_VERSION_MAJOR >= 6
|
||||
if (data.regExp.isValid() && !data.regExp.match(val).hasMatch())
|
||||
#else
|
||||
if (data.regExp.isValid() && !data.regExp.exactMatch(val))
|
||||
#endif
|
||||
return;
|
||||
|
||||
data.val = val;
|
||||
|
|
@ -5854,8 +5862,13 @@ void QtFontPropertyManager::setValue(QtProperty *property, const QFont &val)
|
|||
return;
|
||||
|
||||
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())
|
||||
return;
|
||||
#endif
|
||||
|
||||
it.value() = val;
|
||||
|
||||
|
|
|
|||
|
|
@ -132,9 +132,9 @@ public:
|
|||
protected:
|
||||
void mouseMoveEvent(QMouseEvent *event) override;
|
||||
void leaveEvent(QEvent *event) override;
|
||||
void keyPressEvent(QKeyEvent *event) override;
|
||||
void mousePressEvent(QMouseEvent *event) override;
|
||||
void drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
||||
void keyPressEvent(QKeyEvent *event);
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
void drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void hoverPropertyChanged(QtBrowserItem *item);
|
||||
|
|
@ -160,7 +160,8 @@ void QtPropertyEditorView::drawRow(QPainter *painter, const QStyleOptionViewItem
|
|||
hasValue = property->hasValue();
|
||||
}
|
||||
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);
|
||||
opt.palette.setColor(QPalette::AlternateBase, c);
|
||||
} else {
|
||||
|
|
@ -379,7 +380,8 @@ void QtPropertyEditorDelegate::paint(QPainter *painter, const QStyleOptionViewIt
|
|||
}
|
||||
QColor c;
|
||||
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));
|
||||
} else {
|
||||
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)
|
||||
{
|
||||
QHBoxLayout *layout = new QHBoxLayout(parent);
|
||||
#if QT_VERSION_MAJOR >= 6
|
||||
layout->setContentsMargins(0,0,0,0);
|
||||
#else
|
||||
layout->setMargin(0);
|
||||
#endif
|
||||
m_treeWidget = new QtPropertyEditorView(parent);
|
||||
m_treeWidget->setEditorPrivate(this);
|
||||
m_treeWidget->setIconSize(QSize(18, 18));
|
||||
|
|
|
|||
|
|
@ -986,8 +986,13 @@ QtVariantPropertyManager::QtVariantPropertyManager(QObject *parent)
|
|||
QtStringPropertyManager *stringPropertyManager = new QtStringPropertyManager(this);
|
||||
d_ptr->m_typeToPropertyManager[QVariant::String] = stringPropertyManager;
|
||||
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] =
|
||||
QVariant::RegExp;
|
||||
#endif
|
||||
connect(stringPropertyManager, SIGNAL(valueChanged(QtProperty *, const QString &)),
|
||||
this, SLOT(slotValueChanged(QtProperty *, const QString &)));
|
||||
connect(stringPropertyManager, SIGNAL(regExpChanged(QtProperty *, const QRegExp &)),
|
||||
|
|
|
|||
Loading…
Reference in New Issue