Initial commit to git repository
[liteman.git] / src / queryeditordialog.h
blob3fd260f8d2316bf6d88e0545952a36c841f8f9b0
1 /*
2 * This file is part of LineMan.
4 * Copyright 2006 Igor Khanin
6 * LiteMan is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * LiteMan 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
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with LiteMan; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 #ifndef QUERYEDITORDIALOG_H
22 #define QUERYEDITORDIALOG_H
24 #include <QDialog>
26 class QGridLayout;
27 class QVBoxLayout;
28 class QRadioButton;
29 class QPushButton;
30 class QLineEdit;
31 class QComboBox;
33 class Database;
35 /*!
36 * @brief A dialog for creating and editing queries
38 class QueryEditorDialog : public QDialog
40 Q_OBJECT
41 public:
42 typedef enum
44 BuildQuery,
45 CreateView
47 Mode;
49 public:
50 QueryEditorDialog(Database * dbase, Mode mode, QWidget * parent = 0);
51 ~QueryEditorDialog();
53 QString statement();
54 QString viewName();
56 private:
57 void initUI();
59 private slots:
60 void tableSelected(const QString & table);
61 void moreTerms();
62 void lessTerms();
64 private:
65 Mode curMode;
66 Database * db;
67 QString curTable;
69 QPushButton * lessButton;
70 QRadioButton * andButton;
71 QRadioButton * orButton;
73 QComboBox * tableList;
74 QLineEdit * viewNameEdit;
75 QGridLayout * checkLayout;
76 QVBoxLayout * termsLayout;
79 #endif //QUERYEDITORDIALOG_H