File: conditioneditor.h

package info (click to toggle)
portabase 2.0%2Bgit20110117-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 6,692 kB
  • sloc: cpp: 32,047; sh: 2,675; ansic: 2,320; makefile: 343; xml: 20; python: 16; asm: 10
file content (77 lines) | stat: -rw-r--r-- 2,587 bytes parent folder | download | duplicates (2)
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
/*
 * conditioneditor.h
 *
 * (c) 2002-2004,2008-2009 by Jeremy Bowman <jmbowman@alum.mit.edu>
 *
 * 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.
 */

/** @file conditioneditor.h
 * Header file for ConditionEditor
 */

#ifndef CONDITIONEDITOR_H
#define CONDITIONEDITOR_H

#include <QStringList>
#include "condition.h"
#include "datatypes.h"
#include "pbdialog.h"

class Database;
class DateWidget;
class NumberWidget;
class QCheckBox;
class QComboBox;
class QLineEdit;
class QStackedWidget;
class TimeWidget;

typedef QList<Condition::Operator> OperatorList;

/**
 * A dialog for editing an individual filter condition.  Used by FilterEditor.
 */
class ConditionEditor: public PBDialog
{
    Q_OBJECT
public:
    ConditionEditor(Database *dbase, QWidget *parent = 0);

    int edit(Condition *condition);
    void applyChanges(Condition *condition);

private slots:
    void updateDisplay(int columnIndex);

private:
    void fillFields(Condition *condition);
    bool isValidConstant();
    void updateOpList();

private:
    Database *db; /**< The database in use */
    QStringList colNames; /**< The list of non-image column names */
    IntList types; /**< The list of non-image column types */
    OperatorList stringOps; /**< The list of string operator IDs */
    OperatorList numberOps; /**< The list of numeric operator IDs */
    QComboBox *columnList; /**< The selection widget for the column name */
    QComboBox *opList; /**< The selection widget for the operator */
    QStringList stringOpList; /**< The list of string operator display strings */
    QStringList numberOpList; /**< The list of numeric operator display strings */
    QStackedWidget *constantStack; /**< The stack of constant value widgets */
    QLineEdit *constantLine; /**< Entry field for text constants */
    QCheckBox *constantCheck; /**< Checkbox for boolean constants */
    DateWidget *constantDate; /**< Date constant selection widget */
    TimeWidget *constantTime; /**< Time constant selection widget */
    NumberWidget *constantInteger; /**< Entry widget for integer constants */
    NumberWidget *constantFloat; /**< Entry widget for floating point constants */
    QComboBox *constantCombo; /**< Selection list for enum constants */
    QCheckBox *caseCheck; /**< Case sensitivity indicator checkbox */
    int dataType; /**< The data type of the last selected column */
};

#endif