pqSearchBox.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: pqSearchBox.h
5 
6  Copyright (c) 2005,2006 Sandia Corporation, Kitware Inc.
7  All rights reserved.
8 
9  ParaView is a free software; you can redistribute it and/or modify it
10  under the terms of the ParaView license version 1.2.
11 
12  See License_v1.2.txt for the full ParaView license.
13  A copy of this license can be obtained by contacting
14  Kitware Inc.
15  28 Corporate Drive
16  Clifton Park, NY 12065
17  USA
18 
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
23 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 ========================================================================*/
32 #ifndef pqSearchBox_h
33 #define pqSearchBox_h
34 
35 #include "pqComponentsModule.h"
36 #include <QScopedPointer>
37 #include <QWidget>
38 
39 class QSettings;
53 class PQCOMPONENTS_EXPORT pqSearchBox : public QWidget
54 {
55  Q_OBJECT
56 
62  Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged USER true)
63 
64 
70  Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText)
71 
78  Q_PROPERTY(bool advancedSearchActive READ isAdvancedSearchActive WRITE setAdvancedSearchActive
79  NOTIFY advancedSearchActivated)
80 
86  Q_PROPERTY(bool advancedSearchEnabled READ isAdvancedSearchEnabled WRITE setAdvancedSearchEnabled)
87 
100  Q_PROPERTY(QString settingKey READ settingKey WRITE setSettingKey NOTIFY settingKeyChanged)
101 
102 public:
103  typedef QWidget Superclass;
104 
105  pqSearchBox(QWidget* parent = nullptr);
106  pqSearchBox(
107  bool advancedSearchEnabled, const QString& settingKey = "", QWidget* parent = nullptr);
108 
109  ~pqSearchBox() override;
110 
115  bool isAdvancedSearchActive() const;
116 
121  QString text() const;
122 
127  QString placeholderText() const;
128  void setPlaceholderText(const QString& text);
129 
134  QString settingKey() const;
135 
140  QSettings* settings() const;
141 
146  bool isAdvancedSearchEnabled() const;
147 
148 Q_SIGNALS:
154  void advancedSearchActivated(bool);
155 
160  void textChanged(const QString&);
161 
166  void settingKeyChanged(const QString&);
167 
168 public Q_SLOTS:
174  void setAdvancedSearchActive(bool use);
175 
180  void setText(const QString& text);
181 
190  QString setSettingKey(const QString& key);
191 
196  void setAdvancedSearchEnabled(bool enable);
197 
198 protected:
199  void keyPressEvent(QKeyEvent* e) override;
200 
201 protected Q_SLOTS: // NOLINT(readability-redundant-access-specifiers)
202  void onAdvancedButtonClicked(bool);
203  void updateSettings();
204  void updateFromSettings();
205 
206 private:
207  Q_DISABLE_COPY(pqSearchBox)
208 
209  class pqInternals;
210  friend class pqInternals;
211 
212  const QScopedPointer<pqInternals> Internals;
213  QString SettingKey;
214 };
215 
216 #endif
#define PQCOMPONENTS_EXPORT
pqSearchBox is a line edit and an advanced tool button in the same layout.
Definition: pqSearchBox.h:53
QWidget Superclass
Definition: pqSearchBox.h:103
#define const
Definition: zconf.h:238