KProperty

combobox.h
1/* This file is part of the KDE project
2 Copyright (C) 2004 Cedric Pasteur <cedric.pasteur@free.fr>
3 Copyright (C) 2004 Alexander Dymo <cloudtemple@mskat.net>
4 Copyright (C) 2008-2015 Jarosław Staniek <staniek@kde.org>
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details.
15
16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
20*/
21
22#ifndef KPROPERTY_COMBOBOX_H
23#define KPROPERTY_COMBOBOX_H
24
25#include "KPropertyWidgetsFactory.h"
26
27#include <QComboBox>
28
29class KPROPERTYWIDGETS_EXPORT KPropertyComboBoxEditorIconProviderInterface
30{
31public:
32 KPropertyComboBoxEditorIconProviderInterface() {}
33 virtual ~KPropertyComboBoxEditorIconProviderInterface() {}
34 virtual QIcon icon(int index) const = 0;
35 virtual KPropertyComboBoxEditorIconProviderInterface* clone() const = 0;
36};
37
38class KPROPERTYWIDGETS_EXPORT KPropertyComboBoxEditorOptions
39{
40public:
41 KPropertyComboBoxEditorOptions();
42 KPropertyComboBoxEditorOptions(const KPropertyComboBoxEditorOptions& other);
43 ~KPropertyComboBoxEditorOptions();
44
45 KPropertyComboBoxEditorOptions& operator=(const KPropertyComboBoxEditorOptions &other);
46
47 KPropertyComboBoxEditorIconProviderInterface *iconProvider = nullptr;
48 bool extraValueAllowed;
49};
50
51class KPROPERTYWIDGETS_EXPORT KPropertyComboBoxEditor : public QComboBox
52{
53 Q_OBJECT
54 Q_PROPERTY(QVariant value READ value WRITE setValue USER true)
55
56public:
57 KPropertyComboBoxEditor(const KPropertyListData &listData,
58 const KPropertyComboBoxEditorOptions &options,
59 QWidget *parent = nullptr);
60
61 ~KPropertyComboBoxEditor() override;
62
63 virtual QVariant value() const;
64
65 static QString borderSheet(const QWidget *widget);
66
67Q_SIGNALS:
68 void commitData( QWidget * editor );
69
70public Q_SLOTS:
71 void setListData(const KPropertyListData & listData);
72
73 virtual void setValue(const QVariant &value);
74
75protected Q_SLOTS:
76 void slotValueChanged(int value);
77
78protected:
79 void paintEvent(QPaintEvent *event) override;
80
81 QString keyForValue(const QVariant &value);
82
83 void fillValues();
84
85 bool listDataKeysAvailable() const;
86
87private:
88 Q_DISABLE_COPY(KPropertyComboBoxEditor)
89 class Private;
90 Private * const d;
91};
92
93class KPROPERTYWIDGETS_EXPORT KPropertyComboBoxDelegate : public KPropertyEditorCreatorInterface,
95{
96public:
97 KPropertyComboBoxDelegate();
98
99 QString propertyValueToString(const KProperty *property, const QLocale &locale) const override;
100
101 QString valueToString(const QVariant &value, const QLocale &locale) const override;
102
103 QWidget *createEditor(int type, QWidget *parent, const QStyleOptionViewItem &option,
104 const QModelIndex &index) const override;
105};
106
107#endif
An interface for editor widget creators.
A data container for properties of list type.
Provides a specialized conversion of value to string depending on type.
The base class representing a single property.
Definition KProperty.h:96
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Sun Feb 25 2024 18:41:55 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.