lbajardsilogic@7: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@7: lbajardsilogic@7: /* Sound Access lbajardsilogic@7: EASAIER client application. lbajardsilogic@7: Silogic 2007. Laure Bajard. lbajardsilogic@7: lbajardsilogic@7: This program is free software; you can redistribute it and/or lbajardsilogic@7: modify it under the terms of the GNU General Public License as lbajardsilogic@7: published by the Free Software Foundation; either version 2 of the lbajardsilogic@7: License, or (at your option) any later version. See the file lbajardsilogic@7: COPYING included with this distribution for more information. lbajardsilogic@7: */ lbajardsilogic@7: lbajardsilogic@7: #ifndef _SEARCH_WIDGET_H_ lbajardsilogic@7: #define _SEARCH_WIDGET_H_ lbajardsilogic@7: lbajardsilogic@7: #include lbajardsilogic@7: #include lbajardsilogic@7: #include lbajardsilogic@7: #include lbajardsilogic@7: lbajardsilogic@7: #include lbajardsilogic@7: lbajardsilogic@7: #include "data/model/QueryModel.h" lbajardsilogic@7: lbajardsilogic@7: #include "widgets/AdvancedToolBox.h" lbajardsilogic@7: lbajardsilogic@7: class SearchWidget : public QWidget { lbajardsilogic@7: lbajardsilogic@7: Q_OBJECT lbajardsilogic@7: public: lbajardsilogic@7: SearchWidget(); lbajardsilogic@7: virtual ~SearchWidget(); lbajardsilogic@7: lbajardsilogic@7: /*display the widgets of the search tab according the QueryModel*/ lbajardsilogic@7: void displayQuerymodel(QueryModel* queryModel); lbajardsilogic@7: lbajardsilogic@7: /*add a new theme (music, speech...) to the search tab*/ lbajardsilogic@7: void addTheme(const QString &name, const QString &label); lbajardsilogic@7: lbajardsilogic@7: /*add a new group of query to the current search theme*/ lbajardsilogic@7: void addFieldGroup(const QString &name, const QString &label); lbajardsilogic@7: void endFieldGroup(); lbajardsilogic@7: lbajardsilogic@7: /*add a query property to the current group and current theme*/ lbajardsilogic@7: void addField(const QString &name, QueryThemeModel* curTheme); lbajardsilogic@7: lbajardsilogic@7: /* return the name of the active query theme */ lbajardsilogic@7: QString getActiveTheme(); lbajardsilogic@7: lbajardsilogic@70: /*highlight the button of the theme "name"*/ lbajardsilogic@70: void highlightThemeButton(QString &name); lbajardsilogic@70: lbajardsilogic@7: void reset(); lbajardsilogic@7: lbajardsilogic@93: virtual void keyPressEvent( QKeyEvent * e); lbajardsilogic@93: lbajardsilogic@7: public slots: lbajardsilogic@7: void activeTheme(); lbajardsilogic@228: lbajardsilogic@228: signals: lbajardsilogic@228: void fileSelected(const QString &); lbajardsilogic@7: lbajardsilogic@7: protected: lbajardsilogic@7: lbajardsilogic@7: QStackedLayout *m_themesLayout; lbajardsilogic@7: QHBoxLayout *m_buttonLayout; // each button correspond to a theme lbajardsilogic@7: lbajardsilogic@7: QPushButton *m_searchButton; lbajardsilogic@7: lbajardsilogic@7: AdvancedToolBox *m_curThemeWidget; lbajardsilogic@7: QGridLayout *m_curBoxLayout; lbajardsilogic@7: lbajardsilogic@7: std::map m_themes; lbajardsilogic@7: lbajardsilogic@7: int m_curBoxRow; lbajardsilogic@7: }; lbajardsilogic@7: lbajardsilogic@7: lbajardsilogic@7: #endif