The example uses QTreeWidget when it should use a QTreeView with a dedicated item model, primarily shows how to use item views (and very little about QSettings), and is generally not useful to show how an application could or should use QSettings to store settings. Turn it into a manual test instead; it's useful for that as it supports ini and plist files, and settings in different scopes. Fixes: QTBUG-119978 Change-Id: I7ce039f6391c41c679d126d90a251eee60327c39 Reviewed-by: Ed Cooke <ed.cooke@qt.io> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit bddf27cd5a5412c8282fab43111e7319874ca44e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
54 lines
1.6 KiB
C++
54 lines
1.6 KiB
C++
// Copyright (C) 2016 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
#ifndef VARIANTDELEGATE_H
|
|
#define VARIANTDELEGATE_H
|
|
|
|
#include <QStyledItemDelegate>
|
|
#include <QRegularExpression>
|
|
#include <QSharedPointer>
|
|
|
|
struct TypeChecker
|
|
{
|
|
TypeChecker();
|
|
|
|
QRegularExpression boolExp;
|
|
QRegularExpression byteArrayExp;
|
|
QRegularExpression charExp;
|
|
QRegularExpression colorExp;
|
|
QRegularExpression dateExp;
|
|
QRegularExpression dateTimeExp;
|
|
QRegularExpression doubleExp;
|
|
QRegularExpression pointExp;
|
|
QRegularExpression rectExp;
|
|
QRegularExpression signedIntegerExp;
|
|
QRegularExpression sizeExp;
|
|
QRegularExpression timeExp;
|
|
QRegularExpression unsignedIntegerExp;
|
|
};
|
|
|
|
class VariantDelegate : public QStyledItemDelegate
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit VariantDelegate(const QSharedPointer<TypeChecker> &typeChecker,
|
|
QObject *parent = nullptr);
|
|
|
|
void paint(QPainter *painter, const QStyleOptionViewItem &option,
|
|
const QModelIndex &index) const override;
|
|
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
|
|
const QModelIndex &index) const override;
|
|
void setEditorData(QWidget *editor, const QModelIndex &index) const override;
|
|
void setModelData(QWidget *editor, QAbstractItemModel *model,
|
|
const QModelIndex &index) const override;
|
|
|
|
static bool isSupportedType(int type);
|
|
static QString displayText(const QVariant &value);
|
|
|
|
private:
|
|
QSharedPointer<TypeChecker> m_typeChecker;
|
|
};
|
|
|
|
#endif
|