summaryrefslogtreecommitdiffstats
path: root/kpovmodeler/pmlineedits.h
blob: 9a12c384dea36c1564d03d6146d5b8fa5a5337d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
//-*-C++-*-
/*
**************************************************************************
                                 description
                             --------------------
    copyright            : (C) 2000-2001 by Andreas Zehender
    email                : zehender@kde.org
**************************************************************************

**************************************************************************
*                                                                        *
*  This program is free software; you can redistribute it and/or modify  *
*  it under the terms of the GNU General Public License as published by  *
*  the Free Software Foundation; either version 2 of the License, or     *
*  (at your option) any later version.                                   *
*                                                                        *
**************************************************************************/

#ifndef PM_LINEEDITS_H
#define PM_LINEEDITS_H

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <qlineedit.h>

/**
 * Lineedit for float input
 */

class PMFloatEdit : public QLineEdit
{
   Q_OBJECT
public:
   enum ValidationOp { OpGreater, OpGreaterEqual,
                       OpLess, OpLessEqual };
   /**
    * Simple constructor
    */
   PMFloatEdit( QWidget* parent, const char* name = 0 );
   /**
    * Sets the validation for the lineedit.
    *
    * If checkLower is true, the value has to be >= the lowerValue.
    *
    * If checkUpper is true, the value has to be <= the upperValue.
    *
    * By default no range check is made.
    */
   void setValidation( bool checkLower, double lowerValue,
                       bool checkUpper, double upperValue );
   /**
    * Sets the validation operators for the lower and upper value.
    *
    * Valid values for lower are OpGreater and OpGreaterEqual,
    * valid values for upper are OpLess and OpLessEqual.
    */
   void setValidationOperator( ValidationOp lower, ValidationOp upper );
   /**
    * Returns true, if the text is a valid float in the valid range
    */
   bool isDataValid( );
   /**
    * Returns the float value
    */
   double value( ) const;
   /**
    * Sets the value
    */
   void setValue( double d, int precision = 5 );
signals:
   /**
    * emitted if the text is changed
    */
   void dataChanged( );
public slots:
   void slotEditTextChanged( const QString& t );
private:
   bool m_bCheckLower, m_bCheckUpper;
   double m_lowerValue, m_upperValue;
   ValidationOp m_lowerOp, m_upperOp;
};


/**
 * Lineedit for int input
 */

class PMIntEdit : public QLineEdit
{
   Q_OBJECT
public:
   /**
    * Simple constructor
    */
   PMIntEdit( QWidget* parent, const char* name = 0 );
   /**
    * Sets the validation for the lineedit.
    *
    * If checkLower is true, the value has to be >= the lowerValue.
    *
    * If checkUpper is true, the value has to be <= the upperValue.
    *
    * By default no range check is made.
    */
   void setValidation( bool checkLower, int lowerValue,
                       bool checkUpper, int upperValue );
   /**
    * Returns true, if the text is a valid integer in the valid range
    */
   bool isDataValid( );
   /**
    * Returns the integer value
    */
   int value( ) const;
   /**
    * Sets the value
    */
   void setValue( int i );
signals:
   /**
    * emitted if the text is changed
    */
   void dataChanged( );
public slots:
   void slotEditTextChanged( const QString& t );
private:
   bool m_bCheckLower, m_bCheckUpper;
   int m_lowerValue, m_upperValue;
};

#endif