lbajardsilogic@7
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
lbajardsilogic@7
|
2
|
lbajardsilogic@7
|
3 /* Sound Access
|
lbajardsilogic@7
|
4 EASAIER client application.
|
lbajardsilogic@7
|
5 Silogic 2007. Laure Bajard.
|
lbajardsilogic@7
|
6
|
lbajardsilogic@7
|
7 This program is free software; you can redistribute it and/or
|
lbajardsilogic@7
|
8 modify it under the terms of the GNU General Public License as
|
lbajardsilogic@7
|
9 published by the Free Software Foundation; either version 2 of the
|
lbajardsilogic@7
|
10 License, or (at your option) any later version. See the file
|
lbajardsilogic@7
|
11 COPYING included with this distribution for more information.
|
lbajardsilogic@7
|
12 */
|
lbajardsilogic@7
|
13
|
lbajardsilogic@7
|
14 #ifndef _SEARCH_WIDGET_H_
|
lbajardsilogic@7
|
15 #define _SEARCH_WIDGET_H_
|
lbajardsilogic@7
|
16
|
lbajardsilogic@7
|
17 #include <QWidget>
|
lbajardsilogic@7
|
18 #include <QGridLayout>
|
lbajardsilogic@7
|
19 #include <QVBoxLayout>
|
lbajardsilogic@7
|
20 #include <QStackedLayout>
|
lbajardsilogic@7
|
21
|
lbajardsilogic@7
|
22 #include <map>
|
lbajardsilogic@7
|
23
|
lbajardsilogic@7
|
24 #include "data/model/QueryModel.h"
|
lbajardsilogic@7
|
25
|
lbajardsilogic@7
|
26 #include "widgets/AdvancedToolBox.h"
|
lbajardsilogic@7
|
27
|
lbajardsilogic@7
|
28 class SearchWidget : public QWidget {
|
lbajardsilogic@7
|
29
|
lbajardsilogic@7
|
30 Q_OBJECT
|
lbajardsilogic@7
|
31 public:
|
lbajardsilogic@7
|
32 SearchWidget();
|
lbajardsilogic@7
|
33 virtual ~SearchWidget();
|
lbajardsilogic@7
|
34
|
lbajardsilogic@7
|
35 /*display the widgets of the search tab according the QueryModel*/
|
lbajardsilogic@7
|
36 void displayQuerymodel(QueryModel* queryModel);
|
lbajardsilogic@7
|
37
|
lbajardsilogic@7
|
38 /*add a new theme (music, speech...) to the search tab*/
|
lbajardsilogic@7
|
39 void addTheme(const QString &name, const QString &label);
|
lbajardsilogic@7
|
40
|
lbajardsilogic@7
|
41 /*add a new group of query to the current search theme*/
|
lbajardsilogic@7
|
42 void addFieldGroup(const QString &name, const QString &label);
|
lbajardsilogic@7
|
43 void endFieldGroup();
|
lbajardsilogic@7
|
44
|
lbajardsilogic@7
|
45 /*add a query property to the current group and current theme*/
|
lbajardsilogic@7
|
46 void addField(const QString &name, QueryThemeModel* curTheme);
|
lbajardsilogic@7
|
47
|
lbajardsilogic@7
|
48 /* return the name of the active query theme */
|
lbajardsilogic@7
|
49 QString getActiveTheme();
|
lbajardsilogic@7
|
50
|
lbajardsilogic@70
|
51 /*highlight the button of the theme "name"*/
|
lbajardsilogic@70
|
52 void highlightThemeButton(QString &name);
|
lbajardsilogic@70
|
53
|
lbajardsilogic@7
|
54 void reset();
|
lbajardsilogic@7
|
55
|
lbajardsilogic@93
|
56 virtual void keyPressEvent( QKeyEvent * e);
|
lbajardsilogic@93
|
57
|
lbajardsilogic@7
|
58 public slots:
|
lbajardsilogic@7
|
59 void activeTheme();
|
lbajardsilogic@228
|
60
|
lbajardsilogic@228
|
61 signals:
|
lbajardsilogic@228
|
62 void fileSelected(const QString &);
|
lbajardsilogic@7
|
63
|
lbajardsilogic@7
|
64 protected:
|
lbajardsilogic@7
|
65
|
lbajardsilogic@7
|
66 QStackedLayout *m_themesLayout;
|
lbajardsilogic@7
|
67 QHBoxLayout *m_buttonLayout; // each button correspond to a theme
|
lbajardsilogic@7
|
68
|
lbajardsilogic@7
|
69 QPushButton *m_searchButton;
|
lbajardsilogic@7
|
70
|
lbajardsilogic@7
|
71 AdvancedToolBox *m_curThemeWidget;
|
lbajardsilogic@7
|
72 QGridLayout *m_curBoxLayout;
|
lbajardsilogic@7
|
73
|
lbajardsilogic@7
|
74 std::map<QString, int> m_themes;
|
lbajardsilogic@7
|
75
|
lbajardsilogic@7
|
76 int m_curBoxRow;
|
lbajardsilogic@7
|
77 };
|
lbajardsilogic@7
|
78
|
lbajardsilogic@7
|
79
|
lbajardsilogic@7
|
80 #endif |