Albert
Loading...
Searching...
No Matches
triggerqueryhandler.h
Go to the documentation of this file.
1// Copyright (c) 2023 Manuel Schneider
2
3#pragma once
4#include "albert/extension.h"
5#include <QString>
6#include <memory>
7class TriggerQueryHandlerPrivate;
8class QueryEngine;
9
10namespace albert
11{
12class Item;
13
19class ALBERT_EXPORT TriggerQueryHandler : virtual public Extension
20{
21public:
24
26 QString trigger() const;
27
31 virtual QString synopsis() const;
32
34 virtual QString defaultTrigger() const;
35
37 virtual bool allowTriggerRemap() const;
38
40 virtual bool supportsFuzzyMatching() const;
41
43 virtual bool fuzzyMatching() const;
44
46 virtual void setFuzzyMatching(bool enabled);
47
50 class ALBERT_EXPORT TriggerQuery
51 {
52 public:
53 virtual ~TriggerQuery() = default;
54
56 virtual QString trigger() const = 0;
57
59 virtual QString string() const = 0;
60
63 virtual const bool &isValid() const = 0;
64
68 virtual void add(const std::shared_ptr<Item> &item) = 0;
69
73 virtual void add(std::shared_ptr<Item> &&item) = 0;
74
76 virtual void add(const std::vector<std::shared_ptr<Item>> &items) = 0;
77
79 virtual void add(std::vector<std::shared_ptr<Item>> &&items) = 0;
80 };
81
84 virtual void handleTriggerQuery(TriggerQuery*) const = 0;
85
86private:
87 std::unique_ptr<TriggerQueryHandlerPrivate> d;
88 friend class ::QueryEngine;
89};
90
91}
The extension interface class.
Definition: extension.h:18
The query interface used by TriggerQueryHandler.
Definition: triggerqueryhandler.h:51
virtual void add(const std::shared_ptr< Item > &item)=0
Copy add single item.
virtual const bool & isValid() const =0
True if query has not been cancelled.
virtual void add(std::shared_ptr< Item > &&item)=0
Move add single item.
virtual QString string() const =0
The query string excluding the trigger.
virtual void add(const std::vector< std::shared_ptr< Item > > &items)=0
Copy add multiple items.
virtual QString trigger() const =0
The trigger of this query if any.
virtual void add(std::vector< std::shared_ptr< Item > > &&items)=0
Move add multiple items.
Triggered query handler class.
Definition: triggerqueryhandler.h:20
QString trigger() const
The user configured trigger of this handler.
virtual void setFuzzyMatching(bool enabled)
Fuzzy matching behavior. Default does nothing.
virtual bool allowTriggerRemap() const
Enable user remapping of the trigger. Default false.
virtual bool fuzzyMatching() const
Fuzzy matching. Default false.
virtual bool supportsFuzzyMatching() const
Fuzzy matching capability. Default false.
virtual QString synopsis() const
The synopsis, displayed on empty query.
virtual void handleTriggerQuery(TriggerQuery *) const =0
The trigger query processing function.
virtual QString defaultTrigger() const
The default (not user defined) trigger. Default Extension::id().
Definition: albert.h:12