~ubuntu-branches/debian/sid/kdevelop/sid

« back to all changes in this revision

Viewing changes to lib/widgets/propeditor/propertywidgetproxy.h

  • Committer: Bazaar Package Importer
  • Author(s): Jeremy Lainé
  • Date: 2010-05-05 07:21:55 UTC
  • mfrom: (1.2.3 upstream) (5.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20100505072155-h78lx19pu04sbhtn
Tags: 4:4.0.0-2
* Upload to unstable (Closes: #579947, #481832).
* Acknowledge obsolete NMU fixes (Closes: #562410, #546961).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/***************************************************************************
2
 
 *   Copyright (C) 2004 by Alexander Dymo                                  *
3
 
 *   cloudtemple@mskat.net                                                 *
4
 
 *                                                                         *
5
 
 *   This program is free software; you can redistribute it and/or modify  *
6
 
 *   it under the terms of the GNU Library General Public License as       *
7
 
 *   published by the Free Software Foundation; either version 2 of the    *
8
 
 *   License, or (at your option) any later version.                       *
9
 
 *                                                                         *
10
 
 *   This program is distributed in the hope that it will be useful,       *
11
 
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12
 
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13
 
 *   GNU General Public License for more details.                          *
14
 
 *                                                                         *
15
 
 *   You should have received a copy of the GNU Library General Public     *
16
 
 *   License along with this program; if not, write to the                 *
17
 
 *   Free Software Foundation, Inc.,                                       *
18
 
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19
 
 ***************************************************************************/
20
 
#ifndef PROPERTYWIDGETPROXY_H
21
 
#define PROPERTYWIDGETPROXY_H
22
 
 
23
 
#include <qwidget.h>
24
 
#include <qvariant.h>
25
 
 
26
 
#include "multiproperty.h"
27
 
 
28
 
class QHBoxLayout;
29
 
 
30
 
namespace PropertyLib{
31
 
 
32
 
class PropertyWidget;
33
 
 
34
 
#define PropertyType Property::PropertyType
35
 
 
36
 
/**
37
 
Property Widget Proxy.
38
 
It is sometimes useful to create single property editor widgets instead of having them
39
 
all in the property editor. Proxy creates an empty widget and shows the property editor
40
 
depending on the property type.
41
 
*/
42
 
class PropertyWidgetProxy: public QWidget
43
 
{
44
 
Q_OBJECT
45
 
Q_PROPERTY( int propertyType READ propertyType WRITE setPropertyType DESIGNABLE true )
46
 
Q_PROPERTY( PropertyType propertyType2 READ propertyType2 WRITE setPropertyType2 DESIGNABLE false )
47
 
public:
48
 
    PropertyWidgetProxy(QWidget *parent = 0, const char *name = 0);
49
 
    ~PropertyWidgetProxy();
50
 
    
51
 
    /**Sets the type of a property editor to appear.*/
52
 
    void setPropertyType(int propertyType);
53
 
    int propertyType() const { return m_propertyType; }
54
 
    /**Sets the type of a property editor to appear.*/
55
 
    void setPropertyType2(PropertyType propertyType);
56
 
    PropertyType propertyType2() const { return m_propertyType; }
57
 
    
58
 
    QVariant value() const;
59
 
    void setValue(const QVariant &value);
60
 
    
61
 
    /**Sets the type of an editor basing on the @p value if the name is "value".
62
 
    Otherwise works as QWidget::setProperty.*/
63
 
    bool setProperty( const char *name, const QVariant &value);
64
 
    QVariant property( const char *name) const;
65
 
    
66
 
protected:
67
 
    virtual void setWidget();
68
 
    
69
 
private:
70
 
    Property *p;
71
 
    MultiProperty *mp;
72
 
    
73
 
    PropertyType m_propertyType;
74
 
    PropertyWidget *m_editor;
75
 
    
76
 
    QHBoxLayout *m_layout;
77
 
};
78
 
 
79
 
}
80
 
 
81
 
#endif