File: xlineedit.h

package info (click to toggle)
postbooks 4.10.0-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 112,660 kB
  • ctags: 22,890
  • sloc: cpp: 310,358; sh: 607; xml: 214; python: 140; awk: 104; makefile: 50
file content (91 lines) | stat: -rw-r--r-- 2,569 bytes parent folder | download | duplicates (3)
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
/*
 * This file is part of the xTuple ERP: PostBooks Edition, a free and
 * open source Enterprise Resource Planning software suite,
 * Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 * It is licensed to you under the Common Public Attribution License
 * version 1.0, the full text of which (including xTuple-specific Exhibits)
 * is available at www.xtuple.com/CPAL.  By using this software, you agree
 * to be bound by its terms.
 */

#ifndef xlineedit_h
#define xlineedit_h

#include <QAction>
#include <QLineEdit>
#include <QFocusEvent>
#include <QKeyEvent>
#include <QMouseEvent>

#include "widgets.h"
#include "xdatawidgetmapper.h"

class XTUPLEWIDGETS_EXPORT XLineEdit : public QLineEdit
{
  Q_OBJECT
  Q_PROPERTY(QString fieldName    READ fieldName   WRITE setFieldName)
  Q_PROPERTY(QString defaultText  READ defaultText WRITE setDefaultText)
  
  public:
    XLineEdit(QWidget *, const char * = 0);

    Q_INVOKABLE bool isValid();
    Q_INVOKABLE int  id();
    Q_INVOKABLE void setValidator(QValidator * v) { QLineEdit::setValidator(v); }

    Q_INVOKABLE double toDouble(bool * = 0);
    virtual QString defaultText() const { return _default; }
    virtual QString fieldName()   const { return _fieldName; }
    virtual void   setText(const QVariant &);
    Q_INVOKABLE virtual void   setDouble(const double, const int = -1);

    Q_INVOKABLE inline virtual QString nullStr() const { return _nullStr; }
    Q_INVOKABLE        virtual void setNullStr(const QString &text);

    Q_INVOKABLE bool isNull();

  public slots:
    virtual void sParse();
    virtual void setData();
    virtual void setData(const QString &text);
    virtual void setDataWidgetMap(XDataWidgetMapper* m);
    virtual void setDefaultText(QString p)  { _default = p; }
    virtual void setFieldName(QString p)    { _fieldName = p; }

  signals:
    void clicked();
    void doubleClicked();
    void requestList();
    void requestSearch();
    void requestInfo();
    void requestAlias();

  protected slots:
    virtual void sHandleNullStr();

  protected:
    int     _id;
    bool    _valid;
    bool    _parsed;
    QString _nullStr;

    QAction* _listAct;
    QAction* _searchAct;
    QAction* _aliasAct;
    
    virtual void focusInEvent(QFocusEvent * event);
    virtual void focusOutEvent(QFocusEvent * event);

    void mouseDoubleClickEvent(QMouseEvent *);
    void mousePressEvent(QMouseEvent *);
    void keyPressEvent(QKeyEvent *);
    
  private:    
    bool _isNull;
    QString _default;
    QString _fieldName;
    XDataWidgetMapper *_mapper;
};

#endif