swift
sharedstringlistcompleter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2017 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_GUI_SHAREDSTRINGLISTCOMPLETER_H
7 #define SWIFT_GUI_SHAREDSTRINGLISTCOMPLETER_H
8 
9 #include <QCompleter>
10 #include <QScopedPointer>
11 #include <QStringListModel>
12 
13 #include "gui/swiftguiexport.h"
14 
15 namespace swift::gui
16 {
22  {
23  public:
26 
28  bool updateData(const QStringList &data, int cacheTimeMs);
29 
31  void clearData();
32 
34  bool wasUpdatedWithinTime(int checkTimeMs) const;
35 
37  bool contains(const QString &value, Qt::CaseSensitivity cs = Qt::CaseInsensitive) const;
38 
40  QStringList stringList() const;
41 
43  QCompleter *completer() const { return m_completer.data(); }
44 
46  operator QCompleter *() const { return m_completer.data(); }
47 
48  private:
49  qint64 m_lastUpdated = 0;
50  QScopedPointer<QCompleter> m_completer { new QCompleter(QStringList()) }; // empty list required to init model
51  QStringListModel *getCompleterModel() const;
52  };
53 
58  {
59  public:
61  CompleterUtils() = delete;
62 
64  static void setCompleterParameters(QCompleter *completer);
65  };
66 } // namespace swift::gui
67 
68 #endif // SWIFT_GUI_SHAREDSTRINGLISTCOMPLETER_H
Completer shared among multiple UI elements.
CompleterUtils()=delete
No Ctor.
GUI related classes.
#define SWIFT_GUI_EXPORT
Export a class or function from the library.