stfl_query_widget.hpp 1.33 KB
Newer Older
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
#ifndef CVVISUAL_STFLQUERYWIDGET_HPP
#define CVVISUAL_STFLQUERYWIDGET_HPP

#include <QString>
#include <QLineEdit>
#include <QStringList>
#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>

#include "stfl_query_widget_lineedit.hpp"
#include "../util/util.hpp"

namespace cvv
{
namespace qtutil
{

/**
 * @brief A simple filter widget with an input field and an help button.
 */
class STFLQueryWidget : public QWidget
{
	Q_OBJECT

      public:
	/**
	 * @brief Constructor of this class.
	 */
	STFLQueryWidget();

	/**
	 * @brief Show the given suggestions.
	 * @param suggestions given suggestions
	 */
	void showSuggestions(const QStringList &suggestions);

      private
slots:
	void returnPressed();

	void textChanged();

	void helpRequested();

signals:
	/**
	 * @brief User request filtering with the given query.
	 * @param query given query
	 */
	void filterSignal(QString query);

	/**
	 * @brief Update of the user input.
	 * @param query new user input
	 */
	void userInputUpdate(QString query);

	/**
	 * @brief User request suggestions for the given query.
	 * @param query given query
	 */
	void requestSuggestions(QString query);

	/**
	 * @brief User requests the help page for the given topic.
	 * @param topic given topic
	 */
	void showHelp(QString topic);

      private:
	STFLQueryWidgetLineEdit *lineEdit;
};
}
}

#endif